public class FDBigInteger extends Object
| Modifier and Type | Field and Description |
|---|---|
static FDBigInteger |
FIVE |
static FDBigInteger |
ONE |
static FDBigInteger |
ZERO |
| Constructor and Description |
|---|
FDBigInteger(long lValue,
char[] digits,
int kDigits,
int nDigits)
Constructs an
FDBigInteger from a starting value and some decimal digits. |
| Modifier and Type | Method and Description |
|---|---|
int |
addAndCmp(FDBigInteger x,
FDBigInteger y)
Compares this
FDBigInteger with x + y. |
int |
cmp(FDBigInteger other)
Compares the parameter with this
FDBigInteger. |
int |
cmpPow52(int p5,
int p2)
Compares this
FDBigInteger with 5p5 * 2p2. |
int |
getNormalizationBias()
Retrieves the normalization bias of the
FDBigIntger. |
FDBigInteger |
leftInplaceSub(FDBigInteger subtrahend)
Subtracts the supplied
FDBigInteger subtrahend from this FDBigInteger. |
FDBigInteger |
leftShift(int shift)
Shifts this
FDBigInteger to the left. |
void |
makeImmutable()
Makes this
FDBigInteger immutable. |
FDBigInteger |
multBy10()
Multiplies this
FDBigInteger by 10. |
FDBigInteger |
multByPow52(int p5,
int p2)
Multiplies this
FDBigInteger by 5p5 * 2p2. |
int |
quoRemIteration(FDBigInteger S)
Computes
|
FDBigInteger |
rightInplaceSub(FDBigInteger subtrahend)
Subtracts the supplied
FDBigInteger subtrahend from this FDBigInteger. |
BigInteger |
toBigInteger()
Converts this
FDBigInteger to a BigInteger. |
String |
toHexString()
Converts this
FDBigInteger to a hexadecimal string. |
static FDBigInteger |
valueOfMulPow52(long value,
int p5,
int p2)
Returns an
FDBigInteger with the numerical value
value * 5p5 * 2p2. |
static FDBigInteger |
valueOfPow52(int p5,
int p2)
Returns an
FDBigInteger with the numerical value 5p5 * 2p2. |
public static final FDBigInteger FIVE
public static final FDBigInteger ONE
public static final FDBigInteger ZERO
public FDBigInteger(long lValue,
char[] digits,
int kDigits,
int nDigits)
FDBigInteger from a starting value and some decimal digits.lValue - The starting value.digits - The decimal digits.kDigits - The initial index into digits.nDigits - The final index into digits.public int addAndCmp(FDBigInteger x, FDBigInteger y)
FDBigInteger with x + y. Returns a value according to the comparison as:
-1: this < x + y 0: this == x + y 1: this > x + y
x - The first addend of the sum to compare.y - The second addend of the sum to compare.public int cmp(FDBigInteger other)
FDBigInteger. Returns an integer accordingly as:
>0: this > other 0: this == other <0: this < other
other - The FDBigInteger to compare.public int cmpPow52(int p5,
int p2)
FDBigInteger with 5p5 * 2p2. Returns an integer
accordingly as:
>0: this > other 0: this == other <0: this < other
p5 - The exponent of the power-of-five factor.p2 - The exponent of the power-of-two factor.public int getNormalizationBias()
FDBigIntger. The normalization bias is a left shift such
that after it the highest word of the value will have the 4 highest bits equal to zero:
(highestWord & 0xf0000000) == 0, but the next bit should be 1
(highestWord & 0x08000000) != 0.public FDBigInteger leftInplaceSub(FDBigInteger subtrahend)
FDBigInteger subtrahend from this FDBigInteger. Assert that the
result is positive. If the subtrahend is immutable, store the result in this(minuend). If this(minuend) is
immutable a new FDBigInteger is created.subtrahend - The FDBigInteger to be subtracted.FDBigInteger less the subtrahend.public FDBigInteger leftShift(int shift)
FDBigInteger to the left. The shift is performed in-place unless the
FDBigInteger is immutable in which case a new instance of FDBigInteger is returned.shift - The number of bits to shift left.FDBigInteger.public void makeImmutable()
FDBigInteger immutable.public FDBigInteger multBy10()
FDBigInteger by 10. The operation will be performed in place unless the
FDBigInteger is immutable in which case a new FDBigInteger will be returned.FDBigInteger multiplied by 10.public FDBigInteger multByPow52(int p5, int p2)
FDBigInteger by 5p5 * 2p2. The operation will be
performed in place if possible, otherwise a new FDBigInteger will be returned.p5 - The exponent of the power-of-five factor.p2 - The exponent of the power-of-two factor.public int quoRemIteration(FDBigInteger S) throws IllegalArgumentException
q = (int)( this / S ) this = 10 * ( this mod S ) Return q.This is the iteration step of digit development for output. We assume that S has been normalized, as above, and that "this" has been left-shifted accordingly. Also assumed, of course, is that the result, q, can be expressed as an integer, 0 <= q < 10.
S - The divisor of this FDBigInteger.q = (int)(this / S).IllegalArgumentExceptionpublic FDBigInteger rightInplaceSub(FDBigInteger subtrahend)
FDBigInteger subtrahend from this FDBigInteger. Assert that the
result is positive. If the this(minuend) is immutable, store the result in subtrahend. If subtrahend is immutable
a new FDBigInteger is created.subtrahend - The FDBigInteger to be subtracted.FDBigInteger less the subtrahend.public BigInteger toBigInteger()
FDBigInteger to a BigInteger.BigInteger representation.public String toHexString()
FDBigInteger to a hexadecimal string.public static FDBigInteger valueOfMulPow52(long value, int p5, int p2)
FDBigInteger with the numerical value
value * 5p5 * 2p2.value - The constant factor.p5 - The exponent of the power-of-five factor.p2 - The exponent of the power-of-two factor.value * 5p5 * 2p2public static FDBigInteger valueOfPow52(int p5, int p2)
FDBigInteger with the numerical value 5p5 * 2p2.p5 - The exponent of the power-of-five factor.p2 - The exponent of the power-of-two factor.5p5 * 2p2