10 #if !defined(GEOGRAPHICLIB_ELLIPSOID_HPP)
11 #define GEOGRAPHICLIB_ELLIPSOID_HPP 1
42 static const int numit_ = 10;
44 real _a, _f, _f1, _f12, _e2, _e, _e12, _n, _b;
48 static inline real tand(real x) {
49 using std::abs;
using std::tan;
51 abs(x) ==
real(90) ? (x < 0 ?
52 - TransverseMercator::overflow()
53 : TransverseMercator::overflow()) :
56 static inline real atand(real x)
62 const Math::real* ConformalToRectifyingCoeffs()
const {
return _tm._alp; }
63 const Math::real* RectifyingToConformalCoeffs()
const {
return _tm._bet; }
197 Math::real ParametricLatitude(real phi)
const;
207 Math::real InverseParametricLatitude(real beta)
const;
221 Math::real GeocentricLatitude(real phi)
const;
231 Math::real InverseGeocentricLatitude(real theta)
const;
247 Math::real RectifyingLatitude(real phi)
const;
257 Math::real InverseRectifyingLatitude(real mu)
const;
283 Math::real InverseAuthalicLatitude(real xi)
const;
308 Math::real InverseConformalLatitude(real chi)
const;
334 Math::real InverseIsometricLatitude(real psi)
const;
386 Math::real MeridionalCurvatureRadius(real phi)
const;
399 Math::real TransverseCurvatureRadius(real phi)
const;
413 Math::real NormalCurvatureRadius(real phi, real azi)
const;
429 {
return fp / (1 + fp); }
439 {
return f / (1 - f); }
450 {
return 2 * n / (1 + n); }
461 {
return f / (2 - f); }
473 {
using std::sqrt;
return e2 / (sqrt(1 - e2) + 1); }
485 {
return f * (2 - f); }
497 {
using std::sqrt;
return ep2 / (sqrt(1 + ep2) + 1 + ep2); }
509 {
return f * (2 - f) /
Math::sq(1 - f); }
521 {
return 2 * epp2 / (sqrt((1 - epp2) * (1 + epp2)) + 1 + epp2); }
533 {
return f * (2 - f) / (1 +
Math::sq(1 - f)); }
546 #endif // GEOGRAPHICLIB_ELLIPSOID_HPP
Math::real SecondFlattening() const
#define GEOGRAPHICLIB_EXPORT
Math::real SecondEccentricitySq() const
GeographicLib::Math::real real
static Math::real SecondFlatteningToFlattening(real fp)
Transverse Mercator projection.
Elliptic integrals and functions.
Header for GeographicLib::TransverseMercator class.
static Math::real FlatteningToEccentricitySq(real f)
static Math::real ThirdEccentricitySqToFlattening(real epp2)
Header for GeographicLib::AlbersEqualArea class.
Albers equal area conic projection.
Math::real EccentricitySq() const
static Math::real ThirdFlatteningToFlattening(real n)
Math::real MajorRadius() const
Math::real MinorRadius() const
Namespace for GeographicLib.
static Math::real FlatteningToThirdEccentricitySq(real f)
Header for GeographicLib::EllipticFunction class.
static Math::real SecondEccentricitySqToFlattening(real ep2)
Properties of an ellipsoid.
static Math::real FlatteningToThirdFlattening(real f)
Math::real Volume() const
Header for GeographicLib::Constants class.
Solve of the direct and inverse rhumb problems.
static Math::real EccentricitySqToFlattening(real e2)
static Math::real FlatteningToSecondFlattening(real f)
Find a sequence of points on a single rhumb line.
Math::real ThirdFlattening() const
static Math::real FlatteningToSecondEccentricitySq(real f)
Math::real ThirdEccentricitySq() const
Math::real Flattening() const