summaryrefslogtreecommitdiff
path: root/tests/tabs.c
diff options
context:
space:
mode:
authorhanrot <hanrot@280ebfd0-de03-0410-8827-d642c229c3f4>2000-11-21 15:21:39 +0000
committerhanrot <hanrot@280ebfd0-de03-0410-8827-d642c229c3f4>2000-11-21 15:21:39 +0000
commit01b2aebd57955fa9514550221f25cb684a792d85 (patch)
treefafb151cbbdfb4ab3394ca5ba1f8b1cfa3a2bc4c /tests/tabs.c
parentebb0a24940eb551ce03eb361910c423fee7d6499 (diff)
downloadmpfr-01b2aebd57955fa9514550221f25cb684a792d85.tar.gz
Infinis, premiere tentative (tests)
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@794 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'tests/tabs.c')
-rw-r--r--tests/tabs.c46
1 files changed, 30 insertions, 16 deletions
diff --git a/tests/tabs.c b/tests/tabs.c
index dd1df1c6f..8b86cf164 100644
--- a/tests/tabs.c
+++ b/tests/tabs.c
@@ -27,6 +27,7 @@ MA 02111-1307, USA. */
#ifdef __mips
#include <sys/fpu.h>
#endif
+#define Infp 1/0.
extern int isnan();
@@ -55,22 +56,35 @@ int main(int argc, char *argv[])
fprintf(stderr, "Error in mpfr_abs(-1.0)\n"); exit(1);
}
- n = (argc==1) ? 1000000 : atoi(argv[1]);
- for (k = 1; k <= n; k++)
- {
- d = drand();
- rnd = rand() % 4;
- mpfr_set_d(x, d, 0);
- mpfr_abs(x, x, rnd);
- dd = mpfr_get_d(x);
- if (dd != fabs(d) && !isnan(d))
- {
- fprintf(stderr,
- "Mismatch on d = %1.18g\n", d);
- mpfr_print_raw(x); putchar('\n');
- exit(1);
- }
- }
+ mpfr_set_d(x, -6/-0., GMP_RNDN);
+ mpfr_abs(x, x, GMP_RNDN);
+ if (mpfr_get_d(x) != Infp) {
+ fprintf(stderr, "Error in mpfr_abs(Inf).\n"); exit(1);
+ }
+
+ mpfr_set_d(x, 2/-0., GMP_RNDN);
+ mpfr_abs(x, x, GMP_RNDN);
+ if (mpfr_get_d(x) != Infp) {
+ fprintf(stderr, "Error in mpfr_abs(-Inf).\n"); exit(1);
+ }
+
+
+ n = (argc==1) ? 1000000 : atoi(argv[1]);
+ for (k = 1; k <= n; k++)
+ {
+ d = drand();
+ rnd = rand() % 4;
+ mpfr_set_d(x, d, 0);
+ mpfr_abs(x, x, rnd);
+ dd = mpfr_get_d(x);
+ if (dd != fabs(d) && !isnan(d))
+ {
+ fprintf(stderr,
+ "Mismatch on d = %1.18g\n", d);
+ mpfr_print_raw(x); putchar('\n');
+ exit(1);
+ }
+ }
mpfr_clear(x);
return 0;