Elliptic functions needed for TransverseMercatorExact. More...
#include <GeographicLib/EllipticFunction.hpp>
Public Member Functions | |
EllipticFunction (double m) throw () | |
double | m () const throw () |
double | m1 () const throw () |
double | K () const throw () |
double | E () const throw () |
double | KE () const throw () |
void | sncndn (double x, double &sn, double &cn, double &dn) const throw () |
double | E (double sn, double cn, double 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.
GeographicLib::EllipticFunction::EllipticFunction | ( | double | m | ) | throw () |
Constructor with parameter m.
Definition at line 128 of file EllipticFunction.cpp.
double GeographicLib::EllipticFunction::m | ( | ) | const throw () [inline] |
The parameter m.
Definition at line 61 of file EllipticFunction.hpp.
double GeographicLib::EllipticFunction::m1 | ( | ) | const throw () [inline] |
The complementary parameter m' = (1 - m).
Definition at line 66 of file EllipticFunction.hpp.
double GeographicLib::EllipticFunction::K | ( | ) | const throw () [inline] |
The complete integral of first kind, K(m).
Definition at line 71 of file EllipticFunction.hpp.
double GeographicLib::EllipticFunction::E | ( | ) | const throw () [inline] |
The complete integral of second kind, E(m).
Definition at line 76 of file EllipticFunction.hpp.
Referenced by main().
double GeographicLib::EllipticFunction::KE | ( | ) | const throw () [inline] |
The difference K(m) - E(m) (which can be computed directly).
Definition at line 81 of file EllipticFunction.hpp.
void GeographicLib::EllipticFunction::sncndn | ( | double | x, |
double & | sn, | ||
double & | cn, | ||
double & | 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 154 of file EllipticFunction.cpp.
double GeographicLib::EllipticFunction::E | ( | double | sn, |
double | cn, | ||
double | 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 202 of file EllipticFunction.cpp.