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