diff options
Diffstat (limited to 'src/PJ_robin.c')
| -rw-r--r-- | src/PJ_robin.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/PJ_robin.c b/src/PJ_robin.c index 7514b325..92aebfd3 100644 --- a/src/PJ_robin.c +++ b/src/PJ_robin.c @@ -1,4 +1,5 @@ #define PJ_LIB__ +#include "proj_internal.h" #include "proj.h" #include "projects.h" @@ -80,7 +81,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ double dphi; (void) P; - i = (int)floor((dphi = fabs(lp.phi)) * C1); + dphi = fabs(lp.phi); + i = pj_is_nan(lp.phi) ? -1 : (int)floor(dphi * C1); if( i < 0 ){ proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION); return xy; @@ -115,7 +117,7 @@ static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ } } else { /* general problem */ /* in Y space, reduce to table interval */ - i = (int)floor(lp.phi * NODES); + i = pj_is_nan(lp.phi) ? -1 : (int)floor(lp.phi * NODES); if( i < 0 || i >= NODES ) { proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION); return lp; |
