1 package org.djunits.value.vfloat.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.vfloat.scalar.base.FloatScalarRel;
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 = "2025-09-06T15:16:28.380798Z")
60 public class FloatDimensionless extends FloatScalarRel<DimensionlessUnit, FloatDimensionless>
61 implements DimensionlessFunctions<DimensionlessUnit, FloatDimensionless>
62 {
63
64 private static final long serialVersionUID = 20150901L;
65
66
67 public static final FloatDimensionless ZERO = new FloatDimensionless(0.0f, DimensionlessUnit.SI);
68
69
70 public static final FloatDimensionless ONE = new FloatDimensionless(1.0f, DimensionlessUnit.SI);
71
72
73 @SuppressWarnings("checkstyle:constantname")
74 public static final FloatDimensionless NaN = new FloatDimensionless(Float.NaN, DimensionlessUnit.SI);
75
76
77 public static final FloatDimensionless POSITIVE_INFINITY =
78 new FloatDimensionless(Float.POSITIVE_INFINITY, DimensionlessUnit.SI);
79
80
81 public static final FloatDimensionless NEGATIVE_INFINITY =
82 new FloatDimensionless(Float.NEGATIVE_INFINITY, DimensionlessUnit.SI);
83
84
85 public static final FloatDimensionless POS_MAXVALUE = new FloatDimensionless(Float.MAX_VALUE, DimensionlessUnit.SI);
86
87
88 public static final FloatDimensionless NEG_MAXVALUE = new FloatDimensionless(-Float.MAX_VALUE, DimensionlessUnit.SI);
89
90
91
92
93
94
95 public FloatDimensionless(final float value, final DimensionlessUnit unit)
96 {
97 super(value, unit);
98 }
99
100
101
102
103
104 public FloatDimensionless(final FloatDimensionless value)
105 {
106 super(value);
107 }
108
109
110
111
112
113
114 public FloatDimensionless(final double value, final DimensionlessUnit unit)
115 {
116 super((float) value, unit);
117 }
118
119 @Override
120 public final FloatDimensionless instantiateRel(final float value, final DimensionlessUnit unit)
121 {
122 return new FloatDimensionless(value, unit);
123 }
124
125
126
127
128
129
130 public static final FloatDimensionless ofSI(final float value)
131 {
132 return new FloatDimensionless(value, DimensionlessUnit.SI);
133 }
134
135
136
137
138
139
140
141
142 public static FloatDimensionless interpolate(final FloatDimensionless zero, final FloatDimensionless one, final float ratio)
143 {
144 Throw.when(ratio < 0.0 || ratio > 1.0, IllegalArgumentException.class,
145 "ratio for interpolation should be between 0 and 1, but is %f", ratio);
146 return new FloatDimensionless(zero.getInUnit() * (1 - ratio) + one.getInUnit(zero.getDisplayUnit()) * ratio,
147 zero.getDisplayUnit());
148 }
149
150
151
152
153
154
155
156 public static FloatDimensionless max(final FloatDimensionless r1, final FloatDimensionless r2)
157 {
158 return r1.gt(r2) ? r1 : r2;
159 }
160
161
162
163
164
165
166
167
168 public static FloatDimensionless max(final FloatDimensionless r1, final FloatDimensionless r2,
169 final FloatDimensionless... rn)
170 {
171 FloatDimensionless maxr = r1.gt(r2) ? r1 : r2;
172 for (FloatDimensionless r : rn)
173 {
174 if (r.gt(maxr))
175 {
176 maxr = r;
177 }
178 }
179 return maxr;
180 }
181
182
183
184
185
186
187
188 public static FloatDimensionless min(final FloatDimensionless r1, final FloatDimensionless r2)
189 {
190 return r1.lt(r2) ? r1 : r2;
191 }
192
193
194
195
196
197
198
199
200 public static FloatDimensionless min(final FloatDimensionless r1, final FloatDimensionless r2,
201 final FloatDimensionless... rn)
202 {
203 FloatDimensionless minr = r1.lt(r2) ? r1 : r2;
204 for (FloatDimensionless r : rn)
205 {
206 if (r.lt(minr))
207 {
208 minr = r;
209 }
210 }
211 return minr;
212 }
213
214
215
216
217
218
219
220
221
222
223 public static FloatDimensionless valueOf(final String text)
224 {
225 Throw.whenNull(text, "Error parsing FloatDimensionless: text to parse is null");
226 Throw.when(text.length() == 0, IllegalArgumentException.class, "Error parsing FloatDimensionless: empty text to parse");
227 try
228 {
229 NumberParser numberParser = new NumberParser().lenient().trailing();
230 float f = numberParser.parseFloat(text);
231 String unitString = text.substring(numberParser.getTrailingPosition()).trim();
232 Throw.when(unitString.length() != 0, IllegalArgumentException.class, "Dimensionless should not have unit %s",
233 unitString);
234 return new FloatDimensionless(f, DimensionlessUnit.SI);
235 }
236 catch (Exception exception)
237 {
238 throw new IllegalArgumentException("Error parsing FloatDimensionless from " + text + " using Locale "
239 + Locale.getDefault(Locale.Category.FORMAT), exception);
240 }
241 }
242
243
244
245
246
247
248
249
250
251 public static FloatDimensionless of(final float value, final String unitString)
252 {
253 Throw.whenNull(unitString, "Error parsing FloatDimensionless: unitString is null");
254 Throw.when(unitString.trim().length() != 0, IllegalArgumentException.class,
255 "Error parsing FloatDimensionless: non-empty unitString");
256 DimensionlessUnit unit = DimensionlessUnit.SI;
257 return new FloatDimensionless(value, unit);
258 }
259
260 @Override
261 public String toStringSIPrefixed(final int smallestPower, final int biggestPower)
262 {
263 return toString();
264 }
265
266 @Override
267 public final FloatDimensionless acos()
268 {
269 return instantiateRel((float) Math.acos(getInUnit()), getDisplayUnit());
270 }
271
272 @Override
273 public final FloatDimensionless asin()
274 {
275 return instantiateRel((float) Math.asin(getInUnit()), getDisplayUnit());
276 }
277
278 @Override
279 public final FloatDimensionless atan()
280 {
281 return instantiateRel((float) Math.atan(getInUnit()), getDisplayUnit());
282 }
283
284 @Override
285 public final FloatDimensionless cbrt()
286 {
287 return instantiateRel((float) Math.cbrt(getInUnit()), getDisplayUnit());
288 }
289
290 @Override
291 public final FloatDimensionless cos()
292 {
293 return instantiateRel((float) Math.cos(getInUnit()), getDisplayUnit());
294 }
295
296 @Override
297 public final FloatDimensionless cosh()
298 {
299 return instantiateRel((float) Math.cosh(getInUnit()), getDisplayUnit());
300 }
301
302 @Override
303 public final FloatDimensionless exp()
304 {
305 return instantiateRel((float) Math.exp(getInUnit()), getDisplayUnit());
306 }
307
308 @Override
309 public final FloatDimensionless expm1()
310 {
311 return instantiateRel((float) Math.expm1(getInUnit()), getDisplayUnit());
312 }
313
314 @Override
315 public final FloatDimensionless log()
316 {
317 return instantiateRel((float) Math.log(getInUnit()), getDisplayUnit());
318 }
319
320 @Override
321 public final FloatDimensionless log10()
322 {
323 return instantiateRel((float) Math.log10(getInUnit()), getDisplayUnit());
324 }
325
326 @Override
327 public final FloatDimensionless log1p()
328 {
329 return instantiateRel((float) Math.log1p(getInUnit()), getDisplayUnit());
330 }
331
332 @Override
333 public final FloatDimensionless pow(final double x)
334 {
335 return instantiateRel((float) Math.pow(getInUnit(), x), getDisplayUnit());
336 }
337
338 @Override
339 public final FloatDimensionless signum()
340 {
341 return instantiateRel(Math.signum(getInUnit()), getDisplayUnit());
342 }
343
344 @Override
345 public final FloatDimensionless sin()
346 {
347 return instantiateRel((float) Math.sin(getInUnit()), getDisplayUnit());
348 }
349
350 @Override
351 public final FloatDimensionless sinh()
352 {
353 return instantiateRel((float) Math.sinh(getInUnit()), getDisplayUnit());
354 }
355
356 @Override
357 public final FloatDimensionless sqrt()
358 {
359 return instantiateRel((float) Math.sqrt(getInUnit()), getDisplayUnit());
360 }
361
362 @Override
363 public final FloatDimensionless tan()
364 {
365 return instantiateRel((float) Math.tan(getInUnit()), getDisplayUnit());
366 }
367
368 @Override
369 public final FloatDimensionless tanh()
370 {
371 return instantiateRel((float) Math.tanh(getInUnit()), getDisplayUnit());
372 }
373
374 @Override
375 public final FloatDimensionless inv()
376 {
377 return instantiateRel(1.0f / getInUnit(), getDisplayUnit());
378 }
379
380
381
382
383
384
385 public final FloatDimensionless divide(final FloatDimensionless v)
386 {
387 return new FloatDimensionless(this.si / v.si, DimensionlessUnit.SI);
388 }
389
390
391
392
393
394
395 public final FloatAbsorbedDose times(final FloatAbsorbedDose v)
396 {
397 return new FloatAbsorbedDose(this.si * v.si, AbsorbedDoseUnit.SI);
398 }
399
400
401
402
403
404
405 public final FloatAcceleration times(final FloatAcceleration v)
406 {
407 return new FloatAcceleration(this.si * v.si, AccelerationUnit.SI);
408 }
409
410
411
412
413
414
415
416 public final FloatAmountOfSubstance times(final FloatAmountOfSubstance v)
417 {
418 return new FloatAmountOfSubstance(this.si * v.si, AmountOfSubstanceUnit.SI);
419 }
420
421
422
423
424
425
426 public final FloatAngle times(final FloatAngle v)
427 {
428 return new FloatAngle(this.si * v.si, AngleUnit.SI);
429 }
430
431
432
433
434
435
436 public final FloatSolidAngle times(final FloatSolidAngle v)
437 {
438 return new FloatSolidAngle(this.si * v.si, SolidAngleUnit.SI);
439 }
440
441
442
443
444
445
446 public final FloatArea times(final FloatArea v)
447 {
448 return new FloatArea(this.si * v.si, AreaUnit.SI);
449 }
450
451
452
453
454
455
456
457 public final FloatCatalyticActivity times(final FloatCatalyticActivity v)
458 {
459 return new FloatCatalyticActivity(this.si * v.si, CatalyticActivityUnit.SI);
460 }
461
462
463
464
465
466
467 public final FloatDensity times(final FloatDensity v)
468 {
469 return new FloatDensity(this.si * v.si, DensityUnit.SI);
470 }
471
472
473
474
475
476
477 public final FloatDimensionless times(final FloatDimensionless v)
478 {
479 return new FloatDimensionless(this.si * v.si, DimensionlessUnit.SI);
480 }
481
482
483
484
485
486
487
488 public final FloatElectricalCapacitance times(final FloatElectricalCapacitance v)
489 {
490 return new FloatElectricalCapacitance(this.si * v.si, ElectricalCapacitanceUnit.SI);
491 }
492
493
494
495
496
497
498
499 public final FloatElectricalCharge times(final FloatElectricalCharge v)
500 {
501 return new FloatElectricalCharge(this.si * v.si, ElectricalChargeUnit.SI);
502 }
503
504
505
506
507
508
509
510 public final FloatElectricalConductance times(final FloatElectricalConductance v)
511 {
512 return new FloatElectricalConductance(this.si * v.si, ElectricalConductanceUnit.SI);
513 }
514
515
516
517
518
519
520
521 public final FloatElectricalCurrent times(final FloatElectricalCurrent v)
522 {
523 return new FloatElectricalCurrent(this.si * v.si, ElectricalCurrentUnit.SI);
524 }
525
526
527
528
529
530
531
532 public final FloatElectricalInductance times(final FloatElectricalInductance v)
533 {
534 return new FloatElectricalInductance(this.si * v.si, ElectricalInductanceUnit.SI);
535 }
536
537
538
539
540
541
542
543 public final FloatElectricalPotential times(final FloatElectricalPotential v)
544 {
545 return new FloatElectricalPotential(this.si * v.si, ElectricalPotentialUnit.SI);
546 }
547
548
549
550
551
552
553
554 public final FloatElectricalResistance times(final FloatElectricalResistance v)
555 {
556 return new FloatElectricalResistance(this.si * v.si, ElectricalResistanceUnit.SI);
557 }
558
559
560
561
562
563
564 public final FloatEnergy times(final FloatEnergy v)
565 {
566 return new FloatEnergy(this.si * v.si, EnergyUnit.SI);
567 }
568
569
570
571
572
573
574
575 public final FloatEquivalentDose times(final FloatEquivalentDose v)
576 {
577 return new FloatEquivalentDose(this.si * v.si, EquivalentDoseUnit.SI);
578 }
579
580
581
582
583
584
585 public final FloatFlowMass times(final FloatFlowMass v)
586 {
587 return new FloatFlowMass(this.si * v.si, FlowMassUnit.SI);
588 }
589
590
591
592
593
594
595 public final FloatFlowVolume times(final FloatFlowVolume v)
596 {
597 return new FloatFlowVolume(this.si * v.si, FlowVolumeUnit.SI);
598 }
599
600
601
602
603
604
605 public final FloatForce times(final FloatForce v)
606 {
607 return new FloatForce(this.si * v.si, ForceUnit.SI);
608 }
609
610
611
612
613
614
615 public final FloatFrequency times(final FloatFrequency v)
616 {
617 return new FloatFrequency(this.si * v.si, FrequencyUnit.SI);
618 }
619
620
621
622
623
624
625 public final FloatIlluminance times(final FloatIlluminance v)
626 {
627 return new FloatIlluminance(this.si * v.si, IlluminanceUnit.SI);
628 }
629
630
631
632
633
634
635 public final FloatLength times(final FloatLength v)
636 {
637 return new FloatLength(this.si * v.si, LengthUnit.SI);
638 }
639
640
641
642
643
644
645 public final FloatLinearDensity times(final FloatLinearDensity v)
646 {
647 return new FloatLinearDensity(this.si * v.si, LinearDensityUnit.SI);
648 }
649
650
651
652
653
654
655 public final FloatLuminousFlux times(final FloatLuminousFlux v)
656 {
657 return new FloatLuminousFlux(this.si * v.si, LuminousFluxUnit.SI);
658 }
659
660
661
662
663
664
665
666 public final FloatLuminousIntensity times(final FloatLuminousIntensity v)
667 {
668 return new FloatLuminousIntensity(this.si * v.si, LuminousIntensityUnit.SI);
669 }
670
671
672
673
674
675
676
677 public final FloatMagneticFluxDensity times(final FloatMagneticFluxDensity v)
678 {
679 return new FloatMagneticFluxDensity(this.si * v.si, MagneticFluxDensityUnit.SI);
680 }
681
682
683
684
685
686
687 public final FloatMagneticFlux times(final FloatMagneticFlux v)
688 {
689 return new FloatMagneticFlux(this.si * v.si, MagneticFluxUnit.SI);
690 }
691
692
693
694
695
696
697 public final FloatMass times(final FloatMass v)
698 {
699 return new FloatMass(this.si * v.si, MassUnit.SI);
700 }
701
702
703
704
705
706
707 public final FloatPower times(final FloatPower v)
708 {
709 return new FloatPower(this.si * v.si, PowerUnit.SI);
710 }
711
712
713
714
715
716
717 public final FloatPressure times(final FloatPressure v)
718 {
719 return new FloatPressure(this.si * v.si, PressureUnit.SI);
720 }
721
722
723
724
725
726
727 public final FloatRadioActivity times(final FloatRadioActivity v)
728 {
729 return new FloatRadioActivity(this.si * v.si, RadioActivityUnit.SI);
730 }
731
732
733
734
735
736
737 public final FloatSpeed times(final FloatSpeed v)
738 {
739 return new FloatSpeed(this.si * v.si, SpeedUnit.SI);
740 }
741
742
743
744
745
746
747 public final FloatTemperature times(final FloatTemperature v)
748 {
749 return new FloatTemperature(this.si * v.si, TemperatureUnit.SI);
750 }
751
752
753
754
755
756
757 public final FloatDuration times(final FloatDuration v)
758 {
759 return new FloatDuration(this.si * v.si, DurationUnit.SI);
760 }
761
762
763
764
765
766
767 public final FloatTorque times(final FloatTorque v)
768 {
769 return new FloatTorque(this.si * v.si, TorqueUnit.SI);
770 }
771
772
773
774
775
776
777 public final FloatVolume times(final FloatVolume v)
778 {
779 return new FloatVolume(this.si * v.si, VolumeUnit.SI);
780 }
781
782
783
784
785
786
787 public final FloatLinearDensity divide(final FloatLength v)
788 {
789 return new FloatLinearDensity(this.si / v.si, LinearDensityUnit.SI);
790 }
791
792
793
794
795
796
797 public final FloatLength divide(final FloatLinearDensity v)
798 {
799 return new FloatLength(this.si / v.si, LengthUnit.SI);
800 }
801
802
803
804
805
806
807 public final FloatFrequency divide(final FloatDuration v)
808 {
809 return new FloatFrequency(this.si / v.si, FrequencyUnit.SI);
810 }
811
812
813
814
815
816
817 public final FloatDuration divide(final FloatFrequency v)
818 {
819 return new FloatDuration(this.si / v.si, DurationUnit.SI);
820 }
821
822
823
824
825
826
827
828 public final FloatElectricalResistance divide(final FloatElectricalConductance v)
829 {
830 return new FloatElectricalResistance(this.si / v.si, ElectricalResistanceUnit.SI);
831 }
832
833
834
835
836
837
838
839 public final FloatElectricalConductance divide(final FloatElectricalResistance v)
840 {
841 return new FloatElectricalConductance(this.si / v.si, ElectricalConductanceUnit.SI);
842 }
843
844 @Override
845 public FloatDimensionless reciprocal()
846 {
847 return FloatDimensionless.ofSI(1.0f / this.si);
848 }
849
850
851
852
853
854
855
856 public static FloatDimensionless multiply(final FloatScalarRel<?, ?> scalar1, final FloatScalarRel<?, ?> scalar2)
857 {
858 Throw.whenNull(scalar1, "scalar1 cannot be null");
859 Throw.whenNull(scalar2, "scalar2 cannot be null");
860 Throw.when(
861 !scalar1.getDisplayUnit().getQuantity().getSiDimensions()
862 .plus(scalar2.getDisplayUnit().getQuantity().getSiDimensions())
863 .equals(DimensionlessUnit.BASE.getSiDimensions()),
864 IllegalArgumentException.class, "Multiplying %s by %s does not result in instance of type FloatDimensionless",
865 scalar1.toDisplayString(), scalar2.toDisplayString());
866 return new FloatDimensionless(scalar1.si * scalar2.si, DimensionlessUnit.SI);
867 }
868
869
870
871
872
873
874
875 public static FloatDimensionless divide(final FloatScalarRel<?, ?> scalar1, final FloatScalarRel<?, ?> scalar2)
876 {
877 Throw.whenNull(scalar1, "scalar1 cannot be null");
878 Throw.whenNull(scalar2, "scalar2 cannot be null");
879 Throw.when(
880 !scalar1.getDisplayUnit().getQuantity().getSiDimensions()
881 .minus(scalar2.getDisplayUnit().getQuantity().getSiDimensions())
882 .equals(DimensionlessUnit.BASE.getSiDimensions()),
883 IllegalArgumentException.class, "Dividing %s by %s does not result in an instance of type FloatDimensionless",
884 scalar1.toDisplayString(), scalar2.toDisplayString());
885 return new FloatDimensionless(scalar1.si / scalar2.si, DimensionlessUnit.SI);
886 }
887
888 }