BUGS revision 1.1.1.5 1 1.1.1.5 mrg Copyright 1999, 2001-2020 Free Software Foundation, Inc.
2 1.1.1.3 mrg Contributed by the AriC and Caramba projects, INRIA.
3 1.1 mrg
4 1.1 mrg This file is part of the GNU MPFR Library.
5 1.1 mrg
6 1.1 mrg The GNU MPFR Library is free software; you can redistribute it and/or modify
7 1.1 mrg it under the terms of the GNU Lesser General Public License as published by
8 1.1 mrg the Free Software Foundation; either version 3 of the License, or (at your
9 1.1 mrg option) any later version.
10 1.1 mrg
11 1.1 mrg The GNU MPFR Library is distributed in the hope that it will be useful, but
12 1.1 mrg WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 1.1 mrg or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 1.1 mrg License for more details.
15 1.1 mrg
16 1.1 mrg You should have received a copy of the GNU Lesser General Public License
17 1.1 mrg along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
18 1.1.1.5 mrg https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
19 1.1 mrg 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
20 1.1 mrg
21 1.1 mrg ##############################################################################
22 1.1 mrg
23 1.1 mrg Known bugs:
24 1.1 mrg
25 1.1 mrg * The overflow/underflow exceptions may be badly handled in some functions;
26 1.1 mrg specially when the intermediary internal results have exponent which
27 1.1 mrg exceeds the hardware limit (2^30 for a 32 bits CPU, and 2^62 for a 64 bits
28 1.1 mrg CPU) or the exact result is close to an overflow/underflow threshold.
29 1.1 mrg
30 1.1 mrg * Under Linux/x86 with the traditional FPU, some functions do not work
31 1.1 mrg if the FPU rounding precision has been changed to single (this is a
32 1.1 mrg bad practice and should be useless, but one never knows what other
33 1.1 mrg software will do).
34 1.1 mrg
35 1.1 mrg * Some functions do not use MPFR_SAVE_EXPO_* macros, thus do not behave
36 1.1 mrg correctly in a reduced exponent range.
37 1.1 mrg
38 1.1 mrg * Function hypot gives incorrect result when on the one hand the difference
39 1.1 mrg between parameters' exponents is near 2*MPFR_EMAX_MAX and on the other hand
40 1.1 mrg the output precision or the precision of the parameter with greatest
41 1.1 mrg absolute value is greater than 2*MPFR_EMAX_MAX-4.
42 1.1 mrg
43 1.1 mrg Potential bugs:
44 1.1 mrg
45 1.1 mrg * Possible incorrect results due to internal underflow, which can lead to
46 1.1 mrg a huge loss of accuracy while the error analysis doesn't take that into
47 1.1 mrg account. If the underflow occurs at the last function call (just before
48 1.1 mrg the MPFR_CAN_ROUND), the result should be correct (or MPFR gets into an
49 1.1 mrg infinite loop). TODO: check the code and the error analysis.
50 1.1 mrg
51 1.1.1.4 mrg * Possible bugs with huge precisions (> 2^30) and a 32-bit ABI, in particular
52 1.1.1.4 mrg undetected integer overflows. TODO: use the MPFR_ADD_PREC macro.
53 1.1 mrg
54 1.1 mrg * Possible bugs if the chosen exponent range does not allow to represent
55 1.1 mrg the range [1/16, 16].
56 1.1 mrg
57 1.1 mrg * Possible infinite loop in some functions for particular cases: when
58 1.1 mrg the exact result is an exactly representable number or the middle of
59 1.1 mrg consecutive two such numbers. However for non-algebraic functions, it is
60 1.1 mrg believed that no such case exists, except the well-known cases like cos(0)=1,
61 1.1 mrg exp(0)=1, and so on, and the x^y function when y is an integer or y=1/2^k.
62 1.1 mrg
63 1.1 mrg * The mpfr_set_ld function may be quite slow if the long double type has an
64 1.1 mrg exponent of more than 15 bits.
65 1.1 mrg
66 1.1 mrg * mpfr_set_d may give wrong results on some non-IEEE architectures.
67 1.1 mrg
68 1.1 mrg * Error analysis for some functions may be incorrect (out-of-date due
69 1.1 mrg to modifications in the code?).
70 1.1 mrg
71 1.1 mrg * Possible use of non-portable feature (pre-C99) of the integer division
72 1.1 mrg with negative result.
73