14 # pragma warning (disable: 4127)
17 namespace GeographicLib {
24 return es > T(0) ? es * atanh(es * x) : -es * atan(es * x);
28 T tau1 = hypot(T(1), tau),
29 sig = sinh( eatanhe(tau / tau1, es ) );
30 return hypot(T(1), sig) * tau - sig * tau1;
33 template<
typename T> T
Math::tauf(T taup, T es) {
34 static const int numit = 5;
35 static const T tol = sqrt(numeric_limits<T>::epsilon()) / T(10);
36 T e2m = T(1) - sq(es),
45 stol = tol * max(T(1), abs(taup));
48 T taupa = taupf(tau, es),
49 dtau = (taup - taupa) * (1 + e2m * sq(tau)) /
50 ( e2m * hypot(T(1), tau) * hypot(T(1), taupa) );
52 if (!(abs(dtau) >= stol))
static T eatanhe(T x, T es)
Header for GeographicLib::Math class.
static T tauf(T taup, T es)
static T taupf(T tau, T es)
#define GEOGRAPHICLIB_PANIC