aboutsummaryrefslogtreecommitdiff
path: root/src/nad_intr.c
diff options
context:
space:
mode:
authorKurt Schwehr <schwehr@google.com>2018-03-22 09:06:03 -0700
committerKurt Schwehr <schwehr@google.com>2018-03-22 09:06:03 -0700
commitec494f12d10412d389733a196ec58a4d0c4beffa (patch)
tree18c14fc778dc65d0272535a0576ee0cb068a6f36 /src/nad_intr.c
parent3c59dad1b6502963bfc8ee74700101f631d3e302 (diff)
downloadPROJ-ec494f12d10412d389733a196ec58a4d0c4beffa.tar.gz
PROJ-ec494f12d10412d389733a196ec58a4d0c4beffa.zip
Handle nan float cast overflow in PJ_robin.c and nad_intr.c
Uses the new pj_is_nan to avoid x == x checks. Removes an assignment from an arg list
Diffstat (limited to 'src/nad_intr.c')
-rw-r--r--src/nad_intr.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/nad_intr.c b/src/nad_intr.c
index b385410f..dc245831 100644
--- a/src/nad_intr.c
+++ b/src/nad_intr.c
@@ -1,6 +1,8 @@
/* Determine nad table correction value */
#define PJ_LIB__
+#include "proj_internal.h"
#include "projects.h"
+
LP
nad_intr(LP t, struct CTABLE *ct) {
LP val, frct;
@@ -10,8 +12,11 @@ nad_intr(LP t, struct CTABLE *ct) {
long index;
int in;
- indx.lam = (int)floor(t.lam /= ct->del.lam);
- indx.phi = (int)floor(t.phi /= ct->del.phi);
+ t.lam /= ct->del.lam;
+ indx.lam = pj_is_nan(t.lam) ? 0 : (int)floor(t.lam);
+ t.phi /= ct->del.phi;
+ indx.phi = pj_is_nan(t.phi) ? 0 : (int)floor(t.phi);
+
frct.lam = t.lam - indx.lam;
frct.phi = t.phi - indx.phi;
val.lam = val.phi = HUGE_VAL;