Package dev.nm.number

# Class Real

All Implemented Interfaces:
AbelianGroup<Real>, Field<Real>, Monoid<Real>, Ring<Real>, Serializable, Comparable<Real>
Direct Known Subclasses:
VariancebtX

public class Real extends Number implements Field<Real>, Comparable<Real>
A real number is an arbitrary precision number. This implementation is simply a wrapper around BigDecimal and implements the Field interface.

This class is immutable.

## Nested classes/interfaces inherited from interface dev.nm.algebra.structure.Field

Field.InverseNonExistent
• ## Field Summary

Fields
Modifier and Type
Field
Description
static final Real
ONE
a number representing 1
static final Real
ZERO
a number representing 0
• ## Constructor Summary

Constructors
Constructor
Description
Real(double value)
Construct a Real from a double.
Real(long value)
Construct a Real from an integer.
Real(String value)
Construct a Real from a String.
Real(BigDecimal value)
Construct a Real from a BigDecimal.
Real(BigInteger value)
Construct a Real from a BigInteger.
• ## Method Summary

Modifier and Type
Method
Description
Real
add(Real that)
+ : G × G → G
int
compareTo(Real that)

Real
divide(Real that)
/ : F × F → F
Real
divide(Real that, int scale)
/ : R × R → R
double
doubleValue()

boolean
equals(Object obj)

float
floatValue()

int
hashCode()

int
intValue()

Real
inverse()
For each a in F, there exists an element b in F such that a × b = b × a = 1.
long
longValue()

Real
minus(Real that)
- : G × G → G
Real
multiply(Real that)
× : G × G → G
Real
ONE()
The multiplicative element 1 in the group such that for any elements a in the group, the equation 1 × a = a × 1 = a holds.
Real
opposite()
For each a in G, there exists an element b in G such that a + b = b + a = 0.
BigDecimal
toBigDecimal()
Convert this number to a BigDecimal.
String
toString()

Real
ZERO()
The additive element 0 in the group, such that for all elements a in the group, the equation 0 + a = a + 0 = a holds.

### Methods inherited from class java.lang.Number

byteValue, shortValue

### Methods inherited from class java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
• ## Field Details

• ### ZERO

public static final Real ZERO
a number representing 0
• ### ONE

public static final Real ONE
a number representing 1
• ## Constructor Details

• ### 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 Details

• ### 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

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:
• ### 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
• ### inverse

public Real inverse() throws Field.InverseNonExistent
Description copied from interface: Field
For each a in F, there exists an element b in F such that a × b = b × a = 1. That is, it is the object such as
this.multiply(this.inverse()) == this.ONE
Specified by:
inverse in interface Field<Real>
Returns:
1 / this if it exists
Throws:
Field.InverseNonExistent - if the inverse does not exist
• ### 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:
• ### 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
• ### compareTo

public int compareTo(Real that)
Specified by:
compareTo in interface Comparable<Real>
• ### toString

public String toString()
Overrides:
toString in class Object
• ### equals

public boolean equals(Object obj)
Overrides:
equals in class Object
• ### hashCode

public int hashCode()
Overrides:
hashCode in class Object