public class ApfloatMath extends Object
Due to different types of round-off errors that can occur in the implementation, no guarantees about e.g. monotonicity are given for any of the methods.
ApintMath| Modifier and Type | Method and Description |
|---|---|
static Apfloat |
abs(Apfloat x)
Absolute value.
|
static Apfloat |
acos(Apfloat x)
Inverse cosine.
|
static Apfloat |
acosh(Apfloat x)
Inverse hyperbolic cosine.
|
static Apfloat |
agm(Apfloat a,
Apfloat b)
Arithmetic-geometric mean.
|
static Apfloat |
asin(Apfloat x)
Inverse sine.
|
static Apfloat |
asinh(Apfloat x)
Inverse hyperbolic sine.
|
static Apfloat |
atan(Apfloat x)
Inverse tangent.
|
static Apfloat |
atan2(Apfloat x,
Apfloat y)
Converts cartesian coordinates to polar coordinates.
|
static Apfloat |
atanh(Apfloat x)
Inverse hyperbolic tangent.
|
static Apfloat |
cbrt(Apfloat x)
Cube root.
|
static Apint |
ceil(Apfloat x)
Ceiling function.
|
static Apfloat |
copySign(Apfloat x,
Apfloat y)
Copy sign from one argument to another.
|
static Apfloat |
cos(Apfloat x)
Cosine.
|
static Apfloat |
cosh(Apfloat x)
Hyperbolic cosine.
|
static Apfloat |
exp(Apfloat x)
Exponent function.
|
static Apint |
floor(Apfloat x)
Floor function.
|
static Apfloat |
fmod(Apfloat x,
Apfloat y)
Returns x modulo y.
|
static Apfloat |
frac(Apfloat x)
Extracts fractional part.
|
static Apfloat |
inverseRoot(Apfloat x,
long n)
Inverse positive integer root.
|
static Apfloat |
inverseRoot(Apfloat x,
long n,
long targetPrecision)
Inverse positive integer root.
|
static Apfloat |
inverseRoot(Apfloat x,
long n,
long targetPrecision,
Apfloat initialGuess)
Inverse positive integer root.
|
static Apfloat |
inverseRoot(Apfloat x,
long n,
long targetPrecision,
Apfloat initialGuess,
long initialPrecision)
Inverse positive integer root.
|
static Apfloat |
log(Apfloat x)
Natural logarithm.
|
static Apfloat |
log(Apfloat x,
Apfloat b)
Logarithm in arbitrary base.
|
static Apfloat |
logRadix(long precision,
int radix)
Gets or calculates logarithm of a radix to required precision.
|
static Apfloat[] |
modf(Apfloat x)
Split to integer and fractional parts.
|
static Apfloat |
multiplyAdd(Apfloat a,
Apfloat b,
Apfloat c,
Apfloat d)
Fused multiply-add.
|
static Apfloat |
multiplySubtract(Apfloat a,
Apfloat b,
Apfloat c,
Apfloat d)
Fused multiply-subtract.
|
static Apfloat |
negate(Apfloat x)
Deprecated.
Use
Apfloat.negate(). |
static Apfloat |
pi(long precision)
Calculates π.
|
static Apfloat |
pi(long precision,
int radix)
Calculates π.
|
static Apfloat |
pow(Apfloat x,
Apfloat y)
Arbitrary power.
|
static Apfloat |
pow(Apfloat x,
long n)
Integer power.
|
static Apfloat |
product(Apfloat... x)
Product of numbers.
|
static Apfloat |
root(Apfloat x,
long n)
Positive integer root.
|
static Apfloat |
round(Apfloat x,
long precision,
RoundingMode roundingMode)
Rounds the given number to the specified precision with the specified rounding mode.
|
static Apfloat |
scale(Apfloat x,
long scale)
Multiply by a power of the radix.
|
static Apfloat |
sin(Apfloat x)
Sine.
|
static Apfloat |
sinh(Apfloat x)
Hyperbolic sine.
|
static Apfloat |
sqrt(Apfloat x)
Square root.
|
static Apfloat |
sum(Apfloat... x)
Sum of numbers.
|
static Apfloat |
tan(Apfloat x)
Tangent.
|
static Apfloat |
tanh(Apfloat x)
Hyperbolic tangent.
|
static Apfloat |
toDegrees(Apfloat x)
Converts an angle measured in radians to degrees.
|
static Apfloat |
toRadians(Apfloat x)
Converts an angle measured in degrees to radians.
|
static Apint |
truncate(Apfloat x)
Truncates fractional part.
|
static Apfloat |
w(Apfloat x)
Lambert W function.
|
public static Apfloat pow(Apfloat x, long n) throws ArithmeticException, ApfloatRuntimeException
x - Base of the power operator.n - Exponent of the power operator.x to the n:th power, that is xn.ArithmeticException - If both x and n are zero.ApfloatRuntimeExceptionpublic static Apfloat sqrt(Apfloat x) throws ArithmeticException, ApfloatRuntimeException
x - The argument.x.ArithmeticException - If x is negative.ApfloatRuntimeExceptionpublic static Apfloat cbrt(Apfloat x) throws ApfloatRuntimeException
x - The argument.x.ApfloatRuntimeExceptionpublic static Apfloat root(Apfloat x, long n) throws ArithmeticException, ApfloatRuntimeException
x - The argument.n - Which root to take.n:th root of x, that is x1/n.ArithmeticException - If n is zero, or x is negative and n is even.ApfloatRuntimeExceptionpublic static Apfloat inverseRoot(Apfloat x, long n) throws ArithmeticException, ApfloatRuntimeException
x - The argument.n - Which inverse root to take.n:th root of x, that is x-1/n.ArithmeticException - If x or n is zero, or x is negative and n is even.ApfloatRuntimeExceptionpublic static Apfloat inverseRoot(Apfloat x, long n, long targetPrecision) throws IllegalArgumentException, ArithmeticException, ApfloatRuntimeException
x - The argument.n - Which inverse root to take.targetPrecision - Precision of the desired result.n:th root of x, that is x-1/n.IllegalArgumentException - If targetPrecision <= 0.ArithmeticException - If x or n is zero, or x is negative and n is even.ApfloatRuntimeExceptionpublic static Apfloat inverseRoot(Apfloat x, long n, long targetPrecision, Apfloat initialGuess) throws IllegalArgumentException, ArithmeticException, ApfloatRuntimeException
x - The argument.n - Which inverse root to take.targetPrecision - Precision of the desired result.initialGuess - Initial guess for the result value, or null if none is available.n:th root of x, that is x-1/n.IllegalArgumentException - If targetPrecision <= 0.ArithmeticException - If x or n is zero, or x is negative and n is even.ApfloatRuntimeExceptionpublic static Apfloat inverseRoot(Apfloat x, long n, long targetPrecision, Apfloat initialGuess, long initialPrecision) throws IllegalArgumentException, ArithmeticException, ApfloatRuntimeException
This method is the basis for most of apfloat's non-elementary operations.
It is used e.g. in Apfloat.divide(Apfloat), sqrt(Apfloat)
and root(Apfloat,long).
x - The argument.n - Which inverse root to take.targetPrecision - Precision of the desired result.initialGuess - Initial guess for the result value, or null if none is available.initialPrecision - Precision of the initial guess, if available.n:th root of x, that is x-1/n.IllegalArgumentException - If targetPrecision <= 0 or initialPrecision <= 0.ArithmeticException - If x or n is zero, or x is negative and n is even.ApfloatRuntimeExceptionpublic static Apint floor(Apfloat x) throws ApfloatRuntimeException
x - The argument.x rounded towards negative infinity.ApfloatRuntimeExceptionpublic static Apint ceil(Apfloat x) throws ApfloatRuntimeException
x - The argument.x rounded towards positive infinity.ApfloatRuntimeExceptionpublic static Apint truncate(Apfloat x) throws ApfloatRuntimeException
x - The argument.x rounded towards zero.ApfloatRuntimeExceptionpublic static Apfloat frac(Apfloat x) throws ApfloatRuntimeException
x - The argument.x.ApfloatRuntimeExceptionpublic static Apfloat round(Apfloat x, long precision, RoundingMode roundingMode) throws IllegalArgumentException, ArithmeticException, ApfloatRuntimeException
x - The number to round.precision - The precision to round to.roundingMode - The rounding mode to use.IllegalArgumentException - If precision is less than zero or zero.ArithmeticException - If rounding is necessary (result is not exact) and rounding mode is RoundingMode.UNNECESSARY.ApfloatRuntimeException@Deprecated public static Apfloat negate(Apfloat x) throws ApfloatRuntimeException
Apfloat.negate().-x.x - The argument.-x.ApfloatRuntimeExceptionpublic static Apfloat abs(Apfloat x) throws ApfloatRuntimeException
x - The argument.x.ApfloatRuntimeExceptionpublic static Apfloat copySign(Apfloat x, Apfloat y) throws ApfloatRuntimeException
x - The value whose sign is to be adjusted.y - The value whose sign is to be used.x with its sign changed to match the sign of y.ApfloatRuntimeExceptionpublic static Apfloat scale(Apfloat x, long scale) throws ApfloatRuntimeException
x - The argument.scale - The scaling factor.x * x.radix()scale.ApfloatRuntimeExceptionpublic static Apfloat[] modf(Apfloat x) throws ApfloatRuntimeException
i = floor(x).
For the fractional part f the following is always true:
0 <= f < 1
x - The argument.[i, f], the first being the integer part and the last being the fractional part.ApfloatRuntimeExceptionpublic static Apfloat fmod(Apfloat x, Apfloat y) throws ApfloatRuntimeException
This function calculates the remainder f of x / y
such that x = i * y + f, where i is an integer,
f has the same sign as x,
and the absolute value of f is less than the absolute value of y.
If y is zero, then zero is returned.
x - The dividend.y - The divisor.ApfloatRuntimeExceptionpublic static Apfloat multiplyAdd(Apfloat a, Apfloat b, Apfloat c, Apfloat d) throws ApfloatRuntimeException
a * b + c * d
so that the precision used in the multiplications is only
what is needed for the end result. Performance can this way
be better than by calculating a.multiply(b).add(c.multiply(d)).a - First argument.b - Second argument.c - Third argument.d - Fourth argument.a * b + c * d.ApfloatRuntimeExceptionpublic static Apfloat multiplySubtract(Apfloat a, Apfloat b, Apfloat c, Apfloat d) throws ApfloatRuntimeException
a * b - c * d
so that the precision used in the multiplications is only
what is needed for the end result. Performance can this way
be better than by calculating a.multiply(b).subtract(c.multiply(d)).a - First argument.b - Second argument.c - Third argument.d - Fourth argument.a * b - c * d.ApfloatRuntimeExceptionpublic static Apfloat agm(Apfloat a, Apfloat b) throws ApfloatRuntimeException
a - First argument.b - Second argument.ApfloatRuntimeExceptionpublic static Apfloat pi(long precision) throws IllegalArgumentException, NumberFormatException, ApfloatRuntimeException
precision - Number of digits of π to calculate.precision digits, in the default radix.NumberFormatException - If the default radix is not valid.IllegalArgumentException - In case the precision is invalid.ApfloatRuntimeExceptionpublic static Apfloat pi(long precision, int radix) throws IllegalArgumentException, NumberFormatException, ApfloatRuntimeException
precision - Number of digits of π to calculate.radix - The radix in which the number should be presented.precision digits, in base radix.NumberFormatException - If the radix is not valid.IllegalArgumentException - In case the precision is invalid.ApfloatRuntimeExceptionpublic static Apfloat log(Apfloat x) throws ArithmeticException, ApfloatRuntimeException
The logarithm is calculated using the arithmetic-geometric mean. See the Borweins' book for the formula.
x - The argument.x.ArithmeticException - If x <= 0.ApfloatRuntimeExceptionpublic static Apfloat log(Apfloat x, Apfloat b) throws ArithmeticException, ApfloatRuntimeException
The logarithm is calculated using the arithmetic-geometric mean. See the Borweins' book for the formula.
x - The argument.b - The base.b logarithm of x.ArithmeticException - If x <= 0 or b <= 0.ApfloatRuntimeExceptionpublic static Apfloat logRadix(long precision, int radix) throws ApfloatRuntimeException
precision - The needed precision.radix - The radix.radix to the specified precision.NumberFormatException - If the radix is invalid.ApfloatRuntimeExceptionpublic static Apfloat exp(Apfloat x) throws ApfloatRuntimeException
x - The argument.ex.ApfloatRuntimeExceptionpublic static Apfloat pow(Apfloat x, Apfloat y) throws ArithmeticException, ApfloatRuntimeException
log() and exp().
This method doesn't calculate the result properly if x is negative
and y is an integer. For that you should use pow(Apfloat,long).
x - The base.y - The exponent.xy.ArithmeticException - If both x and y are zero, or x is negative.ApfloatRuntimeExceptionpublic static Apfloat acosh(Apfloat x) throws ArithmeticException, ApfloatRuntimeException
log().x - The argument.x.ArithmeticException - If x < 1.ApfloatRuntimeExceptionpublic static Apfloat asinh(Apfloat x) throws ApfloatRuntimeException
log().x - The argument.x.ApfloatRuntimeExceptionpublic static Apfloat atanh(Apfloat x) throws ArithmeticException, ApfloatRuntimeException
log().x - The argument.x.ArithmeticException - If abs(x) >= 1.ApfloatRuntimeExceptionpublic static Apfloat cosh(Apfloat x) throws ApfloatRuntimeException
exp().x - The argument.x.ApfloatRuntimeExceptionpublic static Apfloat sinh(Apfloat x) throws ApfloatRuntimeException
exp().x - The argument.x.ApfloatRuntimeExceptionpublic static Apfloat tanh(Apfloat x) throws ApfloatRuntimeException
exp().x - The argument.x.ApfloatRuntimeExceptionpublic static Apfloat acos(Apfloat x) throws ArithmeticException, ApfloatRuntimeException
x - The argument.x.ArithmeticException - If abs(x) > 1.ApfloatRuntimeExceptionpublic static Apfloat asin(Apfloat x) throws ArithmeticException, ApfloatRuntimeException
x - The argument.x.ArithmeticException - If abs(x) > 1.ApfloatRuntimeExceptionpublic static Apfloat atan(Apfloat x) throws ApfloatRuntimeException
x - The argument.x.ApfloatRuntimeExceptionpublic static Apfloat atan2(Apfloat x, Apfloat y) throws ArithmeticException, ApfloatRuntimeException
Computes the phase angle by computing an arc tangent of x/y in the range of -π < angle <= π.
x - The argument.y - The argument.(y, x) in the plane.ArithmeticException - If x and y are both zero.ApfloatRuntimeExceptionpublic static Apfloat cos(Apfloat x) throws ApfloatRuntimeException
x - The argument (in radians).x.ApfloatRuntimeExceptionpublic static Apfloat sin(Apfloat x) throws ApfloatRuntimeException
x - The argument (in radians).x.ApfloatRuntimeExceptionpublic static Apfloat tan(Apfloat x) throws ArithmeticException, ApfloatRuntimeException
x - The argument (in radians).x.ArithmeticException - If x is π/2 + n π where n is an integer.ApfloatRuntimeExceptionpublic static Apfloat w(Apfloat x) throws ArithmeticException, ApfloatRuntimeException
W eW = x. Also known as the product logarithm.
This function only gives the solution to the principal branch, W0.
For the real-valued W-1 branch, use ApcomplexMath.w(Apcomplex,long).
x - The argument.W0(x).ArithmeticException - If x is less than -1/e.ApfloatRuntimeExceptionpublic static Apfloat toDegrees(Apfloat x) throws ApfloatRuntimeException
x - The angle, in radians.ApfloatRuntimeExceptionpublic static Apfloat toRadians(Apfloat x) throws ApfloatRuntimeException
x - The angle, in degrees.ApfloatRuntimeExceptionpublic static Apfloat product(Apfloat... x) throws ApfloatRuntimeException
If there are no arguments, the return value is 1.
x - The argument(s).ApfloatRuntimeExceptionpublic static Apfloat sum(Apfloat... x) throws ApfloatRuntimeException
If there are no arguments, the return value is 0.
x - The argument(s).ApfloatRuntimeExceptionCopyright © 2024. All rights reserved.