Package dev.nm.number

Class Real

    • Field Detail

      • ZERO

        public static final Real ZERO
        a number representing 0
      • ONE

        public static final Real ONE
        a number representing 1
    • Constructor Detail

      • Real

        public Real​(double value)
        Construct a Real from a double.
        Parameters:
        value - a double
      • Real

        public Real​(long value)
        Construct a Real from an integer.
        Parameters:
        value - an integer
      • Real

        public Real​(BigDecimal value)
        Construct a Real from a BigDecimal.
        Parameters:
        value - a BigDecimal
      • Real

        public Real​(BigInteger value)
        Construct a Real from a BigInteger.
        Parameters:
        value - a BigInteger
      • Real

        public Real​(String value)
        Construct a Real from a String.
        Parameters:
        value - a String representation of a number
    • Method Detail

      • toBigDecimal

        public BigDecimal toBigDecimal()
        Convert this number to a BigDecimal.
        Returns:
        the value in BigDecimal
      • intValue

        public int intValue()
        Specified by:
        intValue in class Number
      • longValue

        public long longValue()
        Specified by:
        longValue in class Number
      • floatValue

        public float floatValue()
        Specified by:
        floatValue in class Number
      • doubleValue

        public double doubleValue()
        Specified by:
        doubleValue in class Number
      • add

        public Real add​(Real that)
        Description copied from interface: AbelianGroup
        + : G × G → G
        Specified by:
        add in interface AbelianGroup<Real>
        Parameters:
        that - the object to be added
        Returns:
        this + that
      • minus

        public Real minus​(Real that)
        Description copied from interface: AbelianGroup
        - : G × G → G

        The operation "-" is not in the definition of of an additive group but can be deduced. This function is provided for convenience purpose. It is equivalent to

        this.add(that.opposite())
        .
        Specified by:
        minus in interface AbelianGroup<Real>
        Parameters:
        that - the object to be subtracted (subtrahend)
        Returns:
        this - that
      • opposite

        public Real opposite()
        Description copied from interface: AbelianGroup
        For each a in G, there exists an element b in G such that a + b = b + a = 0. That is, it is the object such as
        this.add(this.opposite()) == this.ZERO
        Specified by:
        opposite in interface AbelianGroup<Real>
        Returns:
        -this, the additive opposite
        See Also:
        Wikipedia: Additive inverse
      • multiply

        public Real multiply​(Real that)
        Description copied from interface: Monoid
        × : G × G → G
        Specified by:
        multiply in interface Monoid<Real>
        Parameters:
        that - the multiplicand
        Returns:
        this × that
      • divide

        public Real divide​(Real that)
        Description copied from interface: Field
        / : F × F → F

        That is the same as

        this.multiply(that.inverse())
        Specified by:
        divide in interface Field<Real>
        Parameters:
        that - the denominator
        Returns:
        this / that
      • divide

        public Real divide​(Real that,
                           int scale)
        / : R × R → R

        Divide this number by another one. Rounding is performed with the specified scale.

        Parameters:
        that - another non-zero real number
        scale - rounding scale as in BigDecimal
        Returns:
        this/that
      • ZERO

        public Real ZERO()
        Description copied from interface: AbelianGroup
        The additive element 0 in the group, such that for all elements a in the group, the equation 0 + a = a + 0 = a holds.
        Specified by:
        ZERO in interface AbelianGroup<Real>
        Returns:
        0, the additive identity
      • ONE

        public Real ONE()
        Description copied from interface: Monoid
        The multiplicative element 1 in the group such that for any elements a in the group, the equation 1 × a = a × 1 = a holds.
        Specified by:
        ONE in interface Monoid<Real>
        Returns:
        1
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object