diff options
Diffstat (limited to 'uceil_exp2.c')
-rw-r--r-- | uceil_exp2.c | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/uceil_exp2.c b/uceil_exp2.c deleted file mode 100644 index b2ebc5d45..000000000 --- a/uceil_exp2.c +++ /dev/null @@ -1,65 +0,0 @@ -/* __gmpfr_ceil_exp2 - returns y >= 2^d - -Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. -Contributed by the Arenaire and Caramel projects, INRIA. - -This file is part of the GNU MPFR Library. - -The GNU MPFR Library is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -The GNU 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 Lesser General Public -License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see -http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., -51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#include "mpfr-impl.h" - -/* returns y >= 2^d, assuming that d <= 1024 - for d integer, returns exactly 2^d -*/ -double -__gmpfr_ceil_exp2 (double d) -{ - long exp; -#if _GMP_IEEE_FLOATS - union ieee_double_extract x; -#else - struct {double d;} x; -#endif - - MPFR_ASSERTN(d <= 1024.0); - exp = (long) d; - if (d != (double) exp) - exp++; - /* now exp = ceil(d) */ - x.d = 1.0; -#if _GMP_IEEE_FLOATS - x.s.exp = exp <= -1022 ? 1 : 1023 + exp; -#else - if (exp >= 0) - { - while (exp != 0) - { - x.d *= 2.0; - exp--; - } - } - else - { - while (exp != 0) - { - x.d *= (1.0 / 2.0); - exp++; - } - } -#endif - return x.d; -} |