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.DoubleScalarRel;
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-07-23T14:06:38.224104100Z")
60 public class Dimensionless extends DoubleScalarRel<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 if (unitString.length() != 0)
218 throw new IllegalArgumentException("Unit " + unitString + " not found for Dimensionless");
219 return new Dimensionless(d, DimensionlessUnit.SI);
220 }
221 catch (Exception exception)
222 {
223 throw new IllegalArgumentException(
224 "Error parsing Dimensionless from " + text + " using Locale " + Locale.getDefault(Locale.Category.FORMAT),
225 exception);
226 }
227 }
228
229
230
231
232
233
234
235
236
237 public static Dimensionless of(final double value, final String unitString)
238 {
239 Throw.whenNull(unitString, "Error parsing Dimensionless: unitString is null");
240 Throw.when(unitString.trim().length() != 0, IllegalArgumentException.class,
241 "Error parsing Dimensionless: non-empty unitString");
242 DimensionlessUnit unit = DimensionlessUnit.SI;
243 return new Dimensionless(value, unit);
244 }
245
246
247 @Override
248 public String toStringSIPrefixed(final int smallestPower, final int biggestPower)
249 {
250 return toString();
251 }
252
253
254 @Override
255 public final Dimensionless acos()
256 {
257 return instantiateRel(Math.acos(getInUnit()), getDisplayUnit());
258 }
259
260
261 @Override
262 public final Dimensionless asin()
263 {
264 return instantiateRel(Math.asin(getInUnit()), getDisplayUnit());
265 }
266
267
268 @Override
269 public final Dimensionless atan()
270 {
271 return instantiateRel(Math.atan(getInUnit()), getDisplayUnit());
272 }
273
274
275 @Override
276 public final Dimensionless cbrt()
277 {
278 return instantiateRel(Math.cbrt(getInUnit()), getDisplayUnit());
279 }
280
281
282 @Override
283 public final Dimensionless cos()
284 {
285 return instantiateRel(Math.cos(getInUnit()), getDisplayUnit());
286 }
287
288
289 @Override
290 public final Dimensionless cosh()
291 {
292 return instantiateRel(Math.cosh(getInUnit()), getDisplayUnit());
293 }
294
295
296 @Override
297 public final Dimensionless exp()
298 {
299 return instantiateRel(Math.exp(getInUnit()), getDisplayUnit());
300 }
301
302
303 @Override
304 public final Dimensionless expm1()
305 {
306 return instantiateRel(Math.expm1(getInUnit()), getDisplayUnit());
307 }
308
309
310 @Override
311 public final Dimensionless log()
312 {
313 return instantiateRel(Math.log(getInUnit()), getDisplayUnit());
314 }
315
316
317 @Override
318 public final Dimensionless log10()
319 {
320 return instantiateRel(Math.log10(getInUnit()), getDisplayUnit());
321 }
322
323
324 @Override
325 public final Dimensionless log1p()
326 {
327 return instantiateRel(Math.log1p(getInUnit()), getDisplayUnit());
328 }
329
330
331 @Override
332 public final Dimensionless pow(final double x)
333 {
334 return instantiateRel(Math.pow(getInUnit(), x), getDisplayUnit());
335 }
336
337
338 @Override
339 public final Dimensionless signum()
340 {
341 return instantiateRel(Math.signum(getInUnit()), getDisplayUnit());
342 }
343
344
345 @Override
346 public final Dimensionless sin()
347 {
348 return instantiateRel(Math.sin(getInUnit()), getDisplayUnit());
349 }
350
351
352 @Override
353 public final Dimensionless sinh()
354 {
355 return instantiateRel(Math.sinh(getInUnit()), getDisplayUnit());
356 }
357
358
359 @Override
360 public final Dimensionless sqrt()
361 {
362 return instantiateRel(Math.sqrt(getInUnit()), getDisplayUnit());
363 }
364
365
366 @Override
367 public final Dimensionless tan()
368 {
369 return instantiateRel(Math.tan(getInUnit()), getDisplayUnit());
370 }
371
372
373 @Override
374 public final Dimensionless tanh()
375 {
376 return instantiateRel(Math.tanh(getInUnit()), getDisplayUnit());
377 }
378
379
380 @Override
381 public final Dimensionless inv()
382 {
383 return instantiateRel(1.0 / getInUnit(), getDisplayUnit());
384 }
385
386
387
388
389
390
391 public final Dimensionless divide(final Dimensionless v)
392 {
393 return new Dimensionless(this.si / v.si, DimensionlessUnit.SI);
394 }
395
396
397
398
399
400
401 public final AbsorbedDose times(final AbsorbedDose v)
402 {
403 return new AbsorbedDose(this.si * v.si, AbsorbedDoseUnit.SI);
404 }
405
406
407
408
409
410
411 public final Acceleration times(final Acceleration v)
412 {
413 return new Acceleration(this.si * v.si, AccelerationUnit.SI);
414 }
415
416
417
418
419
420
421 public final AmountOfSubstance times(final AmountOfSubstance v)
422 {
423 return new AmountOfSubstance(this.si * v.si, AmountOfSubstanceUnit.SI);
424 }
425
426
427
428
429
430
431 public final Angle times(final Angle v)
432 {
433 return new Angle(this.si * v.si, AngleUnit.SI);
434 }
435
436
437
438
439
440
441 public final SolidAngle times(final SolidAngle v)
442 {
443 return new SolidAngle(this.si * v.si, SolidAngleUnit.SI);
444 }
445
446
447
448
449
450
451 public final Area times(final Area v)
452 {
453 return new Area(this.si * v.si, AreaUnit.SI);
454 }
455
456
457
458
459
460
461 public final CatalyticActivity times(final CatalyticActivity v)
462 {
463 return new CatalyticActivity(this.si * v.si, CatalyticActivityUnit.SI);
464 }
465
466
467
468
469
470
471 public final Density times(final Density v)
472 {
473 return new Density(this.si * v.si, DensityUnit.SI);
474 }
475
476
477
478
479
480
481 public final Dimensionless times(final Dimensionless v)
482 {
483 return new Dimensionless(this.si * v.si, DimensionlessUnit.SI);
484 }
485
486
487
488
489
490
491 public final ElectricalCapacitance times(final ElectricalCapacitance v)
492 {
493 return new ElectricalCapacitance(this.si * v.si, ElectricalCapacitanceUnit.SI);
494 }
495
496
497
498
499
500
501 public final ElectricalCharge times(final ElectricalCharge v)
502 {
503 return new ElectricalCharge(this.si * v.si, ElectricalChargeUnit.SI);
504 }
505
506
507
508
509
510
511 public final ElectricalConductance times(final ElectricalConductance v)
512 {
513 return new ElectricalConductance(this.si * v.si, ElectricalConductanceUnit.SI);
514 }
515
516
517
518
519
520
521 public final ElectricalCurrent times(final ElectricalCurrent v)
522 {
523 return new ElectricalCurrent(this.si * v.si, ElectricalCurrentUnit.SI);
524 }
525
526
527
528
529
530
531 public final ElectricalInductance times(final ElectricalInductance v)
532 {
533 return new ElectricalInductance(this.si * v.si, ElectricalInductanceUnit.SI);
534 }
535
536
537
538
539
540
541 public final ElectricalPotential times(final ElectricalPotential v)
542 {
543 return new ElectricalPotential(this.si * v.si, ElectricalPotentialUnit.SI);
544 }
545
546
547
548
549
550
551 public final ElectricalResistance times(final ElectricalResistance v)
552 {
553 return new ElectricalResistance(this.si * v.si, ElectricalResistanceUnit.SI);
554 }
555
556
557
558
559
560
561 public final Energy times(final Energy v)
562 {
563 return new Energy(this.si * v.si, EnergyUnit.SI);
564 }
565
566
567
568
569
570
571 public final EquivalentDose times(final EquivalentDose v)
572 {
573 return new EquivalentDose(this.si * v.si, EquivalentDoseUnit.SI);
574 }
575
576
577
578
579
580
581 public final FlowMass times(final FlowMass v)
582 {
583 return new FlowMass(this.si * v.si, FlowMassUnit.SI);
584 }
585
586
587
588
589
590
591 public final FlowVolume times(final FlowVolume v)
592 {
593 return new FlowVolume(this.si * v.si, FlowVolumeUnit.SI);
594 }
595
596
597
598
599
600
601 public final Force times(final Force v)
602 {
603 return new Force(this.si * v.si, ForceUnit.SI);
604 }
605
606
607
608
609
610
611 public final Frequency times(final Frequency v)
612 {
613 return new Frequency(this.si * v.si, FrequencyUnit.SI);
614 }
615
616
617
618
619
620
621 public final Illuminance times(final Illuminance v)
622 {
623 return new Illuminance(this.si * v.si, IlluminanceUnit.SI);
624 }
625
626
627
628
629
630
631 public final Length times(final Length v)
632 {
633 return new Length(this.si * v.si, LengthUnit.SI);
634 }
635
636
637
638
639
640
641 public final LinearDensity times(final LinearDensity v)
642 {
643 return new LinearDensity(this.si * v.si, LinearDensityUnit.SI);
644 }
645
646
647
648
649
650
651 public final LuminousFlux times(final LuminousFlux v)
652 {
653 return new LuminousFlux(this.si * v.si, LuminousFluxUnit.SI);
654 }
655
656
657
658
659
660
661 public final LuminousIntensity times(final LuminousIntensity v)
662 {
663 return new LuminousIntensity(this.si * v.si, LuminousIntensityUnit.SI);
664 }
665
666
667
668
669
670
671 public final MagneticFluxDensity times(final MagneticFluxDensity v)
672 {
673 return new MagneticFluxDensity(this.si * v.si, MagneticFluxDensityUnit.SI);
674 }
675
676
677
678
679
680
681 public final MagneticFlux times(final MagneticFlux v)
682 {
683 return new MagneticFlux(this.si * v.si, MagneticFluxUnit.SI);
684 }
685
686
687
688
689
690
691 public final Mass times(final Mass v)
692 {
693 return new Mass(this.si * v.si, MassUnit.SI);
694 }
695
696
697
698
699
700
701 public final Power times(final Power v)
702 {
703 return new Power(this.si * v.si, PowerUnit.SI);
704 }
705
706
707
708
709
710
711 public final Pressure times(final Pressure v)
712 {
713 return new Pressure(this.si * v.si, PressureUnit.SI);
714 }
715
716
717
718
719
720
721 public final RadioActivity times(final RadioActivity v)
722 {
723 return new RadioActivity(this.si * v.si, RadioActivityUnit.SI);
724 }
725
726
727
728
729
730
731 public final Speed times(final Speed v)
732 {
733 return new Speed(this.si * v.si, SpeedUnit.SI);
734 }
735
736
737
738
739
740
741 public final Temperature times(final Temperature v)
742 {
743 return new Temperature(this.si * v.si, TemperatureUnit.SI);
744 }
745
746
747
748
749
750
751 public final Duration times(final Duration v)
752 {
753 return new Duration(this.si * v.si, DurationUnit.SI);
754 }
755
756
757
758
759
760
761 public final Torque times(final Torque v)
762 {
763 return new Torque(this.si * v.si, TorqueUnit.SI);
764 }
765
766
767
768
769
770
771 public final Volume times(final Volume v)
772 {
773 return new Volume(this.si * v.si, VolumeUnit.SI);
774 }
775
776
777
778
779
780
781 public final LinearDensity divide(final Length v)
782 {
783 return new LinearDensity(this.si / v.si, LinearDensityUnit.SI);
784 }
785
786
787
788
789
790
791 public final Length divide(final LinearDensity v)
792 {
793 return new Length(this.si / v.si, LengthUnit.SI);
794 }
795
796
797
798
799
800
801 public final Frequency divide(final Duration v)
802 {
803 return new Frequency(this.si / v.si, FrequencyUnit.SI);
804 }
805
806
807
808
809
810
811 public final Duration divide(final Frequency v)
812 {
813 return new Duration(this.si / v.si, DurationUnit.SI);
814 }
815
816
817
818
819
820
821 public final ElectricalResistance divide(final ElectricalConductance v)
822 {
823 return new ElectricalResistance(this.si / v.si, ElectricalResistanceUnit.SI);
824 }
825
826
827
828
829
830
831 public final ElectricalConductance divide(final ElectricalResistance v)
832 {
833 return new ElectricalConductance(this.si / v.si, ElectricalConductanceUnit.SI);
834 }
835
836
837 @Override
838 public Dimensionless reciprocal()
839 {
840 return Dimensionless.instantiateSI(1.0 / this.si);
841 }
842
843 }