diff options
Diffstat (limited to 'src/pj_phi2.c')
| -rw-r--r-- | src/pj_phi2.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/pj_phi2.c b/src/pj_phi2.c new file mode 100644 index 00000000..dbb79d4d --- /dev/null +++ b/src/pj_phi2.c @@ -0,0 +1,28 @@ +/* determine latitude angle phi-2 */ +#ifndef lint +static const char SCCSID[]="@(#)pj_phi2.c 4.3 93/06/12 GIE REL"; +#endif +#include <projects.h> + +#define HALFPI 1.5707963267948966 +#define TOL 1.0e-10 +#define N_ITER 15 + + double +pj_phi2(double ts, double e) { + double eccnth, Phi, con, dphi; + int i; + + eccnth = .5 * e; + Phi = HALFPI - 2. * atan (ts); + i = N_ITER; + do { + con = e * sin (Phi); + dphi = HALFPI - 2. * atan (ts * pow((1. - con) / + (1. + con), eccnth)) - Phi; + Phi += dphi; + } while ( fabs(dphi) > TOL && --i); + if (i <= 0) + pj_errno = -18; + return Phi; +} |
