|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.Number
org.znerd.math.RealNumber
org.znerd.math.RationalNumber
org.znerd.math.IntegerNumber
An immutable integer number. The base for all integer numbers. It extends
RationalNumber
by offering narrowed numeric computations for
integer numbers.
IntegerNumber
numeric computations are narrowed
compared to their more general RationalNumber
equivalents.
For instance, adding two integer numbers will result in a integer number.
The computations concerned are:
add(IntegerNumber)
subtract(RationalNumber)
multiply(RationalNumber)
getSign()
negate()
add(IntegerNumber)
multiply(IntegerNumber)
integerDivide(IntegerNumber)
longValue()
long
doubleValue()
double
toByteArray()
final
need no further optimization.
Field Summary |
Fields inherited from class org.znerd.math.RealNumber |
MAXIMUM_RADIX |
Fields inherited from interface org.znerd.math.RoundingModes |
ROUND_CEILING, ROUND_DOWN, ROUND_FLOOR, ROUND_UP |
Constructor Summary | |
protected |
IntegerNumber(int sign,
String asString)
Creates a new IntegerNumber with the specified sign and the
specified textual representation. |
Method Summary | |
RealNumber |
abs()
Computes |this|. |
IntegerNumber |
absInteger()
Computes |this| and returns an IntegerNumber . |
abstract IntegerNumber |
add(IntegerNumber n)
Computes this + n, where n is an integer number. |
RationalNumber |
add(RationalNumber n)
Computes this+n, where n is a rational number. |
protected int |
compareTo(IntegerNumber n)
Compares this number with the specified integer number, first level. |
protected int |
compareToImpl(IntegerNumber n)
Compares this number with the specified integer number, second level. |
protected int |
compareToImpl(RationalNumber n)
Compares this number with the specified rational number, second level. |
IntegerNumber |
dec()
Computes this-1. |
RationalNumber |
divide(RationalNumber n)
Computes this/n, where n is a rational number. |
IntegerNumber |
fac()
Computes this!. |
IntegerNumber |
gcd(IntegerNumber n)
Computes the greatest common divisor of this and n. |
IntegerNumber |
inc()
Computes this+1. |
abstract IntegerNumber |
integerDivide(IntegerNumber n)
Computes the integer result of this/n, where n is an integer number. |
RealNumber |
invert()
Computes 1/this. |
boolean |
isRelativePrime(IntegerNumber n)
Determines if this and n are relative primes. |
abstract IntegerNumber |
multiply(IntegerNumber n)
Computes this * n, where n is an integer number. |
RationalNumber |
multiply(RationalNumber n)
Computes this*n, where n is a rational number. |
RealNumber |
negate()
Computes -this. |
IntegerNumber |
negateInteger()
Computes -this and returns an IntegerNumber . |
RationalNumber |
powImpl(IntegerNumber n)
|
IntegerNumber |
remainder(IntegerNumber n)
Computes the remainder of this/n, where n is an integer number. |
IntegerNumber |
subtract(IntegerNumber n)
Computes this - n, where n is an integer number. |
RationalNumber |
subtract(RationalNumber n)
Computes this-n, where n is a rational number. |
BigDecimal |
toBigDecimal()
Converts the value of this number to a BigDecimal . |
BigDecimal |
toBigDecimal(int precision)
Converts the value of this number to a BigDecimal with the
specified precision. |
BigDecimal |
toBigDecimal(int precision,
int roundingMode)
Converts the value of this number to a BigDecimal with the
specified precision and rounding mode. |
BigInteger |
toBigInteger()
Converts the value of this number to a BigInteger . |
abstract byte[] |
toByteArray()
Returns the two's-complement representation of this integer number. |
IntegerNumber |
trunc()
Rounds to an integer number towards 0. |
Methods inherited from class org.znerd.math.RationalNumber |
add, compareTo, compareToImpl, compareToImpl2, divide, doubleValue, getDenominator, getNumerator, multiply, pow, powImpl, subtract |
Methods inherited from class org.znerd.math.RealNumber |
byteValue, compareTo, compareTo, equals, fitsByte, fitsDouble, fitsFloat, fitsInt, fitsLong, fitsShort, floatValue, getSign, intValue, longValue, pow, round, shortValue, toString |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
protected IntegerNumber(int sign, String asString)
IntegerNumber
with the specified sign and the
specified textual representation. This constructor can only be called
from subclass constructors, since this class is abstract.
sign
- the sign of this number, either -1 if this number is negative, 0 if
this number is 0, or 1 is this number is positive.asString
- textual presentation of this number, not null
.Method Detail |
protected int compareToImpl(RationalNumber n) throws CanNotCompareException
RationalNumber
RationalNumber.compareTo(RationalNumber)
. The
implementation of this method in class RationalNumber
just
throws a CanNotCompareException
to indicate it does not provide
an optimized algorithm for comparing this integer number with the
argument integer number. Subclasses are encouraged to override this
method.
compareToImpl
in class RationalNumber
n
- the number to compare to, guaranteed to be not null
.
CanNotCompareException
- if the comparison failed.protected final int compareTo(IntegerNumber n) throws CanNotCompareException
compareToImpl(IntegerNumber)
. If that
method throws a CanNotCompareException
, then it will attempt to
use a fallback comparison algorithm based on toByteArray()
.
n
- the number to compare to, guaranteed to be not null
.
CanNotCompareException
- if the comparison failed.protected int compareToImpl(IntegerNumber n) throws CanNotCompareException
compareTo(IntegerNumber)
. The
implementation of this method in class IntegerNumber
just throws
a CanNotCompareException
to indicate it does not provide an
optimized algorithm for comparing this integer number with the argument
integer number. Subclasses are encouraged to override this method.
n
- the number to compare to, guaranteed to be not null
.
CanNotCompareException
- if the comparison failed.public final RealNumber abs()
RealNumber
abs
in class RealNumber
null
and always with a value
>= 0.public final IntegerNumber absInteger()
IntegerNumber
. The returned
value is always >= 0.
The only difference between this method and abs()
is that
this method is explicitly defined to return an
IntegerNumber
. In fact abs()
calls this method.
null
and always with a value
>= 0.public final RealNumber negate()
RealNumber
negate
in class RationalNumber
public IntegerNumber negateInteger()
IntegerNumber
.
The only difference between this method and negate()
is
that this method is explicitly defined to return an
IntegerNumber
. In fact negate()
calls this method.
null
.public RealNumber invert() throws ArithmeticException
RealNumber
invert
in class RationalNumber
ArithmeticException
public RationalNumber add(RationalNumber n) throws IllegalArgumentException
RationalNumber
add
in class RationalNumber
n
- the number to add to this.
IllegalArgumentException
- if n == null
.public abstract IntegerNumber add(IntegerNumber n) throws IllegalArgumentException
n
- the number to add to this, not null
.
null
.
IllegalArgumentException
- if the argument is
null
.public RationalNumber subtract(RationalNumber n) throws IllegalArgumentException
RationalNumber
subtract
in class RationalNumber
n
- the number to subtract from this.
IllegalArgumentException
- if n == null
.public IntegerNumber subtract(IntegerNumber n) throws IllegalArgumentException
n
- the number to subtract from this, not null
.
null
.
IllegalArgumentException
- if n == null
.public RationalNumber multiply(RationalNumber n) throws IllegalArgumentException
RationalNumber
multiply
in class RationalNumber
n
- the number to multiply this by.
IllegalArgumentException
- if n == null
.public abstract IntegerNumber multiply(IntegerNumber n) throws IllegalArgumentException
n
- the number to multiply this by, not null
.
null
.
IllegalArgumentException
- if n == null
.public RationalNumber divide(RationalNumber n) throws IllegalArgumentException, ArithmeticException
RationalNumber
divide
in class RationalNumber
n
- the number to divide this by.
IllegalArgumentException
- if n == null
.
ArithmeticException
- if the value of n is zero.public RationalNumber powImpl(IntegerNumber n) throws IllegalArgumentException
powImpl
in class RationalNumber
IllegalArgumentException
public IntegerNumber dec()
public IntegerNumber inc()
public IntegerNumber fac() throws ArithmeticException
null
.
ArithmeticException
- if the value of this number is < 0.public IntegerNumber remainder(IntegerNumber n) throws ArithmeticException, IllegalArgumentException
n
- the number to divide this by.
ArithmeticException
- if the value of the argument number is
zero.
IllegalArgumentException
- if the argument is
null
.public IntegerNumber gcd(IntegerNumber n) throws IllegalArgumentException
n
- the other integer number.
IllegalArgumentException
- if n is null
.public boolean isRelativePrime(IntegerNumber n) throws IllegalArgumentException
n
- the other integer number.
true
if this and n are relative primes,
false
otherwise.
IllegalArgumentException
- if n is null
.public BigInteger toBigInteger()
BigInteger
.
toBigInteger
in class RealNumber
BigInteger
with the value of this.public BigDecimal toBigDecimal()
BigDecimal
. A
precision nor a rounding mode need to be specified for integer numbers.
BigDecimal
with the exact value of this.public BigDecimal toBigDecimal(int precision) throws IllegalArgumentException
BigDecimal
with the
specified precision. The precision argument is ignored,
because no rounding is needed.
toBigDecimal
in class RationalNumber
precision
- the number of digits behind the decimal point.
BigDecimal
with the exact value of this.
IllegalArgumentException
- if precision < 0public BigDecimal toBigDecimal(int precision, int roundingMode)
BigDecimal
with the
specified precision and rounding mode. The precision and
roundingMode arguments are ignored, because no rounding is
needed.
toBigDecimal
in class RationalNumber
precision
- the number of digits behind the decimal point.roundingMode
- the rounding mode to use, one of the modes defined
in class BigDecimal
.
BigDecimal
with the rounded value of this.
IllegalArgumentException
- if one of the following applies:
public final IntegerNumber trunc()
RealNumber
trunc
in class RationalNumber
public abstract byte[] toByteArray()
public abstract IntegerNumber integerDivide(IntegerNumber n) throws ArithmeticException, IllegalArgumentException
n
- the number to divide this by.
ArithmeticException
- if the value of the argument number is
zero.
IllegalArgumentException
- if the argument is
null
.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |