summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/seq.c12
-rwxr-xr-xtests/misc/seq5
2 files changed, 5 insertions, 12 deletions
diff --git a/src/seq.c b/src/seq.c
index b41aab6bc..3ae158b08 100644
--- a/src/seq.c
+++ b/src/seq.c
@@ -20,8 +20,6 @@
#include <getopt.h>
#include <stdio.h>
#include <sys/types.h>
-#include <math.h>
-#include <float.h>
#include "system.h"
#include "c-strtod.h"
@@ -258,14 +256,6 @@ long_double_format (char const *fmt, struct layout *layout)
return NULL;
}
-/* Return the absolute relative difference from x to y. */
-static double
-abs_rel_diff (double x, double y)
-{
- double s = (y == 0.0 ? 1 : y);
- return fabs ((y - x) / s);
-}
-
/* Actually print the sequence of numbers in the specified range, with the
given or default stepping and format. */
@@ -310,7 +300,7 @@ print_numbers (char const *fmt, struct layout layout,
x_str[x_strlen - layout.suffix_len] = '\0';
if (xstrtold (x_str + layout.prefix_len, NULL, &x_val, c_strtold)
- && abs_rel_diff (x_val, last) < DBL_EPSILON)
+ && x_val == last)
{
char *x0_str = NULL;
if (asprintf (&x0_str, fmt, x0) < 0)
diff --git a/tests/misc/seq b/tests/misc/seq
index 8e76f42da..227132208 100755
--- a/tests/misc/seq
+++ b/tests/misc/seq
@@ -47,7 +47,10 @@ my @Tests =
{OUT_SUBST => 's,^-0\.0$,0.0,'},
],
['float-5', qw(0.8 1e-1 0.9), {OUT => [qw(0.8 0.9)]}],
- ['float-6', qw(0.8 0.1 0.90000000000000000000), {OUT => [qw(0.8 0.9)]}],
+ # Don't append lots of zeros to that 0.9000...; for example, changing the
+ # number to 0.90000000000000000000 tickles a bug in Solaris 8 strtold
+ # that would cause the test to fail.
+ ['float-6', qw(0.8 0.1 0.9000000000000), {OUT => [qw(0.8 0.9)]}],
['wid-1', qw(.8 1e-2 .81), {OUT => [qw(0.80 0.81)]}],
['wid-2', qw(.89999 1e-7 .8999901), {OUT => [qw(0.8999900 0.8999901)]}],