diff options
| author | Kristian Evers <kristianevers@gmail.com> | 2018-02-02 12:10:15 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-02-02 12:10:15 +0100 |
| commit | 614023609fc026c7ccd37e9436c0c18bc3142ba0 (patch) | |
| tree | 0baa066d3ea2b54a2c3be180872a2be5d5c71c2e | |
| parent | 9a8c37ac04ce913617a2b429bbc7f8a3daa1848d (diff) | |
| parent | 85cf25a6c293c3805fb7133f4c583dd36e7e57c5 (diff) | |
| download | PROJ-614023609fc026c7ccd37e9436c0c18bc3142ba0.tar.gz PROJ-614023609fc026c7ccd37e9436c0c18bc3142ba0.zip | |
Merge pull request #756 from busstoptaktik/repair_omerc_asin
PJ_omerc: Guard against asin calls with arg numerically greater than 1
| -rw-r--r-- | src/PJ_omerc.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/PJ_omerc.c b/src/PJ_omerc.c index 22f0daca..eca5b241 100644 --- a/src/PJ_omerc.c +++ b/src/PJ_omerc.c @@ -177,12 +177,12 @@ PJ *PROJECTION(omerc) { } if (alp || gam) { if (alp) { - gamma0 = asin(sin(alpha_c) / D); + gamma0 = aasin(P->ctx, sin(alpha_c) / D); if (!gam) gamma = alpha_c; } else - alpha_c = asin(D*sin(gamma0 = gamma)); - P->lam0 = lamc - asin(.5 * (F - 1. / F) * + alpha_c = aasin(P->ctx, D*sin(gamma0 = gamma)); + P->lam0 = lamc - aasin(P->ctx, .5 * (F - 1. / F) * tan(gamma0)) / Q->B; } else { H = pow(pj_tsfn(phi1, sin(phi1), P->e), Q->B); @@ -199,7 +199,7 @@ PJ *PROJECTION(omerc) { J * tan(.5 * Q->B * (lam1 - lam2)) / p) / Q->B); gamma0 = atan(2. * sin(Q->B * adjlon(lam1 - P->lam0)) / (F - 1. / F)); - gamma = alpha_c = asin(D * sin(gamma0)); + gamma = alpha_c = aasin(P->ctx, D * sin(gamma0)); } Q->singam = sin(gamma0); Q->cosgam = cos(gamma0); |
