1*ab6d115fSJohn MarinoCopyright 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. 2*ab6d115fSJohn MarinoContributed by the AriC and Caramel projects, INRIA. 397a2eac4SSimon Schubert 497a2eac4SSimon SchubertThis file is part of the GNU MPFR Library. 597a2eac4SSimon Schubert 697a2eac4SSimon SchubertThe GNU MPFR Library is free software; you can redistribute it and/or modify 797a2eac4SSimon Schubertit under the terms of the GNU Lesser General Public License as published by 84a238c70SJohn Marinothe Free Software Foundation; either version 3 of the License, or (at your 997a2eac4SSimon Schubertoption) any later version. 1097a2eac4SSimon Schubert 1197a2eac4SSimon SchubertThe GNU MPFR Library is distributed in the hope that it will be useful, but 1297a2eac4SSimon SchubertWITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 1397a2eac4SSimon Schubertor FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 1497a2eac4SSimon SchubertLicense for more details. 1597a2eac4SSimon Schubert 1697a2eac4SSimon SchubertYou should have received a copy of the GNU Lesser General Public License 174a238c70SJohn Marinoalong with the GNU MPFR Library; see the file COPYING.LESSER. If not, see 184a238c70SJohn Marinohttp://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., 194a238c70SJohn Marino51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 2097a2eac4SSimon Schubert 2197a2eac4SSimon Schubert############################################################################## 2297a2eac4SSimon Schubert 2397a2eac4SSimon SchubertKnown bugs: 2497a2eac4SSimon Schubert 2597a2eac4SSimon Schubert* The overflow/underflow exceptions may be badly handled in some functions; 2697a2eac4SSimon Schubert specially when the intermediary internal results have exponent which 2797a2eac4SSimon Schubert exceeds the hardware limit (2^30 for a 32 bits CPU, and 2^62 for a 64 bits 2897a2eac4SSimon Schubert CPU) or the exact result is close to an overflow/underflow threshold. 2997a2eac4SSimon Schubert 3097a2eac4SSimon Schubert* Under Linux/x86 with the traditional FPU, some functions do not work 3197a2eac4SSimon Schubert if the FPU rounding precision has been changed to single (this is a 3297a2eac4SSimon Schubert bad practice and should be useless, but one never knows what other 3397a2eac4SSimon Schubert software will do). 3497a2eac4SSimon Schubert 3597a2eac4SSimon Schubert* Some functions do not use MPFR_SAVE_EXPO_* macros, thus do not behave 3697a2eac4SSimon Schubert correctly in a reduced exponent range. 3797a2eac4SSimon Schubert 3897a2eac4SSimon Schubert* Function hypot gives incorrect result when on the one hand the difference 3997a2eac4SSimon Schubert between parameters' exponents is near 2*MPFR_EMAX_MAX and on the other hand 4097a2eac4SSimon Schubert the output precision or the precision of the parameter with greatest 4197a2eac4SSimon Schubert absolute value is greater than 2*MPFR_EMAX_MAX-4. 4297a2eac4SSimon Schubert 4397a2eac4SSimon SchubertPotential bugs: 4497a2eac4SSimon Schubert 4597a2eac4SSimon Schubert* Possible incorrect results due to internal underflow, which can lead to 4697a2eac4SSimon Schubert a huge loss of accuracy while the error analysis doesn't take that into 4797a2eac4SSimon Schubert account. If the underflow occurs at the last function call (just before 4897a2eac4SSimon Schubert the MPFR_CAN_ROUND), the result should be correct (or MPFR gets into an 4997a2eac4SSimon Schubert infinite loop). TODO: check the code and the error analysis. 5097a2eac4SSimon Schubert 5197a2eac4SSimon Schubert* Possible integer overflows on some machines. 5297a2eac4SSimon Schubert 5397a2eac4SSimon Schubert* Possible bugs with huge precisions (> 2^30). 5497a2eac4SSimon Schubert 5597a2eac4SSimon Schubert* Possible bugs if the chosen exponent range does not allow to represent 5697a2eac4SSimon Schubert the range [1/16, 16]. 5797a2eac4SSimon Schubert 5897a2eac4SSimon Schubert* Possible infinite loop in some functions for particular cases: when 5997a2eac4SSimon Schubert the exact result is an exactly representable number or the middle of 6097a2eac4SSimon Schubert consecutive two such numbers. However for non-algebraic functions, it is 6197a2eac4SSimon Schubert believed that no such case exists, except the well-known cases like cos(0)=1, 6297a2eac4SSimon Schubert exp(0)=1, and so on, and the x^y function when y is an integer or y=1/2^k. 6397a2eac4SSimon Schubert 6497a2eac4SSimon Schubert* The mpfr_set_ld function may be quite slow if the long double type has an 6597a2eac4SSimon Schubert exponent of more than 15 bits. 6697a2eac4SSimon Schubert 6797a2eac4SSimon Schubert* mpfr_set_d may give wrong results on some non-IEEE architectures. 6897a2eac4SSimon Schubert 6997a2eac4SSimon Schubert* Error analysis for some functions may be incorrect (out-of-date due 7097a2eac4SSimon Schubert to modifications in the code?). 7197a2eac4SSimon Schubert 7297a2eac4SSimon Schubert* Possible use of non-portable feature (pre-C99) of the integer division 7397a2eac4SSimon Schubert with negative result. 74