public class EllipticIntegral
extends java.lang.Object
Constructor and Description |
---|
EllipticIntegral() |
Modifier and Type | Method and Description |
---|---|
static double |
formFactorD(double s)
Evaluates the value of the "form factor" which is an analytic means for
approximating the Carlson elliptic integral RD(x,y,z).
|
static void |
main(java.lang.String[] args)
Testing Driver
|
static double |
RD(double x,
double y,
double z)
Compute and return the Carlson Elliptic integral RD(x,y,z).
|
static double |
symmetricRDr(double r,
double z)
Axis-symmetric Carlson elliptic integral RD(z,r,r)
(permuted arguments)
Compute and return the Carlson elliptic integral for the
"axis-symmetric" situation where x = y = r.
|
static double |
symmetricRDz(double r,
double z)
Axis-symmetric Carlson elliptic integral RD(r,r,z)
Compute and return the Carlson elliptic integral for the
"axis-symmetric" situation where x = y = r.
|
public static double RD(double x, double y, double z)
x
- real number > 0y
- real number > 0z
- real number > 0public static double symmetricRDz(double r, double z) throws java.lang.IllegalArgumentException
EllipticIntegral.formFactorD()
function.
The definition for symmetricRDz(r,z) is given by the following
RDz(r,z) := (3/2)Integral_dt{ 1.0/( (t+r)*(t+z)^3/2 ) }
= (3/ (r*z^1/2))*formFactorD( (z/r)^1/2 )
where the integral is from zero to infinity.
NOTE:
Depending upon the algorithm used to compute the
Math.acos()
and ElementaryFunction.acosh()
functions it may actually be faster to use the function
EllipticIntegral.RD(r,r,z)
.r
- real number > 0 (i.e., radius)z
- real number > 0 (i.e., length)java.lang.IllegalArgumentException
- argument less than zeroRD(double, double, double)
public static double symmetricRDr(double r, double z) throws java.lang.IllegalArgumentException
EllipticIntegral.formFactorD()
function.
The definition for symmetricRDr(z,r) is given by the following
RDr(r,z) := (3/2)Integral_dt{ 1.0/( (t+z)^1/2*(t+r)^2 ) }
= (1/2)*(3/(r*z^1/2) - *RD(r,r,z)
where the integral is from zero to infinity.
NOTE:
Depending upon the algorithm used to compute the
Math.acos()
and ElementaryFunction.acosh()
functions it may actually be faster to use the function
EllipticIntegral.RD(r,r,z)
.r
- real number > 0 (i.e., radius)z
- real number > 0 (i.e., length)java.lang.IllegalArgumentException
- argument less than zeroRD(double, double, double)
,
symmetricRDz(double, double)
public static double formFactorD(double s)
s
- a real number in the interval (0,inf)public static void main(java.lang.String[] args)