Class AbstractFloatScalarRel<U extends Unit<U>,​R extends AbstractFloatScalarRel<U,​R>>

java.lang.Object
java.lang.Number
org.djunits.value.AbstractScalar<U,​S>
org.djunits.value.vfloat.scalar.base.AbstractFloatScalar<U,​R>
org.djunits.value.vfloat.scalar.base.AbstractFloatScalarRel<U,​R>
Type Parameters:
U - the unit
R - the Relative class for reference purposes
All Implemented Interfaces:
Serializable, Cloneable, Comparable<R>, Scalar<U,​R>, Scalar.Rel<U,​R>, ValueFunctions<U,​R>, Relative<U,​R>, Value<U,​R>, FloatScalarInterface<U,​R>, FloatScalarInterface.Rel<U,​R>
Direct Known Subclasses:
AbstractFloatScalarRelWithAbs, FloatAbsorbedDose, FloatAcceleration, FloatAmountOfSubstance, FloatArea, FloatCatalyticActivity, FloatDensity, FloatDimensionless, FloatElectricalCapacitance, FloatElectricalCharge, FloatElectricalConductance, FloatElectricalCurrent, FloatElectricalInductance, FloatElectricalPotential, FloatElectricalResistance, FloatEnergy, FloatEquivalentDose, FloatFlowMass, FloatFlowVolume, FloatForce, FloatFrequency, FloatIlluminance, FloatLinearDensity, FloatLuminousFlux, FloatLuminousIntensity, FloatMagneticFlux, FloatMagneticFluxDensity, FloatMass, FloatPower, FloatPressure, FloatRadioActivity, FloatSIScalar, FloatSolidAngle, FloatSpeed, FloatTorque, FloatVolume

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

Copyright (c) 2013-2019 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, Wouter Schakel
See Also:
Serialized Form
  • Constructor Details

    • AbstractFloatScalarRel

      public AbstractFloatScalarRel​(float value, U unit)
      Construct a new Relative Immutable FloatScalar.
      Parameters:
      value - float; the value of the new Relative Immutable FloatScalar
      unit - U; the unit of the new Relative Immutable FloatScalar
    • AbstractFloatScalarRel

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

    • 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 Scalar.Rel<U extends Unit<U>,​R extends AbstractFloatScalarRel<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 Scalar.Rel<U extends Unit<U>,​R extends AbstractFloatScalarRel<U,​R>>
      Parameters:
      decrement - R; the value to subtract
      Returns:
      R; the difference of this value and the operand
    • times

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

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

      public FloatSIScalar divide​(AbstractFloatScalarRel<?,​?> otherScalar)
      Divide this scalar by another scalar and create a new scalar.
      Parameters:
      otherScalar - AbstractFloatScalarRel<?, ?>; the value by which this scalar is divided
      Returns:
      FloatScalar<?>; 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 ValueFunctions<U extends Unit<U>,​R extends AbstractFloatScalarRel<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 ValueFunctions<U extends Unit<U>,​R extends AbstractFloatScalarRel<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 ValueFunctions<U extends Unit<U>,​R extends AbstractFloatScalarRel<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 ValueFunctions<U extends Unit<U>,​R extends AbstractFloatScalarRel<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 ValueFunctions<U extends Unit<U>,​R extends AbstractFloatScalarRel<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 AbstractFloatScalarRel<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 AbstractFloatScalarRel<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 AbstractFloatScalarRel<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 AbstractFloatScalarRel<U,​R>>
      Parameters:
      constant - float; the divisor
      Returns:
      T; the modified T