public final class Beta extends Object
This is a utility class that provides computation methods related to the Beta family of functions.
Implementation of logBeta(double, double)
is based on the algorithms described in
Modifier and Type | Method and Description |
---|---|
static double |
logBeta(double p,
double q)
Returns the value of log B(p, q) for 0 ≤ x ≤ 1 and p, q > 0.
|
protected static double |
logGammaMinusLogGammaSum(double a,
double b)
Returns the value of log[Γ(b) / Γ(a + b)] for a ≥ 0 and b ≥ 10.
|
protected static double |
logGammaSum(double a,
double b)
Returns the value of log Γ(a + b) for 1 ≤ a, b ≤ 2.
|
static double |
regularizedBeta(double x,
double a,
double b)
Returns the
regularized beta function I(x, a, b).
|
static double |
regularizedBeta(double x,
double a,
double b,
double epsilon)
Returns the
regularized beta function I(x, a, b).
|
static double |
regularizedBeta(double x,
double a,
double b,
double epsilon,
int maxIterations)
Returns the regularized beta function I(x, a, b).
|
static double |
regularizedBeta(double x,
double a,
double b,
int maxIterations)
Returns the regularized beta function I(x, a, b).
|
protected static double |
sumDeltaMinusDeltaSum(double p,
double q)
Returns the value of Δ(p) + Δ(q) - Δ(p + q), with p, q ≥ 10.
|
public static double regularizedBeta(double x, double a, double b)
x
- Value.a
- Parameter a
.b
- Parameter b
.MaxCountExceededException
- if the algorithm fails to converge.public static double regularizedBeta(double x, double a, double b, double epsilon)
x
- Value.a
- Parameter a
.b
- Parameter b
.epsilon
- When the absolute value of the nth item in the
series is less than epsilon the approximation ceases to calculate
further elements in the series.MaxCountExceededException
- if the algorithm fails to converge.public static double regularizedBeta(double x, double a, double b, int maxIterations)
x
- the value.a
- Parameter a
.b
- Parameter b
.maxIterations
- Maximum number of "iterations" to complete.MaxCountExceededException
- if the algorithm fails to converge.public static double regularizedBeta(double x, double a, double b, double epsilon, int maxIterations)
x
- the value.a
- Parameter a
.b
- Parameter b
.epsilon
- When the absolute value of the nth item in the
series is less than epsilon the approximation ceases to calculate
further elements in the series.maxIterations
- Maximum number of "iterations" to complete.MaxCountExceededException
- if the algorithm fails to converge.protected static double logGammaSum(double a, double b)
DGSMLN
.a
- First argument.b
- Second argument.log(Gamma(a + b))
.OutOfRangeException
- if a
or b
is lower than 1.0
or greater than 2.0
.protected static double logGammaMinusLogGammaSum(double a, double b)
DLGDIV
.a
- First argument.b
- Second argument.log(Gamma(b) / Gamma(a + b))
.NumberIsTooSmallException
- if a < 0.0
or b < 10.0
.protected static double sumDeltaMinusDeltaSum(double p, double q)
DBCORR
.p
- First argument.q
- Second argument.Delta(p) + Delta(q) - Delta(p + q)
.NumberIsTooSmallException
- if p < 10.0
or q < 10.0
.public static double logBeta(double p, double q)
DBETLN
.p
- First argument.q
- Second argument.log(Beta(p, q))
, NaN
if p <= 0
or q <= 0
.Copyright © 2023 CNES. All rights reserved.