diff options
Diffstat (limited to 'src/pj_phi2.c')
| -rw-r--r-- | src/pj_phi2.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/pj_phi2.c b/src/pj_phi2.c index 60b36ec4..fa6d9950 100644 --- a/src/pj_phi2.c +++ b/src/pj_phi2.c @@ -6,18 +6,22 @@ double pj_phi2(projCtx ctx, double ts, double e) { - double eccnth, Phi, con, dphi; + double eccnth, Phi, con; int i; eccnth = .5 * e; Phi = M_HALFPI - 2. * atan (ts); i = N_ITER; - do { + for(;;) { + double dphi; con = e * sin (Phi); dphi = M_HALFPI - 2. * atan (ts * pow((1. - con) / (1. + con), eccnth)) - Phi; Phi += dphi; - } while ( fabs(dphi) > TOL && --i); + if( fabs(dphi) > TOL && --i ) + continue; + break; + } if (i <= 0) pj_ctx_set_errno( ctx, -18 ); return Phi; |
