public final class DfpMath extends Object
Modifier and Type | Method and Description |
---|---|
static Dfp |
acos(Dfp aIn)
computes the arc-cosine of the argument.
|
static Dfp |
asin(Dfp a)
computes the arc-sine of the argument.
|
static Dfp |
atan(Dfp a)
computes the arc tangent of the argument
Uses the typical taylor series
but may reduce arguments using the following identity
tan(x+y) = (tan(x) + tan(y)) / (1 - tan(x)*tan(y))
since tan(PI/8) = sqrt(2)-1,
atan(x) = atan( (x - sqrt(2) + 1) / (1+x*sqrt(2) - x) + PI/8.0
|
protected static Dfp |
atanInternal(Dfp a)
computes the arc-tangent of the argument.
|
static Dfp |
cos(Dfp a)
computes the cosine of the argument.
|
protected static Dfp |
cosInternal(Dfp[] a)
Computes cos(a) Used when 0 < a < pi/4.
|
static Dfp |
exp(Dfp a)
Computes e to the given power.
|
protected static Dfp |
expInternal(Dfp a)
Computes e to the given power.
|
static Dfp |
log(Dfp a)
Returns the natural logarithm of a.
|
protected static Dfp[] |
logInternal(Dfp[] a)
Computes the natural log of a number between 0 and 2.
|
static Dfp |
pow(Dfp x,
Dfp y)
Computes x to the y power.
|
static Dfp |
pow(Dfp base,
int aIn)
Raises base to the power a by successive squaring.
|
static Dfp |
sin(Dfp a)
computes the sine of the argument.
|
protected static Dfp |
sinInternal(Dfp[] a)
Computes sin(a) Used when 0 < a < pi/4.
|
protected static Dfp[] |
split(Dfp a)
|
protected static Dfp[] |
split(DfpField field,
String a)
Breaks a string representation up into two dfp's.
|
protected static Dfp[] |
splitDiv(Dfp[] a,
Dfp[] b)
Divide two numbers that are split in to two pieces that are meant to be added together.
|
protected static Dfp[] |
splitMult(Dfp[] a,
Dfp[] b)
Multiply two numbers that are split in to two pieces that are
meant to be added together.
|
protected static Dfp |
splitPow(Dfp[] base,
int aIn)
Raise a split base to the a power.
|
static Dfp |
tan(Dfp a)
computes the tangent of the argument.
|
protected static Dfp[] split(DfpField field, String a)
The two dfp are such that the sum of them is equivalent to the input string, but has higher precision than using a single dfp. This is useful for improving accuracy of exponentiation and critical multiplies.
field
- field to which the Dfp must belonga
- string representation to splitDfp
which sum is aprotected static Dfp[] split(Dfp a)
a
- number to splitprotected static Dfp[] splitMult(Dfp[] a, Dfp[] b)
a
- first factor of the multiplication, in split formb
- second factor of the multiplication, in split formprotected static Dfp[] splitDiv(Dfp[] a, Dfp[] b)
a
- dividend, in split formb
- divisor, in split formprotected static Dfp splitPow(Dfp[] base, int aIn)
base
- number to raiseaIn
- powerpublic static Dfp pow(Dfp base, int aIn)
base
- number to raiseaIn
- powerpublic static Dfp exp(Dfp a)
a
- power at which e should be raisedprotected static Dfp expInternal(Dfp a)
a
- power at which e should be raisedpublic static Dfp log(Dfp a)
a
- number from which logarithm is requestedprotected static Dfp[] logInternal(Dfp[] a)
a
- number from which logarithm is requested, in split formpublic static Dfp pow(Dfp x, Dfp y)
Uses the following method:
Special Cases
x
- base to be raisedy
- power to which base should be raisedprotected static Dfp sinInternal(Dfp[] a)
a
- number from which sine is desired, in split formprotected static Dfp cosInternal(Dfp[] a)
a
- number from which cosine is desired, in split formpublic static Dfp sin(Dfp a)
a
- number from which sine is desiredpublic static Dfp cos(Dfp a)
a
- number from which cosine is desiredpublic static Dfp tan(Dfp a)
a
- number from which tangent is desiredprotected static Dfp atanInternal(Dfp a)
a
- number from which arc-tangent is desiredpublic static Dfp atan(Dfp a)
a
- number from which arc-tangent is desiredpublic static Dfp asin(Dfp a)
a
- number from which arc-sine is desiredCopyright © 2017 CNES. All rights reserved.