Modifier and Type | Class and Description |
---|---|
static class |
DfpField.RoundingMode
Enumerate for rounding modes.
|
Modifier and Type | Field and Description |
---|---|
static int |
FLAG_DIV_ZERO
IEEE 854-1987 flag for division by zero.
|
static int |
FLAG_INEXACT
IEEE 854-1987 flag for inexact result.
|
static int |
FLAG_INVALID
IEEE 854-1987 flag for invalid operation.
|
static int |
FLAG_OVERFLOW
IEEE 854-1987 flag for overflow.
|
static int |
FLAG_UNDERFLOW
IEEE 854-1987 flag for underflow.
|
Constructor and Description |
---|
DfpField(int decimalDigits)
Create a factory for the specified number of radix digits.
|
Modifier and Type | Method and Description |
---|---|
void |
clearIEEEFlags()
Clears the IEEE 854 status flags.
|
static Dfp |
computeExp(Dfp a,
Dfp one)
Compute exp(a).
|
static Dfp |
computeLn(Dfp a,
Dfp one,
Dfp two)
Compute ln(a).
|
boolean |
equals(Object other) |
Dfp |
getDegToRad()
Get the degrees to radians conversion factor.
|
Dfp |
getE()
Get the constant e.
|
Dfp[] |
getESplit()
Get the constant e split in two pieces.
|
DfpField |
getExtendedField(int digitsFactor,
boolean computeConstants)
Get extended field for accuracy conversion.
|
int |
getIEEEFlags()
Get the IEEE 854 status flags.
|
Dfp |
getLn10()
Get the constant ln(10).
|
Dfp |
getLn2()
Get the constant ln(2).
|
Dfp[] |
getLn2Split()
Get the constant ln(2) split in two pieces.
|
Dfp |
getLn5()
Get the constant ln(5).
|
Dfp[] |
getLn5Split()
Get the constant ln(5) split in two pieces.
|
Dfp |
getOne()
Get the constant 1.
|
Dfp |
getPi()
Get the constant π.
|
Dfp[] |
getPiSplit()
Get the constant π split in two pieces.
|
int |
getRadixDigits()
Get the number of radix digits of the
Dfp instances built by this factory. |
Dfp |
getRadToDeg()
Get the radians to degrees conversion factor.
|
DfpField.RoundingMode |
getRoundingMode()
Get the current rounding mode.
|
Class<Dfp> |
getRuntimeClass()
Returns the runtime class of the FieldElement.
|
Dfp |
getSqr2()
Get the constant √2.
|
Dfp |
getSqr2Reciprocal()
Get the constant √2 / 2.
|
Dfp[] |
getSqr2Split()
Get the constant √2 split in two pieces.
|
Dfp |
getSqr3()
Get the constant √3.
|
Dfp |
getSqr3Reciprocal()
Get the constant √3 / 3.
|
Dfp |
getTwo()
Get the constant 2.
|
Dfp |
getZero()
Get the constant 0.
|
int |
hashCode() |
Dfp |
newDfp()
Makes a
Dfp with a value of 0. |
Dfp |
newDfp(byte x)
Create an instance from a byte value.
|
Dfp |
newDfp(byte sign,
byte nans)
Creates a
Dfp with a non-finite value. |
Dfp |
newDfp(Dfp d)
Copy constructor.
|
Dfp |
newDfp(double x)
Create an instance from a double value.
|
Dfp |
newDfp(int x)
Create an instance from an int value.
|
Dfp |
newDfp(long x)
Create an instance from a long value.
|
Dfp |
newDfp(String s)
Create a
Dfp given a String representation. |
void |
setIEEEFlags(int flags)
Sets the IEEE 854 status flags.
|
void |
setIEEEFlagsBits(int bits)
Sets some bits in the IEEE 854 status flags, without changing the already set bits.
|
void |
setRoundingMode(DfpField.RoundingMode mode)
Set the rounding mode.
|
public static final int FLAG_INVALID
public static final int FLAG_DIV_ZERO
public static final int FLAG_OVERFLOW
public static final int FLAG_UNDERFLOW
public static final int FLAG_INEXACT
public DfpField(int decimalDigits)
Note that since the Dfp
class uses 10000 as its radix, each radix
digit is equivalent to 4 decimal digits. This implies that asking for
13, 14, 15 or 16 decimal digits will really lead to a 4 radix 10000 digits in
all cases.
decimalDigits
- minimal number of decimal digits.public int getRadixDigits()
Dfp
instances built by this factory.public void setRoundingMode(DfpField.RoundingMode mode)
DfpField.RoundingMode.ROUND_HALF_EVEN
.public DfpField.RoundingMode getRoundingMode()
public int getIEEEFlags()
clearIEEEFlags()
,
setIEEEFlags(int)
,
setIEEEFlagsBits(int)
,
FLAG_INVALID
,
FLAG_DIV_ZERO
,
FLAG_OVERFLOW
,
FLAG_UNDERFLOW
,
FLAG_INEXACT
public void clearIEEEFlags()
public void setIEEEFlags(int flags)
flags
- desired value for the flagsgetIEEEFlags()
,
clearIEEEFlags()
,
setIEEEFlagsBits(int)
,
FLAG_INVALID
,
FLAG_DIV_ZERO
,
FLAG_OVERFLOW
,
FLAG_UNDERFLOW
,
FLAG_INEXACT
public void setIEEEFlagsBits(int bits)
Calling this method is equivalent to call setIEEEFlags(getIEEEFlags() | bits)
bits
- bits to setgetIEEEFlags()
,
clearIEEEFlags()
,
setIEEEFlags(int)
,
FLAG_INVALID
,
FLAG_DIV_ZERO
,
FLAG_OVERFLOW
,
FLAG_UNDERFLOW
,
FLAG_INEXACT
public Dfp newDfp(byte x)
x
- value to convert to an instanceDfp
with the same value as xpublic Dfp newDfp(int x)
x
- value to convert to an instanceDfp
with the same value as xpublic Dfp newDfp(long x)
x
- value to convert to an instanceDfp
with the same value as xpublic Dfp newDfp(double x)
x
- value to convert to an instanceDfp
with the same value as xpublic Dfp newDfp(Dfp d)
d
- instance to copyDfp
with the same value as dpublic Dfp newDfp(String s)
Dfp
given a String representation.s
- string representation of the instanceDfp
parsed from specified stringpublic Dfp newDfp(byte sign, byte nans)
Dfp
with a non-finite value.sign
- sign of the Dfp to createnans
- code of the value, must be one of Dfp.INFINITE
,
Dfp.SNAN
, Dfp.QNAN
Dfp
with a non-finite valuepublic Dfp getZero()
public Dfp getOne()
public Class<Dfp> getRuntimeClass()
getRuntimeClass
in interface Field<Dfp>
Class
object that represents the runtime
class of this object.public Dfp[] getSqr2Split()
Dfp
with value √2 split in two piecespublic Dfp getSqr2Reciprocal()
Dfp
with value √2 / 2public Dfp getSqr3Reciprocal()
Dfp
with value √3 / 3public Dfp getDegToRad()
Dfp
for degrees to radians conversion factorpublic Dfp getRadToDeg()
Dfp
for radians to degrees conversion factorpublic Dfp[] getPiSplit()
Dfp
with value π split in two piecespublic Dfp[] getESplit()
Dfp
with value e split in two piecespublic Dfp[] getLn2Split()
Dfp
with value ln(2) split in two piecespublic Dfp[] getLn5Split()
Dfp
with value ln(5) split in two piecespublic boolean equals(Object other)
Two fields are considered equals if they have the same number of radix digits and the same rounding mode.
public static Dfp computeExp(Dfp a, Dfp one)
a
- number for which we want the exponentialone
- constant with value 1 at desired precisionpublic static Dfp computeLn(Dfp a, Dfp one, Dfp two)
a
- number for which we want the exponentialone
- constant with value 1 at desired precisiontwo
- constant with value 2 at desired precisionpublic DfpField getExtendedField(int digitsFactor, boolean computeConstants)
digitsFactor
- multiplication factor for number of digitscomputeConstants
- if true, the transcendental constants for the given precision
must be computed (setting this flag to false is RESERVED for the internal recursive call)Copyright © 2016-2022 CS GROUP. All rights reserved.