GeographicLib 2.5
|
Divided differences of auxiliary latitudes. More...
#include <GeographicLib/DAuxLatitude.hpp>
Public Member Functions | |
DAuxLatitude (real a, real f) | |
Math::real | DConvert (int auxin, int auxout, const AuxAngle &zeta1, const AuxAngle &zeta2) const |
Math::real | DParametric (const AuxAngle &phi1, const AuxAngle &phi2) const |
Math::real | DRectifying (const AuxAngle &phi1, const AuxAngle &phi2) const |
Math::real | DIsometric (const AuxAngle &phi1, const AuxAngle &phi2) const |
![]() | |
AuxLatitude (real a, real f) | |
AuxAngle | Convert (int auxin, int auxout, const AuxAngle &zeta, bool exact=false) const |
Math::real | Convert (int auxin, int auxout, real zeta, bool exact=false) const |
AuxAngle | ToAuxiliary (int auxout, const AuxAngle &phi, real *diff=nullptr) const |
AuxAngle | FromAuxiliary (int auxin, const AuxAngle &zeta, int *niter=nullptr) const |
Math::real | RectifyingRadius (bool exact=false) const |
Math::real | AuthalicRadiusSquared (bool exact=false) const |
Math::real | EquatorialRadius () const |
Math::real | PolarSemiAxis () const |
Math::real | Flattening () const |
Static Public Member Functions | |
static Math::real | DClenshaw (bool sinp, real Delta, real szeta1, real czeta1, real szeta2, real czeta2, const real c[], int K) |
static Math::real | Dlam (real x, real y) |
static Math::real | Dp0Dpsi (real x, real y) |
![]() | |
static AuxLatitude | axes (real a, real b) |
static Math::real | Clenshaw (bool sinp, real szeta, real czeta, const real c[], int K) |
static const AuxLatitude & | WGS84 () |
Additional Inherited Members | |
![]() | |
enum | aux { GEOGRAPHIC , PARAMETRIC , GEOCENTRIC , RECTIFYING , CONFORMAL , AUTHALIC , AUXNUMBER , PHI , BETA , THETA , MU , CHI , XI , COMMON , GEODETIC , REDUCED } |
![]() | |
static const int | Lmax |
![]() | |
AuxAngle | Parametric (const AuxAngle &phi, real *diff=nullptr) const |
AuxAngle | Geocentric (const AuxAngle &phi, real *diff=nullptr) const |
AuxAngle | Rectifying (const AuxAngle &phi, real *diff=nullptr) const |
AuxAngle | Conformal (const AuxAngle &phi, real *diff=nullptr) const |
AuxAngle | Authalic (const AuxAngle &phi, real *diff=nullptr) const |
Divided differences of auxiliary latitudes.
This class computed the divided differences of auxiliary latitudes and some other divided differences needed to support rhumb line calculations.
Definition at line 23 of file DAuxLatitude.hpp.
|
inline |
Constructor
[in] | a | equatorial radius. |
[in] | f | flattening of ellipsoid. Setting f = 0 gives a sphere. Negative f gives a prolate ellipsoid. |
GeographicErr | if a or (1 − f) a is not positive. |
Definition at line 37 of file DAuxLatitude.hpp.
Math::real GeographicLib::DAuxLatitude::DConvert | ( | int | auxin, |
int | auxout, | ||
const AuxAngle & | zeta1, | ||
const AuxAngle & | zeta2 | ||
) | const |
The divided difference of one auxiliary latitude with respect to another.
[in] | auxin | an AuxLatitude::aux indicating the type of auxiliary latitude zeta. |
[in] | auxout | an AuxLatitude::aux indicating the type of auxiliary latitude eta. |
[in] | zeta1 | the first of the input auxiliary latitudeas. |
[in] | zeta2 | the second of the input auxiliary latitude. |
In the expression for the divided difference above, the angle quantities should be understood as the conventional measure of angle (either in radians or in degrees).
The Fourier coefficients for a specific auxin and auxout are computed and saved on the first call; the saved coefficients are used on subsequent calls. The series method is accurate for abs(f) ≤ 1/150.
Definition at line 195 of file DAuxLatitude.cpp.
References DClenshaw(), GeographicLib::AuxLatitude::Lmax, GeographicLib::AuxAngle::normalized(), GeographicLib::AuxAngle::radians(), GeographicLib::AuxAngle::x(), and GeographicLib::AuxAngle::y().
Referenced by GeographicLib::Rhumb::GenInverse(), and GeographicLib::RhumbLine::GenPosition().
Math::real GeographicLib::DAuxLatitude::DParametric | ( | const AuxAngle & | phi1, |
const AuxAngle & | phi2 | ||
) | const |
The divided difference of the parametric latitude with respect to the geographic latitude.
[in] | phi1 | the first geographic latitude as an AuxAngle. |
[in] | phi2 | the second geographic latitude as an AuxAngle. |
Definition at line 46 of file DAuxLatitude.cpp.
References GeographicLib::AuxAngle::tan().
Referenced by DRectifying().
Math::real GeographicLib::DAuxLatitude::DRectifying | ( | const AuxAngle & | phi1, |
const AuxAngle & | phi2 | ||
) | const |
The divided difference of the rectifying latitude with respect to the geographic latitude.
[in] | phi1 | the first geographic latitude as an AuxAngle. |
[in] | phi2 | the second geographic latitude as an AuxAngle. |
Definition at line 25 of file DAuxLatitude.cpp.
References DParametric(), GeographicLib::AuxLatitude::Parametric(), GeographicLib::AuxAngle::radians(), GeographicLib::AuxLatitude::Rectifying(), GeographicLib::AuxLatitude::RectifyingRadius(), GeographicLib::Math::sq(), and GeographicLib::AuxAngle::tan().
Referenced by GeographicLib::Rhumb::GenInverse(), and GeographicLib::RhumbLine::GenPosition().
Math::real GeographicLib::DAuxLatitude::DIsometric | ( | const AuxAngle & | phi1, |
const AuxAngle & | phi2 | ||
) | const |
The divided difference of the isometric latitude with respect to the geographic latitude.
[in] | phi1 | the first geographic latitude as an AuxAngle. |
[in] | phi2 | the second geographic latitude as an AuxAngle. |
Definition at line 183 of file DAuxLatitude.cpp.
References GeographicLib::AuxAngle::tan().
Referenced by GeographicLib::Rhumb::GenInverse(), and GeographicLib::RhumbLine::GenPosition().
|
static |
The divided difference of AuxLatitude::Clenshaw.
[in] | sinp | if true sum the sine series, else sum the cosine series. |
[in] | Delta | either 1 or (zeta2 - zeta1) in radians. |
[in] | szeta1 | sin(zeta1). |
[in] | czeta1 | cos(zeta1). |
[in] | szeta2 | sin(zeta2). |
[in] | czeta2 | cos(zeta2). |
[in] | c | the array of coefficients. |
[in] | K | the number of coefficients. |
The result is
( AuxLatitude::Clenshaw(sinp, szeta2, czeta2, c, K) - AuxLatitude::Clenshaw(sinp, szeta1, czeta1, c, K) ) / Delta
Definition at line 211 of file DAuxLatitude.cpp.
Referenced by DConvert().
|
inlinestatic |
The divided difference of the isometric latitude with respect to the conformal latitude.
[in] | x | tan(chi1). |
[in] | y | tan(chi2). |
This routine computes Dasinh(x, y) / Datan(x, y).
Definition at line 144 of file DAuxLatitude.hpp.
Referenced by GeographicLib::Rhumb::GenInverse(), and GeographicLib::RhumbLine::GenPosition().
|
inlinestatic |
The divided difference of the spherical rhumb area term with respect to the isometric latitude.
[in] | x | tan(chi1). |
[in] | y | tan(chi2). |
Definition at line 165 of file DAuxLatitude.hpp.