diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2003-01-17 08:58:45 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2003-01-17 08:58:45 +0000 |
commit | 7b809d142e26babd6be428c770ca38fd8d3235a5 (patch) | |
tree | 6d9688c7d7a1ee63ef433b8cf66f1f118c8ef808 | |
parent | 35d33676c4a43b10fcee59a3ea7b9ee807a63415 (diff) | |
download | mpfr-7b809d142e26babd6be428c770ca38fd8d3235a5.tar.gz |
now use __gmpfr_floor_log2 instead of floor/log to get rid of math.h
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@2199 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r-- | tests/tcmp2.c | 55 |
1 files changed, 34 insertions, 21 deletions
diff --git a/tests/tcmp2.c b/tests/tcmp2.c index 0de90b5f8..b290c9b92 100644 --- a/tests/tcmp2.c +++ b/tests/tcmp2.c @@ -19,7 +19,6 @@ along with the MPFR Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include <math.h> /* for log and floor in tcmp2() */ #include <stdio.h> #include <stdlib.h> #include "gmp.h" @@ -153,9 +152,12 @@ tcmp2 (double x, double y, int i) mpfr_t xx, yy; mp_prec_t j; - if (i==-1) { - if (x==y) i=53; - else i = (int) floor(log(x)/log(2.0)) - (int) floor(log(x-y)/log(2.0)); + if (i == -1) + { + if (x == y) + i = 53; + else + i = (int) (__gmpfr_floor_log2 (x) - __gmpfr_floor_log2 (x - y)); } mpfr_init2(xx, 53); mpfr_init2(yy, 53); mpfr_set_d (xx, x, GMP_RNDN); @@ -279,31 +281,42 @@ special (void) int main (void) { - int i,j; double x=1.0, y, z; + int i, j; + double x = 1.0, y, z; tests_start_mpfr (); mpfr_test_init (); worst_cases (); special (); - tcmp2(5.43885304644369510000e+185, -1.87427265794105340000e-57, 1); - tcmp2(1.06022698059744327881e+71, 1.05824655795525779205e+71, -1); - tcmp2(1.0, 1.0, 53); - for (i=0;i<54;i++) { - tcmp2 (1.0, 1.0-x, i); - x /= 2.0; - } - for (x=0.5, i=1; i<100; i++) { - tcmp2 (1.0, x, 1); - x /= 2.0; - } - for (j=0; j<100000; j++) { - x = DBL_RAND (); - y = DBL_RAND (); - if (x<y) { z=x; x=y; y=z; } - if (y != 0.0 && y != -0.0) tcmp2(x, y, -1); + tcmp2 (5.43885304644369510000e+185, -1.87427265794105340000e-57, 1); + tcmp2 (1.06022698059744327881e+71, 1.05824655795525779205e+71, -1); + tcmp2 (1.0, 1.0, 53); + for (i = 0; i < 54; i++) + { + tcmp2 (1.0, 1.0-x, i); + x /= 2.0; + } + for (x = 0.5, i = 1; i < 100; i++) + { + tcmp2 (1.0, x, 1); + x /= 2.0; + } + for (j = 0; j < 100000; j++) + { + x = DBL_RAND (); + y = DBL_RAND (); + if (x < y) + { + z = x; + x = y; + y = z; + } + if (y != 0.0 && y != -0.0) + tcmp2 (x, y, -1); } tests_end_mpfr (); + return 0; } |