View Javadoc
1   package org.djunits.value.vfloat.matrix;
2   
3   import javax.annotation.Generated;
4   
5   import org.djunits.Throw;
6   import org.djunits.unit.AbsorbedDoseUnit;
7   import org.djunits.unit.AccelerationUnit;
8   import org.djunits.unit.AmountOfSubstanceUnit;
9   import org.djunits.unit.AngleUnit;
10  import org.djunits.unit.AngularAccelerationUnit;
11  import org.djunits.unit.AngularVelocityUnit;
12  import org.djunits.unit.AreaUnit;
13  import org.djunits.unit.CatalyticActivityUnit;
14  import org.djunits.unit.DensityUnit;
15  import org.djunits.unit.DimensionlessUnit;
16  import org.djunits.unit.DurationUnit;
17  import org.djunits.unit.ElectricalCapacitanceUnit;
18  import org.djunits.unit.ElectricalChargeUnit;
19  import org.djunits.unit.ElectricalConductanceUnit;
20  import org.djunits.unit.ElectricalCurrentUnit;
21  import org.djunits.unit.ElectricalInductanceUnit;
22  import org.djunits.unit.ElectricalPotentialUnit;
23  import org.djunits.unit.ElectricalResistanceUnit;
24  import org.djunits.unit.EnergyUnit;
25  import org.djunits.unit.EquivalentDoseUnit;
26  import org.djunits.unit.FlowMassUnit;
27  import org.djunits.unit.FlowVolumeUnit;
28  import org.djunits.unit.ForceUnit;
29  import org.djunits.unit.FrequencyUnit;
30  import org.djunits.unit.IlluminanceUnit;
31  import org.djunits.unit.LengthUnit;
32  import org.djunits.unit.LinearDensityUnit;
33  import org.djunits.unit.LuminousFluxUnit;
34  import org.djunits.unit.LuminousIntensityUnit;
35  import org.djunits.unit.MagneticFluxDensityUnit;
36  import org.djunits.unit.MagneticFluxUnit;
37  import org.djunits.unit.MassUnit;
38  import org.djunits.unit.MomentumUnit;
39  import org.djunits.unit.PowerUnit;
40  import org.djunits.unit.PressureUnit;
41  import org.djunits.unit.RadioActivityUnit;
42  import org.djunits.unit.SIUnit;
43  import org.djunits.unit.SolidAngleUnit;
44  import org.djunits.unit.SpeedUnit;
45  import org.djunits.unit.TemperatureUnit;
46  import org.djunits.unit.TorqueUnit;
47  import org.djunits.unit.Unit;
48  import org.djunits.unit.VolumeUnit;
49  import org.djunits.unit.si.SIDimensions;
50  import org.djunits.unit.util.UnitRuntimeException;
51  import org.djunits.value.ValueRuntimeException;
52  import org.djunits.value.storage.StorageType;
53  import org.djunits.value.vfloat.matrix.base.AbstractFloatMatrixRel;
54  import org.djunits.value.vfloat.matrix.base.FloatMatrix;
55  import org.djunits.value.vfloat.matrix.data.FloatMatrixData;
56  import org.djunits.value.vfloat.scalar.FloatSIScalar;
57  import org.djunits.value.vfloat.scalar.base.AbstractFloatScalarRel;
58  import org.djunits.value.vfloat.vector.FloatSIVector;
59  import org.djunits.value.vfloat.vector.base.AbstractFloatVectorRel;
60  import org.djunits.value.vfloat.vector.data.FloatVectorData;
61  
62  /**
63   * Easy access methods for the generic Relative SI FloatMatrix.
64   * <p>
65   * Copyright (c) 2013-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. <br>
66   * All rights reserved. <br>
67   * BSD-style license. See <a href="https://opentrafficsim.org/docs/license.html">OpenTrafficSim License</a>.
68   * </p>
69   * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a>
70   * @author <a href="https://www.tudelft.nl/staff/p.knoppers/">Peter Knoppers</a>
71   */
72  @Generated(value = "org.djunits.generator.GenerateDJUNIT", date = "2020-01-19T15:21:24.964166400Z")
73  public class FloatSIMatrix extends AbstractFloatMatrixRel<SIUnit, FloatSIScalar, FloatSIVector, FloatSIMatrix>
74  {
75      /** */
76      private static final long serialVersionUID = 20150901L;
77  
78      /**
79       * Construct a new Relative Float FloatSIMatrix.
80       * @param values float[][]; the values of the entries in the new Relative Float FloatSIMatrix
81       * @param unit SIUnit; the unit of the new Relative Float FloatSIMatrix
82       * @param storageType StorageType; the data type to use (e.g., DENSE or SPARSE)
83       * @return FloatSIMatrix; the FloatSIMatrix of the given unit
84       * @throws ValueRuntimeException when values is null
85       */
86      public static FloatSIMatrix instantiate(final float[][] values, final SIUnit unit, final StorageType storageType)
87              throws ValueRuntimeException
88      {
89          return new FloatSIMatrix(FloatMatrixData.instantiate(values, unit.getScale(), storageType), unit);
90      }
91  
92      /**
93       * @param data FloatMatrixData; an internal data object
94       * @param unit SIUnit; the unit
95       */
96      public FloatSIMatrix(final FloatMatrixData data, final SIUnit unit)
97      {
98          super(data, unit);
99      }
100 
101     /** {@inheritDoc} */
102     @Override
103     public Class<FloatSIScalar> getScalarClass()
104     {
105         return FloatSIScalar.class;
106     }
107 
108     /** {@inheritDoc} */
109     @Override
110     public Class<FloatSIVector> getVectorClass()
111     {
112         return FloatSIVector.class;
113     }
114 
115     /**
116      * Returns an FloatSIMatrix based on an array of values and the textual representation of the unit.
117      * @param values float[][]; the values to use
118      * @param unitString String; the textual representation of the unit
119      * @param storageType StorageType; the storage type to use
120      * @return FloatSIMatrix; the matrix representation of the values in their unit
121      * @throws IllegalArgumentException when the unit cannot be parsed or is incorrect
122      * @throws NullPointerException when the unitString argument is null
123      */
124     public static FloatSIMatrix of(final float[][] values, final String unitString, final StorageType storageType)
125     {
126         Throw.whenNull(values, "Error parsing FloatSIMatrix: value is null");
127         Throw.whenNull(unitString, "Error parsing FloatSIMatrix: unitString is null");
128         Throw.when(unitString.length() == 0, IllegalArgumentException.class, "Error parsing FloatSIMatrix: empty unitString");
129         Throw.whenNull(storageType, "Error parsing FloatSIMatrix: storageType is null");
130         try
131         {
132             SIUnit unit = Unit.lookupOrCreateUnitWithSIDimensions(SIDimensions.of(unitString));
133             if (unit != null)
134             {
135                 return FloatSIMatrix.instantiate(values, unit, storageType);
136             }
137         }
138         catch (Exception exception)
139         {
140             throw new IllegalArgumentException("Error parsing SIUnit from " + unitString, exception);
141         }
142         throw new IllegalArgumentException("Error parsing FloatSIMatrix with unit " + unitString);
143     }
144 
145     /** {@inheritDoc} */
146     @Override
147     public FloatSIMatrix instantiateMatrix(final FloatMatrixData fmd, final SIUnit unit)
148     {
149         return new FloatSIMatrix(fmd, unit);
150     }
151 
152     /** {@inheritDoc} */
153     @Override
154     public FloatSIVector instantiateVector(final FloatVectorData fvd, final SIUnit unit)
155     {
156         return new FloatSIVector(fvd, unit);
157     }
158 
159     /** {@inheritDoc} */
160     @Override
161     public FloatSIScalar instantiateScalarSI(final float valueSI, final SIUnit unit)
162     {
163         return new FloatSIScalar(valueSI, unit);
164     }
165 
166     /**********************************************************************************/
167     /******************************** 'CAST AS' METHODS *******************************/
168     /**********************************************************************************/
169 
170     /**
171      * Return the current matrix transformed to a matrix in the given unit. Of course the SI dimensionality has to match,
172      * otherwise the matrix cannot be transformed. The compiler will check the alignment between the return value and the unit.
173      * @param displayUnit KU; the unit in which the matrix needs to be expressed
174      * @return M; the matrix that has been transformed into the right matrix type and unit
175      * @param <U> the unit type
176      * @param <S> the scalar type
177      * @param <V> the vector type
178      * @param <M> the matrix type
179      */
180     public final <U extends Unit<U>, S extends AbstractFloatScalarRel<U, S>, V extends AbstractFloatVectorRel<U, S, V>,
181             M extends AbstractFloatMatrixRel<U, S, V, M>> M as(final U displayUnit)
182     {
183         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(displayUnit.getQuantity().getSiDimensions())),
184                 UnitRuntimeException.class, "FloatSIMatrix with unit %s cannot be converted to a FloatMatrix with unit %s",
185                 getDisplayUnit(), displayUnit);
186         M result = FloatMatrix.instantiate(this.data, displayUnit.getStandardUnit());
187         result.setDisplayUnit(displayUnit);
188         return result;
189     }
190 
191     /**
192      * Return the current matrix as a absorbeddose matrix.
193      * @return FloatAbsorbedDoseMatrix; the current matrix as a absorbeddose matrix
194      */
195     public final FloatAbsorbedDoseMatrix asAbsorbedDose()
196     {
197         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AbsorbedDoseUnit.BASE.getSiDimensions())),
198                 UnitRuntimeException.class, "cannot cast %s to FloatAbsorbedDoseMatrix", this.toString());
199         return new FloatAbsorbedDoseMatrix(this.data, AbsorbedDoseUnit.SI);
200     }
201 
202     /**
203      * Return the current matrix as a absorbeddose matrix, and provide a display unit.
204      * @param displayUnit the unit in which the value will be displayed
205      * @return FloatAbsorbedDoseMatrix; the current matrix as a absorbeddose matrix
206      */
207     public final FloatAbsorbedDoseMatrix asAbsorbedDose(final AbsorbedDoseUnit displayUnit)
208     {
209         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AbsorbedDoseUnit.BASE.getSiDimensions())),
210                 UnitRuntimeException.class, "cannot cast %s to FloatAbsorbedDoseMatrix", this.toString());
211         FloatAbsorbedDoseMatrixbedDoseMatrix.html#FloatAbsorbedDoseMatrix">FloatAbsorbedDoseMatrix result = new FloatAbsorbedDoseMatrix(this.data, displayUnit.getStandardUnit());
212         result.setDisplayUnit(displayUnit);
213         return result;
214     }
215 
216     /**
217      * Return the current matrix as a acceleration matrix.
218      * @return FloatAccelerationMatrix; the current matrix as a acceleration matrix
219      */
220     public final FloatAccelerationMatrix asAcceleration()
221     {
222         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AccelerationUnit.BASE.getSiDimensions())),
223                 UnitRuntimeException.class, "cannot cast %s to FloatAccelerationMatrix", this.toString());
224         return new FloatAccelerationMatrix(this.data, AccelerationUnit.SI);
225     }
226 
227     /**
228      * Return the current matrix as a acceleration matrix, and provide a display unit.
229      * @param displayUnit the unit in which the value will be displayed
230      * @return FloatAccelerationMatrix; the current matrix as a acceleration matrix
231      */
232     public final FloatAccelerationMatrix asAcceleration(final AccelerationUnit displayUnit)
233     {
234         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AccelerationUnit.BASE.getSiDimensions())),
235                 UnitRuntimeException.class, "cannot cast %s to FloatAccelerationMatrix", this.toString());
236         FloatAccelerationMatrixerationMatrix.html#FloatAccelerationMatrix">FloatAccelerationMatrix result = new FloatAccelerationMatrix(this.data, displayUnit.getStandardUnit());
237         result.setDisplayUnit(displayUnit);
238         return result;
239     }
240 
241     /**
242      * Return the current matrix as a amountofsubstance matrix.
243      * @return FloatAmountOfSubstanceMatrix; the current matrix as a amountofsubstance matrix
244      */
245     public final FloatAmountOfSubstanceMatrix asAmountOfSubstance()
246     {
247         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AmountOfSubstanceUnit.BASE.getSiDimensions())),
248                 UnitRuntimeException.class, "cannot cast %s to FloatAmountOfSubstanceMatrix", this.toString());
249         return new FloatAmountOfSubstanceMatrix(this.data, AmountOfSubstanceUnit.SI);
250     }
251 
252     /**
253      * Return the current matrix as a amountofsubstance matrix, and provide a display unit.
254      * @param displayUnit the unit in which the value will be displayed
255      * @return FloatAmountOfSubstanceMatrix; the current matrix as a amountofsubstance matrix
256      */
257     public final FloatAmountOfSubstanceMatrix asAmountOfSubstance(final AmountOfSubstanceUnit displayUnit)
258     {
259         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AmountOfSubstanceUnit.BASE.getSiDimensions())),
260                 UnitRuntimeException.class, "cannot cast %s to FloatAmountOfSubstanceMatrix", this.toString());
261         FloatAmountOfSubstanceMatrixbstanceMatrix.html#FloatAmountOfSubstanceMatrix">FloatAmountOfSubstanceMatrix result = new FloatAmountOfSubstanceMatrix(this.data, displayUnit.getStandardUnit());
262         result.setDisplayUnit(displayUnit);
263         return result;
264     }
265 
266     /**
267      * Return the current matrix as a angularacceleration matrix.
268      * @return FloatAngularAccelerationMatrix; the current matrix as a angularacceleration matrix
269      */
270     public final FloatAngularAccelerationMatrix asAngularAcceleration()
271     {
272         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngularAccelerationUnit.BASE.getSiDimensions())),
273                 UnitRuntimeException.class, "cannot cast %s to FloatAngularAccelerationMatrix", this.toString());
274         return new FloatAngularAccelerationMatrix(this.data, AngularAccelerationUnit.SI);
275     }
276 
277     /**
278      * Return the current matrix as a angularacceleration matrix, and provide a display unit.
279      * @param displayUnit the unit in which the value will be displayed
280      * @return FloatAngularAccelerationMatrix; the current matrix as a angularacceleration matrix
281      */
282     public final FloatAngularAccelerationMatrix asAngularAcceleration(final AngularAccelerationUnit displayUnit)
283     {
284         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngularAccelerationUnit.BASE.getSiDimensions())),
285                 UnitRuntimeException.class, "cannot cast %s to FloatAngularAccelerationMatrix", this.toString());
286         FloatAngularAccelerationMatrixerationMatrix.html#FloatAngularAccelerationMatrix">FloatAngularAccelerationMatrix result = new FloatAngularAccelerationMatrix(this.data, displayUnit.getStandardUnit());
287         result.setDisplayUnit(displayUnit);
288         return result;
289     }
290 
291     /**
292      * Return the current matrix as a angularvelocity matrix.
293      * @return FloatAngularVelocityMatrix; the current matrix as a angularvelocity matrix
294      */
295     public final FloatAngularVelocityMatrix asAngularVelocity()
296     {
297         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngularVelocityUnit.BASE.getSiDimensions())),
298                 UnitRuntimeException.class, "cannot cast %s to FloatAngularVelocityMatrix", this.toString());
299         return new FloatAngularVelocityMatrix(this.data, AngularVelocityUnit.SI);
300     }
301 
302     /**
303      * Return the current matrix as a angularvelocity matrix, and provide a display unit.
304      * @param displayUnit the unit in which the value will be displayed
305      * @return FloatAngularVelocityMatrix; the current matrix as a angularvelocity matrix
306      */
307     public final FloatAngularVelocityMatrix asAngularVelocity(final AngularVelocityUnit displayUnit)
308     {
309         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngularVelocityUnit.BASE.getSiDimensions())),
310                 UnitRuntimeException.class, "cannot cast %s to FloatAngularVelocityMatrix", this.toString());
311         FloatAngularVelocityMatrixelocityMatrix.html#FloatAngularVelocityMatrix">FloatAngularVelocityMatrix result = new FloatAngularVelocityMatrix(this.data, displayUnit.getStandardUnit());
312         result.setDisplayUnit(displayUnit);
313         return result;
314     }
315 
316     /**
317      * Return the current matrix as a area matrix.
318      * @return FloatAreaMatrix; the current matrix as a area matrix
319      */
320     public final FloatAreaMatrix asArea()
321     {
322         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AreaUnit.BASE.getSiDimensions())),
323                 UnitRuntimeException.class, "cannot cast %s to FloatAreaMatrix", this.toString());
324         return new FloatAreaMatrix(this.data, AreaUnit.SI);
325     }
326 
327     /**
328      * Return the current matrix as a area matrix, and provide a display unit.
329      * @param displayUnit the unit in which the value will be displayed
330      * @return FloatAreaMatrix; the current matrix as a area matrix
331      */
332     public final FloatAreaMatrix asArea(final AreaUnit displayUnit)
333     {
334         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AreaUnit.BASE.getSiDimensions())),
335                 UnitRuntimeException.class, "cannot cast %s to FloatAreaMatrix", this.toString());
336         FloatAreaMatrixoatAreaMatrix.html#FloatAreaMatrix">FloatAreaMatrix result = new FloatAreaMatrix(this.data, displayUnit.getStandardUnit());
337         result.setDisplayUnit(displayUnit);
338         return result;
339     }
340 
341     /**
342      * Return the current matrix as a catalyticactivity matrix.
343      * @return FloatCatalyticActivityMatrix; the current matrix as a catalyticactivity matrix
344      */
345     public final FloatCatalyticActivityMatrix asCatalyticActivity()
346     {
347         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(CatalyticActivityUnit.BASE.getSiDimensions())),
348                 UnitRuntimeException.class, "cannot cast %s to FloatCatalyticActivityMatrix", this.toString());
349         return new FloatCatalyticActivityMatrix(this.data, CatalyticActivityUnit.SI);
350     }
351 
352     /**
353      * Return the current matrix as a catalyticactivity matrix, and provide a display unit.
354      * @param displayUnit the unit in which the value will be displayed
355      * @return FloatCatalyticActivityMatrix; the current matrix as a catalyticactivity matrix
356      */
357     public final FloatCatalyticActivityMatrix asCatalyticActivity(final CatalyticActivityUnit displayUnit)
358     {
359         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(CatalyticActivityUnit.BASE.getSiDimensions())),
360                 UnitRuntimeException.class, "cannot cast %s to FloatCatalyticActivityMatrix", this.toString());
361         FloatCatalyticActivityMatrixctivityMatrix.html#FloatCatalyticActivityMatrix">FloatCatalyticActivityMatrix result = new FloatCatalyticActivityMatrix(this.data, displayUnit.getStandardUnit());
362         result.setDisplayUnit(displayUnit);
363         return result;
364     }
365 
366     /**
367      * Return the current matrix as a density matrix.
368      * @return FloatDensityMatrix; the current matrix as a density matrix
369      */
370     public final FloatDensityMatrix asDensity()
371     {
372         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DensityUnit.BASE.getSiDimensions())),
373                 UnitRuntimeException.class, "cannot cast %s to FloatDensityMatrix", this.toString());
374         return new FloatDensityMatrix(this.data, DensityUnit.SI);
375     }
376 
377     /**
378      * Return the current matrix as a density matrix, and provide a display unit.
379      * @param displayUnit the unit in which the value will be displayed
380      * @return FloatDensityMatrix; the current matrix as a density matrix
381      */
382     public final FloatDensityMatrix asDensity(final DensityUnit displayUnit)
383     {
384         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DensityUnit.BASE.getSiDimensions())),
385                 UnitRuntimeException.class, "cannot cast %s to FloatDensityMatrix", this.toString());
386         FloatDensityMatrixDensityMatrix.html#FloatDensityMatrix">FloatDensityMatrix result = new FloatDensityMatrix(this.data, displayUnit.getStandardUnit());
387         result.setDisplayUnit(displayUnit);
388         return result;
389     }
390 
391     /**
392      * Return the current matrix as a dimensionless matrix.
393      * @return FloatDimensionlessMatrix; the current matrix as a dimensionless matrix
394      */
395     public final FloatDimensionlessMatrix asDimensionless()
396     {
397         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DimensionlessUnit.BASE.getSiDimensions())),
398                 UnitRuntimeException.class, "cannot cast %s to FloatDimensionlessMatrix", this.toString());
399         return new FloatDimensionlessMatrix(this.data, DimensionlessUnit.SI);
400     }
401 
402     /**
403      * Return the current matrix as a dimensionless matrix, and provide a display unit.
404      * @param displayUnit the unit in which the value will be displayed
405      * @return FloatDimensionlessMatrix; the current matrix as a dimensionless matrix
406      */
407     public final FloatDimensionlessMatrix asDimensionless(final DimensionlessUnit displayUnit)
408     {
409         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DimensionlessUnit.BASE.getSiDimensions())),
410                 UnitRuntimeException.class, "cannot cast %s to FloatDimensionlessMatrix", this.toString());
411         FloatDimensionlessMatrixionlessMatrix.html#FloatDimensionlessMatrix">FloatDimensionlessMatrix result = new FloatDimensionlessMatrix(this.data, displayUnit.getStandardUnit());
412         result.setDisplayUnit(displayUnit);
413         return result;
414     }
415 
416     /**
417      * Return the current matrix as a electricalcapacitance matrix.
418      * @return FloatElectricalCapacitanceMatrix; the current matrix as a electricalcapacitance matrix
419      */
420     public final FloatElectricalCapacitanceMatrix asElectricalCapacitance()
421     {
422         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalCapacitanceUnit.BASE.getSiDimensions())),
423                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalCapacitanceMatrix", this.toString());
424         return new FloatElectricalCapacitanceMatrix(this.data, ElectricalCapacitanceUnit.SI);
425     }
426 
427     /**
428      * Return the current matrix as a electricalcapacitance matrix, and provide a display unit.
429      * @param displayUnit the unit in which the value will be displayed
430      * @return FloatElectricalCapacitanceMatrix; the current matrix as a electricalcapacitance matrix
431      */
432     public final FloatElectricalCapacitanceMatrix asElectricalCapacitance(final ElectricalCapacitanceUnit displayUnit)
433     {
434         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalCapacitanceUnit.BASE.getSiDimensions())),
435                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalCapacitanceMatrix", this.toString());
436         FloatElectricalCapacitanceMatrix result =
437                 new FloatElectricalCapacitanceMatrix(this.data, displayUnit.getStandardUnit());
438         result.setDisplayUnit(displayUnit);
439         return result;
440     }
441 
442     /**
443      * Return the current matrix as a electricalcharge matrix.
444      * @return FloatElectricalChargeMatrix; the current matrix as a electricalcharge matrix
445      */
446     public final FloatElectricalChargeMatrix asElectricalCharge()
447     {
448         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalChargeUnit.BASE.getSiDimensions())),
449                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalChargeMatrix", this.toString());
450         return new FloatElectricalChargeMatrix(this.data, ElectricalChargeUnit.SI);
451     }
452 
453     /**
454      * Return the current matrix as a electricalcharge matrix, and provide a display unit.
455      * @param displayUnit the unit in which the value will be displayed
456      * @return FloatElectricalChargeMatrix; the current matrix as a electricalcharge matrix
457      */
458     public final FloatElectricalChargeMatrix asElectricalCharge(final ElectricalChargeUnit displayUnit)
459     {
460         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalChargeUnit.BASE.getSiDimensions())),
461                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalChargeMatrix", this.toString());
462         FloatElectricalChargeMatrixlChargeMatrix.html#FloatElectricalChargeMatrix">FloatElectricalChargeMatrix result = new FloatElectricalChargeMatrix(this.data, displayUnit.getStandardUnit());
463         result.setDisplayUnit(displayUnit);
464         return result;
465     }
466 
467     /**
468      * Return the current matrix as a electricalconductance matrix.
469      * @return FloatElectricalConductanceMatrix; the current matrix as a electricalconductance matrix
470      */
471     public final FloatElectricalConductanceMatrix asElectricalConductance()
472     {
473         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalConductanceUnit.BASE.getSiDimensions())),
474                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalConductanceMatrix", this.toString());
475         return new FloatElectricalConductanceMatrix(this.data, ElectricalConductanceUnit.SI);
476     }
477 
478     /**
479      * Return the current matrix as a electricalconductance matrix, and provide a display unit.
480      * @param displayUnit the unit in which the value will be displayed
481      * @return FloatElectricalConductanceMatrix; the current matrix as a electricalconductance matrix
482      */
483     public final FloatElectricalConductanceMatrix asElectricalConductance(final ElectricalConductanceUnit displayUnit)
484     {
485         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalConductanceUnit.BASE.getSiDimensions())),
486                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalConductanceMatrix", this.toString());
487         FloatElectricalConductanceMatrix result =
488                 new FloatElectricalConductanceMatrix(this.data, displayUnit.getStandardUnit());
489         result.setDisplayUnit(displayUnit);
490         return result;
491     }
492 
493     /**
494      * Return the current matrix as a electricalcurrent matrix.
495      * @return FloatElectricalCurrentMatrix; the current matrix as a electricalcurrent matrix
496      */
497     public final FloatElectricalCurrentMatrix asElectricalCurrent()
498     {
499         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalCurrentUnit.BASE.getSiDimensions())),
500                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalCurrentMatrix", this.toString());
501         return new FloatElectricalCurrentMatrix(this.data, ElectricalCurrentUnit.SI);
502     }
503 
504     /**
505      * Return the current matrix as a electricalcurrent matrix, and provide a display unit.
506      * @param displayUnit the unit in which the value will be displayed
507      * @return FloatElectricalCurrentMatrix; the current matrix as a electricalcurrent matrix
508      */
509     public final FloatElectricalCurrentMatrix asElectricalCurrent(final ElectricalCurrentUnit displayUnit)
510     {
511         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalCurrentUnit.BASE.getSiDimensions())),
512                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalCurrentMatrix", this.toString());
513         FloatElectricalCurrentMatrixCurrentMatrix.html#FloatElectricalCurrentMatrix">FloatElectricalCurrentMatrix result = new FloatElectricalCurrentMatrix(this.data, displayUnit.getStandardUnit());
514         result.setDisplayUnit(displayUnit);
515         return result;
516     }
517 
518     /**
519      * Return the current matrix as a electricalinductance matrix.
520      * @return FloatElectricalInductanceMatrix; the current matrix as a electricalinductance matrix
521      */
522     public final FloatElectricalInductanceMatrix asElectricalInductance()
523     {
524         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalInductanceUnit.BASE.getSiDimensions())),
525                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalInductanceMatrix", this.toString());
526         return new FloatElectricalInductanceMatrix(this.data, ElectricalInductanceUnit.SI);
527     }
528 
529     /**
530      * Return the current matrix as a electricalinductance matrix, and provide a display unit.
531      * @param displayUnit the unit in which the value will be displayed
532      * @return FloatElectricalInductanceMatrix; the current matrix as a electricalinductance matrix
533      */
534     public final FloatElectricalInductanceMatrix asElectricalInductance(final ElectricalInductanceUnit displayUnit)
535     {
536         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalInductanceUnit.BASE.getSiDimensions())),
537                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalInductanceMatrix", this.toString());
538         FloatElectricalInductanceMatrixuctanceMatrix.html#FloatElectricalInductanceMatrix">FloatElectricalInductanceMatrix result = new FloatElectricalInductanceMatrix(this.data, displayUnit.getStandardUnit());
539         result.setDisplayUnit(displayUnit);
540         return result;
541     }
542 
543     /**
544      * Return the current matrix as a electricalpotential matrix.
545      * @return FloatElectricalPotentialMatrix; the current matrix as a electricalpotential matrix
546      */
547     public final FloatElectricalPotentialMatrix asElectricalPotential()
548     {
549         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalPotentialUnit.BASE.getSiDimensions())),
550                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalPotentialMatrix", this.toString());
551         return new FloatElectricalPotentialMatrix(this.data, ElectricalPotentialUnit.SI);
552     }
553 
554     /**
555      * Return the current matrix as a electricalpotential matrix, and provide a display unit.
556      * @param displayUnit the unit in which the value will be displayed
557      * @return FloatElectricalPotentialMatrix; the current matrix as a electricalpotential matrix
558      */
559     public final FloatElectricalPotentialMatrix asElectricalPotential(final ElectricalPotentialUnit displayUnit)
560     {
561         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalPotentialUnit.BASE.getSiDimensions())),
562                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalPotentialMatrix", this.toString());
563         FloatElectricalPotentialMatrixtentialMatrix.html#FloatElectricalPotentialMatrix">FloatElectricalPotentialMatrix result = new FloatElectricalPotentialMatrix(this.data, displayUnit.getStandardUnit());
564         result.setDisplayUnit(displayUnit);
565         return result;
566     }
567 
568     /**
569      * Return the current matrix as a electricalresistance matrix.
570      * @return FloatElectricalResistanceMatrix; the current matrix as a electricalresistance matrix
571      */
572     public final FloatElectricalResistanceMatrix asElectricalResistance()
573     {
574         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalResistanceUnit.BASE.getSiDimensions())),
575                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalResistanceMatrix", this.toString());
576         return new FloatElectricalResistanceMatrix(this.data, ElectricalResistanceUnit.SI);
577     }
578 
579     /**
580      * Return the current matrix as a electricalresistance matrix, and provide a display unit.
581      * @param displayUnit the unit in which the value will be displayed
582      * @return FloatElectricalResistanceMatrix; the current matrix as a electricalresistance matrix
583      */
584     public final FloatElectricalResistanceMatrix asElectricalResistance(final ElectricalResistanceUnit displayUnit)
585     {
586         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalResistanceUnit.BASE.getSiDimensions())),
587                 UnitRuntimeException.class, "cannot cast %s to FloatElectricalResistanceMatrix", this.toString());
588         FloatElectricalResistanceMatrixistanceMatrix.html#FloatElectricalResistanceMatrix">FloatElectricalResistanceMatrix result = new FloatElectricalResistanceMatrix(this.data, displayUnit.getStandardUnit());
589         result.setDisplayUnit(displayUnit);
590         return result;
591     }
592 
593     /**
594      * Return the current matrix as a energy matrix.
595      * @return FloatEnergyMatrix; the current matrix as a energy matrix
596      */
597     public final FloatEnergyMatrix asEnergy()
598     {
599         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(EnergyUnit.BASE.getSiDimensions())),
600                 UnitRuntimeException.class, "cannot cast %s to FloatEnergyMatrix", this.toString());
601         return new FloatEnergyMatrix(this.data, EnergyUnit.SI);
602     }
603 
604     /**
605      * Return the current matrix as a energy matrix, and provide a display unit.
606      * @param displayUnit the unit in which the value will be displayed
607      * @return FloatEnergyMatrix; the current matrix as a energy matrix
608      */
609     public final FloatEnergyMatrix asEnergy(final EnergyUnit displayUnit)
610     {
611         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(EnergyUnit.BASE.getSiDimensions())),
612                 UnitRuntimeException.class, "cannot cast %s to FloatEnergyMatrix", this.toString());
613         FloatEnergyMatrixtEnergyMatrix.html#FloatEnergyMatrix">FloatEnergyMatrix result = new FloatEnergyMatrix(this.data, displayUnit.getStandardUnit());
614         result.setDisplayUnit(displayUnit);
615         return result;
616     }
617 
618     /**
619      * Return the current matrix as a equivalentdose matrix.
620      * @return FloatEquivalentDoseMatrix; the current matrix as a equivalentdose matrix
621      */
622     public final FloatEquivalentDoseMatrix asEquivalentDose()
623     {
624         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(EquivalentDoseUnit.BASE.getSiDimensions())),
625                 UnitRuntimeException.class, "cannot cast %s to FloatEquivalentDoseMatrix", this.toString());
626         return new FloatEquivalentDoseMatrix(this.data, EquivalentDoseUnit.SI);
627     }
628 
629     /**
630      * Return the current matrix as a equivalentdose matrix, and provide a display unit.
631      * @param displayUnit the unit in which the value will be displayed
632      * @return FloatEquivalentDoseMatrix; the current matrix as a equivalentdose matrix
633      */
634     public final FloatEquivalentDoseMatrix asEquivalentDose(final EquivalentDoseUnit displayUnit)
635     {
636         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(EquivalentDoseUnit.BASE.getSiDimensions())),
637                 UnitRuntimeException.class, "cannot cast %s to FloatEquivalentDoseMatrix", this.toString());
638         FloatEquivalentDoseMatrixentDoseMatrix.html#FloatEquivalentDoseMatrix">FloatEquivalentDoseMatrix result = new FloatEquivalentDoseMatrix(this.data, displayUnit.getStandardUnit());
639         result.setDisplayUnit(displayUnit);
640         return result;
641     }
642 
643     /**
644      * Return the current matrix as a flowmass matrix.
645      * @return FloatFlowMassMatrix; the current matrix as a flowmass matrix
646      */
647     public final FloatFlowMassMatrix asFlowMass()
648     {
649         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FlowMassUnit.BASE.getSiDimensions())),
650                 UnitRuntimeException.class, "cannot cast %s to FloatFlowMassMatrix", this.toString());
651         return new FloatFlowMassMatrix(this.data, FlowMassUnit.SI);
652     }
653 
654     /**
655      * Return the current matrix as a flowmass matrix, and provide a display unit.
656      * @param displayUnit the unit in which the value will be displayed
657      * @return FloatFlowMassMatrix; the current matrix as a flowmass matrix
658      */
659     public final FloatFlowMassMatrix asFlowMass(final FlowMassUnit displayUnit)
660     {
661         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FlowMassUnit.BASE.getSiDimensions())),
662                 UnitRuntimeException.class, "cannot cast %s to FloatFlowMassMatrix", this.toString());
663         FloatFlowMassMatrixlowMassMatrix.html#FloatFlowMassMatrix">FloatFlowMassMatrix result = new FloatFlowMassMatrix(this.data, displayUnit.getStandardUnit());
664         result.setDisplayUnit(displayUnit);
665         return result;
666     }
667 
668     /**
669      * Return the current matrix as a flowvolume matrix.
670      * @return FloatFlowVolumeMatrix; the current matrix as a flowvolume matrix
671      */
672     public final FloatFlowVolumeMatrix asFlowVolume()
673     {
674         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FlowVolumeUnit.BASE.getSiDimensions())),
675                 UnitRuntimeException.class, "cannot cast %s to FloatFlowVolumeMatrix", this.toString());
676         return new FloatFlowVolumeMatrix(this.data, FlowVolumeUnit.SI);
677     }
678 
679     /**
680      * Return the current matrix as a flowvolume matrix, and provide a display unit.
681      * @param displayUnit the unit in which the value will be displayed
682      * @return FloatFlowVolumeMatrix; the current matrix as a flowvolume matrix
683      */
684     public final FloatFlowVolumeMatrix asFlowVolume(final FlowVolumeUnit displayUnit)
685     {
686         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FlowVolumeUnit.BASE.getSiDimensions())),
687                 UnitRuntimeException.class, "cannot cast %s to FloatFlowVolumeMatrix", this.toString());
688         FloatFlowVolumeMatrixwVolumeMatrix.html#FloatFlowVolumeMatrix">FloatFlowVolumeMatrix result = new FloatFlowVolumeMatrix(this.data, displayUnit.getStandardUnit());
689         result.setDisplayUnit(displayUnit);
690         return result;
691     }
692 
693     /**
694      * Return the current matrix as a force matrix.
695      * @return FloatForceMatrix; the current matrix as a force matrix
696      */
697     public final FloatForceMatrix asForce()
698     {
699         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ForceUnit.BASE.getSiDimensions())),
700                 UnitRuntimeException.class, "cannot cast %s to FloatForceMatrix", this.toString());
701         return new FloatForceMatrix(this.data, ForceUnit.SI);
702     }
703 
704     /**
705      * Return the current matrix as a force matrix, and provide a display unit.
706      * @param displayUnit the unit in which the value will be displayed
707      * @return FloatForceMatrix; the current matrix as a force matrix
708      */
709     public final FloatForceMatrix asForce(final ForceUnit displayUnit)
710     {
711         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ForceUnit.BASE.getSiDimensions())),
712                 UnitRuntimeException.class, "cannot cast %s to FloatForceMatrix", this.toString());
713         FloatForceMatrixatForceMatrix.html#FloatForceMatrix">FloatForceMatrix result = new FloatForceMatrix(this.data, displayUnit.getStandardUnit());
714         result.setDisplayUnit(displayUnit);
715         return result;
716     }
717 
718     /**
719      * Return the current matrix as a frequency matrix.
720      * @return FloatFrequencyMatrix; the current matrix as a frequency matrix
721      */
722     public final FloatFrequencyMatrix asFrequency()
723     {
724         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FrequencyUnit.BASE.getSiDimensions())),
725                 UnitRuntimeException.class, "cannot cast %s to FloatFrequencyMatrix", this.toString());
726         return new FloatFrequencyMatrix(this.data, FrequencyUnit.SI);
727     }
728 
729     /**
730      * Return the current matrix as a frequency matrix, and provide a display unit.
731      * @param displayUnit the unit in which the value will be displayed
732      * @return FloatFrequencyMatrix; the current matrix as a frequency matrix
733      */
734     public final FloatFrequencyMatrix asFrequency(final FrequencyUnit displayUnit)
735     {
736         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FrequencyUnit.BASE.getSiDimensions())),
737                 UnitRuntimeException.class, "cannot cast %s to FloatFrequencyMatrix", this.toString());
738         FloatFrequencyMatrixequencyMatrix.html#FloatFrequencyMatrix">FloatFrequencyMatrix result = new FloatFrequencyMatrix(this.data, displayUnit.getStandardUnit());
739         result.setDisplayUnit(displayUnit);
740         return result;
741     }
742 
743     /**
744      * Return the current matrix as a illuminance matrix.
745      * @return FloatIlluminanceMatrix; the current matrix as a illuminance matrix
746      */
747     public final FloatIlluminanceMatrix asIlluminance()
748     {
749         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(IlluminanceUnit.BASE.getSiDimensions())),
750                 UnitRuntimeException.class, "cannot cast %s to FloatIlluminanceMatrix", this.toString());
751         return new FloatIlluminanceMatrix(this.data, IlluminanceUnit.SI);
752     }
753 
754     /**
755      * Return the current matrix as a illuminance matrix, and provide a display unit.
756      * @param displayUnit the unit in which the value will be displayed
757      * @return FloatIlluminanceMatrix; the current matrix as a illuminance matrix
758      */
759     public final FloatIlluminanceMatrix asIlluminance(final IlluminanceUnit displayUnit)
760     {
761         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(IlluminanceUnit.BASE.getSiDimensions())),
762                 UnitRuntimeException.class, "cannot cast %s to FloatIlluminanceMatrix", this.toString());
763         FloatIlluminanceMatrixminanceMatrix.html#FloatIlluminanceMatrix">FloatIlluminanceMatrix result = new FloatIlluminanceMatrix(this.data, displayUnit.getStandardUnit());
764         result.setDisplayUnit(displayUnit);
765         return result;
766     }
767 
768     /**
769      * Return the current matrix as a lineardensity matrix.
770      * @return FloatLinearDensityMatrix; the current matrix as a lineardensity matrix
771      */
772     public final FloatLinearDensityMatrix asLinearDensity()
773     {
774         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LinearDensityUnit.BASE.getSiDimensions())),
775                 UnitRuntimeException.class, "cannot cast %s to FloatLinearDensityMatrix", this.toString());
776         return new FloatLinearDensityMatrix(this.data, LinearDensityUnit.SI);
777     }
778 
779     /**
780      * Return the current matrix as a lineardensity matrix, and provide a display unit.
781      * @param displayUnit the unit in which the value will be displayed
782      * @return FloatLinearDensityMatrix; the current matrix as a lineardensity matrix
783      */
784     public final FloatLinearDensityMatrix asLinearDensity(final LinearDensityUnit displayUnit)
785     {
786         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LinearDensityUnit.BASE.getSiDimensions())),
787                 UnitRuntimeException.class, "cannot cast %s to FloatLinearDensityMatrix", this.toString());
788         FloatLinearDensityMatrixDensityMatrix.html#FloatLinearDensityMatrix">FloatLinearDensityMatrix result = new FloatLinearDensityMatrix(this.data, displayUnit.getStandardUnit());
789         result.setDisplayUnit(displayUnit);
790         return result;
791     }
792 
793     /**
794      * Return the current matrix as a luminousflux matrix.
795      * @return FloatLuminousFluxMatrix; the current matrix as a luminousflux matrix
796      */
797     public final FloatLuminousFluxMatrix asLuminousFlux()
798     {
799         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LuminousFluxUnit.BASE.getSiDimensions())),
800                 UnitRuntimeException.class, "cannot cast %s to FloatLuminousFluxMatrix", this.toString());
801         return new FloatLuminousFluxMatrix(this.data, LuminousFluxUnit.SI);
802     }
803 
804     /**
805      * Return the current matrix as a luminousflux matrix, and provide a display unit.
806      * @param displayUnit the unit in which the value will be displayed
807      * @return FloatLuminousFluxMatrix; the current matrix as a luminousflux matrix
808      */
809     public final FloatLuminousFluxMatrix asLuminousFlux(final LuminousFluxUnit displayUnit)
810     {
811         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LuminousFluxUnit.BASE.getSiDimensions())),
812                 UnitRuntimeException.class, "cannot cast %s to FloatLuminousFluxMatrix", this.toString());
813         FloatLuminousFluxMatrixousFluxMatrix.html#FloatLuminousFluxMatrix">FloatLuminousFluxMatrix result = new FloatLuminousFluxMatrix(this.data, displayUnit.getStandardUnit());
814         result.setDisplayUnit(displayUnit);
815         return result;
816     }
817 
818     /**
819      * Return the current matrix as a luminousintensity matrix.
820      * @return FloatLuminousIntensityMatrix; the current matrix as a luminousintensity matrix
821      */
822     public final FloatLuminousIntensityMatrix asLuminousIntensity()
823     {
824         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LuminousIntensityUnit.BASE.getSiDimensions())),
825                 UnitRuntimeException.class, "cannot cast %s to FloatLuminousIntensityMatrix", this.toString());
826         return new FloatLuminousIntensityMatrix(this.data, LuminousIntensityUnit.SI);
827     }
828 
829     /**
830      * Return the current matrix as a luminousintensity matrix, and provide a display unit.
831      * @param displayUnit the unit in which the value will be displayed
832      * @return FloatLuminousIntensityMatrix; the current matrix as a luminousintensity matrix
833      */
834     public final FloatLuminousIntensityMatrix asLuminousIntensity(final LuminousIntensityUnit displayUnit)
835     {
836         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LuminousIntensityUnit.BASE.getSiDimensions())),
837                 UnitRuntimeException.class, "cannot cast %s to FloatLuminousIntensityMatrix", this.toString());
838         FloatLuminousIntensityMatrixtensityMatrix.html#FloatLuminousIntensityMatrix">FloatLuminousIntensityMatrix result = new FloatLuminousIntensityMatrix(this.data, displayUnit.getStandardUnit());
839         result.setDisplayUnit(displayUnit);
840         return result;
841     }
842 
843     /**
844      * Return the current matrix as a magneticfluxdensity matrix.
845      * @return FloatMagneticFluxDensityMatrix; the current matrix as a magneticfluxdensity matrix
846      */
847     public final FloatMagneticFluxDensityMatrix asMagneticFluxDensity()
848     {
849         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MagneticFluxDensityUnit.BASE.getSiDimensions())),
850                 UnitRuntimeException.class, "cannot cast %s to FloatMagneticFluxDensityMatrix", this.toString());
851         return new FloatMagneticFluxDensityMatrix(this.data, MagneticFluxDensityUnit.SI);
852     }
853 
854     /**
855      * Return the current matrix as a magneticfluxdensity matrix, and provide a display unit.
856      * @param displayUnit the unit in which the value will be displayed
857      * @return FloatMagneticFluxDensityMatrix; the current matrix as a magneticfluxdensity matrix
858      */
859     public final FloatMagneticFluxDensityMatrix asMagneticFluxDensity(final MagneticFluxDensityUnit displayUnit)
860     {
861         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MagneticFluxDensityUnit.BASE.getSiDimensions())),
862                 UnitRuntimeException.class, "cannot cast %s to FloatMagneticFluxDensityMatrix", this.toString());
863         FloatMagneticFluxDensityMatrixDensityMatrix.html#FloatMagneticFluxDensityMatrix">FloatMagneticFluxDensityMatrix result = new FloatMagneticFluxDensityMatrix(this.data, displayUnit.getStandardUnit());
864         result.setDisplayUnit(displayUnit);
865         return result;
866     }
867 
868     /**
869      * Return the current matrix as a magneticflux matrix.
870      * @return FloatMagneticFluxMatrix; the current matrix as a magneticflux matrix
871      */
872     public final FloatMagneticFluxMatrix asMagneticFlux()
873     {
874         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MagneticFluxUnit.BASE.getSiDimensions())),
875                 UnitRuntimeException.class, "cannot cast %s to FloatMagneticFluxMatrix", this.toString());
876         return new FloatMagneticFluxMatrix(this.data, MagneticFluxUnit.SI);
877     }
878 
879     /**
880      * Return the current matrix as a magneticflux matrix, and provide a display unit.
881      * @param displayUnit the unit in which the value will be displayed
882      * @return FloatMagneticFluxMatrix; the current matrix as a magneticflux matrix
883      */
884     public final FloatMagneticFluxMatrix asMagneticFlux(final MagneticFluxUnit displayUnit)
885     {
886         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MagneticFluxUnit.BASE.getSiDimensions())),
887                 UnitRuntimeException.class, "cannot cast %s to FloatMagneticFluxMatrix", this.toString());
888         FloatMagneticFluxMatrixticFluxMatrix.html#FloatMagneticFluxMatrix">FloatMagneticFluxMatrix result = new FloatMagneticFluxMatrix(this.data, displayUnit.getStandardUnit());
889         result.setDisplayUnit(displayUnit);
890         return result;
891     }
892 
893     /**
894      * Return the current matrix as a mass matrix.
895      * @return FloatMassMatrix; the current matrix as a mass matrix
896      */
897     public final FloatMassMatrix asMass()
898     {
899         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MassUnit.BASE.getSiDimensions())),
900                 UnitRuntimeException.class, "cannot cast %s to FloatMassMatrix", this.toString());
901         return new FloatMassMatrix(this.data, MassUnit.SI);
902     }
903 
904     /**
905      * Return the current matrix as a mass matrix, and provide a display unit.
906      * @param displayUnit the unit in which the value will be displayed
907      * @return FloatMassMatrix; the current matrix as a mass matrix
908      */
909     public final FloatMassMatrix asMass(final MassUnit displayUnit)
910     {
911         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MassUnit.BASE.getSiDimensions())),
912                 UnitRuntimeException.class, "cannot cast %s to FloatMassMatrix", this.toString());
913         FloatMassMatrixoatMassMatrix.html#FloatMassMatrix">FloatMassMatrix result = new FloatMassMatrix(this.data, displayUnit.getStandardUnit());
914         result.setDisplayUnit(displayUnit);
915         return result;
916     }
917 
918     /**
919      * Return the current matrix as a momentum matrix.
920      * @return FloatMomentumMatrix; the current matrix as a momentum matrix
921      */
922     public final FloatMomentumMatrix asMomentum()
923     {
924         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MomentumUnit.BASE.getSiDimensions())),
925                 UnitRuntimeException.class, "cannot cast %s to FloatMomentumMatrix", this.toString());
926         return new FloatMomentumMatrix(this.data, MomentumUnit.SI);
927     }
928 
929     /**
930      * Return the current matrix as a momentum matrix, and provide a display unit.
931      * @param displayUnit the unit in which the value will be displayed
932      * @return FloatMomentumMatrix; the current matrix as a momentum matrix
933      */
934     public final FloatMomentumMatrix asMomentum(final MomentumUnit displayUnit)
935     {
936         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MomentumUnit.BASE.getSiDimensions())),
937                 UnitRuntimeException.class, "cannot cast %s to FloatMomentumMatrix", this.toString());
938         FloatMomentumMatrixomentumMatrix.html#FloatMomentumMatrix">FloatMomentumMatrix result = new FloatMomentumMatrix(this.data, displayUnit.getStandardUnit());
939         result.setDisplayUnit(displayUnit);
940         return result;
941     }
942 
943     /**
944      * Return the current matrix as a power matrix.
945      * @return FloatPowerMatrix; the current matrix as a power matrix
946      */
947     public final FloatPowerMatrix asPower()
948     {
949         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(PowerUnit.BASE.getSiDimensions())),
950                 UnitRuntimeException.class, "cannot cast %s to FloatPowerMatrix", this.toString());
951         return new FloatPowerMatrix(this.data, PowerUnit.SI);
952     }
953 
954     /**
955      * Return the current matrix as a power matrix, and provide a display unit.
956      * @param displayUnit the unit in which the value will be displayed
957      * @return FloatPowerMatrix; the current matrix as a power matrix
958      */
959     public final FloatPowerMatrix asPower(final PowerUnit displayUnit)
960     {
961         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(PowerUnit.BASE.getSiDimensions())),
962                 UnitRuntimeException.class, "cannot cast %s to FloatPowerMatrix", this.toString());
963         FloatPowerMatrixatPowerMatrix.html#FloatPowerMatrix">FloatPowerMatrix result = new FloatPowerMatrix(this.data, displayUnit.getStandardUnit());
964         result.setDisplayUnit(displayUnit);
965         return result;
966     }
967 
968     /**
969      * Return the current matrix as a pressure matrix.
970      * @return FloatPressureMatrix; the current matrix as a pressure matrix
971      */
972     public final FloatPressureMatrix asPressure()
973     {
974         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(PressureUnit.BASE.getSiDimensions())),
975                 UnitRuntimeException.class, "cannot cast %s to FloatPressureMatrix", this.toString());
976         return new FloatPressureMatrix(this.data, PressureUnit.SI);
977     }
978 
979     /**
980      * Return the current matrix as a pressure matrix, and provide a display unit.
981      * @param displayUnit the unit in which the value will be displayed
982      * @return FloatPressureMatrix; the current matrix as a pressure matrix
983      */
984     public final FloatPressureMatrix asPressure(final PressureUnit displayUnit)
985     {
986         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(PressureUnit.BASE.getSiDimensions())),
987                 UnitRuntimeException.class, "cannot cast %s to FloatPressureMatrix", this.toString());
988         FloatPressureMatrixressureMatrix.html#FloatPressureMatrix">FloatPressureMatrix result = new FloatPressureMatrix(this.data, displayUnit.getStandardUnit());
989         result.setDisplayUnit(displayUnit);
990         return result;
991     }
992 
993     /**
994      * Return the current matrix as a radioactivity matrix.
995      * @return FloatRadioActivityMatrix; the current matrix as a radioactivity matrix
996      */
997     public final FloatRadioActivityMatrix asRadioActivity()
998     {
999         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(RadioActivityUnit.BASE.getSiDimensions())),
1000                 UnitRuntimeException.class, "cannot cast %s to FloatRadioActivityMatrix", this.toString());
1001         return new FloatRadioActivityMatrix(this.data, RadioActivityUnit.SI);
1002     }
1003 
1004     /**
1005      * Return the current matrix as a radioactivity matrix, and provide a display unit.
1006      * @param displayUnit the unit in which the value will be displayed
1007      * @return FloatRadioActivityMatrix; the current matrix as a radioactivity matrix
1008      */
1009     public final FloatRadioActivityMatrix asRadioActivity(final RadioActivityUnit displayUnit)
1010     {
1011         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(RadioActivityUnit.BASE.getSiDimensions())),
1012                 UnitRuntimeException.class, "cannot cast %s to FloatRadioActivityMatrix", this.toString());
1013         FloatRadioActivityMatrixctivityMatrix.html#FloatRadioActivityMatrix">FloatRadioActivityMatrix result = new FloatRadioActivityMatrix(this.data, displayUnit.getStandardUnit());
1014         result.setDisplayUnit(displayUnit);
1015         return result;
1016     }
1017 
1018     /**
1019      * Return the current matrix as a solidangle matrix.
1020      * @return FloatSolidAngleMatrix; the current matrix as a solidangle matrix
1021      */
1022     public final FloatSolidAngleMatrix asSolidAngle()
1023     {
1024         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(SolidAngleUnit.BASE.getSiDimensions())),
1025                 UnitRuntimeException.class, "cannot cast %s to FloatSolidAngleMatrix", this.toString());
1026         return new FloatSolidAngleMatrix(this.data, SolidAngleUnit.SI);
1027     }
1028 
1029     /**
1030      * Return the current matrix as a solidangle matrix, and provide a display unit.
1031      * @param displayUnit the unit in which the value will be displayed
1032      * @return FloatSolidAngleMatrix; the current matrix as a solidangle matrix
1033      */
1034     public final FloatSolidAngleMatrix asSolidAngle(final SolidAngleUnit displayUnit)
1035     {
1036         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(SolidAngleUnit.BASE.getSiDimensions())),
1037                 UnitRuntimeException.class, "cannot cast %s to FloatSolidAngleMatrix", this.toString());
1038         FloatSolidAngleMatrixidAngleMatrix.html#FloatSolidAngleMatrix">FloatSolidAngleMatrix result = new FloatSolidAngleMatrix(this.data, displayUnit.getStandardUnit());
1039         result.setDisplayUnit(displayUnit);
1040         return result;
1041     }
1042 
1043     /**
1044      * Return the current matrix as a speed matrix.
1045      * @return FloatSpeedMatrix; the current matrix as a speed matrix
1046      */
1047     public final FloatSpeedMatrix asSpeed()
1048     {
1049         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(SpeedUnit.BASE.getSiDimensions())),
1050                 UnitRuntimeException.class, "cannot cast %s to FloatSpeedMatrix", this.toString());
1051         return new FloatSpeedMatrix(this.data, SpeedUnit.SI);
1052     }
1053 
1054     /**
1055      * Return the current matrix as a speed matrix, and provide a display unit.
1056      * @param displayUnit the unit in which the value will be displayed
1057      * @return FloatSpeedMatrix; the current matrix as a speed matrix
1058      */
1059     public final FloatSpeedMatrix asSpeed(final SpeedUnit displayUnit)
1060     {
1061         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(SpeedUnit.BASE.getSiDimensions())),
1062                 UnitRuntimeException.class, "cannot cast %s to FloatSpeedMatrix", this.toString());
1063         FloatSpeedMatrixatSpeedMatrix.html#FloatSpeedMatrix">FloatSpeedMatrix result = new FloatSpeedMatrix(this.data, displayUnit.getStandardUnit());
1064         result.setDisplayUnit(displayUnit);
1065         return result;
1066     }
1067 
1068     /**
1069      * Return the current matrix as a torque matrix.
1070      * @return FloatTorqueMatrix; the current matrix as a torque matrix
1071      */
1072     public final FloatTorqueMatrix asTorque()
1073     {
1074         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(TorqueUnit.BASE.getSiDimensions())),
1075                 UnitRuntimeException.class, "cannot cast %s to FloatTorqueMatrix", this.toString());
1076         return new FloatTorqueMatrix(this.data, TorqueUnit.SI);
1077     }
1078 
1079     /**
1080      * Return the current matrix as a torque matrix, and provide a display unit.
1081      * @param displayUnit the unit in which the value will be displayed
1082      * @return FloatTorqueMatrix; the current matrix as a torque matrix
1083      */
1084     public final FloatTorqueMatrix asTorque(final TorqueUnit displayUnit)
1085     {
1086         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(TorqueUnit.BASE.getSiDimensions())),
1087                 UnitRuntimeException.class, "cannot cast %s to FloatTorqueMatrix", this.toString());
1088         FloatTorqueMatrixtTorqueMatrix.html#FloatTorqueMatrix">FloatTorqueMatrix result = new FloatTorqueMatrix(this.data, displayUnit.getStandardUnit());
1089         result.setDisplayUnit(displayUnit);
1090         return result;
1091     }
1092 
1093     /**
1094      * Return the current matrix as a volume matrix.
1095      * @return FloatVolumeMatrix; the current matrix as a volume matrix
1096      */
1097     public final FloatVolumeMatrix asVolume()
1098     {
1099         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(VolumeUnit.BASE.getSiDimensions())),
1100                 UnitRuntimeException.class, "cannot cast %s to FloatVolumeMatrix", this.toString());
1101         return new FloatVolumeMatrix(this.data, VolumeUnit.SI);
1102     }
1103 
1104     /**
1105      * Return the current matrix as a volume matrix, and provide a display unit.
1106      * @param displayUnit the unit in which the value will be displayed
1107      * @return FloatVolumeMatrix; the current matrix as a volume matrix
1108      */
1109     public final FloatVolumeMatrix asVolume(final VolumeUnit displayUnit)
1110     {
1111         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(VolumeUnit.BASE.getSiDimensions())),
1112                 UnitRuntimeException.class, "cannot cast %s to FloatVolumeMatrix", this.toString());
1113         FloatVolumeMatrixtVolumeMatrix.html#FloatVolumeMatrix">FloatVolumeMatrix result = new FloatVolumeMatrix(this.data, displayUnit.getStandardUnit());
1114         result.setDisplayUnit(displayUnit);
1115         return result;
1116     }
1117 
1118     /**
1119      * Return the current matrix as a angle matrix.
1120      * @return FloatAngleMatrix; the current matrix as a angle matrix
1121      */
1122     public final FloatAngleMatrix asAngle()
1123     {
1124         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngleUnit.BASE.getSiDimensions())),
1125                 UnitRuntimeException.class, "cannot cast %s to FloatAngleMatrix", this.toString());
1126         return new FloatAngleMatrix(this.data, AngleUnit.SI);
1127     }
1128 
1129     /**
1130      * Return the current matrix as a angle matrix, and provide a display unit.
1131      * @param displayUnit the unit in which the value will be displayed
1132      * @return FloatAngleMatrix; the current matrix as a angle matrix
1133      */
1134     public final FloatAngleMatrix asAngle(final AngleUnit displayUnit)
1135     {
1136         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngleUnit.BASE.getSiDimensions())),
1137                 UnitRuntimeException.class, "cannot cast %s to FloatAngleMatrix", this.toString());
1138         FloatAngleMatrixatAngleMatrix.html#FloatAngleMatrix">FloatAngleMatrix result = new FloatAngleMatrix(this.data, displayUnit.getStandardUnit());
1139         result.setDisplayUnit(displayUnit);
1140         return result;
1141     }
1142 
1143     /**
1144      * Return the current matrix as a length matrix.
1145      * @return FloatLengthMatrix; the current matrix as a length matrix
1146      */
1147     public final FloatLengthMatrix asLength()
1148     {
1149         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LengthUnit.BASE.getSiDimensions())),
1150                 UnitRuntimeException.class, "cannot cast %s to FloatLengthMatrix", this.toString());
1151         return new FloatLengthMatrix(this.data, LengthUnit.SI);
1152     }
1153 
1154     /**
1155      * Return the current matrix as a length matrix, and provide a display unit.
1156      * @param displayUnit the unit in which the value will be displayed
1157      * @return FloatLengthMatrix; the current matrix as a length matrix
1158      */
1159     public final FloatLengthMatrix asLength(final LengthUnit displayUnit)
1160     {
1161         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LengthUnit.BASE.getSiDimensions())),
1162                 UnitRuntimeException.class, "cannot cast %s to FloatLengthMatrix", this.toString());
1163         FloatLengthMatrixtLengthMatrix.html#FloatLengthMatrix">FloatLengthMatrix result = new FloatLengthMatrix(this.data, displayUnit.getStandardUnit());
1164         result.setDisplayUnit(displayUnit);
1165         return result;
1166     }
1167 
1168     /**
1169      * Return the current matrix as a temperature matrix.
1170      * @return FloatTemperatureMatrix; the current matrix as a temperature matrix
1171      */
1172     public final FloatTemperatureMatrix asTemperature()
1173     {
1174         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(TemperatureUnit.BASE.getSiDimensions())),
1175                 UnitRuntimeException.class, "cannot cast %s to FloatTemperatureMatrix", this.toString());
1176         return new FloatTemperatureMatrix(this.data, TemperatureUnit.SI);
1177     }
1178 
1179     /**
1180      * Return the current matrix as a temperature matrix, and provide a display unit.
1181      * @param displayUnit the unit in which the value will be displayed
1182      * @return FloatTemperatureMatrix; the current matrix as a temperature matrix
1183      */
1184     public final FloatTemperatureMatrix asTemperature(final TemperatureUnit displayUnit)
1185     {
1186         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(TemperatureUnit.BASE.getSiDimensions())),
1187                 UnitRuntimeException.class, "cannot cast %s to FloatTemperatureMatrix", this.toString());
1188         FloatTemperatureMatrixeratureMatrix.html#FloatTemperatureMatrix">FloatTemperatureMatrix result = new FloatTemperatureMatrix(this.data, displayUnit.getStandardUnit());
1189         result.setDisplayUnit(displayUnit);
1190         return result;
1191     }
1192 
1193     /**
1194      * Return the current matrix as a duration matrix.
1195      * @return FloatDurationMatrix; the current matrix as a duration matrix
1196      */
1197     public final FloatDurationMatrix asDuration()
1198     {
1199         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DurationUnit.BASE.getSiDimensions())),
1200                 UnitRuntimeException.class, "cannot cast %s to FloatDurationMatrix", this.toString());
1201         return new FloatDurationMatrix(this.data, DurationUnit.SI);
1202     }
1203 
1204     /**
1205      * Return the current matrix as a duration matrix, and provide a display unit.
1206      * @param displayUnit the unit in which the value will be displayed
1207      * @return FloatDurationMatrix; the current matrix as a duration matrix
1208      */
1209     public final FloatDurationMatrix asDuration(final DurationUnit displayUnit)
1210     {
1211         Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DurationUnit.BASE.getSiDimensions())),
1212                 UnitRuntimeException.class, "cannot cast %s to FloatDurationMatrix", this.toString());
1213         FloatDurationMatrixurationMatrix.html#FloatDurationMatrix">FloatDurationMatrix result = new FloatDurationMatrix(this.data, displayUnit.getStandardUnit());
1214         result.setDisplayUnit(displayUnit);
1215         return result;
1216     }
1217 
1218 }