|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.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.
Fields inherited from class org.znerd.math.RealNumber |
MAXIMUM_RADIX |
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 |
pow(IntegerNumber n)
Computes this**n, where n is an integer number. |
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,
subtract |
Methods inherited from class org.znerd.math.RealNumber |
byteValue,
compareTo,
compareTo,
equals,
fitsByte,
fitsDouble,
fitsFloat,
fitsInt,
fitsLong,
fitsShort,
floatValue,
getSign,
intValue,
longValue,
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.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.n
- the number to compare to, guaranteed to be not null
.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
.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
.public final RealNumber abs()
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()
null
.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
null
.public RationalNumber add(RationalNumber n) throws IllegalArgumentException
n
- the number to add to this.null
.public abstract IntegerNumber add(IntegerNumber n) throws IllegalArgumentException
n
- the number to add to this, not null
.null
.null
.public RationalNumber subtract(RationalNumber n) throws IllegalArgumentException
n
- the number to subtract from this.null
.public IntegerNumber subtract(IntegerNumber n) throws IllegalArgumentException
n
- the number to subtract from this, not null
.null
.n == null
.public RationalNumber multiply(RationalNumber n) throws IllegalArgumentException
n
- the number to multiply this by.null
.public abstract IntegerNumber multiply(IntegerNumber n) throws IllegalArgumentException
n
- the number to multiply this by, not null
.null
.n == null
.public RationalNumber divide(RationalNumber n) throws IllegalArgumentException, ArithmeticException
n
- the number to divide this by.null
.public RationalNumber pow(IntegerNumber n) throws IllegalArgumentException
n
- the exponent.null
.public IntegerNumber dec()
public IntegerNumber inc()
public IntegerNumber fac() throws ArithmeticException
null
.public IntegerNumber remainder(IntegerNumber n) throws ArithmeticException, IllegalArgumentException
n
- the number to divide this by.null
.public IntegerNumber gcd(IntegerNumber n) throws IllegalArgumentException
n
- the other integer number.null
.public boolean isRelativePrime(IntegerNumber n) throws IllegalArgumentException
n
- the other integer number.true
if this and n are relative primes,
false
otherwise.null
.public BigInteger toBigInteger()
BigInteger
.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.precision
- the number of digits behind the decimal point.BigDecimal
with the exact value of this.public 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.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.public final IntegerNumber trunc()
null
.public abstract byte[] toByteArray()
public abstract IntegerNumber integerDivide(IntegerNumber n) throws ArithmeticException, IllegalArgumentException
n
- the number to divide this by.null
.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |