public final class BigDecimal extends java.lang.Object implements GcdRingElem<BigDecimal>, RingFactory<BigDecimal>
BigDecimal
,
Serialized FormModifier and Type | Field and Description |
---|---|
java.math.MathContext |
context |
static java.math.MathContext |
DEFAULT_CONTEXT |
static int |
DEFAULT_PRECISION |
static boolean |
EXACT_EQUAL
If true, then use equals from java.math.BigDecimal, else use hacked
approximate compareTo().
|
static BigDecimal |
ONE
The constant 1.
|
java.math.BigDecimal |
val
The data structure.
|
static BigDecimal |
ZERO
The constant 0.
|
Constructor and Description |
---|
BigDecimal()
Constructor for BigDecimal without parameters.
|
BigDecimal(java.math.BigDecimal a)
Constructor for BigDecimal from math.BigDecimal.
|
BigDecimal(java.math.BigDecimal a,
java.math.MathContext mc)
Constructor for BigDecimal from math.BigDecimal.
|
BigDecimal(java.math.BigInteger a)
Constructor for BigDecimal from java.math.BigInteger.
|
BigDecimal(java.math.BigInteger a,
java.math.MathContext mc)
Constructor for BigDecimal from java.math.BigInteger.
|
BigDecimal(BigRational a)
Constructor for BigDecimal from BigRational.
|
BigDecimal(BigRational a,
java.math.MathContext mc)
Constructor for BigDecimal from BigRational.
|
BigDecimal(double a)
Constructor for BigDecimal from double.
|
BigDecimal(double a,
java.math.MathContext mc)
Constructor for BigDecimal from double and a context.
|
BigDecimal(long a)
Constructor for BigDecimal from long.
|
BigDecimal(long a,
java.math.MathContext mc)
Constructor for BigDecimal from long and a context.
|
BigDecimal(java.lang.String s)
Constructor for BigDecimal from String.
|
BigDecimal(java.lang.String s,
java.math.MathContext mc)
Constructor for BigDecimal from String.
|
Modifier and Type | Method and Description |
---|---|
BigDecimal |
abs()
Absolute value of this.
|
long |
bitLength()
Returns the number of bits in the representation of this BigDecimal,
including a sign bit.
|
java.math.BigInteger |
characteristic()
Characteristic of this ring.
|
int |
compareTo(BigDecimal b)
Compare to BigDecimal b.
|
int |
compareToAbsolute(BigDecimal b)
Compare absolute to BigDecimal b.
|
int |
compareToRelative(BigDecimal b)
Compare to relative BigDecimal b.
|
BigDecimal |
copy()
Clone this.
|
BigDecimal |
copy(BigDecimal c)
Copy BigDecimal element c.
|
BigDecimal |
divide(BigDecimal S)
BigDecimal divide.
|
double |
doubleValue()
Get this decimal as a double.
|
BigDecimal[] |
egcd(BigDecimal S)
BigDecimal extended greatest common divisor.
|
boolean |
equals(java.lang.Object b)
Comparison with any other object.
|
BigDecimal |
factory()
Get the corresponding element factory.
|
BigDecimal |
fromInteger(java.math.BigInteger a)
Get a BigDecimal element from a math.BigDecimal.
|
BigDecimal |
fromInteger(long a)
Get a BigDecimal element from long.
|
BigDecimal |
gcd(BigDecimal S)
BigDecimal greatest common divisor.
|
java.util.List<BigDecimal> |
generators()
Get a list of the generating elements.
|
BigDecimal |
getONE()
Get the one element.
|
BigDecimal |
getZERO()
Get the zero element.
|
int |
hashCode()
Hash code for this BigDecimal.
|
BigDecimal |
inverse()
Integer inverse.
|
boolean |
isAssociative()
Query if this ring is associative.
|
boolean |
isCommutative()
Query if this ring is commutative.
|
boolean |
isField()
Query if this ring is a field.
|
boolean |
isFinite()
Is this structure finite or infinite.
|
boolean |
isONE()
Is BigDecimal number one.
|
boolean |
isUnit()
Is BigDecimal number unit.
|
boolean |
isZERO()
Is BigDecimal number zero.
|
BigDecimal |
multiply(BigDecimal S)
BigDecimal multiply.
|
BigDecimal |
negate()
Negate this.
|
BigDecimal |
parse(java.io.Reader r)
BigDecimal parse from Reader.
|
BigDecimal |
parse(java.lang.String s)
BigDecimal parse from String.
|
BigDecimal[] |
quotientRemainder(BigDecimal S)
BigDecimal compute quotient and remainder.
|
BigDecimal |
random(int n)
BigDecimal random.
|
BigDecimal |
random(int n,
int e)
BigDecimal random.
|
BigDecimal |
random(int n,
int e,
java.util.Random rnd)
BigDecimal random.
|
BigDecimal |
random(int n,
java.util.Random rnd)
BigDecimal random.
|
BigDecimal |
remainder(BigDecimal S)
BigDecimal remainder.
|
int |
signum()
signum.
|
BigDecimal |
subtract(BigDecimal S)
BigDecimal subtract.
|
BigDecimal |
sum(BigDecimal S)
BigDecimal summation.
|
java.lang.String |
toScript()
Get a scripting compatible string representation.
|
java.lang.String |
toScriptFactory()
Get a scripting compatible string representation of the factory.
|
java.lang.String |
toString()
Get the String representation.
|
static BigDecimal |
valueOf(java.math.BigDecimal a)
Get a BigDecimal element from a math.BigDecimal.
|
static BigDecimal |
valueOf(long a)
Get a BigDecimal element from long.
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
leftDivide, leftRemainder, power, rightDivide, rightRemainder, twosidedDivide, twosidedRemainder
public final java.math.BigDecimal val
public static final java.math.MathContext DEFAULT_CONTEXT
public static final int DEFAULT_PRECISION
public final java.math.MathContext context
public static final boolean EXACT_EQUAL
public static final BigDecimal ZERO
public static final BigDecimal ONE
public BigDecimal(java.math.BigDecimal a)
a
- java.math.BigDecimal.public BigDecimal(java.math.BigDecimal a, java.math.MathContext mc)
a
- java.math.BigDecimal.mc
- MathContext.public BigDecimal(long a)
a
- long.public BigDecimal(long a, java.math.MathContext mc)
a
- long.mc
- MathContext.public BigDecimal(double a)
a
- double.public BigDecimal(double a, java.math.MathContext mc)
a
- double.mc
- MathContext.public BigDecimal(java.math.BigInteger a)
a
- java.math.BigInteger.public BigDecimal(java.math.BigInteger a, java.math.MathContext mc)
a
- java.math.BigInteger.mc
- MathContext.public BigDecimal(BigRational a)
a
- edu.jas.arith.BigRational.public BigDecimal(BigRational a, java.math.MathContext mc)
a
- edu.jas.arith.BigRational.mc
- MathContext.public BigDecimal(java.lang.String s)
s
- String.public BigDecimal(java.lang.String s, java.math.MathContext mc)
s
- String.mc
- MathContext.public BigDecimal()
public BigDecimal factory()
factory
in interface Element<BigDecimal>
Element.factory()
public java.util.List<BigDecimal> generators()
generators
in interface ElemFactory<BigDecimal>
ElemFactory.generators()
public boolean isFinite()
isFinite
in interface ElemFactory<BigDecimal>
Note: is actually
finite but returns false.
public BigDecimal copy()
copy
in interface Element<BigDecimal>
Object.clone()
public BigDecimal copy(BigDecimal c)
copy
in interface ElemFactory<BigDecimal>
c
- BigDecimal.public BigDecimal getZERO()
getZERO
in interface AbelianGroupFactory<BigDecimal>
public BigDecimal getONE()
getONE
in interface MonoidFactory<BigDecimal>
public boolean isCommutative()
isCommutative
in interface MonoidFactory<BigDecimal>
public boolean isAssociative()
isAssociative
in interface MonoidFactory<BigDecimal>
public boolean isField()
isField
in interface RingFactory<BigDecimal>
public java.math.BigInteger characteristic()
characteristic
in interface RingFactory<BigDecimal>
public BigDecimal fromInteger(java.math.BigInteger a)
fromInteger
in interface ElemFactory<BigDecimal>
a
- math.BigDecimal.public static BigDecimal valueOf(java.math.BigDecimal a)
a
- math.BigDecimal.public BigDecimal fromInteger(long a)
fromInteger
in interface ElemFactory<BigDecimal>
a
- long.public static BigDecimal valueOf(long a)
a
- long.public boolean isZERO()
isZERO
in interface AbelianGroupElem<BigDecimal>
AbelianGroupElem.isZERO()
public boolean isONE()
isONE
in interface MonoidElem<BigDecimal>
MonoidElem.isONE()
public boolean isUnit()
isUnit
in interface MonoidElem<BigDecimal>
MonoidElem.isUnit()
public java.lang.String toString()
toString
in class java.lang.Object
Object.toString()
public double doubleValue()
Number.doubleValue()
public java.lang.String toScript()
toScript
in interface Element<BigDecimal>
toScript
in interface ElemFactory<BigDecimal>
Element.toScript()
public java.lang.String toScriptFactory()
toScriptFactory
in interface Element<BigDecimal>
Element.toScriptFactory()
public int compareTo(BigDecimal b)
compareTo
in interface Element<BigDecimal>
compareTo
in interface java.lang.Comparable<BigDecimal>
b
- BigDecimal.public int compareToAbsolute(BigDecimal b)
b
- BigDecimal.public int compareToRelative(BigDecimal b)
b
- BigDecimal.public boolean equals(java.lang.Object b)
equals
in interface Element<BigDecimal>
equals
in class java.lang.Object
Object.equals(java.lang.Object)
public int hashCode()
hashCode
in interface Element<BigDecimal>
hashCode
in class java.lang.Object
Object.hashCode()
public BigDecimal abs()
abs
in interface AbelianGroupElem<BigDecimal>
AbelianGroupElem.abs()
public BigDecimal negate()
AbelianGroupElem
negate
in interface AbelianGroupElem<BigDecimal>
public int signum()
signum
in interface AbelianGroupElem<BigDecimal>
AbelianGroupElem.signum()
public BigDecimal subtract(BigDecimal S)
subtract
in interface AbelianGroupElem<BigDecimal>
S
- BigDecimal.public BigDecimal divide(BigDecimal S)
divide
in interface MonoidElem<BigDecimal>
S
- BigDecimal.public BigDecimal inverse()
inverse
in interface MonoidElem<BigDecimal>
MonoidElem.inverse()
public BigDecimal remainder(BigDecimal S)
remainder
in interface MonoidElem<BigDecimal>
S
- BigDecimal.public BigDecimal[] quotientRemainder(BigDecimal S)
quotientRemainder
in interface MonoidElem<BigDecimal>
S
- BigDecimal.public BigDecimal gcd(BigDecimal S)
gcd
in interface RingElem<BigDecimal>
S
- BigDecimal.public BigDecimal[] egcd(BigDecimal S)
egcd
in interface RingElem<BigDecimal>
S
- BigDecimal.public BigDecimal random(int n)
random
in interface ElemFactory<BigDecimal>
n
- such that 0 ≤ val(r) ≤ (2n-1). 0 ≤ exp(r)
≤ (10-1).public BigDecimal random(int n, java.util.Random rnd)
random
in interface ElemFactory<BigDecimal>
n
- such that 0 ≤ val(r) ≤ (2n-1). 0 ≤ exp(r)
≤ (10-1).rnd
- is a source for random bits.public BigDecimal random(int n, int e)
n
- such that 0 ≤ val(r) ≤ (2n-1).e
- such that 0 ≤ exp(r) ≤ (e-1).public BigDecimal random(int n, int e, java.util.Random rnd)
n
- such that 0 ≤ val(r) ≤ (2n-1).e
- such that 0 ≤ exp(r) ≤ (e-1).rnd
- is a source for random bits.public BigDecimal multiply(BigDecimal S)
multiply
in interface MonoidElem<BigDecimal>
S
- BigDecimal.public BigDecimal sum(BigDecimal S)
sum
in interface AbelianGroupElem<BigDecimal>
S
- BigDecimal.public BigDecimal parse(java.lang.String s)
parse
in interface ElemFactory<BigDecimal>
s
- String.public BigDecimal parse(java.io.Reader r)
parse
in interface ElemFactory<BigDecimal>
r
- Reader.public long bitLength()
val.unscaledValue().bitLength()
.)