Class Parameter<Q extends javax.measure.quantity.Quantity>

  • Type Parameters:
    Q - The Quantity (unit type, such as Length or Volume) of this parameter.
    All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<javax.measure.Measurable<Q>>, javax.measure.Measurable<Q>, javolution.lang.Immutable, javolution.lang.Realtime, javolution.lang.ValueType, javolution.xml.XMLSerializable, Field<Parameter<Q>>, GroupAdditive<Parameter<Q>>, GroupMultiplicative<Parameter<Q>>, Ring<Parameter<Q>>, Structure<Parameter<Q>>

    public final class Parameter<Q extends javax.measure.quantity.Quantity>
    extends java.lang.Object
    implements javax.measure.Measurable<Q>, Field<Parameter<Q>>, javolution.lang.ValueType, javolution.lang.Realtime, javolution.xml.XMLSerializable
    This class represents an amount (a value with associated units) for which operations such as addition, subtraction, multiplication and division can be performed (it implements the Field interface).

    The nature of an amount can be deduced from its parameterization (compile time) or its unit (run time)..

    Operations between different amounts may or may not be authorized based upon the current PhysicalModel. For example, adding Parameter<Length> and Parameter<Duration> is not allowed by the StandardModel, but is authorized with the RelativisticModel.

    Modified by: Joseph A. Huwaldt

    Version:
    March 10, 2017
    Author:
    Joseph A. Huwaldt Date: November 15, 2008
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static double EPS
      The machine epsilon or unit roundoff for double in the Java environment.
      static double EPS10
      Ten times the machine epsilon or unit roundoff for double in the Java environment.
      static Parameter<javax.measure.quantity.Angle> HALFPI_ANGLE
      An angular measure of pi/2 or 90 degrees.
      static Parameter<javax.measure.quantity.Dimensionless> ONE
      Holds a dimensionless measure of one.
      static Parameter<javax.measure.quantity.Angle> PI_ANGLE
      An angular measure of pi or 180 degrees.
      static double SQRT_EPS
      The square-root of EPS.
      static Parameter<javax.measure.quantity.Angle> TWOPI_ANGLE
      An angular measure of 2*pi or 360 degrees.
      static Parameter<javax.measure.quantity.Dimensionless> ZERO
      Holds a dimensionless measure of zero.
      static Parameter<javax.measure.quantity.Acceleration> ZERO_ACCELERATION
      An acceleration measure of zero.
      static Parameter<javax.measure.quantity.Angle> ZERO_ANGLE
      An angular measure of zero.
      static Parameter<javax.measure.quantity.Area> ZERO_AREA
      An area measure of zero.
      static Parameter<javax.measure.quantity.Duration> ZERO_DURATION
      A duration measure of zero.
      static Parameter<javax.measure.quantity.Force> ZERO_FORCE
      A force measure of zero.
      static Parameter<javax.measure.quantity.Length> ZERO_LENGTH
      An length measure of zero.
      static Parameter<javax.measure.quantity.Velocity> ZERO_VELOCITY
      An velocity measure of zero.
      static Parameter<javax.measure.quantity.Volume> ZERO_VOLUME
      A volume measure of zero.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Parameter<Q> abs()
      Returns the absolute value of this measure.
      static Parameter<javax.measure.quantity.Angle> acos​(Parameter<javax.measure.quantity.Dimensionless> x)
      Returns the arc cosine of the specified value, in the range of ZERO_ANGLE through PI_ANGLE.
      static Parameter<javax.measure.quantity.Angle> asin​(Parameter<javax.measure.quantity.Dimensionless> x)
      Returns the arc sine of the specified value, in the range of -HALFPI_ANGLE through HALFPI_ANGLE.
      <T extends javax.measure.quantity.Quantity>
      Parameter<T>
      asType​(java.lang.Class<T> type)
      Casts this Parameter to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and this parameter's unit dimension do not match.
      static Parameter<javax.measure.quantity.Angle> atan​(Parameter<javax.measure.quantity.Dimensionless> x)
      Returns the arc tangent of the specified value, in the range of -HALFPI_ANGLE through HALFPI_ANGLE.
      static <R extends javax.measure.quantity.Quantity>
      Parameter<javax.measure.quantity.Angle>
      atan2​(Parameter<R> y, Parameter<R> x)
      Returns the angle theta such that (x == cos(theta)) && (y == sin(theta)).
      int compareTo​(javax.measure.Measurable<Q> that)
      Compares this measure with the specified measurable object.
      static javax.measure.converter.UnitConverter converterOf​(javax.measure.unit.Unit<?> left, javax.measure.unit.Unit<?> right)
      Returns a unit converter that will convert between the specified units.
      Parameter<Q> copy()
      Returns a copy of this Parameter allocated by the calling thread (possibly on the stack).
      static Parameter<javax.measure.quantity.Dimensionless> cos​(Parameter<javax.measure.quantity.Angle> angle)
      Returns the trigonometric cosine of the specified angle.
      Parameter<Q> divide​(double divisor)
      Returns this measure divided by the specified approximate divisor (dimensionless).
      Parameter<? extends javax.measure.quantity.Quantity> divide​(Parameter<?> that)
      Returns this measure divided by the one specified.
      double doubleValue​(javax.measure.unit.Unit<Q> unit)
      Returns the value of this measurable stated in the specified unit as a double.
      boolean equals​(java.lang.Object that)
      Compares this parameter against the specified object for strict equality (same value and same units).
      javax.measure.unit.Unit<Q> getUnit()
      Returns the unit in which the value is stated.
      double getValue()
      Returns the value for this measure stated in this measure's unit.
      double getValue​(javax.measure.unit.Unit<Q> unit)
      Returns the value of this measurable stated in the specified unit as a double.
      int hashCode()
      Returns the hash code for this parameter.
      Parameter<Q> inverse()
      Returns the multiplicative inverse of this measure.
      boolean isApproxEqual​(Parameter<Q> that)
      Compares this measure with that measure for approximate equality.
      boolean isApproxEqual​(Parameter<Q> that, Parameter<Q> tol)
      Compares this measure with that measure for approximate equality.
      boolean isApproxZero()
      Compares this measure with zero for approximate equality.
      boolean isGreaterThan​(Parameter<Q> that)
      Indicates if this measure is ordered after that measure (independently of the measure unit).
      boolean isInfinite()
      Returns true if this Parameter value is infinitely large in magnitude, false otherwise.
      boolean isLargerThan​(Parameter<Q> that)
      Compares this measure with that measure ignoring the sign.
      boolean isLessThan​(Parameter<Q> that)
      Indicates if this measure is ordered before that measure (independently of the measure unit).
      boolean isNaN()
      Returns true if this Parameter value is a Not-a-Number (NaN), false otherwise.
      long longValue​(javax.measure.unit.Unit<Q> unit)
      Returns the estimated integer value of this measurable stated in the specified unit as a long.
      static void main​(java.lang.String[] args)
      Testing code for this class.
      Parameter<Q> max​(Parameter<Q> that)
      Returns the maximum of this parameter and the specified one.
      Parameter<Q> min​(Parameter<Q> that)
      Returns the minimum of this parameter and the specified one.
      Parameter<Q> minus​(Parameter<Q> that)
      Returns the difference of this measure with the one specified.
      Parameter<Q> opposite()
      Returns the opposite of this measure.
      Parameter<Q> plus​(Parameter<Q> that)
      Returns the sum of this measure with the one specified.
      Parameter<? extends javax.measure.quantity.Quantity> pow​(int exp)
      Returns this measure raised at the specified exponent.
      static javax.measure.unit.Unit<?> productOf​(javax.measure.unit.Unit<?> left, javax.measure.unit.Unit<?> right)
      Returns the product of the two input units.
      Parameter<? extends javax.measure.quantity.Quantity> root​(int n)
      Returns the given root of this measure.
      Parameter<Q> round()
      Return a new parameter with the value of this parameter rounded to the nearest ones place.
      Parameter<Q> roundToPlace​(int place)
      Return a new parameter with the value of this parameter rounded to the specified decimal place.
      static Parameter<javax.measure.quantity.Dimensionless> sin​(Parameter<javax.measure.quantity.Angle> angle)
      Returns the trigonometric sine of the specified angle.
      Parameter<? extends javax.measure.quantity.Quantity> sqrt()
      Returns the square root of this measure.
      static Parameter<javax.measure.quantity.Dimensionless> tan​(Parameter<javax.measure.quantity.Angle> angle)
      Returns the trigonometric tangent of the specified angle.
      Parameter<Q> times​(double factor)
      Returns this measure scaled by the specified approximate factor (dimensionless).
      Parameter times​(Parameter that)
      Returns the product of this measure with the one specified.
      <R extends javax.measure.quantity.Quantity>
      Parameter<R>
      to​(javax.measure.unit.Unit<R> unit)
      Returns the measure equivalent to this measure but stated in the specified unit.
      java.lang.String toString()
      Returns the text representation of this parameter as a java.lang.String.
      javolution.text.Text toText()
      Returns the text representation of this parameter.
      static <Q extends javax.measure.quantity.Quantity>
      Parameter<Q>
      valueOf​(double value, javax.measure.unit.Unit<Q> unit)
      Returns the measure corresponding to a value (double) stated in the specified unit.
      static Parameter<?> valueOf​(java.lang.CharSequence csq)
      Returns the measure represented by the specified character sequence.
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • EPS

        public static final double EPS
        The machine epsilon or unit roundoff for double in the Java environment. Machine epsilon gives an upper bound on the relative error due to rounding in floating point arithmetic.
      • EPS10

        public static final double EPS10
        Ten times the machine epsilon or unit roundoff for double in the Java environment. This is 10*EPS.
        See Also:
        EPS
      • SQRT_EPS

        public static final double SQRT_EPS
        The square-root of EPS.
        See Also:
        EPS
      • ZERO

        public static final Parameter<javax.measure.quantity.Dimensionless> ZERO
        Holds a dimensionless measure of zero.
      • ONE

        public static final Parameter<javax.measure.quantity.Dimensionless> ONE
        Holds a dimensionless measure of one.
      • ZERO_ANGLE

        public static final Parameter<javax.measure.quantity.Angle> ZERO_ANGLE
        An angular measure of zero.
      • PI_ANGLE

        public static final Parameter<javax.measure.quantity.Angle> PI_ANGLE
        An angular measure of pi or 180 degrees.
      • HALFPI_ANGLE

        public static final Parameter<javax.measure.quantity.Angle> HALFPI_ANGLE
        An angular measure of pi/2 or 90 degrees.
      • TWOPI_ANGLE

        public static final Parameter<javax.measure.quantity.Angle> TWOPI_ANGLE
        An angular measure of 2*pi or 360 degrees.
      • ZERO_LENGTH

        public static final Parameter<javax.measure.quantity.Length> ZERO_LENGTH
        An length measure of zero.
      • ZERO_AREA

        public static final Parameter<javax.measure.quantity.Area> ZERO_AREA
        An area measure of zero.
      • ZERO_VOLUME

        public static final Parameter<javax.measure.quantity.Volume> ZERO_VOLUME
        A volume measure of zero.
      • ZERO_VELOCITY

        public static final Parameter<javax.measure.quantity.Velocity> ZERO_VELOCITY
        An velocity measure of zero.
      • ZERO_ACCELERATION

        public static final Parameter<javax.measure.quantity.Acceleration> ZERO_ACCELERATION
        An acceleration measure of zero.
      • ZERO_DURATION

        public static final Parameter<javax.measure.quantity.Duration> ZERO_DURATION
        A duration measure of zero.
      • ZERO_FORCE

        public static final Parameter<javax.measure.quantity.Force> ZERO_FORCE
        A force measure of zero.
    • Method Detail

      • valueOf

        public static <Q extends javax.measure.quantity.Quantity> Parameter<Q> valueOf​(double value,
                                                                                       javax.measure.unit.Unit<Q> unit)
        Returns the measure corresponding to a value (double) stated in the specified unit.
        Type Parameters:
        Q - The Quantity (unit type) of this parameter.
        Parameters:
        value - the value stated in the specified unit.
        unit - the unit in which the value is stated.
        Returns:
        the corresponding measure object.
      • valueOf

        public static Parameter<?> valueOf​(java.lang.CharSequence csq)
        Returns the measure represented by the specified character sequence.
        Parameters:
        csq - the character sequence.
        Returns:
        ParameterFormat.newInstance().parse(csq)
      • getUnit

        public javax.measure.unit.Unit<QgetUnit()
        Returns the unit in which the value is stated.
        Returns:
        the measure unit.
      • getValue

        public double getValue()
        Returns the value for this measure stated in this measure's unit.
        Returns:
        the value of the measure.
      • to

        public <R extends javax.measure.quantity.Quantity> Parameter<R> to​(javax.measure.unit.Unit<R> unit)
                                                                    throws javax.measure.converter.ConversionException
        Returns the measure equivalent to this measure but stated in the specified unit.
        Type Parameters:
        R - The Quantity (unit type) to convert this parameter to.
        Parameters:
        unit - the unit of the measure to be returned.
        Returns:
        a measure equivalent to this measure but stated in the specified unit.
        Throws:
        javax.measure.converter.ConversionException - if the current model does not allows for conversion to the specified unit.
      • asType

        public final <T extends javax.measure.quantity.Quantity> Parameter<T> asType​(java.lang.Class<T> type)
                                                                              throws java.lang.ClassCastException
        Casts this Parameter to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and this parameter's unit dimension do not match.
        Type Parameters:
        T - The Quantity (unit type) to cast this parameter as.
        Parameters:
        type - the quantity class identifying the nature of the unit.
        Returns:
        this Parameter parameterized with the specified type.
        Throws:
        java.lang.ClassCastException - if the dimension of this parameter's unit is different from the specified quantity dimension.
        java.lang.UnsupportedOperationException - if the specified quantity class does not have a public static field named "UNIT" holding the standard unit for the quantity.
      • plus

        public Parameter<Qplus​(Parameter<Q> that)
                          throws javax.measure.converter.ConversionException
        Returns the sum of this measure with the one specified.
        Specified by:
        plus in interface GroupAdditive<Q extends javax.measure.quantity.Quantity>
        Parameters:
        that - the measure to be added.
        Returns:
        this + that.
        Throws:
        javax.measure.converter.ConversionException - if the current model does not allows for these quantities to be added.
      • minus

        public Parameter<Qminus​(Parameter<Q> that)
                           throws javax.measure.converter.ConversionException
        Returns the difference of this measure with the one specified.
        Parameters:
        that - the measure to be subtracted.
        Returns:
        this - that.
        Throws:
        javax.measure.converter.ConversionException - if the current model does not allows for these quantities to be subtracted.
      • times

        public Parameter<Qtimes​(double factor)
        Returns this measure scaled by the specified approximate factor (dimensionless).
        Parameters:
        factor - the scaling factor.
        Returns:
        this · factor.
      • times

        public Parameter times​(Parameter that)
        Returns the product of this measure with the one specified.
        Specified by:
        times in interface GroupMultiplicative<Q extends javax.measure.quantity.Quantity>
        Specified by:
        times in interface Ring<Q extends javax.measure.quantity.Quantity>
        Parameters:
        that - the measure multiplier.
        Returns:
        this · that.
      • inverse

        public Parameter<Qinverse()
        Returns the multiplicative inverse of this measure. If this measure is possibly zero, then the result is unbounded (]-infinity, +infinity[).
        Specified by:
        inverse in interface GroupMultiplicative<Q extends javax.measure.quantity.Quantity>
        Returns:
        1 / this.
      • divide

        public Parameter<Qdivide​(double divisor)
        Returns this measure divided by the specified approximate divisor (dimensionless).
        Parameters:
        divisor - the approximated divisor.
        Returns:
        this / divisor.
      • divide

        public Parameter<? extends javax.measure.quantity.Quantity> divide​(Parameter<?> that)
        Returns this measure divided by the one specified.
        Parameters:
        that - the measure divisor.
        Returns:
        this / that.
      • abs

        public Parameter<Qabs()
        Returns the absolute value of this measure.
        Returns:
        |this|.
      • sqrt

        public Parameter<? extends javax.measure.quantity.Quantity> sqrt()
        Returns the square root of this measure.
        Returns:
        sqrt(this)
      • root

        public Parameter<? extends javax.measure.quantity.Quantity> root​(int n)
        Returns the given root of this measure.
        Parameters:
        n - the root's order (n != 0).
        Returns:
        the result of taking the given root of this quantity.
        Throws:
        java.lang.ArithmeticException - if n == 0.
      • pow

        public Parameter<? extends javax.measure.quantity.Quantity> pow​(int exp)
        Returns this measure raised at the specified exponent.
        Parameters:
        exp - the exponent.
        Returns:
        thisexp
      • compareTo

        public int compareTo​(javax.measure.Measurable<Q> that)
        Compares this measure with the specified measurable object.
        Specified by:
        compareTo in interface java.lang.Comparable<Q extends javax.measure.quantity.Quantity>
        Parameters:
        that - the measure to compare with.
        Returns:
        a negative integer, zero, or a positive integer as this measure is less than, equal to, or greater than that measurable.
        Throws:
        javax.measure.converter.ConversionException - if the current model does not allows for these measure to be compared.
      • equals

        public boolean equals​(java.lang.Object that)
        Compares this parameter against the specified object for strict equality (same value and same units).
        Overrides:
        equals in class java.lang.Object
        Parameters:
        that - the object to compare with.
        Returns:
        true if this measure is identical to that measure; false otherwise.
      • hashCode

        public int hashCode()
        Returns the hash code for this parameter.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hash code value.
      • isLessThan

        public boolean isLessThan​(Parameter<Q> that)
        Indicates if this measure is ordered before that measure (independently of the measure unit).
        Parameters:
        that - The measure being compared with this one.
        Returns:
        this < that
      • isGreaterThan

        public boolean isGreaterThan​(Parameter<Q> that)
        Indicates if this measure is ordered after that measure (independently of the measure unit).
        Parameters:
        that - The measure being compared with this one.
        Returns:
        this > that
      • isLargerThan

        public boolean isLargerThan​(Parameter<Q> that)
        Compares this measure with that measure ignoring the sign.
        Parameters:
        that - The measure being compared with this one.
        Returns:
        |this| > |that|
      • isApproxEqual

        public boolean isApproxEqual​(Parameter<Q> that)
        Compares this measure with that measure for approximate equality. Approximate equality means that the two parameters, stated in this parameter's units, differ by an amount less than the machine epsilon.
        Parameters:
        that - The measure being compared with this one.
        Returns:
        this ~= that
      • isApproxEqual

        public boolean isApproxEqual​(Parameter<Q> that,
                                     Parameter<Q> tol)
        Compares this measure with that measure for approximate equality. Approximate equality means that the two parameters differ by an amount less than the supplied tolerance.
        Parameters:
        that - The measure being compared with this one.
        tol - The tolerance used to determine floating point equality. If null is passed, then a tolerance of machine epsilon is assumed.
        Returns:
        this ~= that
      • isApproxZero

        public boolean isApproxZero()
        Compares this measure with zero for approximate equality. Approximately zero means that this parameter differs from zero by an amount less than machine epsilon.
        Returns:
        this ~= 0
      • min

        public Parameter<Qmin​(Parameter<Q> that)
        Returns the minimum of this parameter and the specified one.
        Parameters:
        that - The measure being compared with this one.
        Returns:
        The minimum of this parameter and the specified one.
      • max

        public Parameter<Qmax​(Parameter<Q> that)
        Returns the maximum of this parameter and the specified one.
        Parameters:
        that - The measure being compared with this one.
        Returns:
        The maximum of this parameter and the specified one.
      • round

        public Parameter<Qround()
        Return a new parameter with the value of this parameter rounded to the nearest ones place.
        Returns:
        A new parameter with the value of this parameter rounded.
      • roundToPlace

        public Parameter<QroundToPlace​(int place)
        Return a new parameter with the value of this parameter rounded to the specified decimal place.
        Parameters:
        place - Number of decimal places to round the value to. A place of 1 rounds to 10's place, 2 to 100's place, -2 to 1/100th place, et cetera.
        Returns:
        A new parameter with the value of this parameter rounded.
      • isNaN

        public boolean isNaN()
        Returns true if this Parameter value is a Not-a-Number (NaN), false otherwise.
        Returns:
        true if the value represented by this object is NaN; false otherwise.
      • isInfinite

        public boolean isInfinite()
        Returns true if this Parameter value is infinitely large in magnitude, false otherwise.
        Returns:
        true if the value represented by this object is positive infinity or negative infinity; false otherwise.
      • toText

        public javolution.text.Text toText()
        Returns the text representation of this parameter.
        Specified by:
        toText in interface javolution.lang.Realtime
        Returns:
        ParameterFormat.newInstance().format(this)
      • toString

        public final java.lang.String toString()
        Returns the text representation of this parameter as a java.lang.String.
        Overrides:
        toString in class java.lang.Object
        Returns:
        toText().toString()
      • doubleValue

        public double doubleValue​(javax.measure.unit.Unit<Q> unit)
        Returns the value of this measurable stated in the specified unit as a double. This is an alternate to getValue(unit).
        Specified by:
        doubleValue in interface javax.measure.Measurable<Q extends javax.measure.quantity.Quantity>
        Parameters:
        unit - the unit in which this measurable value is stated.
        Returns:
        the numeric value after conversion to type double.
        See Also:
        getValue(javax.measure.unit.Unit), getValue()
      • getValue

        public double getValue​(javax.measure.unit.Unit<Q> unit)
        Returns the value of this measurable stated in the specified unit as a double.
        Parameters:
        unit - the unit in which this measurable value is stated.
        Returns:
        the numeric value after conversion to type double.
        See Also:
        getValue()
      • longValue

        public final long longValue​(javax.measure.unit.Unit<Q> unit)
        Returns the estimated integer value of this measurable stated in the specified unit as a long.

        Note: This method differs from the Number.longValue() in the sense that the closest integer value is returned and an ArithmeticException is raised instead of a bit truncation in case of overflow (safety critical).

        Specified by:
        longValue in interface javax.measure.Measurable<Q extends javax.measure.quantity.Quantity>
        Parameters:
        unit - the unit in which the measurable value is stated.
        Returns:
        the numeric value after conversion to type long.
        Throws:
        java.lang.ArithmeticException - if this quantity cannot be represented as a long number in the specified unit.
      • copy

        public Parameter<Qcopy()
        Returns a copy of this Parameter allocated by the calling thread (possibly on the stack).
        Specified by:
        copy in interface javolution.lang.ValueType
        Returns:
        an identical and independent copy of this Parameter.
      • cos

        public static Parameter<javax.measure.quantity.Dimensionless> cos​(Parameter<javax.measure.quantity.Angle> angle)
        Returns the trigonometric cosine of the specified angle.
        Parameters:
        angle - The angle to calculate the cosine of.
        Returns:
        The cosine of the specified angle.
      • sin

        public static Parameter<javax.measure.quantity.Dimensionless> sin​(Parameter<javax.measure.quantity.Angle> angle)
        Returns the trigonometric sine of the specified angle.
        Parameters:
        angle - The angle to calculate the sine of.
        Returns:
        The sine of the specified angle.
      • tan

        public static Parameter<javax.measure.quantity.Dimensionless> tan​(Parameter<javax.measure.quantity.Angle> angle)
        Returns the trigonometric tangent of the specified angle.
        Parameters:
        angle - The angle to calculate the tangent of.
        Returns:
        The tangent of the specified angle.
      • asin

        public static Parameter<javax.measure.quantity.Angle> asin​(Parameter<javax.measure.quantity.Dimensionless> x)
        Returns the arc sine of the specified value, in the range of -HALFPI_ANGLE through HALFPI_ANGLE.
        Parameters:
        x - The value to calculate the inverse-sine of.
        Returns:
        The angle represented by the inverse-sine of the specified value.
      • acos

        public static Parameter<javax.measure.quantity.Angle> acos​(Parameter<javax.measure.quantity.Dimensionless> x)
        Returns the arc cosine of the specified value, in the range of ZERO_ANGLE through PI_ANGLE.
        Parameters:
        x - The value to calculate the inverse-cosine of.
        Returns:
        The angle represented by the inverse-cosine of the specified value.
      • atan

        public static Parameter<javax.measure.quantity.Angle> atan​(Parameter<javax.measure.quantity.Dimensionless> x)
        Returns the arc tangent of the specified value, in the range of -HALFPI_ANGLE through HALFPI_ANGLE.
        Parameters:
        x - The value to calculate the inverse-tangent of.
        Returns:
        The angle represented by the inverse-tangent of the specified value.
      • atan2

        public static <R extends javax.measure.quantity.Quantity> Parameter<javax.measure.quantity.Angle> atan2​(Parameter<R> y,
                                                                                                                Parameter<R> x)
        Returns the angle theta such that (x == cos(theta)) && (y == sin(theta)). The two parameters must be the same type of unit, but otherwise they may be in different units of the same type (e.g.: y in "km" and x in "ft").
        Type Parameters:
        R - The Quantity (unit type) of the input parameters.
        Parameters:
        y - The the ordinate coordinate.
        x - The the abscissa coordinate.
        Returns:
        The angle represented by the inverse-tangent of the specified values.
      • productOf

        public static javax.measure.unit.Unit<?> productOf​(javax.measure.unit.Unit<?> left,
                                                           javax.measure.unit.Unit<?> right)
        Returns the product of the two input units.
        Parameters:
        left - The left unit to multiply by the right unit.
        right - The right unit to multiply by the left unit.
        Returns:
        The product of the two input units.
      • converterOf

        public static javax.measure.converter.UnitConverter converterOf​(javax.measure.unit.Unit<?> left,
                                                                        javax.measure.unit.Unit<?> right)
                                                                 throws javax.measure.converter.ConversionException
        Returns a unit converter that will convert between the specified units.
        Parameters:
        left - The unit to convert from.
        right - The unit to convert to.
        Returns:
        The converter between the specified units.
        Throws:
        javax.measure.converter.ConversionException
      • main

        public static void main​(java.lang.String[] args)
        Testing code for this class.
        Parameters:
        args - Command line arguments (not used).