diff options
Diffstat (limited to 'enumerator.c')
-rw-r--r-- | enumerator.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/enumerator.c b/enumerator.c index 466e064560..274583a3de 100644 --- a/enumerator.c +++ b/enumerator.c @@ -2790,15 +2790,16 @@ static double arith_seq_float_step_size(double beg, double end, double step, int excl) { double const epsilon = DBL_EPSILON; - double n = (end - beg) / step; - double err = (fabs(beg) + fabs(end) + fabs(end - beg)) / fabs(step) * epsilon; + double n, err; - if (isinf(step)) { - return step > 0 ? beg <= end : beg >= end; - } if (step == 0) { return HUGE_VAL; } + n = (end - beg) / step; + err = (fabs(beg) + fabs(end) + fabs(end - beg)) / fabs(step) * epsilon; + if (isinf(step)) { + return step > 0 ? beg <= end : beg >= end; + } if (err > 0.5) err = 0.5; if (excl) { if (n <= 0) return 0; |