=================================================================== RCS file: /home/cvs/OpenXM_contrib/gmp/mpfr/tests/Attic/tcan_round.c,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -p -r1.1.1.1 -r1.1.1.2 --- OpenXM_contrib/gmp/mpfr/tests/Attic/tcan_round.c 2000/09/09 14:12:19 1.1.1.1 +++ OpenXM_contrib/gmp/mpfr/tests/Attic/tcan_round.c 2003/08/25 16:06:09 1.1.1.2 @@ -1,20 +1,20 @@ /* Test file for mpfr_can_round. -Copyright (C) 1999 PolKA project, Inria Lorraine and Loria +Copyright 1999, 2001 Free Software Foundation, Inc. This file is part of the MPFR Library. The MPFR Library is free software; you can redistribute it and/or modify -it under the terms of the GNU Library General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at your +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The MPFR Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. -You should have received a copy of the GNU Library General Public License +You should have received a copy of the GNU Lesser General Public License 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. */ @@ -24,17 +24,37 @@ MA 02111-1307, USA. */ #include "gmp.h" #include "mpfr.h" -int main() +int +main (void) { mpfr_t x; /* checks that rounds to nearest sets the last bit to zero in case of equal distance */ - mpfr_init2(x, 59); - mpfr_set_str_raw(x, "-0.10010001010111000011110010111010111110000000111101100111111E663"); - if (mpfr_can_round(x, 54, GMP_RNDZ, GMP_RNDZ, 53) != 0) { - fprintf(stderr, "Error in mpfr_can_round\n"); exit(1); - } - mpfr_clear(x); - exit (0); + mpfr_init2 (x, 59); + mpfr_set_str_raw (x, "-0.10010001010111000011110010111010111110000000111101100111111E663"); + if (mpfr_can_round (x, 54, GMP_RNDZ, GMP_RNDZ, 53) != 0) + { + fprintf (stderr, "Error (1) in mpfr_can_round\n"); + exit (1); + } + + mpfr_set_str_raw (x, "-Inf"); + if (mpfr_can_round (x, 2000, GMP_RNDZ, GMP_RNDZ, 2000) != 0) + { + fprintf (stderr, "Error (2) in mpfr_can_round\n"); + exit (1); + } + + mpfr_set_prec (x, 64); + mpfr_set_str_raw (x, "0.1011001000011110000110000110001111101011000010001110011000000000"); + if (mpfr_can_round (x, 65, GMP_RNDN, GMP_RNDN, 54)) + { + fprintf (stderr, "Error (3) in mpfr_can_round\n"); + exit (1); + } + + mpfr_clear (x); + + return 0; }