View Javadoc
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   * Easy access methods for the Dimensionless DoubleScalar, which is relative by definition.
52   * <p>
53   * Copyright (c) 2013-2024 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-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      /** Constant with value zero. */
67      public static final Dimensionless ZERO = new Dimensionless(0.0, DimensionlessUnit.SI);
68  
69      /** Constant with value one. */
70      public static final Dimensionless ONE = new Dimensionless(1.0, DimensionlessUnit.SI);
71  
72      /** Constant with value NaN. */
73      @SuppressWarnings("checkstyle:constantname")
74      public static final Dimensionless NaN = new Dimensionless(Double.NaN, DimensionlessUnit.SI);
75  
76      /** Constant with value POSITIVE_INFINITY. */
77      public static final Dimensionless POSITIVE_INFINITY = new Dimensionless(Double.POSITIVE_INFINITY, DimensionlessUnit.SI);
78  
79      /** Constant with value NEGATIVE_INFINITY. */
80      public static final Dimensionless NEGATIVE_INFINITY = new Dimensionless(Double.NEGATIVE_INFINITY, DimensionlessUnit.SI);
81  
82      /** Constant with value MAX_VALUE. */
83      public static final Dimensionless POS_MAXVALUE = new Dimensionless(Double.MAX_VALUE, DimensionlessUnit.SI);
84  
85      /** Constant with value -MAX_VALUE. */
86      public static final Dimensionless NEG_MAXVALUE = new Dimensionless(-Double.MAX_VALUE, DimensionlessUnit.SI);
87  
88      /**
89       * Construct Dimensionless scalar.
90       * @param value double; the double value
91       * @param unit DimensionlessUnit; unit for the double value
92       */
93      public Dimensionless(final double value, final DimensionlessUnit unit)
94      {
95          super(value, unit);
96      }
97  
98      /**
99       * Construct Dimensionless scalar.
100      * @param value Dimensionless; Scalar from which to construct this instance
101      */
102     public Dimensionless(final Dimensionless value)
103     {
104         super(value);
105     }
106 
107     /** {@inheritDoc} */
108     @Override
109     public final Dimensionless instantiateRel(final double value, final DimensionlessUnit unit)
110     {
111         return new Dimensionless(value, unit);
112     }
113 
114     /**
115      * Construct Dimensionless scalar.
116      * @param value double; the double value in SI units
117      * @return Dimensionless; the new scalar with the SI value
118      */
119     public static final Dimensionless instantiateSI(final double value)
120     {
121         return new Dimensionless(value, DimensionlessUnit.SI);
122     }
123 
124     /**
125      * Interpolate between two values.
126      * @param zero Dimensionless; the low value
127      * @param one Dimensionless; the high value
128      * @param ratio double; the ratio between 0 and 1, inclusive
129      * @return Dimensionless; a Scalar at the ratio between
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      * Return the maximum value of two relative scalars.
139      * @param r1 Dimensionless; the first scalar
140      * @param r2 Dimensionless; the second scalar
141      * @return Dimensionless; the maximum value of two relative scalars
142      */
143     public static Dimensionless max(final Dimensionless r1, final Dimensionless r2)
144     {
145         return r1.gt(r2) ? r1 : r2;
146     }
147 
148     /**
149      * Return the maximum value of more than two relative scalars.
150      * @param r1 Dimensionless; the first scalar
151      * @param r2 Dimensionless; the second scalar
152      * @param rn Dimensionless...; the other scalars
153      * @return Dimensionless; the maximum value of more than two relative scalars
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      * Return the minimum value of two relative scalars.
170      * @param r1 Dimensionless; the first scalar
171      * @param r2 Dimensionless; the second scalar
172      * @return Dimensionless; the minimum value of two relative scalars
173      */
174     public static Dimensionless min(final Dimensionless r1, final Dimensionless r2)
175     {
176         return r1.lt(r2) ? r1 : r2;
177     }
178 
179     /**
180      * Return the minimum value of more than two relative scalars.
181      * @param r1 Dimensionless; the first scalar
182      * @param r2 Dimensionless; the second scalar
183      * @param rn Dimensionless...; the other scalars
184      * @return Dimensionless; the minimum value of more than two relative scalars
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      * Returns a Dimensionless representation of a textual representation of a value with a unit. The String representation that
201      * can be parsed is the double value in the unit, followed by a localized or English abbreviation of the unit. Spaces are
202      * allowed, but not required, between the value and the unit.
203      * @param text String; the textual representation to parse into a Dimensionless
204      * @return Dimensionless; the Scalar representation of the value in its unit
205      * @throws IllegalArgumentException when the text cannot be parsed
206      * @throws NullPointerException when the text argument is null
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      * Returns a Dimensionless based on a value and the textual representation of the unit, which can be localized.
231      * @param value double; the value to use
232      * @param unitString String; the textual representation of the unit
233      * @return Dimensionless; the Scalar representation of the value in its unit
234      * @throws IllegalArgumentException when the unit cannot be parsed or is incorrect
235      * @throws NullPointerException when the unitString argument is null
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     /** {@inheritDoc} */
247     @Override
248     public String toStringSIPrefixed(final int smallestPower, final int biggestPower)
249     {
250         return toString();
251     }
252 
253     /** {@inheritDoc} */
254     @Override
255     public final Dimensionless acos()
256     {
257         return instantiateRel(Math.acos(getInUnit()), getDisplayUnit());
258     }
259 
260     /** {@inheritDoc} */
261     @Override
262     public final Dimensionless asin()
263     {
264         return instantiateRel(Math.asin(getInUnit()), getDisplayUnit());
265     }
266 
267     /** {@inheritDoc} */
268     @Override
269     public final Dimensionless atan()
270     {
271         return instantiateRel(Math.atan(getInUnit()), getDisplayUnit());
272     }
273 
274     /** {@inheritDoc} */
275     @Override
276     public final Dimensionless cbrt()
277     {
278         return instantiateRel(Math.cbrt(getInUnit()), getDisplayUnit());
279     }
280 
281     /** {@inheritDoc} */
282     @Override
283     public final Dimensionless cos()
284     {
285         return instantiateRel(Math.cos(getInUnit()), getDisplayUnit());
286     }
287 
288     /** {@inheritDoc} */
289     @Override
290     public final Dimensionless cosh()
291     {
292         return instantiateRel(Math.cosh(getInUnit()), getDisplayUnit());
293     }
294 
295     /** {@inheritDoc} */
296     @Override
297     public final Dimensionless exp()
298     {
299         return instantiateRel(Math.exp(getInUnit()), getDisplayUnit());
300     }
301 
302     /** {@inheritDoc} */
303     @Override
304     public final Dimensionless expm1()
305     {
306         return instantiateRel(Math.expm1(getInUnit()), getDisplayUnit());
307     }
308 
309     /** {@inheritDoc} */
310     @Override
311     public final Dimensionless log()
312     {
313         return instantiateRel(Math.log(getInUnit()), getDisplayUnit());
314     }
315 
316     /** {@inheritDoc} */
317     @Override
318     public final Dimensionless log10()
319     {
320         return instantiateRel(Math.log10(getInUnit()), getDisplayUnit());
321     }
322 
323     /** {@inheritDoc} */
324     @Override
325     public final Dimensionless log1p()
326     {
327         return instantiateRel(Math.log1p(getInUnit()), getDisplayUnit());
328     }
329 
330     /** {@inheritDoc} */
331     @Override
332     public final Dimensionless pow(final double x)
333     {
334         return instantiateRel(Math.pow(getInUnit(), x), getDisplayUnit());
335     }
336 
337     /** {@inheritDoc} */
338     @Override
339     public final Dimensionless signum()
340     {
341         return instantiateRel(Math.signum(getInUnit()), getDisplayUnit());
342     }
343 
344     /** {@inheritDoc} */
345     @Override
346     public final Dimensionless sin()
347     {
348         return instantiateRel(Math.sin(getInUnit()), getDisplayUnit());
349     }
350 
351     /** {@inheritDoc} */
352     @Override
353     public final Dimensionless sinh()
354     {
355         return instantiateRel(Math.sinh(getInUnit()), getDisplayUnit());
356     }
357 
358     /** {@inheritDoc} */
359     @Override
360     public final Dimensionless sqrt()
361     {
362         return instantiateRel(Math.sqrt(getInUnit()), getDisplayUnit());
363     }
364 
365     /** {@inheritDoc} */
366     @Override
367     public final Dimensionless tan()
368     {
369         return instantiateRel(Math.tan(getInUnit()), getDisplayUnit());
370     }
371 
372     /** {@inheritDoc} */
373     @Override
374     public final Dimensionless tanh()
375     {
376         return instantiateRel(Math.tanh(getInUnit()), getDisplayUnit());
377     }
378 
379     /** {@inheritDoc} */
380     @Override
381     public final Dimensionless inv()
382     {
383         return instantiateRel(1.0 / getInUnit(), getDisplayUnit());
384     }
385 
386     /**
387      * Calculate the division of Dimensionless and Dimensionless, which results in a Dimensionless scalar.
388      * @param v Dimensionless; scalar
389      * @return Dimensionless; scalar as a division of Dimensionless and Dimensionless
390      */
391     public final Dimensionless divide(final Dimensionless v)
392     {
393         return new Dimensionless(this.si / v.si, DimensionlessUnit.SI);
394     }
395 
396     /**
397      * Calculate the multiplication of Dimensionless and AbsorbedDose, which results in a AbsorbedDose scalar.
398      * @param v Dimensionless; scalar
399      * @return AbsorbedDose; scalar as a multiplication of Dimensionless and AbsorbedDose
400      */
401     public final AbsorbedDose times(final AbsorbedDose v)
402     {
403         return new AbsorbedDose(this.si * v.si, AbsorbedDoseUnit.SI);
404     }
405 
406     /**
407      * Calculate the multiplication of Dimensionless and Acceleration, which results in a Acceleration scalar.
408      * @param v Dimensionless; scalar
409      * @return Acceleration; scalar as a multiplication of Dimensionless and Acceleration
410      */
411     public final Acceleration times(final Acceleration v)
412     {
413         return new Acceleration(this.si * v.si, AccelerationUnit.SI);
414     }
415 
416     /**
417      * Calculate the multiplication of Dimensionless and AmountOfSubstance, which results in a AmountOfSubstance scalar.
418      * @param v Dimensionless; scalar
419      * @return AmountOfSubstance; scalar as a multiplication of Dimensionless and AmountOfSubstance
420      */
421     public final AmountOfSubstance times(final AmountOfSubstance v)
422     {
423         return new AmountOfSubstance(this.si * v.si, AmountOfSubstanceUnit.SI);
424     }
425 
426     /**
427      * Calculate the multiplication of Dimensionless and Angle, which results in a Angle scalar.
428      * @param v Dimensionless; scalar
429      * @return Angle; scalar as a multiplication of Dimensionless and Angle
430      */
431     public final Angle times(final Angle v)
432     {
433         return new Angle(this.si * v.si, AngleUnit.SI);
434     }
435 
436     /**
437      * Calculate the multiplication of Dimensionless and SolidAngle, which results in a SolidAngle scalar.
438      * @param v Dimensionless; scalar
439      * @return SolidAngle; scalar as a multiplication of Dimensionless and SolidAngle
440      */
441     public final SolidAngle times(final SolidAngle v)
442     {
443         return new SolidAngle(this.si * v.si, SolidAngleUnit.SI);
444     }
445 
446     /**
447      * Calculate the multiplication of Dimensionless and Area, which results in a Area scalar.
448      * @param v Dimensionless; scalar
449      * @return Area; scalar as a multiplication of Dimensionless and Area
450      */
451     public final Area times(final Area v)
452     {
453         return new Area(this.si * v.si, AreaUnit.SI);
454     }
455 
456     /**
457      * Calculate the multiplication of Dimensionless and CatalyticActivity, which results in a CatalyticActivity scalar.
458      * @param v Dimensionless; scalar
459      * @return CatalyticActivity; scalar as a multiplication of Dimensionless and CatalyticActivity
460      */
461     public final CatalyticActivity times(final CatalyticActivity v)
462     {
463         return new CatalyticActivity(this.si * v.si, CatalyticActivityUnit.SI);
464     }
465 
466     /**
467      * Calculate the multiplication of Dimensionless and Density, which results in a Density scalar.
468      * @param v Dimensionless; scalar
469      * @return Density; scalar as a multiplication of Dimensionless and Density
470      */
471     public final Density times(final Density v)
472     {
473         return new Density(this.si * v.si, DensityUnit.SI);
474     }
475 
476     /**
477      * Calculate the multiplication of Dimensionless and Dimensionless, which results in a Dimensionless scalar.
478      * @param v Dimensionless; scalar
479      * @return Dimensionless; scalar as a multiplication of Dimensionless and Dimensionless
480      */
481     public final Dimensionless times(final Dimensionless v)
482     {
483         return new Dimensionless(this.si * v.si, DimensionlessUnit.SI);
484     }
485 
486     /**
487      * Calculate the multiplication of Dimensionless and ElectricalCapacitance, which results in a ElectricalCapacitance scalar.
488      * @param v Dimensionless; scalar
489      * @return ElectricalCapacitance; scalar as a multiplication of Dimensionless and ElectricalCapacitance
490      */
491     public final ElectricalCapacitance times(final ElectricalCapacitance v)
492     {
493         return new ElectricalCapacitance(this.si * v.si, ElectricalCapacitanceUnit.SI);
494     }
495 
496     /**
497      * Calculate the multiplication of Dimensionless and ElectricalCharge, which results in a ElectricalCharge scalar.
498      * @param v Dimensionless; scalar
499      * @return ElectricalCharge; scalar as a multiplication of Dimensionless and ElectricalCharge
500      */
501     public final ElectricalCharge times(final ElectricalCharge v)
502     {
503         return new ElectricalCharge(this.si * v.si, ElectricalChargeUnit.SI);
504     }
505 
506     /**
507      * Calculate the multiplication of Dimensionless and ElectricalConductance, which results in a ElectricalConductance scalar.
508      * @param v Dimensionless; scalar
509      * @return ElectricalConductance; scalar as a multiplication of Dimensionless and ElectricalConductance
510      */
511     public final ElectricalConductance times(final ElectricalConductance v)
512     {
513         return new ElectricalConductance(this.si * v.si, ElectricalConductanceUnit.SI);
514     }
515 
516     /**
517      * Calculate the multiplication of Dimensionless and ElectricalCurrent, which results in a ElectricalCurrent scalar.
518      * @param v Dimensionless; scalar
519      * @return ElectricalCurrent; scalar as a multiplication of Dimensionless and ElectricalCurrent
520      */
521     public final ElectricalCurrent times(final ElectricalCurrent v)
522     {
523         return new ElectricalCurrent(this.si * v.si, ElectricalCurrentUnit.SI);
524     }
525 
526     /**
527      * Calculate the multiplication of Dimensionless and ElectricalInductance, which results in a ElectricalInductance scalar.
528      * @param v Dimensionless; scalar
529      * @return ElectricalInductance; scalar as a multiplication of Dimensionless and ElectricalInductance
530      */
531     public final ElectricalInductance times(final ElectricalInductance v)
532     {
533         return new ElectricalInductance(this.si * v.si, ElectricalInductanceUnit.SI);
534     }
535 
536     /**
537      * Calculate the multiplication of Dimensionless and ElectricalPotential, which results in a ElectricalPotential scalar.
538      * @param v Dimensionless; scalar
539      * @return ElectricalPotential; scalar as a multiplication of Dimensionless and ElectricalPotential
540      */
541     public final ElectricalPotential times(final ElectricalPotential v)
542     {
543         return new ElectricalPotential(this.si * v.si, ElectricalPotentialUnit.SI);
544     }
545 
546     /**
547      * Calculate the multiplication of Dimensionless and ElectricalResistance, which results in a ElectricalResistance scalar.
548      * @param v Dimensionless; scalar
549      * @return ElectricalResistance; scalar as a multiplication of Dimensionless and ElectricalResistance
550      */
551     public final ElectricalResistance times(final ElectricalResistance v)
552     {
553         return new ElectricalResistance(this.si * v.si, ElectricalResistanceUnit.SI);
554     }
555 
556     /**
557      * Calculate the multiplication of Dimensionless and Energy, which results in a Energy scalar.
558      * @param v Dimensionless; scalar
559      * @return Energy; scalar as a multiplication of Dimensionless and Energy
560      */
561     public final Energy times(final Energy v)
562     {
563         return new Energy(this.si * v.si, EnergyUnit.SI);
564     }
565 
566     /**
567      * Calculate the multiplication of Dimensionless and EquivalentDose, which results in a EquivalentDose scalar.
568      * @param v Dimensionless; scalar
569      * @return EquivalentDose; scalar as a multiplication of Dimensionless and EquivalentDose
570      */
571     public final EquivalentDose times(final EquivalentDose v)
572     {
573         return new EquivalentDose(this.si * v.si, EquivalentDoseUnit.SI);
574     }
575 
576     /**
577      * Calculate the multiplication of Dimensionless and FlowMass, which results in a FlowMass scalar.
578      * @param v Dimensionless; scalar
579      * @return FlowMass; scalar as a multiplication of Dimensionless and FlowMass
580      */
581     public final FlowMass times(final FlowMass v)
582     {
583         return new FlowMass(this.si * v.si, FlowMassUnit.SI);
584     }
585 
586     /**
587      * Calculate the multiplication of Dimensionless and FlowVolume, which results in a FlowVolume scalar.
588      * @param v Dimensionless; scalar
589      * @return FlowVolume; scalar as a multiplication of Dimensionless and FlowVolume
590      */
591     public final FlowVolume times(final FlowVolume v)
592     {
593         return new FlowVolume(this.si * v.si, FlowVolumeUnit.SI);
594     }
595 
596     /**
597      * Calculate the multiplication of Dimensionless and Force, which results in a Force scalar.
598      * @param v Dimensionless; scalar
599      * @return Force; scalar as a multiplication of Dimensionless and Force
600      */
601     public final Force times(final Force v)
602     {
603         return new Force(this.si * v.si, ForceUnit.SI);
604     }
605 
606     /**
607      * Calculate the multiplication of Dimensionless and Frequency, which results in a Frequency scalar.
608      * @param v Dimensionless; scalar
609      * @return Frequency; scalar as a multiplication of Dimensionless and Frequency
610      */
611     public final Frequency times(final Frequency v)
612     {
613         return new Frequency(this.si * v.si, FrequencyUnit.SI);
614     }
615 
616     /**
617      * Calculate the multiplication of Dimensionless and Illuminance, which results in a Illuminance scalar.
618      * @param v Dimensionless; scalar
619      * @return Illuminance; scalar as a multiplication of Dimensionless and Illuminance
620      */
621     public final Illuminance times(final Illuminance v)
622     {
623         return new Illuminance(this.si * v.si, IlluminanceUnit.SI);
624     }
625 
626     /**
627      * Calculate the multiplication of Dimensionless and Length, which results in a Length scalar.
628      * @param v Dimensionless; scalar
629      * @return Length; scalar as a multiplication of Dimensionless and Length
630      */
631     public final Length times(final Length v)
632     {
633         return new Length(this.si * v.si, LengthUnit.SI);
634     }
635 
636     /**
637      * Calculate the multiplication of Dimensionless and LinearDensity, which results in a LinearDensity scalar.
638      * @param v Dimensionless; scalar
639      * @return LinearDensity; scalar as a multiplication of Dimensionless and LinearDensity
640      */
641     public final LinearDensity times(final LinearDensity v)
642     {
643         return new LinearDensity(this.si * v.si, LinearDensityUnit.SI);
644     }
645 
646     /**
647      * Calculate the multiplication of Dimensionless and LuminousFlux, which results in a LuminousFlux scalar.
648      * @param v Dimensionless; scalar
649      * @return LuminousFlux; scalar as a multiplication of Dimensionless and LuminousFlux
650      */
651     public final LuminousFlux times(final LuminousFlux v)
652     {
653         return new LuminousFlux(this.si * v.si, LuminousFluxUnit.SI);
654     }
655 
656     /**
657      * Calculate the multiplication of Dimensionless and LuminousIntensity, which results in a LuminousIntensity scalar.
658      * @param v Dimensionless; scalar
659      * @return LuminousIntensity; scalar as a multiplication of Dimensionless and LuminousIntensity
660      */
661     public final LuminousIntensity times(final LuminousIntensity v)
662     {
663         return new LuminousIntensity(this.si * v.si, LuminousIntensityUnit.SI);
664     }
665 
666     /**
667      * Calculate the multiplication of Dimensionless and MagneticFluxDensity, which results in a MagneticFluxDensity scalar.
668      * @param v Dimensionless; scalar
669      * @return MagneticFluxDensity; scalar as a multiplication of Dimensionless and MagneticFluxDensity
670      */
671     public final MagneticFluxDensity times(final MagneticFluxDensity v)
672     {
673         return new MagneticFluxDensity(this.si * v.si, MagneticFluxDensityUnit.SI);
674     }
675 
676     /**
677      * Calculate the multiplication of Dimensionless and MagneticFlux, which results in a MagneticFlux scalar.
678      * @param v Dimensionless; scalar
679      * @return MagneticFlux; scalar as a multiplication of Dimensionless and MagneticFlux
680      */
681     public final MagneticFlux times(final MagneticFlux v)
682     {
683         return new MagneticFlux(this.si * v.si, MagneticFluxUnit.SI);
684     }
685 
686     /**
687      * Calculate the multiplication of Dimensionless and Mass, which results in a Mass scalar.
688      * @param v Dimensionless; scalar
689      * @return Mass; scalar as a multiplication of Dimensionless and Mass
690      */
691     public final Mass times(final Mass v)
692     {
693         return new Mass(this.si * v.si, MassUnit.SI);
694     }
695 
696     /**
697      * Calculate the multiplication of Dimensionless and Power, which results in a Power scalar.
698      * @param v Dimensionless; scalar
699      * @return Power; scalar as a multiplication of Dimensionless and Power
700      */
701     public final Power times(final Power v)
702     {
703         return new Power(this.si * v.si, PowerUnit.SI);
704     }
705 
706     /**
707      * Calculate the multiplication of Dimensionless and Pressure, which results in a Pressure scalar.
708      * @param v Dimensionless; scalar
709      * @return Pressure; scalar as a multiplication of Dimensionless and Pressure
710      */
711     public final Pressure times(final Pressure v)
712     {
713         return new Pressure(this.si * v.si, PressureUnit.SI);
714     }
715 
716     /**
717      * Calculate the multiplication of Dimensionless and RadioActivity, which results in a RadioActivity scalar.
718      * @param v Dimensionless; scalar
719      * @return RadioActivity; scalar as a multiplication of Dimensionless and RadioActivity
720      */
721     public final RadioActivity times(final RadioActivity v)
722     {
723         return new RadioActivity(this.si * v.si, RadioActivityUnit.SI);
724     }
725 
726     /**
727      * Calculate the multiplication of Dimensionless and Speed, which results in a Speed scalar.
728      * @param v Dimensionless; scalar
729      * @return Speed; scalar as a multiplication of Dimensionless and Speed
730      */
731     public final Speed times(final Speed v)
732     {
733         return new Speed(this.si * v.si, SpeedUnit.SI);
734     }
735 
736     /**
737      * Calculate the multiplication of Dimensionless and Temperature, which results in a Temperature scalar.
738      * @param v Dimensionless; scalar
739      * @return Temperature; scalar as a multiplication of Dimensionless and Temperature
740      */
741     public final Temperature times(final Temperature v)
742     {
743         return new Temperature(this.si * v.si, TemperatureUnit.SI);
744     }
745 
746     /**
747      * Calculate the multiplication of Dimensionless and Duration, which results in a Duration scalar.
748      * @param v Dimensionless; scalar
749      * @return Duration; scalar as a multiplication of Dimensionless and Duration
750      */
751     public final Duration times(final Duration v)
752     {
753         return new Duration(this.si * v.si, DurationUnit.SI);
754     }
755 
756     /**
757      * Calculate the multiplication of Dimensionless and Torque, which results in a Torque scalar.
758      * @param v Dimensionless; scalar
759      * @return Torque; scalar as a multiplication of Dimensionless and Torque
760      */
761     public final Torque times(final Torque v)
762     {
763         return new Torque(this.si * v.si, TorqueUnit.SI);
764     }
765 
766     /**
767      * Calculate the multiplication of Dimensionless and Volume, which results in a Volume scalar.
768      * @param v Dimensionless; scalar
769      * @return Volume; scalar as a multiplication of Dimensionless and Volume
770      */
771     public final Volume times(final Volume v)
772     {
773         return new Volume(this.si * v.si, VolumeUnit.SI);
774     }
775 
776     /**
777      * Calculate the division of Dimensionless and Length, which results in a LinearDensity scalar.
778      * @param v Dimensionless; scalar
779      * @return LinearDensity; scalar as a division of Dimensionless and Length
780      */
781     public final LinearDensity divide(final Length v)
782     {
783         return new LinearDensity(this.si / v.si, LinearDensityUnit.SI);
784     }
785 
786     /**
787      * Calculate the division of Dimensionless and LinearDensity, which results in a Length scalar.
788      * @param v Dimensionless; scalar
789      * @return Length; scalar as a division of Dimensionless and LinearDensity
790      */
791     public final Length divide(final LinearDensity v)
792     {
793         return new Length(this.si / v.si, LengthUnit.SI);
794     }
795 
796     /**
797      * Calculate the division of Dimensionless and Duration, which results in a Frequency scalar.
798      * @param v Dimensionless; scalar
799      * @return Frequency; scalar as a division of Dimensionless and Duration
800      */
801     public final Frequency divide(final Duration v)
802     {
803         return new Frequency(this.si / v.si, FrequencyUnit.SI);
804     }
805 
806     /**
807      * Calculate the division of Dimensionless and Frequency, which results in a Duration scalar.
808      * @param v Dimensionless; scalar
809      * @return Duration; scalar as a division of Dimensionless and Frequency
810      */
811     public final Duration divide(final Frequency v)
812     {
813         return new Duration(this.si / v.si, DurationUnit.SI);
814     }
815 
816     /**
817      * Calculate the division of Dimensionless and ElectricalConductance, which results in a ElectricalResistance scalar.
818      * @param v Dimensionless; scalar
819      * @return ElectricalResistance; scalar as a division of Dimensionless and ElectricalConductance
820      */
821     public final ElectricalResistance divide(final ElectricalConductance v)
822     {
823         return new ElectricalResistance(this.si / v.si, ElectricalResistanceUnit.SI);
824     }
825 
826     /**
827      * Calculate the division of Dimensionless and ElectricalResistance, which results in a ElectricalConductance scalar.
828      * @param v Dimensionless; scalar
829      * @return ElectricalConductance; scalar as a division of Dimensionless and ElectricalResistance
830      */
831     public final ElectricalConductance divide(final ElectricalResistance v)
832     {
833         return new ElectricalConductance(this.si / v.si, ElectricalConductanceUnit.SI);
834     }
835 
836     /** {@inheritDoc} */
837     @Override
838     public Dimensionless reciprocal()
839     {
840         return Dimensionless.instantiateSI(1.0 / this.si);
841     }
842 
843 }