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