GeographicLib 2.5
|
Elliptic integrals and functions. More...
#include <GeographicLib/EllipticFunction.hpp>
Public Member Functions | |
Constructor | |
EllipticFunction (real k2=0, real alpha2=0) | |
EllipticFunction (real k2, real alpha2, real kp2, real alphap2) | |
void | Reset (real k2=0, real alpha2=0) |
void | Reset (real k2, real alpha2, real kp2, real alphap2) |
Inspector functions. | |
Math::real | k2 () const |
Math::real | kp2 () const |
Math::real | alpha2 () const |
Math::real | alphap2 () const |
Complete elliptic integrals. | |
Math::real | K () const |
Math::real | E () const |
Math::real | D () const |
Math::real | KE () const |
Math::real | Pi () const |
Math::real | G () const |
Math::real | H () const |
Incomplete elliptic integrals. | |
Math::real | F (real phi) const |
Math::real | E (real phi) const |
Math::real | Ed (real ang) const |
Math::real | Einv (real x) const |
Math::real | Pi (real phi) const |
Math::real | D (real phi) const |
Math::real | G (real phi) const |
Math::real | H (real phi) const |
Incomplete integrals in terms of Jacobi elliptic functions. | |
Math::real | F (real sn, real cn, real dn) const |
Math::real | E (real sn, real cn, real dn) const |
Math::real | Pi (real sn, real cn, real dn) const |
Math::real | D (real sn, real cn, real dn) const |
Math::real | G (real sn, real cn, real dn) const |
Math::real | H (real sn, real cn, real dn) const |
Periodic versions of incomplete elliptic integrals. | |
Math::real | deltaF (real sn, real cn, real dn) const |
Math::real | deltaE (real sn, real cn, real dn) const |
Math::real | deltaEinv (real stau, real ctau) const |
Math::real | deltaPi (real sn, real cn, real dn) const |
Math::real | deltaD (real sn, real cn, real dn) const |
Math::real | deltaG (real sn, real cn, real dn) const |
Math::real | deltaH (real sn, real cn, real dn) const |
Elliptic functions. | |
Math::real | am (real x) const |
Math::real | am (real x, real &sn, real &cn, real &dn) const |
void | sncndn (real x, real &sn, real &cn, real &dn) const |
Math::real | Delta (real sn, real cn) const |
Static Public Member Functions | |
Symmetric elliptic integrals. | |
static real | RF (real x, real y, real z) |
static real | RF (real x, real y) |
static real | RC (real x, real y) |
static real | RG (real x, real y, real z) |
static real | RG (real x, real y) |
static real | RJ (real x, real y, real z, real p) |
static real | RD (real x, real y, real z) |
Elliptic integrals and functions.
This provides the elliptic functions and integrals needed for Ellipsoid, GeodesicExact, and TransverseMercatorExact. Two categories of function are provided:
In the latter case, an object is constructed giving the modulus k (and optionally the parameter α2). The modulus is always passed as its square k2 which allows k to be pure imaginary (k2 < 0). (Confusingly, Abramowitz and Stegun call m = k2 the "parameter" and n = α2 the "characteristic".)
In geodesic applications, it is convenient to separate the incomplete integrals into secular and periodic components, e.g.,
\[ E(\phi, k) = (2 E(k) / \pi) [ \phi + \delta E(\phi, k) ] \]
where δE(φ, k) is an odd periodic function with period π.
The computation of the elliptic integrals uses the algorithms given in
with the additional optimizations given in https://dlmf.nist.gov/19.36.i. The computation of the Jacobi elliptic functions uses the algorithm given in
The notation follows https://dlmf.nist.gov/19 and https://dlmf.nist.gov/22
Example of use:
Definition at line 63 of file EllipticFunction.hpp.
|
inline |
Constructor specifying the modulus and parameter.
[in] | k2 | the square of the modulus k2. k2 must lie in (−∞, 1]. |
[in] | alpha2 | the parameter α2. α2 must lie in (−∞, 1]. |
GeographicErr | if k2 or alpha2 is out of its legal range. |
If only elliptic integrals of the first and second kinds are needed, then set α2 = 0 (the default value); in this case, we have Π(φ, 0, k) = F(φ, k), G(φ, 0, k) = E(φ, k), and H(φ, 0, k) = F(φ, k) - D(φ, k).
Definition at line 90 of file EllipticFunction.hpp.
|
inline |
Constructor specifying the modulus and parameter and their complements.
[in] | k2 | the square of the modulus k2. k2 must lie in (−∞, 1]. |
[in] | alpha2 | the parameter α2. α2 must lie in (−∞, 1]. |
[in] | kp2 | the complementary modulus squared k'2 = 1 − k2. This must lie in [0, ∞). |
[in] | alphap2 | the complementary parameter α'2 = 1 − α2. This must lie in [0, ∞). |
GeographicErr | if k2, alpha2, kp2, or alphap2 is out of its legal range. |
The arguments must satisfy k2 + kp2 = 1 and alpha2 + alphap2 = 1. (No checking is done that these conditions are met.) This constructor is provided to enable accuracy to be maintained, e.g., when k is very close to unity.
Definition at line 112 of file EllipticFunction.hpp.
|
inline |
Reset the modulus and parameter.
[in] | k2 | the new value of square of the modulus k2 which must lie in (−∞, ]. done.) |
[in] | alpha2 | the new value of parameter α2. α2 must lie in (−∞, 1]. |
GeographicErr | if k2 or alpha2 is out of its legal range. |
Definition at line 126 of file EllipticFunction.hpp.
void GeographicLib::EllipticFunction::Reset | ( | real | k2, |
real | alpha2, | ||
real | kp2, | ||
real | alphap2 | ||
) |
Reset the modulus and parameter supplying also their complements.
[in] | k2 | the square of the modulus k2. k2 must lie in (−∞, 1]. |
[in] | alpha2 | the parameter α2. α2 must lie in (−∞, 1]. |
[in] | kp2 | the complementary modulus squared k'2 = 1 − k2. This must lie in [0, ∞). |
[in] | alphap2 | the complementary parameter α'2 = 1 − α2. This must lie in [0, ∞). |
GeographicErr | if k2, alpha2, kp2, or alphap2 is out of its legal range. |
The arguments must satisfy k2 + kp2 = 1 and alpha2 + alphap2 = 1. (No checking is done that these conditions are met.) This constructor is provided to enable accuracy to be maintained, e.g., when is very small.
Definition at line 221 of file EllipticFunction.cpp.
References alpha2(), alphap2(), GeographicLib::Math::infinity(), k2(), kp2(), GeographicLib::Math::pi(), RC(), RD(), RF(), RG(), RJ(), and GeographicLib::Math::sq().
|
inline |
Definition at line 158 of file EllipticFunction.hpp.
|
inline |
Definition at line 164 of file EllipticFunction.hpp.
|
inline |
Definition at line 169 of file EllipticFunction.hpp.
Referenced by Reset().
|
inline |
Definition at line 175 of file EllipticFunction.hpp.
Referenced by Reset().
|
inline |
The complete integral of the first kind.
K(k) is defined in https://dlmf.nist.gov/19.2.E4
\[ K(k) = \int_0^{\pi/2} \frac1{\sqrt{1-k^2\sin^2\phi}}\,d\phi. \]
Definition at line 191 of file EllipticFunction.hpp.
Referenced by deltaF(), F(), F(), GeographicLib::TransverseMercatorExact::Forward(), and GeographicLib::TransverseMercatorExact::Reverse().
|
inline |
The complete integral of the second kind.
E(k) is defined in https://dlmf.nist.gov/19.2.E5
\[ E(k) = \int_0^{\pi/2} \sqrt{1-k^2\sin^2\phi}\,d\phi. \]
Definition at line 203 of file EllipticFunction.hpp.
Referenced by deltaE(), deltaEinv(), E(), E(), Ed(), Einv(), GeographicLib::TransverseMercatorExact::Forward(), and GeographicLib::TransverseMercatorExact::Reverse().
|
inline |
Jahnke's complete integral.
D(k) is defined in https://dlmf.nist.gov/19.2.E6
\[ D(k) = \int_0^{\pi/2} \frac{\sin^2\phi}{\sqrt{1-k^2\sin^2\phi}}\,d\phi. \]
Definition at line 216 of file EllipticFunction.hpp.
|
inline |
The difference between the complete integrals of the first and second kinds.
Definition at line 224 of file EllipticFunction.hpp.
Referenced by GeographicLib::TransverseMercatorExact::Reverse().
|
inline |
The complete integral of the third kind.
Π(α2, k) is defined in https://dlmf.nist.gov/19.2.E7
\[ \Pi(\alpha^2, k) = \int_0^{\pi/2} \frac1{\sqrt{1-k^2\sin^2\phi}(1 - \alpha^2\sin^2\phi)}\,d\phi. \]
Definition at line 238 of file EllipticFunction.hpp.
Referenced by deltaPi(), Pi(), Pi(), GeographicLib::experimental::JacobiConformal::x(), GeographicLib::experimental::JacobiConformal::x(), GeographicLib::experimental::JacobiConformal::y(), and GeographicLib::experimental::JacobiConformal::y().
|
inline |
Legendre's complete geodesic longitude integral.
G(α2, k) is given by
\[ G(\alpha^2, k) = \int_0^{\pi/2} \frac{\sqrt{1-k^2\sin^2\phi}}{1 - \alpha^2\sin^2\phi}\,d\phi. \]
Definition at line 251 of file EllipticFunction.hpp.
|
inline |
Cayley's complete geodesic longitude difference integral.
H(α2, k) is given by
\[ H(\alpha^2, k) = \int_0^{\pi/2} \frac{\cos^2\phi}{(1-\alpha^2\sin^2\phi)\sqrt{1-k^2\sin^2\phi}} \,d\phi. \]
Definition at line 265 of file EllipticFunction.hpp.
Math::real GeographicLib::EllipticFunction::F | ( | real | phi | ) | const |
The incomplete integral of the first kind.
[in] | phi |
F(φ, k) is defined in https://dlmf.nist.gov/19.2.E4
\[ F(\phi, k) = \int_0^\phi \frac1{\sqrt{1-k^2\sin^2\theta}}\,d\theta. \]
Definition at line 553 of file EllipticFunction.cpp.
References Delta(), deltaF(), F(), K(), and GeographicLib::Math::pi().
Math::real GeographicLib::EllipticFunction::E | ( | real | phi | ) | const |
The incomplete integral of the second kind.
[in] | phi |
E(φ, k) is defined in https://dlmf.nist.gov/19.2.E5
\[ E(\phi, k) = \int_0^\phi \sqrt{1-k^2\sin^2\theta}\,d\theta. \]
Definition at line 563 of file EllipticFunction.cpp.
References Delta(), deltaE(), E(), and GeographicLib::Math::pi().
Math::real GeographicLib::EllipticFunction::Ed | ( | real | ang | ) | const |
The incomplete integral of the second kind with the argument given in degrees.
[in] | ang | in degrees. |
Definition at line 575 of file EllipticFunction.cpp.
References GeographicLib::Math::AngNormalize(), Delta(), E(), GeographicLib::Math::sincosd(), and GeographicLib::Math::td.
Math::real GeographicLib::EllipticFunction::Einv | ( | real | x | ) | const |
The inverse of the incomplete integral of the second kind.
[in] | x |
Definition at line 607 of file EllipticFunction.cpp.
References Delta(), E(), GEOGRAPHICLIB_PANIC, and GeographicLib::Math::pi().
Referenced by deltaEinv().
Math::real GeographicLib::EllipticFunction::Pi | ( | real | phi | ) | const |
The incomplete integral of the third kind.
[in] | phi |
Π(φ, α2, k) is defined in https://dlmf.nist.gov/19.2.E7
\[ \Pi(\phi, \alpha^2, k) = \int_0^\phi \frac1{\sqrt{1-k^2\sin^2\theta}(1 - \alpha^2\sin^2\theta)}\,d\theta. \]
Definition at line 583 of file EllipticFunction.cpp.
References Delta(), deltaPi(), GeographicLib::Math::pi(), and Pi().
Math::real GeographicLib::EllipticFunction::D | ( | real | phi | ) | const |
Jahnke's incomplete elliptic integral.
[in] | phi |
D(φ, k) is defined in https://dlmf.nist.gov/19.2.E4
\[ D(\phi, k) = \int_0^\phi \frac{\sin^2\theta}{\sqrt{1-k^2\sin^2\theta}}\,d\theta. \]
Definition at line 589 of file EllipticFunction.cpp.
References D(), Delta(), deltaD(), and GeographicLib::Math::pi().
Math::real GeographicLib::EllipticFunction::G | ( | real | phi | ) | const |
Legendre's geodesic longitude integral.
[in] | phi |
G(φ, α2, k) is defined by
\[ \begin{align} G(\phi, \alpha^2, k) &= \frac{k^2}{\alpha^2} F(\phi, k) + \biggl(1 - \frac{k^2}{\alpha^2}\biggr) \Pi(\phi, \alpha^2, k) \\ &= \int_0^\phi \frac{\sqrt{1-k^2\sin^2\theta}}{1 - \alpha^2\sin^2\theta}\,d\theta. \end{align} \]
Legendre expresses the longitude of a point on the geodesic in terms of this combination of elliptic integrals in Exercices de Calcul Intégral, Vol. 1 (1811), p. 181, https://books.google.com/books?id=riIOAAAAQAAJ&pg=PA181.
See Geodesics in terms of elliptic integrals for the expression for the longitude in terms of this function.
Definition at line 595 of file EllipticFunction.cpp.
References Delta(), deltaG(), G(), and GeographicLib::Math::pi().
Math::real GeographicLib::EllipticFunction::H | ( | real | phi | ) | const |
Cayley's geodesic longitude difference integral.
[in] | phi |
H(φ, α2, k) is defined by
\[ \begin{align} H(\phi, \alpha^2, k) &= \frac1{\alpha^2} F(\phi, k) + \biggl(1 - \frac1{\alpha^2}\biggr) \Pi(\phi, \alpha^2, k) \\ &= \int_0^\phi \frac{\cos^2\theta} {(1-\alpha^2\sin^2\theta)\sqrt{1-k^2\sin^2\theta}} \,d\theta. \end{align} \]
Cayley expresses the longitude difference of a point on the geodesic in terms of this combination of elliptic integrals in Phil. Mag. 40 (1870), p. 333, https://books.google.com/books?id=Zk0wAAAAIAAJ&pg=PA333.
See Geodesics in terms of elliptic integrals for the expression for the longitude in terms of this function.
Definition at line 601 of file EllipticFunction.cpp.
References Delta(), deltaH(), H(), and GeographicLib::Math::pi().
Math::real GeographicLib::EllipticFunction::F | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
The incomplete integral of the first kind in terms of Jacobi elliptic functions.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 429 of file EllipticFunction.cpp.
Math::real GeographicLib::EllipticFunction::E | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
The incomplete integral of the second kind in terms of Jacobi elliptic functions.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 440 of file EllipticFunction.cpp.
Math::real GeographicLib::EllipticFunction::Pi | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
The incomplete integral of the third kind in terms of Jacobi elliptic functions.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 475 of file EllipticFunction.cpp.
Math::real GeographicLib::EllipticFunction::D | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
Jahnke's incomplete elliptic integral in terms of Jacobi elliptic functions.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 463 of file EllipticFunction.cpp.
Math::real GeographicLib::EllipticFunction::G | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
Legendre's geodesic longitude integral in terms of Jacobi elliptic functions.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 490 of file EllipticFunction.cpp.
Math::real GeographicLib::EllipticFunction::H | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
Cayley's geodesic longitude difference integral in terms of Jacobi elliptic functions.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 503 of file EllipticFunction.cpp.
Math::real GeographicLib::EllipticFunction::deltaF | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
The periodic incomplete integral of the first kind.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 517 of file EllipticFunction.cpp.
References F(), K(), and GeographicLib::Math::pi().
Referenced by F().
Math::real GeographicLib::EllipticFunction::deltaE | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
The periodic incomplete integral of the second kind.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 523 of file EllipticFunction.cpp.
References E(), and GeographicLib::Math::pi().
Referenced by E(), and GeographicLib::GeodesicLineExact::GenPosition().
Math::real GeographicLib::EllipticFunction::deltaEinv | ( | real | stau, |
real | ctau | ||
) | const |
The periodic inverse of the incomplete integral of the second kind.
[in] | stau | = sinτ. |
[in] | ctau | = sinτ. |
Definition at line 635 of file EllipticFunction.cpp.
References E(), Einv(), and GeographicLib::Math::pi().
Referenced by GeographicLib::GeodesicLineExact::GenPosition().
Math::real GeographicLib::EllipticFunction::deltaPi | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
The periodic incomplete integral of the third kind.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 529 of file EllipticFunction.cpp.
References GeographicLib::Math::pi(), and Pi().
Referenced by Pi().
Math::real GeographicLib::EllipticFunction::deltaD | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
The periodic Jahnke's incomplete elliptic integral.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 535 of file EllipticFunction.cpp.
References D(), and GeographicLib::Math::pi().
Referenced by D(), and GeographicLib::GeodesicLineExact::GenPosition().
Math::real GeographicLib::EllipticFunction::deltaG | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
Legendre's periodic geodesic longitude integral.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 541 of file EllipticFunction.cpp.
References G(), and GeographicLib::Math::pi().
Referenced by G().
Math::real GeographicLib::EllipticFunction::deltaH | ( | real | sn, |
real | cn, | ||
real | dn | ||
) | const |
Cayley's periodic geodesic longitude difference integral.
[in] | sn | = sinφ. |
[in] | cn | = cosφ. |
[in] | dn | = sqrt(1 − k2 sin2φ). |
Definition at line 547 of file EllipticFunction.cpp.
References H(), and GeographicLib::Math::pi().
Referenced by GeographicLib::GeodesicLineExact::GenPosition(), and H().
Math::real GeographicLib::EllipticFunction::am | ( | real | x | ) | const |
The Jacobi amplitude function.
[in] | x | the argument. |
Definition at line 377 of file EllipticFunction.cpp.
References GEOGRAPHICLIB_PANIC, k2(), and kp2().
Referenced by am(), GeographicLib::TransverseMercatorExact::Forward(), and GeographicLib::TransverseMercatorExact::Reverse().
Math::real GeographicLib::EllipticFunction::am | ( | real | x, |
real & | sn, | ||
real & | cn, | ||
real & | dn | ||
) | const |
The Jacobi amplitude function and associated elliptic functions.
[in] | x | the argument. |
[out] | sn | sn(x, k). |
[out] | cn | cn(x, k). |
[out] | dn | dn(x, k). |
Definition at line 414 of file EllipticFunction.cpp.
void GeographicLib::EllipticFunction::sncndn | ( | real | x, |
real & | sn, | ||
real & | cn, | ||
real & | dn | ||
) | const |
The Jacobi elliptic functions.
[in] | x | the argument. |
[out] | sn | sn(x, k). |
[out] | cn | cn(x, k). |
[out] | dn | dn(x, k). |
For this routine k is restricted to the interval [0, 1].
Definition at line 315 of file EllipticFunction.cpp.
References GEOGRAPHICLIB_PANIC.
|
inline |
The Δ amplitude function.
[in] | sn | sinφ. |
[in] | cn | cosφ. |
Definition at line 607 of file EllipticFunction.hpp.
Referenced by am(), D(), E(), Ed(), Einv(), F(), G(), GeographicLib::GeodesicLineExact::GenPosition(), H(), Pi(), GeographicLib::experimental::JacobiConformal::x(), and GeographicLib::experimental::JacobiConformal::y().
|
static |
Symmetric integral of the first kind RF.
[in] | x | |
[in] | y | |
[in] | z |
RF is defined in https://dlmf.nist.gov/19.16.E1
\[ R_F(x, y, z) = \frac12 \int_0^\infty\frac1{\sqrt{(t + x) (t + y) (t + z)}}\, dt, \]
where at most one of arguments, x, y, z, can be zero and those arguments that are nonzero must be positive. If one of the arguments is zero, it is more efficient to call the two-argument version of this function with the non-zero arguments.
Definition at line 24 of file EllipticFunction.cpp.
Referenced by E(), F(), G(), H(), Pi(), GeographicLib::AuxLatitude::Rectifying(), Reset(), and RG().
|
static |
Complete symmetric integral of the first kind, RF with one argument zero.
[in] | x | |
[in] | y |
The arguments x and y must be positive.
Definition at line 61 of file EllipticFunction.cpp.
References GeographicLib::Math::pi().
|
static |
Degenerate symmetric integral of the first kind RC.
[in] | x | |
[in] | y |
RC is defined in https://dlmf.nist.gov/19.2.E17
\[ R_C(x, y) = \frac12 \int_0^\infty\frac1{\sqrt{t + x}(t + y)}\,dt, \]
where x ≥ 0 and y > 0.
Definition at line 76 of file EllipticFunction.cpp.
|
static |
Symmetric integral of the second kind RG.
[in] | x | |
[in] | y | |
[in] | z |
RG is defined in Carlson, eq 1.5
\[ R_G(x, y, z) = \frac14 \int_0^\infty[(t + x) (t + y) (t + z)]^{-1/2} \biggl( \frac x{t + x} + \frac y{t + y} + \frac z{t + z} \biggr)t\,dt, \]
where at most one of arguments, x, y, z, can be zero and those arguments that are nonzero must be positive. See also https://dlmf.nist.gov/19.23.E6_5. If one of the arguments is zero, it is more efficient to call the two-argument version of this function with the non-zero arguments.
Definition at line 91 of file EllipticFunction.cpp.
References RD(), RF(), and RG().
Referenced by GeographicLib::AuxLatitude::RectifyingRadius(), Reset(), and RG().
|
static |
Complete symmetric integral of the second kind, RG with one argument zero.
[in] | x | |
[in] | y |
The arguments x and y must be positive.
Definition at line 100 of file EllipticFunction.cpp.
References GeographicLib::Math::pi(), and GeographicLib::Math::sq().
|
static |
Symmetric integral of the third kind RJ.
[in] | x | |
[in] | y | |
[in] | z | |
[in] | p |
RJ is defined in https://dlmf.nist.gov/19.16.E2
\[ R_J(x, y, z, p) = \frac32 \int_0^\infty [(t + x) (t + y) (t + z)]^{-1/2} (t + p)^{-1}\, dt, \]
where p > 0, and x, y, z are nonnegative with at most one of them being 0.
Definition at line 123 of file EllipticFunction.cpp.
References RC(), and GeographicLib::Math::sq().
|
static |
Degenerate symmetric integral of the third kind RD.
[in] | x | |
[in] | y | |
[in] | z |
RD is defined in https://dlmf.nist.gov/19.16.E5
\[ R_D(x, y, z) = \frac32 \int_0^\infty[(t + x) (t + y)]^{-1/2} (t + z)^{-3/2}\, dt, \]
where x, y, z are positive except that at most one of x and y can be 0.
Definition at line 177 of file EllipticFunction.cpp.
Referenced by D(), E(), GeographicLib::AuxLatitude::Rectifying(), Reset(), and RG().