|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.lang.Number gnu.math.Numeric gnu.math.Quantity gnu.math.Complex gnu.math.RealNum gnu.math.RatNum gnu.math.IntNum
public class IntNum
A class for infinite-precision integers.
Field Summary | |
---|---|
int |
ival
All integers are stored in 2's-complement form. |
int[] |
words
|
Fields inherited from class gnu.math.Numeric |
---|
CEILING, FLOOR, ROUND, TRUNCATE |
Constructor Summary | |
---|---|
IntNum()
|
|
IntNum(int value)
Create a new (non-shared) IntNum, and initialize to an int. |
Method Summary | |
---|---|
static IntNum |
abs(IntNum x)
|
static IntNum |
add(int x,
int y)
Add two ints, yielding an IntNum. |
static IntNum |
add(IntNum x,
int y)
Add an IntNum and an int, yielding a new IntNum. |
static IntNum |
add(IntNum x,
IntNum y)
Add two IntNums, yielding their sum as another IntNum. |
static IntNum |
add(IntNum x,
IntNum y,
int k)
Add two IntNums, yielding their sum as another IntNum. |
Numeric |
add(java.lang.Object y,
int k)
Return this + k * obj. |
static IntNum |
alloc(int nwords)
Allocate a new non-shared IntNum. |
IntNum |
canonicalize()
|
static int |
compare(IntNum x,
IntNum y)
Return -1, 0, or 1, depending on which value is greater. |
static int |
compare(IntNum x,
long y)
Return -1, 0, or 1, depending on which value is greater. |
int |
compare(java.lang.Object obj)
Return 1 if this>obj; 0 if this==obj; -1 if this |
IntNum |
denominator()
|
Numeric |
div(java.lang.Object y)
|
static void |
divide(IntNum x,
IntNum y,
IntNum quotient,
IntNum remainder,
int rounding_mode)
Divide two integers, yielding quotient and remainder. |
static void |
divide(long x,
long y,
IntNum quotient,
IntNum remainder,
int rounding_mode)
|
double |
doubleValue()
The value of the real component, as a double. |
static boolean |
equals(IntNum x,
IntNum y)
|
boolean |
equals(java.lang.Object obj)
|
void |
format(int radix,
java.lang.StringBuffer buffer)
|
static int |
gcd(int a,
int b)
Calculate Greatest Common Divisor for non-negative ints. |
static IntNum |
gcd(IntNum x,
IntNum y)
|
void |
getAbsolute(int[] words)
Copy the abolute value of this into an array of words. |
int |
hashCode()
|
int |
intLength()
Calculates ceiling(log2(this < 0 ? -this : this+1)) . |
int |
intValue()
|
static int |
intValue(java.lang.Object obj)
Cast an Object to an int. |
boolean |
isMinusOne()
|
boolean |
isNegative()
|
boolean |
isOdd()
|
boolean |
isOne()
|
boolean |
isZero()
|
static IntNum |
lcm(IntNum x,
IntNum y)
|
long |
longValue()
|
static IntNum |
make(int value)
Return a (possibly-shared) IntNum with a given int value. |
static IntNum |
make(int[] words)
|
static IntNum |
make(int[] words,
int len)
Make a canonicalized IntNum from an array of words. |
static IntNum |
make(long value)
Return a (possibly-shared) IntNum with a given long value. |
static IntNum |
makeU(long value)
Make an IntNum from an unsigned 64-bit value. |
static IntNum |
minusOne()
Return the IntNum for -1. |
static IntNum |
modulo(IntNum x,
IntNum y)
|
Numeric |
mul(java.lang.Object y)
|
Numeric |
neg()
|
static IntNum |
neg(IntNum x)
|
static boolean |
negate(int[] dest,
int[] src,
int len)
Set dest[0:len-1] to the negation of src[0:len-1]. |
IntNum |
numerator()
|
static IntNum |
one()
|
Numeric |
power(IntNum y)
Return this raised to an integer power. |
static IntNum |
power(IntNum x,
int y)
Calculate the integral power of an IntNum. |
static IntNum |
quotient(IntNum x,
IntNum y)
|
static IntNum |
quotient(IntNum x,
IntNum y,
int rounding_mode)
|
void |
readExternal(java.io.ObjectInput in)
|
java.lang.Object |
readResolve()
|
void |
realloc(int nwords)
Change words.length to nwords. |
static IntNum |
remainder(IntNum x,
IntNum y)
|
double |
roundToDouble(int exp,
boolean neg,
boolean remainder)
Convert a semi-processed IntNum to double. |
void |
set(int y)
Destructively set the value of this to an int. |
void |
set(int[] words,
int length)
Destructively set the value of this to the given words. |
void |
set(IntNum y)
Destructively set the value of this to that of y. |
void |
set(long y)
Destructively set the value of this to a long. |
void |
setAdd(int y)
Destructively add an int to this. |
void |
setAdd(IntNum x,
int y)
Set this to the sum of x and y. |
void |
setNegative()
Destructively negate this. |
void |
setNegative(IntNum x)
Destructively set this to the negative of x. |
static IntNum |
shift(IntNum x,
int count)
|
int |
sign()
Return 1 if >0; 0 if ==0; -1 if <0; -2 if NaN. |
static IntNum |
sub(IntNum x,
IntNum y)
Subtract two IntNums, yielding their sum as another IntNum. |
static IntNum |
ten()
|
static IntNum |
times(int x,
int y)
Multiply two ints, yielding an IntNum. |
static IntNum |
times(IntNum x,
int y)
|
static IntNum |
times(IntNum x,
IntNum y)
|
IntNum |
toExactInt(int rounding_mode)
Converts to an exact integer, with specified rounding mode. |
RealNum |
toInt(int rounding_mode)
Converts a real to an integer, according to a specified rounding mode. |
java.lang.String |
toString(int radix)
|
static IntNum |
valueOf(byte[] digits,
int byte_len,
boolean negative,
int radix)
|
static IntNum |
valueOf(char[] buf,
int offset,
int length,
int radix,
boolean negative)
|
static IntNum |
valueOf(java.lang.String s)
|
static IntNum |
valueOf(java.lang.String s,
int radix)
|
static int |
wordsNeeded(int[] words,
int len)
Calculate how many words are significant in words[0:len-1]. |
void |
writeExternal(java.io.ObjectOutput out)
|
static IntNum |
zero()
|
Methods inherited from class gnu.math.RatNum |
---|
add, compare, divide, equals, infinity, isExact, make, rationalize, times, toExact |
Methods inherited from class gnu.math.RealNum |
---|
abs, add, compareTo, divide, exp, im, log, max, min, re, rneg, sin, sqrt, times, toExactInt, toExactInt, toInt, toScaledInt, toScaledInt, toScaledInt |
Methods inherited from class gnu.math.Complex |
---|
add, addReversed, angle, compare, divide, divReversed, doubleImagValue, doubleRealValue, equals, imMinusOne, imOne, make, make, mulReversed, neg, number, polar, polar, power, times |
Methods inherited from class gnu.math.Quantity |
---|
add, compare, compareReversed, dimensions, divide, imValue, make, make, make, reValue, times, unit |
Methods inherited from class gnu.math.Numeric |
---|
add, div_inv, floatValue, geq, grt, mul_ident, sub, toString |
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 Detail |
---|
public int ival
public int[] words
Constructor Detail |
---|
public IntNum()
public IntNum(int value)
value
- the initial valueMethod Detail |
---|
public static IntNum make(int value)
public static final IntNum zero()
public static final IntNum one()
public static final IntNum ten()
public static IntNum minusOne()
public static IntNum make(long value)
public static IntNum makeU(long value)
public static IntNum make(int[] words, int len)
public static IntNum make(int[] words)
public static IntNum alloc(int nwords)
nwords
- number of words to allocatepublic void realloc(int nwords)
public final IntNum numerator()
numerator
in class RatNum
public final IntNum denominator()
denominator
in class RatNum
public final boolean isNegative()
isNegative
in class RealNum
public int sign()
RealNum
sign
in class RealNum
public static int compare(IntNum x, IntNum y)
public static int compare(IntNum x, long y)
public int compare(java.lang.Object obj)
Numeric
compare
in class Complex
public final boolean isOdd()
public final boolean isZero()
isZero
in class RatNum
public final boolean isOne()
public final boolean isMinusOne()
public static int wordsNeeded(int[] words, int len)
public IntNum canonicalize()
public static final IntNum add(int x, int y)
public static IntNum add(IntNum x, int y)
public void setAdd(IntNum x, int y)
public final void setAdd(int y)
public final void set(int y)
public final void set(long y)
public final void set(int[] words, int length)
public final void set(IntNum y)
public static IntNum add(IntNum x, IntNum y)
public static IntNum sub(IntNum x, IntNum y)
public static IntNum add(IntNum x, IntNum y, int k)
public static final IntNum times(int x, int y)
public static final IntNum times(IntNum x, int y)
public static final IntNum times(IntNum x, IntNum y)
public static void divide(long x, long y, IntNum quotient, IntNum remainder, int rounding_mode)
public static void divide(IntNum x, IntNum y, IntNum quotient, IntNum remainder, int rounding_mode)
x
- the numerator in the divisiony
- the denominator in the divisionquotient
- is set to the quotient of the result (iff quotient!=null)remainder
- is set to the remainder of the result
(iff remainder!=null)rounding_mode
- one of FLOOR, CEILING, TRUNCATE, or ROUND.public static IntNum quotient(IntNum x, IntNum y, int rounding_mode)
public static IntNum quotient(IntNum x, IntNum y)
public IntNum toExactInt(int rounding_mode)
RealNum
toExactInt
in class RatNum
public RealNum toInt(int rounding_mode)
RealNum
toInt
in class RatNum
public static IntNum remainder(IntNum x, IntNum y)
public static IntNum modulo(IntNum x, IntNum y)
public Numeric power(IntNum y)
Numeric
power
in class RatNum
public static IntNum power(IntNum x, int y)
x
- the value (base) to exponentiatey
- the exponent (must be non-negative)public static final int gcd(int a, int b)
public static IntNum gcd(IntNum x, IntNum y)
public static IntNum lcm(IntNum x, IntNum y)
public static IntNum shift(IntNum x, int count)
public void format(int radix, java.lang.StringBuffer buffer)
public java.lang.String toString(int radix)
toString
in class Complex
public int intValue()
intValue
in class Numeric
public static int intValue(java.lang.Object obj)
public long longValue()
longValue
in class Complex
public int hashCode()
hashCode
in class java.lang.Object
public static boolean equals(IntNum x, IntNum y)
public boolean equals(java.lang.Object obj)
equals
in class RatNum
public static IntNum valueOf(char[] buf, int offset, int length, int radix, boolean negative)
public static IntNum valueOf(java.lang.String s, int radix) throws java.lang.NumberFormatException
java.lang.NumberFormatException
public static IntNum valueOf(byte[] digits, int byte_len, boolean negative, int radix)
public static IntNum valueOf(java.lang.String s) throws java.lang.NumberFormatException
java.lang.NumberFormatException
public double doubleValue()
Quantity
doubleValue
in class Complex
public double roundToDouble(int exp, boolean neg, boolean remainder)
exp
- power of two, positive or negative, by which to multiplyneg
- true if negativeremainder
- true if the IntNum is the result of a truncating
division that had non-zero remainder. To ensure proper rounding in
this case, the IntNum must have at least 54 bits.public Numeric add(java.lang.Object y, int k)
Numeric
add
in class RealNum
public Numeric mul(java.lang.Object y)
mul
in class RealNum
public Numeric div(java.lang.Object y)
div
in class RealNum
public void getAbsolute(int[] words)
public static boolean negate(int[] dest, int[] src, int len)
public void setNegative(IntNum x)
public final void setNegative()
public static IntNum abs(IntNum x)
public static IntNum neg(IntNum x)
public Numeric neg()
neg
in class Complex
public int intLength()
ceiling(log2(this < 0 ? -this : this+1))
.
See Common Lisp: the Language, 2nd ed, p. 361.
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
writeExternal
in interface java.io.Externalizable
java.io.IOException
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
readExternal
in interface java.io.Externalizable
java.io.IOException
java.lang.ClassNotFoundException
public java.lang.Object readResolve() throws java.io.ObjectStreamException
java.io.ObjectStreamException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |