1 package org.djunits.value.vdouble.scalar;
2
3 import java.util.Locale;
4
5 import org.djunits.unit.AbsorbedDoseUnit;
6 import org.djunits.unit.AccelerationUnit;
7 import org.djunits.unit.AmountOfSubstanceUnit;
8 import org.djunits.unit.AngleUnit;
9 import org.djunits.unit.AreaUnit;
10 import org.djunits.unit.CatalyticActivityUnit;
11 import org.djunits.unit.DensityUnit;
12 import org.djunits.unit.DimensionlessUnit;
13 import org.djunits.unit.DurationUnit;
14 import org.djunits.unit.ElectricalCapacitanceUnit;
15 import org.djunits.unit.ElectricalChargeUnit;
16 import org.djunits.unit.ElectricalConductanceUnit;
17 import org.djunits.unit.ElectricalCurrentUnit;
18 import org.djunits.unit.ElectricalInductanceUnit;
19 import org.djunits.unit.ElectricalPotentialUnit;
20 import org.djunits.unit.ElectricalResistanceUnit;
21 import org.djunits.unit.EnergyUnit;
22 import org.djunits.unit.EquivalentDoseUnit;
23 import org.djunits.unit.FlowMassUnit;
24 import org.djunits.unit.FlowVolumeUnit;
25 import org.djunits.unit.ForceUnit;
26 import org.djunits.unit.FrequencyUnit;
27 import org.djunits.unit.IlluminanceUnit;
28 import org.djunits.unit.LengthUnit;
29 import org.djunits.unit.LinearDensityUnit;
30 import org.djunits.unit.LuminousFluxUnit;
31 import org.djunits.unit.LuminousIntensityUnit;
32 import org.djunits.unit.MagneticFluxDensityUnit;
33 import org.djunits.unit.MagneticFluxUnit;
34 import org.djunits.unit.MassUnit;
35 import org.djunits.unit.PowerUnit;
36 import org.djunits.unit.PressureUnit;
37 import org.djunits.unit.RadioActivityUnit;
38 import org.djunits.unit.SolidAngleUnit;
39 import org.djunits.unit.SpeedUnit;
40 import org.djunits.unit.TemperatureUnit;
41 import org.djunits.unit.TorqueUnit;
42 import org.djunits.unit.VolumeUnit;
43 import org.djunits.value.function.DimensionlessFunctions;
44 import org.djunits.value.vdouble.scalar.base.AbstractDoubleScalarRel;
45 import org.djutils.base.NumberParser;
46 import org.djutils.exceptions.Throw;
47
48 import jakarta.annotation.Generated;
49
50
51
52
53
54
55
56
57
58
59 @Generated(value = "org.djunits.generator.GenerateDJUNIT", date = "2023-04-30T13:59:27.633664900Z")
60 public class Dimensionless extends AbstractDoubleScalarRel<DimensionlessUnit, Dimensionless>
61 implements DimensionlessFunctions<DimensionlessUnit, Dimensionless>
62 {
63
64 private static final long serialVersionUID = 20150905L;
65
66
67 public static final Dimensionless ZERO = new Dimensionless(0.0, DimensionlessUnit.SI);
68
69
70 public static final Dimensionless ONE = new Dimensionless(1.0, DimensionlessUnit.SI);
71
72
73 @SuppressWarnings("checkstyle:constantname")
74 public static final Dimensionless NaN = new Dimensionless(Double.NaN, DimensionlessUnit.SI);
75
76
77 public static final Dimensionless POSITIVE_INFINITY = new Dimensionless(Double.POSITIVE_INFINITY, DimensionlessUnit.SI);
78
79
80 public static final Dimensionless NEGATIVE_INFINITY = new Dimensionless(Double.NEGATIVE_INFINITY, DimensionlessUnit.SI);
81
82
83 public static final Dimensionless POS_MAXVALUE = new Dimensionless(Double.MAX_VALUE, DimensionlessUnit.SI);
84
85
86 public static final Dimensionless NEG_MAXVALUE = new Dimensionless(-Double.MAX_VALUE, DimensionlessUnit.SI);
87
88
89
90
91
92
93 public Dimensionless(final double value, final DimensionlessUnit unit)
94 {
95 super(value, unit);
96 }
97
98
99
100
101
102 public Dimensionless(final Dimensionless value)
103 {
104 super(value);
105 }
106
107
108 @Override
109 public final Dimensionless instantiateRel(final double value, final DimensionlessUnit unit)
110 {
111 return new Dimensionless(value, unit);
112 }
113
114
115
116
117
118
119 public static final Dimensionless instantiateSI(final double value)
120 {
121 return new Dimensionless(value, DimensionlessUnit.SI);
122 }
123
124
125
126
127
128
129
130
131 public static Dimensionless interpolate(final Dimensionless zero, final Dimensionless one, final double ratio)
132 {
133 return new Dimensionless(zero.getInUnit() * (1 - ratio) + one.getInUnit(zero.getDisplayUnit()) * ratio,
134 zero.getDisplayUnit());
135 }
136
137
138
139
140
141
142
143 public static Dimensionless max(final Dimensionless r1, final Dimensionless r2)
144 {
145 return r1.gt(r2) ? r1 : r2;
146 }
147
148
149
150
151
152
153
154
155 public static Dimensionless max(final Dimensionless r1, final Dimensionless r2, final Dimensionless... rn)
156 {
157 Dimensionless maxr = r1.gt(r2) ? r1 : r2;
158 for (Dimensionless r : rn)
159 {
160 if (r.gt(maxr))
161 {
162 maxr = r;
163 }
164 }
165 return maxr;
166 }
167
168
169
170
171
172
173
174 public static Dimensionless min(final Dimensionless r1, final Dimensionless r2)
175 {
176 return r1.lt(r2) ? r1 : r2;
177 }
178
179
180
181
182
183
184
185
186 public static Dimensionless min(final Dimensionless r1, final Dimensionless r2, final Dimensionless... rn)
187 {
188 Dimensionless minr = r1.lt(r2) ? r1 : r2;
189 for (Dimensionless r : rn)
190 {
191 if (r.lt(minr))
192 {
193 minr = r;
194 }
195 }
196 return minr;
197 }
198
199
200
201
202
203
204
205
206
207
208 public static Dimensionless valueOf(final String text)
209 {
210 Throw.whenNull(text, "Error parsing Dimensionless: text to parse is null");
211 Throw.when(text.length() == 0, IllegalArgumentException.class, "Error parsing Dimensionless: empty text to parse");
212 try
213 {
214 NumberParser numberParser = new NumberParser().lenient().trailing();
215 double d = numberParser.parseDouble(text);
216 String unitString = text.substring(numberParser.getTrailingPosition()).trim();
217 DimensionlessUnit unit = DimensionlessUnit.BASE.getUnitByAbbreviation(unitString);
218 if (unit == null)
219 throw new IllegalArgumentException("Unit " + unitString + " not found");
220 return new Dimensionless(d, unit);
221 }
222 catch (Exception exception)
223 {
224 throw new IllegalArgumentException(
225 "Error parsing Dimensionless from " + text + " using Locale " + Locale.getDefault(Locale.Category.FORMAT),
226 exception);
227 }
228 }
229
230
231
232
233
234
235
236
237
238 public static Dimensionless of(final double value, final String unitString)
239 {
240 Throw.whenNull(unitString, "Error parsing Dimensionless: unitString is null");
241 Throw.when(unitString.length() == 0, IllegalArgumentException.class, "Error parsing Dimensionless: empty unitString");
242 DimensionlessUnit unit = DimensionlessUnit.BASE.getUnitByAbbreviation(unitString);
243 if (unit != null)
244 {
245 return new Dimensionless(value, unit);
246 }
247 throw new IllegalArgumentException("Error parsing Dimensionless with unit " + unitString);
248 }
249
250
251 @Override
252 public String toStringSIPrefixed(final int smallestPower, final int biggestPower)
253 {
254 return toString();
255 }
256
257
258 @Override
259 public final Dimensionless acos()
260 {
261 return instantiateRel(Math.acos(getInUnit()), getDisplayUnit());
262 }
263
264
265 @Override
266 public final Dimensionless asin()
267 {
268 return instantiateRel(Math.asin(getInUnit()), getDisplayUnit());
269 }
270
271
272 @Override
273 public final Dimensionless atan()
274 {
275 return instantiateRel(Math.atan(getInUnit()), getDisplayUnit());
276 }
277
278
279 @Override
280 public final Dimensionless cbrt()
281 {
282 return instantiateRel(Math.cbrt(getInUnit()), getDisplayUnit());
283 }
284
285
286 @Override
287 public final Dimensionless cos()
288 {
289 return instantiateRel(Math.cos(getInUnit()), getDisplayUnit());
290 }
291
292
293 @Override
294 public final Dimensionless cosh()
295 {
296 return instantiateRel(Math.cosh(getInUnit()), getDisplayUnit());
297 }
298
299
300 @Override
301 public final Dimensionless exp()
302 {
303 return instantiateRel(Math.exp(getInUnit()), getDisplayUnit());
304 }
305
306
307 @Override
308 public final Dimensionless expm1()
309 {
310 return instantiateRel(Math.expm1(getInUnit()), getDisplayUnit());
311 }
312
313
314 @Override
315 public final Dimensionless log()
316 {
317 return instantiateRel(Math.log(getInUnit()), getDisplayUnit());
318 }
319
320
321 @Override
322 public final Dimensionless log10()
323 {
324 return instantiateRel(Math.log10(getInUnit()), getDisplayUnit());
325 }
326
327
328 @Override
329 public final Dimensionless log1p()
330 {
331 return instantiateRel(Math.log1p(getInUnit()), getDisplayUnit());
332 }
333
334
335 @Override
336 public final Dimensionless pow(final double x)
337 {
338 return instantiateRel(Math.pow(getInUnit(), x), getDisplayUnit());
339 }
340
341
342 @Override
343 public final Dimensionless signum()
344 {
345 return instantiateRel(Math.signum(getInUnit()), getDisplayUnit());
346 }
347
348
349 @Override
350 public final Dimensionless sin()
351 {
352 return instantiateRel(Math.sin(getInUnit()), getDisplayUnit());
353 }
354
355
356 @Override
357 public final Dimensionless sinh()
358 {
359 return instantiateRel(Math.sinh(getInUnit()), getDisplayUnit());
360 }
361
362
363 @Override
364 public final Dimensionless sqrt()
365 {
366 return instantiateRel(Math.sqrt(getInUnit()), getDisplayUnit());
367 }
368
369
370 @Override
371 public final Dimensionless tan()
372 {
373 return instantiateRel(Math.tan(getInUnit()), getDisplayUnit());
374 }
375
376
377 @Override
378 public final Dimensionless tanh()
379 {
380 return instantiateRel(Math.tanh(getInUnit()), getDisplayUnit());
381 }
382
383
384 @Override
385 public final Dimensionless inv()
386 {
387 return instantiateRel(1.0 / getInUnit(), getDisplayUnit());
388 }
389
390
391
392
393
394
395 public final Dimensionless divide(final Dimensionless v)
396 {
397 return new Dimensionless(this.si / v.si, DimensionlessUnit.SI);
398 }
399
400
401
402
403
404
405 public final AbsorbedDose times(final AbsorbedDose v)
406 {
407 return new AbsorbedDose(this.si * v.si, AbsorbedDoseUnit.SI);
408 }
409
410
411
412
413
414
415 public final Acceleration times(final Acceleration v)
416 {
417 return new Acceleration(this.si * v.si, AccelerationUnit.SI);
418 }
419
420
421
422
423
424
425 public final AmountOfSubstance times(final AmountOfSubstance v)
426 {
427 return new AmountOfSubstance(this.si * v.si, AmountOfSubstanceUnit.SI);
428 }
429
430
431
432
433
434
435 public final Angle times(final Angle v)
436 {
437 return new Angle(this.si * v.si, AngleUnit.SI);
438 }
439
440
441
442
443
444
445 public final SolidAngle times(final SolidAngle v)
446 {
447 return new SolidAngle(this.si * v.si, SolidAngleUnit.SI);
448 }
449
450
451
452
453
454
455 public final Area times(final Area v)
456 {
457 return new Area(this.si * v.si, AreaUnit.SI);
458 }
459
460
461
462
463
464
465 public final CatalyticActivity times(final CatalyticActivity v)
466 {
467 return new CatalyticActivity(this.si * v.si, CatalyticActivityUnit.SI);
468 }
469
470
471
472
473
474
475 public final Density times(final Density v)
476 {
477 return new Density(this.si * v.si, DensityUnit.SI);
478 }
479
480
481
482
483
484
485 public final Dimensionless times(final Dimensionless v)
486 {
487 return new Dimensionless(this.si * v.si, DimensionlessUnit.SI);
488 }
489
490
491
492
493
494
495 public final ElectricalCapacitance times(final ElectricalCapacitance v)
496 {
497 return new ElectricalCapacitance(this.si * v.si, ElectricalCapacitanceUnit.SI);
498 }
499
500
501
502
503
504
505 public final ElectricalCharge times(final ElectricalCharge v)
506 {
507 return new ElectricalCharge(this.si * v.si, ElectricalChargeUnit.SI);
508 }
509
510
511
512
513
514
515 public final ElectricalConductance times(final ElectricalConductance v)
516 {
517 return new ElectricalConductance(this.si * v.si, ElectricalConductanceUnit.SI);
518 }
519
520
521
522
523
524
525 public final ElectricalCurrent times(final ElectricalCurrent v)
526 {
527 return new ElectricalCurrent(this.si * v.si, ElectricalCurrentUnit.SI);
528 }
529
530
531
532
533
534
535 public final ElectricalInductance times(final ElectricalInductance v)
536 {
537 return new ElectricalInductance(this.si * v.si, ElectricalInductanceUnit.SI);
538 }
539
540
541
542
543
544
545 public final ElectricalPotential times(final ElectricalPotential v)
546 {
547 return new ElectricalPotential(this.si * v.si, ElectricalPotentialUnit.SI);
548 }
549
550
551
552
553
554
555 public final ElectricalResistance times(final ElectricalResistance v)
556 {
557 return new ElectricalResistance(this.si * v.si, ElectricalResistanceUnit.SI);
558 }
559
560
561
562
563
564
565 public final Energy times(final Energy v)
566 {
567 return new Energy(this.si * v.si, EnergyUnit.SI);
568 }
569
570
571
572
573
574
575 public final EquivalentDose times(final EquivalentDose v)
576 {
577 return new EquivalentDose(this.si * v.si, EquivalentDoseUnit.SI);
578 }
579
580
581
582
583
584
585 public final FlowMass times(final FlowMass v)
586 {
587 return new FlowMass(this.si * v.si, FlowMassUnit.SI);
588 }
589
590
591
592
593
594
595 public final FlowVolume times(final FlowVolume v)
596 {
597 return new FlowVolume(this.si * v.si, FlowVolumeUnit.SI);
598 }
599
600
601
602
603
604
605 public final Force times(final Force v)
606 {
607 return new Force(this.si * v.si, ForceUnit.SI);
608 }
609
610
611
612
613
614
615 public final Frequency times(final Frequency v)
616 {
617 return new Frequency(this.si * v.si, FrequencyUnit.SI);
618 }
619
620
621
622
623
624
625 public final Illuminance times(final Illuminance v)
626 {
627 return new Illuminance(this.si * v.si, IlluminanceUnit.SI);
628 }
629
630
631
632
633
634
635 public final Length times(final Length v)
636 {
637 return new Length(this.si * v.si, LengthUnit.SI);
638 }
639
640
641
642
643
644
645 public final LinearDensity times(final LinearDensity v)
646 {
647 return new LinearDensity(this.si * v.si, LinearDensityUnit.SI);
648 }
649
650
651
652
653
654
655 public final LuminousFlux times(final LuminousFlux v)
656 {
657 return new LuminousFlux(this.si * v.si, LuminousFluxUnit.SI);
658 }
659
660
661
662
663
664
665 public final LuminousIntensity times(final LuminousIntensity v)
666 {
667 return new LuminousIntensity(this.si * v.si, LuminousIntensityUnit.SI);
668 }
669
670
671
672
673
674
675 public final MagneticFluxDensity times(final MagneticFluxDensity v)
676 {
677 return new MagneticFluxDensity(this.si * v.si, MagneticFluxDensityUnit.SI);
678 }
679
680
681
682
683
684
685 public final MagneticFlux times(final MagneticFlux v)
686 {
687 return new MagneticFlux(this.si * v.si, MagneticFluxUnit.SI);
688 }
689
690
691
692
693
694
695 public final Mass times(final Mass v)
696 {
697 return new Mass(this.si * v.si, MassUnit.SI);
698 }
699
700
701
702
703
704
705 public final Power times(final Power v)
706 {
707 return new Power(this.si * v.si, PowerUnit.SI);
708 }
709
710
711
712
713
714
715 public final Pressure times(final Pressure v)
716 {
717 return new Pressure(this.si * v.si, PressureUnit.SI);
718 }
719
720
721
722
723
724
725 public final RadioActivity times(final RadioActivity v)
726 {
727 return new RadioActivity(this.si * v.si, RadioActivityUnit.SI);
728 }
729
730
731
732
733
734
735 public final Speed times(final Speed v)
736 {
737 return new Speed(this.si * v.si, SpeedUnit.SI);
738 }
739
740
741
742
743
744
745 public final Temperature times(final Temperature v)
746 {
747 return new Temperature(this.si * v.si, TemperatureUnit.SI);
748 }
749
750
751
752
753
754
755 public final Duration times(final Duration v)
756 {
757 return new Duration(this.si * v.si, DurationUnit.SI);
758 }
759
760
761
762
763
764
765 public final Torque times(final Torque v)
766 {
767 return new Torque(this.si * v.si, TorqueUnit.SI);
768 }
769
770
771
772
773
774
775 public final Volume times(final Volume v)
776 {
777 return new Volume(this.si * v.si, VolumeUnit.SI);
778 }
779
780
781
782
783
784
785 public final LinearDensity divide(final Length v)
786 {
787 return new LinearDensity(this.si / v.si, LinearDensityUnit.SI);
788 }
789
790
791
792
793
794
795 public final Length divide(final LinearDensity v)
796 {
797 return new Length(this.si / v.si, LengthUnit.SI);
798 }
799
800
801
802
803
804
805 public final Frequency divide(final Duration v)
806 {
807 return new Frequency(this.si / v.si, FrequencyUnit.SI);
808 }
809
810
811
812
813
814
815 public final Duration divide(final Frequency v)
816 {
817 return new Duration(this.si / v.si, DurationUnit.SI);
818 }
819
820
821
822
823
824
825 public final ElectricalResistance divide(final ElectricalConductance v)
826 {
827 return new ElectricalResistance(this.si / v.si, ElectricalResistanceUnit.SI);
828 }
829
830
831
832
833
834
835 public final ElectricalConductance divide(final ElectricalResistance v)
836 {
837 return new ElectricalConductance(this.si / v.si, ElectricalConductanceUnit.SI);
838 }
839
840
841 @Override
842 public Dimensionless reciprocal()
843 {
844 return Dimensionless.instantiateSI(1.0 / this.si);
845 }
846
847 }