10 #if !defined(GEOGRAPHICLIB_ALBERSEQUALAREA_HPP)
11 #define GEOGRAPHICLIB_ALBERSEQUALAREA_HPP 1
63 real eps_, epsx_, epsx2_, tol_, tol0_;
64 real _a, _f, _fm, _e2, _e, _e2m, _qZ, _qx;
65 real _sign, _lat0, _k0;
66 real _n0, _m02, _nrho0, _k2, _txi0, _scxi0, _sxi0;
67 static const int numit_ = 5;
68 static const int numit0_ = 20;
73 real atanhee(real x)
const {
74 using std::atan2;
using std::abs;
80 (_f < 0 ? (atan2(_e * abs(x),
real(x < 0 ? -1 : 1))/_e) : x);
83 static real atanhxm1(real x);
102 static real Dsn(real x, real y, real sx, real sy) {
105 return t > 0 ? (x + y) *
Math::sq( (sx * sy)/t ) / (sx + sy) :
106 (x - y != 0 ? (sx - sy) / (x - y) : 1);
109 real Datanhee(real x, real y)
const {
110 real t = x - y, d = 1 - _e2 * x * y;
111 return t != 0 ? atanhee(t / d) / t : 1 / d;
114 real DDatanhee(real x, real y)
const;
115 void Init(real sphi1, real cphi1, real sphi2, real cphi2, real k1);
116 real txif(real tphi)
const;
117 real tphif(real txi)
const;
178 real sinlat1, real coslat1,
179 real sinlat2, real coslat2,
193 void SetScale(real lat, real k =
real(1));
213 void Forward(real lon0, real lat, real lon,
214 real& x, real& y, real& gamma, real& k)
const;
234 void Reverse(real lon0, real x, real y,
235 real& lat, real& lon, real& gamma, real& k)
const;
242 real& x, real& y)
const {
244 Forward(lon0, lat, lon, x, y, gamma, k);
252 real& lat, real& lon)
const {
254 Reverse(lon0, x, y, lat, lon, gamma, k);
312 #endif // GEOGRAPHICLIB_ALBERSEQUALAREA_HPP