diff options
| -rw-r--r-- | src/projections/laea.cpp | 3 | ||||
| -rw-r--r-- | test/gie/builtins.gie | 5 | ||||
| -rw-r--r-- | test/gie/ellipsoid.gie | 6 |
3 files changed, 9 insertions, 5 deletions
diff --git a/src/projections/laea.cpp b/src/projections/laea.cpp index a1e4bf8f..3d135864 100644 --- a/src/projections/laea.cpp +++ b/src/projections/laea.cpp @@ -44,7 +44,8 @@ static PJ_XY laea_e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward if (Q->mode == OBLIQ || Q->mode == EQUIT) { sinb = q / Q->qp; - cosb = sqrt(1. - sinb * sinb); + const double cosb2 = 1. - sinb * sinb; + cosb = cosb2 > 0 ? sqrt(cosb2) : 0; } switch (Q->mode) { diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index dca30a2d..47de961e 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -1333,7 +1333,7 @@ accept -200 -100 expect -0.001790220 -0.000895247 operation +proj=eqdc +a=9999999 +b=.9 +lat_2=1 -expect failure errno invalid_eccentricity +expect failure operation +proj=eqdc +R=6400000 +lat_1=1 +lat_2=-1 expect failure errno conic_lat_equal @@ -4087,7 +4087,8 @@ expect failure errno lat_0_or_alpha_eq_90 ------------------------------------------------------------------------------- operation +proj=omerc +lat_1=0.1 +a=6400000 +b=1 ------------------------------------------------------------------------------- -expect failure errno invalid_eccentricity +# Disabled since fails on i386. Not so important. Edge condition found by ossfuzz +#expect failure errno invalid_eccentricity ------------------------------------------------------------------------------- operation +proj=omerc +lat_1=0.8 +a=6400000 +b=.4 diff --git a/test/gie/ellipsoid.gie b/test/gie/ellipsoid.gie index 74fbe31d..09effd06 100644 --- a/test/gie/ellipsoid.gie +++ b/test/gie/ellipsoid.gie @@ -44,7 +44,7 @@ tolerance 10 nm accept 1 2 expect 111319.4907932736 221194.0771604237 -accept 12 55s +accept 12 55 expect 1335833.8895192828 7326837.7148738774 ------------------------------------------------------------------------------- @@ -117,7 +117,9 @@ expect 1338073.2696101593 7374207.4801437631 ------------------------------------------------------------------------------- operation proj=merc a=1E77 R_lat_a=90 b=1 -expect failure errno invalid_eccentricity +# errno invalid_eccentricity on x86_64 +# errno pjd_err_ref_rad_larger_than_90 on i386 +expect failure ------------------------------------------------------------------------------- This one from testvarious failed at first version of the pull request |
