|
JMSLTM Numerical Library 4.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.imsl.math.Sfun
Collection of special functions.
Field Summary | |
static double |
EPSILON_LARGE
The largest relative spacing for doubles. |
static double |
EPSILON_SMALL
The smallest relative spacing for doubles. |
Method Summary | |
static double |
beta(double a,
double b)
Returns the value of the Beta function. |
static double |
betaIncomplete(double x,
double p,
double q)
Returns the incomplete Beta function ratio. |
static double |
cot(double x)
Returns the cotangent of a double . |
static double |
erf(double x)
Returns the error function of a double . |
static double |
erfc(double x)
Returns the complementary error function of a double . |
static double |
erfcInverse(double x)
Returns the inverse of the complementary error function. |
static double |
erfInverse(double x)
Returns the inverse of the error function. |
static double |
fact(int n)
Returns the factorial of an integer. |
static double |
gamma(double x)
Returns the Gamma function of a double . |
static double |
log10(double x)
Returns the common (base 10) logarithm of a double . |
static double |
logBeta(double a,
double b)
Returns the logarithm of the Beta function. |
static double |
logGamma(double x)
Returns the logarithm of the Gamma function of the absolute value of a double . |
static double |
poch(double a,
double x)
Returns a generalization of Pochhammer's symbol. |
static double |
r9lgmc(double x)
Returns the log gamma correction term for argument values greater than or equal to 10.0. |
static double |
sign(double x,
double y)
Returns the value of x with the sign of y. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final double EPSILON_LARGE
public static final double EPSILON_SMALL
Method Detail |
public static double beta(double a, double b)
gamma
for the definition of .
The method beta
requires that both arguments be positive.
a
- a double
valueb
- a double
value
double
value specifying the Beta functionpublic static double betaIncomplete(double x, double p, double q)
beta
for the definition of
.
The parameters p and q must both be greater than zero. The argument x must lie in the range 0 to 1. The incomplete beta function can underflow for sufficiently small x and large p; however, this underflow is not reported as an error. Instead, the value zero is returned as the function value.
The method betaIncomplete
is based on the work of Bosten
and Battiste (1974).
x
- a double
value specifying the upper limit of integration
It must be in the interval [0,1] inclusive.p
- a double
value specifying the first Beta parameter. It
must be positive.q
- a double
value specifying the second Beta parameter. It
must be positive.
double
value specifying the incomplete Beta function ratiopublic static double cot(double x)
double
.
x
- a double
value
double
value specifying the cotangent of x.
If x is NaN, the result is NaN.public static double erf(double x)
double
.
The error function method, erf
(x),
is defined to be
All values of x are legal.
x
- a double
value
double
value specifying the error function of xpublic static double erfc(double x)
double
.
The complementary error function method, erfc
(x), is defined to be
The argument x must not be so large that the result underflows. Approximately, x should be less than
where s = Double.MIN_VALUE is the smallest representable positive floating-point number.
x
- a double
value
double
value specifying the complementary error
function of xpublic static double erfcInverse(double x)
The erfcinverse(x)
method computes the inverse of
the complementary error function erfc x, defined in erfc
.
erfcinverse(x)
is defined for . If ,
then the answer will be less accurate than half precision. Very
approximately,
where = machine precision (approximately 1.11e-16).
x
- a double
value, .
double
value specifying the inverse of the
error function of x
.public static double erfInverse(double x)
erfInverse(X)
method computes the inverse of the
error function erf x, defined in
erf
.
The method erfInverse(X)
is defined for
, then the
answer will be less accurate than half precision. Very approximately,
where is the machine precision (approximately 1.11e-16).
x
- a double
value
double
value specifying the inverse
of the error function of xpublic static double fact(int n)
n
- an int
value
double
value specifying the factorial of n, n!.
If x is negative, the result is NaN.public static double gamma(double x)
double
.
The gamma function, , is defined to be
For , the above definition is extended by analytic continuation.
The gamma function is not defined for integers less than or equal to zero. Also, the argument x must be greater than so that does not underflow, and x must be less than 171.64 so that does not overflow. The underflow limit occurs first for arguments that are close to large negative half integers. Even though other arguments away from these half integers may yield machine-representable values of , such arguments are considered illegal. Users who need such values should use the log gamma. Finally, the argument should not be so close to a negative integer that the result is less accurate than half precision.
x
- a double
value
double
value specifying the Gamma function of x.
If x is a negative integer, the result is NaN.public static double log10(double x)
double
.
x
- a double
value
double
value specifying the common logarithm of xpublic static double logBeta(double a, double b)
Method logBeta
computes . See
beta
for the definition of .
logBeta
is defined for a > 0 and
b > 0. It returns accurate results even when
a or b is very small. It can
overflow for very large arguments; this error condition is not detected
except by the computer hardware.
a
- a double
valueb
- a double
value
double
value specifying the natural logarithm
of the Beta functionpublic static double logGamma(double x)
double
.
Method logGamma
computes . See gamma
for the
definition of .
The gamma function is not defined for integers less than or equal to zero. Also, must not be so large that the result overflows. Neither should x be so close to a negative integer that the accuracy is worse than half precision.
x
- a double
value
double
value specifying the natural logarithm
of the Gamma function of . If x is a negative integer, the
result is NaN.public static double poch(double a, double x)
Method poch
evaluates Pochhammer's symbol
for n a
nonnegative integer. Pochhammer's generalized symbol is defined to be
See gamma
for the definition of
.
Note that a straightforward evaluation of Pochhammer's generalized symbol with either gamma or log gamma functions can be especially unreliable when a is large or x is small.
Substantial loss can occur if a + x or
a are close to a negative integer unless
is sufficiently small. To insure
that the result does not overflow or underflow, one can keep the arguments
a and a + x well within the
range dictated by the gamma function method gamma or one can keep
small whenever a
is large. poch
also works for a variety of arguments outside
these rough limits, but any more general limits that are also useful are
difficult to specify.
a
- a double
value specifying the first argumentx
- a double
value specifying the second, differential argument
double
value specifying the generalized Pochhammer symbol,
gamma(a+x)/gamma(a)public static double r9lgmc(double x)
x
- a double
value
double
value specifying the log gamma correction term.public static double sign(double x, double y)
x
- a double
valuey
- a double
value
double
value specifying the absolute value of x
and the sign of y
|
JMSLTM Numerical Library 4.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |