Elliptic functions needed for TransverseMercatorExact. More...
#include <GeographicLib/EllipticFunction.hpp>
Public Member Functions | |
EllipticFunction (real m) throw () | |
Math::real | m () const throw () |
Math::real | m1 () const throw () |
Math::real | K () const throw () |
Math::real | E () const throw () |
Math::real | KE () const throw () |
void | sncndn (real x, real &sn, real &cn, real &dn) const throw () |
Math::real | E (real sn, real cn, real dn) const throw () |
Elliptic functions needed for TransverseMercatorExact.
This provides the subset of elliptic functions needed for TransverseMercatorExact. For a given ellipsoid, only parameters e2 and 1 - e2 are needed. This class taken the parameter as a constructor parameters and caches the values of the required complete integrals. A method is provided for Jacobi elliptic functions and for the incomplete elliptic integral of the second kind in terms of the amplitude.
The computation of the elliptic integrals uses the algorithms given in
The computation of the Jacobi elliptic functions uses the algorithm given in
The notation follows Abramowitz and Stegun, Chapters 16 and 17.
Definition at line 42 of file EllipticFunction.hpp.
GeographicLib::EllipticFunction::EllipticFunction | ( | real | m | ) | throw () [explicit] |
Constructor with parameter m.
Definition at line 124 of file EllipticFunction.cpp.
Math::real GeographicLib::EllipticFunction::m | ( | ) | const throw () [inline] |
The parameter m.
Definition at line 64 of file EllipticFunction.hpp.
Math::real GeographicLib::EllipticFunction::m1 | ( | ) | const throw () [inline] |
The complementary parameter m' = (1 - m).
Definition at line 69 of file EllipticFunction.hpp.
Math::real GeographicLib::EllipticFunction::K | ( | ) | const throw () [inline] |
The complete integral of first kind, K(m).
Definition at line 74 of file EllipticFunction.hpp.
Math::real GeographicLib::EllipticFunction::E | ( | ) | const throw () [inline] |
The complete integral of second kind, E(m).
Definition at line 79 of file EllipticFunction.hpp.
Math::real GeographicLib::EllipticFunction::KE | ( | ) | const throw () [inline] |
The difference K(m) - E(m) (which can be computed directly).
Definition at line 84 of file EllipticFunction.hpp.
void GeographicLib::EllipticFunction::sncndn | ( | real | x, | |
real & | sn, | |||
real & | cn, | |||
real & | dn | |||
) | const throw () |
The Jacobi elliptic functions sn(x|m), cn(x|m), and dn(x|m) with argument x. The results are returned in sn, cn, and dn.
Definition at line 150 of file EllipticFunction.cpp.
Math::real GeographicLib::EllipticFunction::E | ( | real | sn, | |
real | cn, | |||
real | dn | |||
) | const throw () |
The incomplete integral of the second kind = int dn(w)2 dw (A+S 17.2.10). Instead of specifying the ampltiude phi, we provide sn = sin(phi), cn = cos(phi), dn = sqrt(1 - m sin2(phi)).
Definition at line 197 of file EllipticFunction.cpp.