Class DoubleScalarRel<U extends Unit<U>,R extends DoubleScalarRel<U,R>>

Type Parameters:
U - the unit
R - the Relative class for reference purposes
All Implemented Interfaces:
Serializable, Cloneable, Comparable<R>, Relative<U,R>, Value<U,R>
Direct Known Subclasses:
AbsorbedDose, Acceleration, AmountOfSubstance, AngularAcceleration, AngularVelocity, Area, CatalyticActivity, Density, Dimensionless, DoubleScalarRelWithAbs, ElectricalCapacitance, ElectricalCharge, ElectricalConductance, ElectricalCurrent, ElectricalInductance, ElectricalPotential, ElectricalResistance, Energy, EquivalentDose, FlowMass, FlowVolume, Force, Frequency, Illuminance, LinearDensity, LuminousFlux, LuminousIntensity, MagneticFlux, MagneticFluxDensity, Mass, Momentum, Power, Pressure, RadioActivity, SIScalar, SolidAngle, Speed, Torque, Volume

public abstract class DoubleScalarRel<U extends Unit<U>,R extends DoubleScalarRel<U,R>> extends DoubleScalar<U,R> implements Relative<U,R>
The typed, abstract DoubleScalarRel class that forms the basis of all DoubleScalar definitions and extensions.
Note: A relative scalar class can implement the toAbs() method if it has an absolute equivalent.

Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See DJUNITS License.

Author:
Alexander Verbraeck, Peter Knoppers
See Also:
  • Constructor Details

    • DoubleScalarRel

      public DoubleScalarRel(double value, U unit)
      Construct a new Relative Immutable DoubleScalar.
      Parameters:
      value - double; the value of the new Relative Immutable DoubleScalar
      unit - U; the unit of the new Relative Immutable DoubleScalar
    • DoubleScalarRel

      public DoubleScalarRel(R value)
      Construct a new Relative Immutable DoubleScalar from an existing Relative Immutable DoubleScalar.
      Parameters:
      value - R, a relative typed DoubleScalar; the reference
  • Method Details

    • instantiateRel

      public abstract R instantiateRel(double value, U unit)
      Construct a new Relative Immutable DoubleScalar of the right type. Each extending class must implement this method.
      Parameters:
      value - double; the double value
      unit - U; the unit
      Returns:
      R a new relative instance of the DoubleScalar of the right type
    • plus

      public final R plus(R increment)
      Add a Relative value to this Relative value. A new value is returned due to immutability.
      Specified by:
      plus in interface Relative<U extends Unit<U>,R extends DoubleScalarRel<U,R>>
      Parameters:
      increment - R; the value to add
      Returns:
      R; the sum of this value and the operand as a new object
    • minus

      public final R minus(R decrement)
      Subtract a Relative value from this Relative value. A new value is returned due to immutability.
      Specified by:
      minus in interface Relative<U extends Unit<U>,R extends DoubleScalarRel<U,R>>
      Parameters:
      decrement - R; the value to subtract
      Returns:
      R; the difference of this value and the operand
    • times

      public SIScalar times(DoubleScalarRel<?,?> otherScalar)
      Multiply this scalar by another scalar and create a new scalar.
      Parameters:
      otherScalar - DoubleScalarRel<?, ?>; the value by which this scalar is multiplied
      Returns:
      DoubleScalar<?>; a new scalar instance with correct SI dimensions
    • reciprocal

      public abstract DoubleScalarRel<?,?> reciprocal()
      Create the reciprocal of this scalar with the correct dimensions.
      Returns:
      DoubleScalar<?>; a new scalar instance with correct SI dimensions
    • divide

      public SIScalar divide(DoubleScalarRel<?,?> otherScalar)
      Divide this scalar by another scalar and create a new scalar.
      Parameters:
      otherScalar - DoubleScalarRel<?, ?>; the value by which this scalar is divided
      Returns:
      DoubleScalar<?>; a new scalar instance with correct SI dimensions
    • abs

      public R abs()
      Return a new Scalar/Vector/Matrix with absolute value(s).
      Specified by:
      abs in interface Value<U extends Unit<U>,R extends DoubleScalarRel<U,R>>
      Returns:
      R; a new R with absolute value(s)
    • ceil

      public R ceil()
      Return a new Scalar/Vector/Matrix with the nearest integer value(s) above the current value(s).
      Specified by:
      ceil in interface Value<U extends Unit<U>,R extends DoubleScalarRel<U,R>>
      Returns:
      R; a new R with absolute value(s)
    • floor

      public R floor()
      Return a new Scalar/Vector/Matrix with the nearest integer value(s) below the current value(s).
      Specified by:
      floor in interface Value<U extends Unit<U>,R extends DoubleScalarRel<U,R>>
      Returns:
      R; a new R with absolute value(s)
    • rint

      public R rint()
      Return a new Scalar/Vector/Matrix with the nearest integer value(s). When the value is exactly in the middle between two integer values, the even one is returned.
      Specified by:
      rint in interface Value<U extends Unit<U>,R extends DoubleScalarRel<U,R>>
      Returns:
      R; a new R with absolute value(s)
    • neg

      public R neg()
      Return a new Scalar/Vector/Matrix with negated value(s).
      Specified by:
      neg in interface Value<U extends Unit<U>,R extends DoubleScalarRel<U,R>>
      Returns:
      R; a new R with negated value(s)
    • times

      public R times(double constant)
      Returns a new scalar/vector/matrix with value(s) multiplied by a factor.
      Specified by:
      times in interface Relative<U extends Unit<U>,R extends DoubleScalarRel<U,R>>
      Parameters:
      constant - double; the multiplier
      Returns:
      T; a new scalar/vector/matrix
    • divide

      public R divide(double constant)
      Returns a new scalar/vector/matrix with value(s) divided by a factor.
      Specified by:
      divide in interface Relative<U extends Unit<U>,R extends DoubleScalarRel<U,R>>
      Parameters:
      constant - double; the divisor
      Returns:
      T; the modified T
    • times

      public R times(float constant)
      Returns a new scalar/vector/matrix with value(s) multiplied by a factor.
      Specified by:
      times in interface Relative<U extends Unit<U>,R extends DoubleScalarRel<U,R>>
      Parameters:
      constant - float; the multiplier
      Returns:
      T; a new scalar/vector/matrix
    • divide

      public R divide(float constant)
      Returns a new scalar/vector/matrix with value(s) divided by a factor.
      Specified by:
      divide in interface Relative<U extends Unit<U>,R extends DoubleScalarRel<U,R>>
      Parameters:
      constant - float; the divisor
      Returns:
      T; the modified T