1 package org.djunits.value.vfloat.scalar;
2
3 import java.util.regex.Matcher;
4
5 import org.djunits.unit.AccelerationUnit;
6 import org.djunits.unit.AngleSolidUnit;
7 import org.djunits.unit.AngleUnit;
8 import org.djunits.unit.AreaUnit;
9 import org.djunits.unit.DensityUnit;
10 import org.djunits.unit.DimensionlessUnit;
11 import org.djunits.unit.DurationUnit;
12 import org.djunits.unit.ElectricalChargeUnit;
13 import org.djunits.unit.ElectricalCurrentUnit;
14 import org.djunits.unit.ElectricalPotentialUnit;
15 import org.djunits.unit.ElectricalResistanceUnit;
16 import org.djunits.unit.EnergyUnit;
17 import org.djunits.unit.FlowMassUnit;
18 import org.djunits.unit.FlowVolumeUnit;
19 import org.djunits.unit.ForceUnit;
20 import org.djunits.unit.FrequencyUnit;
21 import org.djunits.unit.LengthUnit;
22 import org.djunits.unit.LinearDensityUnit;
23 import org.djunits.unit.MassUnit;
24 import org.djunits.unit.MoneyPerAreaUnit;
25 import org.djunits.unit.MoneyPerDurationUnit;
26 import org.djunits.unit.MoneyPerEnergyUnit;
27 import org.djunits.unit.MoneyPerLengthUnit;
28 import org.djunits.unit.MoneyPerMassUnit;
29 import org.djunits.unit.MoneyPerVolumeUnit;
30 import org.djunits.unit.MoneyUnit;
31 import org.djunits.unit.PowerUnit;
32 import org.djunits.unit.PressureUnit;
33 import org.djunits.unit.SpeedUnit;
34 import org.djunits.unit.TemperatureUnit;
35 import org.djunits.unit.TorqueUnit;
36 import org.djunits.unit.Unit;
37 import org.djunits.unit.VolumeUnit;
38 import org.djunits.value.MathFunctionsDimensionless;
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 public class FloatDimensionless extends AbstractFloatScalarRel<DimensionlessUnit, FloatDimensionless>
65 implements MathFunctionsDimensionless<FloatDimensionless>
66 {
67
68 private static final long serialVersionUID = 20150901L;
69
70
71 public static final FloatDimensionless ZERO = new FloatDimensionless(0.0f, DimensionlessUnit.SI);
72
73
74 @SuppressWarnings("checkstyle:constantname")
75 public static final FloatDimensionless NaN = new FloatDimensionless(Float.NaN, DimensionlessUnit.SI);
76
77
78 public static final FloatDimensionless POSITIVE_INFINITY =
79 new FloatDimensionless(Float.POSITIVE_INFINITY, DimensionlessUnit.SI);
80
81
82 public static final FloatDimensionless NEGATIVE_INFINITY =
83 new FloatDimensionless(Float.NEGATIVE_INFINITY, DimensionlessUnit.SI);
84
85
86 public static final FloatDimensionless POS_MAXVALUE = new FloatDimensionless(Float.MAX_VALUE, DimensionlessUnit.SI);
87
88
89 public static final FloatDimensionless NEG_MAXVALUE = new FloatDimensionless(-Float.MAX_VALUE, DimensionlessUnit.SI);
90
91
92
93
94
95
96 public FloatDimensionless(final float value, final DimensionlessUnit unit)
97 {
98 super(value, unit);
99 }
100
101
102
103
104
105 public FloatDimensionless(final FloatDimensionless value)
106 {
107 super(value);
108 }
109
110
111
112
113
114
115 public FloatDimensionless(final double value, final DimensionlessUnit unit)
116 {
117 super((float) value, unit);
118 }
119
120
121 @Override
122 public final FloatDimensionless instantiateRel(final float value, final DimensionlessUnit unit)
123 {
124 return new FloatDimensionless(value, unit);
125 }
126
127
128
129
130
131
132 public static final FloatDimensionless createSI(final float value)
133 {
134 return new FloatDimensionless(value, DimensionlessUnit.SI);
135 }
136
137
138
139
140
141
142
143
144 public static FloatDimensionless interpolate(final FloatDimensionless zero, final FloatDimensionless one, final float ratio)
145 {
146 return new FloatDimensionless(zero.getInUnit() * (1 - ratio) + one.getInUnit(zero.getUnit()) * ratio, zero.getUnit());
147 }
148
149
150
151
152
153
154
155 public static FloatDimensionless max(final FloatDimensionless r1, final FloatDimensionless r2)
156 {
157 return (r1.gt(r2)) ? r1 : r2;
158 }
159
160
161
162
163
164
165
166
167 public static FloatDimensionless max(final FloatDimensionless r1, final FloatDimensionless r2,
168 final FloatDimensionless... rn)
169 {
170 FloatDimensionless maxr = (r1.gt(r2)) ? r1 : r2;
171 for (FloatDimensionless r : rn)
172 {
173 if (r.gt(maxr))
174 {
175 maxr = r;
176 }
177 }
178 return maxr;
179 }
180
181
182
183
184
185
186
187 public static FloatDimensionless min(final FloatDimensionless r1, final FloatDimensionless r2)
188 {
189 return (r1.lt(r2)) ? r1 : r2;
190 }
191
192
193
194
195
196
197
198
199 public static FloatDimensionless min(final FloatDimensionless r1, final FloatDimensionless r2,
200 final FloatDimensionless... rn)
201 {
202 FloatDimensionless minr = (r1.lt(r2)) ? r1 : r2;
203 for (FloatDimensionless r : rn)
204 {
205 if (r.lt(minr))
206 {
207 minr = r;
208 }
209 }
210 return minr;
211 }
212
213
214
215
216
217
218
219
220
221 public static FloatDimensionless valueOf(final String text) throws IllegalArgumentException
222 {
223 if (text == null || text.length() == 0)
224 {
225 throw new IllegalArgumentException("Error parsing FloatDimensionless -- null or empty argument");
226 }
227 Matcher matcher = NUMBER_PATTERN.matcher(text);
228 if (matcher.find())
229 {
230 int index = matcher.end();
231 try
232 {
233 String unitString = text.substring(index).trim();
234 String valueString = text.substring(0, index).trim();
235 for (DimensionlessUnit unit : Unit.getUnits(DimensionlessUnit.class))
236 {
237 if (unit.getDefaultLocaleTextualRepresentations().contains(unitString))
238 {
239 float f = Float.parseFloat(valueString);
240 return new FloatDimensionless(f, unit);
241 }
242 }
243 }
244 catch (Exception exception)
245 {
246 throw new IllegalArgumentException("Error parsing FloatDimensionless from " + text, exception);
247 }
248 }
249 throw new IllegalArgumentException("Error parsing FloatDimensionless from " + text);
250 }
251
252
253 @Override
254 public final FloatDimensionless acos()
255 {
256 return instantiateRel((float) Math.acos(getInUnit()), getUnit());
257 }
258
259
260 @Override
261 public final FloatDimensionless asin()
262 {
263 return instantiateRel((float) Math.asin(getInUnit()), getUnit());
264 }
265
266
267 @Override
268 public final FloatDimensionless atan()
269 {
270 return instantiateRel((float) Math.atan(getInUnit()), getUnit());
271 }
272
273
274 @Override
275 public final FloatDimensionless cbrt()
276 {
277 return instantiateRel((float) Math.cbrt(getInUnit()), getUnit());
278 }
279
280
281 @Override
282 public final FloatDimensionless cos()
283 {
284 return instantiateRel((float) Math.cos(getInUnit()), getUnit());
285 }
286
287
288 @Override
289 public final FloatDimensionless cosh()
290 {
291 return instantiateRel((float) Math.cosh(getInUnit()), getUnit());
292 }
293
294
295 @Override
296 public final FloatDimensionless exp()
297 {
298 return instantiateRel((float) Math.exp(getInUnit()), getUnit());
299 }
300
301
302 @Override
303 public final FloatDimensionless expm1()
304 {
305 return instantiateRel((float) Math.expm1(getInUnit()), getUnit());
306 }
307
308
309 @Override
310 public final FloatDimensionless log()
311 {
312 return instantiateRel((float) Math.log(getInUnit()), getUnit());
313 }
314
315
316 @Override
317 public final FloatDimensionless log10()
318 {
319 return instantiateRel((float) Math.log10(getInUnit()), getUnit());
320 }
321
322
323 @Override
324 public final FloatDimensionless log1p()
325 {
326 return instantiateRel((float) Math.log1p(getInUnit()), getUnit());
327 }
328
329
330 @Override
331 public final FloatDimensionless pow(final double x)
332 {
333 return instantiateRel((float) Math.pow(getInUnit(), x), getUnit());
334 }
335
336
337 @Override
338 public final FloatDimensionless signum()
339 {
340 return instantiateRel(Math.signum(getInUnit()), getUnit());
341 }
342
343
344 @Override
345 public final FloatDimensionless sin()
346 {
347 return instantiateRel((float) Math.sin(getInUnit()), getUnit());
348 }
349
350
351 @Override
352 public final FloatDimensionless sinh()
353 {
354 return instantiateRel((float) Math.sinh(getInUnit()), getUnit());
355 }
356
357
358 @Override
359 public final FloatDimensionless sqrt()
360 {
361 return instantiateRel((float) Math.sqrt(getInUnit()), getUnit());
362 }
363
364
365 @Override
366 public final FloatDimensionless tan()
367 {
368 return instantiateRel((float) Math.tan(getInUnit()), getUnit());
369 }
370
371
372 @Override
373 public final FloatDimensionless tanh()
374 {
375 return instantiateRel((float) Math.tanh(getInUnit()), getUnit());
376 }
377
378
379 @Override
380 public final FloatDimensionless inv()
381 {
382 return instantiateRel(1.0f / getInUnit(), getUnit());
383 }
384
385
386
387
388
389
390 public final FloatDimensionless divideBy(final FloatDimensionless v)
391 {
392 return new FloatDimensionless(this.si / v.si, DimensionlessUnit.SI);
393 }
394
395
396
397
398
399
400 public final FloatAcceleration multiplyBy(final FloatAcceleration v)
401 {
402 return new FloatAcceleration(this.si * v.si, AccelerationUnit.SI);
403 }
404
405
406
407
408
409
410 public final FloatAngle multiplyBy(final FloatAngle v)
411 {
412 return new FloatAngle(this.si * v.si, AngleUnit.SI);
413 }
414
415
416
417
418
419
420 public final FloatAngleSolid multiplyBy(final FloatAngleSolid v)
421 {
422 return new FloatAngleSolid(this.si * v.si, AngleSolidUnit.SI);
423 }
424
425
426
427
428
429
430 public final FloatArea multiplyBy(final FloatArea v)
431 {
432 return new FloatArea(this.si * v.si, AreaUnit.SI);
433 }
434
435
436
437
438
439
440 public final FloatDensity multiplyBy(final FloatDensity v)
441 {
442 return new FloatDensity(this.si * v.si, DensityUnit.SI);
443 }
444
445
446
447
448
449
450 public final FloatDimensionless multiplyBy(final FloatDimensionless v)
451 {
452 return new FloatDimensionless(this.si * v.si, DimensionlessUnit.SI);
453 }
454
455
456
457
458
459
460
461 public final FloatElectricalCharge multiplyBy(final FloatElectricalCharge v)
462 {
463 return new FloatElectricalCharge(this.si * v.si, ElectricalChargeUnit.SI);
464 }
465
466
467
468
469
470
471
472 public final FloatElectricalCurrent multiplyBy(final FloatElectricalCurrent v)
473 {
474 return new FloatElectricalCurrent(this.si * v.si, ElectricalCurrentUnit.SI);
475 }
476
477
478
479
480
481
482
483 public final FloatElectricalPotential multiplyBy(final FloatElectricalPotential v)
484 {
485 return new FloatElectricalPotential(this.si * v.si, ElectricalPotentialUnit.SI);
486 }
487
488
489
490
491
492
493
494 public final FloatElectricalResistance multiplyBy(final FloatElectricalResistance v)
495 {
496 return new FloatElectricalResistance(this.si * v.si, ElectricalResistanceUnit.SI);
497 }
498
499
500
501
502
503
504 public final FloatEnergy multiplyBy(final FloatEnergy v)
505 {
506 return new FloatEnergy(this.si * v.si, EnergyUnit.SI);
507 }
508
509
510
511
512
513
514 public final FloatFlowMass multiplyBy(final FloatFlowMass v)
515 {
516 return new FloatFlowMass(this.si * v.si, FlowMassUnit.SI);
517 }
518
519
520
521
522
523
524 public final FloatFlowVolume multiplyBy(final FloatFlowVolume v)
525 {
526 return new FloatFlowVolume(this.si * v.si, FlowVolumeUnit.SI);
527 }
528
529
530
531
532
533
534 public final FloatForce multiplyBy(final FloatForce v)
535 {
536 return new FloatForce(this.si * v.si, ForceUnit.SI);
537 }
538
539
540
541
542
543
544 public final FloatFrequency multiplyBy(final FloatFrequency v)
545 {
546 return new FloatFrequency(this.si * v.si, FrequencyUnit.SI);
547 }
548
549
550
551
552
553
554 public final FloatLength multiplyBy(final FloatLength v)
555 {
556 return new FloatLength(this.si * v.si, LengthUnit.SI);
557 }
558
559
560
561
562
563
564 public final FloatLinearDensity multiplyBy(final FloatLinearDensity v)
565 {
566 return new FloatLinearDensity(this.si * v.si, LinearDensityUnit.SI);
567 }
568
569
570
571
572
573
574 public final FloatMass multiplyBy(final FloatMass v)
575 {
576 return new FloatMass(this.si * v.si, MassUnit.SI);
577 }
578
579
580
581
582
583
584 public final FloatMoney multiplyBy(final FloatMoney v)
585 {
586 return new FloatMoney(this.si * v.si, MoneyUnit.getStandardMoneyUnit());
587 }
588
589
590
591
592
593
594 public final FloatMoneyPerArea multiplyBy(final FloatMoneyPerArea v)
595 {
596 return new FloatMoneyPerArea(this.si * v.si, MoneyPerAreaUnit.getStandardMoneyPerAreaUnit());
597 }
598
599
600
601
602
603
604
605 public final FloatMoneyPerEnergy multiplyBy(final FloatMoneyPerEnergy v)
606 {
607 return new FloatMoneyPerEnergy(this.si * v.si, MoneyPerEnergyUnit.getStandardMoneyPerEnergyUnit());
608 }
609
610
611
612
613
614
615
616 public final FloatMoneyPerLength multiplyBy(final FloatMoneyPerLength v)
617 {
618 return new FloatMoneyPerLength(this.si * v.si, MoneyPerLengthUnit.getStandardMoneyPerLengthUnit());
619 }
620
621
622
623
624
625
626 public final FloatMoneyPerMass multiplyBy(final FloatMoneyPerMass v)
627 {
628 return new FloatMoneyPerMass(this.si * v.si, MoneyPerMassUnit.getStandardMoneyPerMassUnit());
629 }
630
631
632
633
634
635
636
637 public final FloatMoneyPerDuration multiplyBy(final FloatMoneyPerDuration v)
638 {
639 return new FloatMoneyPerDuration(this.si * v.si, MoneyPerDurationUnit.getStandardMoneyPerDurationUnit());
640 }
641
642
643
644
645
646
647
648 public final FloatMoneyPerVolume multiplyBy(final FloatMoneyPerVolume v)
649 {
650 return new FloatMoneyPerVolume(this.si * v.si, MoneyPerVolumeUnit.getStandardMoneyPerVolumeUnit());
651 }
652
653
654
655
656
657
658 public final FloatPower multiplyBy(final FloatPower v)
659 {
660 return new FloatPower(this.si * v.si, PowerUnit.SI);
661 }
662
663
664
665
666
667
668 public final FloatPressure multiplyBy(final FloatPressure v)
669 {
670 return new FloatPressure(this.si * v.si, PressureUnit.SI);
671 }
672
673
674
675
676
677
678 public final FloatSpeed multiplyBy(final FloatSpeed v)
679 {
680 return new FloatSpeed(this.si * v.si, SpeedUnit.SI);
681 }
682
683
684
685
686
687
688 public final FloatTemperature multiplyBy(final FloatTemperature v)
689 {
690 return new FloatTemperature(this.si * v.si, TemperatureUnit.SI);
691 }
692
693
694
695
696
697
698 public final FloatDuration multiplyBy(final FloatDuration v)
699 {
700 return new FloatDuration(this.si * v.si, DurationUnit.SI);
701 }
702
703
704
705
706
707
708 public final FloatTorque multiplyBy(final FloatTorque v)
709 {
710 return new FloatTorque(this.si * v.si, TorqueUnit.SI);
711 }
712
713
714
715
716
717
718 public final FloatVolume multiplyBy(final FloatVolume v)
719 {
720 return new FloatVolume(this.si * v.si, VolumeUnit.SI);
721 }
722
723
724
725
726
727
728 public final FloatLinearDensity divideBy(final FloatLength v)
729 {
730 return new FloatLinearDensity(this.si / v.si, LinearDensityUnit.SI);
731 }
732
733
734
735
736
737
738 public final FloatLength divideBy(final FloatLinearDensity v)
739 {
740 return new FloatLength(this.si / v.si, LengthUnit.SI);
741 }
742
743
744
745
746
747
748 public final FloatFrequency divideBy(final FloatDuration v)
749 {
750 return new FloatFrequency(this.si / v.si, FrequencyUnit.SI);
751 }
752
753
754
755
756
757
758 public final FloatDuration divideBy(final FloatFrequency v)
759 {
760 return new FloatDuration(this.si / v.si, DurationUnit.SI);
761 }
762
763 }