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).
|
Dfp |
getE()
Get the constant e.
|
Dfp[] |
getESplit()
Get the constant e split in two pieces.
|
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. |
DfpField.RoundingMode |
getRoundingMode()
Get the current rounding mode.
|
Class<? extends FieldElement<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.
|
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<? extends FieldElement<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[] 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 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 precisionCopyright © 2020 CNES. All rights reserved.