12023-08-22 Vincent Lefevre <vincent@vinc17.net> 2 3 Updated version to 4.2.1. 4 52023-08-18 Vincent Lefevre <vincent@vinc17.net> 6 7 ChangeLog update with tools/update-changelog 8 9 [tools/gitlog-to-changelog] Improve --strip-cherry-pick for this repository. 10 11 Updated version to 4.2.1-rc1. 12 132023-08-18 Vincent Lefevre <vincent@vinc17.net> 14 15 [configure.ac] More checks for the support of old dtags. 16 17 There is an attempt to use the old dtags when LD_LIBRARY_PATH is 18 defined in order to avoid issues with the testsuite when this path 19 contains some compatible version of the MPFR library. However, the 20 old dtags do not work everywhere at run time, even when they appear 21 to work at link time (via -Wl,--disable-new-dtags). 22 23 So, let's restrict to *-*-linux-gnu hosts. Unfortunately, this is 24 not sufficient for Android/Termux, where config.guess currently 25 identifies the host as GNU/Linux (matching *-*-linux-gnu) instead of 26 Android, but the old dtags do not work at run time. So, let's also 27 exclude Termux explicitly (a test to exclude all Android hosts would 28 be better, though). 29 30 Note: in most cases, LD_LIBRARY_PATH is not set, so that there should 31 be no issues in practice. 32 332023-08-18 Vincent Lefevre <vincent@vinc17.net> 34 35 [NEWS] Update for 4.2.1 36 372023-08-18 Vincent Lefevre <vincent@vinc17.net> 38 39 [src/compound.c] Removed obsolete FIXME. 40 41 The implementation changed in 63cc8dfaf4dd93d68bb4f12c0787046f8a525893 42 (cherry picked in 952fb0f5cc2df1fffde3eb54c462fdae5f123ea6). 43 442023-08-17 Vincent Lefevre <vincent@vinc17.net> 45 46 [strtofr.c] Fixed 2 mpfr_strtofr bugs in case of huge negative exponent. 47 48 This fixes the bugs triggered by bug20230606, mentioned at 49 https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00000.html 50 https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00001.html 51 52 These bugs are integer overflows, meaning undefined behavior. 53 In practice, the consequences may be incorrect results. But 54 for the first bug, it has been seen that a GCC optimization 55 makes the bug invisible. 56 57 Note: There are other issues with the code for huge exponents 58 (in strtofr.c and the MPFR_SADD_OVERFLOW macro from mpfr-impl.h). 59 See FIXME from commits 60 aa30bfe3c868640852fa2510b0f228170e39c0c5 61 e06a073c157fe95dd24d16d9fc3eef3781b58795 62 in master. But it is not clear whether the problematic cases can 63 occur in the context of mpfr_strtofr: my attempts to trigger a 64 problematic case failed, so that there is a chance that the code 65 is actually correct; but many parameters are involved, including 66 those based on the internal structure in limbs, so that it is 67 difficult to say for now. A closer analysis needs to be done. 68 Even if correct, the code would need to be cleaned up, proved, 69 and better documented. 70 712023-08-17 Vincent Lefevre <vincent@vinc17.net> 72 73 [tests/tstrtofr.c] Added testcases for mpfr_strtofr integer overflows. 74 75 These bugs occur on inputs with a large negative exponents, such as 76 "0.1E-99999999999999999999". 77 78 A first bug was reported by Michael Jones at 79 https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00000.html 80 81 Second bug mentioned at 82 https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00001.html 83 842023-08-16 Vincent Lefevre <vincent@vinc17.net> 85 86 [doc/mpfr.texi] Updated the month. 87 882023-08-15 Vincent Lefevre <vincent@vinc17.net> 89 90 Formatted output functions: fixed ���+���/space flags on NaN and Inf. 91 92 This is about the documentation and behavior of the mpfr_printf, 93 etc. functions on MPFR numbers (mpfr_t) only, i.e. with the ���R��� 94 type specifier. 95 96 The ���+��� and space flags were ignored on NaN and Inf. While this 97 was loosely documented as such (without an explicit mention of 98 these flags), the GNU MPFR manual also says that the flags have 99 the same meaning as for the standard ���printf��� function. So this 100 was contradictory and regarded as a bug. 101 102 Behaving like the ISO C standard should give less surprise, and 103 this is probably what is expected (better for alignment purpose). 104 105 This was partly discussed at 106 https://sympa.inria.fr/sympa/arc/mpfr/2023-03/msg00003.html 107 (only for NaN and the ���+��� flag at that time). 108 109 * doc/mpfr.texi: corrected the documentation. 110 * src/vasprintf.c: fixed (the code is now simpler since the rule 111 is the same in all cases: real and non-real values). 112 * tests/tsprintf.c: grouped all the tests of NaN and Inf, and 113 added much more tests (by constructing the format string in 114 nested loops instead of just a few hardcoded cases). 115 1162023-08-15 Vincent Lefevre <vincent@vinc17.net> 117 118 [src/vasprintf.c] Coding style. 119 1202023-08-10 Vincent Lefevre <vincent@vinc17.net> 121 122 [configure.ac] For libgmp, replaced AC_CHECK_LIB by our own link test. 123 124 The issue with AC_CHECK_LIB is that it cannot know the prototype of 125 mpz_init. Thus it declares the function without a prototype, which 126 is obsolescent in ISO C, so that the compiler may complain (e.g. 127 with GCC's -Werror=strict-prototypes option, which may be useful to 128 detect bugs in MPFR). Moreover, the call is done with an incorrect 129 prototype, which could also be an issue on some systems (currently, 130 no prototype check is done when linking, but this might change in 131 the future). 132 133 Note also that this new test is more robust, in case GMP changes the 134 symbol name in the future (the API does not need to be changed). 135 136 For the reference: 137 https://sympa.inria.fr/sympa/arc/mpfr/2023-08/msg00003.html 138 1392023-08-10 Vincent Lefevre <vincent@vinc17.net> 140 141 [configure.ac] Do the MPFR_CHECK_MP_LIMB_T_VS_* tests without -lgmp. 142 143 Moved the two tests 144 145 MPFR_CHECK_MP_LIMB_T_VS_LONG 146 MPFR_CHECK_MP_LIMB_T_VS_INTMAX 147 148 before the LIBS="-lgmp $LIBS" as linking with GMP is not needed for 149 these tests (only mp_limb_t is used from gmp.h), and it is actually 150 better not to link with GMP. Indeed, as said for these tests, which 151 use AC_LINK_IFELSE: 152 153 AC_LINK_IFELSE is safer than AC_COMPILE_IFELSE, as it will detect 154 undefined function-like macros (which otherwise may be regarded 155 as valid function calls with AC_COMPILE_IFELSE since prototypes 156 are not required by the C standard). 157 158 So linking with GMP could make a failure disappear in case of a bug 159 somewhere, so that the bug could remain undetected. 160 1612023-08-10 Vincent Lefevre <vincent@vinc17.net> 162 163 [acinclude.m4] Replaced <gmp.h> by "gmp.h" for #include. 164 165 The tests from configure.ac all use #include "gmp.h", and for the 166 MPFR build and tests, gmp.h is also included with #include "gmp.h" 167 (by mpfr-impl.h). For consistency, do the same in acinclude.m4. 168 169 Note: In practice, there should not be a difference, except if there 170 is a gmp.h file somewhere in the MPFR build tree. But this is not 171 supported, and this may break the build or the testsuite (whatever 172 is used in the configure tests). 173 1742023-07-19 Vincent Lefevre <vincent@vinc17.net> 175 176 [src/mpfr-gmp.h] Fix integer overflow when mp_limb_t < int (mini-gmp). 177 178 When mp_limb_t is shorter than int (which is possible with mini-gmp), 179 an integer promotion in udiv_qr_3by2 triggers an integer overflow, 180 detected by testing MPFR with 181 182 ./configure --with-mini-gmp=/path/to/mini-gmp CC=gcc-13 \ 183 CFLAGS="-O2 -fsanitize=undefined -fno-sanitize-recover 184 -DMINI_GMP_LIMB_TYPE=short" 185 186 (many tests fail). 187 188 Note that this is not detected by GCC 12 and before, probably due to 189 an optimization bug that hides the UBsan error. 190 191 Moreover, mini-gmp currently has the same bug in gmp_udiv_qr_3by2, 192 but also in gmp_udiv_qrnnd_preinv; it needs to be fixed too in order 193 to avoid the failures in the MPFR tests. 194 1952023-07-19 Vincent Lefevre <vincent@vinc17.net> 196 197 [tests/trint.c] C2x compat: replaced function without a prototype. 198 199 The second parameter of test_fct was "int (*g)()", i.e. a pointer to 200 a function without a prototype, because 2 kinds of prototypes can be 201 used: 202 * one with args (mpfr_ptr, mpfr_srcptr); 203 * one with args (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t), 204 but only for mpfr_rint. 205 This was not a problem thanks to the test "g == &mpfr_rint", i.e. 206 we knew which one to use. However, as the Clang 16 warning message 207 says for -Wdeprecated-non-prototype: 208 "passing arguments to a function without a prototype is deprecated 209 in all versions of C and is not supported in C2x". 210 211 The best way to fix this is to use the prototype with 2 arguments 212 (mpfr_ptr, mpfr_srcptr) for the parameter, as this is the general 213 case. All we need to do is to cast &mpfr_rint to this prototype 214 (this appears only twice). 215 216 As these casts trigger the -Wcast-function-type warning when enabled, 217 let's explicitly disable this warning for GCC and Clang in versions 218 where it has been introduced. 219 2202023-07-18 Vincent Lefevre <vincent@vinc17.net> 221 222 [tests/tfpif.c] Removed "fclose (fh);" under "if (fh == NULL)". 223 224 The fopen() failed, so fclose() is not needed, and this is even UB. 225 226 Issue reported by Jerry James: 227 https://sympa.inria.fr/sympa/arc/mpfr/2023-07/msg00002.html 228 as GNU libc recently added a "nonnull" function attribute: 229 https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=71d9e0fe766a3c22a730995b9d024960970670af 230 2312023-07-12 Vincent Lefevre <vincent@vinc17.net> 232 233 [doc/mpfr.texi] Updated the month. 234 235 [src/inp_str.c] Resolved the FIXME on a deprecated use of ungetc. 236 2372023-07-12 Vincent Lefevre <vincent@vinc17.net> 238 239 Fixed mpfr_strtofr bug in parse_string when isspace(0) is true. 240 241 When isspace(0) is true (allowed by ISO C for non-"C" locales), '\0' 242 would be skipped if part of the leading whitespace. But it must be 243 regarded as the terminating null character, from the definition of 244 a string (before the notion of whitespace is involved). So let's 245 stop explicitly on '\0'. 246 247 Note: in such locales (Mutt's lib.h suggests that some systems are 248 affected, but this was in 1998), this is a security vulnerability, 249 because characters after the terminating null character are read to 250 determine the result. 251 2522023-07-12 Vincent Lefevre <vincent@vinc17.net> 253 254 [inp_str.c] mpfr_inp_str: fixed the handling of '\0' in the word. 255 256 When '\0' is not a whitespace character (which is almost always the 257 case in practice), it was not handled correctly. For instance, if the 258 word is the sequence { '1', '\0', '2' }, the string "1" was passed to 259 mpfr_set_str because '\0' is regarded as a terminating null character, 260 and one was getting a valid number while '\0' in a word is necessarily 261 invalid. This is fixed by putting '*' at the beginning of the string, 262 which is thus necessarily invalid. 263 264 This fixes the failure after c9523bc6fb11c8eefc75524e947e5eb81e682675 265 (4642e68fb3cd6793a51537cfc86a7cb3ef1c0a4c in the 4.2 branch). 266 2672023-07-12 Vincent Lefevre <vincent@vinc17.net> 268 269 [tests/inp_str.dat] Make the word that contains '\0' look like a number. 270 271 Changed ".\0." to "1\01" (\0 being the null character) in order to 272 trigger a failure with the current mpfr_inp_str code. The issue is 273 that '\0' makes the word look like the string "1", the '\0' being 274 regarded as a terminating null character. This is incorrect as '\0' 275 is part of the full word. 276 2772023-07-12 Vincent Lefevre <vincent@vinc17.net> 278 279 [manual] Clarified the return value of mpfr_inp_str. 280 2812023-07-12 Vincent Lefevre <vincent@vinc17.net> 282 283 Added a '\0' test for mpfr_inp_str. 284 285 After ensuring that isspace(0) is false, make sure that '\0' is 286 handled as a normal non-whitespace character. 287 288 Also note that inp_str.dat does not end with a newline character 289 on purpose, in order to check that a number at the end of the file 290 (with no whitespace after it) is handled correctly. 291 2922023-07-12 Vincent Lefevre <vincent@vinc17.net> 293 294 Improved the mpfr_inp_str tests. 295 2962023-07-12 Vincent Lefevre <vincent@vinc17.net> 297 298 [tests/inp_str.dat] Added the other standard whitespace characters. 299 300 These are: 301 * space (' '); 302 * ^I (horizontal tab '\t'); 303 * ^J (newline '\n', already there); 304 * ^K (vertical tab '\v'); 305 * ^L (form feed '\f'); 306 * ^M (carriage return '\r'). 307 3082023-07-12 Vincent Lefevre <vincent@vinc17.net> 309 310 [MPFR manual] Corrected description of mpfr_inp_str. 311 312 The description seemed to assume that there was leading and trailing 313 whitespace (due to "between whitespace"). Also clarify what whitespace 314 is: defined by isspace(), which depends on the current locale. 315 3162023-06-26 Vincent Lefevre <vincent@vinc17.net> 317 318 [tests/tfpif.c] Workaround for GCC bug 106155. 319 320 This GCC bug is: 321 [12/13/14 Regression] spurious "may be used uninitialized" warning 322 323 This bug appeared in GCC 12, but it is more serious in GCC 13 324 (at least for tfpif.c), which warns also at -O2: 325 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106155#c12 326 327 Silencing this warning avoids an error when -Werror is used. 328 3292023-06-26 Vincent Lefevre <vincent@vinc17.net> 330 331 [src/pow.c] Typo detected by codespell. 332 3332023-05-26 Vincent Lefevre <vincent@vinc17.net> 334 335 [tests/tsprintf.c] Fixed large_prec_for_g with 32-bit mpfr_intmax_t. 336 337 If mpfr_intmax_t is a 32-bit type (meaning that int is a 32-bit type 338 too), then allow a failure on "%.2147483648Rg" (return value < 0), 339 due to a (reasonable) limit on the current implementation. 340 341 This can currently be tested with 342 -std=c90 -Werror -pedantic -Wformat -Wno-error=overlength-strings 343 3442023-05-25 Vincent Lefevre <vincent@vinc17.net> 345 346 [tests/tsprintf.c] large_prec_for_g: C++ compatibility. 347 348 Note that after this change, the test is still meaningful. 349 3502023-05-23 Vincent Lefevre <vincent@vinc17.net> 351 352 [tests/tsprintf.c] Improved large_prec_for_g even more. 353 3542023-05-23 Vincent Lefevre <vincent@vinc17.net> 355 356 [tests/tsprintf.c] A few more tests for large_prec_for_g. 357 358 ... to really check that the results are correct. 359 3602023-05-22 Vincent Lefevre <vincent@vinc17.net> 361 362 [tests/trec_sqrt.c] Updated bad_case3() test. 363 364 Also check the result, though this is not the real purpose of 365 this test (the purpose is to detect a stack overflow, which 366 just makes the program crash). 367 3682023-05-22 Vincent Lefevre <vincent@vinc17.net> 369 370 [tests/trec_sqrt.c] Added bad_case3() test. 371 372 Simple hardcoded test for the stack overflow bug fixed on 2023-04-17 373 in commits 374 270f4df6b3a49caae1cf564dcdc1c55b1c5989eb (master) 375 934dd8842b4bdeb919a73123203bc8ce56db38d1 (4.2 branch) 376 377 Otherwise, this bug was triggered by a generic bad_cases() test, 378 based on random values. 379 3802023-05-22 Vincent Lefevre <vincent@vinc17.net> 381 382 [tests.c] In bad_cases(), improved alignment in debug messages. 383 384 Needed as some trec_sqrt tests use a precision with up to 6 digits. 385 3862023-05-17 Vincent Lefevre <vincent@vinc17.net> 387 388 [tcompound.c] Updated comment for bug_20230517. 389 390 Similar to b8ee84929ef6caf66d7c694cf74534b7190339c5 in master. 391 3922023-05-17 Vincent Lefevre <vincent@vinc17.net> 393 394 [compound.c] Improved tests and corresponding comment. 395 396 [compound.c] Avoid a possible integer overflow; other improvements. 397 3982023-05-17 Vincent Lefevre <vincent@vinc17.net> 399 400 [tcompound.c] Added bug_20230517 (integer overflow in compound.c). 401 402 and updated comment for the 4.2 branch. 403 4042023-05-16 Vincent Lefevre <vincent@vinc17.net> 405 406 [src/vasprintf.c] Fixed bug triggered by the large_prec_for_g test. 407 408 Bug fixes in partition_number(): 409 * Fixed the type of the variable `threshold`: as this variable may 410 contain spec.prec, it needs to be of type mpfr_intmax_t. 411 This was the cause of the "MPFR assertion failed: threshold >= 1" 412 (or the incorrect size when assertions are not checked) with the 413 large_prec_for_g test. 414 * Also make sure that the 4th argument given to mpfr_get_str fits 415 in a size_t (if it doesn't, return with a failure, as done when 416 reaching other environmental limits). 417 In practice, this could be an issue only with a 32-bit size_t and 418 mpfr_exp_t on more than 32 bits. 419 4202023-05-16 Vincent Lefevre <vincent@vinc17.net> 421 422 [tests/tsprintf.c] Added large_prec_for_g, which makes MPFR crash. 423 424 On a 64-bit Linux machine, the case %.2147483648Rg yields an incorrect 425 size computation and MPFR wants to allocate 18446744071562070545 bytes. 426 This case should either succeed or fail as reaching an environmental 427 limit like with glibc (note that the precision does not fit in an int). 428 4292023-05-16 Vincent Lefevre <vincent@vinc17.net> 430 431 [manual] Detailed mpfr_compound_si description (special cases). 432 433 The MPFR manual should be self-contained. So, let's describe 434 the special cases of mpfr_compound_si that do not follow the 435 usual rules (or are ambiguous), instead of just referring to 436 the IEEE 754 standard. 437 4382023-05-16 Vincent Lefevre <vincent@vinc17.net> 439 440 [compound.c] Fixes concerning the overflow and underflow detection. 441 442 Note: It is not clear whether overflow and underflow detection is 443 now correct. There may still be potential issues, but currently, 444 after these fixes, no tests yield any failure (however, we do not 445 test some of the most problematic cases yet; this should be a 446 future improvement of ofuf_thresholds in the master branch). 447 448 Note: compound.c now corresponds to the version in master. 449 4502023-05-16 Vincent Lefevre <vincent@vinc17.net> 451 452 [tcompound.c] Added various tests. 453 454 * Added bug_20230206, based on a bug report by Patrick P��lissier. 455 * Implemented the inverse function x^(1/n) - 1 of the compound function 456 on non-special cases: useful to build and check hard-to-round cases 457 and test the behavior close to the overflow and underflow thresholds. 458 * Check hard-to-round cases for n = 2, 3, 4, 5, 17, 120 (like in tpow.c) 459 and also call the generic tests for these values. 460 * Added bug_20230211 (buggy overflow detection for 32 bits after the 461 fix of bug_20230206 in master). 462 463 and updated two comments for the 4.2 branch. 464 465 Note: Every change has been cherry picked from master, except a 466 TODO comment and the ofuf_thresholds() calls (feature not yet in 467 the 4.2 branch). And bug_20230206 has not been fixed yet in the 468 4.2 branch. 469 4702023-05-15 Vincent Lefevre <vincent@vinc17.net> 471 472 [tests.c] In bad_cases(), handle the inex_inv case better. 473 474 The "f exact while f^(-1) inexact" case is actually almost the same 475 as the "inverse doesn't match" case. So, handle it in the same way, 476 avoiding a fatal error (which would be bad for the non-developers): 477 a few occurrences of this case should be regarded as normal, and if 478 this occurs too often, this will be detected like the other case 479 when the MPFR_CHECK_BADCASES environment variable is set. 480 481 This is useful for future bad_cases() calls. 482 4832023-05-12 Vincent Lefevre <vincent@vinc17.net> 484 485 [src/pow.c] Fixed a corner case in mpfr_pow_general (bug20230427). 486 487 This fixes the bug triggered by bug20230427 added in commit 85bc7331c: 488 bug20230427 triggers another bug in mpfr_pow_general, which 489 occurs in destination precision 1 in the particular case of 490 rounding to nearest, z * 2^k = 2^(emin - 2) and real result 491 larger than this value. 492 493 This corresponds to a particular hunk of a diff from master, 494 or with a cherry-pick from commits 495 ef31bb98521ecf7d100593346e2f4d7a7724c573 496 27bc582645e513200c56c99a9da83eb4e47c669a 497 e1f9f14a3829081503c027f4d38eb51778da26e6 498 ff5012b61d5e5fee5156c57b8aa8fc1739c2a771 499 3b63024c640181cb5fe7fd87bac94a8f942a07da 500 4f5de980be290687ac1409aa02873e9e0dd1a030 501 467b17025a5b05e888ed7117d6730ac0954f01cb 502 restoring the changes not related to this hunk. 503 5042023-05-12 Vincent Lefevre <vincent@vinc17.net> 505 506 [src/pow.c] Fixed error bound in mpfr_pow_general (bug20230213). 507 508 This fixes the bug triggered by bug20230213 added in commit 85bc7331c: 509 bug20230213 triggers a bug in mpfr_pow_general, where the 510 computation of the error term is incorrect when there has 511 been an intermediate underflow or overflow (k_non_zero is 512 true); the error analysis is correct, but the associated 513 code is not (due to the change of the value of a variable). 514 5152023-05-12 Vincent Lefevre <vincent@vinc17.net> 516 517 [tests/texp10.c] Added bug20230213 and bug20230427 tests. 518 519 * bug20230213 triggers a bug in mpfr_pow_general, where the 520 computation of the error term is incorrect when there has 521 been an intermediate underflow or overflow (k_non_zero is 522 true); the error analysis is correct, but the associated 523 code is not (due to the change of the value of a variable). 524 * bug20230427 triggers another bug in mpfr_pow_general, which 525 occurs in destination precision 1 in the particular case of 526 rounding to nearest, z * 2^k = 2^(emin - 2) and real result 527 larger than this value. 528 529 Note: The code has been copied from master (and because of changes 530 of other parts of the code by commits in master, cherry-picking 531 was impossible or much more complex). These bugs have been fixed 532 in master, but these fixes will be provided in the 4.2 branch by 533 separate commits in order to facilitate testing (e.g., to check 534 that one gets failures without these fixes). 535 536 Both bugs were found by the current ofuf_thresholds tests in master 537 (but there are currently issues with these tests). 538 5392023-05-12 Vincent Lefevre <vincent@vinc17.net> 540 541 Added bad_cases tests for mpfr_exp2, mpfr_exp10, mpfr_log2, mpfr_log10. 542 543 [tests/tui_pow.c] Added generic tests. 544 545 Added /treldiff to tests/.gitignore 546 5472023-05-12 Vincent Lefevre <vincent@vinc17.net> 548 549 [tests/tui_pow.c] Some small corrections. 550 551 * Improved organization and style. 552 * Replaced output to stderr by output to stdout (as usual). 553 * Added missing "\n" at the end of 2 printf strings. 554 5552023-05-05 Vincent Lefevre <vincent@vinc17.net> 556 557 [tests/tset_float128.c] check_special(): output values in error messages. 558 5592023-05-04 Vincent Lefevre <vincent@vinc17.net> 560 561 [doc/mpfr.texi] Updated the month. 562 563 [src/Makefile.am] Updated -version-info to 8:1:2 for MPFR 4.2.1. 564 5652023-05-04 Vincent Lefevre <vincent@vinc17.net> 566 567 Updated version to 4.2.1-dev (with tools/update-version). 568 569 This should have been done just after 4.2.0 was published, 570 i.e. just after the 4.2.0 tag, but I forgot. 571 5722023-05-04 Vincent Lefevre <vincent@vinc17.net> 573 574 Added treldiff.c test, assuming that mpfr_reldiff behaves as documented. 575 576 Basically, mpfr_reldiff is tested with all special numbers and some 577 regular ones, with various precisions and all the rounding modes 578 (including MPFR_RNDF since in practice, the implementation cannot 579 exploit it to give failures). The result is just compared with the 580 basic algorithm (as documented), which does not use any optimization 581 (i.e. it does not treat special numbers in a particular way): the 582 formula is just computed using the precision of the destination and 583 the provided rounding mode for all operations (thus, in general, 584 this mpfr_reldiff function is not correctly rounded). 585 586 This test would detect the bugs on special values that have been fixed 587 in 81e4d4427eed0404292ac69c17f986a6cb640562. 588 5892023-05-04 Vincent Lefevre <vincent@vinc17.net> 590 591 [src/reldiff.c] Fixed mpfr_reldiff on special values. 592 593 The mpfr_reldiff function, which computes |b-c|/b, was buggy on 594 special values, e.g. on the following (b,c) values: 595 * (+Inf,+Inf) gave ��0 instead of NaN (like NaN/Inf). 596 * (+0,+0) gave 1 instead of NaN (like 0/0). 597 * (+0,1) gave 1 instead of Inf (like 1/0). 598 599 The sign of 0 for (+Inf,+Inf) or (-Inf,-Inf) was not set, i.e. it 600 was just the sign of the destination before the call. This made 601 the "reuse" test fail after its update to check the sign of zero 602 (commit e6d47b8f5ab666e658e05fe282e3490a06c0278e), as the results 603 were not consistent. 604 605 For b = 0, there was a comment "reldiff = abs(c)/c = sign(c)", which 606 mixed up b and c (one should divide by b, not by c), and this could 607 explain some bugs. 608 609 Note that this comment (and associated code), if corrected, seemed to 610 imply that for c = 0 and b finite (and non-zero?), the intent was to 611 return sign(b). However, this does not follow the documentation, which 612 says that the formula is just computed using the precision of the 613 destination and the provided rounding mode for all operations. So the 614 final result may be affected by intermediate roundings, while sign(b) 615 assumes that the function is correctly rounded, which is not the case 616 for this function (just there for compatibility with MPF). Deviating 617 from the documentation in some cases could break some properties (like 618 monotonicity?). 619 620 These bugs were not found because mpfr_reldiff is not tested at all, 621 except by "reuse", which just checks some consistency when a variable 622 is reused for the destination. 623 6242023-05-04 Vincent Lefevre <vincent@vinc17.net> 625 626 [tests/reuse.c] Check the sign of zero; other improvements. 627 628 * Replaced the static mpfr_compare by "! SAME_VAL" to do a complete 629 comparison of MPFR numbers. In particular, this checks the sign of 630 zero, revealing a bug in mpfr_reldiff (failure 0 vs -0). 631 * More consistent output of errors (use of mpfr_dump for ref and res 632 in all cases). 633 * Code style. 634 6352023-04-20 Vincent Lefevre <vincent@vinc17.net> 636 637 [tests/tsprintf.c] Updated comment for snprintf_size. 638 639 Like commit 524c7bf4ff4f0dc1c83bc9a36d621a4a9607ee3b in master, 640 but without the "Code reworked..." line, as this isn't done in 641 the 4.2 branch. 642 6432023-04-17 Vincent Lefevre <vincent@vinc17.net> 644 645 [tests/tsprintf.c] Update about the glibc 2.37 bug. 646 647 This updates commit 78ff7526dea103f73acc98d9a9ffa7429050c0dd. 648 6492023-04-17 Vincent Lefevre <vincent@vinc17.net> 650 651 Fixed possible stack overflow in mpfr_rec_sqrt + non-regression test. 652 653 * src/rec_sqrt.c: use a standard Ziv loop. 654 * tests/trec_sqrt.c: added a non-regression test with bad_cases(). 655 656 Details: 657 658 The issue is due to many allocations in the stack (with alloca(), 659 via MPFR_TMP_LIMBS_ALLOC) on cases that are very hard to round (from 660 an analysis on a testcase given by Fredrik Johansson, not included 661 here) with a not too large destination precision: many iterations 662 are needed due to a specific Ziv loop where the working precision 663 is increased additively, and it is not possible to free the data 664 allocated in the previous iterations. 665 666 The fix is to use a standard Ziv loop, as it increases the working 667 precision multiplicatively instead of additively, so that it needs 668 much fewer iterations in such cases. This should also make the code 669 much faster in such cases. 670 671 This issue was not detected by bad_cases() in tests/trec_sqrt.c 672 because to be able to reproduce it, one needs a much larger precision 673 than the ones tested with the chosen parameters. 674 675 A new bad_cases() instance, with a large enough precision for the 676 input (py = 9999, psup = 120000, giving px = py + psup = 129999), 677 is added here in order to be able to reproduce the failure. 678 679 The testcase given by Fredrik Johansson is not included here because 680 it uses a very large string for the input (the point of bad_cases() 681 is to generate such an input automatically). 682 6832023-04-15 Vincent Lefevre <vincent@vinc17.net> 684 685 [src] Since mpfr_prec_t is signed, changed %Pu to %Pd. 686 687 Note: Even the mpfr_prec_t is not supposed to contain negative values 688 (at least in these cases), this may still be useful in case of bugs. 689 6902023-04-14 Vincent Lefevre <vincent@vinc17.net> 691 692 [doc/mpfr.texi] Updated the month. 693 6942023-04-14 Vincent Lefevre <vincent@vinc17.net> 695 696 [manual] Improved example on how to print a mpfr_prec_t value. 697 698 mpfr_prec_t is signed, so that it is better to use %Pd than %Pu. 699 7002023-04-12 Vincent Lefevre <vincent@vinc17.net> 701 702 [src/mpfr-thread.h] Output a message in case of lock/unlock failure. 703 704 The message is output just before abort(), so that one can know 705 the cause of the abort(). 706 707 Tested with --enable-shared-cache CC=i686-w64-mingw32-gcc-posix 708 (which has the effect to enable POSIX threads inside MPFR via 709 AX_PTHREAD, with MinGW), where 710 711 MPFR_LOCK_DECL(mpfr_lock_memory) 712 int main (void) 713 { 714 MPFR_LOCK_WRITE(mpfr_lock_memory); 715 return 0; 716 } 717 718 fails with the "MPFR lock failure" message and exit status 3 due to 719 the abort(). Note that there is no failure with GNU/Linux. 720 7212023-03-22 Vincent Lefevre <vincent@vinc17.net> 722 723 [doc/mpfr.texi] Updated the month. 724 725 [manual] Detailed mpfr_set_str a bit more. 726 7272023-02-28 Vincent Lefevre <vincent@vinc17.net> 728 729 [tests] Added/improved tests for the log, log2 and log10 functions. 730 731 * Added log(1) test. 732 * For the special tests of these functions: test in all rounding modes 733 and use MPFR_IS_ZERO(x) rather than mpfr_cmp_ui(x,0) to exclude NaN. 734 7352023-02-21 Vincent Lefevre <vincent@vinc17.net> 736 737 Fixed mpfr_ui_pow_ui infinite loop in case of overflow, with testcases. 738 739 * src/ui_pow_ui.c: 740 - Cleanup. In particular, renamed a variable as this was confusing: 741 one usually uses y = f(x), but here it was x = f(y,n). Let's use 742 x = f(k,n) since here, both arguments are integers. 743 - Added mpfr_ui_pow_ui logging. 744 - Handle the +Inf case in the Ziv iteration. 745 This is done by calling mpfr_pow_z (this should be a bit more 746 efficient than calling mpfr_pow_ui, which would eventually call 747 mpfr_pow_z to handle the overflow). 748 Note that mpfr_pow_z avoids spurious overflows by internally 749 rounding toward 1 (for positive results). This might be an 750 alternative solution here to avoid calling mpfr_pow_z. 751 * tests/tlog10.c: added bug20230213 test: infinite loop in mpfr_log10, 752 which was occurring before the above bug fix. 753 * tests/tui_pow.c: added testcase for this mpfr_ui_pow_ui bug. 754 7552023-02-14 Vincent Lefevre <vincent@vinc17.net> 756 757 For -dev versions, enable timeout support by default (when possible). 758 759 * configure.ac: 760 - added dev_version variable, set to 1 for -dev versions; 761 - updated --enable-tests-timeout handling; 762 - use $dev_version for a test that already considers -dev versions. 763 * acinclude.m4: 764 - handle absent --enable-tests-timeout option and case "yes". 765 7662023-02-03 Vincent Lefevre <vincent@vinc17.net> 767 768 [tests/tsprintf.c] Added a comment about a failure with glibc 2.37. 769 770 Klaus Dittrich reported in the MPFR mailing-list that the modified 771 test from commit 4f03d40b5a5ceeb3126dc51c3511bdceef3bab19 was still 772 failing with the glibc git. But this time, this is entirely a bug 773 in glibc, present in glibc 2.37: 774 775 https://sourceware.org/bugzilla/show_bug.cgi?id=30068 776 777 with even a possible buffer overflow in sprintf (as I guessed 778 in Comment 2 and was confirmed later). ��� CVE-2023-25139 779 780 Thus the test still fails with glibc 2.37, and the future fix of 781 the glibc vulnerability should also fix this failure. 782 7832023-02-01 Vincent Lefevre <vincent@vinc17.net> 784 785 [tests/{tfprintf.c,tprintf.c}] Fix when decimal_point > 1 byte. 786 787 These tests were failing in locales where localeconv()->decimal_point 788 takes several bytes, such as in the ps_AF locale under Linux, where 789 decimal_point is U+066B ARABIC DECIMAL SEPARATOR, which takes 2 bytes 790 (d9 ab, as encoded in UTF-8). 791 792 Note: A multibyte decimal-point is currently honored only with 793 native C types (via the C library), so that the length of the 794 decimal-point had to be taken into account only for a small number 795 of tests. Once a multibyte decimal-point is supported for the MPFR 796 numbers ("R" type specifier), the expected lengths in many tests 797 will have to be updated. See the code about MPFR_DECIMAL_POINT in 798 "src/mpfr-impl.h". 799 8002023-02-01 Vincent Lefevre <vincent@vinc17.net> 801 802 [tests] Consistency in the error messages. 803 8042023-02-01 Vincent Lefevre <vincent@vinc17.net> 805 806 [src/mpfr-impl.h] Updated FIXME comment for decimal_point/thousands_sep. 807 808 * Added info for the fr_FR.UTF-8 and ps_AF locales. 809 * Removed the sentence about the C standard (since multibyte characters 810 are used for decimal_point and thousands_sep in practice, the term 811 "character" could have a broader mean, e.g. the abstract one in 3.7). 812 813 This completes commit 00ad47c8ec4ba31ad0afd067286f2fab8d7283ff. 814 8152023-01-11 Vincent Lefevre <vincent@vinc17.net> 816 817 [tests/tsprintf.c] Modified a buggy test of the thousands separator. 818 819 The test 820 821 check_vsprintf ("+01,234,567 :", "%0+ -'13.10Pd:", (mpfr_prec_t) 1234567); 822 823 is based on the output from glibc up to 2.36, which is incorrect: 824 825 https://sourceware.org/bugzilla/show_bug.cgi?id=23432 826 827 The GNU C Library has apparently been partially fixed in its Git 828 repository for the future 2.37, since a tsprintf failure has been 829 reported (this is a bug in this test, not in the MPFR library): 830 831 https://sympa.inria.fr/sympa/arc/mpfr/2023-01/msg00001.html 832 833 So, modified the test to avoid the particular case of leading zeros 834 due to the precision field larger than the number of digits. This 835 case has already been tested without the thousands separator (where 836 there are no issues with the C libraries), so that we do not miss 837 much testing. Added a comment explaining the issue and a possible 838 solution for future testing of this particular case (if need be). 839 8402023-01-06 Vincent Lefevre <vincent@vinc17.net> 841 842 [BUGS] Added a note for a bug that cannot occur in practice. 843 844 [doc/README.dev] Updated "To make a release". 845 846 ChangeLog update with tools/update-changelog 847 848 Updated version to 4.2.0. 849 8502023-01-05 Vincent Lefevre <vincent@vinc17.net> 851 852 [src/zeta.c] For s < 1/2, use mpfr_sinpi now that it is available. 853 854 This replaces the use of mpfr_sin with a multiplication by �� and 855 resolves a potential (but very unlikely) underflow issue; a comment 856 is updated, with an explanation about that. 857 8582023-01-05 Vincent Lefevre <vincent@vinc17.net> 859 860 Updated copyright notice for all the Makefile.am files. 861 862 To be similar to the other files, added: 863 * Contributed by the AriC and Caramba projects, INRIA. 864 * This file is part of the GNU MPFR Library. 865 866 (These Makefile.am files still have their special license.) 867 8682023-01-05 Vincent Lefevre <vincent@vinc17.net> 869 870 Copyright notice update: added 2023. 871 872 Command used: 873 perl -pi -e 's/ (\d{4}-)?(2022)(?= Free Software)/ 874 " ".($1||"$2-").($2+1)/e' **/*(^/) 875 under zsh, reverting doc/texinfo.tex (copied from GNU Texinfo) 876 and the tools/mbench directory (not distributed with MPFR). 877 Removed 2022 from the example in the doc/README.dev file. 878 8792023-01-04 Vincent Lefevre <vincent@vinc17.net> 880 881 [src/zeta.c] Updated a comment about mpfr_sinpi. 882 883 [doc/mpfr.texi] Updated the month. 884 8852022-12-17 Vincent Lefevre <vincent@vinc17.net> 886 887 [tools/mpfrlint] Updated the __gmp_ test. 888 889 * No longer exclude '^tests/tabort_defalloc': this is no longer needed 890 since commit 41bed90365fd1296cd05f49c813ab0a0b151a62e in 2017. 891 * Exclude a new comment. 892 8932022-12-15 Vincent Lefevre <vincent@vinc17.net> 894 895 [tests/tsprintf.c] Added a comment about a possible test failure. 896 897 In short, if the error is like 898 repl-vsnprintf.c:389: GNU MP assertion failed: len < total_width 899 this is a GMP (or MPIR) issue in __gmp_replacement_vsnprintf. 900 901 References: 902 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00001.html 903 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00027.html 904 https://gmplib.org/list-archives/gmp-bugs/2022-October/005200.html 905 9062022-12-15 Vincent Lefevre <vincent@vinc17.net> 907 908 Documentation: update about requirements for building MPFR. 909 910 * doc/mpfr.texi: mentioned C++ compilers and the potential issue 911 with type punning via union. 912 * INSTALL: completed (0) to be similar to what doc/mpfr.texi says. 913 9142022-12-15 Vincent Lefevre <vincent@vinc17.net> 915 916 [tools/update-version] Fixed replacements in "INSTALL". 917 918 Due to commit 4885b57add174f390eff29abe14d12fb5ebd6a61, only the first 919 of the 4 replacements in INSTALL was done. 920 9212022-12-14 Vincent Lefevre <vincent@vinc17.net> 922 923 [configure.ac] Added a comment about a possible AM_PROG_AR failure. 924 925 The reason is that on some platforms, GMP chooses a non-default mode 926 (a.k.a. ABI). MPFR has some workaround thanks to GMP_CC and GMP_CFLAGS 927 provided by GMP, but this may not be sufficient, e.g. on power-aix. In 928 such a case, the user needs to either force GMP to use the default mode 929 or provide an AR variable for MPFR's configure; see INSTALL file. 930 9312022-12-13 Vincent Lefevre <vincent@vinc17.net> 932 933 ChangeLog update with tools/update-changelog 934 935 [doc/README.dev] "To make a release": update. 936 937 [NEWS] Update for the 4.2.0 release: binary compatibility. 938 939 [doc/README.dev] "To make a release": update about <branch>-root tag. 940 941 [README] Updated URL of the README.dev file (for the 4.2 branch). 942 943 Updated version to 4.2.0-rc1. 944 945 ChangeLog update with tools/update-changelog 946 947 [src/Makefile.am] Updated -version-info to 8:0:2 for MPFR 4.2.0. 948 949 [manual] Section "API Compatibility": lexicographic order. 950 9512022-12-13 Vincent Lefevre <vincent@vinc17.net> 952 953 [NEWS,doc/mpfr.texi] Clarification for mpfr_pown. 954 955 Note: Though implemented as a macro, it is mainly documented as a 956 function (not as a macro) because it cannot be distinguished from 957 a function (for instance, one can take the function pointer). 958 9592022-12-13 Vincent Lefevre <vincent@vinc17.net> 960 961 [tests/tget_flt.c] Added a comment. 962 9632022-12-13 Vincent Lefevre <vincent@vinc17.net> 964 965 [doc/README.dev] Updated a pathname. 966 967 This should have been done with the source reorganization on 2010-08-17 968 (see commit a6c9580d75b967e0d121d606edf03515ada45a7a). 969 9702022-12-12 Vincent Lefevre <vincent@vinc17.net> 971 972 Updated doc/texinfo.tex to 2022-12-10.11 973 974 The only change concerning MPFR is that in the PDF manual, the 975 section titles in the table of contents are now clickable. 976 9772022-12-12 Vincent Lefevre <vincent@vinc17.net> 978 979 [tests/tstdint.c] Added missing conditional config.h inclusion. 980 981 The consequence of the missing inclusion is that on build systems that 982 need config.h (some MS Windows ones?), this test would be skipped. 983 9842022-12-12 Vincent Lefevre <vincent@vinc17.net> 985 986 [doc/README.dev] Clarification about the need of config.h inclusion. 987 988 [tests/tstdint.c] Updated comment. 989 9902022-12-12 Vincent Lefevre <vincent@vinc17.net> 991 992 [tests/tstdint.c] Added a comment. 993 994 In short, this test allows one to detect that mpfr.h can be included 995 without any other inclusion before. For instance, it can detect any 996 unprotected use of FILE in the mpfr.h header file. 997 9982022-12-12 Vincent Lefevre <vincent@vinc17.net> 999 1000 [doc/mpfr.texi] Added comment about the update of the version string. 1001 10022022-12-12 Vincent Lefevre <vincent@vinc17.net> 1003 1004 Revert "changed %.8e into %a to avoid potential decimal output bug" 1005 1006 This reverts commit e18ebe062042c01ad44b238df212f229bd251cd6. 1007 1008 We currently still support C90 (in particular, here this concerns 1009 the C library of the platform). 1010 10112022-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1012 1013 changed %.8e into %a to avoid potential decimal output bug 1014 1015 (cf https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00015.html) 1016 10172022-12-12 Vincent Lefevre <vincent@vinc17.net> 1018 1019 [src/mpfr-cvers.h] Added a comment about (major,minor) tests. 1020 10212022-12-12 Vincent Lefevre <vincent@vinc17.net> 1022 1023 [tests/mpfr-test.h] Improved the change done a few hours earlier. 1024 1025 The code introduced by commit 558a246e612fa230623fb0dfa0570b1c626a103c 1026 was changing the conditions under which IGNORE_CPP_COMPAT is defined 1027 (to ignore -Wc++-compat with a GCC pragma). Let's simplify it by using 1028 our __MPFR_GNUC() macro. The only possible change of behavior is that 1029 this excludes Intel's compiler (which is probably better as testing 1030 the GCC version on Intel's compiler doesn't make sense). 1031 1032 Note concerning the behavior of Intel icx 2021.3.0 under Linux: Before 1033 the above commit, it was not excluded; but after this above commit, it 1034 was excluded as it identifies itself as GCC 4.2.1 (like Clang). With 1035 this new change, it is still excluded. Anyway, it ignores -Wc++-compat 1036 and doesn't complain on the GCC pragmas, so the above choice currently 1037 doesn't matter. 1038 10392022-12-11 Vincent Lefevre <vincent@vinc17.net> 1040 1041 Avoid a testsuite build failure with GCC older than 4.6. 1042 1043 In tests/mpfr-test.h, we must not define IGNORE_CPP_COMPAT for 1044 GCC < 4.6 as it does not allow "#pragma GCC diagnostic" inside 1045 functions. Moreover, let's define it for all Clang versions, 1046 including MS Windows (where __GNUC__ is not defined). 1047 1048 Changes based on information and a patch by Bruno Haible: 1049 https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00007.html 1050 10512022-12-09 Vincent Lefevre <vincent@vinc17.net> 1052 1053 [autogen.sh] Improved comment about the INSTALL file. 1054 1055 [autogen.sh] Updated comment about the INSTALL file. 1056 10572022-12-07 Vincent Lefevre <vincent@vinc17.net> 1058 1059 [Makefile.am] Corrected a note about version-ext.sh in EXTRA_DIST. 1060 1061 In short, since commit a6e9d69047a358bfd1aaa1418d9999b8abe0bb62, 1062 version-ext.sh should no longer be needed in EXTRA_DIST because 1063 it will no longer be executed. But since this script is small, 1064 we distribute it just in case it would be used. 1065 10662022-12-06 Vincent Lefevre <vincent@vinc17.net> 1067 1068 Fixed version-ext.sh usage, avoiding "make check" failure and incorrect 1069 version information. 1070 1071 The use of version-ext.sh could be incorrect when the MPFR source tree 1072 was in a Git working tree: 1073 * "make check" could fail in some cases, see the bug report by 1074 Trevor Spiteri: 1075 https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00000.html 1076 * Version information output by "make check" could be incorrect. 1077 1078 Changes: 1079 * tests/Makefile.am: For output_info, we now also check whether 1080 $(top_srcdir)/.git is readable in order to avoid escaping the 1081 MPFR source tree. In particular, if one extracts an MPFR tarball 1082 within a Git working tree (e.g. after "make dist"), then running 1083 "make check" in this extracted source tree will work as expected, 1084 giving correct version information. 1085 * tests/Makefile.am, version-ext.sh: Updated comments. In particular, 1086 moved a comment from tests/Makefile.am to version-ext.sh; this should 1087 have been done in commit 0d3abf10458ca4fdd26daa77a02f7f1f4e361deb, 1088 i.e. when version-ext.sh was created. 1089 10902022-12-06 Vincent Lefevre <vincent@vinc17.net> 1091 1092 [doc/mpfr.texi] Removed useless leading spaces in examples. 1093 1094 All examples should have at least one line that does not have 1095 leading spaces. Texinfo already indents examples in all cases. 1096 10972022-12-06 Vincent Lefevre <vincent@vinc17.net> 1098 1099 [doc/mpfr.texi] Removed useless single quotes in an example. 1100 1101 Texinfo changes these quotes to U+2019 RIGHT SINGLE QUOTATION MARK 1102 with TeX output (PDF), and it is no part of ASCII, which might yield 1103 issues in case of reuse in actual code. The subsequent example does 1104 not use quotes, so let's do the same. 1105 11062022-12-06 Vincent Lefevre <vincent@vinc17.net> 1107 1108 [doc/mpfr.texi] Updated the month. 1109 11102022-12-06 Vincent Lefevre <vincent@vinc17.net> 1111 1112 [doc/mpfr.texi] Added a FIXME about the @need issue. 1113 1114 Context: 1115 https://lists.gnu.org/archive/html/bug-texinfo/2022-11/msg00228.html 1116 11172022-11-30 Vincent Lefevre <vincent@vinc17.net> 1118 1119 [doc/mpfr.texi] 2 replacements of ASCII "-" by @minus{}. 1120 1121 Note: these should be the last remaining issues with the minus sign. 1122 11232022-11-30 Vincent Lefevre <vincent@vinc17.net> 1124 1125 [doc/mpfr.texi] 3 replacements of ASCII "-" by @minus{}. 1126 11272022-11-28 Vincent Lefevre <vincent@vinc17.net> 1128 1129 [src/mpfr-impl.h] Added a comment for the umul_hi(h, x, y) macro. 1130 1131 Say that MPFR_NEED_LONGLONG_H needs to be defined to use it. 1132 1133 This macro is defined unconditionally (this is not an issue) because 1134 MPFR_NEED_LONGLONG_H has been undefined earlier in mpfr-impl.h (why?), 1135 so we can no longer test MPFR_NEED_LONGLONG_H. 1136 11372022-11-28 Vincent Lefevre <vincent@vinc17.net> 1138 1139 Get rid of the _mulx_u64 intrinsic. 1140 1141 It was found that this intrinsic has issues with ICC, Cygwin, and more 1142 generally, the Microsoft toolchain; even MPFR's strong detection at 1143 configure time (an AC_RUN_IFELSE test) was not sufficient. Moreover, 1144 _mulx_u64 is useless as umul_ppmm from mpfr-longlong.h does the same 1145 thing from the spec point of view (and thus was used as the fallback). 1146 So, if there is a reliable way to use the mulx instruction whenever 1147 possible (including via compiler optimization and the use of __int128 1148 when available, as done by GCC's _mulx_u64 implementation), this 1149 should be done in the umul_ppmm definition. Alternatively, we could 1150 redefine umul_ppmm for the use of __int128 when possible. 1151 1152 Context and references: 1153 https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00008.html 1154 https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00027.html 1155 https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00030.html 1156 https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00031.html 1157 https://stackoverflow.com/a/54815033/3782797 1158 1159 * src: corrected the umul_hi(h, x, y) macro (the only code that was 1160 using _mulx_u64) and moved it from invert_limb.h and invsqrt_limb.h 1161 to mpfr-impl.h. 1162 * tests/tversion.c: removed the output info about _mulx_u64. 1163 * acinclude.m4: removed the check for _mulx_u64. 1164 11652022-11-25 Vincent Lefevre <vincent@vinc17.net> 1166 1167 [NEWS] Added release name for 4.2.0: "fondue savoyarde". 1168 1169 mpfr-longlong.h update from the current GMP development code. 1170 11712022-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1172 1173 [doc/mini-gmp] updated svn revision to git revision 1174 [tools/bench/README] likewise 1175 11762022-11-23 Vincent Lefevre <vincent@vinc17.net> 1177 1178 [tools/build-patch] Update for patches generated by git. 1179 1180 Such patches are of the form 1181 --- a/path/name 1182 +++ b/path/name 1183 so with need to use the -p1 patch option if the --- line 1184 starts with "--- a/". 1185 11862022-11-23 Vincent Lefevre <vincent@vinc17.net> 1187 1188 [tools/build-patch] Updated a comment for Git. 1189 11902022-11-22 Vincent Lefevre <vincent@vinc17.net> 1191 1192 Fix mpfr_custom_get_kind() macro bug. 1193 1194 * src/mpfr.h: in the mpfr_custom_get_kind() macro, changed mpfr_ptr to 1195 mpfr_srcptr for _x to agree with the function prototype, in order to 1196 avoid a compilation failure of user code in some cases. This bug was 1197 introduced by commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e, which 1198 introduced the temporary variable _x to avoid an incorrect number of 1199 evaluations of the x argument. 1200 * tests/tstckintc.c: improved the tests to detect this bug. 1201 1202 This should fix mpfr bug #1. 1203 1204 Bug initially reported by FX Coudert: 1205 https://github.com/CGAL/cgal/issues/7064 1206 1207 It affects Fedora Linux: 1208 https://bugzilla.redhat.com/show_bug.cgi?id=2144197 1209 12102022-11-17 Vincent Lefevre <vincent@vinc17.net> 1211 1212 ChangeLog update with tools/update-changelog 1213 12142022-11-17 Vincent Lefevre <vincent@vinc17.net> 1215 1216 [doc/mpfr.texi] Changed a @need command due to a bug in @need. 1217 1218 A page break was introduced for "@need 800" while there was the 1219 space for 12 lines of text + 3 paragraph skips, as seen after the 1220 change. That's much more than the 8/10 in needed by "@need 800". 1221 So the page break was incorrect! 1222 12232022-11-17 Vincent Lefevre <vincent@vinc17.net> 1224 1225 [doc/mpfr.texi] Added @need commands to prevent page breaks. 1226 12272022-11-17 Vincent Lefevre <vincent@vinc17.net> 1228 1229 [doc/mpfr.texi] Hack to improve TeX output (PDF). 1230 1231 Define a @fptt macro to fix the TeX output (PDF) issue mentioned 1232 in commit 1877cf9aef96c2280aab60f67e5e7302676d199a (if the style 1233 of HTML output is fixed to be more like TeX output, this code will 1234 need an update). 1235 12362022-11-17 Vincent Lefevre <vincent@vinc17.net> 1237 1238 [doc/mpfr.texi] Added a note about a TeX output (PDF) issue. 1239 1240 This affects "[]", which appears in the mpfr_sum and mpfr_dot 1241 function prototypes. 1242 12432022-11-16 Vincent Lefevre <vincent@vinc17.net> 1244 1245 Consistency: s/non(zero|positive|negative)/non-$1/ 1246 1247 Changed non(zero|positive|negative) to non-zero, etc. for consistency 1248 (target files: src & tests directory, doc/README.dev, doc/mpfr.texi). 1249 Did it this way because the former was in minority (21 vs 165) and 1250 the IEEE 754-2019 standard uses a hyphen. 1251 12522022-11-16 Vincent Lefevre <vincent@vinc17.net> 1253 1254 [doc/mpfr.texi] Final typographic and style corrections. 1255 1256 Actually a bit more than that, since this affected the textual part 1257 of the PDF file (used for searching and copy-paste): the underscore 1258 character needs to be in something like @code or @samp to be present 1259 in this textual part. 1260 12612022-11-16 Vincent Lefevre <vincent@vinc17.net> 1262 1263 Updated version to 4.2.0-dev with the new tools/update-version. 1264 1265 All the expected replacements have now *really* been done thanks to 1266 commit a4dec8938b85afbca2d448ae2dd4e0d3ab72b00c. 1267 12682022-11-16 Vincent Lefevre <vincent@vinc17.net> 1269 1270 [tools/update-version] Fixed replacements in "doc/mpfr.texi". 1271 1272 The change done in commits 4885b57add174f390eff29abe14d12fb5ebd6a61 1273 and 7eda345244f503359d14cd5bae1ed42865d39ee8 was incorrect as there 1274 are 2 identical replacements to do in "doc/mpfr.texi", not just one. 1275 The previous code changed lines separately. But for the check of 1276 failing replacements, a global change on the full file is needed; 1277 thus the 2 identical replacements were expected to be done at the 1278 same time, so that the "g" modifier is needed on the regexp. 1279 12802022-11-15 Vincent Lefevre <vincent@vinc17.net> 1281 1282 Updated doc/texinfo.tex to 2022-11-13.08 1283 1284 [TODO] Added URL for the Clang multiprecision arithmetic builtins. 1285 12862022-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1287 1288 [TODO] add reference to __builtin_addcll 1289 12902022-11-11 Vincent Lefevre <vincent@vinc17.net> 1291 1292 [doc/README.dev] "To make a release": mention the README file. 1293 12942022-11-10 Vincent Lefevre <vincent@vinc17.net> 1295 1296 Updated version to 4.2.0-dev with the new tools/update-version. 1297 1298 All the expected replacements have now been done in doc/mpfr.texi, 1299 thanks to commit 7eda345244f503359d14cd5bae1ed42865d39ee8. 1300 13012022-11-10 Vincent Lefevre <vincent@vinc17.net> 1302 1303 [tools/update-version] Updated a replacement. 1304 1305 This was needed due to a change done on 2018-09-07 in doc/mpfr.texi 1306 (commit 84796030c7c732e8e66e5e650ec929c541dd207f / SVN r13153), as 1307 said in the previous commit. 1308 13092022-11-10 Vincent Lefevre <vincent@vinc17.net> 1310 1311 [tools/update-version] Check for failing replacements. 1312 1313 This script currently fails due to a change done on 2018-09-07 in 1314 doc/mpfr.texi (commit 84796030c7c732e8e66e5e650ec929c541dd207f / 1315 SVN r13153), and this issue remained unnoticed until now, 1316 in particular due to the absence of checking for failing 1317 replacements. 1318 1319 The penultimate non-patchlevel release was done on 2017-12-25, i.e. 1320 before this change, and no patchlevel releases have been done yet 1321 for the latest release, so that no current releases are affected by 1322 this issue, but the 4.1.1 release candidate is affected. 1323 13242022-11-09 Vincent Lefevre <vincent@vinc17.net> 1325 1326 Updated doc/texinfo.tex to 2022-11-07.17 (from GNU Texinfo 7.0). 1327 13282022-11-08 Vincent Lefevre <vincent@vinc17.net> 1329 1330 [doc/mpfr.texi] Updated comment about an issue with math operators. 1331 1332 [doc/mpfr.texi] Added a comment about an issue with math operators. 1333 1334 [doc/mpfr.texi] Another typographic improvement. 1335 13362022-11-08 Vincent Lefevre <vincent@vinc17.net> 1337 1338 [doc/mpfr.texi] Added a comment for \mathop with a single character. 1339 1340 Workaround to avoid an alignment issue described at 1341 https://tex.stackexchange.com/questions/41261/mathop-shifts-the-baseline-declaremathoperator-doesnt 1342 when the math operator @EXP{} was just "E". 1343 13442022-11-08 Vincent Lefevre <vincent@vinc17.net> 1345 1346 [doc/mpfr.texi] More typographic corrections and improvements. 1347 1348 Also did some changes to improve the consistency. 1349 13502022-11-07 Vincent Lefevre <vincent@vinc17.net> 1351 1352 [doc/mpfr.texi] Added a comment (ref to the GNU Texinfo spacing bug). 1353 13542022-11-07 Vincent Lefevre <vincent@vinc17.net> 1355 1356 [doc/mpfr.texi] More typographic corrections for math expressions. 1357 1358 * Note a spacing bug in texi2dvi from GNU Texinfo 6.8 with macros 1359 (found while testing). 1360 * Define macro @EXP (and \EXP in TeX). 1361 * Typographic corrections for math expressions. 1362 13632022-11-07 Vincent Lefevre <vincent@vinc17.net> 1364 1365 [doc/mpfr.texi] Added a comment. 1366 1367 [doc/mpfr.texi] Improved typography and English usage. 1368 1369 [doc/mpfr.texi] More documentation for the @m{T,N} macro. 1370 13712022-11-04 Vincent Lefevre <vincent@vinc17.net> 1372 1373 [src/set_zero.c] IEEE 754 terminology in a comment. 1374 13752022-11-04 Vincent Lefevre <vincent@vinc17.net> 1376 1377 [doc/mpfr.texi] Improved consistency about infinity and zero. 1378 1379 Note: one writes "+0", but "positive zero", not "plus zero", etc. 1380 See the IEEE 754 standard. 1381 13822022-11-03 Vincent Lefevre <vincent@vinc17.net> 1383 1384 [doc/mpfr.texi] Minor corrections related to infinity. 1385 1386 This completes commit 75041697429ba467c448195b4f0863d0eb92e20c 1387 done in 2021-02. 1388 13892022-11-03 Vincent Lefevre <vincent@vinc17.net> 1390 1391 [doc/mpfr.texi] Style corrections. 1392 13932022-11-03 Vincent Lefevre <vincent@vinc17.net> 1394 1395 [doc/mpfr.texi] Style improvement for TeX (PDF) output. 1396 1397 For mpfr_acosu, mpfr_asinu, mpfr_atanu and mpfr_atan2u, make the style 1398 similar to the one for mpfr_cosu, mpfr_sinu and mpfr_tanu. 1399 14002022-11-03 Vincent Lefevre <vincent@vinc17.net> 1401 1402 [doc/mpfr.texi] More use of @tm (typographic corrections). 1403 14042022-11-01 Vincent Lefevre <vincent@vinc17.net> 1405 1406 [doc/mpfr.texi] Updated the month. 1407 1408 [doc/mpfr.texi] Completed the description of the @mm macro. 1409 14102022-11-01 Vincent Lefevre <vincent@vinc17.net> 1411 1412 [doc/mpfr.texi] Improved typography for the formatted output functions. 1413 1414 For what is displayed (or output text), @samp{...} should be used, 1415 as already done in some cases (note: never enclose @samp{...} with 1416 quotes as this is already done in the Texinfo processing). 1417 14182022-11-01 Vincent Lefevre <vincent@vinc17.net> 1419 1420 [doc/mpfr.texi] Improved the readability of an example. 1421 14222022-11-01 Vincent Lefevre <vincent@vinc17.net> 1423 1424 [doc/mpfr.texi] More typographic corrections for TeX (PDF) output. 1425 1426 * Define a @mm{T} macro to be used for math symbols outside of @m, 1427 @tm, @code or similar (but not for the "+" in "C++"). 1428 * Use this macro when applicable. 1429 * Add missing @tm for some simple math expressions. 1430 14312022-10-28 Vincent Lefevre <vincent@vinc17.net> 1432 1433 [doc/mpfr.texi] Added tm macro and improved math typography. 1434 14352022-10-27 Vincent Lefevre <vincent@vinc17.net> 1436 1437 [tools/nightly-test] Corrections and cleanup. 1438 1439 In particular, reverted most changes done in SVN r9832 1440 (commit 1ca64e34907c5a968ca7fcc3d22cdca2ede7f28b): 1441 * switch back to /bin/sh (bash is not needed by this script); 1442 * do not use --enable-decimal-float and --enable-float128 with 1443 a C++ compiler as they are not supported (configure fails). 1444 1445 And for the "git clone" command: 1446 * take the BRANCH argument into account; 1447 * use --depth 1 to avoid an unnecessary full clone. 1448 1449 Better g++ detection (e.g. g++-12 or /usr/bin/g++, not just g++). 1450 14512022-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1452 1453 [tools/nightly-test] change to git 1454 14552022-10-26 Vincent Lefevre <vincent@vinc17.net> 1456 1457 [doc/mpfr.texi] Cosmetic consistency change in the .texi source. 1458 1459 Let's use the same code for "start of header" and "end of header". 1460 14612022-10-25 Vincent Lefevre <vincent@vinc17.net> 1462 1463 [doc/mpfr.texi] Updated @m{T,N} macro, with comments. 1464 1465 The @m{T,N} macro is used for math formatting and textual equivalent 1466 (human-readable text). However, it was generating emphasis in HTML, 1467 which was unexpected. This commit removes the use of @math for the 1468 Info and HTML output (for Info, this does not change anything, and 1469 for HTML, this removes the incorrect emphasis). It also updates the 1470 documentation and adds a comment about the history of this macro and 1471 various issues related to it. 1472 14732022-10-24 Vincent Lefevre <vincent@vinc17.net> 1474 1475 Updated doc/texinfo.tex to 2022-10-18.18 1476 1477 Update from the texinfo Git repository. 1478 * The generated mpfr.html and mpfr.info files remain the same. 1479 * For mpfr.pdf, there are some spacing improvements. 1480 14812022-10-11 Vincent Lefevre <vincent@vinc17.net> 1482 1483 [doc/mpfr.texi] Updated the month. 1484 14852022-10-11 Vincent Lefevre <vincent@vinc17.net> 1486 1487 [doc/mpfr.texi] Fix formatting for mpfr_can_round. 1488 1489 Consistency changes and use of no-break space (@tie{}). 1490 1491 Note: Once @math{...} has been clarified/fixed, apply the suggestions 1492 by Ivan Panchenko: 1493 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html 1494 14952022-10-11 Vincent Lefevre <vincent@vinc17.net> 1496 1497 [doc/mpfr.texi] Consistency correction for mpfr_get_str_ndigits. 1498 1499 Use @math{m} (instead of just m) as already used a bit earlier. 1500 1501 But the use of @math may need to be revised. See 1502 https://lists.gnu.org/archive/html/bug-texinfo/2022-10/msg00045.html 1503 15042022-10-11 Vincent Lefevre <vincent@vinc17.net> 1505 1506 [doc/mpfr.texi] Improved spacing. 1507 1508 2 changes suggested by Ivan Panchenko at 1509 1510 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html 1511 1512 but do not use @math{...} as with HTML output, it puts everything 1513 in italics with <em class='math'>...</em>, which is incorrect for 1514 things like digits. 1515 1516 However, this behavior of @math{...} is not what is documented in 1517 the GNU Texinfo 6.8 manual, which says: 1518 1519 The '@math' command has no special effect on the Info output or (by 1520 default) the HTML output, merely outputting the contents verbatim. 1521 15222022-10-11 Vincent Lefevre <vincent@vinc17.net> 1523 1524 [doc/mpfr.texi] Added a comment about the use of @math{...}. 1525 15262022-10-11 Vincent Lefevre <vincent@vinc17.net> 1527 1528 [doc/mpfr.texi] Fixed italicization for mpfr_eint. 1529 1530 An issue reported by Ivan Panchenko: 1531 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html 1532 1533 I also had to fix the occurrences of k in @ifnottex for HTML. 1534 15352022-10-11 Vincent Lefevre <vincent@vinc17.net> 1536 1537 Fixed some minor mistakes. 1538 1539 * Minor mistakes in doc/mpfr.texi reported by Ivan Panchenko: 1540 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html 1541 (spacing and italicization not fixed yet). 1542 * Fixed similar mistakes in the other files. 1543 15442022-10-11 Vincent Lefevre <vincent@vinc17.net> 1545 1546 mpfrlint: updated text checking (spelling...) 1547 15482022-10-05 Vincent Lefevre <vincent@vinc17.net> 1549 1550 ChangeLog update with tools/update-changelog 1551 1552 [tools/update-changelog] Use UTC to generate the ChangeLog file. 1553 15542022-10-05 Vincent Lefevre <vincent@vinc17.net> 1555 1556 [tools/gitlog-to-changelog] Improve --strip-cherry-pick for this repository. 1557 1558 Remove all the cherry-pick information from what can be found in 1559 the 4.1 branch. 1560 15612022-10-05 Vincent Lefevre <vincent@vinc17.net> 1562 1563 [doc/README.dev] "To make a release": precision about the tag. 1564 1565 [doc/README.dev] "To make a release": correction about the tag. 1566 1567 [tests/tnrandom.c] Fixed compilation failure with mini-gmp. 1568 15692022-10-05 Vincent Lefevre <vincent@vinc17.net> 1570 1571 [tools] Improvement for the ChangeLog generation. 1572 1573 * tools/gitlog-to-changelog: modified regexp for --strip-cherry-pick 1574 to support some log message in the MPFR Git repository (currently, 1575 only commit 4c5973c2f0153a3a4708cab79ed142e72c4a50eb, but similar 1576 ones could occur in the future). 1577 * tools/update-changelog: use this --strip-cherry-pick option. 1578 15792022-10-05 Vincent Lefevre <vincent@vinc17.net> 1580 1581 [doc/README.dev] "To make a release": update for the ChangeLog file. 1582 1583 See commit 1dc281851408fc7d330576327545857c93392521 for the reason. 1584 15852022-10-05 Vincent Lefevre <vincent@vinc17.net> 1586 1587 [doc/README.dev] "To make a release": update for abi-compliance-checker. 1588 1589 Added an example of use of build-multi and abi-compliance-checker 1590 for the 4.1.1 release candidate. 1591 15922022-10-05 Vincent Lefevre <vincent@vinc17.net> 1593 1594 Fix for "make dist" / "make distcheck" about ChangeLog regeneration. 1595 1596 The "ChangeLog: FORCE" rule in Makefile.am was incompatible with 1597 GNU Automake's "make dist" / "make distcheck" because GNU Automake 1598 creates a "distdir-am: $(DISTFILES)" rule, which was regenerating 1599 the ChangeLog file in "make dist"; such a change is not allowed 1600 (it fails with "make distcheck") and not wanted anyway. 1601 Issue introduced by commit 52652c41978089be57aca658bacf19b758c73be4. 1602 1603 * Added tools/update-changelog sh script to update the ChangeLog file. 1604 * Makefile.am: replaced the incorrect rule mentioned above by a rule 1605 update-changelog to run tools/update-changelog; added a comment. 1606 16072022-10-05 Vincent Lefevre <vincent@vinc17.net> 1608 1609 [doc/README.dev] "To make a release": update for abi-compliance-checker. 1610 16112022-10-05 Vincent Lefevre <vincent@vinc17.net> 1612 1613 [doc/README.dev] "To make a release": update about build-multi. 1614 1615 Needed due to the switch from InriaForge to Inria GitLab. 1616 16172022-10-04 Vincent Lefevre <vincent@vinc17.net> 1618 1619 [tests/tnrandom.c] Improved the support non-default seed. 1620 1621 As suggested by mpfrlint, use a different randstate rather than 1622 re-seeding mpfr_rands (with a fixed seed). So the corresponding 1623 test no longer needs to be at the end. 1624 16252022-10-04 Vincent Lefevre <vincent@vinc17.net> 1626 1627 [tests/tnrandom.c] Added a comment for tnrandom with an argument. 1628 1629 This concerns a slowness of mpfr_clear() in the MPFR tests due to 1630 the O(n) search in tests_memory_find(), used to detect memory leaks. 1631 16322022-10-04 Vincent Lefevre <vincent@vinc17.net> 1633 1634 [tests/tnrandom.c] Support non-default seed (GMP_CHECK_RANDOMIZE). 1635 1636 This fixes a failure due to 4c5973c2f0153a3a4708cab79ed142e72c4a50eb 1637 when GMP_CHECK_RANDOMIZE is set. 1638 16392022-10-04 Vincent Lefevre <vincent@vinc17.net> 1640 1641 [doc/README.dev] "To make a release": added note about GMP_CHECK_RANDOMIZE. 1642 16432022-10-03 Vincent Lefevre <vincent@vinc17.net> 1644 1645 [doc/update-faq] Ensure that the code is run from the doc directory. 1646 1647 [tools/coverage] Typo. 1648 1649 [doc/README.dev] Updated "To make a release". 1650 1651 Updated URLs. 1652 1653 Updated URLs. 1654 1655 Updated URLs. 1656 16572022-10-03 Vincent Lefevre <vincent@vinc17.net> 1658 1659 [doc/README.dev] Corrected "To make a release". 1660 1661 The addition of the <branch>-root tag applies only after a branch 1662 is created, i.e. for non-patchlevel releases (item 0). 1663 16642022-09-14 Vincent Lefevre <vincent@vinc17.net> 1665 1666 Updated doc/texinfo.tex to 2022-09-14.01 1667 1668 Update from the texinfo Git repository. 1669 * The generated mpfr.html and mpfr.info files remain the same. 1670 * For mpfr.pdf, this version fixes all the issues I've reported. 1671 16722022-09-09 Vincent Lefevre <vincent@vinc17.net> 1673 1674 [doc/README.dev] Updated "To make a release". 1675 1676 [src/mpfr-impl.h] Added TODO for MPFR_MAYBE_UNUSED. 1677 16782022-09-07 Vincent Lefevre <vincent@vinc17.net> 1679 1680 [doc/README.dev] New C2x draft (N3054). 1681 16822022-09-05 Vincent Lefevre <vincent@vinc17.net> 1683 1684 [doc/README.dev] Updated "To make a release" (about texinfo.tex). 1685 1686 [autogen.sh] Added a comment about files we handle in the repository. 1687 16882022-09-05 Vincent Lefevre <vincent@vinc17.net> 1689 1690 [doc/.gitignore] Removed /texinfo.tex since it is in the repository. 1691 1692 doc/texinfo.tex was added to the Subversion repository on 2017-11-27 1693 and the svn:ignore property should have been updated at this time, 1694 but I forgot. 1695 16962022-09-03 Vincent Lefevre <vincent@vinc17.net> 1697 1698 [tests/RRTest.c] Replaced "egrep" by "grep -E" in comment. 1699 1700 In the GNU grep 3.8 release notes: 1701 The egrep and fgrep commands, which have been deprecated since 1702 release 2.5.3 (2007), now warn that they are obsolescent and should 1703 be replaced by grep -E and grep -F. 1704 17052022-08-27 Vincent Lefevre <vincent@vinc17.net> 1706 1707 [doc/README.dev] Changed "trunk" (Subversion) to "master" (Git). 1708 1709 [doc/README.dev] New C2x draft (N3047). 1710 17112022-08-26 Vincent Lefevre <vincent@vinc17.net> 1712 1713 [tools/announce-text] Updated key ID for the future releases. 1714 17152022-08-19 Vincent Lefevre <vincent@vinc17.net> 1716 1717 [codespell.ignore] Ignore RO and SIZ (codespell 2.2.0). 1718 1719 Corrected spelling mistake found by codespell 2.2.0 1720 17212022-08-16 Vincent Lefevre <vincent@vinc17.net> 1722 1723 Cleanup about decimal floating constants matching ".0d". 1724 1725 In general, the trailing 0 is not needed, and even not wanted 1726 (this has the effect to decrease the quantum by 1 compared to the 1727 "natural value"), though the quantum is not yet specified in MPFR. 1728 1729 In tests/tget_set_d64.c, kept this trailing 0 in mpfr_set_decimal64, 1730 but added similar tests without this trailing 0. 1731 17322022-08-08 Vincent Lefevre <vincent@vinc17.net> 1733 1734 version-ext.sh: replaced a remaining "sed" by "$SED". 1735 1736 Thanks to Trevor Spiteri for noticing that. 1737 17382022-08-08 Vincent Lefevre <vincent@vinc17.net> 1739 1740 version-ext.sh: handle the case where no Git branches are found. 1741 1742 This should solve the issue reported on 2022-08-08 by Trevor Spiteri: 1743 https://sympa.inria.fr/sympa/arc/mpfr/2022-08/msg00002.html 1744 17452022-07-08 Vincent Lefevre <vincent@vinc17.net> 1746 1747 doc/mpfr.texi: Updated the month. 1748 17492022-07-08 Vincent Lefevre <vincent@vinc17.net> 1750 1751 [manual] Added a note for mpfr_nexttoward (exceptions, sign of 0). 1752 1753 Also applies to mpfr_nextabove and mpfr_nextbelow, whose description 1754 refers to mpfr_nexttoward. 1755 1756 See additional details in the comment in the src/next.c source. 1757 17582022-07-08 Vincent Lefevre <vincent@vinc17.net> 1759 1760 [src/next.c] Updated comment (exceptions and sign of 0). 1761 1762 Concerned functions: mpfr_nexttoward, mpfr_nextabove, mpfr_nextbelow. 1763 1764 Clarification was needed due to the differences between the 1765 IEEE 754-1985, IEEE 754-2008/2019 and ISO C99+ standards on 1766 similar functions (nextafter, nextUp, nextDown). 1767 17682022-07-06 Vincent Lefevre <vincent@vinc17.net> 1769 1770 [configure.ac] Update about GNU gold ld and LD_RUN_PATH. 1771 1772 * Comment update: added URL of the upstream bug report. 1773 * Mention the GNU gold linker in the warning. 1774 17752022-06-13 Vincent Lefevre <vincent@vinc17.net> 1776 1777 [README] Replaced "Subversion" by "Git". 1778 1779 [doc/README.dev] Completed the update for Git. 1780 1781 [doc/README.dev] Moved and clarified a paragraph about the tests. 1782 17832022-06-11 Vincent Lefevre <vincent@vinc17.net> 1784 1785 Fixed tsprintf %a tests when GMP and libc produce different outputs. 1786 1787 With some 32-bit mingw-w64 implementations, the GMP and libc 1788 formatted output functions produce different outputs for %a (this 1789 is not completely specified by the C standard). In the MPFR tests 1790 introduced by commit 22db634294c27eabbc0c55b04267d3ab5bc9a648 on 1791 2022-05-19, the comparison is done between the MPFR result, which 1792 is based on GMP, and the libc result; hence a failure. 1793 1794 So, changed the 4 concerned tests of tests/tsprintf.c to compare 1795 the MPFR result with the GMP result (for the other tests on the 1796 C native types, it is still better to compare MPFR with libc). 1797 1798 Bug report: 1799 https://sympa.inria.fr/sympa/arc/mpfr/2022-06/msg00004.html 1800 18012022-06-10 Vincent Lefevre <vincent@vinc17.net> 1802 1803 [tools/announce-text] Completed the update for Git. 1804 1805 [tools/announce-text] Check that one has an annotated tag at origin. 1806 1807 [tools/announce-text] Update. 1808 1809 [tools/announce-text] Minor git-related simplification. 1810 1811 [tools/announce-text] Started the update for Git. 1812 1813 [tools/announce-text] Removed code and text related to InriaForge (obsolete). 1814 18152022-06-08 Vincent Lefevre <vincent@vinc17.net> 1816 1817 Updated www.open-std.org URLs: http ��� https. 1818 18192022-06-07 Vincent Lefevre <vincent@vinc17.net> 1820 1821 [doc/README.dev] New C2x draft (N2912). 1822 18232022-06-02 Vincent Lefevre <vincent@vinc17.net> 1824 1825 [doc/README.dev] Updated "To make a release". 1826 1827 This completes the update for Git and Inria GitLab. But the 1828 tools/announce-text script has not been updated yet. 1829 18302022-06-02 Vincent Lefevre <vincent@vinc17.net> 1831 1832 [tools/export-release] Completed the script. 1833 1834 Fix the timestamps so that each file or directory has a timestamp 1835 corresponding to its last change. 1836 18372022-06-02 Vincent Lefevre <vincent@vinc17.net> 1838 1839 Added tools/export-release sh script. 1840 1841 Export some release identified by a Git tag in order to get a tarball. 1842 18432022-06-02 Vincent Lefevre <vincent@vinc17.net> 1844 1845 [mbench] Updated Copyright lines. 1846 1847 Added tools/mbench/.gitignore file. 1848 1849 [mbench/Makefile] Added missing dependencies on timp.h 1850 18512022-06-02 Vincent Lefevre <vincent@vinc17.net> 1852 1853 [mbench/timp.h] Bug fix for "make rt" on 32-bit machines. Reindent. 1854 1855 For the code used when USE_CLOCK_MONOTONIC is defined ("make rt"): 1856 If both time_t (type of tv_sec) and long are 32-bit types, there was 1857 an overflow in the timp_rdtsc() macro, due to the multiplication of 1858 the tv_sec (coming from CLOCK_MONOTONIC, thus typically larger than 5) 1859 by the value 1000000000 (��� 2^32 / 4.3) of type unsigned long, because 1860 this multiplication would be done on 32 bits. Changed the type of the 1861 constant to unsigned long long so that the operations are done with 1862 the target type unsigned long long (at least). 1863 18642022-06-02 Vincent Lefevre <vincent@vinc17.net> 1865 1866 [mbench] Removed trailing whitespace. 1867 18682022-06-01 Vincent Lefevre <vincent@vinc17.net> 1869 1870 [doc/README.dev] Updated "To make a release" (about ChangeLog). 1871 1872 ChangeLog update with "make ChangeLog" 1873 1874 [tools/ck-copyright-notice] Better indentation. 1875 1876 [tools/ck-copyright-notice] Support the future ChangeLog format. 1877 18782022-06-01 Vincent Lefevre <vincent@vinc17.net> 1879 1880 [tools/ck-copyright-notice] Better error handling. 1881 1882 Note: One currently gets a failure with the future ChangeLog format, 1883 obtained with gitlog-to-changelog (via "make ChangeLog"). 1884 18852022-06-01 Vincent Lefevre <vincent@vinc17.net> 1886 1887 Support ChangeLog regeneration from a Git working tree. 1888 1889 * Added tools/gitlog-to-changelog file from Gnulib. 1890 * Makefile.am: added a rule for the Changelog file. 1891 1892 Needed as the GNU MPFR repository has been converted to Git. 1893 1894 The '%B%n' format string is used rather than the default '%s%n%b%n' 1895 because Git's commit message convention is not always followed 1896 (in particular before the conversion of the repository to Git). 1897 1898 Note: In the future, if there is any change to do to a Git commit 1899 message (typo, etc.), the --amend option could be used. 1900 19012022-05-30 Vincent Lefevre <vincent@vinc17.net> 1902 1903 Started to update doc/README.dev for Git. 1904 19052022-05-19 Vincent Lefevre <vincent@vinc17.net> 1906 1907 [manual] Clarify the description of the formatted output functions. 1908 1909 Emphasize the fact that the conv specifier F is not supported, except 1910 for the type specifier R (for mpfr_t arguments). 1911 19122022-05-19 Vincent Lefevre <vincent@vinc17.net> 1913 1914 [src/vasprintf.c] Consistency with the non-support of %F by GMP. 1915 1916 The F conversion specifier as defined by the C standard is not 1917 supported by the GMP formatted output functions because it is 1918 already used as the type specifier for mpf_t (which comes before 1919 the conversion specifier). Let's take this fact into account. 1920 1921 Note: this conversion specifier is still allowed with MPFR numbers 1922 (e.g., "%RF") to avoid breaking the compatibility (it has never 1923 been an issue). 1924 19252022-05-19 Vincent Lefevre <vincent@vinc17.net> 1926 1927 [tests/tsprintf.c] native_types: added tests to differentiate %G from %g. 1928 1929 The tested value -1.25 had the same output -1.25 with %g and %G. 1930 Added 7.62939453125e-6 (= 2^(-17)), whose output by %g and %G has 1931 an exponent introduced by 'e' and 'E' respectively. 1932 19332022-05-19 Vincent Lefevre <vincent@vinc17.net> 1934 1935 [tests/tsprintf.c] native_types: added tests for %a, %A, %la, %lA 1936 19372022-05-19 Vincent Lefevre <vincent@vinc17.net> 1938 1939 [tests/tsprintf.c] Added/fixed native_types tests. 1940 1941 * Added tests of %E and %G. 1942 * Removed the test of %lF, which is not supported by GMP (and yields 1943 a heap buffer overflow, detected by AddressSanitizer): even though 1944 there would be no ambiguity in this particular case, it is not 1945 supported because the standard F conversion specifier isn't due to 1946 the use of the F type specifier for mpf_t. 1947 19482022-05-19 Vincent Lefevre <vincent@vinc17.net> 1949 1950 [tests/tsprintf.c] Correction for %la, %lA, %le, %lE, %lf, %lF, %lg, %lG 1951 1952 Reverted commit 2b60707d22717e0f582be5de680d7fa7004e2512 and added 1953 tests for the missing %lE, %lF, %lG in native_types, protected by 1954 a #if (see commit ecd3279f3dfd281fc8e51aac7509b76b27497a6c) as they 1955 may need an ISO C99 compiler. 1956 1957 Note: The test of %la and %lA was incorrect because the first digit 1958 is unspecified (and really depends on the C library). A test could 1959 be added in the future, perhaps also with a configure test, because 1960 the compiler may support ISO C99 but not the C library (there was 1961 an issue like that at least with old versions of Solaris). 1962 19632022-05-19 Vincent Lefevre <vincent@vinc17.net> 1964 1965 [tests/tsprintf.c] native_types: test %le, %lf, %lg only with C99+ 1966 1967 ��� since the l length modifier for the FP types (a, A, e, E, f, F, g, G 1968 conversion specifiers) has been added in ISO C99. 1969 19702022-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1971 1972 [tests/tsprintf.c] added tests for %la, %lA, %le, %lE, %lf, %lF, %lg, %lG 1973 19742022-05-19 Vincent Lefevre <vincent@vinc17.net> 1975 1976 [src/vasprintf.c] Bug fix for the l length modifier with FP type. 1977 1978 The l length modifier is now supported with the a, A, e, E, f, F, g, G 1979 conversion specifiers, as required by the ISO C standard on printf and 1980 other formatted output functions. As specified, it is just ignored. 1981 1982 For that, to improve code maintainability, the CASE_LONG_ARG() macro 1983 was simplified: 1984 * The c and s conversion specifiers are always supported by this 1985 macro (this is a potential fix for implementations with incomplete 1986 wide-character handling, without any guarantee to work). 1987 * A MPFR_RET_NEVER_GO_HERE() for unsupported conversion specifiers 1988 has been added (if specinfo_is_valid() is consistent with this 1989 macro, one should effectively never reach this case). 1990 19912022-05-19 Vincent Lefevre <vincent@vinc17.net> 1992 1993 [src/vasprintf.c] Made case ordering consistent (no change of behavior). 1994 1995 The "case" ordering in specinfo_is_valid() and in CONSUME_VA_ARG() for 1996 integer specifiers and for floating-point specifiers was not the same. 1997 Improved code readability by using the same order across the code 1998 (also OK with CASE_LONG_ARG()). 1999 20002022-05-19 Vincent Lefevre <vincent@vinc17.net> 2001 2002 [tests/tsprintf.c] native_types: test %le, %lf, %lg. 2003 2004 These tests are currently failing. Bug reported by Paul Zimmermann 2005 for %la (but %a and %la are not currently tested, because of their 2006 possible lack of support in the C library). 2007 20082022-05-19 Vincent Lefevre <vincent@vinc17.net> 2009 2010 [tests/tsprintf.c] native_types: same tests for i as for d. 2011 2012 [tests/tnrandom.c] With mini-gmp, disable the tests that check the values. 2013 2014 [acinclude.m4] Added a comment about the unreliable NAN != NAN check. 2015 20162022-05-19 Vincent Lefevre <vincent@vinc17.net> 2017 2018 [tests/cmp_str.c] In mpfr_cmp_str, check that s is a valid number. 2019 2020 In the tests, the string provided to mpfr_cmp_str is normally a 2021 valid number (the common use is to check that a result is equal to 2022 some hardcoded value given by a string). A string s that does not 2023 represent a valid number probably has a typo, and the consequence 2024 was that in such a case, any non-NaN result was regarded as correct. 2025 20262022-05-19 Vincent Lefevre <vincent@vinc17.net> 2027 2028 [tests/tsubnormal.c] Removed invalid testcase bug20220518. 2029 2030 The testcase bug20220518 added in 2031 commit 7640a832fbf0b7f9057889e076cf7f42fe4f8e58 2032 was invalid as the mpfr_subnormalize input was not in the current 2033 exponent range (it had exponent -1074 while emin = -1073). 2034 2035 As usual, inputs outside the current exponent range are not supported 2036 (the mpfr_subnormalize description in the manual is explicit: 2037 "The subnormal exponent range is from ���emin��� to ���emin+PREC(X)-1���."). 2038 Supporting values outside the current exponent range is not needed 2039 in practice (see examples in the manual). 2040 20412022-05-19 Vincent Lefevre <vincent@vinc17.net> 2042 2043 [tests/tsubnormal.c] Code style in coverage(). 2044 2045 [tests/tsubnormal.c] Added missing cleanup at the end of bug20220518. 2046 2047 [tests/tsubnormal.c] Simplified bug20220518. 2048 2049 [tests/tsubnormal.c] C90 compatibility. 2050 20512022-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2052 2053 [tests/tsubnormal.c] added test case that exhibits a bug in mpfr_subnormalize 2054 [src/subnormal.c] fixed typo 2055 20562022-05-18 Vincent Lefevre <vincent@vinc17.net> 2057 2058 [tests/tnrandom.c] Check some mpfr_nrandom values to detect changes. 2059 2060 The values should be the same on different machines and with 2061 different MPFR versions (or this would be an ABI change). 2062 20632022-05-17 Vincent Lefevre <vincent@vinc17.net> 2064 2065 For version-ext.sh, use "$SED" instead of "sed". 2066 2067 * tests/Makefile.am: pass $SED to version-ext.sh. 2068 * version-ext.sh: use $SED (default to "sed"). 2069 20702022-05-17 Vincent Lefevre <vincent@vinc17.net> 2071 2072 Fixed version-ext.sh when in an origin/* remote branch. 2073 20742022-05-13 Vincent Lefevre <vincent@vinc17.net> 2075 2076 Tests: the check of subnormal support is done when running the tests. 2077 2078 The check of support for double and float subnormals was done at 2079 configure time, but it could not be done when cross-compiling. 2080 Since it is useful only for the tests, it is better to do it when 2081 running the tests. 2082 2083 * tests/tests.c: added have_subnorm_dbl() and have_subnorm_flt() 2084 functions to check support for double and float subnormals; 2085 removed such a check from mpfr_test_init(). 2086 * tests/mpfr-test.h: declare these functions. 2087 * tests/tget_flt.c: use have_subnorm_flt() instead of HAVE_SUBNORM_FLT. 2088 * tests/tset_d.c, tests/tsprintf.c: removed the useless test of 2089 HAVE_SUBNORM_DBL (this was a minor optimization). 2090 * acinclude.m4: updated comment about the check of subnormal support; 2091 minor improvement in the check for float subnormals. 2092 Note: keep the check just for build information (it might be useful 2093 for debugging or in case of a related bug report). 2094 * tools/mpfrlint: check that the HAVE_SUBNORM_* macros are not used. 2095 20962022-05-13 Vincent Lefevre <vincent@vinc17.net> 2097 2098 [acinclude.m4] Updated comment about the check of subnormal numbers. 2099 2100 * Removed text about DBL_HAS_SUBNORM and FLT_HAS_SUBNORM (which 2101 was added in commit 3ee30bcf34bfb5d042e5a1aa9b7cf8a42b51cb91 2102 on 2019-10-01) since these macros should be made obsolescent: 2103 https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2981.htm 2104 And their use would be incorrect in C++ (different meaning): 2105 https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2988.pdf 2106 * A bit more details. 2107 * Added a FIXME for better cross-compiling support. 2108 21092022-05-10 Vincent Lefevre <vincent@vinc17.net> 2110 2111 doc/mpfr.texi: Updated the month. 2112 2113 [NEWS] Mention the fixes of the macros of the custom interface. 2114 21152022-05-10 Vincent Lefevre <vincent@vinc17.net> 2116 2117 Improved 2 macros of the custom interface and updated manual. 2118 2119 * src/mpfr.h: The mpfr_custom_init() and mpfr_custom_move() macros 2120 could not be used in contexts where an expression was expected. 2121 This limitation was not necessary and is now removed. 2122 * doc/mpfr.texi: In commit 743a63c480318f60ac2a953007bac08f37b7d71d, 2123 the manual was clarified about the macros of the custom interface, 2124 i.e. behaving like macros, which may evaluate arguments multiple 2125 times or none. This was incomplete and error prone, in addition 2126 to being undocumented in the current MPFR versions. Almost all 2127 issues have now been fixed (the only minor limitation is that the 2128 mpfr_custom_init_set() macro is not usable in contexts where an 2129 expression is expected, but this cannot yield unnoticed bugs). 2130 So, changed the manual to reflect these fixes and added an item 2131 in Section "API Compatibility" (also removed an obsolete comment 2132 about that from src/mpfr.h). 2133 21342022-05-08 Vincent Lefevre <vincent@vinc17.net> 2135 2136 Improved a comment. 2137 21382022-05-06 Vincent Lefevre <vincent@vinc17.net> 2139 2140 [doc/README.dev] Added text about tests of function-like macros. 2141 21422022-05-06 Vincent Lefevre <vincent@vinc17.net> 2143 2144 In comments, changed "stack interface" to "custom interface". 2145 2146 * src/mpfr.h: changed "stack interface" and "mpfr_stack interface" 2147 to "(the) custom interface". 2148 * src/stack_interface.c: changed "mpfr_stack" to "custom interface". 2149 2150 The mpfr_stack_ prefix was changed to mpfr_custom_ in 2005 2151 (see commit 0a010e55364d1cc3681273eee70c91dab0a61946) and 2152 the MPFR manual says "Custom Interface". 2153 21542022-05-06 Vincent Lefevre <vincent@vinc17.net> 2155 2156 Other corrections about the custom interface. 2157 2158 This time, the build of tstckintc was failing with "gcc -Wc++-compat" 2159 because __cplusplus is not defined. 2160 2161 * tests/tstckintc.c: use the same solution as already done in 2162 tcopysign.c (commit 3dbf3387669030b264317202806fc3d938704618), 2163 i.e. ignore -Wc++-compat with "GCC diagnostic" pragmas when 2164 testing with void * arguments. 2165 Also simplified the code thanks to the VOIDP_CAST macro that 2166 was introduced at that time (cast to void * except in C++): 2167 commit 9076e47ceb41c60cab526870757f2098ced5c26d. 2168 2169 Everything should now be OK. 2170 21712022-05-06 Vincent Lefevre <vincent@vinc17.net> 2172 2173 Other corrections about the custom interface. 2174 2175 In C++, implicit pointer conversions are forbidden. This made the 2176 build of tstckintc fail with g++ and -DMPFR_USE_NO_MACRO in CFLAGS. 2177 2178 * src/mpfr.h: do not attempt to support implicit pointer conversions 2179 with a C++ compiler in the macros, since this is not supported by 2180 the functions, i.e. removed 2 useless casts; this is a bit like the 2181 code like before commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e. 2182 * tests/tstckintc.c: test a "void *" argument instead of mpfr_ptr only 2183 in C, not C++ (which cannot work if -DMPFR_USE_NO_MACRO is used). 2184 Note: for newx and newx2, revert to the code that was before the 2185 commit mentioned above. 2186 21872022-05-06 Vincent Lefevre <vincent@vinc17.net> 2188 2189 Testsuite: C++11 compatibility (GCC's -Wliteral-suffix). 2190 2191 With "g++ -Werror", several .c files in the "tests" directory were 2192 yielding 2193 2194 error: invalid suffix on literal; C++11 requires a space between 2195 literal and string macro [-Werror=literal-suffix] 2196 21972022-05-06 Vincent Lefevre <vincent@vinc17.net> 2198 2199 Fixed build failure of user code using mpfr_custom_get_kind() / g++. 2200 2201 * src/mpfr.h: added missing cast in the mpfr_custom_get_kind() macro 2202 (invalid C++ code, but this is in a GNU __extension__ block, thus 2203 unfortunately, it was not detected by "gcc -Werror=c++-compat"; 2204 see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105499>). 2205 2206 Bug introduced in commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e. 2207 22082022-05-05 Vincent Lefevre <vincent@vinc17.net> 2209 2210 Fixed issues with the macro versions of the custom interface. 2211 2212 * src/mpfr.h: fixed issues with the mpfr_custom_* macros: 2213 - a "void *" argument instead of mpfr_ptr could make the 2214 compilation fail (with the function, the conversion is 2215 implicit, thus this should be accepted by the macro); 2216 - some arguments could be evaluated 0 times, which is wrong 2217 if their evaluation has side effects. 2218 * tests/tstckintc.c: added various tests to check these kinds 2219 of issues. 2220 22212022-05-05 Vincent Lefevre <vincent@vinc17.net> 2222 2223 Avoid a -Wsign-conversion warning that could occur in user code. 2224 2225 Issue reported by Andreas Enge concerning PariTwine. 2226 2227 * src/mpfr.h: added a cast in the mpfr_custom_get_size() macro so that 2228 a size_t * size_t product is done instead of mpfr_prec_t * size_t 2229 (where mpfr_prec_t is signed and size_t is unsigned, triggering a 2230 warning when GCC's -Wsign-conversion is used). 2231 22322022-05-05 Vincent Lefevre <vincent@vinc17.net> 2233 2234 Fixed mpfr_custom_get_size() macro and added non-regression test. 2235 2236 * src/mpfr.h: added missing cast in mpfr_custom_get_size() macro. 2237 * tests/tstckintc.c: added testcases (would fail on LP64 platforms). 2238 22392022-04-22 Vincent Lefevre <vincent@vinc17.net> 2240 2241 [mpfr-impl.h] Rounding mode macros: added assertion; updated comments. 2242 22432022-04-22 Vincent Lefevre <vincent@vinc17.net> 2244 2245 Updated TODO to improve mpfr_pow_si/sj for negative n. 2246 2247 I thought that there would be some drawbacks with the underflow 2248 by computing the power before the division, but this actually 2249 seems to be more or less equivalent (mpfr_pow_general is already 2250 used for MPFR_RNDN). 2251 2252 Also, removed the suggestion with rescaling as this may not be 2253 possible for large values of n compared to the maximum exponent. 2254 22552022-04-17 Vincent Lefevre <vincent@vinc17.net> 2256 2257 Corrected comment about the ".POSIX" line in all Makefile.am files. 2258 22592022-04-08 Vincent Lefevre <vincent@vinc17.net> 2260 2261 [TODO] Added idea of implementation for to_chars. 2262 22632022-04-07 Vincent Lefevre <vincent@vinc17.net> 2264 2265 [manual] For sqrt and rec_sqrt, mention the relation with rootn. 2266 2267 Updated TODO about rootn (now that mpfr_rootn_si is implemented). 2268 22692022-04-06 Vincent Lefevre <vincent@vinc17.net> 2270 2271 [src/pow_si.c] Added a static assertion and comments about code improvement. 2272 22732022-04-06 Vincent Lefevre <vincent@vinc17.net> 2274 2275 [src/log_ui.c] Updated comments to better understand that the code is correct. 2276 2277 Note: these are the same as in the 4.1 branch (commit 8f357dd48). 2278 So the ULONG2LONG macro was not necessary, but let's keep it for 2279 maintainability. This does not change for GCC and Clang. But tcc 2280 even generates shorter x86_64 code with this macro. 2281 22822022-04-06 Vincent Lefevre <vincent@vinc17.net> 2283 2284 [tests/tpow.c] Improved/added bad_cases tests of mpfr_pow_ui/si (x^n). 2285 2286 * For n odd, generate negative values y (thus x) with a probability 2287 1/2 (instead of a very low probability), as there is no reason to 2288 favor positive values in this case. 2289 * Added bad_cases tests of mpfr_pow_si with n negative (with the help 2290 of mpfr_rootn_si). This was the TODO from commit 58fc9fb0e. 2291 22922022-04-06 Vincent Lefevre <vincent@vinc17.net> 2293 2294 [tests] In some bad_cases messages, output the name of the function. 2295 2296 This is useful for tests with several bad_cases invocations, 2297 such as tpow, troot and trootn_si. 2298 22992022-04-06 Vincent Lefevre <vincent@vinc17.net> 2300 2301 [tests/{troot,trootn_si}.c] Added a comment about bad_cases. 2302 23032022-04-05 Vincent Lefevre <vincent@vinc17.net> 2304 2305 Added /trootn_si to tests/.gitignore 2306 23072022-04-05 Vincent Lefevre <vincent@vinc17.net> 2308 2309 src/root.c: for mpfr_rootn_si with k = -2, use mpfr_rec_sqrt. 2310 2311 The mpfr_rec_sqrt code is faster than the generic mpfr_rootn_si code 2312 for k = -2. 2313 2314 Also added a TODO: if MPFR_WANT_ASSERT >= 2, do both computations 2315 and compare the results. 2316 23172022-04-05 Vincent Lefevre <vincent@vinc17.net> 2318 2319 tests/trootn_si.c: fixed typo in error messages. 2320 23212022-04-05 Vincent Lefevre <vincent@vinc17.net> 2322 2323 src/pow_ui.c: bug fix with mini-gmp and limb < unsigned long. 2324 2325 The initial precision was too small for large values of n. 2326 ��� tpow and trootn_si no longer fail. 2327 23282022-04-05 Vincent Lefevre <vincent@vinc17.net> 2329 2330 tests/tpow.c: better generic tests for mpfr_pow_ui and mpfr_pow_si. 2331 2332 Changed INT_RAND_FUNCTION, in particular to use randulong / randlong 2333 for mini-gmp, yielding an assertion failure when MINI_GMP_LIMB_TYPE 2334 is shorter than "long". 2335 23362022-04-05 Vincent Lefevre <vincent@vinc17.net> 2337 2338 mpfrlint: ignore mini-gmp in some test. 2339 23402022-04-05 Vincent Lefevre <vincent@vinc17.net> 2341 2342 mpfr_rootn_si(): bug fix for n = LONG_MIN; added generic tests. 2343 2344 * src/root.c: bug fix in mpfr_rootn_si() for n = LONG_MIN 2345 (integer overflow on -n, triggered by the generic tests). 2346 * tests/trootn_si.c: added generic tests. 2347 Note: they currently yield an assertion failure in pow_ui.c with 2348 mini-gmp when MINI_GMP_LIMB_TYPE is shorter than "long". 2349 23502022-04-05 Vincent Lefevre <vincent@vinc17.net> 2351 2352 [tests] Add randulong and randlong functions (useful with mini-gmp). 2353 2354 To get a random unsigned long, randlimb() is currently used, but with 2355 mini-gmp, a limb may be shorter than an unsigned long, so that one 2356 does not get all the possible "unsigned long" values. So these new 2357 randulong() and randlong() functions should now be used instead. 2358 23592022-04-05 Vincent Lefevre <vincent@vinc17.net> 2360 2361 Define a ULONG2LONG() macro to convert from unsigned long to long. 2362 2363 The conversion is done with the two's complement rule 2364 (i.e. modular arithmetic) in a portable way. 2365 * doc/README.dev: mention this macro (the technique was already 2366 described). 2367 * src/log_ui.c: use this macro instead of non-portable code due to 2368 the case n = LONG_MAX + 1. 2369 * src/mpfr-impl.h: define this macro. 2370 23712022-04-05 Vincent Lefevre <vincent@vinc17.net> 2372 2373 trootn_si.c: more mpfr_rootn_si tests on special values 2374 2375 doc/mpfr.texi: Updated the month. 2376 2377 New function mpfr_rootn_si 2378 23792022-04-04 Vincent Lefevre <vincent@vinc17.net> 2380 2381 [src/root.c] Updated a comment for mpfr_rootn_ui. 2382 2383 This comment was correct for mpfr_root, but I forgot to update it when 2384 changing this function to mpfr_rootn_ui (where this case differs) in 2385 commit 117c726a863e243634c8e5fbaae0265cac90a4a1. 2386 23872022-04-04 Vincent Lefevre <vincent@vinc17.net> 2388 2389 [tests/troot.c] Added a comment. 2390 2391 [tests/tpow.c] Added a TODO about tests with bad_cases. 2392 2393 [tests/tpow.c] Corrected messages. 2394 2395 [tests/tpow.c] For rootN, use mpfr_root and mpfr_rootn_ui randomly. 2396 23972022-04-04 Vincent Lefevre <vincent@vinc17.net> 2398 2399 [tests] Define RAND_BOOL() macro (random boolean) and use it. 2400 2401 In the tests directory: 2402 * mpfr-test.h: define RAND_BOOL() macro, with type int. 2403 * mpfr-test.h and various .c files: replace "randlimb () & 1" and 2404 "randlimb () % 2" by "RAND_BOOL ()". 2405 * tfprintf.c, tsprintf.c: use the same code as tprintf.c. 2406 24072022-04-04 Vincent Lefevre <vincent@vinc17.net> 2408 2409 In the tests, fixed "randlimb () % 1", mistaken for "randlimb () & 1". 2410 2411 This occurred only in tests/tfmma.c (5 occurrences), with the 2412 consequence of fewer cases of different kinds in the tests. 2413 2414 Such a kind of mistake is now detected by mpfrlint (commit 2a90f0c91). 2415 24162022-04-04 Vincent Lefevre <vincent@vinc17.net> 2417 2418 mpfrlint: detect "% 1" (modulo 1), which always gives 0. 2419 2420 This is probably mistaken for "& 1" or "% 2", as currently in 2421 "tests/tfmma.c". 2422 24232022-03-30 Vincent Lefevre <vincent@vinc17.net> 2424 2425 [TODO] Moved and updated item. 2426 2427 Since this is about functions in IEEE 754-2019, it makes more sense 2428 to have this item after the new functions of IEEE 754-2008. 2429 24302022-03-30 Vincent Lefevre <vincent@vinc17.net> 2431 2432 [TODO] Updated item (with non-public URL removed). 2433 24342022-03-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2435 2436 [TODO] added item 2437 24382022-03-29 Vincent Lefevre <vincent@vinc17.net> 2439 2440 Fixed version-ext.sh, in particular when used after "./autogen.sh". 2441 2442 After running autogen.sh, version-ext.sh incorrectly detected files 2443 as modified. Solution: refresh the git index before git diff-index. 2444 24452022-03-28 Vincent Lefevre <vincent@vinc17.net> 2446 2447 [acinclude.m4] Fix/improve MPFR_CHECK_LIBM and MPFR_CHECK_LIBQUADMATH. 2448 2449 With a GCC snapshot, -Werror=infinite-recursion was yielding an 2450 error in AC_CHECK_LIB for function "main". So, define MPFR_HAVE_LIB 2451 to be used instead of AC_CHECK_LIB when it is not needed to test any 2452 function. So, use it in MPFR_CHECK_LIBM and MPFR_CHECK_LIBQUADMATH. 2453 Also updated MPFR_CHECK_LIBM from the current libtool.m4 code, as 2454 done in the past. 2455 24562022-03-24 Vincent Lefevre <vincent@vinc17.net> 2457 2458 [get_d128.c] Updated FIXME comment. 2459 24602022-03-24 Vincent Lefevre <vincent@vinc17.net> 2461 2462 Added a TODO efficiency item about the size of the MPFR library. 2463 2464 Reduce the size of the MPFR library generated by GCC by avoiding 2465 operations on _Decimal128 in get_d128.c when its encoding is BID. 2466 24672022-02-18 Vincent Lefevre <vincent@vinc17.net> 2468 2469 [algorithms.tex] Cleanup: ^\infty ��� ^{\infty} 2470 2471 Using a command after _ (subscript) or ^ (superscript) is discouraged 2472 as it might break with future TeX versions, as already seen. 2473 Discussion: 2474 https://tug.org/pipermail/tex-live/2022-February/047780.html 2475 24762022-02-18 Vincent Lefevre <vincent@vinc17.net> 2477 2478 [algorithms.tex] Updated 2 URLs in comments (http ��� https). 2479 24802022-02-03 Vincent Lefevre <vincent@vinc17.net> 2481 2482 Updated a comment: added a ref to WG14/N2921 about large bit-fields. 2483 24842022-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2485 2486 [src/nrandom.c] added reference 2487 24882022-01-18 Vincent Lefevre <vincent@vinc17.net> 2489 2490 Updated the FIXME in acinclude.m4 for MPFR_CHECK_LIBM. 2491 24922022-01-18 Vincent Lefevre <vincent@vinc17.net> 2493 2494 Added FIXME in acinclude.m4 for MPFR_CHECK_LIBM. 2495 2496 With a GCC snapshot: 2497 error: infinite recursion detected [-Werror=infinite-recursion] 2498 24992022-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2500 2501 [TODO] removed an item (done in the web page for each release) 2502 25032022-01-14 Vincent Lefevre <vincent@vinc17.net> 2504 2505 doc/mpfr.texi: Updated the month. 2506 25072022-01-12 Vincent Lefevre <vincent@vinc17.net> 2508 2509 [tests] Added a comment about the output of pointer values. 2510 25112022-01-10 Vincent Lefevre <vincent@vinc17.net> 2512 2513 [doc/README.dev] Updated "To make a release". 2514 2515 Added a paragraph about config.guess and config.sub. 2516 25172022-01-06 Vincent Lefevre <vincent@vinc17.net> 2518 2519 Added a TODO to improve mpfr_pow_si/sj. 2520 2521 Computing POW_U before the division (instead of after) would reduce 2522 the error in the intermediate result. 2523 25242022-01-06 Vincent Lefevre <vincent@vinc17.net> 2525 2526 Updated a comment about a clang bug. 2527 2528 Updated a comment about a clang bug. 2529 25302022-01-06 Vincent Lefevre <vincent@vinc17.net> 2531 2532 Copyright notice update: added 2022. 2533 2534 Command used: 2535 perl -pi -e 's/ (\d{4}-)?(2021)(?= Free Software)/ 2536 " ".($1||"$2-").($2+1)/e' **/*(^/) 2537 under zsh. 2538 Removed 2021 from the example in the doc/README.dev file. 2539 25402021-12-26 Vincent Lefevre <vincent@vinc17.net> 2541 2542 README.dev: added C2x draft URL (N2731). 2543 2544 Corrected style (spurious space before comma). 2545 25462021-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2547 2548 gnu style 2549 25502021-11-25 Vincent Lefevre <vincent@vinc17.net> 2551 2552 Move code for git info to its own shell script "version-ext.sh". 2553 2554 * New version-ext.sh file: sh script to output MPFR version information 2555 for a Git working tree (old code from tests/Makefile.am). 2556 * tests/Makefile.am: replace some output_info code by the use of this 2557 script. 2558 * Makefile.am: add version-ext.sh to EXTRA_DIST as a consequence 2559 (a comment explains why). 2560 * README: list this new version-ext.sh file as a consequence. 2561 25622021-11-25 Vincent Lefevre <vincent@vinc17.net> 2563 2564 Another fix in the code for git info output by "make check". 2565 2566 tests/Makefile.am: in output_info, replaced "grep" by "$(GREP)". 2567 25682021-11-25 Vincent Lefevre <vincent@vinc17.net> 2569 2570 Fixed git info output by "make check". 2571 2572 tests/Makefile.am: when discarding excluded branches, the match should 2573 be done on the full branch name, not a subword; so, added the -x grep 2574 option (specified by POSIX). 2575 25762021-11-25 Vincent Lefevre <vincent@vinc17.net> 2577 2578 Updated tests_run_within_valgrind() comment in "tests/tests.c". 2579 25802021-11-23 Vincent Lefevre <vincent@vinc17.net> 2581 2582 README.dev: added note about the formally proven code and requirements. 2583 2584 Update of INSTALL file about CompCert. 2585 25862021-11-22 Vincent Lefevre <vincent@vinc17.net> 2587 2588 doc/mpfr.texi: Updated the month. 2589 25902021-11-22 Vincent Lefevre <vincent@vinc17.net> 2591 2592 For git info output by "make check", check for modifications. 2593 2594 tests/Makefile.am: updated output_info code to add " (modified)" 2595 when the working tree has been modified (compared to HEAD). 2596 25972021-11-22 Vincent Lefevre <vincent@vinc17.net> 2598 2599 Added info to doc/README.dev about <branch>-root tags. 2600 26012021-11-22 Vincent Lefevre <vincent@vinc17.net> 2602 2603 Removed a usless comment about git info output by "make check". 2604 2605 tests/Makefile.am: removed the comment about the unimplemented 2606 solution with possible *-branch tags (I think that it would not 2607 work well with merges). 2608 26092021-11-22 Vincent Lefevre <vincent@vinc17.net> 2610 2611 Improved code to output git info from "make check". 2612 2613 tests/Makefile.am: updated output_info code and comment. 2614 We now use <branch>-root tags to find to correct branch, by excluding 2615 branches created after the current HEAD. 2616 26172021-11-22 Vincent Lefevre <vincent@vinc17.net> 2618 2619 Fixed git info output by "make check". 2620 2621 tests/Makefile.am: in output_info, added a "|| true" on a shell command 2622 that may fail (grep with no matches). 2623 26242021-11-22 Vincent Lefevre <vincent@vinc17.net> 2625 2626 Added a FIXME for git info output by "make check". 2627 2628 The recent additions to tests/Makefile.am work well for master (and 2629 detached HEAD state), but not for the 4.1 branch, where $gitb gets 2630 empty, even though testing from an interactive shell (/bin/sh = dash) 2631 does not show any issue. 2632 26332021-11-22 Vincent Lefevre <vincent@vinc17.net> 2634 2635 Improved git info output by "make check". 2636 2637 tests/Makefile.am: modified output_info to output: 2638 * the detected branch, which also works in detached HEAD state 2639 (for old commits that can be found in multiple branches, 2640 "master" is prefered over the other branches); 2641 * the total commit count; 2642 * the commit id (hash). 2643 26442021-11-22 Vincent Lefevre <vincent@vinc17.net> 2645 2646 Add git info with "git describe" for "make check" (to be improved). 2647 2648 tests/Makefile.am: in output_info, add git info, but this does not 2649 output the branch. For instance, on master, one gets something like 2650 "4.1-root-491-g2933fad3a", and something similar on the 4.1 branch. 2651 As the solution needs to work in detached HEAD state, we may want to 2652 add *-branch tags to identify the first commit of a branch, and use 2653 git describe --match '*-branch' 2654 instead of 2655 git describe --match '*-root' 2656 26572021-11-15 Vincent Lefevre <vincent@vinc17.net> 2658 2659 Documentation: some improvements about the "decimal-point character". 2660 2661 * doc/README.dev: update about the use in the MPFR manual (mpfr.texi). 2662 * doc/mpfr.texi: minor correction. 2663 26642021-11-05 Vincent Lefevre <vincent@vinc17.net> 2665 2666 [doc/algorithms.tex] Add \pdfglyphtounicode{lscript}{2113} for \ell. 2667 2668 Otherwise one gets a grave accent (thus "s ��� l" cannot be found). 2669 If the "���" is still an issue, one could alternatively use 2670 \pdfglyphtounicode{lscript}{006C} 2671 to get an "l" (but "l" also matches "���" in xpdf and atril). 2672 26732021-11-05 Vincent Lefevre <vincent@vinc17.net> 2674 2675 [doc/algorithms.tex] Add some ToUnicode mappings. 2676 2677 This fixes some regressions compared to old LaTeX versions (in 2009). 2678 26792021-10-24 Vincent Lefevre <vincent@vinc17.net> 2680 2681 doc/mpfr.texi: Updated the month. 2682 26832021-10-24 Vincent Lefevre <vincent@vinc17.net> 2684 2685 mpfrlint: fixed git usage. 2686 2687 The change done in 52138701d9b920d608871b20d4bee30f59adede6 wasn't 2688 working when the latest commit wasn't on "doc/mpfr.texi". 2689 26902021-10-24 Vincent Lefevre <vincent@vinc17.net> 2691 2692 mpfrlint: update for git. 2693 2694 This is used to check that the doc/mpfr.texi UPDATED-MONTH value is 2695 up-to-date by comparing it with the date of the latest commit. 2696 26972021-10-24 Vincent Lefevre <vincent@vinc17.net> 2698 2699 In mpfr.texi, added a "@." to avoid a warning from mpfrlint. 2700 2701 Note: This is not needed at the end of a paragraph like here, but 2702 this is a general warning, just in case text is added or moved. 2703 27042021-10-24 Vincent Lefevre <vincent@vinc17.net> 2705 2706 mpfr.texi cleanup: removed the obsolete @refill command. 2707 2708 This command was needed in the past, but it now generates a warning 2709 "@refill is obsolete" (as of Texinfo 6.8 - 2021-07-03). 2710 It is no longer needed, as least since Texinfo 4.2: 2711 https://ftp.gnu.org/old-gnu/Manuals/texinfo-4.2/html_node/Refilling-Paragraphs.html 2712 27132021-10-19 Vincent Lefevre <vincent@vinc17.net> 2714 2715 Added .mailmap file. 2716 27172021-10-17 Vincent Lefevre <vincent@vinc17.net> 2718 2719 Added a TODO/FIXME to add Git information to "make check". 2720 2721 Partial update of doc/README.dev due to the migration to Inria GitLab. 2722 2723 Updated README due to the migration to Inria GitLab. 2724 27252021-09-27 Vincent Lef��vre <vincent@vinc17.net> 2726 2727 [src/mparam_h.in] Updated comment about GCC. 2728 27292021-09-24 Vincent Lef��vre <vincent@vinc17.net> 2730 2731 [INSTALL] Update about MinGW: the old mingw.org website no longer 2732 exists, and MinGW has actually been replaced by Mingw-w64, which 2733 is for both 32-bit and 64-bit Windows. 2734 2735 [README] Updated URLs. 2736 27372021-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2738 2739 missing url 2740 2741 added new preprint 2742 27432021-09-16 Vincent Lef��vre <vincent@vinc17.net> 2744 2745 [doc/mpfr.texi] Updated the month. 2746 27472021-09-16 Vincent Lef��vre <vincent@vinc17.net> 2748 2749 [doc/mpfr.texi] Corrected garbled mpfr_set* description. 2750 2751 Thanks to Rob for noticing: 2752 https://sympa.inria.fr/sympa/arc/mpfr/2021-09/msg00003.html 2753 2754 The cause is a sentence that was inserted at the wrong place in r8225 2755 (2012-06-25). 2756 27572021-09-14 Vincent Lef��vre <vincent@vinc17.net> 2758 2759 [src/inp_str.c] Added a FIXME on a deprecated use of ungetc. 2760 27612021-09-13 Vincent Lef��vre <vincent@vinc17.net> 2762 2763 Autoconf / AX_PTHREAD related update and cleanup. 2764 2765 * m4/ax_pthread.m4: update to AX_PTHREAD 31, fixing a change 2766 from AX_PTHREAD 29, which has eventually been regarded as 2767 a bug (workaround in r14481). 2768 * configure.ac: removed the now unneeded AC_CANONICAL_TARGET; 2769 updated the corresponding comment. 2770 27712021-09-09 Vincent Lef��vre <vincent@vinc17.net> 2772 2773 [TODO] More about intrinsics (e.g. _addcarry_u64). 2774 2775 [TODO] + use intrinsics when available (needs a configure test). 2776 27772021-09-07 Vincent Lef��vre <vincent@vinc17.net> 2778 2779 [tests/tests.c] In a comment with a GMP_CHECK_RANDOMIZE value, mention 2780 the SVN revision and date, as this value may no longer be valid in the 2781 future (when tests are added or changed). 2782 2783 [tests/tests.c] Fixed bad_cases when y is ��0 (rare case). 2784 27852021-08-23 Vincent Lef��vre <vincent@vinc17.net> 2786 2787 [doc/README.dev] Updated/reduced note about MinGW and stdio. 2788 27892021-08-23 Vincent Lef��vre <vincent@vinc17.net> 2790 2791 [INSTALL] Updated information about MinGW and the formatted output 2792 functions (printf, etc.). 2793 2794 Thanks to Pali Roh��r for the information about -std=c89. 2795 27962021-08-23 Vincent Lef��vre <vincent@vinc17.net> 2797 2798 [tests/tget_set_d128.c] Removed a useless C99 comment, which makes 2799 the MPFR build fail with "i686-w64-mingw32-gcc -std=c89" (e.g. via 2800 ./configure --host=i686-w64-mingw32, and -std=c89 in CFLAGS). 2801 2802 [tests/tsprintf.c] In locale_da_DK(), also try da_DK.utf8 (preferably): 2803 in Debian/unstable, da_DK no longer exists. 2804 28052021-08-20 Vincent Lef��vre <vincent@vinc17.net> 2806 2807 [doc/mpfr.texi] Updated the month. 2808 2809 [doc/mpfr.texi] Corrected latest change (typography). 2810 2811 [doc/mpfr.texi] Detail the mpfr_min and mpfr_max description. 2812 28132021-08-03 Vincent Lef��vre <vincent@vinc17.net> 2814 2815 [tests/tget_flt.c] Avoid a warning about unused function equal_flt 2816 when HAVE_SUBNORM_FLT is not defined. 2817 2818 [tests/tget_flt.c] Code style: replaced "��� == 0" by "! ���" on 2819 the Boolean _p functions. 2820 28212021-08-03 Vincent Lef��vre <vincent@vinc17.net> 2822 2823 [tests/tget_flt.c] Removed bug_icx (duplicate test). 2824 2825 What was tested was just mpfr_get_flt on a NaN mpfr_t. But this was 2826 already tested in main(). And one gets the same result and error with 2827 icx (without -fp-model=strict). Moreover, the old test was correctly 2828 protected by "#if !defined(MPFR_ERRDIVZERO)", needed because NaN is 2829 defined by 0.0 / 0.0. 2830 28312021-08-03 Vincent Lef��vre <vincent@vinc17.net> 2832 2833 [tests/tget_flt.c] In bug_icx: replaced mpfr_set_flt, whose float 2834 argument was yielding an underflow (not portable), by mpfr_set_si_2exp 2835 (it is mpfr_get_flt that is tested, not mpfr_set_flt). 2836 2837 [tests/tget_flt.c] Added FIXME for test added in r14552. 2838 2839 [tests/tget_flt.c] Portability correction. 2840 28412021-08-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2842 2843 need -fp-model=strict for icx 2844 28452021-07-27 Vincent Lef��vre <vincent@vinc17.net> 2846 2847 [TODO] Mention "[[noreturn]]". 2848 28492021-07-15 Vincent Lef��vre <vincent@vinc17.net> 2850 2851 [src/ieee_floats.h] URL update (http ��� https). 2852 28532021-07-01 Vincent Lef��vre <vincent@vinc17.net> 2854 2855 [tools/mpfrlint] Detect when the return value of fclose() or fflush() 2856 is compared with -1 instead of EOF. 2857 28582021-06-30 Vincent Lef��vre <vincent@vinc17.net> 2859 2860 [tests/tprintf.c] Portability correction (EOF is not necessarily -1). 2861 28622021-06-21 Vincent Lef��vre <vincent@vinc17.net> 2863 2864 Punctuation (missing comma after "however"). 2865 2866 [doc/README.dev] No longer use /tmp in examples so that the reader is 2867 not encouraged to use it. Punctuation. 2868 28692021-06-08 Vincent Lef��vre <vincent@vinc17.net> 2870 2871 [acinclude.m4] Fixed subnormal detection (issue found with icx). 2872 28732021-06-03 Vincent Lef��vre <vincent@vinc17.net> 2874 2875 [tests/tget_d.c] Improved error messages. 2876 28772021-06-03 Vincent Lef��vre <vincent@vinc17.net> 2878 2879 [tests/tget_d.c] Error message when check_inf_nan() fails for NaN. 2880 2881 Note: With "icx -O2" (at least), 8 tests are now failing with 2882 Intel(R) oneAPI DPC++ Compiler 2021.2.0 (2021.2.0.20210317). 2883 But no failures when the compiler is invoked as "clang". 2884 28852021-06-02 Vincent Lef��vre <vincent@vinc17.net> 2886 2887 [doc/mpfr.texi] Updated the month. 2888 28892021-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2890 2891 [doc/mpfr.texi] some figures about slowdown with C++ interface 2892 28932021-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2894 2895 [tests/data/j1] added more tests 2896 2897 [tests/tests.c] fixed bug introduced in r13787, which invalidated data_check 2898 in some cases 2899 29002021-05-20 Vincent Lef��vre <vincent@vinc17.net> 2901 2902 [doc/mpfr.texi] Completed mpfr_fmodquo and mpfr_remquo description. 2903 2904 [src/rem1.c] Improved comments. 2905 29062021-05-17 Vincent Lef��vre <vincent@vinc17.net> 2907 2908 [tests/tsprintf.c] Cosmetic revert of blank line removal in r14519. 2909 29102021-05-17 Vincent Lef��vre <vincent@vinc17.net> 2911 2912 [src/vasprintf.c] Fixed buffer_cat: replaced incorrect assertion len > 0 2913 by a test. 2914 2915 Note that len == 0 is possible when outputting an integer 0 (either a 2916 native one or mpfr_prec_t) with precision field = 0. The consequence 2917 of this bug: 2918 * In debug mode (MPFR_ASSERTD assertion checking), one would get an 2919 assertion failure. 2920 * Otherwise, there should be no side effects since the code was valid 2921 for len == 0, possibly except with LTO (very unlikely, though). 2922 2923 This incorrect assertion was added on 2009-03-13 in r6099. 2924 29252021-05-17 Vincent Lef��vre <vincent@vinc17.net> 2926 2927 [tests/tsprintf.c] Similarly to r14514, added tests of native integer 0 2928 with precision field 0 (also yields a call to buffer_cat with len = 0). 2929 2930 [tests/tsprintf.c] For various test functions, changed the return type 2931 from int to void (when the value is never used). 2932 29332021-05-16 Vincent Lef��vre <vincent@vinc17.net> 2934 2935 [src/vasprintf.c] Updated comment about the output for the 'a'/'A' 2936 conversion specifier. 2937 2938 [doc/mpfr.texi] Formatted output functions (mpfr_*printf): completed 2939 the specification concerning the precision (this was needed because 2940 the conversion specifier 'b' does not exist in C). 2941 29422021-05-12 Vincent Lef��vre <vincent@vinc17.net> 2943 2944 [src/vasprintf.c] Added a comment about the output for the 'a'/'A' 2945 conversion specifier, which is completely unintuitive. FIXME? 2946 2947 [doc/mpfr.texi] Punctuation. 2948 2949 [tests/tsprintf.c] Added tests of specifier 'P' with precision field 0. 2950 29512021-05-11 Vincent Lef��vre <vincent@vinc17.net> 2952 2953 [TODO] More about mpfr_fda / mpfr_fds. 2954 2955 [TODO] + Fused divide-add and fused divide-subtract (mpfr_fda, mpfr_fds). 2956 29572021-05-03 Vincent Lef��vre <vincent@vinc17.net> 2958 2959 [doc/mpfr.texi,src/mpfr.h] Detail about the mpfr_pown implementation. 2960 29612021-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2962 2963 [NEWS] added missing mpfr_pown (alias for mpfr_pow_sj) 2964 2965 [manual] added mpfr_powm in NEWS 2966 (https://sympa.inria.fr/sympa/arc/mpfr/2021-05/msg00000.html) 2967 29682021-05-03 Vincent Lef��vre <vincent@vinc17.net> 2969 2970 [doc/mpfr.texi] Updated the month (due to r14505). 2971 29722021-04-30 Vincent Lef��vre <vincent@vinc17.net> 2973 2974 [src/sin.c] Added a TODO about range reduction. 2975 29762021-04-26 Vincent Lef��vre <vincent@vinc17.net> 2977 2978 [tests/tstrtofr.c] Check more infinity strings. 2979 29802021-04-26 Vincent Lef��vre <vincent@vinc17.net> 2981 2982 [doc] Update about "case insensitive" and issue with Turkish locales 2983 for "I" / "i". 2984 2985 * mpfr.texi: added "with the rules of the C locale" in the 2986 mpfr_strtofr description. 2987 * README.dev: completed information about Turkish locales. 2988 29892021-04-24 Vincent Lef��vre <vincent@vinc17.net> 2990 2991 [tests/tpowr.c] Added generic tests. 2992 2993 [src/exceptions.c] Corrected latest comment. 2994 29952021-04-23 Vincent Lef��vre <vincent@vinc17.net> 2996 2997 [src/exceptions.c] Replaced comment about logging (the issue was due to 2998 the mpfr_check_range macro). 2999 3000 [src/exceptions.c] Completed comment about a logging issue. 3001 3002 [src/exceptions.c] Added a comment about a logging issue. 3003 3004 [src/mpfr-impl.h] Logging: output the flags at "IN" and "OUT". 3005 3006 [tests/tsgn.c] Also test in a very reduced exponent range. 3007 3008 [tests/tsgn.c] Also test the flags. 3009 30102021-04-23 Vincent Lef��vre <vincent@vinc17.net> 3011 3012 [src/get_str.c] Fixed bug in mpfr_get_str_ndigits introduced in r14494. 3013 3014 Note: the issue (an uninitialized variable) was detected by GCC 6.5.0; 3015 recent GCC versions miss the -Wmaybe-uninitialized warning. 3016 30172021-04-23 Vincent Lef��vre <vincent@vinc17.net> 3018 3019 mpfr_get_str_ndigits: added an assertion / exploitable compiler hint. 3020 3021 [src/get_str.c] Improved mpfr_get_str_ndigits code structure. 3022 30232021-04-23 Vincent Lef��vre <vincent@vinc17.net> 3024 3025 In various functions, use mpfr_equal_p() instead of mpfr_cmp() == 0. 3026 3027 Note: In these cases, the test should be false if one of the arguments 3028 is NaN (it is not always clear whether NaN is impossible, but just in 3029 case, mpfr_equal_p is safer, in particular if the code around changes; 3030 and this is more readable too). 3031 30322021-04-23 Vincent Lef��vre <vincent@vinc17.net> 3033 3034 [src/get_str.c] Use mpfr_equal_p() instead of mpfr_cmp() == 0. 3035 3036 [tests] Added tpowr to svn:ignore property. 3037 30382021-04-23 Vincent Lef��vre <vincent@vinc17.net> 3039 3040 Fixed bug in mpfr_get_str_ndigits. 3041 3042 * src/get_str.c: use MPFR_SAVE_EXPO_MARK / MPFR_SAVE_EXPO_FREE to fix 3043 2 issues in mpfr_get_str_ndigits: the inexact flag could be raised 3044 (bug reported by Pierre Chatelier[*]); undefined behavior in a very 3045 reduced exponent range. 3046 * tests/tget_str.c: check the above issues in the tests. 3047 3048 [*] https://sympa.inria.fr/sympa/arc/mpfr/2021-04/msg00000.html 3049 30502021-04-16 Vincent Lef��vre <vincent@vinc17.net> 3051 3052 [src/mpfr-impl.h] Added cast to int for __LINE__ in formatted output. 3053 3054 The standard just says that __LINE__ in an integer constant. So its 3055 type might be larger than int, even though the value is representable 3056 in an int (like in MPFR). This concerns logging code, only available 3057 for GCC compatible compilers, so that there should not be any issue 3058 without the cast, but just in case... 3059 30602021-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3061 3062 [tests/thypot.c] added one test 3063 30642021-03-19 Vincent Lef��vre <vincent@vinc17.net> 3065 3066 Added m4/ax_pthread.m4 file, and related updates. 3067 3068 Added m4/ax_pthread.m4 from 3069 https://github.com/autoconf-archive/autoconf-archive 3070 and updated: 3071 * acinclude.m4 (in particular, set CXX and CXXFLAGS) 3072 * doc/README.dev 3073 30742021-03-19 Vincent Lef��vre <vincent@vinc17.net> 3075 3076 [configure.ac] Avoid an issue with ordering of macros we don't use 3077 explicitly, which appears with ax_pthread.m4 29, i.e. with 3078 https://github.com/autoconf-archive/autoconf-archive/commit/2567e0ce0f3a11b535c6b527386197fb49ff172b 3079 30802021-03-18 Vincent Lef��vre <vincent@vinc17.net> 3081 3082 [acinclude.m4] Added a comment about AX_PTHREAD. 3083 30842021-03-18 Vincent Lef��vre <vincent@vinc17.net> 3085 3086 Get rid of obsolescent AC_HEADER_TIME. Cleanup about sys/time.h usage. 3087 3088 The AC_HEADER_TIME macro is obsolescent in autoconf 2.69 (2012), 3089 and autoconf 2.71 (2021) outputs a warning, which makes autogen.sh 3090 fail due to "--warnings=all,error", so let's avoid the warnings. 3091 This macro defines TIME_WITH_SYS_TIME, used only in tests/tests.c 3092 (but actually not needed). We actually have two cases: 3093 1. HAVE_GETTIMEOFDAY is defined: we use gettimeofday(), which 3094 needs <sys/time.h>. 3095 2. Otherwise: we use time(), which needs <time.h>. 3096 3097 Based on that, we can simplify the condition in tests/tests.c for 3098 the inclusion of time-related headers, and we no longer need to 3099 check the <sys/time.h> availability. If gettimeofday() is defined 3100 but <sys/time.h> is not available (which shouldn't occur), then 3101 the current gettimeofday() usage may be incorrect anyway. 3102 3103 Changes: 3104 * acinclude.m4: 3105 - no longer use AC_HEADER_TIME; 3106 - no longer check the sys/time.h header. 3107 * tests/tests.c: simplify the inclusion of time-related headers. 3108 31092021-03-18 Vincent Lef��vre <vincent@vinc17.net> 3110 3111 [tools/mpfrlint] Detect mpn_mul_n with identical 2nd and 3rd arguments, 3112 which can be replaced by the faster mpn_sqr. 3113 31142021-03-16 Vincent Lef��vre <vincent@vinc17.net> 3115 3116 Replaced "intensional" by "intentional" in comments. 3117 3118 Untabify and remove trailing spaces. 3119 31202021-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3121 3122 [src/rec_sqrt.c] replace a call to mpn_mul_n with identical arguments by 3123 a call to mpn_sqr + similar changes in other files 3124 (thanks Fredrik Johansson) 3125 3126 [tests/trec_sqrt.c] added timing test 3127 31282021-03-09 Vincent Lef��vre <vincent@vinc17.net> 3129 3130 [doc/mpfr.texi] Updated the month. 3131 3132 [src/mpfr.h] Comment: no need to write "user" with uppercase letters. 3133 31342021-03-08 Vincent Lef��vre <vincent@vinc17.net> 3135 3136 [tests/{tset_si.c,tset_sj.c}] Fix when -DMPFR_USE_NO_MACRO is used. 3137 3138 The mpfr_get_exp() function checks that the argument is a regular 3139 number, but the corresponding macro doesn't. The test code was 3140 calling mpfr_get_exp() on 0, thus failed with MPFR_USE_NO_MACRO 3141 defined. Here, the code was correct with the macro, because the 3142 value was not used for the particular case 0. 3143 3144 This is fixed by testing 0 earlier (and doing a goto, but the code 3145 has fewer tests and should be simpler to understand). Moreover, 3146 mpfr_get_exp has been replaced by MPFR_GET_EXP, so that the argument 3147 is checked with --enable-assert. 3148 31492021-03-08 Vincent Lef��vre <vincent@vinc17.net> 3150 3151 [tests/{texceptions.c,tset_exp.c}] Forgot to protect the tests with 3152 casts to "void *", invalid in C++ (completing r14460 and r14461). 3153 31542021-03-08 Vincent Lef��vre <vincent@vinc17.net> 3155 3156 Clarification about the custom interface and macros. 3157 3158 * doc/mpfr.texi: added some text in Section "Custom Interface". 3159 * src/mpfr.h: replaced the remaining FIXME by another comment. 3160 31612021-03-08 Vincent Lef��vre <vincent@vinc17.net> 3162 3163 [tests] Ignore GCC's -Wc++-compat in the tests that are invalid in C++ 3164 (these tests are enabled only if __cplusplus is not defined). 3165 31662021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3167 3168 [tests] In C++, do not cast to "void *" in the tests of macros. 3169 3170 These casts make the build of these tests fail with a C++ compiler. 3171 But this means that the use of macros will not introduce any issue 3172 concerning the type of the arguments, i.e. with a C++ compiler, the 3173 tests are still complete after this change. 3174 3175 However, GCC's -Werror=c++-compat still cannot be used. 3176 To avoid this issue, diagnostic pragmas will be needed. 3177 31782021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3179 3180 [src/mpfr.h] Fixed mpfr_set macro (now only available with __GNUC__). 3181 31822021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3183 3184 [tests/tset.c] Added tests of the mpfr_set macro. 3185 3186 Without MPFR_USE_NO_MACRO, the compilation currently fails because 3187 the second argument is not converted to mpfr_srcptr when MPFR_SIGN 3188 is applied. 3189 31902021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3191 3192 [src/mpfr.h] Fixed mpfr_copysign and mpfr_signbit macros. 3193 31942021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3195 3196 Added tests of mpfr_copysign, mpfr_setsign and mpfr_signbit macros. 3197 3198 Without MPFR_USE_NO_MACRO, the compilation of these tests in tcopysign.c 3199 currently fails because some arguments are not converted to mpfr_srcptr. 3200 32012021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3202 3203 [src/ubf.c] Forgot a cast from UBF pointer to mpfr_t pointer. 3204 3205 This became visible with the fix of the mpfr_get_prec macro in r14454. 3206 32072021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3208 3209 [src/mpfr.h] Fixed mpfr_get_prec and mpfr_get_exp macros. 3210 32112021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3212 3213 Added tests of mpfr_get_prec and mpfr_get_exp macros. 3214 3215 Without MPFR_USE_NO_MACRO, the compilation of these tests 3216 in texceptions.c and tset_exp.c currently fails because 3217 the argument is not converted to mpfr_srcptr. 3218 32192021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3220 3221 [src/mpfr.h] Better implementation of macros changed in r14451. 3222 __GNUC__ is no longer needed. 3223 32242021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3225 3226 [src/mpfr.h] Fixed some macros implementing functions. 3227 3228 Macros mpfr_nan_p, mpfr_inf_p, mpfr_zero_p and mpfr_regular_p were 3229 incorrect since they yielded a compilation error when the argument 3230 was of type void *, for instance. Their definition as macros is now 3231 available only with __GNUC__. 3232 The tisnan test r14448 should no longer fail. 3233 3234 Also added a comment for mpfr_sgn, which is correct since documented 3235 as a macro. 3236 32372021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3238 3239 [tests/tisnan.c] Added commented code for testing compilation errors. 3240 32412021-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3242 3243 [src/mpfr.h] fixed typo 3244 32452021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3246 3247 [tests/tisnan.c] Check that when mpfr_nan_p, mpfr_inf_p, mpfr_number_p, 3248 mpfr_zero_p and mpfr_regular_p is implemented as a macro, it behaves 3249 like a function. 3250 3251 [src/mpfr.h] Added a comment and a FIXME for functions implemented 3252 as macros. 3253 32542021-03-06 Vincent Lef��vre <vincent@vinc17.net> 3255 3256 Reverted r14445: This is about functions implemented as macros, and 3257 in this case, a macro must behave like a function. 3258 3259 In particular, each argument must be evaluated one time exactly. 3260 Macros that behave differently will need to be fixed. 3261 3262 Tests should also be added like the one in tests/tset_si.c with the 3263 comment: 3264 3265 /* Note: the ++'s below allow one to check that the corresponding 3266 arguments are evaluated only once by the macros. */ 3267 32682021-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3269 3270 [doc/mpfr.texi] document that functions defined as macros might evaluate 3271 their arguments several times 3272 (see https://sympa.inria.fr/sympa/arc/mpfr/2021-03/msg00007.html) 3273 3274 [src/mpfr.h] fixed typo 3275 32762021-03-04 Vincent Lef��vre <vincent@vinc17.net> 3277 3278 [TODO] Clarification. 3279 3280 [TODO] Updated item on pkg-config due to a bug in pkg-config. 3281 3282 [TODO] Added "add some option to use pkg-config...". 3283 32842021-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3285 3286 [src/invsqrt_limb.h] use "unsigned short" for table T[] instead of mp_limb_t. 3287 On araignee.loria.fr, this saves about 1 cycle, when GMP 6.2.1 and MPFR are 3288 configured with --disable-shared, using mbench. 3289 3290 Before this change (medium of 5 runs, with turbo-boost disabled): 3291 $ numactl --physcpubind=0 ./mfv5 -i0 -p53 mpfr_sqrt mpfr_sqrt mpfr_sqrt 3292 mpfr_sqrt: 48 / 53.39 / 60 3293 $ numactl --physcpubind=0 ./mfv5 -i0 -p113 mpfr_sqrt mpfr_sqrt mpfr_sqrt 3294 mpfr_sqrt: 75 / 81.44 / 89 3295 3296 After this change: 3297 $ numactl --physcpubind=0 ./mfv5 -i0 -p53 mpfr_sqrt mpfr_sqrt mpfr_sqrt 3298 mpfr_sqrt: 48 / 52.37 / 60 3299 $ numactl --physcpubind=0 ./mfv5 -i0 -p113 mpfr_sqrt mpfr_sqrt mpfr_sqrt 3300 mpfr_sqrt: 75 / 80.27 / 88 3301 33022021-02-15 Vincent Lef��vre <vincent@vinc17.net> 3303 3304 [tests/mpfr-test.h] Added mpfr_cmp_si_2exp0 macro (check NaN). 3305 [tests/tj1.c] Replaced mpfr_cmp_si_2exp by mpfr_cmp_si_2exp0. 3306 3307 [tests/tdigamma.c] Use mpfr_cmp_ui0 to detect NaN. 3308 3309 [src/digamma.c] Use MPFR_NOTZERO instead of !MPFR_IS_ZERO. 3310 33112021-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3312 3313 [src/jyn_asympt.c] fixed bug when s=0 at the end of the for loop 3314 [tests/tj1.c] added corresponding non-regression test 3315 3316 [src/digamma.c] fixed a bug in mpfr_digamma_reflection when the approximations 3317 of Digamma(1-x) and Pi*cot(Pi*x) cancel exactly 3318 [tests/tdigamma.c] added corresponding non-regression test 3319 3320 renamed mpfr_compound to mpfr_compound_si, since in C2X, compoundn takes 3321 an intmax_t and not a long, thus we can later implement mpfr_compoundn 3322 taking as input an intmax_t 3323 33242021-02-10 Vincent Lef��vre <vincent@vinc17.net> 3325 3326 [tests/texpm1.c] Improved special tests. 3327 33282021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3329 3330 [src/pow_sj.c] removed spurious comment 3331 33322021-02-09 Vincent Lef��vre <vincent@vinc17.net> 3333 3334 [src/{pow_sj.c,pow_uj.c}] Added missing "#ifdef _MPFR_H_HAVE_INTMAX_T". 3335 3336 [doc/mpfr.texi] General cleanup, in particular related to the IEEE 754 3337 standard. Added IEEE Standard 754-2019 to the references. 3338 3339 [src/pow_{si,sj,ui,uj}.c] Fixed logging for mpfr_pow_{sj,uj}. 3340 3341 [src/pow_uj.c] untabify 3342 3343 [tests/tpow.c] Replaced mpfr_cmp_ui by versions that can detect NaN. 3344 Note: this is particularly important to check that pow(NaN,0) returns 1, 3345 not NaN. 3346 3347 [src/pow_uj.c] Some corrections in the mpfr_mpz_set_uj helper function, 3348 still with limitations (which could be avoided by sharing code with 3349 mpfr_set_uj_2exp). 3350 33512021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3352 3353 forgot to commit those files 3354 3355 added mpfr_powr 3356 33572021-02-09 Vincent Lef��vre <vincent@vinc17.net> 3358 3359 [src/{pow_si.c,pow_ui.c}] untabify 3360 33612021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3362 3363 added mpfr_pow_uj and mpfr_pow_sj 3364 now mpfr_pown is an alias for mpfr_pow_sj 3365 33662021-02-09 Vincent Lef��vre <vincent@vinc17.net> 3367 3368 [doc/mpfr.texi,src/mpfr.h] Added a FIXME for mpfr_pown, which should 3369 be an alias of mpfr_pow_sj (not implemented yet) to follow ISO C2x, 3370 where pown is defined with intmax_t n. 3371 33722021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3373 3374 added mpfr_pown (alias for mpfr_pow_si) 3375 33762021-02-08 Vincent Lef��vre <vincent@vinc17.net> 3377 3378 [src/mpfr.h] Updated comments on the types for mpfr_prec_t/mpfr_exp_t. 3379 3380 * For mpfr_prec_t, removed the comment saying that under Windows 64, 3381 "long long" could be used (this would imply that mpfr_prec_t and 3382 mpfr_exp_t will not fit in a long, and this is not supported yet, 3383 see below). 3384 3385 * For mpfr_exp_t and _MPFR_EXP_FORMAT == 4, changed an unclear note 3386 and added other information; in particular, this value is currently 3387 not supported since the MPFR code assumes that mpfr_exp_t fits in a 3388 long. 3389 33902021-02-08 Vincent Lef��vre <vincent@vinc17.net> 3391 3392 [tests] Added texp2m1 and texp10m1 to svn:ignore property. 3393 3394 [src/jyn_asympt.c] Use mpfr_set4 instead of mpfr_set or mpfr_neg. 3395 3396 [tests/tj0.c] Latest test: also check the flags. 3397 3398 [src/digamma.c] Added a comment about the bug fixed in r14399. 3399 3400 [tests/tdigamma.c] Latest test: also check the flags. 3401 3402 [tests/tdigamma.c] Moved the r14399 test to its own test function. 3403 Note: for this one, there is no need to use the maximum exponent range. 3404 3405 [src/digamma.c] Use MPFR_NOTZERO instead of !MPFR_IS_ZERO. 3406 34072021-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3408 3409 [src/jyn_asympt.c] fixed bug when sin(z)+cos(z) or sin(z)-cos(z) round to 0 3410 [tests/tj0.c] added corresponding non-regression test 3411 3412 [src/digamma.c] fixed bug in mpfr_digamma_positive when t-u is zero 3413 [tests/tdigamma.c] added corresponding non-regression test 3414 34152021-02-08 Vincent Lef��vre <vincent@vinc17.net> 3416 3417 [src/digamma.c] Fix: increased GUARD from 20 to 30. 3418 [tests/tdigamma.c] Added 2 precisions for which GUARD=20 is not 3419 sufficient, yielding a "too much memory" error. 3420 34212021-02-07 Vincent Lef��vre <vincent@vinc17.net> 3422 3423 [src/digamma.c] Punctuation in a comment. 3424 34252021-02-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3426 3427 [src/digamma.c] fixed bug20210206 3428 34292021-02-06 Vincent Lef��vre <vincent@vinc17.net> 3430 3431 [src/digamma.c] Added a FIXME for mpfr_digamma_positive: q can be 3432 too large, e.g. equal to the maximum exponent! 3433 3434 [src/digamma.c] In mpfr_digamma_positive, log the value of q. 3435 3436 [src/digamma.c] In mpfr_digamma_positive, do not compute the precision q 3437 until we are certain that it will be used. 3438 3439 [src/digamma.c] In mpfr_digamma_positive, added an assertion, as a 3440 precision is set from the exponent of x, and I suppose that it may 3441 be larger than MPFR_PREC_MAX when mpfr_exp_t > mpfr_prec_t. 3442 3443 [tests/tdigamma.c] Added testcase for a bug found by test_generic. 3444 3445 [tests/tgeneric.c] Added debug info. 3446 34472021-02-05 Vincent Lef��vre <vincent@vinc17.net> 3448 3449 [src/exp2m1.c] Use block-level flags. 3450 34512021-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3452 3453 added new function mpfr_exp10m1 3454 3455 [tests/texp2m1.c] added a test for exact values 3456 34572021-02-05 Vincent Lef��vre <vincent@vinc17.net> 3458 3459 [TODO] Added mpfr_mul_uj and mpfr_mul_sj. 3460 3461 [src/log.c] Optimization: avoid a temporary variable for a*2^m; 3462 use an alias to a instead. In corner cases, this could yield a 3463 new internal TMD for the mpfr_div when the precision of a is 3464 very large, but this is avoided by changing the RNDN to RNDF. 3465 The error bound of 2 ulp on the mpfr_div should still be valid 3466 (it should now actually be 1 ulp). 3467 34682021-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3469 3470 added new function mpfr_exp2m1 for 2^x-1 3471 34722021-02-05 Vincent Lef��vre <vincent@vinc17.net> 3473 3474 [tests/tversion.c] Fixed length modifier in error messages. 3475 3476 [src/log10p1.c] In mpfr_log10p1_small: an "else" case is better than 3477 a "goto"; do not initialize inex to an arbitrary value. 3478 3479 [src/compound.c] Exact cases: additional detail in the comment. 3480 3481 [src/compound.c] Exact cases: this is simpler without a separate 3482 function (the t = 0 was artificial). Added full explanations. 3483 34842021-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3485 3486 [src/compound.c] removed FIXME corresponding to previous commit 3487 3488 [src/compound.c] fixed infinite loop for exact results like compound(0.5,2) 3489 which are not powers of 2 3490 34912021-02-05 Vincent Lef��vre <vincent@vinc17.net> 3492 3493 [src/compound.c] Fixed 2 issues with mpfr_compound_near_one: 3494 * this function must be called in the extended exponent range, 3495 to be sure that 1 is representable; 3496 * it wasn't setting the inexact flag, and this is now done via 3497 mpfr_check_range. 3498 3499 [src/compound.c] Added missing MPFR_ZIV_FREE before the "return" in 3500 the Ziv loop. 3501 3502 [tests/tcompound.c] Added generic tests with n = 2 and n = 3. 3503 They trigger a failure: bad inexact flag for mpfr_compound2. 3504 3505 [src/compound.c] Added a FIXME: possible infinite loop when the result 3506 is exact. 3507 3508 [src/compound.c] Optimize the easy case n = 1. 3509 3510 [src/compound.c] Special cases: fixed compound(-Inf,0) and improved 3511 comments. 3512 3513 [tests/tcompound.c] More tests of compound(x,n) for x < -1, showing 3514 a failure on compound(-Inf,0). 3515 3516 [doc/README.dev] Note that the logging feature (--enable-logging) 3517 needs GCC to build MPFR, and it is not available with mini-gmp, 3518 since mpfr_fprintf cannot be defined with mini-gmp. 3519 35202021-02-04 Vincent Lef��vre <vincent@vinc17.net> 3521 3522 [tests/tcompound.c] Fixed a test in the case mpfr_exp_t < long. 3523 3524 [tests/tcompound.c] Corrected an error message. 3525 3526 [src/compound.c] Fixed bug found by clang: 3527 compound.c:32:29: error: use of logical '||' with constant operand [-Werror,-Wconstant-logical-operand] 3528 if (rnd_mode == MPFR_RNDN || MPFR_RNDF 3529 ^ ~~~~~~~~~ 3530 3531 [tests/tatan2u.c] Fixed a bug (as of C99, for *decimal* constants, one 3532 must use a suffix that contains "U" if the constant cannot be signed). 3533 3534 [tests/tcompound.c] Corrected the conditions of a test for machines 3535 with 32-bit long. Added comments. 3536 3537 [tests] Added tlog10p1 to svn:ignore property. 3538 3539 [tests/tatan2u.c] Improved comment in bug20210203 about type sizes. 3540 3541 [tests/tatan2u.c] Make sure that the bug20210203 test is run only 3542 when the value for u is representable. 3543 35442021-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3545 3546 [TODO] added section number 3547 3548 [src/compound.c] fixed case n < 0 and underflow 3549 [tests/tcompound.c] added corresponding non-regression tests 3550 3551 compound(NaN,0) is 1 3552 35532021-02-04 Vincent Lef��vre <vincent@vinc17.net> 3554 3555 [src/compound.c] Correction for n = LONG_MIN. Added FIXMEs. 3556 35572021-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3558 3559 [tests/tcompound.c] fixed comment 3560 35612021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3562 3563 [src/atan2u.c] fixed error analysis 3564 35652021-02-03 Vincent Lef��vre <vincent@vinc17.net> 3566 3567 [src/compound.c] Portability. 3568 3569 [tests/tatan2u.c] Make sure that 64-bit constants are supported before 3570 using one. 3571 3572 [src/log10p1.c] Improved checking / debugging support. 3573 35742021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3575 3576 [tests/tatan2u.c] added a test which currently fails 3577 3578 [src/log2p1.c] added note about underflow 3579 3580 added a new function mpfr_log10p1 to compute log10(1+x) 3581 3582 [tests/tlog2p1.c] set the precision locally to one test 3583 3584 [doc/mpfr.texi] document atan2u and atan2pi 3585 35862021-02-03 Vincent Lef��vre <vincent@vinc17.net> 3587 3588 [doc/mpfr.texi] Typography. 3589 3590 [doc/mpfr.texi] In Section "Added Functions", do not put the patchlevel 3591 in MPFR versions (changed "4.2.0" to "4.2"). 3592 3593 [src/log2p1.c] Bug fix: memory accessed after it is cleared. 3594 3595 [src/log2p1.c] More logging. 3596 35972021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3598 3599 [doc/mpfr.texi] document mpfr_compound 3600 36012021-02-03 Vincent Lef��vre <vincent@vinc17.net> 3602 3603 [src/set_prec.c] Log the precision. 3604 36052021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3606 3607 [src/compound.c] completed the general case 3608 [tests/tcompound.c] added one hard-coded test 3609 36102021-02-03 Vincent Lef��vre <vincent@vinc17.net> 3611 3612 [tests] Added tcompound and tlog2p1 to svn:ignore property. 3613 3614 [tests/tlog2p1.c] Use mpfr_cmp_si0 to detect NaN. 3615 3616 [tests/tcompound.c] Do not use mpfr_printf in the tests. 3617 36182021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3619 3620 [src/log2p1.c] use ULSIZE as in atan2u.c 3621 3622 [src/atan2u.c] better explain the choice of prec in mpfr_atan2u_aux3 3623 36242021-02-03 Vincent Lef��vre <vincent@vinc17.net> 3625 3626 [src/compound.c] Fixed logging. 3627 36282021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3629 3630 [src/atan2u.c] simplified code 3631 36322021-02-03 Vincent Lef��vre <vincent@vinc17.net> 3633 3634 [src/atan2u.c] Support unsigned long != 64-bit type. Avoid a warning. 3635 36362021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3637 3638 [tests/tlog2p1.c] added tests for exact cases 3639 3640 added log2p1 and compound (mpfr_compound is not finished yet) 3641 3642 [src/log1p.c] fixed comment 3643 3644 [src/atan2u.c] deal with underflow and overflow in y/x 3645 36462021-02-03 Vincent Lef��vre <vincent@vinc17.net> 3647 3648 [src/atan2u.c] Added a FIXME: the code is incorrect if y/x yields 3649 an overflow or an underflow. 3650 3651 [src/atan2u.c] Fixed 2 bugs in mpfr_atan2u_aux2. Minor changes. 3652 3653 [src/atan2u.c] Minor corrections in comments. 3654 36552021-02-02 Vincent Lef��vre <vincent@vinc17.net> 3656 3657 [tests] Added tatan2u and tatanu to svn:ignore property. 3658 3659 [tests/tatan2u.c] Do not use mpfr_printf in the tests. 3660 3661 [src/atan2u.c] Use MPFR_RET_NEVER_GO_HERE. 3662 3663 [tests] 3664 * tgeneric.c: cleanup about the type of the arguments; added support 3665 for functions with 3 arguments (x1,x2,u), such as mpfr_atan2u. 3666 * tatan2u.c: enabled the generic tests (test_generic). 3667 36682021-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3669 3670 [src/atan2u.c] fixed atan2u with respect to the four quadrants 3671 [tests/tatan2u.c] added corresponding non-regression tests 3672 3673 added mpfr_atan2u (work in progress) 3674 3675 [src/atanu.c] fixed bug for u=0 3676 [tests/tatanu.c] added non-regression test case 3677 36782021-02-02 Vincent Lef��vre <vincent@vinc17.net> 3679 3680 Changed "plus/minus infinity" to "positive/negative infinity". 3681 3682 [tools/mpfrlint] In the "+/- infinity" test (just added), also check 3683 the doc/algorithms.tex file. 3684 3685 [tools/mpfrlint] Added a test for the use of "plus/minus infinity" 3686 instead of "positive/negative infinity". 3687 3688 [doc/mpfr.texi] Minor corrections related to infinity. The IEEE 754-2019 3689 standard says "positive/negative infinity", not "plus/minus infinity". 3690 36912021-02-01 Vincent Lef��vre <vincent@vinc17.net> 3692 3693 [doc/mpfr.texi] Typos. 3694 3695 [{src,tests}/Makefile.am] Untabified values of variables to avoid 3696 wrapping in diffs on 80 columns. 3697 36982021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3699 3700 [TODO] asinpi, acospi and atanpi are done (and their *u variants) 3701 3702 [src/atanu.c] added comment 3703 3704 [src/acosu.c] simplified the code when x is tiny 3705 3706 added mpfr_atanu and mpfr_atanpi 3707 37082021-02-01 Vincent Lef��vre <vincent@vinc17.net> 3709 3710 [doc/mpfr.texi] Correction about mpfr_get_* and NaN. 3711 37122021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3713 3714 [src/asinu.c] improved a comment 3715 3716 [src/asinu.c] fixed typo 3717 3718 [src/asinu.c] resolved FIXME 3719 [tests/tasinu.c] added more underflow tests 3720 37212021-02-01 Vincent Lef��vre <vincent@vinc17.net> 3722 3723 [src/set_ld.c] Replaced a useless goto. 3724 3725 Code readability. 3726 37272021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3728 3729 [src/set_ld.c] added comment about LONGDOUBLE_NAN_ACTION 3730 37312021-02-01 Vincent Lef��vre <vincent@vinc17.net> 3732 3733 [doc/mpfr.texi] Typography. 3734 3735 [doc/mpfr.texi] Updated the month. 3736 37372021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3738 3739 [src/get_ld.c] forgot get_ld in previous commit 3740 3741 make it clear that we don't propagate the sign bit in mpfr_get_d and mpfr_set_d 3742 and similar functions for binary32, decimal64 and binary128 3743 3744 added asinu and asinpi 3745 3746 [src/asinu.c] return NaN for u=0 and |x| > 1 3747 [tests/tasinu.c] added more tests 3748 3749 [src/acosu.c] for u=0 and |x| > 1, return NaN 3750 [tests/tacosu.c] added corresponding test 3751 37522021-01-31 Vincent Lef��vre <vincent@vinc17.net> 3753 3754 [tests] Use RND_LOOP. 3755 Changes with: 3756 perl -pi -e 's/^( *)for *\((\w+) *= *0 *; *\2 *< *MPFR_RND_MAX *; *\2 *\+\+\) *$/\1RND_LOOP (\2)/' *.c 3757 3758 [tests] Added tacosu and tasinu to svn:ignore property. 3759 3760 [tests/mpfr-test.h] Added mpfr_cmp_si0 macro (check NaN). 3761 [tests/tasinu.c] Replaced mpfr_cmp_ui / mpfr_cmp_si by the ...0 version. 3762 3763 [tests/tasinu.c] Replaced mpfr_cmp by !mpfr_equal_p. 3764 3765 [tests/tacosu.c] Replaced mpfr_cmp by !mpfr_equal_p. 3766 3767 [tests/tacosu.c] Fixed failing test with --with-mini-gmp 3768 and -DMINI_GMP_LIMB_TYPE=int under Linux/x86_64. 3769 3770 [tools/mpfrlint] Detect the use of mpfr_set_emin / mpfr_set_emax 3771 when set_emin / set_emax could be used (checking failures). 3772 3773 [tests/tdiv.c] Use set_emax rather than mpfr_set_emax with a test. 3774 3775 [tests/*.c] When not in a test, use set_emin and set_emax rather than 3776 mpfr_set_emin and mpfr_set_emax, in order to check failures. 3777 Done with: perl -pi -e 's/^ *\Kmpfr_(set_e(min|max) *\()/\1/' *.c 3778 3779 [tests/tests.c] Improved error message in set_emin / set_emax to 3780 better support platforms where mpfr_exp_t > long int. 3781 3782 [tests/tcot.c] Use set_emin and set_emax rather than mpfr_set_emin and 3783 mpfr_set_emax with a test (test done in set_emin / set_emax). 3784 3785 [src/{acosu.c,asinu.c,cosu.c,sinu.c,tanu.c}] Typos in comments. 3786 3787 [tests/tasinu.c] Use set_emin rather than mpfr_set_emin. 3788 37892021-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3790 3791 [src/acosu.c] fixed case x=-1/2 which was wrong 3792 [tests/tacosu.c] added test cases 3793 37942021-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3795 3796 [tests/tacosu.c] reduced number of generic tests 3797 [tests/tasinu.c] likewise 3798 3799 [src/asinu.c] fixed case x=-1 and underflow case 3800 [tests/tasinu.c] added test for underflow 3801 38022021-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3803 3804 added asinu (work in progress, not yet usable) 3805 3806 [doc/mpfr.texi] improve description of mpfr_acosu 3807 3808 [src/acosu.c] fixed another typo 3809 3810 [src/acosu.c] fixed typo 3811 38122021-01-29 Vincent Lef��vre <vincent@vinc17.net> 3813 3814 [src/acosu.c] Simplified code. 3815 3816 [tests/tgeneric.c] Added a cast for printf. 3817 3818 [tests/tgeneric.c] Corrected indentation. 3819 3820 [tests/tgeneric.c] Corrected indentation. 3821 38222021-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3823 3824 added cosu and cospi in the manual and NEWS 3825 3826 new function mpfr_acosu (still to be added in NEWS and mpfr.texi) 3827 38282021-01-29 Vincent Lef��vre <vincent@vinc17.net> 3829 3830 [src/{cosu.c,sinu.c,tanu.c}] Function logging: added missing u. 3831 3832 [TODO] LIA-2 URL after redirection (i.e. https). 3833 38342021-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3835 3836 [TODO] added pointer to LIA-2 3837 38382021-01-26 Vincent Lef��vre <vincent@vinc17.net> 3839 3840 [INSTALL,doc/update-faq,tools/announce-text] With wget, use 3841 the --no-config option as the user's .wgetrc file may significantly 3842 change the behavior and possibly yield errors. See discussion at 3843 <https://lists.debian.org/debian-user/2021/01/msg01021.html>. 3844 38452021-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3846 3847 [TODO] update about powr, rootn and rsqrt 3848 3849 [TODO] update about reserved cr_xxx names from C standard 3850 38512021-01-14 Vincent Lef��vre <vincent@vinc17.net> 3852 3853 [src/{cosu.c,sinu.c,tanu.c}] Range reduction: improved a test, renamed 3854 a variable (e to p, as this is more like a precision), and updated 3855 comments, making the code and comments similar for these 3 functions. 3856 3857 Added function logging for mpfr_fmod_ui and mpfr_sqrt_ui. 3858 38592021-01-14 Vincent Lef��vre <vincent@vinc17.net> 3860 3861 [tests/memory.c] Call "fflush (NULL)" before abort() in order to flush 3862 all the output streams, in particular the log file (when there is one), 3863 so that setting MPFR_LOG_FLUSH (which may be inefficient) is not needed 3864 to debug tests that end with a memory error. 3865 3866 This fixes a regression with glibc 2.27+: the streams are no longer 3867 flushed by abort(), as permitted by POSIX; see the abort(3) man page. 3868 38692021-01-14 Vincent Lef��vre <vincent@vinc17.net> 3870 3871 [src] Fixed typo in mpfr_printf format from MPFR_LOG_FUNC for several 3872 functions. 3873 3874 [doc/mpfr.texi] Completed mpfr_fmod_ui description. 3875 3876 [src/cosu.c] Fixed bug when the reduced argument is 0. 3877 3878 [tests/tcosu.c] Added tests that give a reduced argument equal to 0. 3879 3880 [src/cosu.c] Fixed memory leak with very small reduced arguments. 3881 38822021-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3883 3884 [tests/tcosu.c] increase nmax in test_generic call 3885 [tests/tsinu.c] likewise 3886 [tests/ttanu.c] likewise 3887 38882021-01-13 Vincent Lef��vre <vincent@vinc17.net> 3889 3890 [tests/{tcosu.c,tsinu.c,ttanu.c}] For the generic tests, no need 3891 to reduce emax any longer, now that the fast range reduction has 3892 been implemented. 3893 3894 [src/tanu.c] Implemented range reduction for mpfr_tanu. 3895 3896 [src/{cosu.c,sinu.c}] Corrected the position of a comment. 3897 3898 [src/cosu.c] Implemented range reduction for mpfr_cosu. 3899 39002021-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3901 3902 [src/sinu.c] removed FIXME (done) 3903 39042021-01-13 Vincent Lef��vre <vincent@vinc17.net> 3905 3906 [NEWS,doc/mpfr.texi] For the new trigonometric functions mpfr_cosu, 3907 mpfr_sinu, mpfr_tanu, mpfr_cospi, mpfr_sinpi, mpfr_tanpi, removed the 3908 "experimental" mention. In mpfr.texi, also added missing functions to 3909 Section "Added Functions" (API Compatibility). 3910 3911 [doc/mpfr.texi] Style consistency: more "[unsigned] long int" 3912 instead of just "[unsigned] long". 3913 3914 [doc/mpfr.texi] Style: use always "[unsigned] long int" in prototypes 3915 rather than sometimes just "[unsigned] long". 3916 3917 [NEWS,doc/mpfr.texi] New function mpfr_fmod_ui. 3918 39192021-01-13 Vincent Lef��vre <vincent@vinc17.net> 3920 3921 Implemented range reduction for mpfr_sinu (and defined mpfr_fmod_ui). 3922 3923 This is done by computing x mod u; and a new function mpfr_fmod_ui 3924 has been defined for this purpose. As mpfr_fmod_ui could be useful 3925 to the user, its declaration is put in src/mpfr.h, with the intent 3926 to document this new function later. 3927 3928 In the src directory: 3929 * Added fmod_ui.c file (mpfr_fmod_ui function) based on sqrt_ui.c 3930 (hence the same copyright line). 3931 * Makefile.am: added fmod_ui.c to libmpfr_la_SOURCES. 3932 * mpfr.h: added mpfr_fmod_ui. 3933 * sinu.c: implemented range reduction for mpfr_sinu. 3934 39352021-01-13 Vincent Lef��vre <vincent@vinc17.net> 3936 3937 [tests/tsinu.c] Added tests where x/u is a "big" integer, so that 3938 the reduced argument is 0 (exactly). 3939 3940 [tests/tsinu.c] Added a test on a large input such that x mod u may need 3941 more precision than x. This will be important to test range reduction. 3942 3943 [src/sqrt_ui.c] Coding style. 3944 3945 [src/{cosu.c,sinu.c,tanu.c}] Changed MPFR_PREC to MPFR_GET_PREC. 3946 39472021-01-12 Vincent Lef��vre <vincent@vinc17.net> 3948 3949 [tests/{tcosu.c,tsinu.c,ttanu.c}] C90 compatibility for the tests with 3950 large inputs (added in r14236). Also avoid the hardcoded size by using 3951 the numberof() macro. 3952 39532021-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3954 3955 [tests/tcosu.c] added hard-coded tests with large inputs 3956 [tests/tsinu.c] likewise 3957 [tests/ttanu.c] likewise 3958 39592021-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3960 3961 [src/set_ld.c] added pointer to "double double" format 3962 39632021-01-04 Vincent Lef��vre <vincent@vinc17.net> 3964 3965 [doc] Updated FAQ.html with update-faq. 3966 39672021-01-03 Vincent Lef��vre <vincent@vinc17.net> 3968 3969 [doc/mpfr.texi] Updated the month. 3970 3971 Copyright notice update: added 2021 with 3972 perl -pi -e 's/ (\d{4}-)?(2020)(?= Free Software)/ 3973 " ".($1||"$2-").($2+1)/e' **/*(^/) 3974 under zsh. Removed 2020 from the example in the doc/README.dev file. 3975 3976 [src/mpfr-impl.h] Removed a now useless test on __clang__, corresponding 3977 to a bug fixed in Clang 3.4 (see <https://bugs.debian.org/705583>). 3978 39792020-12-20 Vincent Lef��vre <vincent@vinc17.net> 3980 3981 Optimize mpfr_abs, mpfr_copysign and mpfr_setsign in the case of reused 3982 argument, like what was already done for mpfr_neg: one can just set the 3983 sign and handle NaN instead of calling mpfr_set4. 3984 Completed tests/tcopysign.c to test with a reused argument. 3985 3986 [src/cosu.c] Avoid a possible integer overflow (triggered by the tests 3987 with UBsan) from r14225. 3988 39892020-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3990 3991 fixed initial precision in sinu, cosu and tanu 3992 also in cosu, treat special case when 2*pi*x/u is small 3993 39942020-12-17 Vincent Lef��vre <vincent@vinc17.net> 3995 3996 [tests/tgeneric.c] Removed the use of __func__ as it is not supported 3997 by ISO C90 (it was not really useful here, though). 3998 3999 [tests/tcosu.c] Increased the maximum precision for test_generic and 4000 added a comment about this. 4001 4002 [tests] Added tcosu, tsinu and ttanu to svn:ignore property. 4003 4004 For the generic tests, output the number of normal cases and the total 4005 if the MPFR_TGENERIC_STAT environment variable is defined. 4006 Added description to the README.dev file. 4007 4008 [tests/tcosu.c] Increased the number of generic tests. This should make 4009 the warning "Too few normal cases in generic tests" much less common. 4010 4011 [tests] 4012 * Added data/tan2pi: hardest-to-round cases of tanu with u = 1 4013 in double precision, interval [0,1/4]. 4014 * ttanu.c: test tan2pi values with u = 1. 4015 4016 [tests/ttanu.c] C89 compatibility. 4017 40182020-12-16 Vincent Lef��vre <vincent@vinc17.net> 4019 4020 [doc/mpfr.texi] Removed spurious blank line; .texi source reformat. 4021 4022 [doc/mpfr.texi] Typography: "resp." must be followed by "@:". 4023 4024 [doc/check-typography] Also check "resp.". 4025 4026 [doc/mpfr.texi] Removed misplaced @tie{}. 4027 40282020-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4029 4030 [doc/mpfr.texi] fixed another typo 4031 4032 [doc/mpfr.texi] fixed typos 4033 4034 added sinpi, cospi, tanpi 4035 4036 added new function mpfr_tanu 4037 4038 [src/sinu.c] improved comment 4039 40402020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4041 4042 [src/sinu.c] added reference 4043 4044 [src/sinu.c] fixed compiler warning 4045 [src/cosu.c] deal with other exact cases 4046 [tests/tcosu.c] added tests for other exact cases 4047 4048 [src/sinu.c] fixed bug in detection of pi/6 and friends 4049 40502020-12-15 Vincent Lef��vre <vincent@vinc17.net> 4051 4052 [NEWS] mpfr_cosu and mpfr_sinu: improved item. 4053 40542020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4055 4056 [tests/tsinu.c] added more tests 4057 4058 [src/sinu.c] fixed case where 2xpi/u is +/-pi/6 mod pi 4059 [tests/tsinu.c] added corresponding test case 4060 40612020-12-15 Vincent Lef��vre <vincent@vinc17.net> 4062 4063 [tests] 4064 * Added data/{cos2pi,sin2pi}: hardest-to-round cases of cosu and sinu 4065 with u = 1 in double precision, interval [0,1/2]. 4066 * tcosu.c, tsinu.c: test cos2pi and sin2pi values with u = 1. 4067 4068 [tests/tests.c] test5rm(): mention test5rm in the error message. 4069 4070 [src/{cosu.c,sinu.c}] Added function logging. 4071 40722020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4073 4074 added new function mpfr_cosu 4075 4076 [src/sinu.c] fixed typo in comment 4077 4078 [tests/tsinu.c] fixed typos in comments 4079 40802020-12-15 Vincent Lef��vre <vincent@vinc17.net> 4081 4082 [src/sin_cos.c] Code improvement: 4083 * replaced a MPFR_PREC(c) by m since the precision of c was set to m; 4084 * as a consequence, the initial precision of xr in the Ziv loop will 4085 always be m (whether expx >= 2 or not), so that one can use this 4086 precision for the mpfr_init2. 4087 40882020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4089 4090 [src/sinu.c] forgot to count the rounding error in mpfr_sin (t, t, MPFR_RNDA) 4091 4092 [src/sinu.c] fixed issue with case t=0 4093 40942020-12-15 Vincent Lef��vre <vincent@vinc17.net> 4095 4096 [src/{sin.c,sin_cos.c}] 4097 * Do not initialize variables with the default precision, which 4098 could have been set to a large value by the user; this would 4099 be a waste of memory. 4100 * In sin.c, do not initialize xr in the case where this variable 4101 will not be used (in sin_cos.c, let's initialize it with the 4102 minimum precision as it is used with different purposes). 4103 4104 [src/{ai.c,yn.c}] Do not initialize variables with the default 4105 precision, which could have been set to a large value by the 4106 user; this would be a waste of memory. 4107 4108 [tools/mpfrlint] Added a test to detect when mpfr_init or mpfr_inits is 4109 used, i.e. when a variable is initialized with the default precision. 4110 This should not be done as the default precision could have been set to 4111 a large value by the user, so that this is a waste of memory. 4112 4113 [src/sinu.c] Correction: variables must not be initialized with the 4114 default precision, which could have been set to a large value by the 4115 user, and this would be a waste of memory. 4116 41172020-12-14 Vincent Lef��vre <vincent@vinc17.net> 4118 4119 [src/sinu.c] Fixed 2 bugs: 4120 * in case of underflow, the flags were not set; 4121 * mpfr_odd_p(t) could be called with t = 0, which is unsupported. 4122 41232020-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4124 4125 [src/sinu.c] fixed typo (thanks Jeffrey Sarnoff) 4126 41272020-12-14 Vincent Lef��vre <vincent@vinc17.net> 4128 4129 [src/sinu.c] Added a FIXME: the range reduction should be done in this 4130 function (that's the whole point of sinu compared to sin, besides a 4131 smaller rounding error). 4132 4133 [tests/tsinu.c] Added a FIXME concerning the size of the exponent. 4134 4135 [doc/mpfr.texi] Typographic correction of math formulas. 4136 4137 [doc/mpfr.texi] mpfr_sinu: corrections and improvements. 4138 4139 [doc/mpfr.texi] Updated the month. 4140 41412020-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4142 4143 [NEWS] added mpfr_sinu 4144 [doc/mpfr.texi] improve documentation of mpfr_sinu, and say it is experimental 4145 4146 added mpfr_sinu (work in progress) 4147 41482020-12-13 Vincent Lef��vre <vincent@vinc17.net> 4149 4150 [src/zeta.c] Minor correction of a comment. 4151 41522020-12-02 Vincent Lef��vre <vincent@vinc17.net> 4153 4154 [src/mpfr.h] Added a comment about Intel's compiler ICC and the 4155 unsupported returns_nonnull attribute. 4156 41572020-11-15 Vincent Lef��vre <vincent@vinc17.net> 4158 4159 [TODO] Added an item to add "const" in prototypes in the manual. 4160 4161 [doc/mpfr.texi] mpfr_subnormalize: define EXP(x) and PREC(x). 4162 4163 [doc/mpfr.texi] More detailed beginning of "Nomenclature and Types", 4164 which now specifies the convention for the significand and the exponent. 4165 4166 [doc/mpfr.texi] Updated the month. 4167 4168 [doc/mpfr.texi] Document the mpfr_srcptr type. 4169 41702020-10-28 Vincent Lef��vre <vincent@vinc17.net> 4171 4172 [tests/talloc-cache.c] Check that malloc() doesn't return a null pointer 4173 (in order to avoid an error with GCC's -fanalyzer, dev version). 4174 41752020-10-23 Vincent Lef��vre <vincent@vinc17.net> 4176 4177 [src/invert_limb.h] Added a comment about r14171. 4178 4179 [src/invert_limb.h] Fixed potential issues introduced in 14170. 4180 * The code isn't valid with 16-bit int (allowed by ISO C). So, 4181 make sure with MPFR_STAT_STATIC_ASSERT that unsigned int is 4182 large enough for invert_limb_table2. 4183 Note: since the code is under "#if GMP_NUMB_BITS == 64", 4184 this is unlikely to affect any system in practice, as 4185 GMP_NUMB_BITS == 32 (or 16, if supported) should be better 4186 on such a system. 4187 * Make sure that the "<< 11" shifts do not overflow. 4188 41892020-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4190 4191 [src/invert_limb.h] patch from Alexei Sibidanov, which reduces memory usage, 4192 without degrading performance 4193 41942020-10-23 Vincent Lef��vre <vincent@vinc17.net> 4195 4196 [doc/README.dev] Replaced WG14 N2405 reference by the new N2579. 4197 41982020-10-21 Vincent Lef��vre <vincent@vinc17.net> 4199 4200 [src/mpfr-impl.h] Updated UBF comment about aliasing rules. 4201 4202 [src/mpfr-impl.h] Updated UBF comment about aliasing rules. 4203 4204 [src/mpfr-impl.h] Updated UBF comment about aliasing rules. 4205 42062020-10-19 Vincent Lef��vre <vincent@vinc17.net> 4207 4208 [doc/mpfr.texi] Updated mpfr_rootn_ui description about "agree with 4209 the rootn function", now that IEEE 754-2019 is there (needed as 4210 rootn was underspecified in IEEE 754-2008, so that TS 18661-4 4211 incorrectly specified the case rootn(-inf, n even); see WG14 N2309 4212 from the C FP group for the correction). 4213 42142020-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4215 4216 fixed typo 4217 42182020-10-08 Vincent Lef��vre <vincent@vinc17.net> 4219 4220 [doc/README.dev] Added a note about _Float128 vs long double. 4221 4222 [src/mpfr-impl.h] Added a TODO for the numberof() macro: make it a 4223 constant expression and possibly change its type "long" to "ptrdiff_t". 4224 4225 [doc/mpfr.texi] Minor changes in Section "Formatted Output Functions". 4226 4227 [NEWS] Update. 4228 4229 [doc/mpfr.texi] Section "API Compatibility", formatted output functions 4230 (mpfr_printf, etc.): completed r14155. 4231 4232 [doc/mpfr.texi] Updated the month. 4233 4234 [src/vasprintf.c] Improved comment for READ_INT. 4235 42362020-10-07 Vincent Lef��vre <vincent@vinc17.net> 4237 4238 Fixed the formatted output functions (mpfr_printf, etc.) in the case 4239 the precision consists only of a period. 4240 * doc/mpfr.texi: correction and clarifications (be closer to ISO C); 4241 note the change in Section "API Compatibility". 4242 * src/vasprintf.c: fixed the bug. 4243 * tests/tsprintf.c: update. 4244 42452020-10-07 Vincent Lef��vre <vincent@vinc17.net> 4246 4247 [src] Consistency: in prototypes, changed 4248 mpz_t to mpz_ptr (mpfr-impl.h, pool.c); 4249 mpfr_random_deviate_t to mpfr_random_deviate_ptr (random_deviate.c). 4250 4251 Note: This completes the changes I had done in r14103 (2020-08-21) for 4252 mpfr_t. This time, the issue was detected by a GCC 11 snapshot, thanks 4253 to the -Warray-parameter option (included in -Wall), which was added 4254 on 2020-09-19 in GCC commit 6450f07388f9fe575a489c9309c36012b17b88b0. 4255 42562020-10-07 Vincent Lef��vre <vincent@vinc17.net> 4257 4258 [src/vasprintf.c] Updated a comment. 4259 4260 Added tests/gen-printf-dot-prec Perl script to generate a .c file 4261 showing printf and mpfr_printf output with: 4262 * a missing precision field; 4263 * a precision field with just a period ("."); 4264 * a precision field with an explicit precision 0 (".0"). 4265 42662020-09-27 Vincent Lef��vre <vincent@vinc17.net> 4267 4268 [tests/tset_z_2exp.c] Fixed typo detected by GCC. 4269 4270 [src/set_z_2exp.c] Fixed overflow/underflow detection in exponent ranges 4271 where emax < 0 or emin >= 0 (bug introduced in r14145). 4272 4273 [tests/tset_z_2exp.c] Added some tests in a reduced exponent range (and 4274 improved existing tests). 4275 Note: Due to an incorrect change in set_z_2exp.c r14145, various tests 4276 are failing with mini-gmp (for which mpfr_set_z_2exp is used more often 4277 because a long does not fit into a limb) in unusual exponent ranges. So 4278 such tests were obviously missing in tset_z_2exp.c before this commit. 4279 42802020-09-25 Vincent Lef��vre <vincent@vinc17.net> 4281 4282 [src/set_z_2exp.c] Fix: avoid possible integer overflows. 4283 4284 [tests/tset_z_2exp.c] Test a result. 4285 4286 [doc/README.dev] Added how to convert an unsigned integer to the 4287 corresponding signed integer with the two's complement rule (i.e. 4288 modular arithmetic) but in a portable way. 4289 4290 [tests] Updated svn:ignore property due to the rename in r14125. 4291 42922020-09-24 Vincent Lef��vre <vincent@vinc17.net> 4293 4294 [tests/tset_z_2exp.c] Added another test that fails with just 4295 "-m32 -fsanitize=undefined -fno-sanitize-recover". 4296 This corresponds to what is described in the FIXME in src/set_z_2exp.c 4297 (about the modified tnrandom.c test yielding an integer overflow). 4298 4299 [tests/tset_z_2exp.c] Added a test that triggers an integer overflow 4300 in set_z_2exp.c with MPFR_CHECK_LARGEMEM=1 when MPFR is compiled with 4301 "-m32 -fsanitize=undefined -fno-sanitize-recover -D_MPFR_EXP_FORMAT=4" 4302 in CFLAGS: 4303 set_z_2exp.c:71:26: runtime error: signed integer overflow: 4304 134217726 * 32 cannot be represented in type 'long int' 4305 43062020-09-23 Vincent Lef��vre <vincent@vinc17.net> 4307 4308 [src/exp2.c] Added support for -D_MPFR_EXP_FORMAT=4 in the 32-bit ABI, 4309 i.e. 32-bit long, so that the MPFR compilation no longer fails due to 4310 a static assertion in this file. Note: many tests fail (not texp2), 4311 but at least this allows some testing of various functions. 4312 43132020-09-23 Vincent Lef��vre <vincent@vinc17.net> 4314 4315 [INSTALL] Update concerning MinGW and the __USE_MINGW_ANSI_STDIO macro. 4316 4317 The change done in r13668 seems to be a bit wrong (at least unclear). 4318 This was done after finding 4319 https://fr.osdn.net/projects/mingw/lists/archive/users/2019-January/000199.html 4320 saying that __USE_MINGW_ANSI_STDIO became deprecated, during a 4321 discussion on the vsnprintf() behavior: 4322 https://gmplib.org/list-archives/gmp-bugs/2020-January/004716.html 4323 4324 However, it seems that printf() conformity issues have completely been 4325 resolved only recently, in version 8. 4326 http://mingw-w64.org/doku.php says: 4327 Version 8 has been released 4328 v8.0.0: 2020-09-18 4329 Notable changes: 4330 [...] 4331 * __USE_MINGW_ANSI_STDIO now automatically enabled in C99 and C11 4332 mode when not using UCRT by Pali Roh��r 4333 [...] 4334 4335 Compiling 4336 #include <stdio.h> 4337 int main (void) { volatile double d = -1.25; printf ("%e\n", d); } 4338 gives with mingw-w64 version 7: -1.250000e+000 4339 and with mingw-w64 version 8: -1.250000e+00 4340 4341 So, when testing MPFR with mingw-w64 version 8 but with GMP still built 4342 with mingw-w64 version 7 (and static libraries), one gets a failure in 4343 tsprintf: 4344 Error in mpfr_vsprintf (s, "%e", ...); 4345 expected: "-1.250000e+00" 4346 got: "-1.250000e+000" 4347 because the expected result has changed (it comes from sprintf used in 4348 the MPFR test, which is now ISO-compliant). 4349 43502020-09-18 Vincent Lef��vre <vincent@vinc17.net> 4351 4352 [src/set_z_2exp.c] Added a FIXME: possible integer overflow, which 4353 can be reproduced with a 32-bit ABI by defining MPFR_PREC_MAX as 4354 ((mpfr_prec_t) ((((mpfr_uprec_t) -1) >> 1) - 63)) and in tnrandom.c, 4355 using "test_special (MPFR_PREC_MAX);". 4356 43572020-09-16 Vincent Lef��vre <vincent@vinc17.net> 4358 4359 [doc/mpfr.texi] Updated the month. 4360 4361 [doc/mini-gmp] Say that the build with mini-gmp may require ISO C99+ 4362 features (as "long long" is currently needed by src/get_ld.c in the 4363 case GMP_NUMB_BITS == 8). 4364 4365 For consistency, changed "C89" to "C90" in comments of *.{c,h} files. 4366 4367 [doc/mpfr.texi] Changed C89 to C90, as when mentioning ISO, one must 4368 say C90 (C89 is the ANSI version). The GCC manual uses "C90" rather 4369 than "C89", so this is probably better anyway. 4370 4371 [src/get_ld.c] Bug fix with GMP_NUMB_BITS == 8 (thus mini-gmp) and 4372 32-bit long (e.g. with -m32 on x86_64). 4373 43742020-09-15 Vincent Lef��vre <vincent@vinc17.net> 4375 4376 Renamed some .c files for consistency: 4377 src/get_z_exp.c ��� src/get_z_2exp.c 4378 src/set_z_exp.c ��� src/set_z_2exp.c 4379 tests/tset_z_exp.c ��� tests/tset_z_2exp.c 4380 and updated src/Makefile.am and tests/Makefile.am files. 4381 4382 [src/random_deviate.c] The latest change r14123 was actually incorrect: 4383 the real issue was non-portable code (with an incorrect comment) to 4384 convert an unsigned integer to a signed, negative integer. Incorrect 4385 behavior could occur with some C implementations and/or when mpfr_exp_t 4386 does not have the same size as long. So, fixed this portability issue, 4387 and avoid an assertion failure in a very rare case. 4388 4389 [src/random_deviate.c] Corrected an assertion. ��� Test failures. 4390 4391 [tests/tests.c] Added a note about tests done in "src/init2.c". 4392 4393 [src/init2.c] Check that __MPFR_EXP_MAX == MPFR_EXP_MAX too. 4394 4395 [tests/tget_z.c] Updated comment to mention that mpfr_get_z_2exp is 4396 tested by this file. 4397 4398 [src/mpfr-mini-gmp.c] Fixed bug in gmp_urandomb_ui when the parameter n 4399 is equal to the width of unsigned long. 4400 Note: This case occurs in function random_deviate_generate() from 4401 src/random_deviate.c with a 32-bit ABI (thus 32-bit unsigned long) 4402 since n = W, which is defined as 32. 4403 44042020-09-14 Vincent Lef��vre <vincent@vinc17.net> 4405 4406 [src/mpfr-mini-gmp.c] Simplified gmp_randseed_ui (note: the code in 4407 r14114 and r14115 was not the intended one due to the wrong variable 4408 in srand). 4409 4410 [src/mpfr-mini-gmp.c] Corrected latest change for gmp_randseed_ui. 4411 4412 With mini-gmp, use the standard rand() and srand() functions instead of 4413 the POSIX (thus less portable) lrand48() and srand48(). 4414 44152020-09-10 Vincent Lef��vre <vincent@vinc17.net> 4416 4417 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v". 4418 Note: this includes URL updates. 4419 4420 Updated URLs. 4421 4422 [src/sub1sp.c] Updated a URL (http ��� https). 4423 4424 [doc/README.dev] Updated URLs. 4425 4426 [configure.ac] Updated a URL (http ��� https). 4427 4428 [configure.ac] Updated a URL concerning the "Intel�� C++ Compiler 9.0 4429 for Linux Release Notes" (the URL was not archived). 4430 4431 Updated a freebsd.org URL (bug tracker). 4432 44332020-08-21 Vincent Lef��vre <vincent@vinc17.net> 4434 4435 [src,tests] Consistency: in prototypes, changed 4436 const mpfr_t to mpfr_srcptr 4437 mpfr_t to mpfr_ptr 4438 (except for mpfr_t *), as this is equivalent (the array is converted 4439 to a pointer) and the mpfr_srcptr/mpfr_ptr form is the usual one. 4440 44412020-08-20 Vincent Lef��vre <vincent@vinc17.net> 4442 4443 [doc/README.dev] Added a note about "string + integer" expressions. 4444 4445 [tests/tsprintf.c] Replaced another occurrence of the code triggering 4446 the warning "adding 'int' to a string does not append to the string 4447 [-Wstring-plus-int]" with Clang (at least with 3.5 and above). 4448 44492020-08-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4450 4451 fixed a compiler warning found by Clang 10.0.1 on armv8-a (Samsung S8 4452 aarch64-unknown-linux-android): 4453 4454 tsprintf.c:1613:27: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int] 4455 strcat (buf, ",0" + (j % 3 != 0)); 4456 ~~~~~^~~~~~~~~~~~~~ 4457 44582020-08-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4459 4460 fixed a compiler warning found by Clang 10.0.1 on armv8-a (Samsung S8 4461 aarch64-unknown-linux-android): 4462 4463 ./tgeneric.c:208:40: warning: implicit conversion from 'mp_limb_t' (aka 'unsigned long') to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-int-float-conversion] 4464 (double) randlimb () / MPFR_LIMB_MAX; 4465 ~ ^~~~~~~~~~~~~ 4466 ../src/mpfr-impl.h:1277:28: note: expanded from macro 'MPFR_LIMB_MAX' 4467 #define MPFR_LIMB_MAX ((mp_limb_t) -1) 4468 ^~~~~~~~~~~~~~ 4469 44702020-08-09 Vincent Lef��vre <vincent@vinc17.net> 4471 4472 [doc/mpfr.texi] Updated the month. 4473 4474 [doc/mpfr.texi] In the paragraph about cases that are hard to round, 4475 also mention potentially exact cases. 4476 44772020-07-20 Vincent Lef��vre <vincent@vinc17.net> 4478 4479 [doc/README.dev] Added a paragraph on the issue with GCC and 4480 conversions between binary and decimal types. 4481 4482 [src/get_d128.c] Updated FIXME comment (after r14087). 4483 4484 [src/get_d128.c] Removed unused variable due to r14087. 4485 4486 [src/get_d128.c] For the special values, avoid double to _Decimal128 4487 conversions, as for such conversions, GCC generates from 2 to 3 MB in 4488 the shared library when the decimal encoding is BID, and there will be 4489 no fix in GCC: 4490 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96173 4491 We now use computations on _Decimal128 constants directly, which could 4492 thus be done at compile time. We expect no problems similar to double, 4493 as the _Decimal128 implementation should follow the IEEE 754 rules. 4494 This commit should avoid a large part of the problem reported at: 4495 https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21849&group_id=136 4496 44972020-07-15 Vincent Lef��vre <vincent@vinc17.net> 4498 4499 [tests/tset_ld.c] Improved an error message. 4500 45012020-07-13 Vincent Lef��vre <vincent@vinc17.net> 4502 4503 [tests/tests.c] Simplified the d_trace and ld_trace functions: 4504 we do not need a union (with its potentional padding) as there 4505 are no aliasing issues with unsigned char. 4506 4507 [tests/tset_ld.c] Fixed mpfr_out_str usage in error messages 4508 (see the change in r12520). 4509 4510 [tests/tget_ld_2exp.c] Corrected a function call in an error message. 4511 4512 [examples/version.c] "Compiler:" line: detect TCC (__TINYC__ macro). 4513 (merged r14078 from tests/tversion.c) 4514 4515 [tests/tversion.c] "Compiler:" line: detect TCC (__TINYC__ macro). 4516 45172020-07-12 Vincent Lef��vre <vincent@vinc17.net> 4518 4519 [src/get_d128.c] Updated the FIXME. 4520 4521 [src/get_d128.c] Added a FIXME to work around GCC bug 96173. 4522 45232020-07-10 Vincent Lef��vre <vincent@vinc17.net> 4524 4525 [src/jyn_asympt.c] Added an assertion. 4526 4527 [doc/README.dev] In the MPFR_CHECK_EXPENSIVE description, say that 4528 --enable-assert=full should not be used (too expensive, not needed). 4529 [tests/tjn.c] Added a related comment for the expensive bug20200703 4530 test (which may take more than 1 hour with --enable-assert=full). 4531 4532 [tests/tjn.c] Corrected indentation. 4533 45342020-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4535 4536 [tests/tjn.c] added another test 4537 4538 [src/jyn_asympt.c] fixed previous commit 4539 4540 [src/jyn_asympt.c] partly solved the slowness of jn(733333,733333) 4541 45422020-07-03 Vincent Lef��vre <vincent@vinc17.net> 4543 4544 [src/jyn_asympt.c] Replaced some MPFR_EXP by MPFR_GET_EXP. 4545 4546 [src/jyn_asympt.c] Added a log message. 4547 4548 [tests/tjn.c] Added testcase for bug reported by Alex Coplan: 4549 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96044 4550 mpfr_jn is very slow or doesn't terminate on (733333,733333). 4551 45522020-07-01 Vincent Lef��vre <vincent@vinc17.net> 4553 4554 [NEWS] For MPFR 4.1.0, added an item saying that TLS can safely be 4555 (re-)enabled on Sparc. 4556 45572020-06-29 Vincent Lef��vre <vincent@vinc17.net> 4558 4559 [tests/mpfr-test.h] Avoid a GCC bug on Sparc, at least when using TLS. 4560 The MPFR library itself is not affected, only a particular test. Normal 4561 code using the MPFR library should not be affected either, as the bug 4562 occurs when accessing __gmpfr_flags directly (and the public mpfr.h 4563 header file does not provide any macro that accesses an internal 4564 variable directly). So a workaround for the tests is the best solution. 4565 45662020-06-18 Vincent Lef��vre <vincent@vinc17.net> 4567 4568 [NEWS] Update for the next release. 4569 4570 [src/mpfr-longlong.h] Mention applied patch (in r14035). 4571 45722020-06-17 Vincent Lef��vre <vincent@vinc17.net> 4573 4574 [src/mpfr-longlong.h] Applied patch on 4575 https://gmplib.org/list-archives/gmp-bugs/2020-June/004807.html 4576 to fix add_ssaaaa and sub_ddmmss on arm / aarch64 (after a 4577 reverse-merge of r14032 and r13997), in order to resolve 4578 https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00017.html 4579 https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00059.html 4580 4581 [tests/tcmp_ui.c] Added a comment about a failing test with tcc if 4582 one adds tcc support for macros using __builtin_constant_p in mpfr.h 4583 by testing __TINYC__. 4584 Bug report against tcc: https://savannah.nongnu.org/bugs/?58606 4585 45862020-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4587 4588 [src/mpfr-longlong.h] disable buggy sub_ddmmss for aarch64 4589 45902020-06-15 Vincent Lef��vre <vincent@vinc17.net> 4591 4592 [doc/mpfr.texi] Corrected and detailed the description of 4593 mpfr_get_str_ndigits. 4594 4595 [src/get_str.c] Since the mpfr_get_str_ndigits function is in the 4596 public API, use MPFR_ASSERTN instead of MPFR_ASSERTD on the condition 4597 on the argument b in order to get an assertion failure (by default) 4598 if this condition is not satisfied. 4599 46002020-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4601 4602 [doc/mpfr.texi] specify the range of b for mpfr_get_str_ndigits 4603 46042020-06-14 Vincent Lef��vre <vincent@vinc17.net> 4605 4606 [tests/tdigamma.c] Increase the number of tests. 4607 46082020-06-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4609 4610 [src/digamma.c] fixed bug found while testing mpfr-4.1.0-rc1 4611 46122020-06-14 Vincent Lef��vre <vincent@vinc17.net> 4613 4614 [src/digamma.c] Added a FIXME. 4615 4616 [src/digamma.c] Replaced mpfr_get_exp by MPFR_GET_EXP. 4617 4618 [src/digamma.c] 4619 * Replaced some MPFR_EXP by MPFR_GET_EXP to check that the MPFR number 4620 has an exponent (i.e. it is not a special value). 4621 ��� Assertion failure in tdigamma (on x86_64). 4622 Note: this might be the cause of an unexpected loop (infinite loop?) 4623 on a Debian 10.4 POWER9 machine: 4624 https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00025.html 4625 * Added an integer overflow check on a precision. 4626 46272020-06-13 Vincent Lef��vre <vincent@vinc17.net> 4628 4629 [tests/tset_ld.c] In a test specific to x86 extended precision, in case 4630 of incorrect result, detect whether Valgrind is used and one gets the 4631 result obtained with Valgrind due to 4632 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890215 4633 https://bugs.kde.org/show_bug.cgi?id=421262 4634 (long double behaves as double); in this case, output a message without 4635 an error since Valgrind is the only cause of the miscalculation. 4636 4637 [tests/tset_ld.c] bug_20160907 (tests on subnormals): 4638 * Replaced an assertion by a test with detailed output. 4639 * Corrected a value in a test, which did not match the comment. 4640 4641 [tests] Skip tabort_defalloc1 and tabort_defalloc2 under Valgrind, as 4642 Valgrind complains due to the large allocation size. 4643 * mpfr-test.h, tests.c: added tests_run_within_valgrind() function to 4644 guess whether the test runs within Valgrind. 4645 * tabort_defalloc1.c, tabort_defalloc2.c: skip the test (exit code 77) 4646 if this function returns true. 4647 4648 [configure.ac] Improvements concerning the default CFLAGS with GCC. 4649 * Add -Wc++-compat option to CFLAGS with GCC ��� 4.1 not in C++ mode. 4650 Changes based on Bruno Haible's patch suggested at 4651 https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00008.html 4652 (with some autoconf related fixes). 4653 * Output the $CFLAGS value that is eventually used. 4654 4655 [configure.ac] No longer add -Wc++-compat to CFLAGS when the compiler 4656 is GCC not in C++ mode (reverting the change done in r13406) since this 4657 option is not available before GCC 4.1: 4658 https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00008.html 4659 4660 [doc/mpfr.texi] ACM TOMS article: use the preferred DOI URL. 4661 4662 [tests/tfpif.c] Updated comment about the bug detected on AIX. 4663 4664 [tools/announce-text] For release candidates, automatically adapt the 4665 flow of the text. 4666 4667 [NEWS] Updated mpfr.org URLs (http ��� https). 4668 4669 [tools/announce-text] Better line lengths for release candidates. 4670 46712020-06-12 Vincent Lef��vre <vincent@vinc17.net> 4672 4673 [README] Added URL of the official GNU MPFR website and a note about the 4674 future migration, since InriaForge will shut down in December 2020. 4675 4676 [tests/tests.c] Removed a useless "#include <errno.h>" (added in r5252, 4677 useless since r5253). 4678 4679 [tests/tfpif.c] Fixed a bug (in the test) detected on AIX[*], where 4680 an fclose failed due to a previous read failure. At the same time, 4681 check that a read failure no longer occurs. Note: the read failure 4682 made mpfr_fpif_import fail, but this is a test where it is expected 4683 to fail, i.e. we now check that it fails for a good reason. 4684 [*] gcc119.fsffrance.org on the GCC Compile farm. 4685 4686 [tools/update-version] Improved a message. 4687 4688 [src/mpfr-longlong.h] Corrected a comment from GMP's longlong.h, which 4689 makes codespell complain in particular. 4690 4691 [tools/mpfrlint] Improved the __GMP_DECLSPEC test: 4692 * No longer exclude "src/mpfr.h". 4693 * Avoid false positives in "src/mpfr.h" and "src/mpfr-longlong.h". 4694 4695 [doc/mpfr.texi] Updated the month. 4696 4697 Updated version to 4.2.0-dev. 4698 4699 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v". 4700 47012020-06-11 Vincent Lef��vre <vincent@vinc17.net> 4702 4703 Renamed mpfr_total_order to mpfr_total_order_p for consistency with the 4704 other predicates (by convention, the function name should end with _p). 4705 4706 [NEWS] New function mpfr_total_order. Detailed mpfr_get_str_ndigits. 4707 4708 [doc/README.dev] Updated "To make a release". 4709 4710 [doc/README.dev] Updated "To make a release". 4711 4712 [src/Makefile.am] Updated -version-info to 7:0:1 for MPFR 4.1.0. 4713 4714 [NEWS] Additional details, in particular binary compatibility. 4715 4716 [NEWS] Some improvements. 4717 47182020-06-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4719 4720 [doc/mini-gmp] one more test is skipped now 4721 4722 [doc/mini-gmp] add test results with reduced limb size (int) 4723 47242020-06-11 Vincent Lef��vre <vincent@vinc17.net> 4725 4726 [doc/README.dev] Updated "To make a release". 4727 47282020-06-10 Vincent Lef��vre <vincent@vinc17.net> 4729 4730 [NEWS] Added release name for 4.1.0: "��pinards �� la cr��me". 4731 4732 [doc/mini-gmp] English usage improvement. 4733 4734 Fixed 2 issues with tests/tvalist.c: 4735 1. When building with mini-gmp (--with-mini-gmp=DIR) without 4736 optimizations (-O0), the build of tvalist was failing because 4737 the formatted output functions are not supported (this issue 4738 wasn't noticed with optimizations due to dead code elimination). 4739 Fix: this test is disabled with mini-gmp (not needed anyway). 4740 2. Dead code elimination with optimizations partly broke the goal 4741 of this test, i.e. checking that mpfr_vfprintf was available. 4742 This dead code was introduced in r7648 "Make sure that fct is 4743 used (avoid a warning)." (where fct = mpfr_vfprintf) but was 4744 actually not sufficient. 4745 Fix: call mpfr_vfprintf unconditionally, but on an empty string 4746 in order to avoid output to stdout. 4747 In addition to these changes in tests/tvalist.c, src/mpfr-impl.h could 4748 be simplified as a consequence. 4749 4750 Removed '# undef HAVE_STDARG' before '# include "config.h"' when it 4751 was used, as it was not always undefined (e.g. in tests/tsprintf.c) 4752 and there are no reasons to undefine this macro specifically. 4753 Note: this code was introduced in r2665 (2004-02-06), perhaps for 4754 the MPFR build inside GMP, which has been dropped a long time ago. 4755 4756 [tests/tvalist.c] Updated a comment. 4757 4758 [tests/tvalist.c] Correction when config.h is used (code copied from 4759 src/inits.c). 4760 47612020-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4762 4763 [doc/mini-gmp] review 4764 47652020-06-10 Vincent Lef��vre <vincent@vinc17.net> 4766 4767 [NEWS] Typo in option name. 4768 4769 [src/mpfr-longlong.h] 4770 * Updated comment about this file and the changes against GMP 6.2.0. 4771 * Define __GMP_GNUC_PREREQ if it isn't defined (this is currently not 4772 needed since it is defined in gmp.h as used also there, but this is 4773 useful in case some future gmp.h version no longer defines it). 4774 4775 [src/mpfr-longlong.h] Update: applied the diff of GMP's longlong.h 4776 between GMP 6.1.0 and GMP 6.2.0, after reverting changesets 13251, 4777 11042, 11025, and 10727, as these changes are present in the diff. 4778 4779 [configure.ac] With mini-gmp, also check the availability of srand48. 4780 4781 [src/mpfr-mini-gmp.c] For gmp_randseed_ui, which uses srand48, use 4782 a portable version of the conversion from unsigned long to long. 4783 4784 [doc/mini-gmp] Note also that the random functions are not thread-safe. 4785 4786 [doc/mini-gmp] Major update. 4787 4788 [NEWS] Removed a FIXME (no problems found). 4789 47902020-06-09 Vincent Lef��vre <vincent@vinc17.net> 4791 4792 [tests/tversion.c] Code style: replaced (mp_limb_t) -1 by MPFR_LIMB_MAX. 4793 4794 [src/mul_ui.c] Bug fix: in the code where MPFR_LONG_WITHIN_LIMB is 4795 not defined, update the flags (needed for the possible overflow). 4796 4797 [tests/tmul_ui.c] Added an overflow check that fails in MPFR_RNDZ with 4798 mini-gmp and mp_limb_t < long (e.g. "-DMINI_GMP_LIMB_TYPE=short"). 4799 4800 [tests/tgeneric.c] In the MPFR_SUSPICIOUS_OVERFLOW case, output yprec. 4801 4802 [src/mpfr-impl.h] Changed the code that defines MPFR_LONG_WITHIN_LIMB 4803 in order to support mini-gmp with -DMINI_GMP_LIMB_TYPE=... 4804 4805 [src/get_ld.c] Fixed build failure with GMP_NUMB_BITS == 8 due to the 4806 use of uint64_t in src/get_ld.c, while <stdint.h> was not included: 4807 replaced it by "unsigned long long", which does not need a specific 4808 header (an exact 64-bit type is not needed, we just need at least a 4809 64-bit width, which unsigned long long is guaranteed to have). 4810 Note: unsigned long long may not be available with a pre-C99 compiler, 4811 but this is not worse than uint64_t. This limitation is currently OK 4812 as GMP_NUMB_BITS == 8 support is just for testing. 4813 4814 [acinclude.m4] Make MPFR_CHECK_MP_LIMB_T_VS_LONG and 4815 MPFR_CHECK_MP_LIMB_T_VS_INTMAX similar: 4816 * Use AC_LINK_IFELSE in MPFR_CHECK_MP_LIMB_T_VS_LONG too: this 4817 is safer than AC_COMPILE_IFELSE, as it will detect undefined 4818 function-like macros. 4819 * Define MPFR_USE_STATIC_ASSERT in MPFR_CHECK_MP_LIMB_T_VS_INTMAX 4820 too in order to make sure that a static assertion is used (not 4821 the MPFR_ASSERTN fallback). 4822 Note: These constitute redundant safeguards because if MPFR_ASSERTN 4823 is used, it will be regarded as a function since the macro is not 4824 defined in this context, and linking will fail as a consequence. 4825 But this redundancy will protect more against MPFR code evolution. 4826 4827 [acinclude.m4] Fixed MPFR_CHECK_MP_LIMB_T_VS_LONG macro by forcing 4828 MPFR_USE_STATIC_ASSERT to 1 before including mpfr-sassert.h, i.e. 4829 by requiring static assertions: because AC_COMPILE_IFELSE is used 4830 (i.e. just compiling, no linking), the test could incorrectly succeed 4831 when MPFR_USE_STATIC_ASSERT was not defined, i.e. whatever the value 4832 of "(mp_limb_t) -1 >= (unsigned long) -1"; indeed, in this case, 4833 MPFR_ASSERTN() was used instead of a static assertion, and since the 4834 macro was not defined here, MPFR_ASSERTN was regarded as a function 4835 (without a prototype), which was fine for compiling (except when the 4836 compiler is configured to regard warnings such as missing prototype 4837 as errors). In short, one could get "yes" while long was larger than 4838 mp_limb_t. 4839 Note: In uncommon cases (non-standard compiler...), one can still get 4840 "no" while a long fits in mp_limb_t, but this isn't much an issue as 4841 the MPFR code should work in such a case. Moreover, src/mpfr-impl.h 4842 will also have the chance to set MPFR_LONG_WITHIN_LIMB in practice. 4843 4844 Removed MPFR_DECL_STATIC_ASSERT macro as it was buggy, unused, rather 4845 useless, and it had drawbacks. Details: 4846 * In src/mpfr-sassert.h, the default definition of this macro in the 4847 MPFR_USE_STATIC_ASSERT case ended with a spurious ";". Since this 4848 macro was unused, this wasn't noticeable... except in the configure 4849 test for static assertions, which failed in some cases (e.g. with 4850 CFLAGS="-std=c99 -pedantic-errors -Wno-error=overlength-strings") 4851 for this reason, which had the effect to let MPFR_USE_STATIC_ASSERT 4852 undefined, while static assertions were actually working. 4853 * Still in src/mpfr-sassert.h, but when MPFR_USE_STATIC_ASSERT is not 4854 defined, the MPFR_DECL_STATIC_ASSERT(c) expanded to nothing, which 4855 would yield invalid code as 4856 MPFR_DECL_STATIC_ASSERT(some_assertion); 4857 would yield an extra ";" (about the same issue as above). Given 4858 the fact that the portable MPFR_USE_STATIC_ASSERT code does not 4859 work with this compiler, it is not clear whether this is fixable 4860 in a completely reliable way. 4861 * MPFR_DECL_STATIC_ASSERT can be replaced by MPFR_STAT_STATIC_ASSERT 4862 after moving it to the statement section of a function, with almost 4863 no drawbacks (just a bit readability in some cases?). 4864 * When MPFR_USE_STATIC_ASSERT is not defined, MPFR_STAT_STATIC_ASSERT 4865 will check the assertion at run time (for free, since the result is 4866 known at compile time), while MPFR_DECL_STATIC_ASSERT would not be 4867 able to do anything useful. 4868 Changes: 4869 * acinclude.m4: removed the test of MPFR_DECL_STATIC_ASSERT. 4870 * src/mpfr-sassert.h: removed MPFR_DECL_STATIC_ASSERT definitions. 4871 * tune/tuneup.c: removed MPFR_DECL_STATIC_ASSERT redefinition. 4872 48732020-06-08 Vincent Lef��vre <vincent@vinc17.net> 4874 4875 [acinclude.m4] MPFR_CHECK_MP_LIMB_T_VS_LONG: updated comment to say 4876 that using MPFR_ASSERTN (as the code tries to do if static assertions 4877 are not supported, but currently fails) would be incorrect. 4878 4879 [acinclude.m4] In MPFR_CHECK_MP_LIMB_T_VS_INTMAX, do the test only if 4880 intmax_t is defined (assuming that it is iff uintmax_t is defined). 4881 4882 [tests/tversion.c] Also output the results of the detection of 4883 "long within limb" and "intmax_t within limb". 4884 48852020-06-04 Vincent Lef��vre <vincent@vinc17.net> 4886 4887 [configure.ac] Removed an obsolete FIXME, which is probably wrong. 4888 4889 [configure.ac] Updated a comment, replacing a resolved FIXME. 4890 4891 [acinclude.m4] MPFR_CHECK_DBL2INT_BUG test: avoid potentially reserved 4892 exit status. 4893 4894 [acinclude.m4] Fixed r13938: the new MPFR_C_REALFP_FORMAT macro also 4895 needs to take the printf length modifier in argument. 4896 4897 [acinclude.m4] Improved the code to determine the format of double, 4898 resolving the FIXME. The issue was that it used an AC_RUN_IFELSE, 4899 so that the format could not be determined when cross-compiling. 4900 The code to determine the format of long double did not have such 4901 an issue: the object file was analyzed by an awk script. Since a 4902 long double can have the same format as a double, this code was 4903 already able to recognize a double, in particular. So the change 4904 consisted in slightly adapting this code to accept the tested type 4905 as an argument ("double" or "long double", the mpfr_cv_��� variable 4906 name being obtained thanks to AS_VAR_PUSHDEF) and reusing it for 4907 the detection of the format of double. 4908 4909 [acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT cleanup: 4910 * Removed an unused AH_VERBATIM. 4911 * Removed "not available" condition, no longer possible since r13936. 4912 4913 [acinclude.m4] Fix concerning r13935: also removed code that tested 4914 the availability of long double. This code was useless since it was 4915 just outputting "not available" if long double was missing, and one 4916 would get an error later since MPFR requires long double. But since 4917 long double is in ISO C89, it is useless to add a test just to return 4918 an error for pre-C89 compilers. 4919 4920 [acinclude.m4] Removed "AC_CHECK_TYPES([long double])", whose only 4921 purpose is to define a HAVE_LONG_DOUBLE macro. 4922 [configure.ac] Removed HAVE_LONG_DOUBLE from the cleanup: no longer 4923 needed with the change in acinclude.m4. 4924 49252020-06-03 Vincent Lef��vre <vincent@vinc17.net> 4926 4927 [configure.ac] Minor change in a comment. 4928 4929 Cleanup about the function detection by autoconf. 4930 * acinclude.m4: removed the detection of memmove, memset and strtol, 4931 which was not used (a macro "HAVE_..." was defined... to be removed 4932 in configure.ac!); for AC_CHECK_FUNCS, remove options starting with 4933 "-Werror" as they can yield a spurious failure due to the way this 4934 test is done (this occurred on memmove and memset with GCC due to 4935 builtins, and similar issues could still occur in practice with the 4936 remaining functions in the AC_CHECK_FUNCS list). 4937 * configure.ac: removed HAVE_STRTOL from the macro cleanup: no longer 4938 needed since strtol has been removed from the AC_CHECK_FUNCS list. 4939 4940 [acinclude.m4] Minor improvement: in the MPFR_CHECK_GMP test, changed 4941 the exit status values 1..3 to 81..83 in order to avoid confusion, as 4942 low values can typically be returned in case of compile or link error. 4943 49442020-06-02 Vincent Lef��vre <vincent@vinc17.net> 4945 4946 [tests/memory.c] Updated a comment. 4947 4948 [src/mpfr-longlong.h] Added code to check that mpfr-longlong.h is not 4949 included directly; MPFR_NEED_LONGLONG_H must be defined instead. 4950 4951 [acinclude.m4] To complete r13928, one also needs to define 4952 MPFR_NEED_INTMAX_H here when mpfr-intmax.h is used. 4953 4954 [src/{mpfr-impl.h,mpfr-intmax.h}] Added code to check that mpfr-intmax.h 4955 is not included directly; MPFR_NEED_INTMAX_H must be defined instead. 4956 49572020-06-01 Vincent Lef��vre <vincent@vinc17.net> 4958 4959 Bug fixes and cleanup related to "src/mpfr-intmax.h" by introducing 4960 a new macro MPFR_NEED_INTMAX_H, which should be defined instead of 4961 using: #include "mpfr-intmax.h" 4962 4963 Details on the bugs fixed: 4964 * The code added in r13916 forgot a #include <limits.h> since this 4965 code does a test on ULLONG_MAX. With the cleanup, <limits.h> is 4966 already always included by mpfr-impl.h (early enough). 4967 * In src/get_str.c and tests/memory.c, a #include "config.h" was 4968 missing before #include "mpfr-intmax.h"; this issue would affect 4969 platforms where "config.h" is needed and where <inttypes.h> or 4970 <stdint.h> does not exist or does not work. 4971 49722020-06-01 Vincent Lef��vre <vincent@vinc17.net> 4973 4974 [tests/tgamma.c] For the non-regression test added in r13907, one 4975 also needs to temporarily increase the memory limit, thus require 4976 MPFR_CHECK_LARGEMEM too. 4977 49782020-05-26 Vincent Lef��vre <vincent@vinc17.net> 4979 4980 [acinclude.m4] If decimal floats are explicitly disabled, do not do 4981 the check of the bit-field ordering for _Decimal128. 4982 4983 [acinclude.m4] Fixed detection of bit-field ordering for _Decimal128: 4984 a compiler error with exit status 1 was mixed up with little endian. 4985 49862020-05-24 Vincent Lef��vre <vincent@vinc17.net> 4987 4988 [src/mpfr-intmax.h] Added support for Silicon Graphics IRIX 6.5 (1998) 4989 with native /usr/bin/cc, which knows the long long type but defines 4990 ULONGLONG_MAX, etc. instead of ULLONG_MAX, etc. 4991 4992 [tests/tget_ld_2exp.c] Reverted r13914 as we still need to support 4993 pre-C99 compilers (and this change was useless). 4994 If C99 syntax is needed, there should be a configure test, and the 4995 code should be conditional. 4996 49972020-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4998 4999 [tests/tget_ld_2exp.c] put expected value in hex in bug20180904() 5000 50012020-05-20 Vincent Lef��vre <vincent@vinc17.net> 5002 5003 [doc/README.dev] "To make a release": mention MPFR_CHECK_EXPENSIVE. 5004 50052020-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5006 5007 [tests/tgamma.c] added comment about bug fix 5008 5009 [src/bernoulli.c] improve initial precision in mpfr_bernoulli_internal() 5010 (avoid failures for n <= 10000) 5011 5012 [src/bernoulli.c] fix bug with non-regression test added in r13907 5013 5014 [src/bernoulli.c] temporary fix for the bug in mpfr_gamma, something must be 5015 wrong in the error analysis of mpfr_bernoulli_internal() 5016 5017 [doc/README.dev] added MPFR_CHECK_EXPENSIVE 5018 [tests/tgamma.c] use MPFR_CHECK_EXPENSIVE 5019 5020 added non-regression test for bug reported by Frithjof Blomquist 5021 50222020-05-04 Vincent Lef��vre <vincent@vinc17.net> 5023 5024 [tools/mpfrlint] Use of codespell: better workaround to python ugliness. 5025 50262020-04-27 Vincent Lef��vre <vincent@vinc17.net> 5027 5028 [doc/mpfr.texi] Section "Rounding" / even-rounding rule: the odd 5029 radices �� are actually not concerned since in such radices, ��^k 5030 is always odd, so that the exponent does not matter. 5031 5032 [doc/mpfr.texi] In Section "Rounding", for MPFR_RNDN, added a note 5033 about the even-rounding rule in particular cases: 1-digit precision 5034 and odd radices. 5035 Note: A short explanation was already in the mpfr_get_str description, 5036 which is where the issue could occur at the time the minimum precision 5037 of MPFR numbers was 2. Now that the minimum precision is 1, this rule 5038 in such special cases is more general. 5039 5040 [doc/mpfr.texi] + "than": also in a comment. 5041 5042 [doc/mpfr.texi] Corrected a typo. Changed "{less,greater} or equal to" 5043 to the more common "{less,greater} than or equal to". 5044 50452020-04-26 Vincent Lef��vre <vincent@vinc17.net> 5046 5047 [doc/mpfr.texi] In the paragraph on mpfr_rnd_t, give a reference 5048 to Section "Rounding". 5049 5050 [doc/mpfr.texi] s/can not/cannot/ 5051 5052 [doc/mpfr.texi] Improved Section "Rounding" even more: 5053 * Added a note about the sign of the result (important for 0). 5054 * Described the directed rounding modes (BTW, this notion of 5055 "directed rounding modes" was used but never defined). 5056 5057 [doc/mpfr.texi] Improved the description of the rounding modes: 5058 * Be more clear that MPFR_RNDN uses the even rounding rule. 5059 * In "two representable numbers", add "consecutive". 5060 * Be more general than radix 2 (due to conversions to a string). 5061 * Consistent typography. 5062 50632020-04-25 Vincent Lef��vre <vincent@vinc17.net> 5064 5065 [doc/mpfr.texi] 5066 * mpfr_init2: mention mpfr_prec_round; added a note about 5067 memory allocation. 5068 * mpfr_prec_round: clarification ("new allocation" could be 5069 surprising since one needs less memory). 5070 50712020-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5072 5073 [doc/mpfr.texi] document that mpfr_prec_round does no new allocation 5074 in case the allocated memory is enough 5075 50762020-04-22 Vincent Lef��vre <vincent@vinc17.net> 5077 5078 [src/atan.c] Removing the FIXME: I can't see anything wrong in the 5079 MPFR code. This could be a bug in GCC's analyzer (which is currently 5080 experimental). And GCC bug 94713 in the analyzer prevents debugging 5081 as it makes impossible to track uninitialized values: warnings do not 5082 occur the first time an uninitialized value occurs. 5083 5084 [src/atan.c] Added an assertion. 5085 5086 [src/atan.c] Reduce the number of mpz_get_ui calls with assertions. 5087 5088 [src/atan.c] Added a FIXME. 5089 50902020-04-14 Vincent Lef��vre <vincent@vinc17.net> 5091 5092 [doc/texinfo.tex] Update to 2020-02-11.09 with "autoreconf -i -f" 5093 under Debian/unstable. 5094 Note: The generated mpfr.html and mpfr.info files remain the same. 5095 In mpfr.pdf, there are minor changes concerning horizontal spacing 5096 in paragraphs with a URL. 5097 50982020-04-11 Vincent Lef��vre <vincent@vinc17.net> 5099 5100 [tests/tget_set_d64.c] Fixed missing "#if _MPFR_IEEE_FLOATS" that 5101 became visible with r13878 now that the encoding of decimal floats 5102 can be detected at compile time. But by fixing the defined macros 5103 manually, this issue could be visible before r13878. 5104 51052020-04-10 Vincent Lef��vre <vincent@vinc17.net> 5106 5107 Reworked decimal support and detection, resolving FIXMEs. 5108 * INSTALL, acinclude.m4, configure.ac: --enable-decimal-float can 5109 take new values. Change of macro DPD_FORMAT (DPD was assumed in 5110 case of cross-compilation, which could be wrong) to 3 new macros: 5111 DECIMAL_DPD_FORMAT, DECIMAL_BID_FORMAT, DECIMAL_GENERIC_CODE. 5112 * doc/README.dev: documented these 3 new macros. 5113 * src/mpfr-impl.h: the detection of the BID encoding can now be 5114 done at compile time when GCC defines __DECIMAL_BID_FORMAT__ 5115 (as on x86); support of the 3 new macros. 5116 * src/{get_d64.c,set_d64.c,set_d128.c}: update. 5117 * tests/{tget_set_d64.c,tget_set_d128.c,tversion.c}: update. 5118 51192020-04-08 Vincent Lef��vre <vincent@vinc17.net> 5120 5121 Updated URLs of the GCC mailing-list archives. 5122 51232020-04-06 Vincent Lef��vre <vincent@vinc17.net> 5124 5125 [src/mpfr-gmp.h] Updated FIXME about AC_FUNC_ALLOCA (in 2019-01, I 5126 already noticed a probable bug in the AC_FUNC_ALLOCA description, 5127 but forgot about it). 5128 5129 [doc/mpfr.texi] Updated the month. 5130 5131 [doc/mpfr.texi] Formatted output functions: added a comment with the URL 5132 of the bug report. 5133 5134 [NEWS,doc/mpfr.texi] Documented the improvement in the formatted output 5135 functions (mpfr_printf, etc.) with an empty precision field, about 5136 trailing zeros. 5137 51382020-04-03 Vincent Lef��vre <vincent@vinc17.net> 5139 5140 [tests/tsub.c] Corrected MPFR_ASSERTD to MPFR_ASSERTN. 5141 5142 [tests/tsub.c] Reverted r13862 and fixed the test_ubf test: A random 5143 precision was too small, so that an input for the test was not computed 5144 exactly (I had modified the values of the inputs for better tests, but 5145 forgot to change the minimum precision). Also check that the inputs are 5146 computed exactly (which is what I often do, but here, I had forgotten), 5147 in order to make errors like the above one easier to understand in case 5148 the test will have to be modified later. 5149 Note: With the incorrect input, the mpfr_sub1 result and flags were 5150 actually correct, so that this was only a bug in the test. 5151 51522020-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5153 5154 [INSTALL] update CompCert instructions 5155 51562020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5157 5158 [INSTALL] fixed CompCert instructions 5159 51602020-04-02 Vincent Lef��vre <vincent@vinc17.net> 5161 5162 [tests/tset_ld.c] Reverted r13858: the check_overflow test was already 5163 in MPFR 4.0.1 and was succeeding on armv5tejl-unknown-linux-gnueabi, 5164 which had mpfr_cv_c_long_double_format='IEEE double, little endian'. 5165 The issue should be investigated. 5166 Note: MPFR_LDBL_MANT_DIG may be larger than the actual number of bits, 5167 but this should not cause a failure in the tests. 5168 5169 [tests/tget_ld_2exp.c] Proper fix: the bug20180904 test was designed 5170 for the x87 extended precision, so enable it only in this case. 5171 51722020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5173 5174 [tests/tsub.c] modify test_ubf() to always hit a current failing test 5175 51762020-04-02 Vincent Lef��vre <vincent@vinc17.net> 5177 5178 [configure.ac] Fixed the change done in r13853 (about removed macros), 5179 making the code simpler and more maintainable at the same time. 5180 51812020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5182 5183 [INSTALL] added configuration for CompCert test 5184 51852020-04-02 Vincent Lef��vre <vincent@vinc17.net> 5186 5187 [src/set_ld.c] Removed obsolete workaround due to LDBL_MAX being buggy 5188 on old i386 systems (the tests were not using this workaround). 5189 51902020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5191 5192 [tests/tget_ld_2exp.c] fixed for case where long double = double 5193 [tests/tset_ld.c] likewise 5194 51952020-04-02 Vincent Lef��vre <vincent@vinc17.net> 5196 5197 [configure.ac] Moved MPFR_CONFIGS invocation: MPFR_CONFIGS uses LDFLAGS, 5198 thus must be invoked after LDFLAGS has been determined completely. 5199 52002020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5201 5202 [INSTALL] now all tests pass with compcert 5203 5204 [acinclude.m4] added missing LDFLAGS for long double test 5205 52062020-04-02 Vincent Lef��vre <vincent@vinc17.net> 5207 5208 [doc/README.dev] Added HAVE_ALLOCA description. 5209 5210 [configure.ac] Do not remove the HAVE_ALLOCA macro, which is now used 5211 by MPFR to determine the default MPFR_ALLOCA_MAX value. 5212 52132020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5214 5215 [INSTALL] update CompCert instructions 5216 52172020-04-02 Vincent Lef��vre <vincent@vinc17.net> 5218 5219 [tests/tversion.c] Output whether MPFR is built with the GMP build, 5220 and the MPFR_ALLOCA_MAX value if not. 5221 5222 [src/mpfr-gmp.h] If HAVE_ALLOCA is not defined, i.e. if alloca() is 5223 not available (as detected by the configure script), then set the 5224 default MPFR_ALLOCA_MAX value to 0 so that alloca() is not used. 5225 52262020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5227 5228 [INSTALL] added instructions for CompCert 5229 52302020-04-02 Vincent Lef��vre <vincent@vinc17.net> 5231 5232 [doc/README.dev] Updated MPFR_ALLOCA_MAX description. 5233 5234 [src/mpfr-gmp.h] When MPFR_ALLOCA_MAX = 0 (set at configure time), 5235 do not reference alloca() since we don't need it. 5236 52372020-03-31 Vincent Lef��vre <vincent@vinc17.net> 5238 5239 [doc/mpfr.texi] About mpfr_printf with %Re and empty precision field, 5240 added a comment with URLs of the discussion and the bug report. 5241 52422020-03-30 Vincent Lef��vre <vincent@vinc17.net> 5243 5244 [src/sub1.c] Typo in a comment. 5245 5246 [configure.ac] Updated message output when the gmp.h vs libgmp test 5247 fails: another cause may be that LD_RUN_PATH is not honored (problem 5248 seen under OpenBSD 6.6 / gcc302.fsffrance.org). 5249 52502020-03-27 Vincent Lef��vre <vincent@vinc17.net> 5251 5252 [tests/tset_sj.c] Forgot a "#ifndef NPRINTF_J" for printf("%jd",...). 5253 5254 [src/set_uj.c] Fixed underflow detection. 5255 5256 [src/set_uj.c] Added early overflow detection to avoid a possible 5257 integer overflow. Added a FIXME (incorrect underflow detection). 5258 5259 [tests/tset_sj.c] Added tests of mpfr_set_sj_2exp and mpfr_set_uj_2exp 5260 in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN, 5261 MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX, 5262 MPFR_EXP_MAX-7 to MPFR_EXP_MAX (like in tset_si.c, see r13808), but 5263 also exponents INTMAX_MIN and INTMAX_MAX. This shows bugs in set_uj.c, 5264 to be fixed... 5265 5266 [src/set_sj.c] Coding style. 5267 5268 [src] Moved the definition of the numberof() macro from mpfr-gmp.h to 5269 mpfr-impl.h in order to always use our own. Also make sure that the 5270 type is signed, so that the value can be used in arbitrary expressions 5271 without the risk of silently switching to unsigned arithmetic. 5272 52732020-03-26 Vincent Lef��vre <vincent@vinc17.net> 5274 5275 [tests/texpm1.c] Updated the bad_cases() parameters to increase the 5276 proportion of generated bad cases. 5277 5278 [tests/tset_si.c] Forgot a cast for MPFR_EXP_FSPEC argument. 5279 5280 [doc/mpfr.texi] Updated the month. 5281 5282 Consistency: "a UBF" ��� "an UBF" since UBF stands for "unbounded float". 5283 5284 [src/mpfr-impl.h] Updated UBF comment about aliasing rules. 5285 5286 [src/mpfr-impl.h] Updated UBF comment about aliasing rules. 5287 5288 [src/mpfr-impl.h] Bug fix (MPFR_ZEXP(x) as used for an assignment 5289 could yield undefined behavior on platforms where mpfr_exp_t has 5290 trap representations); this is also a general improvement. 5291 5292 [tests/tsub.c] Avoid the build failure with -Werror=strict-aliasing by 5293 replacing x[���] by p[���] (but this doesn't eliminate the problem itself). 5294 5295 [src/mpfr-impl.h] UBF: updated comment: this breaks aliasing rules, but 5296 there isn't any other acceptable solution. 5297 Note: when trying to build MPFR without --enable-assert, with GCC and 5298 CFLAGS="-O2 -Werror=strict-aliasing", the compilation of tests/tsub.c 5299 currently fails because of that. 5300 53012020-03-25 Vincent Lef��vre <vincent@vinc17.net> 5302 5303 [tests/tsub.c] Fixed tests on UBF. 5304 5305 [src/sub1.c] Fixed underflow handling in case c small (can occur only 5306 with UBF). 5307 5308 [tests/tfma.c] Minor correction. 5309 5310 [tests/tfma.c] Changed a RND_LOOP to RND_LOOP_NO_RNDF as the behavior 5311 with RNDF changed after a bug fix. 5312 5313 [tests/tsub.c] Completed tests for UBF (currently fail). 5314 5315 [src/sub1.c] Bug fix for UBF and MPFR_RNDF. 5316 5317 [src/set_{si,ui}_2exp.c] Bug fix in MPFR_LONG_WITHIN_LIMB defined case: 5318 added early underflow/overflow checking to avoid integer overflow or 5319 errors due to special exponent values. 5320 5321 [tests/tset_si.c] Added tests of mpfr_set_si_2exp and mpfr_set_ui_2exp 5322 in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN, 5323 MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX, 5324 MPFR_EXP_MAX-7 to MPFR_EXP_MAX, showing bugs in these functions when 5325 MPFR_LONG_WITHIN_LIMB is defined. 5326 53272020-03-24 Vincent Lef��vre <vincent@vinc17.net> 5328 5329 [tests/tsub.c] More tests on UBF. The results are not checked yet, 5330 but running the tests with UBsan could allow one to trigger bugs 5331 (such as the one fixed in r13806). 5332 5333 [src/sub1.c] If exp_b = MPFR_EXP_MIN, an integer overflow may occur in 5334 the "MAX (aq, bq) + 2 <= diff_exp" branch. This is possible only with 5335 UBF. Fixed this bug with an early underflow detection in the UBF case. 5336 5337 [tests/tfmma.c] Added extreme_underflow test: before the r13798 bug fix, 5338 this was triggering an integer overflow. 5339 5340 [tests/tsub.c] Corrected a function name. 5341 5342 [tests/tsub.c] More tests on UBF, in particular with an exponent change 5343 (including subnormal ��� normal and normal ��� overflow due to that). 5344 5345 [tests/tsub.c] Tests on UBF: underflow/overflow cases done. 5346 53472020-03-23 Vincent Lef��vre <vincent@vinc17.net> 5348 5349 [tests/tsub.c] More tests on UBF. 5350 5351 [src/mpfr-impl.h] UBF: reordered macro definitions. 5352 5353 [src] 5354 * mpfr-impl.h: define MPFR_UBF_GET_EXP macro. 5355 * add1.c, sub1.c: use this macro. 5356 5357 [src/sub1.c] Detect an underflow case (before the main detection) to 5358 avoid a possible integer overflow with UBF. 5359 5360 [tests/tsub.c] Added comments. 5361 5362 [tests/tsub.c] First tests on UBF. 5363 5364 [src/agm.c] Avoid a potential integer overflow with huge precisions. 5365 53662020-03-16 Vincent Lef��vre <vincent@vinc17.net> 5367 5368 [src/root.c] Removed useless cast in a comparison, as both operands are 5369 non-negative. 5370 5371 [src/rem1.c] 5372 * Portability fix: when mpfr_exp_t <= long (which is the default), 5373 an addition was done in unsigned integer arithmetic instead of 5374 signed integer arithmetic, with a conversion back to a signed 5375 type, i.e. with potentially implementation-defined behavior. 5376 There could also be an integer overflow on huge-precision values 5377 if mp_bitcnt_t > unsigned long. 5378 * Updated a comment. 5379 5380 [src/pow.c] 5381 * Portability fix: when mpfr_exp_t <= long (which is the default), 5382 an addition with a negative result was done in unsigned integer 5383 arithmetic instead of signed integer arithmetic, with a conversion 5384 back to a signed type, i.e. with implementation-defined behavior. 5385 There could also be an integer overflow on huge-precision values 5386 if mp_bitcnt_t > unsigned long. 5387 * Updated comments. 5388 5389 [src/cos.c] Updated a comment. 5390 5391 [src/cos.c] Updated a comment. 5392 5393 [src/const_log2.c] Corrected type for the return value of mpz_scan1. 5394 53952020-03-13 Vincent Lef��vre <vincent@vinc17.net> 5396 5397 [tests/tests.c] Revert a change done in r13783 for function bad_cases(): 5398 no longer fail if a generated value does not correspond to a bad case. 5399 But fail if the MPFR_CHECK_BADCASES environment variable is defined 5400 and too few bad cases are generated (less than 90%). 5401 [doc/README.dev] Document MPFR_CHECK_BADCASES. 5402 5403 [tests] Update to test the ternary value in test5rm() when possible, 5404 and support the exact cases. 5405 * tests.c: 5406 - test5rm(): modified the prototype again and the behavior. 5407 Now, either only one test is done and the ternary value is 5408 not checked, or the test is done in the 5 rounding modes and 5409 the ternary value is checked. 5410 - data_check(): corresponding update; updated description. 5411 - bad_cases(): test the exact cases too. 5412 * tatanh.c: for the bad_cases() call, reduce emax to avoid errors in 5413 the generation of bad cases due to the rounding of tanh(y) to 1, 5414 which does not correspond to a bad case for atanh, but to an exact 5415 case. 5416 * tlog1p.c: for the bad_cases() call, reduce emax to avoid errors in 5417 the generation of bad cases due to the rounding of expm1(y) to -1, 5418 which does not correspond to a bad case for log1p, but to an exact 5419 case. 5420 * trec_sqrt.c: corrected the bad_cases() call to avoid negative 5421 numbers. 5422 Note: the following tests 5423 GMP_CHECK_RANDOMIZE=5 ./tacos 5424 GMP_CHECK_RANDOMIZE=6 ./tatan 5425 GMP_CHECK_RANDOMIZE=4 ./tcos 5426 currently fail, but because of a change in r13783 (see associated log 5427 for the reason). To be fixed later. 5428 5429 [tests/tests.c] Modified the prototype of test5rm() to support a 5430 parameter "exact". Therefore the parameter "test_one" is now a boolean 5431 (the value 2 is no longer supported, as redundant with "exact"), and 5432 about data_check() with rnd = '*', the loop is now done in test5rm(), 5433 i.e. test5rm() is called with test_one being false. 5434 54352020-03-12 Vincent Lef��vre <vincent@vinc17.net> 5436 5437 [tests/tsqrt.c] For bad_cases(), use the same pos and psup parameters 5438 as in troot.c for "rootn[2]", allowing inexact cases. 5439 5440 [tests/tcbrt.c] For bad_cases(), use the same pos and psup parameters 5441 as in troot.c for "rootn[3]", allowing inexact cases. 5442 5443 [tests] 5444 * tests.c, function bad_cases(): updated/added debug messages; 5445 assume that the parameters are chosen in such a way that this 5446 test always generates hard-to-round cases (including exact cases), 5447 i.e. exit with an error if one does not get a bad case, otherwise 5448 this can leave unexpected failures unnoticed (either due to a bug 5449 in the MPFR library or due to poorly chosen parameters such as in 5450 troot.c until now). 5451 Note: ideally, this would require a proof, but it is better to get 5452 (unlikely) spurious failures with a non-default GMP_CHECK_RANDOMIZE 5453 value than missing important tests. 5454 * troot.c, bad_cases() invocation: 5455 - corrected the pos parameter: when n is even, it is useless to 5456 generate a negative number as the function is not defined (the 5457 inverse function generates a positive number, and the mismatch 5458 now yields a failure due to the change in bad_cases); when n is 5459 odd, generate as many negative numbers as positive ones. 5460 - for n ��� 5, reduce the psup parameter in order to also generate 5461 inexact cases, instead of always exact cases. 5462 5463 [tests/tests.c] Added a TODO for bad_cases, as the exact cases are not 5464 tested yet. As a consequence, the bad_cases test added in tcbrt.c r13776 5465 is not really useful yet, as the cbrt bad cases are only exact cases. 5466 5467 [tests/tests.c] 5468 * test5rm: removed additional useless tests added in r6037 in the 5469 case test_one true and rnd = MPFR_RNDZ or MPFR_RNDA, since the 5470 description was a bit incorrect and this was used only by 5471 - data/digamma, where this yielded only duplicate tests (mode *); 5472 - data/li2, where mode z is used on a few tests and could be 5473 replaced by mode Z (i.e. test_one false) if need be; 5474 updated description and added details. 5475 * data_check: corrected/updated description. 5476 5477 [tests/tests.c] Minor change in an initialization. 5478 5479 [tests/tget_set_{d64,d128}.c] Added a FIXME and improved a message. 5480 5481 [acinclude.m4] Added a FIXME: in case of cross-compiling, the guess 5482 "DPD" can be wrong, e.g. for the build with MinGW under Linux. One 5483 does not get a failure just because of other issues in the code, 5484 forcing the portable implementation of the decimal functions. 5485 54862020-03-11 Vincent Lef��vre <vincent@vinc17.net> 5487 5488 Added bad_cases tests for mpfr_cbrt. 5489 5490 [src/cbrt.c] Improved the algorithm in the case the precision of the 5491 input is larger than 3n, where n is the precision of the output, + 1 5492 if the rounding mode is MPFR_RNDN: instead of truncating the output, 5493 call mpz_root on the truncated input. 5494 5495 [tests/tcbrt.c] Test the ternary value on other exact cases. 5496 5497 [tests/tcbrt.c] Test the ternary value on special cases. 5498 5499 [src/cbrt.c] Description of the algorithm: improvement; corrected the 5500 end, which was incorrect and did not match the code (the comment was 5501 introduced in r2057 and was already incorrect in the round-down case; 5502 then the round-to-nearest case was improved in r2070, but the comment 5503 was not updated). 5504 5505 [src/cbrt.c] Description of the algorithm: correction; added a TODO. 5506 55072020-03-10 Vincent Lef��vre <vincent@vinc17.net> 5508 5509 [src/cbrt.c] Description of the algorithm: corrected indentation; 5510 renamed variable r to t in order to avoid confusion with the code 5511 (where r has a different meaning). 5512 5513 [src/cbrt.c] Clarified a comment. 5514 5515 [src/cbrt.c] Resolved the second FIXME and simplified the code 5516 (basically by removing duplicate code). 5517 5518 [src/cbrt.c] Description of the algorithm: 5519 * Since there was no upper bound on s, let's remove the upper bound 5520 on m (this now matches the code). 5521 * Replaced the FIXME by one due to the lack of upper bound on s. 5522 5523 [src/cbrt.c] Added another FIXME as the code does not match the 5524 algorithm described in a comment. 5525 5526 [src/cbrt.c] Improved a condition to avoid operations that correspond 5527 to a no-op. 5528 5529 [src/cbrt.c] Added an assertion. 5530 5531 [src/cbrt.c] Code cleanup and simplification. Added logging messages and 5532 a FIXME about a comment (coming from r2057 with its associated code). 5533 5534 [src/cbrt.c] Removed a useless cast on a comparison operand, since 5535 both operands are non-negative. 5536 5537 [src/atan.c] Added assertions. 5538 5539 [tools/mpfrlint] Workaround to Debian bug 953369 in libpython3.8-minimal 5540 for the codespell invocation. 5541 55422020-03-09 Vincent Lef��vre <vincent@vinc17.net> 5543 5544 [src/eint.c] Bug fix: possible integer overflow with some 5545 C implementations (or some _MPFR_PREC_FORMAT / _MPFR_EXP_FORMAT values) 5546 due to the use of incorrect integer types. 5547 5548 [src/eint.c] Added other logging messages. 5549 5550 [src/eint.c] Added some logging messages. 5551 55522020-03-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5553 5554 [tests/tsin.c] added one test 5555 55562020-03-04 Vincent Lef��vre <vincent@vinc17.net> 5557 5558 [src/sub1.c] cancel: also log its value; range checking/tracking. 5559 5560 [src/cmp2.c] Added a comment giving the range of the value returned 5561 in "cancel" and explaining why there is no integer overflow in the 5562 computation of this value. 5563 5564 [src/cmp2.c] Comment: some absolute values are not needed (again). 5565 5566 [src/cmp2.c] Minor correction for |EXP(b) - EXP(c)| >= MPFR_EXP_MAX. 5567 5568 [src/cmp2.c] Better explanation when |EXP(b) - EXP(c)| >= MPFR_EXP_MAX. 5569 55702020-03-03 Vincent Lef��vre <vincent@vinc17.net> 5571 5572 [src/cmp2.c] Finished the review of mpfr_cmp2: simplified the code even 5573 more; corrected/updated comments (in the case high_dif = 0, one can have 5574 dif = 1 if c has entirely been taken into account, so that the comment 5575 "dif > 1 here" was incorrect; only dif >= 1 is needed anyway). 5576 5577 [src/cmp2.c] Changed high_dif to type int since it is manipulated like 5578 a boolean. Updated comments. 5579 55802020-03-02 Vincent Lef��vre <vincent@vinc17.net> 5581 5582 [src/cmp2.c] Simplified the mpfr_cmp2 code and updated comments. 5583 5584 [src/cmp2.c] Updated comments. 5585 55862020-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5587 5588 [src/mpfr.h] added comment 5589 55902020-03-02 Vincent Lef��vre <vincent@vinc17.net> 5591 5592 [src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: improved comment. 5593 5594 [src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: added a detailed 5595 comment (the previous comment was not obsolete, but misleading). 5596 55972020-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5598 5599 [src/mpfr.h] removed obsolete comment (_MPFR_PREC_FORMAT=3 is the default 5600 under Linux x86_64) 5601 56022020-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5603 5604 [src/sin.c] increase initial precision even more 5605 56062020-03-01 Vincent Lef��vre <vincent@vinc17.net> 5607 5608 [tests/tpow.c] Replaced mpfr_cmp by !mpfr_equal_p for NaN detection. 5609 5610 [tests/tsin.c] Replaced obsolete function mpfr_mul_2exp by mpfr_mul_2ui. 5611 56122020-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5613 5614 [src/sin.c] increase initial precision when x is large 5615 56162020-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5617 5618 [src/rem1.c] workaround for efficiency bug in mpz_powm_ui, which was making 5619 argument reduction in mpfr_sin for huge x very slow. 5620 5621 Before: 5622 $ ./mfv5 -p113 -e16384 -d-2 mpfr_sin 5623 mpfr_sin: 3289620 / 3576511.59 / 6841956 5624 5625 After this commit: 5626 mpfr_sin: 166868 / 182661.01 / 343224 5627 56282020-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5629 5630 [tests/tpow.c] added one test 5631 5632 added value -2 for option -d to generate random number with exponent 5633 exactly e. Example: 5634 $ mfv5 -p113 -e16384 -d-2 -v mpfr_sin 5635 56362020-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5637 5638 [tests/tpow.c] added a test 5639 5640 [tests/tsin.c] fixed and completed check_binary128() 5641 56422020-02-28 Vincent Lef��vre <vincent@vinc17.net> 5643 5644 [src/cmp2.c] Started to review mpfr_cmp2. Minor changes. 5645 5646 [src/cmp2.c] Detailed a comment concerning UBF. 5647 56482020-02-27 Vincent Lef��vre <vincent@vinc17.net> 5649 5650 [tests/tsin.c] Cleanup of the latest test (note: mpfr_equal_p is better 5651 than mpfr_cmp as it makes the test fail on a NaN result). 5652 56532020-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5654 5655 [tests/tsin.c] added one test with precision 128 5656 56572020-02-27 Vincent Lef��vre <vincent@vinc17.net> 5658 5659 [src/mpfr.h] Updated a comment (underscore version of attribute name). 5660 5661 [tools/mpfrlint] Detect the use of the non-underscore version of the 5662 attribute names in mpfr.h (see README.dev). 5663 56642020-02-25 Vincent Lef��vre <vincent@vinc17.net> 5665 5666 [src/mpfr.h] Use the underscore version of the attribute names. 5667 [doc/README.dev] Added information on this subject. 5668 5669 [TODO] Added item on GNU Automake and -I options. 5670 56712020-02-14 Vincent Lef��vre <vincent@vinc17.net> 5672 5673 [src/mpfr-impl.h] Removed an incorrect comment before MPFR_TMP_INIT1 5674 (this macro does not allocate anything, and MPFR_TMP_INIT just after 5675 can allocate more than 1 limb). 5676 5677 [TODO] About the use of MPFR_MANT(x). 5678 56792020-02-13 Vincent Lef��vre <vincent@vinc17.net> 5680 5681 [TODO] Typo. 5682 56832020-02-12 Vincent Lef��vre <vincent@vinc17.net> 5684 5685 [tests/tcmpabs.c] Added missing tests of mpfr_cmpabs with NaN. 5686 5687 [tests/tcmpabs.c] For mpfr_cmpabs: like mpfr_cmpabs_ui, do each test 5688 in 4 different contexts, combinations of: 5689 * flags all unset or flags all set; 5690 * usual exponent range or reduced exponent range. 5691 Minor corrections in the old tests. 5692 5693 [tests/tcmpabs.c] For mpfr_cmpabs_ui: do each test in 4 different 5694 contexts, combinations of: 5695 * flags all unset or flags all set; 5696 * usual exponent range or reduced exponent range. 5697 56982020-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5699 5700 [tests/tcmpabs.c] added tests for mpfr_cmpabs_ui 5701 57022020-02-12 Vincent Lef��vre <vincent@vinc17.net> 5703 5704 [src/mpfr-impl.h] 5705 * MPFR_ALIAS: use the comma operator instead of "do ... while (0)" 5706 so that this macro can be used in an expression context. 5707 * MPFR_TMP_INIT_ABS, MPFR_TMP_INIT_NEG: use MPFR_ALIAS. 5708 5709 [src/mpfr.h] Added prototype for mpfr_cmpabs_ui. 5710 5711 [doc/mpfr.texi] Added mpfr_cmpabs_ui to Section "Added Functions" 5712 (API Compatibility). 5713 5714 [tests/trint.c] Replaced obsolete mpfr_cmp_abs by mpfr_cmpabs. 5715 5716 [doc/mpfr.texi] Typo from r13708. 5717 57182020-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5719 5720 [NEWS] mention new mpfr_cmpabs_ui 5721 5722 added new function mpfr_cmpabs_ui 5723 5724 renamed cmp_abs.c to cmpabs.c 5725 57262020-02-12 Vincent Lef��vre <vincent@vinc17.net> 5727 5728 [TODO] Typo. 5729 5730 [TODO] + Serialization / Deserialization (suggested by Fr��d��ric P��trot). 5731 I've also added an idea of implementation to reuse most of the code and 5732 change very little. 5733 5734 [src/ubf.c] 5735 * Optimized mpfr_init_get_zexp() for _MPFR_EXP_FORMAT <= 3 5736 (as in the default configuration). 5737 * Updated comments. 5738 5739 [src/mpfr-impl.h] Added UBF-related comments. 5740 5741 [src/mpfr-impl.h] Added UBF-related comments. 5742 5743 [src/mpfr-impl.h] Added a comment for UBF and types. 5744 57452020-02-11 Vincent Lef��vre <vincent@vinc17.net> 5746 5747 [src/mpfr-impl.h] Added a comment for INEXPOS. 5748 5749 [src/mpfr-impl.h] INEXPOS and VSIGN code improvement. 5750 5751 Removed duplicate macro definitions. 5752 5753 [tests/tfmma.c] Use mpfr_set_str instead of mpfr_set_d. 5754 5755 [src/sub1.c] Got rid of some goto's. Added log messages. 5756 57572020-02-10 Vincent Lef��vre <vincent@vinc17.net> 5758 5759 [src/sub1.c] Bug fix: the underflow case (possible with UBF, e.g. via 5760 mpfr_fmma or mpfr_fmms) was not tested in the case c small. 5761 Note: this completes r11418 and r12752 for underflow detection. 5762 5763 [src/sub1.c] Added log messages and checked the UBF cases yielding 5764 exp_b == MPFR_EXP_MAX and/or diff_exp == MPFR_EXP_MAX. 5765 57662020-02-08 Vincent Lef��vre <vincent@vinc17.net> 5767 5768 [src/vasprintf.c] Added log messages for MPFR_PREC_ARG ('P' specifier). 5769 5770 [tests/tsprintf.c] Fixed some tests: the 'P' specifier was missing. 5771 57722020-02-06 Vincent Lef��vre <vincent@vinc17.net> 5773 5774 [src/fmma.c] Reverted the mpfr_check_range from r13688. 5775 The exponent range has not been extended by mpfr_fmma_aux, and the 5776 result comes from mpfr_add, mpfr_sub, or mpfr_set_1_2, which return 5777 results in the current range. If the result of mpfr_fmma_aux is not 5778 in the current range, this is due to a bug in one of these functions. 5779 Note: mpfr_add and mpfr_sub accept UBF inputs. 5780 57812020-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5782 5783 [src/fmma.c] fixed bug (result might be out of exponent range) 5784 [tests/tfmma.c] added non-regression test 5785 57862020-02-03 Vincent Lef��vre <vincent@vinc17.net> 5787 5788 [doc/mpfr.texi] Updated the month. 5789 5790 [doc/mpfr.texi] In the paragraph "MPFR internal data such as flags", 5791 no longer mention caches as caches may now also be global when MPFR 5792 has been compiled as thread safe (locking is used). Caches have been 5793 discussed earlier in the section anyway. 5794 57952020-01-23 Vincent Lef��vre <vincent@vinc17.net> 5796 5797 [INSTALL] URL update. 5798 57992020-01-20 Vincent Lef��vre <vincent@vinc17.net> 5800 5801 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 5802 5803 [tests/Makefile.am] Updated a comment; in particular, replaced the two 5804 obsolete gmane.org URLs by lists.gnu.org/archive/html/bug-gnulib ones. 5805 5806 [INSTALL] Removed reference to a gmane.org URL, which no longer exists. 5807 58082020-01-16 Vincent Lef��vre <vincent@vinc17.net> 5809 5810 [src/beta.c,tests/ttanh.c] towards ��� toward (for consistency). 5811 58122020-01-10 Vincent Lef��vre <vincent@vinc17.net> 5813 5814 [tests/{tfprintf.c,tprintf.c}] Updated an error message about MinGW, 5815 now output only if MinGW is used. 5816 5817 [doc/README.dev] Concerning MinGW, added a sentence about the use of 5818 the __USE_MINGW_ANSI_STDIO macro, confirming the existing note. 5819 5820 [TODO] Removed obsolete item on MinGW and -D__USE_MINGW_ANSI_STDIO. 5821 5822 [INSTALL] Update concerning MinGW and the __USE_MINGW_ANSI_STDIO macro. 5823 5824 [doc/mpfr.texi] Updated mpfr_get_str documentation, correcting r13666 5825 (we still need the extra two bytes and to take -@Inf@ into account). 5826 58272020-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5828 5829 [mpfr.texi] fixed out-dated documentation for mpfr_get_str 5830 58312020-01-09 Vincent Lef��vre <vincent@vinc17.net> 5832 5833 [doc/README.dev] In the latest update, forgot to remove the CC=... 5834 5835 [doc/README.dev] Update about the test under Wine. 5836 5837 [acinclude.m4,configure.ac] 5838 * Moved the code that tries to determine the format of double from 5839 configure.ac to acinclude.m4 in MPFR_CONFIGS (as required), just 5840 before the one for long double. 5841 * Added a FIXME comment: This code uses AC_RUN_IFELSE, which cannot 5842 run the test when cross-compiling; use a test like for long double 5843 instead. 5844 5845 [acinclude.m4] English usage. 5846 5847 [acinclude.m4] Updated messages about the format of "long double". 5848 [configure.ac] Ditto for "double". Added missing AC_MSG_RESULT. 5849 5850 [tests/tversion.c] Updated/fixed an output line to match the other ones. 5851 5852 [tests/tsprintf.c] Added tests for %Ra and %Rb on the value 0 with an 5853 empty precision field. 5854 5855 [src/vasprintf.c] Fixed output precision bug with decimal output 5856 (i.e. e, f and g conversion specifiers) and an empty precision field 5857 on the value 0. 5858 5859 [tests/tsprintf.c] Also added tests with %Rf, %Rg and %#Rg on 0. 5860 5861 [tests/tsprintf.c] Added a test with %Re and an empty precision field 5862 on the value 0; it currently fails. 5863 58642020-01-08 Vincent Lef��vre <vincent@vinc17.net> 5865 5866 [tools/ck-copyright-notice] Added a note about the mpfr.pc.in file. 5867 5868 Copyright notice update: added 2020 with 5869 perl -pi -e 's/ (\d{4}-)?(2019)(?= Free Software)/ 5870 " ".($1||"$2-").($2+1)/e' **/*(^/) 5871 under zsh. Removed 2019 from the example in the doc/README.dev file. 5872 5873 [TODO] + base conversion with the round-trip property using a minimal 5874 precision, such as the to_chars functions from the C++ standard. 5875 5876 [doc/mpfr.texi] Updated the month. 5877 5878 [doc/mpfr.texi] Formatted output: improved the text concerning the 5879 empty precision field, i.e. focus on the chosen precision rather 5880 than the round-trip property (as the rounding mode is not necessarily 5881 to nearest). 5882 5883 [doc/mpfr.texi] Formatted output with %Re (empty precision field): 5884 added a reference to mpfr_get_str_ndigits. 5885 5886 [src/vasprintf.c] Simplified the conditions under which trailing zeros 5887 are kept (the spec_g variable is no longer needed as a consequence). 5888 5889 [tests/tsprintf.c] Re-added tests changed by r13644 and r13645, but 5890 with a variable of smaller precision in order to get the same output 5891 as before. 5892 5893 [tests/tsprintf.c] Updated other two tests (in da_DK locale). 5894 58952020-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5896 5897 fixed tests for new more precise semantics for mpfr_printf ("%Re", x), 5898 and documented it 5899 5900 [src/vasprintf.c] tentative fix so that mpfr_printf ("%.Re", x) prints a number 5901 of decimal digits independent from x 5902 59032019-12-24 Vincent Lef��vre <vincent@vinc17.net> 5904 5905 [INSTALL,doc/mpfr.texi] Typography. 5906 59072019-10-10 Vincent Lef��vre <vincent@vinc17.net> 5908 5909 [doc/algorithms.tex] Ulp calculus: put the old Rule 8 just after Rule 2, 5910 as the old Rule 3 (now Rule 4) uses it directly (proof updated). 5911 5912 [doc/algorithms.tex] Ulp calculus: simplified the proof of Rule 8. 5913 5914 [doc/algorithms.tex] Ulp calculus Rule 3: missing absolute values in 5915 the proof. 5916 5917 [doc/algorithms.tex] Actually assume that no underflows nor overflows 5918 occur for the whole section "Error calculus". 5919 5920 [doc/algorithms.tex] Ulp calculus Rule 6: corrected it (we need to 5921 assume no underflows nor overflows) and its proof, and generalized 5922 it with absolute values (like in the previous rules). 5923 59242019-10-07 Vincent Lef��vre <vincent@vinc17.net> 5925 5926 [doc/algorithms.tex] Ulp calculus Rule 3: more powerful result and 5927 much simpler proof. 5928 5929 [doc/algorithms.tex] Section 2 (Error calculus): When n was a precision, 5930 replaced it by p as this is the usual notation (see Section 1) and n 5931 sometimes had a double meaning. 5932 59332019-10-04 Vincent Lef��vre <vincent@vinc17.net> 5934 5935 [tests/tcmp_ui.c] Updated comment: this is a bug in Clang 9. 5936 5937 [tests/tcmp_ui.c] Added a comment: failure of a test with the 5938 clang-9 1:9-1 Debian package. 5939 59402019-10-01 Vincent Lef��vre <vincent@vinc17.net> 5941 5942 Clean-up concerning the tests of subnormals for double and float. 5943 * acinclude.m4: renamed variables 5944 mpfr_cv_have_denorms_flt to mpfr_cv_have_subnorm_flt 5945 mpfr_cv_have_denorms to mpfr_cv_have_subnorm_dbl 5946 and improved messages. 5947 * acinclude.m4, tests/tget_flt.c: renamed macro 5948 HAVE_DENORMS_FLT to HAVE_SUBNORM_FLT 5949 * acinclude.m4, tests/{tests.c,tset_d.c,tsprintf.c}: renamed macro 5950 HAVE_DENORMS to HAVE_SUBNORM_DBL 5951 * doc/README.dev: updated / completed the corresponding documentation. 5952 * tests/tget_d.c: renamed function check_denorms to check_subnorm. 5953 5954 [acinclude.m4] Updated comment about the tests for subnormal numbers. 5955 5956 [acinclude.m4] Added a comment about the tests for subnormal numbers. 5957 59582019-09-24 Vincent Lef��vre <vincent@vinc17.net> 5959 5960 [doc/Makefile.am] Added missing texinfo.tex prerequisite. 5961 59622019-09-16 Vincent Lef��vre <vincent@vinc17.net> 5963 5964 [tests] Added FIXME comment in tfprintf.c, tout_str.c and tprintf.c: 5965 The output is not tested (thus coverage data are meaningless). 5966 59672019-09-10 Vincent Lef��vre <vincent@vinc17.net> 5968 5969 [src/{add1sp.c,sub1sp.c}] Get rid of useless goto's. 5970 59712019-09-06 Vincent Lef��vre <vincent@vinc17.net> 5972 5973 [doc/mpfr.texi] Updated the month. 5974 5975 [src/hypot.c] Replaced a TODO by a FIXME. 5976 5977 The mpfr_out_str function now accepts bases from -2 to -36, in order to 5978 follow mpfr_get_str and GMP's mpf_out_str functions. 5979 5980 [doc/mpfr.texi] Changed an incorrect use of @xref, which must always 5981 occur at the beginning of a sentence (use "see @ref{...}" instead). 5982 5983 [doc/mpfr.texi] At the end of "Arithmetic Functions", added a sentence 5984 referencing the power functions (since x^n is an arithmetic function). 5985 59862019-09-05 Vincent Lef��vre <vincent@vinc17.net> 5987 5988 [doc/mpfr.texi] Removed the useless "Float ..." index entries. 5989 5990 [doc/mpfr.texi] Moved the mpfr_pow class of functions from 5991 "Arithmetic Functions" to "Transcendental Functions". 5992 5993 [doc/mpfr.texi] Added "Float transcendental functions" to the index 5994 for consistency ("transcendental functions" implies floating point, 5995 but the user should expect to find it with the other index terms 5996 starting with "Float"). 5997 5998 [doc/mpfr.texi] Renamed "Basic Arithmetic Functions" to just 5999 "Arithmetic Functions". 6000 6001 [doc/mpfr.texi] Transcendental functions: added a sentence to the 6002 important note (about cases theoretically very hard to round). 6003 6004 [doc/mpfr.texi] Renamed Section "Special Functions" to 6005 "Transcendental Functions" (as after changes in r13605 and r13606, 6006 it now contains only the transcendental functions), and slightly 6007 rewrote its important note. 6008 6009 [doc/mpfr.texi] Moved mpfr_free_cache, mpfr_free_cache2, mpfr_free_pool 6010 and mpfr_mp_memory_cleanup from "Special Functions" to a new section 6011 "Memory Handling Functions". 6012 6013 [doc/mpfr.texi] 6014 * Moved mpfr_fac_ui, mpfr_fma, mpfr_fms, mpfr_fmma, mpfr_fmms, 6015 mpfr_hypot, mpfr_sum and mpfr_dot from "Special Functions" to 6016 "Basic Arithmetic Functions" (as these are functions based on 6017 +, -, *, / and roots). 6018 * Added a FIXME for mpfr_pow: does this function really belong 6019 to "Basic Arithmetic Functions"? 6020 6021 [doc/mpfr.texi] Improved warning about huge precisions. 6022 6023 [src/mul.c] For the --enable-assert=full test, also test the flags 6024 (like what has been done for mpfr_add1sp and mpfr_sub1sp). 6025 6026 [src/sub1sp.c] For the --enable-assert=full test, improved output of 6027 ternary value and flags, like in r13582 for mpfr_add1sp. 6028 6029 [src/add1sp.c] Cosmetic change (consistent ordering). 6030 60312019-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6032 6033 [tests/tsub1sp.c] added non-regression test for bug in mpfr_sub1sp2n 6034 [src/sub1sp.c] fixed that bug 6035 60362019-09-04 Vincent Lef��vre <vincent@vinc17.net> 6037 6038 [acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro for MS-Windows. 6039 6040 [NEWS] More details about mpfr_add and mpfr_sub. 6041 60422019-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6043 6044 [NEWS] mention that mpfr_sub was also improved for 128 bits 6045 6046 [NEWS] coverage improved to 98.6% on x86_64 6047 6048 [tests/tadd1sp.c] improve coverage 6049 60502019-09-04 Vincent Lef��vre <vincent@vinc17.net> 6051 6052 [acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro: the patch had 6053 a spurious ";" at the end of conftest.c, which made its compilation 6054 fail with -pedantic -Werror (using gcc or clang). 6055 60562019-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6057 6058 [src/sub1sp.c] rewrote mpfr_sub1sp2n (inspired from mpfr_sub1sp1n) 6059 60602019-09-04 Vincent Lef��vre <vincent@vinc17.net> 6061 6062 [acinclude.m4] Updated MPFR_C_LONG_DOUBLE_FORMAT to support compilation 6063 with GCC's and clang's LTO (-flto). This new test is inspired by the one 6064 used by GMP for the double type. 6065 Thanks to Paul Mulders for a preliminary version of the patch for MPFR. 6066 60672019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6068 6069 [src/sub1sp.c] added new function mpfr_sub1sp2n for p = 2*GMP_NUMB_BITS 6070 (still to be tested) 6071 60722019-09-03 Vincent Lef��vre <vincent@vinc17.net> 6073 6074 [tests/tadd1sp.c] bug20190903: 6075 * Fixed the second test for GMP_NUMB_BITS != 64. 6076 * Updated comments. 6077 60782019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6079 6080 [src/add1sp.c] improved comment 6081 60822019-09-03 Vincent Lef��vre <vincent@vinc17.net> 6083 6084 [src/add1sp.c] mpfr_add1sp2n: improved a comment. 6085 6086 [src/add1sp.c] Fixed the bug. 6087 6088 [tests/tadd1sp.c] bug20190903: do the second test in MPFR_RNDU too. 6089 6090 [tests/tadd1sp.c] bug20190903: in the second test, check the mpfr_t 6091 value, the ternary value and the flags, in order to get a failure 6092 even without "--enable-assert=full". 6093 6094 [tests/tadd1sp.c] When testing mpfr_add, use a wrapper mpfr_add_cf 6095 that calls mpfr_clear_flags first, so that if --enable-assert=full 6096 is used, the flags can be better checked too (and automatically). 6097 Now tadd1sp outputs with --enable-assert=full, as wanted: 6098 add1 : ternary = -1, flags = inexact (8) 6099 add1sp: ternary = 0, flags = none (0) 6100 6101 [src] 6102 * exceptions.c: define flags_fout if MPFR_WANT_ASSERT >= 2, i.e. with 6103 --enable-assert=full (for better flags output in add1sp.c, etc.). 6104 * mpfr-impl.h: declare flags_fout if MPFR_WANT_ASSERT >= 2. 6105 * add1sp.c: improve output of ternary value and flags. 6106 6107 [tests/tadd1sp.c] Updated comments of bug20190903. 6108 6109 [tests/tadd1sp.c] Added a test that triggers a bug in mpfr_add1sp2n 6110 (corresponding to the FIXME), yielding a failure with 6111 "--enable-assert=full". 6112 Note 1: The computed values are equal (with MPFR_RNDN), but one gets 6113 Inexact sp = 0 | Inexact = -1 6114 Flags sp = 10 | Flags = 10 6115 Note 2: The fact that the flags do not match the ternary value in the 6116 error message is due to a missing mpfr_clear_flags in the test. 6117 6118 [src/add1sp.c] mpfr_add1sp2n: 6119 * Code refactoring, eliminating the unnecessary goto's. 6120 * In the d >= 2 * GMP_NUMB_BITS case, use a single test for rb and sb. 6121 * Improved code consistency. 6122 * Added a FIXME about suspicious code. ��� Find a failing test and fix 6123 the code, or explain the code if it is correct. 6124 61252019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6126 6127 [src/add1sp.c] fix for bug20190903 6128 61292019-09-03 Vincent Lef��vre <vincent@vinc17.net> 6130 6131 [src/add1sp.c] Corrected a comment. 6132 6133 [tests/tadd1sp.c] More random tests in the special precisions 6134 GMP_NUMB_BITS and 2 * GMP_NUMB_BITS (but they don't trigger 6135 the bug due to r13574). 6136 6137 [tests/tadd1sp.c] Added testcase for bug due to r13574 (found with 6138 the other test programs, using --enable-assert=full). 6139 61402019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6141 6142 [src/add1sp.c] added mpfr_add1sp2n for 128-bit precision (with 64-bit limb) 6143 61442019-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6145 6146 [src/sub1sp1_extracted.c] replace hard-coded bounds by emin/emax 6147 6148 added sub1sp1_extracted.c (not ready yet) 6149 61502019-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6151 6152 added github source for Jianyang Pan formal proof 6153 61542019-08-21 Vincent Lef��vre <vincent@vinc17.net> 6155 6156 [tests/mpfr-test.h] At the end, with GCC, undef volatile if defined. 6157 Explanations: 6158 With GCC, a macro "volatile" can be defined to test some special code 6159 in mpfr-impl.h (code for compilers that define such a macro), but the 6160 volatile keyword is necessary in some tests to avoid some GCC bugs. 6161 Thus we need to undef this macro (if defined). We do that at the end, 6162 so that mpfr-impl.h (included earlier) is not affected by this undef. 6163 6164 [tests/tget_set_d128.c] Updated a test with a non-canonical encoding: 6165 * More meaningful name ("noncanonical" instead of "coverage"). 6166 * Output details in case of failure. 6167 * Avoid GCC bug 91226: wrong propagation of non-canonical _Decimal64 6168 and _Decimal128 constant (BID only). 6169 61702019-08-20 Vincent Lef��vre <vincent@vinc17.net> 6171 6172 [doc/README.dev] Update concerning the "decimal-point character". 6173 6174 [doc/mpfr.texi] Changed "decimal point" to "decimal-point character", 6175 which is the term used in the ISO C standard. This is better as this 6176 character is also used with non-decimal bases: "decimal-point" is 6177 just the name of this character (as initially defined for base 10) 6178 and does not imply a number written in decimal. 6179 6180 [doc/mpfr.texi] Compatibility With MPF: added an item on the difference 6181 of the output format between mpf_out_str and mpfr_out_str. 6182 6183 [doc/mpfr.texi] Rewrote and completed the mpfr_out_str description. 6184 61852019-08-20 Vincent Lef��vre <vincent@vinc17.net> 6186 6187 [src/out_str.c] Fixed bug in mpfr_out_str: When the exponent of the 6188 converted value is 0, it was not output, contrary to what is described 6189 in the MPFR manual. Note that this does not change the value of the 6190 printed string, so that this has no effect on applications that just 6191 re-read the value (with MPFR or another code). 6192 This was regarded as a bug rather than an error in the documentation, 6193 thus the output now looks more similar to what printf with %e yields; 6194 the GMP function mpf_out_str also outputs the exponent 0. 6195 Short discussion: 6196 https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00012.html 6197 6198 Note: The tests still pass, as this function is currently not really 6199 tested. 6200 62012019-08-14 Vincent Lef��vre <vincent@vinc17.net> 6202 6203 [INSTALL] Update/corrections about MinGW and __USE_MINGW_ANSI_STDIO. 6204 6205 [tests/tversion.c] When building with MinGW, output a line about it: 6206 MinGW32 / MinGW64, and the __USE_MINGW_ANSI_STDIO definition. 6207 6208 [src/set_d128.c] Moved a definition under the #if where it is used. 6209 62102019-08-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6211 6212 improve INSTALL (feedback from sisyphus <sisyphus359@gmail.com>) 6213 62142019-08-12 Vincent Lef��vre <vincent@vinc17.net> 6215 6216 [doc/mpfr.texi] Added a FIXME for mpfr_out_str about the exponent 0. 6217 6218 [doc/mpfr.texi] About mpfr_get_str / mpfr_out_str: 6219 * In the mpfr_get_str description, changed argument "b" to "base" for 6220 consistency with similar functions (now, only mpfr_get_str_ndigits 6221 has b as this looks better in the formula). Also added a link to 6222 mpfr_get_str_ndigits. 6223 * In the mpfr_out_str description, replaced the ambiguous and even 6224 incorrect sentence "enough digits so that op can be read back 6225 exactly" (issues with trailing zeros and with the directed rounding 6226 modes) by text similar to the one in the mpfr_get_str description 6227 (keeping the reference to mpfr_get_str). 6228 6229 [src/out_str.c] Coding style (e is not a boolean). 6230 62312019-08-09 Vincent Lef��vre <vincent@vinc17.net> 6232 6233 [tests/tout_str.c] Use mpfr_print_rnd_mode in a message. 6234 6235 [tests/tout_str.c] Code simplification: a test from r1888 on a 6236 random value was unnecessary (the log message of r1888 did not 6237 even correspond to the change). 6238 6239 [tests/tout_str.c] GNU coding style. 6240 6241 [tests/tout_str.c] Added missing newline characters in the output 6242 after calls to mpfr_out_str. 6243 6244 [tests/tout_str.c] By default, output the results to a file instead of 6245 /dev/null (this was already done only if opening /dev/null failed), so 6246 that they can be checked later. Fixed 2 issues at the same time: 6247 * Do not close stdout (when an argument was provided). 6248 * Remove the file at the end. 6249 6250 [tests/tfpif.c] GNU coding style. 6251 6252 [tests/tfpif.c] Added a comment about the use of perror. 6253 6254 [tests/tfpif.c] Also check fclose failure when the file has been opened 6255 for writing (typically an error in case the buffer cannot be written to 6256 the file). Call perror after all fopen/src_fopen/fclose failures to get 6257 the reason of the failure. 6258 6259 [tests/tfpif.c] In case of failure of fopen or src_fopen, write the 6260 error message on stderr (as one should do for errors not directly 6261 related to the tests, such as memory allocation and I/O errors). 6262 Also improved the error messages and made them consistent. 6263 62642019-08-06 Vincent Lef��vre <vincent@vinc17.net> 6265 6266 [doc/mpfr.texi] Updated the month. 6267 62682019-08-05 Vincent Lef��vre <vincent@vinc17.net> 6269 6270 [doc/mpfr.texi] Improved consistency with @item. 6271 62722019-08-02 Vincent Lef��vre <vincent@vinc17.net> 6273 6274 For Makefile.am and each one in SUBDIRS, added the .POSIX target to 6275 select the POSIX behavior (since we do not require GNU "make"). 6276 See: https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00005.html 6277 6278 [tools/get_patches.sh] Fixed change in r13543 (the contents of PATCHES 6279 should still be written as a list of words separated by a space). 6280 6281 Fixed src/get_patches.c generation that was changed in r13542. 6282 * src/Makefile.am, tools/get_patches.sh: since get_patches.sh is 6283 no longer run from $(top_srcdir), the PATCHES absolute pathname 6284 now needs to be passed in argument. 6285 * src/Makefile.am: fixed the get_patches.c rule (the automatic 6286 variable $< was used with the meaning "first prerequisite" of 6287 GNU Make; an "exit 1" was missing, so that a failure did not 6288 abort "make" immediately). 6289 * tools/get_patches.sh: detect errors with "set -e". 6290 62912019-07-31 Vincent Lef��vre <vincent@vinc17.net> 6292 6293 [src/Makefile.am] Define get_patches.c as a built source to avoid a 6294 non-portable make rule ("/" character in target), causing an error 6295 in FreeBSD with its "make" command. This change should be OK as the 6296 get_patches.sh script that generates get_patches.c is very simple 6297 and portable. As a consequence, put get_patches.c in CLEANFILES. 6298 See: 6299 https://sympa.inria.fr/sympa/arc/mpfr/2019-07/msg00003.html 6300 6301 [Makefile.am] Fixed dist-hook for ck-mparam, which was run from a 6302 read-only directory with "make distcheck" while a temporary file 6303 is created in the current directory, yielding a failure (ck-mparam 6304 has been run in dist-hook since r12533 on 2018-04-03). 6305 6306 [tools/ck-mparam] Updated comment to warn that the source tree that is 6307 checked is the one that contains this script, not the one corresponding 6308 to the current working directory (the rule for the other scripts in the 6309 tools directory is currently different). 6310 6311 [tools/ck-mparam] This script can now be run from any directory (which 6312 must still be writable). This change has been done to be able to run 6313 it from the build directory, as if it is run via "make distcheck" and 6314 a dist-hook rule, then neither the top-level directory nor the tools 6315 directory is writable. 6316 63172019-07-23 Vincent Lef��vre <vincent@vinc17.net> 6318 6319 [tests/tget_set_d64.c] Updated comment (only the x86 and x86_64 targets 6320 are affected). 6321 6322 [tests/tget_set_d64.c] Improved a comment. 6323 63242019-07-22 Vincent Lef��vre <vincent@vinc17.net> 6325 6326 [tests/tget_set_d64.c] Avoid GCC bug 91226: wrong propagation of 6327 non-canonical _Decimal64 constant. 6328 6329 [src/set_d64.c] In decimal64_to_string, log the memory representation 6330 of the _Decimal64 argument. 6331 6332 [src/set_d64.c] In decimal64_to_string, log the various fields of the 6333 _Decimal64 argument whose memory data is regarded as a double (as this 6334 is the current implementation of this function). 6335 6336 [tests/tget_set_d64.c] More output details in the noncanonical test. 6337 6338 [tests/tget_set_d64.c] Improved the noncanonical test, but this does not 6339 solve the failure with gcc-snapshot. 6340 6341 [tests/tget_set_d64.c] More meaningful name of a test with a 6342 non-canonical encoding and more details (fails with Debian's 6343 gcc-snapshot 10.0.0 20190718, trunk revision 273586). 6344 63452019-07-12 Vincent Lef��vre <vincent@vinc17.net> 6346 6347 [doc/README.dev] "To make a release": mention -Wsuggest-attribute=... 6348 options (but mpfr.h first needs some macros like __MPFR_SENTINEL_ATTR). 6349 6350 Renamed MPFR_CONST_ATTR macro to MPFR_CONST_FUNCTION_ATTR in order to be 6351 similar to the MPFR_{PURE,HOT,COLD}_FUNCTION_ATTR macro names. 6352 63532019-07-10 Vincent Lef��vre <vincent@vinc17.net> 6354 6355 [doc/README.dev] Update concerning the MPFR manual: 6356 * Updated information about the papersize issues (should be fixed, 6357 but manual checking is recommended). 6358 * Detailed English typography. 6359 * Removed mention of the old texinfo bug 33329 (Debian bug 583558). 6360 63612019-07-08 Vincent Lef��vre <vincent@vinc17.net> 6362 6363 [codespell.*] Update for codespell 1.15.0. 6364 6365 Fixed spelling mistakes found by codespell 1.15.0. 6366 63672019-07-06 Vincent Lef��vre <vincent@vinc17.net> 6368 6369 [acinclude.m4] Added missing "const" qualifier to "char *" in a test; 6370 needed with GCC's "-Wwrite-strings -Werror". 6371 63722019-07-02 Vincent Lef��vre <vincent@vinc17.net> 6373 6374 [src/mpfr-impl.h] MPFR_GROUP_* macros / mpfr_group_t structure: when 6375 MPFR_GROUP_STATIC_SIZE is 0 (for testing), use a flexible array member 6376 (ISO C99) instead of a zero-length array (GNU extension, forbidden in 6377 ISO C). 6378 6379 [tests/*.c] Added missing "const" qualifier to "char *" when this 6380 involves string literals (detected by using GCC's -Wwrite-strings 6381 option, via the default -Wdiscarded-qualifiers warning). 6382 63832019-07-01 Vincent Lef��vre <vincent@vinc17.net> 6384 6385 [acinclude.m4,configure.ac] MPFR_C_LONG_DOUBLE_FORMAT: also detect 6386 clang's LTO. 6387 Note: no longer use $FGREP (see r13513) as its status is unclear on 6388 non-POSIX systems (though very probably available when $EGREP is). 6389 6390 [acinclude.m4,configure.ac] For MPFR_C_LONG_DOUBLE_FORMAT, when the 6391 format is unknown and it is detected that LTO has been used, output 6392 "recognition prevented by LTO". 6393 Note: at the same time, since AC_PROG_FGREP was needed, replaced 6394 $EGREP by $FGREP when applicable. 6395 6396 [acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT: improved comment and added a 6397 warning saying that this does not work with GCC's LTO (gcc -flto ...). 6398 63992019-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6400 6401 [src/sub1sp.c] simplified code of sub1sp1 for bx = cx 6402 64032019-06-06 Vincent Lef��vre <vincent@vinc17.net> 6404 6405 [src/sub1sp.c] About r13506-13509 and optimization: added a comment 6406 about Clang after some tests (without giving details, as in practice, 6407 this is more complex... but this is the general idea). 6408 64092019-06-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6410 6411 [src/sub1sp.c] fixed typo 6412 64132019-06-06 Vincent Lef��vre <vincent@vinc17.net> 6414 6415 [src/sub1sp.c] Added reference to GCC PR30315 about a misoptimization 6416 on x86/x86_64 (see r13506 and r13507). 6417 6418 [src/sub1sp.c] Completed r13506: added MPFR_ASSERTD to justify the 6419 new code and give more information to the compiler; added comments 6420 about this optimization issue. 6421 64222019-06-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6423 6424 [src/sub1sp.c] small speedup (following discussion with F��lix Breton) 6425 64262019-06-01 Vincent Lef��vre <vincent@vinc17.net> 6427 6428 [doc/README.dev] Added a note about MPFR_DISABLE_IEEE_FLOATS. 6429 6430 [doc/README.dev] Updated MPFR_DISABLE_IEEE_FLOATS description. 6431 6432 [src/mpfr-impl.h] Undefine HAVE_LDOUBLE_IS_DOUBLE & HAVE_LDOUBLE_IEEE_* 6433 macros if MPFR_DISABLE_IEEE_FLOATS is defined, as the goal is to test 6434 code not relying on IEEE floats. 6435 64362019-05-24 Vincent Lef��vre <vincent@vinc17.net> 6437 6438 [src/mpfr-impl.h] Code simplification with the generic 6439 LONGDOUBLE_NAN_ACTION macro (the WANT_LONGDOUBLE_VOLATILE macro is not 6440 needed as used only once, thus removed). Improved the related comment. 6441 6442 [src] Instead of including <float.h> in volatile.c (r13493), do that 6443 unconditionally in mpfr-impl.h to make sure that macro definitions 6444 in this header file are always correct: some definitions depend on 6445 various macros from <float.h>, such as FLT_RADIX and DBL_MANT_DIG. 6446 64472019-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6448 6449 applied patch from #21762 6450 (https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21762&group_id=136) 6451 64522019-05-15 Vincent Lef��vre <vincent@vinc17.net> 6453 6454 [doc/README.dev] Added another URL on undefined behavior. 6455 64562019-04-30 Vincent Lef��vre <vincent@vinc17.net> 6457 6458 [doc/README.dev] Note that -static-libasan does not work with MPFR. 6459 6460 [doc/README.dev] Update about the use of GCC's "-fsanitize=address". 6461 64622019-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6463 6464 [src/zeta.c] fixed out-of-bound read reported by Thomas Bailleux 6465 6466 Note: This bug was introduced in r12066. 6467 64682019-04-29 Vincent Lef��vre <vincent@vinc17.net> 6469 6470 [tools/ck-version-info] Minor corrections in a comment. 6471 6472 [doc/README.dev] Update about the VERSION file: 6473 * Added a paragraph on the meaning of the "-dev" suffix. 6474 * Removed a confusing and useless "-dev" in an example. 6475 6476 [tools/ck-news] Changed the condition of the test for FIXME or TODO: 6477 Previously it was disabled only for -dev versions. Now it is enabled 6478 only for releases and release candidates. This will allow snapshots, 6479 for which the NEWS file may still contain a FIXME or TODO. 6480 6481 [tools/ck-version-info] Corrected check. Added explanations in comments. 6482 6483 [tools/ck-version-info] Better error message if $vinfo is not defined. 6484 6485 [src/Makefile.am] Added a comment. 6486 64872019-04-25 Vincent Lef��vre <vincent@vinc17.net> 6488 6489 [doc/mpfr.texi] Updated the month. 6490 6491 [doc/mpfr.texi] Updated the list of rounding modes in the description 6492 of the mpfr_print_rnd_mode function. Choose the same order as in the 6493 "Rounding Modes" section in "MPFR Basics". 6494 6495 [tools/mpfrlint] Lists of rounding modes: also check with the 6496 "Rounding Modes" section in "MPFR Basics". 6497 6498 [src/print_rnd_mode.c] Added a comment to remember to update the manual. 6499 6500 [tools/mpfrlint] Check that the lists of rounding modes in 6501 src/print_rnd_mode.c and doc/mpfr.texi are identical. 6502 6503 [src/mpfr.h] Added a blank line (grouping of function declarations). 6504 6505 Added support for GCC's returns_nonnull attribute (with GCC 4.9+). 6506 6507 [TODO] Update about GCC's nonnull and returns_nonnull attributes. 6508 65092019-04-16 Vincent Lef��vre <vincent@vinc17.net> 6510 6511 New macro MPFR_FALLTHROUGH to avoid -Wimplicit-fallthrough warnings 6512 with GCC 7+. This macro also makes the code more readable by bringing 6513 the attention on an unusual fallthrough in a switch case. 6514 * src/mpfr-impl.h: define this macro. 6515 * src/vasprintf.c: use this macro in a case of fallthrough. 6516 65172019-04-15 Vincent Lef��vre <vincent@vinc17.net> 6518 6519 [src/vasprintf.c] Minor bug fix: when an integer is to be read for 6520 the field width or precision, regard strings like "17*" as invalid 6521 instead of regarding it as "*" (ignoring the integer that precedes, 6522 except in case of overflow). In C's printf, such an invalid string 6523 yields undefined behavior, but in MPFR, we normally print the 6524 invalid format specifier as a literal string in such a case. 6525 Bug detected with -Wimplicit-fallthrough from GCC 7+. 6526 [tests/tsprintf.c] Added non-regression test. 6527 65282019-04-02 Vincent Lef��vre <vincent@vinc17.net> 6529 6530 [configure.ac] Updated --enable-logging description. 6531 6532 [acinclude.m4] When logging support is requested, run a test to check 6533 that code with nested functions and the 'cleanup' attribute can be 6534 compiled, as these features are needed. 6535 6536 [configure.ac] AC_ARG_ENABLE(float128,...): updated comment and 6537 description. 6538 6539 [configure.ac] Updated comment for AC_ARG_ENABLE(decimal-float,...). 6540 * Removed information about very old GCC versions. 6541 * _Decimal128 is considered too, in addition to _Decimal64. 6542 * No longer just a GCC extension, but part of ISO/IEC TS 18661. 6543 * Added a FIXME for new options about _Decimal64 and _Decimal128. 6544 6545 [configure.ac] Cleanup: moved some AC_ARG_ENABLE's where they should be. 6546 65472019-03-29 Vincent Lef��vre <vincent@vinc17.net> 6548 6549 [src/vasprintf.c] 6550 * Corrected FIXME by modifying the assertion. The failure could occur 6551 only when mpfr_intmax_t has the same size as int (which is the case 6552 when long = int and either intmax_t and long long are not available 6553 or intmax_t = long = int), and only when INT_MIN is provided as a 6554 field width argument. 6555 * Related to that, updated a test to improve optimization. 6556 * Added comments. 6557 6558 [src/vasprintf.c] Added a FIXME: tsprintf yields an assertion failure 6559 with sizeof(mpfr_intmax_t) = 4 (which was not tested until now). 6560 65612019-03-29 Vincent Lef��vre <vincent@vinc17.net> 6562 6563 Cleanup / fixes related to intmax_t, mpfr_intmax_t, etc. 6564 6565 The issues were: 6566 * The build of the tests (make check) could fail with CFLAGS implying 6567 "-std=c90 -Werror=format", i.e. if intmax_t was available but the 6568 use of the "j" printf length modifier made the compilation fail 6569 (its unconditional use was incorrect anyway). 6570 * MPFR_INTMAX_MAX had definitions in both mpfr-impl.h & mpfr-intmax.h, 6571 with inconsistent usage. 6572 6573 Detailed changes: 6574 * acinclude.m4: removed the definition of MPFR_PRINTF_MAXLM, which 6575 could be incorrect (large numbers were not tested to select its 6576 value); in the MPFR_FUNC_GMP_PRINTF_SPEC macro, check sprintf() 6577 in addition to gmp_sprintf() as it is now also used in the tests; 6578 updated some comments and messages. 6579 * src/mpfr-impl.h: removed the MPFR_*INTMAX* definitions; they had 6580 been added due to 6581 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=582698 6582 with -ansi -pedantic-errors, but this issue was fixed in GCC 4.8 6583 (released 6 years ago), so that they are no longer needed. 6584 * src/mpfr-intmax.h: completed the definitions; mpfr_intmax_t is now 6585 the largest integer type available and fully working (in particular 6586 with printf), thus it may be smaller than intmax_t. 6587 * doc/README.dev: updated the description of mpfr_intmax_t, etc. 6588 * tests/tversion.c: output sizeof(mpfr_intmax_t) too. 6589 * Various .c files in src and tests related to (u)intmax_t: use 6590 INTMAX_MAX instead of MPFR_INTMAX_MAX, etc. as Debian bug 582698 6591 (mentioned above) no longer occurs and mpfr_intmax_t may be smaller 6592 than intmax_t; use the "j" printf length modifier instead of 6593 MPFR_PRINTF_MAXLM, and protect it with "#ifndef NPRINTF_J" 6594 (only the tests are concerned, so that this is not an issue). 6595 65962019-03-28 Vincent Lef��vre <vincent@vinc17.net> 6597 6598 [src/urandomb.c] Removed the FIXME: this is a bug in GMP or in Clang's 6599 memory sanitizer. 6600 6601 [src/urandomb.c] Added a FIXME (use-of-uninitialized-value with 6602 Clang's memory sanitizer). 6603 66042019-03-13 Vincent Lef��vre <vincent@vinc17.net> 6605 6606 [src/printf.c] Removed unused definitions. 6607 66082019-03-01 Vincent Lef��vre <vincent@vinc17.net> 6609 6610 [doc/README.dev] Update about coverage: 6611 * Mention not to enable optimizations. 6612 * Replaced "-fprofile-arcs -ftest-coverage" by "--coverage", as 6613 this is what is used by the tools/coverage script (note: this 6614 is a synonym when compiling, but also allows the right options 6615 to be used when linking, thus might be better in doubt). 6616 66172019-02-04 Vincent Lef��vre <vincent@vinc17.net> 6618 6619 [tests] Use MPFR_DBL_* macros when necessary. 6620 6621 [tools/mpfrlint] For consistency, use "[ch]" instead of "{c,h}". 6622 6623 [tools/mpfrlint] Detect use of DBL_* macros instead of MPFR_DBL_* ones. 6624 6625 [tools/mpfrlint] Improved message about division by zero. 6626 6627 [doc/README.dev] Improved description of MPFR_ERRDIVZERO. 6628 [tools/mpfrlint] Added a comment about division by zero. 6629 6630 [tools/mpfrlint] Check that native FP division by zero is not used. 6631 66322019-01-31 Vincent Lef��vre <vincent@vinc17.net> 6633 6634 [src/Makefile.am] In check-exported-symbols, replaced grep by $(GREP) 6635 as usual and like in check-gmp-symbols. 6636 66372019-01-30 Vincent Lef��vre <vincent@vinc17.net> 6638 6639 [configure.ac] Updated comment about default options in CFLAGS for GCC. 6640 6641 Update about CC / CFLAGS settings from GMP (__GMP_CC / __GMP_CFLAGS). 6642 * configure.ac: remove -pedantic unconditionally; since r7044, it was 6643 removed only when logging was enabled, as at that time only logging 6644 was using C extensions. 6645 * NEWS: added a line about this change. 6646 * INSTALL: updated the note about CC / CFLAGS, removing the obsolete 6647 reference to GMP 4.3.0 at the same time. 6648 66492019-01-28 Vincent Lef��vre <vincent@vinc17.net> 6650 6651 [tools/announce-text] Corrected subject for Release Candidate > 1. 6652 66532019-01-25 Vincent Lef��vre <vincent@vinc17.net> 6654 6655 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 6656 6657 [NEWS] Update about shared caches. 6658 6659 [NEWS] Added: "Shared caches: cleanup." 6660 6661 [src/mpfr-thread.h] Fixed the lock macros: 6662 * in case of failure, one must abort, otherwise this would generally 6663 be undefined behavior; 6664 * added missing "do {} while (0)" (currently not mandatory). 6665 6666 [src/mpfr-impl.h] Updated a comment about MPFR_DECL_INIT_CACHE and 6667 the shared cache. 6668 6669 [acinclude.m4] Avoid a warning with the pthread_rwlock_t test, 6670 as it is an error with -Werror. 6671 6672 [acinclude.m4] Fixed another C++ compatibility issue detected by 6673 the -Werror=c++-compat GCC option (it led the "long double" format 6674 to be unknown). 6675 66762019-01-24 Vincent Lef��vre <vincent@vinc17.net> 6677 6678 [tests/trint.c] Fixed C++ compatibility issue (arithmetic on enum) 6679 detected by the -Werror=c++-compat GCC option. 6680 66812019-01-23 Vincent Lef��vre <vincent@vinc17.net> 6682 6683 [configure.ac] By default (i.e. if CFLAGS is not already set), if 6684 the compiler is GCC not in C++ mode, add the -Wc++-compat warning 6685 since we expect the code to compile with a C++ compiler. 6686 66872019-01-13 Vincent Lef��vre <vincent@vinc17.net> 6688 6689 [tests/tcheck.c] Corrected meaningless error message. 6690 6691 [doc/mpfr.texi] Minor correction for non-tex versions. 6692 Thanks to Trevor Spiteri for the bug report. 6693 66942019-01-09 Vincent Lef��vre <vincent@vinc17.net> 6695 6696 Moved the compatibility test of the configure options even earlier, from 6697 acinclude.m4 to configure.ac, just after the code that defines them. 6698 Also added an associated AC_MSG_CHECKING message for better clarity. 6699 6700 [acinclude.m4] Simplified a message. 6701 6702 [tests/tversion.c] When the shared cache is enabled, also output the 6703 lock method (this information has been lost in r13032). 6704 6705 [acinclude.m4] When checking support for POSIX threads (pthread), also 6706 check that pthread_rwlock_t is supported, as it is needed by MPFR and 6707 conditionally defined in glibc's bits/pthreadtypes.h (via <pthread.h>). 6708 6709 Cleaned up configure code related to threading and the shared cache. 6710 * acinclude.m4: 6711 - detect incompatibilities between configure options at the 6712 beginning of MPFR_CONFIGS, forcing enable_thread_safe to 6713 "no" or "yes" when necessary, so that the subsequent code 6714 can rely on that; 6715 - check ISO C11 thread support and/or POSIX thread support 6716 only when necessary; 6717 - handle --enable-shared-cache early in MPFR_CONFIGS, because 6718 the use of POSIX threads (pthread) may need to change CC, 6719 CFLAGS, and LIBS (thus affecting other tests); 6720 - test $enable_shared_cache instead of $mpfr_want_shared_cache; 6721 - removed the now useless MPFR_CHECK_SHARED_CACHE function. 6722 * configure.ac: no longer set the mpfr_want_shared_cache variable, 6723 as enable_shared_cache (now used) already has the same usage. 6724 Note: currently, 6725 ./configure --enable-shared-cache CFLAGS="-std=c99" 6726 still succeeds and still makes the compilation fail. This seems to 6727 be due to a limitation of AX_PTHREAD, which just tests linking, not 6728 compilation. 6729 6730 [acinclude.m4] In MPFR_CHECK_SHARED_CACHE (used when the shared cache 6731 was requested), also set CC="$PTHREAD_CC" as documented by ax_pthread 6732 (autoconf-archive). This is not guaranteed to work, but according to 6733 the ax_pthread.m4 source, in the cases where "$PTHREAD_CC" != "$CC", 6734 not setting it will probably not work either. 6735 6736 [src/mpfr-impl.h] Added a comment about the cache-related types, which 6737 depend on the locking methods. 6738 67392019-01-08 Vincent Lef��vre <vincent@vinc17.net> 6740 6741 [tests/tstrtofr.c] Updated comment about GCC bug 86554: now fixed in 6742 the GCC trunk. 6743 67442019-01-07 Vincent Lef��vre <vincent@vinc17.net> 6745 6746 [tests/Makefile.am] Replaced "env -u DISPLAY" by "env DISPLAY=''" as 6747 the -u option is not supported by NetBSD. 6748 6749 Updated files: 6750 * COPYING from https://www.gnu.org/licenses/gpl-3.0.txt 6751 * COPYING.LESSER from https://www.gnu.org/licenses/lgpl-3.0.txt 6752 These are URL updates and cosmetic changes. 6753 6754 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v". 6755 Note: For r5400, this changes an incorrect update done via r13372 back 6756 to the old log message, as the URL in this log message here describes 6757 a change in one of the files. 6758 6759 [doc/README.dev] Updated some URL's (http ��� https). 6760 6761 [doc/texinfo.tex] Update to 2018-02-12.17 with "autoreconf -i -f". 6762 6763 Updated the www.gnu.org URL's (http ��� https) on all the files with: 6764 perl -pi -e 's,http://www.gnu.org/,https://www.gnu.org/,g' **/*(.) 6765 under zsh. 6766 6767 [tests/tstrtofr.c] Updated comment about GCC bug 86554: the MPFR build 6768 is still affected with the latest gcc-snapshot version (20190102-1) 6769 when using --with-gmp-build=... together with --enable-assert. 6770 67712019-01-04 Vincent Lef��vre <vincent@vinc17.net> 6772 6773 [tests/tstrtofr.c] Added a comment about GCC bug 86554: the MPFR build 6774 seems no longer affected by recent gcc-snapshot versions. 6775 67762019-01-01 Vincent Lef��vre <vincent@vinc17.net> 6777 6778 [doc/mpfr.texi] Updated the month. 6779 6780 Copyright notice update: added 2019 with 6781 perl -pi -e 's/ (\d{4}-)?(2018)(?= Free Software)/ 6782 " ".($1||"$2-").($2+1)/e' **/*(^/) 6783 under zsh. Removed 2018 from the example in the doc/README.dev file. 6784 67852018-12-31 Vincent Lef��vre <vincent@vinc17.net> 6786 6787 [tests/tfmma.c] Added double_rounding test to trigger errors before 6788 the fix in mpfr_set_1_2 (set.c r13347). 6789 6790 [src/set.c] In mpfr_set_1_2, evaluate MPFR_PREC(s) just once. 6791 6792 [src/set.c] Clarified the mpfr_set_1_2 description. 6793 6794 [src/set.c] For mpfr_set_1_2, corrected the comments and simplified the 6795 generic algorithm (there is no need to distinguish the rounding modes, 6796 except for the double-rounding test, and this simplification avoids the 6797 non-portable inex | inex2). 6798 67992018-12-20 Vincent Lef��vre <vincent@vinc17.net> 6800 6801 [doc/mini-gmp] Removed "#define GMP_LIMB_BITS 8": it is not used by 6802 mini-gmp.h and yields a failure when building mini-gmp.c (which has 6803 its own definition of GMP_LIMB_BITS, equivalent but not identical). 6804 6805 [configure.ac] Support mini-gmp with reduced limb size, in the case 6806 GMP_NUMB_BITS is not defined: guess GMP_NUMB_BITS from the size of 6807 mp_limb_t instead of the size of unsigned long. 6808 6809 [doc/mini-gmp] Correction to avoid a "conflicting types for 'mp_limb_t'" 6810 error. 6811 68122018-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6813 6814 [doc/mini-gmp] added note about using mini-gmp (development version) with 6815 reduced limb size 6816 6817 [src/set.c] fixed double-rounding bug in mpfr_set_1_2 6818 [tests/tset.c] added corresponding tests 6819 6820 [tests/tset.c] added a test of test_set_1_2(), which currently fails 6821 6822 [tests/tcan_round.c] disabled tests that don't agree with mpfr_can_round documentation 6823 68242018-12-13 Vincent Lef��vre <vincent@vinc17.net> 6825 6826 [tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf. 6827 6828 [tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf. 6829 6830 [TODO] Added item: new functions mpfr_cmp_uj and mpfr_cmp_sj. 6831 6832 [TODO] Removed obsolete "check again coverage" from 2007. 6833 68342018-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6835 6836 [src/sqr.c] fixed same issue as in r13338 and r13339 6837 6838 [src/mul.c] fixed bug in mpfr_mul() when sizeof(mp_limb_t) < sizeof(mpfr_exp_t) 6839 (same issue as in r13338) 6840 68412018-12-12 Vincent Lef��vre <vincent@vinc17.net> 6842 6843 [src/mul.c] For MPFR_WANT_ASSERT >= 2: minor changes in the code; 6844 corrected a comment (even with mp_limb_t >= mpfr_exp_t, there was an 6845 issue: the expression b1 - 1 + cc was computed in unsigned arithmetic, 6846 then converted to mpfr_exp_t, with an implementation-defined result 6847 when -1 was expected, i.e. with b1 = cc = 0). 6848 6849 [src/mul.c] Corrected a typo in a comment. 6850 6851 [src/mul.c] Fixed error message with MPFR_WANT_ASSERT >= 2. 6852 68532018-12-11 Vincent Lef��vre <vincent@vinc17.net> 6854 6855 [src/mpfr-gmp.h] For count_leading_zeros (MPFR_LONG_WITHIN_LIMB 6856 not defined), no longer assume GMP_NUMB_BITS <= 32. 6857 6858 [src/mpfr-gmp.h] Fixed count_leading_zeros (avoid undefined behavior 6859 on shift counts, which must be nonnegative and smaller than the width 6860 of the type of the shifted value). 6861 68622018-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6863 6864 [src/mul.c] fixed reference routine mpfr_mul3() when sizeof(limb) < sizeof(exp) 6865 6866 [src/mpfr-gmp.h] fixed count_leading_zeros for mini-gmp with 32-bit limb 6867 68682018-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6869 6870 [doc/mini-gmp] added remark about random functions 6871 6872 [tests/tdiv.c] fixed test_20151023 (was giving an error with micro-gmp-8 6873 and GMP_CHECK_RANDOMIZE=1544431052619574) 6874 68752018-12-10 Vincent Lef��vre <vincent@vinc17.net> 6876 6877 [tools/mpfrlint] Added a test for some avoidable use of gmp_printf. 6878 68792018-12-07 Vincent Lef��vre <vincent@vinc17.net> 6880 6881 [tests] 6882 * mpfr-test.h, tests.c: added n_trace function to output a mpn. 6883 * tcan_round.c: use n_trace instead of gmp_printf ("%NX\n",...), 6884 which is not available with mini-gmp. 6885 68862018-12-06 Vincent Lef��vre <vincent@vinc17.net> 6887 6888 [tests/tcan_round.c] Corrected all the error messages for mini-gmp. 6889 6890 [tests/tcan_round.c] Corrected error message for mini-gmp. 6891 68922018-12-05 Vincent Lef��vre <vincent@vinc17.net> 6893 6894 [tests/tpow_z.c] Another fix and minor improvements. 6895 6896 [tests/tpow_z.c] Fixed a test (midpoint case) that was failing 6897 with micro-gmp-8 and GMP_CHECK_RANDOMIZE=1544033327230569. 6898 6899 [tests/tpow_z.c] Fixed a test for MPFR_RNDF: do not check the ternary 6900 value (a failure was occurring with --with-mini-gmp=.../micro-gmp/8 6901 and GMP_CHECK_RANDOMIZE=1544025040809270). 6902 6903 [tests/tpow_z.c] Improved error message. 6904 6905 [src/mpfr-mini-gmp.c] Added missing "void" in function prototype. 6906 6907 [configure.ac] When building against mini-gmp, check the availability of 6908 lrand48, in particular because it is not part of the ISO C standard. 6909 69102018-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6911 6912 [src/mpfr-mini-gmp.c] put back unconditional assert from r13316 (removed by error) 6913 6914 [src/mpfr-mini-gmp.c] improved random_limb (the low bits of lrand48 are bad) 6915 and fixed gmp_urandomm_ui 6916 69172018-12-05 Vincent Lef��vre <vincent@vinc17.net> 6918 6919 [src/mpfr-mini-gmp.c] gmp_urandomm_ui: added a MPFR_ASSERTN 6920 unconditionally, as n == 0 is always forbidden. 6921 69222018-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6923 6924 [src/mpfr-mini-gmp.c] the static assert introduced in r13313 makes the 6925 compilation fail for 8-bit limbs, while the code 6926 was valid for n <= 256 in that case 6927 69282018-12-04 Vincent Lef��vre <vincent@vinc17.net> 6929 6930 [src/mpfr-mini-gmp.c] Fixed types. 6931 6932 [src/mpfr-mini-gmp.c] Added a static assertion to make sure that 6933 the MPFR_ASSERTD added in r13312 is valid. 6934 69352018-12-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6936 6937 [src/mpfr-mini-gmp.c] gmp_urandomm_ui did not generate uniform values 6938 69392018-12-03 Vincent Lef��vre <vincent@vinc17.net> 6940 6941 [src/set_d.c] Improved comment. 6942 69432018-11-29 Vincent Lef��vre <vincent@vinc17.net> 6944 6945 [tests/Makefile.am] About r13308, added references to the bugs. 6946 6947 [tests/Makefile.am] Unset DISPLAY as it is not needed and it can yield 6948 error messages when running the tests with LOG_COMPILER=wine (for builds 6949 with MinGW). 6950 6951 [tests/tversion.c] Updated a comment about an output issue with MinGW, 6952 with the test run under Wine (which is really the cause of the issue). 6953 69542018-11-28 Vincent Lef��vre <vincent@vinc17.net> 6955 6956 [tests/tstrtofr.c] In case of failure of some particular test, output 6957 the probable cause of this failure (GCC bug 86554) with a workaround. 6958 69592018-11-27 Vincent Lef��vre <vincent@vinc17.net> 6960 6961 [tests/tversion.c] Updated a comment about a printf issue with MinGW. 6962 6963 [src/strtofr.c] Added a FIXME about the error analysis (info that was 6964 part of the FIXME resolved in r13303 and inadvertently dropped). 6965 6966 [src/strtofr.c] Resolved a FIXME; tstrtofr no longer fails due to 6967 bug20181127 with 8-bit limbs (micro-gmp/8). 6968 6969 [tests/tstrtofr.c] Added bug20181127 (test found with random_tests), 6970 which fails with 8-bit limbs (micro-gmp/8). 6971 6972 [src/mpfr-impl.h] Added a comment with a warning concerning the 6973 meaning of MPFR_EXP_FSPEC. 6974 [tests/tstrtofr.c] Fixed a MPFR_EXP_FSPEC related bug in a test 6975 for _MPFR_EXP_FORMAT <= 2, e.g. with -D_MPFR_PREC_FORMAT=2. 6976 6977 [tests/tdiv.c] Fixed bad format string for an error message, detected 6978 with -D_MPFR_PREC_FORMAT=2 (using -Werror...). 6979 69802018-11-26 Vincent Lef��vre <vincent@vinc17.net> 6981 6982 [tests] Moved bug20180908() from tget_str.c to tset_str.c since it tests 6983 mpfr_set_str() only. This test was introduced in r13164. 6984 69852018-11-23 Vincent Lef��vre <vincent@vinc17.net> 6986 6987 [TODO] + More UBF functions. 6988 6989 [doc/mpfr.texi] Updated the month. 6990 6991 [src/strtofr.c] Changed some unsigned long to unsigned int. 6992 6993 [src/strtofr.c] Some cleanup in parsed_string_to_mpfr. Avoid a potential 6994 integer overflow in very high precision if mp_size_t < mpfr_prec_t. 6995 69962018-11-22 Vincent Lef��vre <vincent@vinc17.net> 6997 6998 [src/strtofr.c] Updated FIXME, due to new tests added to 6999 tests/tstrtofr.c in r13278-13279,13286-13288. 7000 7001 [src/nbits_ulong.c] Added missing initialization from r13269 7002 when MPFR_LONG_WITHIN_LIMB is not defined. 7003 7004 [tests/tstrtofr.c] Resolved the FIXME and fixed the issue related to 7005 the old mpfr_get_str description (see r13283). 7006 Note: with the later fix r13289, a test still fails with 8-bit limbs 7007 (incorrect exponent, possibly corresponding to the FIXME just before 7008 "exp = GMP_NUMB_BITS - count;" in src/strtofr.c). 7009 7010 [tests/tstrtofr.c] Added comments, including a FIXME. 7011 7012 [tests/tstrtofr.c] Resolved the FIXME for the random tests, and 7013 increased the number of tests to trigger a failure. 7014 7015 MPFR manual: corrected/completed the mpfr_get_str description in order 7016 to follow the historical behavior and GMP's mpf_get_str function. 7017 (Discussion in the Trier meeting.) 7018 7019 [src/get_str.c] Code style. 7020 7021 [doc/README.dev] Update about issues with mixing signed/unsigned types. 7022 7023 [doc/README.dev] Added a note about the disallowed conversions between 7024 function pointers and other kinds of pointers (including to void *). 7025 70262018-11-20 Vincent Lef��vre <vincent@vinc17.net> 7027 7028 [tests/tstrtofr.c] Added a FIXME, which explains the current failure. 7029 But there is currently an inconsistency in mpfr_get_str, whose digits 7030 are not specified: 7031 https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00021.html 7032 7033 [tests/tstrtofr.c] Added random tests, which currently fail. 7034 70352018-11-19 Vincent Lef��vre <vincent@vinc17.net> 7036 7037 [src/round_prec.c] mpfr_can_round_raw: improved the code structure about 7038 rnd1 and rnd2, making clear that they are not changed several times; 7039 avoid the use of cc with 2 different meanings in the same code path. 7040 70412018-11-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7042 7043 [src/round_prec.c] fixed bug in mpfr_can_round when rnd2=RNDF, rnd1 is a 7044 directed rounding, and the input is exact 7045 70462018-11-16 Vincent Lef��vre <vincent@vinc17.net> 7047 7048 [src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment. 7049 In short, the current tstrtofr.c tests seem to always be hard-to-round 7050 cases. The consequence is that some parts of the code are run, but not 7051 completely tested, because for these cases, some intermediate results, 7052 potentially incorrect, are thrown out due to the next Ziv iteration! 7053 7054 [src/strtofr.c] parsed_string_to_mpfr: minor changes. 7055 7056 [src/strtofr.c] parsed_string_to_mpfr: added log messages. 7057 7058 [src/strtofr.c] Minor change to use MPFR_ASSERTD. 7059 7060 [src/{int_ceil_log2.c,mpfr-impl.h}] Consistent postcondition for 7061 MPFR_INT_CEIL_LOG2 and __gmpfr_int_ceil_log2 (result >= 0). 7062 7063 [src/nbits_ulong.c] Code refactoring. Added {pre,post}condition. 7064 7065 [src/strtofr.c] parsed_string_to_mpfr: removed an incorrect cast. 7066 7067 [src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (again, 7068 another issue). 7069 7070 [src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (there 7071 is another issue to solve first). 7072 7073 Removed trailing whitespace. 7074 7075 [src/strtofr.c] parsed_string_to_mpfr: updated a comment (useless code 7076 in this function or incomplete tests). 7077 7078 Avoid GCC's -Wcast-align warnings with 8-bit limbs (a correct alignment 7079 is ensured by the code itself, and GCC cannot check just from a cast). 7080 7081 [src/strtofr.c] parsed_string_to_mpfr: updated comments. 7082 70832018-11-15 Vincent Lef��vre <vincent@vinc17.net> 7084 7085 [src/strtofr.c] parsed_string_to_mpfr: more code review, with minor 7086 changes and corrections + a FIXME. 7087 7088 [src/strtofr.c] Typo. 7089 7090 [src/strtofr.c] Fixed an allocation bug for GMP_NUMB_BITS = 8. 7091 7092 [src/strtofr.c] Updated a comment: the issue with mpn_set_str found 7093 in 2013-12 (see r8722) was actually an error in the GMP manual. 7094 7095 [src/strtofr.c] parsed_string_to_mpfr: improved an assertion; comments. 7096 70972018-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7098 7099 [tests/tcan_round.c] fixed some TODOs, which exposes a bug 7100 71012018-11-15 Vincent Lef��vre <vincent@vinc17.net> 7102 7103 [src/strtofr.c] Near the beginning of parsed_string_to_mpfr: corrected 7104 comments; added an assertion; minor change of a test. 7105 71062018-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7107 7108 [src/mulders.c] fixed issue with --enable-gmp-internals 7109 [tune/tuneup.c] likewise 7110 (see https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00015.html) 7111 71122018-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7113 7114 [src/mpfr-longlong.h] applied patch from https://sympa.inria.fr/sympa/arc/mpfr/2018-10/msg00010.html 7115 71162018-10-07 Vincent Lef��vre <vincent@vinc17.net> 7117 7118 [codespell.ignore] Also ignore "ue" (codespell 1.14). 7119 71202018-10-01 Vincent Lef��vre <vincent@vinc17.net> 7121 7122 [configure.ac,src/Makefile.am] About the --with-mini-gmp support, since 7123 there are some advantages with the new code, one will probably not go 7124 back. Thus removed the references to the Automake 1.15 bug and to the 7125 old code. Also removed the mini_gmp_path=. workaround needed with the 7126 old code (even with Automake 1.16), which had been added in r13217. 7127 Also slightly improved the setup for mini-gmp. 7128 7129 [doc/with-mini-gmp.patch] Updated comment. 7130 7131 [configure.ac,src/Makefile.am] Avoid a "make" failure due to a bug in 7132 Automake 1.15 automatic dependency tracking: instead of using mini-gmp 7133 directly in an external directory with a $(mini_gmp_path) variable in 7134 src/Makefile.am, make the configure script add symbolic links to the 7135 mini-gmp sources in the build directory, and use these symbolic links 7136 for the MPFR build (as if they were plain files). 7137 Tested under various conditions: static and shared; separate source and 7138 build directories; changing the mini-gmp version without "make clean". 7139 71402018-09-28 Vincent Lef��vre <vincent@vinc17.net> 7141 7142 Added doc/with-mini-gmp.patch file (for the developers): 7143 Modifications to configure.ac and src/Makefile.am that had been done 7144 for --with-mini-gmp support. This is kept for the reference, as changes 7145 may be needed as a workaround to a bug fixed in GNU Automake 1.16, and 7146 other future changes might break things (to remember what was working 7147 at this time). 7148 71492018-09-20 Vincent Lef��vre <vincent@vinc17.net> 7150 7151 [doc/mini-gmp] Update. 7152 71532018-09-19 Vincent Lef��vre <vincent@vinc17.net> 7154 7155 [Makefile.am] Distribute the doc/mini-gmp file. 7156 [configure.ac] For --with-mini-gmp, say: 7157 "(experimental, please read doc/mini-gmp file)" 7158 7159 [src/Makefile.am] Added nodist_ for mini-gmp.{c,h} so that these files 7160 (not part of MPFR) are not put in the tarballs by "make dist". 7161 7162 Removed --enable-mini-gmp configure option. 7163 * NEWS: say that it is replaced by --with-mini-gmp. 7164 * configure.ac: --enable-mini-gmp removed. 7165 * doc/mini-gmp: update. 7166 7167 [src/mpfr-mini-gmp.c] Missing #else (from r13156). 7168 7169 [configure.ac] When using --with-mini-gmp, define GMP_NUMB_BITS if this 7170 macro is not already defined in mini-gmp.h (this is done a bit like 7171 with --enable-mini-gmp, but the handling in this option is buggy as 7172 GMP_NUMB_BITS is defined with AC_DEFINE_UNQUOTED unconditionally, 7173 though is most cases the contents of the macros are the same). 7174 7175 [configure.ac] Do not split "Setup GMP detection". When building 7176 MPFR against mini-gmp, do not run any "Setup GMP detection" test 7177 (in particular, no longer check gmp.h, as it is useless). 7178 7179 [src/mpfr-mini-gmp.h] Removed incorrect GMP_NUMB_BITS macro definition, 7180 and this macro needs to be usable in preprocessor tests, and sizeof and 7181 types are not available at this level. GMP_NUMB_BITS must be defined by 7182 mini-gmp.h, by the configure script, or by the user. 7183 7184 [tools/mpfrlint] Update due to r13221. 7185 71862018-09-18 Vincent Lef��vre <vincent@vinc17.net> 7187 7188 [tests/Makefile.am] Run tversion at the beginning of the tests, 7189 then show its output and svnversion's output too. 7190 7191 [src/mpfr-mini-gmp.h] Added a FIXME (failure with a mini-gmp that 7192 does not define GMP_NUMB_BITS, such as the official one). 7193 7194 [tests/random2.c] Avoid undefined behavior on shift count. 7195 7196 [src/mpfr-impl.h] Fixed MPFR_LIMB_MASK() macro. 7197 7198 [configure.ac] Avoid a configure failure with automatic dependency 7199 tracking when --with-mini-gmp is not used (bug in Automake?). 7200 7201 [NEWS] + Mini-gmp support via the --with-mini-gmp configure option. 7202 72032018-09-17 Vincent Lef��vre <vincent@vinc17.net> 7204 7205 Merged the with-mini-gmp branch into the trunk: new --with-mini-gmp 7206 configure option to build MPFR against mini-gmp (instead of GMP). 7207 7208 [doc/mini-gmp] Update. 7209 7210 Merged the latest changes from the trunk. 7211 7212 [src/mul_ui.c] Better code organization (with the MPFR_RET at the right 7213 place). Corrected indentation after #else. 7214 72152018-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7216 7217 [src/mpfr-mini-gmp.c] added #if 0 ... #endif for mpz_dump (unused) 7218 [src/mul_ui.c] fixed compiler warning for limb < long 7219 72202018-09-17 Vincent Lef��vre <vincent@vinc17.net> 7221 7222 [src/Makefile.am] Update for mini-gmp (install mini-gmp.h). 7223 7224 Merged the latest changes from the trunk (bug fix for 8-bit limb). 7225 7226 [tests/random2.c] Fix for 8-bit limb. 7227 7228 Merged the latest changes from the trunk. 7229 7230 [tests/tests.c] Define only one buffer in test_version(). 7231 7232 [tests/random2.c] Improved code by using MPFR_LIMB_* macros. 7233 7234 [src/mpfr-impl.h] Improved MPFR_LIMB_* macros for mp_limb_t < int 7235 (e.g. 16-bit or 8-bit limb), as in such a case, integer promotion 7236 transforms mp_limb_t to int. 7237 72382018-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7239 7240 [tests/tests.c] fixed compiler warning 7241 72422018-09-14 Vincent Lef��vre <vincent@vinc17.net> 7243 7244 Merged the latest changes from the trunk (bug fixes). 7245 7246 [src/get_si.c] Code refactoring/simplification like what has been 7247 done for get_ui.c in r13185, fixing also an integer overflow when 7248 MPFR_LONG_WITHIN_LIMB is not defined. 7249 7250 [tests/random2.c] Fix for 16-bit limb. 7251 7252 [src/add1.c] Fix for 16-bit limb. 7253 7254 [src/mpfr-gmp.h] Fixed bug in add_ssaaaa / sub_ddmmss from r13081. 7255 7256 Completed --with-mini-gmp support (not fully tested). 7257 7258 Merged the latest changes from the trunk. 7259 7260 [src/Makefile.am] Moved a comment in a better place. 7261 7262 [configure.ac] Define MINI_GMP Automake conditional (AM_CONDITIONAL). 7263 72642018-09-14 Vincent Lef��vre <vincent@vinc17.net> 7265 7266 Started to implement --with-mini-gmp (building mini-gmp and linking 7267 not correctly handled yet, thus "make check" failure is expected). 7268 7269 [Added during the Subversion to Git conversion] 7270 This commit includes a merge of r13191 from the trunk. 7271 72722018-09-14 Vincent Lef��vre <vincent@vinc17.net> 7273 7274 [configure.ac] Typo. 7275 7276 [configure.ac] Updated comments about configure options for mini-gmp. 7277 72782018-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7279 7280 [tests/tsin.c] reduce REDUCE_EMAX with mini-gmp 7281 72822018-09-13 Vincent Lef��vre <vincent@vinc17.net> 7283 7284 [src/get_ui.c] Added assertions. 7285 7286 [src/get_ui.c] Code refactoring/simplification. 7287 7288 [src/sin_cos.c] Added assertions protecting against buffer overflow. 7289 72902018-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7291 7292 [src/sin_cos.c] fix for small limb size 7293 72942018-09-12 Vincent Lef��vre <vincent@vinc17.net> 7295 7296 [src/mpfr-mini-gmp.h] Fix: Since gmp_version is not defined in mini-gmp, 7297 we must not declare it (otherwise one would get a link failure instead 7298 of a compilation failure if gmp_version is used by mistake). 7299 7300 [tests/tests.c] Improved change in r13179 for mini-gmp. 7301 7302 [configure.ac] Do not check for CC and CFLAGS in gmp.h if mini-gmp is 7303 used, i.e. if --enable-mini-gmp (current option) or --with-mini-gmp 7304 (future option) is given. 7305 73062018-09-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7307 7308 [tests/tests.c] libgmp is not defined with mini-gmp (issue found with -O0) 7309 73102018-09-12 Vincent Lef��vre <vincent@vinc17.net> 7311 7312 [src/mpfr-mini-gmp.h] Removed #include lines as mpfr-mini-gmp.h is 7313 included only in mpfr-impl.h, which already does these #include's. 7314 7315 [src/mpfr-impl.h] Check that MPFR_HAVE_GMP_IMPL and MPFR_USE_MINI_GMP 7316 are not both defined. 7317 7318 [src/mpfr-mini-gmp.c] Removed #include "mpfr-mini-gmp.h" as this include 7319 is already done in mpfr-impl.h (in both cases, when MPFR_USE_MINI_GMP is 7320 defined). 7321 7322 [src/rec_sqrt.c] Replaced "if (GMP_NUMB_BITS >= 16)" by a preprocessor 7323 test "#if GMP_NUMB_BITS >= 16" like earlier. Use static assertions. 7324 7325 [src/rec_sqrt.c] Fixed types for 8-bit limb. Removed useless casts. 7326 7327 [src/rec_sqrt.c] Fixed a type from r13172 (int was obviously too short 7328 and was yielding a segmentation fault). 7329 73302018-09-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7331 7332 [src/rec_sqrt.c] fixed for 8-bit limb 7333 7334 [tests/tcan_round.c] fixed test for small value of GMP_NUMB_BITS 7335 7336 [src/strtofr.c] fixed r13168: in case exact=0, mpn_rshift was not done 7337 7338 [tests/tsqrt.c] modified test_sqrt1n() so that it passes with 8-bit limbs 7339 73402018-09-11 Vincent Lef��vre <vincent@vinc17.net> 7341 7342 [src/strtofr.c] Replaced "exact &=" by "exact = exact &&" as usual. 7343 73442018-09-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7345 7346 [src/strtofr.c] fix for 8-bit limb 7347 7348 [src/strtofr.c] added comment 7349 73502018-09-10 Vincent Lef��vre <vincent@vinc17.net> 7351 7352 [doc/mpfr.texi] Updated the month. 7353 73542018-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7355 7356 [src/strtofr.c] fix from r13163 was incorrect 7357 [tests/tget_str.c] added a testcase, and fixed an error message 7358 73592018-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7360 7361 [src/strtofr.c] resolved a FIXME 7362 7363 [tests/tdiv_ui.c] fixed corner_cases() test 7364 7365 [src/int_ceil_log2.c] fixed __gmpfr_int_ceil_log2 for limb < long 7366 73672018-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7368 7369 [tests/random2.c] fixed mpfr_random2 for GMP_NUMB_BITS <> 64 7370 7371 [src/mpfr-mini-gmp.c] fixed another compiler warning 7372 7373 [src/get_ui.c] fixed compiler warning 7374 7375 some fixes for 8-bit limb support 7376 7377 adapt to 8-bit limbs (work in progress) 7378 7379 [tests/tl2b.c] extend to 8-bit limb 7380 7381 [src/mpfr-gmp.h] fix for 8-bit limb 7382 73832018-09-07 Vincent Lef��vre <vincent@vinc17.net> 7384 7385 [doc/mpfr.texi] Added @tie{} (normal non-breakable space) at various 7386 places to avoid unwanted line breaking. 7387 7388 [doc/mpfr.texi] mpfr_rootn_ui, mpfr_root: changed k to n in order to 7389 match IEEE 754-2008. Also improved the description of mpfr_rootn_ui, 7390 mentioning the P754/D2.41 draft of the next IEEE 754 standard because 7391 IEEE 754-2008 is incomplete. 7392 73932018-09-06 Vincent Lef��vre <vincent@vinc17.net> 7394 7395 [tests/tdiv.c] !mpfr_equal_p is better than mpfr_cmp. 7396 73972018-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7398 7399 [src/rint.c] fixed bug with 16-bit limb 7400 (found by trint with GMP_CHECK_RANDOMIZE=1536206745598891) 7401 7402 [tests/tdiv.c] fixed test_20151023() 7403 74042018-09-06 Vincent Lef��vre <vincent@vinc17.net> 7405 7406 Removed trailing whitespace. 7407 7408 [src/get_ld.c] Removed incorrect and useless assertions (manl 7409 has exactly 32 bits, thus a shift count of 32 bits is invalid, 7410 but also useless). 7411 74122018-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7413 7414 [src/get_ld.c] fixed (hopefully definitively) for 16-bit limb 7415 74162018-09-05 Vincent Lef��vre <vincent@vinc17.net> 7417 7418 [src/set_d64.c] 2 fixes concerning rp[]: 7419 * If GMP_NUMB_BITS >= 64, there is a shift of 32 bits, thus one 7420 uses mp_limb_t (> 32 bits) instead of unsigned int. 7421 * Otherwise use unsigned long as an unsigned int might be on 16 bits. 7422 7423 [src/mpfr-impl.h] Indentation. 7424 7425 [src] Moved mpfr_nbits_ulong to its own file "nbits_ulong.c". 7426 7427 [src/pow_si.c] MPFR_NEED_LONGLONG_H is still needed. 7428 7429 [tests/tget_set_d64.c] Removed xxx suffix added in r13139 (by mistake?). 7430 74312018-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7432 7433 [src/exp_2.c] export (internally) nbits_ulong (renamed to mpfr_nbits_ulong) 7434 [src/mpfr-impl.h] added prototype for mpfr_nbits_ulong 7435 [src/pow_si.c] fixed for 16-bit limb 7436 7437 [src/get_d64.c] fixed for 16-bit limb 7438 [src/set_d64.c] likewise 7439 [tests/tget_set_d64.c] improved error message 7440 74412018-09-05 Vincent Lef��vre <vincent@vinc17.net> 7442 7443 [src/get_ld.c] In the case GMP_NUMB_BITS == 16, cast to unsigned long 7444 instead of unsigned int since shift counts can be up to 16 and an int 7445 might be on 16 bits only. 7446 74472018-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7448 7449 [src/get_ld.c] when denorm=16, a 32-bit shift on an unsigned int is undefined 7450 7451 [src/exp_2.c] fix for 16-bit limb 7452 [tests/texp.c] improve error message 7453 7454 [src/mpfr-mini-gmp.c] fixed gmp_urandomb_ui for 16-bit limb, added mpz_dump 7455 [tests/terandom_chisq.c] more details in case of error 7456 7457 [src/random_deviate.c] fixed typo 7458 74592018-09-04 Vincent Lef��vre <vincent@vinc17.net> 7460 7461 [tests/tset_z_exp.c] Avoid a GCC bug. 7462 7463 [tests/tset_z_exp.c] Attempt to fix randexp, but GCC complains. 7464 7465 [src/mpn_exp.c] Avoid useless "while" in nbits_mpfr_exp_t. 7466 74672018-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7468 7469 [tests/tset_ld.c] give more digits in case of error 7470 [tests/tget_ld_2exp.c] added one test (currently fails for 16-bit limb) 7471 7472 [src/set_ld.c] partial fix for 16-bit limb (typo + nice bug!) 7473 7474 [tests/tset_z_exp.c] fixed infinite loop in test code for limb < mpfr_exp_t 7475 7476 [src/mpn_exp.c] adapt to bitsize(mpfr_exp_t) > GMP_NUMB_BITS 7477 74782018-09-04 Vincent Lef��vre <vincent@vinc17.net> 7479 7480 [src/div.c] Code simplification. 7481 7482 [src/round_prec.c] MPFR_LIMB is actually useless now... 7483 7484 [src/round_prec.c] Code style and potential correction for 16-bit limb. 7485 7486 [src/sqrt_ui.c] Moved MPFR_SAVE_EXPO_FREE after mpfr_sqrt because 7487 the uu argument may be out of range and there is no guarantee that 7488 mpfr_sqrt can handle that. Improved consistency; code refactoring. 7489 74902018-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7491 7492 [src/round_prec.c] fixed for 16-bit limb 7493 [tests/tcan_round.c] improve error message 7494 7495 [src/sqrt_ui.c] fixed for 16-bit limb 7496 74972018-09-04 Vincent Lef��vre <vincent@vinc17.net> 7498 7499 [src/get_si.c] Make sure that a left shift is done on an unsigned type 7500 (as a left shift on a 0 of signed type was not specified by C90). 7501 75022018-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7503 7504 [src/div.c] fix for 16-bit limbs, and added comments 7505 7506 [src/rint.c] fix for 16-bit limb 7507 7508 [tests/tdiv.c] more detailed error message 7509 7510 [src/get_si.c] forgot cast when long > limb 7511 7512 [src/get_ui.c] forgot cast when long > limb 7513 75142018-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7515 7516 [src/odd_p.c] fix for 16-bit limb 7517 7518 [tests/tbeta.c] exit at the first error 7519 7520 [src/get_si.c] adapt to 16-bit limbs 7521 [src/get_ui.c] likewise 7522 7523 [src/cmp_si.c] adapt for reduced exponent range for 16-bit limbs 7524 [src/cmp_ui.c] likewise 7525 75262018-09-03 Vincent Lef��vre <vincent@vinc17.net> 7527 7528 [tests/mpfr-test.h] If MPFR_TESTS_ABORT is defined, replace exit(1) by 7529 abort(), thus with a core dump. 7530 [doc/README.dev] Document MPFR_TESTS_ABORT. 7531 75322018-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7533 7534 [tests/tgeneric.c] revert 13107 (abort might lose some data in open files) 7535 [src/mul_ui.c] fixed for 16-bit limb and reduced exponent range 7536 7537 [tests/tgeneric.c] replace exit(1) by abort() to allow debugging with gdb 7538 7539 [src/isinteger.c] fix for 16-bit limb 7540 7541 [src/cmp_si.c] fixed error for 16-bit limb 7542 [src/cmp_ui.c] adapted to 16-bit limb 7543 75442018-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7545 7546 [src/cmp_si.c] adapt for 16-bit limb 7547 75482018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7549 7550 [src/mul_ui.c] adapt for 16-bit limb 7551 75522018-08-31 Vincent Lef��vre <vincent@vinc17.net> 7553 7554 [src/mpfr-mini-gmp.c] Fixed potential undefined behavior (when mp_limb_t 7555 is defined as an unsigned short) with MPFR_LIMB_LSHIFT. 7556 7557 [src/mpfr-impl.h] Define MPFR_LIMB_LSHIFT(x,c) macro to do a left shift, 7558 making sure that the shifted argument is unsigned (needed due to the 7559 integer promotion rules when mp_limb_t is defined as an unsigned short). 7560 [src/add1.c] Fixed potential undefined behavior with MPFR_LIMB_LSHIFT. 7561 7562 [src/mpfr-impl.h] Corrected a comment and added a warning. 7563 75642018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7565 7566 [src/mpfr-impl.h] fix MPFR_INT_CEIL_LOG2 for 16-bit limb 7567 7568 [src/set_si_2exp.c] support 16-bit limbs 7569 75702018-08-31 Vincent Lef��vre <vincent@vinc17.net> 7571 7572 [src/set_ui_2exp.c] Code formatting. Removed a FIXME (done in r13078). 7573 75742018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7575 7576 [src/mpfr-gmp.h] missing cast 7577 7578 removed TEST_FLAGS stuff 7579 75802018-08-31 Vincent Lef��vre <vincent@vinc17.net> 7581 7582 [doc/README.dev] More correction about the MPFR_TESTS_TIMEOUT macro. 7583 7584 [doc/README.dev] Clarification about MPFR_TESTS_TIMEOUT. 7585 7586 [doc/README.dev] Reverted r13090: this was already mentioned at the 7587 right place (do not mix up macros and environment variables). 7588 75892018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7590 7591 [src/mpfr-gmp.h] added missing udiv_qrnnd for 16-bit limb 7592 [src/mul.c] fixed for 16-bit limb 7593 [src/ui_div.c] likewise 7594 7595 [README.dev] mention that MPFR_TESTS_TIMEOUT only works with --enable-tests-timeout 7596 75972018-08-31 Vincent Lef��vre <vincent@vinc17.net> 7598 7599 [src/mpfr-impl.h] Fix for MS Windows. 7600 7601 [src/mpfr-impl.h] Make sure that MPFR_LONG_WITHIN_LIMB is defined if 7602 __GMP_SHORT_LIMB is not defined, as required by the current code. 7603 7604 [src/mpfr-gmp.h] Untabified. 7605 76062018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7607 7608 [src/mpfr-impl.h] fixed wrong #ifdef 7609 7610 [src/mpfr-mini-gmp.c] fix for 16-bit limb 7611 7612 [src/add1.c] fix for 16-bit limb 7613 [tests/tadd.c] more output in case of error 7614 7615 [src/add1.c] fixed compiler warning 7616 7617 [src/mpfr-gmp.h] removed leftover debug statement 7618 [src/mpfr-impl.h] added MPFR_LIMB macro 7619 [src/sub1sp.c] fix for 16-bit limb 7620 76212018-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7622 7623 [src/mpfr-gmp.h] more changes for 16-bit limb 7624 [src/mpfr-impl.h] mpfr-longlong.h should not be used for limb < long 7625 7626 [mpfr-gmp.h] added comment 7627 7628 [mpfr-mini-gmp.c] fix for 16-bit limb 7629 7630 [src/set_ui_2exp.c] fix for 16-bit limb 7631 76322018-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7633 7634 [src/round_p.c] gmp_fprintf is not defined in mini-gmp 7635 7636 [tests/tadd.c] fix for 16-bit limb 7637 7638 [src/add1.c] revert previous commit since it does not remove the warning: 7639 add1.c: In function ���mpfr_add1���: 7640 add1.c:407:30: warning: ���<<��� in boolean context, did you mean ���<��� ? [-Wint-in-bool-context] 7641 if (difs && (cprev << (GMP_NUMB_BITS - difs))) 7642 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ 7643 7644 [src/add1.c] fixed compiler warning (with gcc 8.2.0) 7645 76462018-08-29 Vincent Lef��vre <vincent@vinc17.net> 7647 7648 [tests/tdiv_ui.c] Added a comment about a spurious failure 7649 with MPFR_RNDF if RND_LOOP_NO_RNDF were not used. 7650 76512018-08-28 Vincent Lef��vre <vincent@vinc17.net> 7652 7653 [tests/tsinh.c] Fixed test introduced in r13047. 7654 7655 [src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the bug introduced in r13066 7656 for the cases where MPFR_LONG_WITHIN_LIMB is defined (make sure that a 7657 significand allocated in the stack is not freed before the associated 7658 mpfr_t object). 7659 7660 [src/div_ui.c] Extend the exponent range in the case where 7661 MPFR_LONG_WITHIN_LIMB is not defined, resolving the FIXME. 7662 Note: a test was already there in tdiv_ui via the generic tests. 7663 7664 [tests/tdiv_ui.c] Disabled rnd=MPFR_RNDF in a loop as this now fails. 7665 7666 [tests/tdiv_ui.c] Corrected an error message. 7667 7668 [src/div.c] Avoid an infinite recursion when MPFR_LONG_WITHIN_LIMB 7669 is not defined (mpfr_div calls mpfr_div_ui, which calls mpfr_div). 7670 [src/div_ui.c] Made the preprocessor test on MPFR_LONG_WITHIN_LIMB 7671 consistent with the ones in the other .c files. 7672 7673 [src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the cases where 7674 MPFR_LONG_WITHIN_LIMB is not defined (regression in the 7675 latest changes). Also avoid unused variables. 7676 7677 Removed trailing whitespace. 7678 7679 [src/ui_sub.c] Extend the exponent range early enough. 7680 7681 [src/add_ui.c] Extend the exponent range early enough. 7682 7683 [src/sub_ui.c] Extend the exponent range early enough. 7684 76852018-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7686 7687 [src/get_ld.c] adapt to GMP_NUMB_BITS=16 7688 76892018-08-28 Vincent Lef��vre <vincent@vinc17.net> 7690 7691 [src/div_ui.c] Added a FIXME. 7692 76932018-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7694 7695 [src/set_ld.c] adapt to GMP_NUMB_BITS=16 7696 7697 [src/set_d.c] adapt to GMP_NUMB_BITS=16 (not yet tested) 7698 7699 [src/exp_2.c] removed a static assertion (duplicate with MPFR_LONG_WITHIN_LIMB) 7700 7701 [src/init2.c] split a static assertion in two 7702 7703 [src/mpfr-gmp.h] allow GMP_NUMB_BITS=16 (experimental, do not use!) 7704 7705 [src/set_d.c] make it easier to extend to GMP_NUMB_BITS<32 7706 7707 [configure.ac] read GMP_NUMB_BITS from mini-gmp.h when available 7708 (otherwise assume mp_limb_t == unsigned long) 7709 7710 [src/ui_sub.c] make code work for limb < long 7711 7712 [src/sub_ui.c] make code work for limb < long 7713 7714 [src/div_ui.c] make code work for limb < long 7715 7716 [src/add_ui.c] make code work for limb < long 7717 7718 [mini-gmp] update 7719 7720 [tests/tsinh.c] improve coverage 7721 7722 [tests/tsubnormal.c] improve coverage 7723 77242018-08-27 Vincent Lef��vre <vincent@vinc17.net> 7725 7726 [src/sub1sp.c] Added a FIXME about cp vs tp. 7727 77282018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7729 7730 [tests/tmul.c] improve coverage 7731 77322018-08-27 Vincent Lef��vre <vincent@vinc17.net> 7733 7734 [src/sub1sp.c] Avoid bad usage of tp in the generic code: 7735 * In the case d == 1, two branches were inconsistent: tp not defined 7736 at the same level, with one shadowing the other one. 7737 * In the case 2 <= d < p, tp was reused with a different meanings; 7738 renamed the second one to cp, as this is MPFR_MANT(c). 7739 7740 [src/sub1sp.c] Re-added/updated FIXME about the long backward goto's. 7741 7742 [src/{add1sp.c,mul.c}] Updated the condition to use the formally 7743 extracted code and added a corresponding comment. 7744 77452018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7746 7747 [src/const_log2.c] further improve coverage 7748 77492018-08-27 Vincent Lef��vre <vincent@vinc17.net> 7750 7751 [src/cache.c] Improved variable names (��� dprec for the precision of dest 7752 and cprec for the precision of the cache) and added/updated comments. 7753 7754 [src/cache.c] Reverted r13036 as what matters is the target precision, 7755 which can be very small. 7756 77572018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7758 7759 [src/add1sp1_extracted.c] replaced extracted code by new for MPFR_PREC_BITS=64 7760 [src/mul_1_extracted.c] likewise 7761 [src/add1sp.c] changed condition to use the formally extracted code 7762 [src/mul.c] likewise (but code is still not yet activated here) 7763 77642018-08-27 Vincent Lef��vre <vincent@vinc17.net> 7765 7766 [src/cache.c] Comment: In practice, the "overflow handler" of 7767 MPFR_RNDRAW_GEN should never be called. 7768 77692018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7770 7771 [src/const_log2.c] avoid hard-coded values 7772 [tests/tconst_log2.c] improve coverage 7773 77742018-08-27 Vincent Lef��vre <vincent@vinc17.net> 7775 7776 [src/cache.c] Replaced a test + mpfr_overflow by a MPFR_ASSERTD since 7777 the cached value (in extended exponent range) cannot overflow. 7778 77792018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7780 7781 [src/const_euler.c] better choice of (initial) working precision 7782 [tests/tconst_euler.c] added coverage test 7783 77842018-08-27 Vincent Lef��vre <vincent@vinc17.net> 7785 7786 [tests/tversion.c] Update concerning the shared cache, to be consistent 7787 with the other mpfr_buildopt_*_p features: 7788 * check that mpfr_buildopt_sharedcache_p() and MPFR_WANT_SHARED_CACHE 7789 match; 7790 * for the output of the value, test mpfr_buildopt_sharedcache_p() 7791 instead of the macro. 7792 77932018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7794 7795 [tests/tconst_catalan.c] improve coverage 7796 7797 [tests/tbuildopt.c] added check of mpfr_buildopt_sharedcache_p() 7798 77992018-08-27 Vincent Lef��vre <vincent@vinc17.net> 7800 7801 Removed trailing whitespace. 7802 78032018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7804 7805 [src/sub1sp.c] fixed even rule for p=1 7806 78072018-08-27 Vincent Lef��vre <vincent@vinc17.net> 7808 7809 [src/mpfr-impl.h] Mention WG14/N2270 (proposed maybe_unused attribute), 7810 which could be useful to avoid MPFR_DBGRES. 7811 78122018-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7813 7814 [src/sub1sp.c] finished simplifying the mpfr_sub1sp code 7815 7816 [src/sub1sp.c] simplified the computation of sbb 7817 7818 [src/sub1sp.c] full rewrite of mpfr_sub1sp (work in progress) 7819 78202018-08-23 Vincent Lef��vre <vincent@vinc17.net> 7821 7822 [tests/tversion.c] Output "Enable formally proven code" info. 7823 7824 [doc/README.dev] Describe MPFR_WANT_PROVEN_CODE. 7825 7826 Renamed WANT_PROVEN_CODE to MPFR_WANT_PROVEN_CODE for consistency with 7827 the other WANT macros (and to avoid potential clashes with foreign .h 7828 files). 7829 7830 [tools/mpfrlint] For some tests, ignore extracted files (proven code). 7831 78322018-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7833 7834 the mpfr_mul_1 extracted code is not proven yet 7835 78362018-08-23 Vincent Lef��vre <vincent@vinc17.net> 7837 7838 For --enable-formally-proven-code, instead of requiring a check of the 7839 type sizes in configure, just enable the proven code only if the types 7840 have the sizes expected by this code. 7841 * configure.ac: removed the FIXME. 7842 * src/add1sp.c, src/mul.c: updated the #if test that enables the 7843 proven code (add1sp1_extracted.c and mul_1_extracted.c). 7844 7845 [configure.ac] Updated FIXME for --enable-formally-proven-code 7846 (many failures with -m32 due to assumptions on type sizes). 7847 7848 [configure.ac] Added a FIXME for --enable-formally-proven-code. 7849 7850 [configure.ac] Updated message for --enable-formally-proven-code. 7851 78522018-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7853 7854 added configure option --enable-formally-proven-code and corresponding code 7855 78562018-08-22 Vincent Lef��vre <vincent@vinc17.net> 7857 7858 [doc/algorithms.tex] Ulp calculus: swap Rule 4 and Rule 5. 7859 7860 [doc/algorithms.tex] Ulp calculus Rule 4: make the proof much simpler. 7861 7862 [doc/algorithms.tex] Error calculus: implicitly assume x ��� 0 in ulp. 7863 7864 [src/sub1sp.c] Updated a FIXME. 7865 7866 [src/sub1sp.c] Removed a comment that brings nothing and is not 7867 really correct (this is not a "flag"). 7868 78692018-08-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7870 7871 [tests/mpfr-test.h] added macro TEST_FLAGS (debug use only) 7872 78732018-08-22 Vincent Lef��vre <vincent@vinc17.net> 7874 7875 [tests/tversion.c] Portability corrections related to the use of the 7876 preprocessor / code robustness. 7877 78782018-08-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7879 7880 [src/sub1sp.c] revert mpfr_sub1sp to the version of revision 12241 7881 7882 [src/sub1sp.c] fixed bug20180813 7883 7884 [tests/tsub1sp.c] improved comment about bug20180813() 7885 78862018-08-21 Vincent Lef��vre <vincent@vinc17.net> 7887 7888 [doc/mpfr.texi] Updated the month. 7889 78902018-08-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7891 7892 [tests/tsub1sp.c] added a test for a bug in mpfr_sub1sp (to be fixed) 7893 78942018-08-20 Vincent Lef��vre <vincent@vinc17.net> 7895 7896 [doc/mpfr.texi] Replaced "Section ``Rounding''" by "@ref{Rounding}". 7897 78982018-08-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7899 7900 [doc/mpfr.texi] renamed Section "Rounding Modes" to "Rounding" 7901 79022018-08-18 Vincent Lef��vre <vincent@vinc17.net> 7903 7904 Avoid a pointer-to-int-cast warning with GCC (e.g. under 32-bit Linux) 7905 by casting pointers to uintptr_t before the cast to mpfr_uintmax_t. 7906 * acinclude.m4: use AC_TYPE_UINTPTR_T to define uintptr_t if 7907 not available. 7908 * tests/memory.c: added casts to uintptr_t. 7909 79102018-08-16 Vincent Lef��vre <vincent@vinc17.net> 7911 7912 Code robustness in macro definitions. 7913 7914 [src/sqr.c] Changed a variable name to avoid confusion with the function 7915 parameter of the same name, which has a different type. 7916 7917 [src/mpfr-impl.h] Added a cast to mp_bitcnt_t in order to fix potential 7918 integer overflow in MPFR_MPZ_SIZEINBASE2. 7919 7920 [src/round_raw_generic.c] Type consistency. 7921 7922 Added MPFR_INC_PREC definition (similar to MPFR_ADD_PREC) and replaced 7923 some MPFR_ADD_PREC occurrences by MPFR_INC_PREC. In src/bernoulli.c, 7924 replaced += by MPFR_INC_PREC to detect overflow. 7925 79262018-08-11 Vincent Lef��vre <vincent@vinc17.net> 7927 7928 Replaced "TZ=UTC" by "TZ=UTC0" for portability. 7929 79302018-08-06 Vincent Lef��vre <vincent@vinc17.net> 7931 7932 [src/round_raw_generic.c] Avoid a useless variable. This should 7933 also avoid warnings with Windows ICC, reported at: 7934 https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html 7935 7936 [tests/tcan_round.c] Added missing casts for printf (error messages). 7937 Bug detected under MS Windows, where size_t > unsigned long. See: 7938 https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html 7939 7940 [tests/tdiv_ui.c] Improved the conditions for test_20170105(). 7941 In particular, the new preprocessor test can avoid spurious warnings 7942 on large shifts (false positives) with MS Windows. See: 7943 https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html 7944 7945 [doc/README.dev] More details about intmax_t, mpfr_intmax_t, etc. 7946 7947 [tests/memory.c] To print a size_t or a pointer in error messages, 7948 cast to mpfr_uintmax_t (largest integer type available) instead of 7949 unsigned long, which may be too short (e.g. under MS Windows). 7950 See: https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html 7951 7952 [src/mpfr-intmax.h] Define MPFR_INTMAX_FSPEC macro: length modifier 7953 for printf corresponding to mpfr_intmax_t and mpfr_uintmax_t. 7954 7955 [doc/README.dev] Updated/added links about coding standards and C. 7956 79572018-08-05 Vincent Lef��vre <vincent@vinc17.net> 7958 7959 [tools/mpfrlint] Updated a comment: more details about __GMP_DECLSPEC, 7960 in particular those found in GMP's longlong.h file. 7961 79622018-08-05 Vincent Lef��vre <vincent@vinc17.net> 7963 7964 [src/mpfr-longlong.h] Replaced __GMP_DECLSPEC by __MPFR_DECLSPEC. 7965 7966 Otherwise, with Windows DLL, __GMP_DECLSPEC is replaced by 7967 __declspec(dllimport), which is wrong when building MPFR and 7968 yields warning LNK4217 such as: 7969 7970 eint.obj : warning LNK4217: locally defined symbol mpfr_clz_tab 7971 imported in function mpfr_eint 7972 7973 due to 7974 7975 extern const unsigned char __GMP_DECLSPEC __clz_tab[129]; 7976 7977 (note that mpfr_clz_tab is defined with "#define __clz_tab mpfr_clz_tab" 7978 only without the GMP build). 7979 7980 See: 7981 https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00000.html 7982 https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00001.html 7983 79842018-08-05 Vincent Lef��vre <vincent@vinc17.net> 7985 7986 [tools/mpfrlint] Check that __GMP_DECLSPEC is not used by MPFR. 7987 79882018-07-31 Vincent Lef��vre <vincent@vinc17.net> 7989 7990 [tests/tversion.c] Try to detect missing output from the first printf 7991 that occurred once with i586-mingw32msvc-gcc -D__USE_MINGW_ANSI_STDIO 7992 and run under Wine. 7993 (merged changesets r12968-12969 from the 4.0 branch) 7994 79952018-07-27 Vincent Lef��vre <vincent@vinc17.net> 7996 7997 [acinclude.m4,configure.ac] Check the support of the group flag for 7998 native integers, which is a Single UNIX Specification extension. 7999 [tests/tsprintf.c] Test the group flag with the P length modifier only 8000 when supported, since the implementation relies on this support. 8001 8002 [src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t): 8003 a '0' flag was always added when calling gmp_asprintf. This bug 8004 wasn't detected under Linux because the case for which it was 8005 occurring (left space padding without a precision and without a 8006 '0' flag) was not tested. With Wine, tsprintf was failing because 8007 of a bug in the stdio library: the '0' flag added by mistake should 8008 have been ignored in some test with a precision, but it wasn't. 8009 [tests/tsprintf.c] Added a test that made a failure occur under Linux. 8010 8011 [tests/tsprintf.c] Added 2 other tests with the P length modifier. 8012 8013 [src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t). 8014 [tests/tsprintf.c] Corrected/added tests with the P length modifier. 8015 80162018-07-26 Vincent Lef��vre <vincent@vinc17.net> 8017 8018 [src/vasprintf.c] Fixed various overflow and close-to-overflow issues. 8019 Those with the P length modifier (mpfr_prec_t) will be fixed later. 8020 8021 [tests/tsprintf.c] Another failure with the P length modifier. 8022 8023 [tests/tsprintf.c] Added tests with the P length modifier (mpfr_prec_t), 8024 yielding mode failures. 8025 8026 [src/vasprintf.c] Fixed "store to null pointer" and free of bad pointer 8027 in case of error. 8028 8029 [tests/tsprintf.c] Added a test that yields a "store to null pointer", 8030 detected by UBsan. 8031 80322018-07-25 Vincent Lef��vre <vincent@vinc17.net> 8033 8034 [src/vasprintf.c] Bug fix: in case of some errors (via "goto error;"), 8035 va_end wasn't called, yielding undefined behavior. 8036 80372018-07-23 Vincent Lef��vre <vincent@vinc17.net> 8038 8039 [tests] Added tget_set_d128 to svn:ignore property. 8040 8041 [src/erf.c] More security about tauk. 8042 8043 [src/erf.c] Removed a meaningless cast. 8044 80452018-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8046 8047 [src/erf.c] replaced double's by mpfr_t to fix bug reported by Naoki Shibata 8048 80492018-07-22 Vincent Lef��vre <vincent@vinc17.net> 8050 8051 [tests/terf.c] Added a testcase for bug reported by Naoki Shibata: 8052 https://sympa.inria.fr/sympa/arc/mpfr/2018-07/msg00028.html 8053 (uceil_log2.c:40: MPFR assertion failed: exp < 1023). 8054 Increased the number of generic tests in order to reproduce the bug 8055 there too with the default seed. 8056 80572018-07-21 Vincent Lef��vre <vincent@vinc17.net> 8058 8059 [src/subnormal.c] C89 compatibility. 8060 80612018-07-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8062 8063 [src/subnormal.c] experimental support for RNDNA 8064 80652018-07-20 Vincent Lef��vre <vincent@vinc17.net> 8066 8067 Added examples/threads.c (and updated Makefile.am): multithreading test 8068 to detect scaling issues with MPFR. 8069 80702018-07-19 Vincent Lef��vre <vincent@vinc17.net> 8071 8072 [src/vasprintf.c] Updated a FIXME. 8073 8074 [src/vasprintf.c] More FIXME's. 8075 8076 [src/vasprintf.c] Reindentation. 8077 8078 [src/vasprintf.c] Added a FIXME for MPFR_PREC_ARG handling. 8079 80802018-07-18 Vincent Lef��vre <vincent@vinc17.net> 8081 8082 Shared caches: fix and minor changes. 8083 * Fixed detection and use of C11 thread support: the C11 header is 8084 <threads.h>, not <thread.h>. 8085 * Renamed WANT_SHARED_CACHE to MPFR_WANT_SHARED_CACHE for consistency 8086 with the other MPFR_WANT_* macros. 8087 * Added MPFR_THREAD_LOCK_METHOD macro, giving the thread locking 8088 method as a string (when shared caches are enabled). 8089 * doc/README.dev: documented 4 macros for shared caches. 8090 * tests/tversion.c: output MPFR_WANT_SHARED_CACHE and 8091 MPFR_THREAD_LOCK_METHOD information. 8092 8093 [tests/tconst_pi.c] Removed an incorrect assertion, as the #else would 8094 be applicable when WANT_SHARED_CACHE is defined but not HAVE_PTHREAD 8095 (which may occur when MPFR_HAVE_C11_LOCK is defined). 8096 8097 [src/vasprintf.c] Fixed type in partition_number to be consistent with 8098 the end of the function. 8099 81002018-07-16 Vincent Lef��vre <vincent@vinc17.net> 8101 8102 [src/vasprintf.c] Added 2 FIXME and removed an incorrect MPFR_ASSERTN 8103 (which came from r5236). 8104 8105 [tests/tsprintf.c] Added other tests to check_length_overflow, which 8106 would trigger other bugs in src/vasprintf.c (e.g. when removing the 8107 other failing tests). 8108 8109 [tests/tsprintf.c] Added check_length_overflow to check the behavior of 8110 mpfr_snprintf on a large number of output characters (> INT_MAX) with 8111 size = 0. This test is actually done only if INT_MAX == 2147483647 and 8112 currently fails in such a case. 8113 8114 [src/vasprintf.c] Updated comment about overflow on the number of output 8115 characters, taking into account the latest ISO C and POSIX standards. 8116 8117 [tests/tsprintf.c] Updated a comment. 8118 81192018-07-13 Vincent Lef��vre <vincent@vinc17.net> 8120 8121 [src/vasprintf.c] Simplified mpfr_get_str_wrapper. 8122 8123 [src/vasprintf.c] Added a log message. 8124 8125 [src/mpfr-impl.h] Added a FIXME: _Decimal128 code and _MPFR_IEEE_FLOATS 8126 (which is about binary IEEE-754 floating point) should be unrelated. 8127 8128 [src/get_d64.c] 8129 * Added FIXME's for get_decimal64_nan and get_decimal64_inf internal 8130 functions: possible issue with _MPFR_IEEE_FLOATS code, which also 8131 seems more complex than the generic code. 8132 * Simplified get_decimal64_zero internal function to generate a 8133 decimal zero directly instead of using the fact that a binary64 8134 zero is also the encoding of a decimal zero (and assuming that 8135 double = binary64 with perfect endianness matching). 8136 8137 [acinclude.m4] Updated message about the _Float128 support, since 8138 this is not just about the compiler. 8139 8140 [acinclude.m4] Fixed the _Float128 / __float128 detection for NetBSD: 8141 Optimization made the "undefined reference" error disappear, so that 8142 __float128 was misdetected as being supported. 8143 81442018-07-12 Vincent Lef��vre <vincent@vinc17.net> 8145 8146 [acinclude.m4] For the _Float128 / __float128 detection, changed 8147 AC_COMPILE_IFELSE to AC_LINK_IFELSE since an error may occur only 8148 at link time, such as under NetBSD: 8149 https://mail-index.netbsd.org/pkgsrc-users/2018/02/02/msg026220.html 8150 https://mail-index.netbsd.org/pkgsrc-users/2018/02/05/msg026238.html 8151 8152 [src/Makefile.am] Corrected check-exported-symbols to avoid a failure 8153 when the default .SHELLFLAGS value is '-ec' (POSIX) instead of '-c' 8154 (GNU Make, which is not in POSIX-conforming mode by default). 8155 Bug found on FreeBSD 11.1 (Compile Farm @ HouseGordon.com). 8156 81572018-07-11 Vincent Lef��vre <vincent@vinc17.net> 8158 8159 [src/vasprintf.c] In buffer_sandwich, simplified the handling of the 8160 trailing zero (avoid memset and a useless assignment). 8161 81622018-07-09 Vincent Lef��vre <vincent@vinc17.net> 8163 8164 [doc/mpfr.texi] More changes to Section "Nomenclature and Types"; 8165 in particular, defined regular numbers and exponents. 8166 8167 [doc/mpfr.texi] In Section "Nomenclature and Types", removed all the 8168 @noindent, whose purpose is unclear (if one needs something special, 8169 an itemized list would be better, or possibly @deffn). 8170 8171 [doc/mpfr.texi] Rewrote the paragraph defining "floating-point number" 8172 in Section "Nomenclature and Types", avoiding ambiguities. 8173 81742018-07-06 Vincent Lef��vre <vincent@vinc17.net> 8175 8176 [tests/tprintf.c] Grrr... again a copy-paste error. Now OK. 8177 8178 [tests/{tprintf.c,tsprintf.c}] Corrected the tests added in r12898, 8179 but tprintf still fails. 8180 8181 [tests/tsprintf.c] Corrected the latest tests. 8182 8183 [tests/tsprintf.c] Added tests (failure on "%09.3Rg" for 1000). 8184 8185 [tests/tsprintf.c] Corrected comments. 8186 8187 [tests/{tprintf.c,tsprintf.c}] Added tests (both programs fail). 8188 8189 [doc/mpfr.texi] Updated the month. 8190 8191 [src/vasprintf.c] Corrected comments and coding style. 8192 8193 [src/vasprintf.c] Resolve the FIXME. 8194 * Renamed ip_trailing_zeros to ip_trailing_digits, since when 8195 spec.size == 0, these can be any digits. 8196 * Simplified the buffer_sandwich function since it can be called 8197 only when spec.size != 0, in which case tz (= ip_trailing_digits) 8198 is either 0 or 1 (a trailing zero must be added only when rounding 8199 to the next power of ten in the %f case). 8200 * Corrected/removed/added comments. 8201 8202 [tests/{tprintf.c,tsprintf.c}] Added tests with powers of ten in all 8203 rounding modes and powers of ten + 0.5 in rounding to nearest. 8204 82052018-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8206 8207 [doc/mpfr.texi] typo in Fredrik's name 8208 8209 [AUTHORS] typo in Fredrik's name 8210 82112018-07-04 Vincent Lef��vre <vincent@vinc17.net> 8212 8213 [tests/tprintf.c] Added a TODO (for the FIXME in src/vasprintf.c). 8214 8215 [src/vasprintf.c] Updated the FIXME comment. 8216 8217 [src/vasprintf.c] Added a FIXME comment about an incorrect comment. 8218 8219 [src/vasprintf.c] Added log messages in buffer_sandwich. 8220 8221 [tests/tsprintf.c] Added more tests of the form 10^i - 1/2 8222 (like in tprintf.c). 8223 8224 [tests/tprintf.c] Added more tests of the form 10^i - 1/2. 8225 8226 [tests/tsprintf.c] Added test_locale() test based on the tprintf.c one. 8227 8228 [tests/tprintf.c] Minor correction. 8229 8230 [tests/tprintf.c] More test_locale() cleanup. 8231 8232 [src/vasprintf.c] English usage in a comment. 8233 8234 [src/vasprintf.c] Renamed mpfr_get_str_aux to mpfr_get_str_wrapper 8235 in order to avoid a confusion with the mpfr_get_str_aux function 8236 from get_str.c (moreover, this is really a wrapper, which is the 8237 reverse of an aux function). 8238 8239 [tests/tsprintf.c] locale_da_DK() cleanup. 8240 82412018-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8242 8243 [src/vasprintf.c] partly revert commit 12873 8244 82452018-07-04 Vincent Lef��vre <vincent@vinc17.net> 8246 8247 [tests/tprintf.c] test_locale() cleanup. 8248 * Conditional #include <locale.h> with the other header inclusions. 8249 * Completed a #if (to be like in tsprintf.c). 8250 * Moved a global variable as local to test_locale(). 8251 82522018-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8253 8254 [src/vasprintf.c] replaced overflow tests by assertions 8255 [tests/tprintf.c] improve test coverage 8256 82572018-07-04 Vincent Lef��vre <vincent@vinc17.net> 8258 8259 Added MPFR_CHECK_LOCALES environment variable for the tests (to be 8260 used by developers): when set, terminate with an error if locales 8261 cannot be tested. 8262 82632018-07-04 Vincent Lef��vre <vincent@vinc17.net> 8264 8265 [src/vasprintf.c] Fixed several bugs in buffer_sandwich, which could 8266 yield memory corruption with non-default memory allocators and other 8267 undefined behavior; check the return value when this function is called. 8268 8269 Details: 8270 * check integer overflow on the size computations; 8271 * computation of q and r without tests; 8272 * fixed the case where r > len (e.g. len = 1 and tz = 1); 8273 * in the loop, increase the str pointer only when needed, otherwise 8274 str could be beyond of the end of the string of the digits, which 8275 is undefined behavior. 8276 8277 The first consequence of the r > len issue was an incorrect generated 8278 string. Moreover, since the generated string was shorter than expected, 8279 mpfr_free_str would provide an incorrect buffer size to the "free" 8280 function of the current GMP memory allocator. By default, this size is 8281 ignored, but it may matter if the memory allocators have been changed 8282 with the mp_set_memory_functions GMP function, in which case a possible 8283 consequence could be memory corruption. 8284 82852018-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8286 8287 [src/vasprintf.c] added an assertion 8288 [tests/tprintf.c] added two tests (one currently fails) 8289 82902018-06-26 Vincent Lef��vre <vincent@vinc17.net> 8291 8292 [src/vasprintf.c] C90 compatibility. 8293 82942018-06-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8295 8296 [tests/tsprintf.c] fixed another test 8297 8298 [tests/tsprintf.c] fixed test 8299 8300 [src/vasprintf.c] improve coverage 8301 8302 [tests/tsprintf.c] improve coverage 8303 8304 [tests/tsprintf.c] improve coverage 8305 83062018-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8307 8308 [tests/tgamma_inc.c] improve coverage 8309 8310 [tests/tgamma_inc.c] added coverage test 8311 8312 [src/gamma.c] added comment 8313 [src/gamma_inc.c] fixed bug for gamma_inc(-Inf, 0) 8314 [tests/tgamma_inc.c] added coverage tests 8315 83162018-06-23 Vincent Lef��vre <vincent@vinc17.net> 8317 8318 [configure.ac] Do not do specific CFLAGS settings for MS-Windows ICC. 8319 See <https://sympa.inria.fr/sympa/arc/mpfr/2018-06/msg00027.html>. 8320 8321 [src/mpfr-impl.h] Spelling in a comment. 8322 8323 [src/mpfr-impl.h] Fixed change in r12847. 8324 8325 [tests/tget_set_d64.c] Improved a test. 8326 8327 [tests/tget_set_d128.c] Replaced d != d by DOUBLE_ISNAN (d). 8328 8329 [doc/mpfr.texi] Updated the month. 8330 8331 [tests/tget_set_{d64,d128}.c] When MPFR_ERRDIVZERO is defined, 8332 disable tests that can trigger a FP exception DIVBYZERO or INVALID 8333 (issue detected with -DMPFR_TESTS_FPE_DIV -DMPFR_ERRDIVZERO). 8334 83352018-06-22 Vincent Lef��vre <vincent@vinc17.net> 8336 8337 [src/mpfr-impl.h] Improved a comment about union ieee_decimal128. 8338 8339 Do not assume that the bit-field ordering for _Decimal128 is necessarily 8340 little endian or big endian (this is more than the usual endianness 8341 issue). If this cannot be detected, instead of failing or assuming a 8342 possibly wrong default, switch to the portable code. 8343 83442018-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8345 8346 added mpfr_get_decimal128 and mpfr_set_decimal128 to the manual 8347 8348 [tests/tget_set_d128.c] test some random 16-byte inputs 8349 8350 [tests/tget_set_d64.c] test random inputs 8351 8352 [acinclude.m4] added configure test to determine the encoding of _Decimal128 (little or big endian) 8353 8354 [doc/README.dev] added standard suffixes 8355 8356 [tests/tget_set_d64.c] fixed a test 8357 8358 [tests/tget_set_d64.c] removed TODO (done), added comment 8359 [tests/tget_set_d128.c] removed TODO (done) 8360 8361 [src/set_d64.c] added comment (like for set_d128.c) 8362 8363 [src/get_d64.c] improve comment 8364 [src/get_d128.c] likewise 8365 8366 [src/set_d64.c] also deal with non-canonical BID encoding 8367 [tests/tget_set_d64.c] added test with non-canonical BID encoding 8368 83692018-06-22 Vincent Lef��vre <vincent@vinc17.net> 8370 8371 [src/get_d128.c] Bug fix (buffer overflow detected by AddressSanitizer). 8372 8373 [src] Moved the FIXME comment from set_d128.c to get_d128.c since the 8374 bug occurs in mpfr_get_decimal128 according to the AddressSanitizer. 8375 8376 [src/set_d128.c] Updated FIXME comment. 8377 8378 [src/sqrt.c] Replaced a umul_ppmm by umul_hi, and removed an unused 8379 variable as a consequence. 8380 8381 [src/set_d64.c] Code improvement (like r12809 and r12828 in set_d128.c). 8382 8383 [src/set_ld.c] Removed unused variable for 8384 HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE (PowerPC). 8385 8386 [src/invsqrt_limb.h] Avoid a "variable ���_l��� set but not used" warning 8387 on some platforms, such as powerpc64le-unknown-linux-gnu. 8388 8389 [src/invert_limb.h] Avoid a "variable ���_l��� set but not used" warning 8390 on some platforms, such as powerpc64le-unknown-linux-gnu. 8391 8392 [src/set_d128.c] Avoid "unused variable" warnings on platforms with DPD. 8393 8394 [src/mpfr-impl.h] About union ieee_double_decimal64: removed an 8395 incorrect comment and added a TODO. 8396 8397 Changed union ieee_double_decimal128 to union ieee_decimal128 since this 8398 has nothing to do with double (unlike union ieee_double_decimal64). Also 8399 refactored code for this union definition. 8400 8401 [src/mpfr-impl.h] Updated TODO for DPD. 8402 8403 [src/mpfr-impl.h] Added TODO for DPD (better structure definition). 8404 8405 [tests/tget_set_d128.c] Execute BID code only with BID. 8406 8407 [tests/tget_set_d128.c] Simplification and better portability. 8408 84092018-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8410 8411 [tests/tget_set_d128.c] added coverage tests for non-canonical BID encodings 8412 8413 [src/set_d128.c] improve last commit 8414 8415 [src/set_d128.c] improved a comment 8416 84172018-06-22 Vincent Lef��vre <vincent@vinc17.net> 8418 8419 [src/set_d128.c] Re-added "while (...)" erroneously removed in r12817. 8420 84212018-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8422 8423 [src/set_d64.c] added comment 8424 [src/set_d128.c] likewise 8425 8426 [src/set_d128.c] avoid variable conflict for DPD 8427 8428 [src/set_d128.c] implement for DFD encoding 8429 8430 [src/set_d64.c] added comment and space 8431 84322018-06-22 Vincent Lef��vre <vincent@vinc17.net> 8433 8434 [src/set_d128.c] Added a FIXME (stack-buffer-overflow). 8435 8436 [src/set_d128.c] Corrected r12811. 8437 8438 [src/set_d128.c] _MPFR_IEEE_FLOATS code for BID: correctly support 8439 the decoded significand >= 10^34 cases (non-canonical encodings), 8440 which must be zero. 8441 8442 [tests/{tget_set_d64.c,tget_set_d128.c}] TODO: Also test non-canonical 8443 encodings. 8444 8445 [src/set_d128.c] 8446 * Enable the _MPFR_IEEE_FLOATS code only for GMP_NUMB_BITS == 32 or 64 8447 (as the other values are not supported by this code). 8448 * Bug fix for GMP_NUMB_BITS == 32 (��� tget_set_d128 no longer fails). 8449 * Added an assertion corresponding to a comment. 8450 8451 [src/set_d128.c] Fit on 80 columns. 8452 84532018-06-21 Vincent Lef��vre <vincent@vinc17.net> 8454 8455 [src/mpfr-impl.h] Updated a title comment (��� Decimal support). 8456 8457 [src/mpfr-impl.h] Corrected a comment. 8458 84592018-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8460 8461 [src/set_d128.c] added comments 8462 8463 [src/set_d128.c] remove debug stuff 8464 8465 [src/mpfr-impl.h] assume little-endian double implies little-endian decimal128 8466 84672018-06-21 Vincent Lef��vre <vincent@vinc17.net> 8468 8469 [src/mpfr-impl.h] FIXME for _Decimal128. 8470 84712018-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8472 8473 [src/set_d128.c] (partly) implement the _MPFR_IEEE_FLOATS case (BID only so far) 8474 [tests/tget_set_d128.c] added more tests 8475 8476 [src/set_d64.c] added comments 8477 8478 [src/get_d128.c] removed useless comment 8479 84802018-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8481 8482 [src/get_d128.c] avoid using doubles 8483 [tests/tget_set_d128.c] improve test coverage 8484 8485 [tests/tget_set_d128.c] improve test coverage 8486 8487 [tests/tget_set_d128.c] improve coverage 8488 8489 added mpfr_get_decimal128 (still experimental) 8490 8491 [get_d64.c] added comments and simplified code 8492 84932018-06-20 Vincent Lef��vre <vincent@vinc17.net> 8494 8495 [tests/{tget_set_d64.c,tget_set_d128.c}] Tests on powers of 10: 8496 test negative numbers too. 8497 84982018-06-19 Vincent Lef��vre <vincent@vinc17.net> 8499 8500 [doc/README.dev] Added a note about FP constants and native FP. 8501 8502 [tools/mpfrlint] Check that preprocessing directives have no spaces 8503 before. 8504 8505 [src/set_d128.c] Modified a comment. 8506 8507 [src/set_d128.c] Avoid double, which is unreliable with GCC 8508 in non-standard mode (see GCC bug 323 and the discussion in 8509 GCC bug 85957). But the failure in tget_set_d128 probably came from 8510 the fact that (_Decimal128) 0.1 is not 1/10 exactly (the double 0.1 8511 has about a 17-digit precision only, while _Decimal128 has more); 8512 this test now passes. 8513 8514 [src/set_d128.c] Simplified code and added assertions. 8515 8516 [src/set_d64.c] Added a log message (like in set_d128.c). 8517 8518 [src/{set_d64.c,set_d128.c}] Bug fix: use mpfr_strtofr instead of 8519 mpfr_set_str to get the ternary value. 8520 8521 [tests/{tget_set_d64.c,tget_set_d128.c}] Added tests on powers of 10. 8522 * tget_set_d64 fails on negative due to a bad ternary value. 8523 * tget_set_d128 fails on negative due to bad value, etc. 8524 8525 [tests/tget_set_d128.c] Test the flags too. 8526 8527 [tests/tget_set_d128.c] Test more values. 8528 8529 [tests/tget_set_d128.c] Converting an integer into _Decimal128 is better 8530 than converting a double into _Decimal128. 8531 8532 [tests/tget_set_d128.c] Simplified the test, avoiding a bug in ICC 15 8533 at the same time (1.0D was regarded as 0). 8534 8535 [tests/tget_set_d128.c] Fixed indentation. 8536 8537 [tests/tversion.c] Decimal formats: output the encoding type (DPD/BID). 8538 8539 [src/set_d128.c] Changed _GMP_IEEE_FLOATS to _MPFR_IEEE_FLOATS as per 8540 r10958 (in set_d128.c, currently in a comment due to r12772). 8541 8542 [src/set_d128.c] Added a log message. 8543 8544 [tests/tget_set_d128.c] Added an informative error message. 8545 8546 [src/set_d128.c] Disable the _GMP_IEEE_FLOATS code, which is not 8547 complete yet and makes the compilation fail. 8548 85492018-06-13 Vincent Lef��vre <vincent@vinc17.net> 8550 8551 [src/set_d128.c] Corrected year in copyright notice. 8552 8553 [src/set_d128.c] Minor improvements. 8554 85552018-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8556 8557 [tests/tget_set_d64.c] added -v option to get verbose output 8558 [tests/tget_set_d128.c] likewise 8559 85602018-06-13 Vincent Lef��vre <vincent@vinc17.net> 8561 8562 [TODO] Missing "r". 8563 85642018-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8565 8566 [TODO] update for mpfr_set_decimal128 8567 8568 added mpfr_set_decimal128 (work in progress, not yet fully tested) 8569 85702018-06-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8571 8572 [tools/coverage] added branch coverage 8573 85742018-06-07 Vincent Lef��vre <vincent@vinc17.net> 8575 8576 [src/strtofr.c] Moved some computations on the exponents earlier 8577 since they may yield an early overflow or underflow, and computing 8578 the division by b^e would be useless in such a case. 8579 8580 [src/strtofr.c] Added a MPFR_ASSERTD and a FIXME on things that don't 8581 make much sense in the error analysis (still trying to understand���). 8582 85832018-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8584 8585 [src/const_pi.c] missing reference about Brent-Salamin 8586 8587 [doc/algorithms.bib] added reference 8588 85892018-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8590 8591 [tests/tfmma.c] improve coverage of the UBF case in mpfr_sub 8592 (now coverage of sub.c is 100%) 8593 85942018-06-05 Vincent Lef��vre <vincent@vinc17.net> 8595 8596 [src/sum.c] Updated TODO from r12755. 8597 85982018-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8599 8600 [src/fmma.c] now mpfr_fmms calls mpfr_sub for a better coverage 8601 86022018-06-04 Vincent Lef��vre <vincent@vinc17.net> 8603 8604 [src/sum.c] Updated TODO from r12755. 8605 8606 [src/sum.c] Added a comment with a TODO about potentially dead code on 8607 some platforms. 8608 8609 codespell: simplified exceptions. 8610 * Added codespell.exclude file. 8611 * codespell.ignore: removed some words (particular cases). 8612 * tools/mpfrlint: use the codespell.exclude exclude file, and for 8613 the doc directory, replaced -S by an explicit list of files. 8614 8615 [codespell.ignore] Also ignore "objext" and "tim" (codespell 1.13). 8616 86172018-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8618 8619 [src/sub1.c] fixed a bug and solved a FIXME (underflow for UBFs) 8620 Note: this mostly reverts r12319, r12321, and the remaining FIXME 8621 from r12327. 8622 [tests/tfmma.c] added non-regression tests 8623 86242018-06-02 Vincent Lef��vre <vincent@vinc17.net> 8625 8626 [src/mpfr-impl.h] Concerning r12738, the safer code can be avoided 8627 with GCC in ISO C mode (__STRICT_ANSI__). 8628 86292018-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8630 8631 [src/invert_limb.h] fixed two typos reported by Marco Bodrato 8632 86332018-06-02 Vincent Lef��vre <vincent@vinc17.net> 8634 8635 [tests/tversion.c] For GCC, output __STRICT_ANSI__ when defined. 8636 86372018-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8638 8639 [src/sqrt.c] fixed/improved comments 8640 86412018-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8642 8643 [src/invsqrt_limb.h] fixed typos in comments 8644 86452018-05-31 Vincent Lef��vre <vincent@vinc17.net> 8646 8647 [doc/README.dev] Updated a URL. 8648 8649 [src/mpfr-impl.h] Fixed potential compilation failure with _Decimal64, 8650 detected with r12738. 8651 8652 [doc/mpfr.texi] Updated the month. 8653 8654 Updated mpfr.org URL's to use https (except in ChangeLog and NEWS). 8655 8656 [src/mpfr-impl.h] With GCC, select safer code for DOUBLE_ISNAN(x). 8657 86582018-05-30 Vincent Lef��vre <vincent@vinc17.net> 8659 8660 [tools/announce-text] http ��� https (for mpfr.org). 8661 8662 [doc] Updated FAQ.html with update-faq. 8663 8664 [doc] Workaround due to the lack of https support in libxml2 8665 and the fact that mpfr.org now uses https with HSTS. 8666 * faq.xsl: for the visual.css, use a local URL. 8667 * update-faq: download visual.css from mpfr.org first. 8668 8669 [doc/update-faq] http ��� https 8670 8671 [src/mpfr-impl.h] Added a FIXME about DOUBLE_ISNAN and GCC. 8672 86732018-05-28 Vincent Lef��vre <vincent@vinc17.net> 8674 8675 [src/strtofr.c] Continued to review the new error analysis and code. 8676 Changes: 8677 * made the code more SSA-like (avoid a "y += ysize; y -= ysize;"); 8678 * clarified comments; 8679 * use MPFR_LIMB_MSB; 8680 * added a FIXME on the error analysis. 8681 8682 [doc/README.dev] Added info about shell portability, and in particular 8683 about quotes (covering changes in r5659, r6128, r12711 and r12721). 8684 8685 [tools/{ck-clz_tab,ck-copyright-notice,ck-mparam,update-version}] Fixed 8686 non-portable quote nesting in backticks. 8687 8688 [examples] Added "mpfr_free_cache ();" at the end of all programs, 8689 as this is something that should be done systematically (at least 8690 to detect memory leaks with valgrind). 8691 86922018-05-25 Vincent Lef��vre <vincent@vinc17.net> 8693 8694 [src/strtofr.c] Started to review the new error analysis and code 8695 (r12705,12706). Minor improvements. 8696 8697 [src/{mpfr-impl.h,mpn_exp.c}] Changed the return type of mpfr_mpn_exp 8698 from long to int for consistency with the mpfr_mpn_exp code and with 8699 strtofr.c (which expects an int). 8700 8701 [src/mpn_exp.c] Code cleanup and protection against integer overflow. 8702 87032018-05-24 Vincent Lef��vre <vincent@vinc17.net> 8704 8705 [src/hypot.c] Do bitwise operations in unsigned arithmetic. 8706 8707 [src/hypot.c] Added 2 TODO. 8708 87092018-05-23 Vincent Lef��vre <vincent@vinc17.net> 8710 8711 [tools/{ck-clz_tab,ck-copyright-notice}] Changed the POSIX $(���) to `���` 8712 for Bourne shell compatibility (as under Solaris 10). 8713 Note: these scripts are called via dist-hook for "make dist". 8714 87152018-05-22 Vincent Lef��vre <vincent@vinc17.net> 8716 8717 [src/mpfr-impl.h] Added a comment for UBF. 8718 8719 [src/mpfr-impl.h] Added a comment about UBF and alignment requirements. 8720 87212018-05-17 Vincent Lef��vre <vincent@vinc17.net> 8722 8723 [tests/tstrtofr.c] Removed TODO added in r12681, now obsolete. 8724 87252018-05-16 Vincent Lef��vre <vincent@vinc17.net> 8726 8727 Removed trailing whitespace. 8728 87292018-05-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8730 8731 [src/strtofr.c] revisit error analysis in the division case (end) 8732 87332018-05-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8734 8735 [src/strtofr.c] revisit error analysis in the division case (work in progress, 8736 not yet finished) 8737 87382018-05-09 Vincent Lef��vre <vincent@vinc17.net> 8739 8740 [tests/tsub.c] Updated the comment added in r12701. 8741 8742 [tests/tsub.c] Added a comment about the bug fixed in r10697: 8743 bug20180217 is a non-regression test for this bug. 8744 87452018-05-02 Vincent Lef��vre <vincent@vinc17.net> 8746 8747 [tests/tstckintc.c] Avoid false warnings with -Wcast-align=strict from 8748 GCC 8.1 by adding casts "(long *) (void *)", still allowing checks of 8749 other alignment requirements (which are not handled by the tstckintc.c 8750 code). 8751 8752 [TODO] + Use GCC's nonnull and returns_nonnull attributes. 8753 8754 [acinclude.m4] Added a note on _Decimal64 detection. 8755 87562018-04-30 Vincent Lef��vre <vincent@vinc17.net> 8757 8758 [doc/README.dev] Added info about spelling. 8759 8760 Corrected "runtime" to "run time" (noun) or "run-time" (adjective) 8761 when it means the time at which the program is run. 8762 See: 8763 https://gcc.gnu.org/codingconventions.html#Spelling 8764 https://en.wikipedia.org/wiki/Run_time 8765 87662018-04-27 Vincent Lef��vre <vincent@vinc17.net> 8767 8768 [src/strtofr.c] Potentially unnecessary code: comes from r8384. 8769 8770 [src/strtofr.c] Updated TODO about potentially unnecessary code. 8771 8772 [src/strtofr.c] Updated TODO about potentially unnecessary code, 8773 showing that this code probably increases the error bound (errors 8774 accumulate instead of compensating without this code). 8775 8776 [src/strtofr.c] Added a TODO about potentially unnecessary code. 8777 8778 [src/strtofr.c] Corrected/updated comments and added a log message. 8779 8780 [src/strtofr.c] Corrected a comment (exp_base and exp_bin description). 8781 8782 [src/strtofr.c] Added a FIXME: possible bug in very special cases with 8783 large exponents, 32-bit mpfr_exp_t and very long strings. 8784 8785 [src/strtofr.c] Added/clarified comments. 8786 8787 [tests/tstrtofr.c] Added a TODO related to the bug fixed in r12573. 8788 87892018-04-26 Vincent Lef��vre <vincent@vinc17.net> 8790 8791 [tests/tgmpop.c] Coding style. 8792 8793 [tests/tgmpop.c] For mpfr_cmp_q, improved the test where x is NaN by 8794 checking all the flags (not just erange) and added a test where y is 8795 a NaN rational. 8796 Note: this could be used to detect 2 bugs, fixed in r12343 and r12499, 8797 respectively. 8798 8799 [tests/tcan_round.c] Removed a r2 != MPFR_RNDF test and added 3 TODO's 8800 to support r2 == MPFR_RNDF in some other tests. 8801 88022018-04-24 Vincent Lef��vre <vincent@vinc17.net> 8803 8804 [src/mpfr-gmp.h] Clarified a comment (the "if" is part of the code, 8805 not the English word). 8806 88072018-04-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8808 8809 [src/mpfr-gmp.h] added comment about MPN_FILL 8810 88112018-04-20 Vincent Lef��vre <vincent@vinc17.net> 8812 8813 [src/out_str.c] Check for integer overflow (here, a minor issue). 8814 8815 [src/out_str.c] Support mpfr_exp_t larger than long (with mpfr_eexp_t). 8816 88172018-04-19 Vincent Lef��vre <vincent@vinc17.net> 8818 8819 [tests] Added tdot to svn:ignore property. 8820 8821 [tests/tdot.c] Various improvements. 8822 8823 [doc/mpfr.texi] Note that mpfr_dot does not yet handle intermediate 8824 underflows either. 8825 [src/dot.c] Changed an MPFR_ASSERTD to MPFR_ASSERTN since the assertion 8826 is not satisfied on some user inputs. Minor improvements. 8827 8828 [NEWS] Added mpfr_dot. 8829 8830 [doc/mpfr.texi] In the added functions, note that mpfr_dot is incomplete 8831 and experimental. 8832 8833 [tests/tsum.c] Code style. 8834 8835 [doc/mpfr.texi] Updated the month. 8836 8837 [tests/tdot.c] Code style. 8838 88392018-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8840 8841 added mpfr_dot 8842 88432018-04-19 Vincent Lef��vre <vincent@vinc17.net> 8844 8845 [tests/tget_flt.c] Correction about the use of mpfr_signbit, in case 8846 the implementation would change. 8847 8848 [src/sqr.c] Minor code improvement. 8849 8850 [src/sqr.c] Code formatting. 8851 8852 [src/sqr.c] Clarified a comment and slightly improved code. 8853 8854 [src/sqr.c] Typo in a comment. 8855 8856 [tests/tfma.c] Added test_underflow5. 8857 8858 [tests/tfma.c] Minor correction for test_underflow4. 8859 8860 [tests/tfma.c] Added a comment. 8861 88622018-04-18 Vincent Lef��vre <vincent@vinc17.net> 8863 8864 [tests/tfma.c] Added test_underflow4. This allows to show that the 8865 bound MAX (MPFR_PREC (z), MPFR_PREC (s) + 1) in fma.c is optimal: 8866 * If one subtract 1 from the 1st term MPFR_PREC (z), a failure 8867 occurs in test_underflow4. 8868 * If one subtract 1 from the 2nd term MPFR_PREC (s) + 1, a failure 8869 occurs in test_underflow2. 8870 8871 [configure.ac] For the ICC check, also test __INTEL_COMPILER. 8872 8873 [configure.ac] Corrected comment for the ICC check (GCC is no longer 8874 disabled since r5720). 8875 88762018-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8877 8878 [src/mpfr.h] enable some code that now works with ICC (tested with ICC 14) 8879 [TODO] removed item 8880 88812018-04-18 Vincent Lef��vre <vincent@vinc17.net> 8882 8883 [tests/tversion.c] Updated a comment about __ICC. 8884 88852018-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8886 8887 [TODO] removed item that we won't implement 8888 8889 [TODO] removed done item (UBF) 8890 88912018-04-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8892 8893 [TODO] RNDF is done 8894 8895 [TODO] removed an obsolete item 8896 8897 [TODO] log_ui is done 8898 88992018-04-17 Vincent Lef��vre <vincent@vinc17.net> 8900 8901 [tools/mpfrlint] Detect the use of mpfr_div_2exp and mpfr_mul_2exp. 8902 8903 [tests/{reuse.c,taway.c}] Added mpfr_div_2ui and mpfr_mul_2ui. 8904 Note: si functions are not tested yet. 8905 8906 Replaced mpfr_mul_2exp & mpfr_div_2exp by mpfr_mul_2ui & mpfr_div_2ui, 8907 respectively (for the tests, except in reuse.c and in taway.c). 8908 Note: As documented, mpfr_mul_2exp & mpfr_div_2exp are only kept for 8909 compatibility with MPF; mpfr_mul_2ui & mpfr_div_2ui are preferred. 8910 89112018-04-16 Vincent Lef��vre <vincent@vinc17.net> 8912 8913 [TODO] + function to reduce the precision of a variable, with a 8914 ternary value in input, i.e. taking care of double rounding. 8915 8916 [tests/tfma.c] More tests for test_underflow2. 8917 8918 [tests/tfma.c] Corrected r12603 for test_underflow2. 8919 8920 [tests/tfma.c] More tests for test_underflow2. 8921 8922 [src/fma.c] Updated easy case of underflow. 8923 8924 [tests/tfma.c] Updated a comment for test_underflow2. 8925 8926 [tests/tfma.c] In test_underflow2, also test different signs. 8927 8928 [tests] Updated svn:ignore property. 8929 8930 [doc/README.dev] "To make a release": check also with 8931 -DMPFR_GROUP_STATIC_SIZE=0 to detect memory leaks. 8932 8933 [src/fma.c] Forgot a MPFR_GROUP_CLEAR. 8934 8935 [src/fma.c] Simplified the underflow case by using UBF in the 8936 difficult cases, resolving the remaining FIXME's. 8937 89382018-04-13 Vincent Lef��vre <vincent@vinc17.net> 8939 8940 [tests/tfma.c] More tests for test_overflow3 by adding loops on j and k. 8941 8942 [tests/tfma.c] Extended test_overflow3 to reversed signs. 8943 8944 [tests/tfma.c] Do all the overflow/underflow tests in exponent ranges 8945 [-1024,1024], [MPFR_EMIN_MIN,MPFR_EMAX_MAX], and the default one. 8946 8947 [src/mpfr-sassert.h] Added a comment. 8948 89492018-04-12 Vincent Lef��vre <vincent@vinc17.net> 8950 8951 [tests/tfma.c] Forgot a cast for C++ compatibility. 8952 8953 [src/mpfr-impl.h] Reverted r12588: there should be no alignment issues 8954 with UBF, since an UBF (__mpfr_ubf_struct) is sometimes regarded as a 8955 MPFR number (__mpfr_struct) but not the opposite (or this is just back 8956 to __mpfr_ubf_struct). 8957 8958 [src/fma.c] Simplified the difficult part of the overflow case by 8959 using UBF (this also fixes corner cases in huge precision). 8960 8961 [src/mpfr-impl.h] Added a note about alignment constraints for UBF. 8962 8963 [src/fma.c] Fixed sign related bug in overflow case. 8964 [tests/tfma.c] Added test_overflow5 test for this bug. 8965 8966 [tests/tfma.c] In test_overflow4, also test different signs. 8967 8968 [src/fma.c] Correction for the FIXME from r12403 concerning r12396. 8969 The test added in tests/tfma.c r12584 no longer fails. 8970 8971 [tests/tfma.c] Added a test that fails. It corresponds to the FIXME 8972 in src/fma.c about the test on MPFR_GET_EXP (u) - MPFR_GET_EXP (z). 8973 8974 [src/fma.c] Removed a redundant test since the second condition of 8975 the && expression implies the first one. 8976 Note: This test came from the time when the precision type was unsigned, 8977 in order to make sure that the result of the subtraction was positive. 8978 89792018-04-11 Vincent Lef��vre <vincent@vinc17.net> 8980 8981 [tests/tversion.c] Output "Generic ABI code" info (MPFR_GENERIC_ABI). 8982 8983 [src/strtofr.c] English usage in a comment. 8984 89852018-04-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8986 8987 [src/strtofr.c] fixed bug in corner cases 8988 89892018-04-10 Vincent Lef��vre <vincent@vinc17.net> 8990 8991 [src/strtofr.c] Reverted r12569: this is wrong with a 32-bit ABI. 8992 8993 [src/strtofr.c] Added a FIXME. 8994 89952018-04-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8996 8997 [src/strtofr.c] added more comments 8998 8999 [src/strtofr.c] replaced dead code by an assert 9000 [tests/tstrtofr.c] fixed bug20170308 and added coverage test 9001 90022018-04-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9003 9004 [src/strtofr.c] removed dead code (and added explanation) 9005 9006 [src/strtofr.c] completed a comment 9007 90082018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9009 9010 [src/strtofr.c] added comment 9011 [tests/tstrtofr.c] improve coverage 9012 90132018-04-06 Vincent Lef��vre <vincent@vinc17.net> 9014 9015 [src/round_prec.c] Replaced an incorrect comment by an assertion. 9016 9017 [src/round_raw_generic.c] Check validity of flag. 9018 90192018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9020 9021 [NEWS] now 98.2% of test coverage 9022 90232018-04-06 Vincent Lef��vre <vincent@vinc17.net> 9024 9025 [tests/Makefile.am] Tests in lexicographic order. 9026 90272018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9028 9029 [src/round_prec.c] added comments 9030 [src/round_raw_generic.c] removed dead code 9031 [tests/tcan_round.c] improve coverage 9032 9033 renamed tround_prec.c to tprec_round.c 9034 9035 [src/round_prec.c] removed some dead code (if rnd1 = rnd2 and the case 9036 rnd2 = RNDN was already treated, we cannot have rnd1 = RNDN) 9037 90382018-04-06 Vincent Lef��vre <vincent@vinc17.net> 9039 9040 [tests/tpow.c] Fixed a test: 9041 * For this test, unsigned long and mpfr_exp_t must both have at least 9042 64 bits. 9043 * Use a hardcoded emax, otherwise the test could fail for mpfr_exp_t 9044 larger than 64 bits (one would not have an overflow as expected). 9045 9046 [src/pow.c] Fixed the code in case the size of the mpfr_exp_t type 9047 would be larger than 256 bits. This is also semantically better. 9048 9049 Moved the MAX, MIN and ABS macros from tests/mpfr-test.h to 9050 src/mpfr-impl.h (they can be useful...). 9051 9052 [tests/tpow.c] More tests for (-2)^(2^i + 1), not just with i = 256. 9053 90542018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9055 9056 [tests/tpow.c] modified a test for better coverage 9057 90582018-04-06 Vincent Lef��vre <vincent@vinc17.net> 9059 9060 [tests/tpow.c] Corrected a comment (again). 9061 9062 [tests/tpow.c] Corrected a comment. 9063 90642018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9065 9066 [src/pow.c] simplified case x=2^b and y < 0 9067 90682018-04-05 Vincent Lef��vre <vincent@vinc17.net> 9069 9070 [src/pow.c] Updated comments. 9071 9072 [src/pow.c] Reverted r12541 (which yielded a failure in tpow_all), 9073 re-indented, and added a comment concerning the failing case. 9074 90752018-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9076 9077 [src/round_prec.c] fixed a bug (to be reviewed) 9078 [tests/tcan_round.c] added coverage tests 9079 9080 [tests/ttan.c] improve coverage (and also of round_near_x) 9081 9082 [src/pow.c] fixed typo 9083 90842018-04-04 Vincent Lef��vre <vincent@vinc17.net> 9085 9086 [NEWS] Coverage is specific to x86_64 due to the various #if. 9087 9088 [src/pow.c] Corrected indentation. 9089 90902018-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9091 9092 [NEWS] coverage is now 98.1% 9093 9094 [src/pow.c] added a comment 9095 9096 [src/pow.c] removed some dead code (with comment explaining why) 9097 [tests/tpow.c] added a test 9098 9099 [src/pow.c] simplify code for prec=1 9100 [tests/tpow.c] added tests for prec=1 9101 91022018-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9103 9104 [src/mparam_h.in] added macros for Microsoft compiler 9105 91062018-04-03 Vincent Lef��vre <vincent@vinc17.net> 9107 9108 [tools/check_mparam.c] Added a copyright notice. 9109 9110 [Makefile.am] Added tools/check_mparam.c and tools/ck-mparam 9111 to EXTRA_DIST since tools/ck-mparam is now run in dist-hook. 9112 9113 [tests/Makefile.am] Do not output a useless "PASS ..." line at the end. 9114 9115 [tests/Makefile.am] Update of the "check" rule: 9116 * Output svnversion info when applicable. 9117 * Do not echo "cat tversion.log 2> /dev/null || true". 9118 9119 [Makefile.am] Added missing comments for dist-hook. 9120 9121 [Makefile.am] Run ck-mparam in dist-hook (for "make dist"). 9122 9123 [tools/ck-mparam] Commented out the old gcc-specific test since the 9124 new one is strictly more powerful. No longer depend on gcc. 9125 9126 [tools/ck-mparam] Also check the mparam.h files with check_mparam.c. 9127 9128 [tools/check_mparam.c] C89 compatibility. Return an error code 9129 (useful for scripts). 9130 9131 [tools/check_mparam.c] A pathname of the mparam.h file can now be 9132 provided with -DMPARAM='"..."' when compiling. 9133 91342018-04-03 Vincent Lef��vre <vincent@vinc17.net> 9135 9136 Moved misc/check_mparam.c into trunk/tools: it will be useful for 9137 "make dist" in order to make sure that all mparam.h files are OK 9138 before a release. 9139 9140 [[Split portion of a mixed commit.]] 9141 9142 [Added during the Subversion to Git conversion] 9143 The "misc" directory referenced here was in the same Subversion 9144 repository, but outside the trunk/branches/tags structure. Thus 9145 it has not been kept in the same Git repository. 9146 91472018-04-03 Vincent Lef��vre <vincent@vinc17.net> 9148 9149 [src/mulders.c] Re-enable the change done in r12382. This is allowed 9150 after the fix in generic/mparam.h r12525 (this file was hand written 9151 and did not satisfy the current constraints). 9152 91532018-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9154 9155 [generic/mparam.h] ensure divhigh_ktab[n] is 0 or < n-1, as now required 9156 since commit r12382 9157 91582018-04-02 Vincent Lef��vre <vincent@vinc17.net> 9159 9160 [src/mulders.c] Code style / indentation. Added a comment. 9161 9162 [src/mulders.c] Reverting r12382 because divhigh_ktab[n] == n can 9163 happen. Note: this probably lacks documentation; moreover, testing 9164 that these tables satisfy the requirements would be useful. 9165 91662018-03-31 Vincent Lef��vre <vincent@vinc17.net> 9167 9168 [src/inp_str.c] Handle size_t overflow, empty string (after skipping 9169 spaces), and I/O errors (as opposed to end-of-file). 9170 91712018-03-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9172 9173 [src/inp_str.c] disallow stream=NULL (cf r12520) 9174 9175 [src/out_str.c] the behavior on a null stream is unspecified (cf r12519) 9176 91772018-03-30 Vincent Lef��vre <vincent@vinc17.net> 9178 9179 Reverted r12516: the behavior on a null stream is unspecified. 9180 91812018-03-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9182 9183 [tests/tpow.c] restrict a test to 64-bit exponent 9184 91852018-03-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9186 9187 [src/pow.c] added comment 9188 [tests/tpow.c] improve coverage 9189 9190 [tests/tout_str.c] improve coverage (I don't know how to avoid printing to 9191 stdout, but since "make check" no longer shows the test 9192 outputs, this should be fine). However I don't know how 9193 to do the same for mpfr_inp_str... 9194 9195 [tests/tconst_pi.c] forgotten line in commit 12512 9196 9197 [tests/tgrandom.c] improve coverage 9198 9199 [src/grandom.c] improve coverage, and solved a FIXME 9200 9201 [tests/tconst_pi.c] improve coverage of mpfr_free_cache2 9202 92032018-03-29 Vincent Lef��vre <vincent@vinc17.net> 9204 9205 [src/fpif.c] Reverted another incorrect change done in r12509. 9206 9207 [src/fpif.c] Reverted an incorrect change done in r12509. 9208 92092018-03-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9210 9211 [src/fpif.c] simplify code and improve coverage to 100% 9212 9213 [src/fpif.c] removed dead code and simplify code 9214 9215 [tests/tfpif.c] improve coverage 9216 9217 [tests/tfpif.c] improve coverage 9218 92192018-03-29 Vincent Lef��vre <vincent@vinc17.net> 9220 9221 [tests/tfpif.c] Really fixed the badData test, completing r12504. 9222 9223 [tests/tfpif.c] Fixed a test: for the huge-precision badData case, 9224 make sure that the data are valid so that we really check that the 9225 precision does not fit (and not a read error). 9226 9227 [tests/tfpif.c] Correction just in case MPFR_PREC_BITS > 64. 9228 9229 Removed trailing whitespace. 9230 92312018-03-28 Vincent Lef��vre <vincent@vinc17.net> 9232 9233 [src/fpif.c] 9234 * Replaced an incorrect comment from r12500 by a correct assertion. 9235 * Fixed a theoretical bug coming from this incorrect comment. 9236 * Added a MPFR_ASSERTN assertion to double-check correctness. 9237 * Added a comment explaining a ... >= 0x80 test. 9238 92392018-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9240 9241 [src/fpif.c] removed dead code 9242 [tests/tfpif.c] improve coverage 9243 9244 [src/gmp_op.c] fixed bug in mpfr_cmp_q for den(q)=0 9245 [tests/tgmpop.c] improve coverage 9246 92472018-03-24 Vincent Lef��vre <vincent@vinc17.net> 9248 9249 [doc/mpfr.texi] Typographic correction (texinfo rule). 9250 9251 [tools/mpfrlint] For codespell, skip mpfr.t2p (directory created 9252 in doc by "make pdf"). 9253 9254 [src/total_order.c] Simplified the code (shorter code). 9255 9256 [tests/ttotal_order.c] Rewrote the tests to test every combination 9257 of classes of values. 9258 9259 [tests] Renamed total_order.c to ttotal_order.c. 9260 92612018-03-23 Vincent Lef��vre <vincent@vinc17.net> 9262 9263 [src/total_order.c] Suggest to test the sign bit first. 9264 9265 [doc/mpfr.texi] Added mpfr_total_order in "Added Functions". 9266 9267 [doc/mpfr.texi] Improved mpfr_total_order description. 9268 92692018-03-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9270 9271 [TODO] totalOrder is done 9272 9273 added mpfr_total_order 9274 92752018-03-23 Vincent Lef��vre <vincent@vinc17.net> 9276 9277 [tests] Removed some useless #include's, in particular all the 9278 unconditional #include <math.h> occurrences. 9279 Note: There is an incompatibility between glibc 2.27 and the math.h 9280 provided by ICC 15 (at least), and this solves a compilation failure 9281 in the build of the tests. 9282 Moreover, <math.h> is not required by freestanding implementations, 9283 so that it may be better to avoid it if possible. 9284 92852018-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9286 9287 added 2 suggestions from Patrick Pelissier 9288 92892018-03-20 Vincent Lef��vre <vincent@vinc17.net> 9290 9291 [tools/mpfrlint] For codespell, skip all the algorithms.* files. 9292 92932018-03-15 Vincent Lef��vre <vincent@vinc17.net> 9294 9295 [tools/mpfrlint] Added a comment for the mul/sqr test. 9296 9297 [tools/mpfrlint] In the mul/sqr test (r12482), exclude mul.c and sqr.c. 9298 92992018-03-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9300 9301 changed mpfr_mul (a, b, b, ...) into mpfr_sqr (a, b, ...) whenever possible 9302 93032018-03-14 Vincent Lef��vre <vincent@vinc17.net> 9304 9305 [tools/mpfrlint] Detect mpfr_mul with identical 2nd and 3rd arguments, 9306 which can be replaced by mpfr_sqr (suggestion by PZ). 9307 93082018-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9309 9310 [src/const_pi.c] added a reference, and replace mpfr_mul by mpfr_sqr 9311 93122018-03-10 Vincent Lef��vre <vincent@vinc17.net> 9313 9314 [tests/tget_str.c] Fixed failure from r12473 when mpfr_prec_t is an int 9315 (missing casts for sprintf / printf). 9316 93172018-03-09 Vincent Lef��vre <vincent@vinc17.net> 9318 9319 [tests/tget_str.c] C++ compatibility. 9320 9321 [tests/tget_str.c] Use tests_allocate / tests_free. 9322 9323 Fixed spelling mistakes found by codespell 1.12.0. 9324 93252018-03-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9326 9327 [tests/tget_str.c] added tests for corner cases of mpfr_set_str o mpfr_get_str 9328 93292018-03-08 Vincent Lef��vre <vincent@vinc17.net> 9330 9331 [src/Makefile.am] In EXTRA_DIST, put the mparam.h in alphabetic order. 9332 9333 [src/Makefile.am] Updated EXTRA_DIST for amd due to r12387. 9334 9335 Fixed spelling mistakes found by codespell 1.11.0. 9336 9337 [codespell.ignore] Also ignore "cas". 9338 9339 Added codespell.ignore file with simple words to ignore with codespell 9340 ("iff" as used in math; "nd" as the n comes from \n in printf, but nd 9341 could also be a variable name; "te" as used as a variable name). 9342 Updated tools/mpfrlint to use this file with codespell. 9343 93442018-03-05 Vincent Lef��vre <vincent@vinc17.net> 9345 9346 [doc/mpfr.texi] Updated the month. 9347 93482018-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9349 9350 [tests/tget_str.c] added tests for mpfr_get_str_ndigits 9351 [src/get_str.c] fixed bugs in mpfr_get_str_ndigits for b=2^k (value was 1 too 9352 large) and very large p (value was 1 too small) 9353 93542018-03-05 Vincent Lef��vre <vincent@vinc17.net> 9355 9356 [doc/mpfr.texi] Typographic corrections for mpfr_subnormalize. 9357 9358 [NEWS] Added mpfr_get_str_ndigits. 9359 [doc/mpfr.texi] Added mpfr_get_str_ndigits in "Added Functions". 9360 9361 [doc/mpfr.texi] Minor corrections concerning mpfr_get_str. 9362 9363 [src/mpfr.h] Added a note about a mpfr_prec_t limitation. 9364 9365 [src/get_str.c] Simplified mpfr_get_str_ndigits (changes from r12455): 9366 * MPFR_PREC_BITS is used to exactly do what is wanted. 9367 * Removed dead code as currently, mpfr_prec_t <= unsigned long. 9368 Note: if in the future we support mpfr_prec_t > unsigned long 9369 (e.g. to have a 64-bit precision on MS Windows), the generic code 9370 could be retrieved back from r12455. 9371 93722018-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9373 9374 [src/get_str.c,src/mpfr.h] mpfr_get_str_digits -> mpfr_get_str_ndigits 9375 [doc/mpfr.texi] updated documentation of mpfr_get_str 9376 9377 [src/get_str.c] fixed FIXME 9378 93792018-03-05 Vincent Lef��vre <vincent@vinc17.net> 9380 9381 [src/get_str.c] Portability corrections in mpfr_get_str_digits. 9382 93832018-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9384 9385 [src/get_str.c] new function mpfr_get_str_digits 9386 [doc/mpfr.texi] added documentation for mpfr_get_str_digits 9387 93882018-03-03 Vincent Lef��vre <vincent@vinc17.net> 9389 9390 [tests/tfma.c] Fixed bug from r12407 with 32-bit long and 64-bit limbs 9391 (e.g. as under 64-bit MS Windows). 9392 93932018-02-26 Vincent Lef��vre <vincent@vinc17.net> 9394 9395 [acinclude.m4] Correction for test of the fallback to __float128: 9396 in the test program, define the variable outside main() in order to 9397 avoid an error when the -Werror=unused-variable GCC option is used. 9398 9399 [src/get_sj.c] Avoid an unused variable. 9400 9401 [doc/README.dev] Updated description of MPFR_WANT_FLOAT128. 9402 9403 [doc/README.dev] Recommend AC_LINK_IFELSE rather than AC_COMPILE_IFELSE 9404 (see r12448 as an example of an issue with AC_COMPILE_IFELSE). 9405 9406 [acinclude.m4] Fixed a test, which could define MPFR_INTMAX_WITHIN_LIMB 9407 even when not true (MPFR_STAT_STATIC_ASSERT() was just regarded as a 9408 function call since the macro was not defined, thus did not yield an 9409 error). 9410 9411 [tests/tversion.c] Output the sizes of long and intmax_t. 9412 9413 [acinclude.m4] Fixed incorrect test from r12426. 9414 9415 Removed trailing spaces. 9416 9417 Updated support for binary128: 9418 * __float128 was changed to _Float128 (ISO/IEC TS 18661) in r12391; 9419 also changed the suffix of the constants from "q" to "f128". 9420 * Use __float128 with the "q" suffix as a fallback in order to avoid 9421 regressions with GCC 6- and with C++ mode (g++). 9422 As documented in the GCC manual, this is entirely compatible on most 9423 platforms where both are supported: _Float128 and __float128 are the 9424 same type, and it could be checked that the following prototypes are 9425 equivalent (as expected): 9426 _Float128 f (__float128) 9427 __float128 f (_Float128) 9428 The only potential issues would be on hppa and IA-64 HP-UX, where 9429 __float128 is an alias for "long double" instead of _Float128, in 9430 case the ABI would be different (I have no information about this) 9431 and both would be mixed up with software using the MPFR conversion 9432 functions for binary128 via __float128 or "long double". The worst 9433 thing that could happen is a link error. If the link is accepted, 9434 everything should be fine as the representation doesn't change. 9435 9436 [src/set_float128.c] Removed a useless #include and corrected a comment. 9437 94382018-02-25 Vincent Lef��vre <vincent@vinc17.net> 9439 9440 [src/get_z_exp.c] Portability. 9441 9442 [tests/tdiv_ui.c] Avoid a compilation error with 9443 gcc -std=c90 -pedantic -Werror in 32-bit ABI. 9444 9445 [tests/tget_str.c] Fixed a return type. 9446 94472018-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9448 9449 [src/get_z_exp.c] new try for r12437. If that still does not work, we should 9450 define macros BITS_PER_EXP_T, BITS_PER_PREC_T, ... 9451 94522018-02-23 Vincent Lef��vre <vincent@vinc17.net> 9453 9454 [src/get_z_exp.c] Reverted r12437: the size of mpfr_exp_t is not 9455 always related to the size of mp_limb_t. 9456 94572018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9458 9459 [src/get_z_exp.c] removed dead code on 64-bit computer 9460 9461 [src/get_str.c] improved case m < g 9462 [tests/tget_str.c] improve coverage 9463 94642018-02-23 Vincent Lef��vre <vincent@vinc17.net> 9465 9466 [acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only 9467 2 cases: TRUE and FALSE. 9468 94692018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9470 9471 [tests/tget_str.c] fixed not enough allocation issue 9472 94732018-02-23 Vincent Lef��vre <vincent@vinc17.net> 9474 9475 [acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only 9476 2 cases: TRUE and FALSE. 9477 94782018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9479 9480 [doc/mpfr.texi] m=1 is now valid in get_str 9481 [src/get_str.c] allow m=1 for b=2^k 9482 [tests/tget_str.c] added test for m=1 and b=2 9483 9484 [src/get_str.c] added a comment 9485 [tests/tget_str.c] improved coverage (finding this example was quite hard!) 9486 94872018-02-23 Vincent Lef��vre <vincent@vinc17.net> 9488 9489 [src/get_sj.c] Removed two assertions, including an incorrect one. 9490 Added an assertion. 9491 9492 [acinclude.m4] Correction: if we cannot test, the portable code must be 9493 selected. 9494 94952018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9496 9497 [configure.ac,acinclude.m4] added new macro MPFR_INTMAX_WITHIN_LIMB 9498 [src/get_sj.c] optimized the code when MPFR_INTMAX_WITHIN_LIMB=1 9499 95002018-02-23 Vincent Lef��vre <vincent@vinc17.net> 9501 9502 [src/mpfr-impl.h] Removed MPFR_LIMBS_PER_LONG_DOUBLE as it was not 9503 properly specified in the general case and was actually used only 9504 in src/set_ld.c with HAVE_LDOUBLE_IEEE_EXT_LITTLE. 9505 [src/set_ld.c] Simplified code. Moreover, the hypothetical case 9506 GMP_NUMB_BITS == 16 will trigger a compilation error instead of 9507 yielding incorrect code. 9508 9509 [tests/tbuildopt.c] 9510 * Added missing const. 9511 * Use the variable s to avoid a warning and also to detect potential 9512 undefined behavior with debugging tools if s is not a string. 9513 95142018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9515 9516 [src/get_sj.c] fixed typo 9517 9518 [src/get_sj.c] added comments and simplified the code 9519 95202018-02-23 Vincent Lef��vre <vincent@vinc17.net> 9521 9522 [src/mpfr-impl.h] Typo in a comment. 9523 95242018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9525 9526 [tests/tget_q.c] improved coverage 9527 95282018-02-23 Vincent Lef��vre <vincent@vinc17.net> 9529 9530 [src/get_d64.c] Parsing in the portable version of string_to_Decimal64: 9531 similar changes as in r12416 for the _MPFR_IEEE_FLOATS version. 9532 95332018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9534 9535 [src/get_ld.c] removed dead code (as in r12413 for mpfr_get_d) 9536 9537 [src/get_flt.c] optimized code when MPFR_LIMBS_PER_FLT=1 9538 [tests/tget_flt.c] improved coverage 9539 9540 [src/get_d64.c] simplified code, and removed dead code 9541 [src/mpfr-impl.h] added comment 9542 [tests/tget_set_d64.c] improve coverage 9543 95442018-02-23 Vincent Lef��vre <vincent@vinc17.net> 9545 9546 [src/set_q.c] Simplified code. 9547 95482018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9549 9550 [src/get_d.c] removed dead code 9551 9552 [src/get_d.c] optimized for common case MPFR_LIMBS_PER_DOUBLE=1 9553 9554 [tests/tset_z_exp.c] improved coverage 9555 9556 [src/set_q.c] removed dead code on 64-bit processor 9557 9558 [src/set_ld.c] improve code when HAVE_LDOUBLE_IEEE_EXT_LITTLE is defined 9559 95602018-02-22 Vincent Lef��vre <vincent@vinc17.net> 9561 9562 [src/set_ld.c] Reverted r12408: MPFR_LIMBS_PER_LONG_DOUBLE cannot be 9563 used with the preprocessor due to the use of "sizeof". 9564 95652018-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9566 9567 [src/set_ld.c] improve code for MPFR_LIMBS_PER_LONG_DOUBLE=1 9568 9569 [tests/tfma.c] improved coverage of mpfr_set_1_2 9570 9571 [tests/tbuildopt.c] improve coverage 9572 95732018-02-22 Vincent Lef��vre <vincent@vinc17.net> 9574 9575 [tests/tfma.c] Corrected a comment. 9576 9577 [tests/tfma.c] Joined test_overflow3 and test_overflow4 by using a loop. 9578 Improved the corresponding test and error message. Also run this test 9579 with the default exponent range. 9580 9581 [src/fma.c] Added FIXME for r12396, which still seems incorrect. 9582 9583 [src/mpfr-impl.h] Typo in a comment. 9584 9585 [NEWS] Update about the change of __float128 to _Float128: clarification 9586 that it is from ISO/IEC TS 18661 ("standard" was too vague); added FIXME 9587 on a possible fallback to __float128 and ABI considerations. 9588 9589 [configure.ac] For --enable-float128, this is still autodetect, e.g.: 9590 checking if compiler knows _Float128 with C99 constants... no 9591 Added a FIXME: a fallback to __float128 is necessary to avoid 9592 regressions. 9593 95942018-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9595 9596 [src/sqr.c] added comments 9597 [tests/tsqr.c] improve coverage of sqr.c to 100% 9598 9599 [src/sqr.c] fixed a bug in mpfr_sqr_1n in a rare case near underflow, 9600 only use mpfr_sqr_1, mpfr_sqr_1n, mpfr_sqr_2, mpfr_sqr_3 9601 when all numbers have same precision (like for mpfr_mul), 9602 and added comments 9603 [tests/tsqr.c] added tests, including non-regression for above bug 9604 9605 [src/fma.c] added comments and a FIXME 9606 9607 [src/fma.c] fixed last failure 9608 [tests/tfma.c] removed debug stuff 9609 9610 [tests/tfma.c] added new failing test 9611 9612 [src/fma.c] fix failure from last test 9613 9614 [src/fma.c] added comments 9615 [tests/tfma.c] added a test (currently failing) 9616 9617 [mips/mparam.h] updated 9618 9619 changed __float128 (gcc specific) into the standard type _Float128 9620 9621 [arm/mparam.h] updated 9622 9623 [x86/mparam.h] updated 9624 9625 [src/mparam_h.in] amd/k8/mparam.h -> amd/mparam.h 9626 9627 [amd/mparam.h] updated 9628 9629 [sparc64/mparam.h] updated 9630 9631 [x86_64/core2/mparam.h] updated 9632 9633 [powerpc64/mparam.h] updated 9634 9635 [x86_64/mparam.h] updated 9636 9637 [src/mulders.c] removed dead code 9638 96392018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9640 9641 [tune/tuneup.c] ensure k < n in mpfr_divhigh_n[] 9642 9643 [src/mparam_h.in] added __tune_znver1__ for AMD64 (e.g., gcc67.fsffrance.org) 9644 9645 [src/mips/mparam.h] updated on gcc22 9646 9647 [NEWS] added item 9648 9649 removed tuning for x86/core2, updated tuning for generic x86 9650 9651 [src/sparc64/mparam.h] updated tuning parameters for sparc64 9652 96532018-02-21 Vincent Lef��vre <vincent@vinc17.net> 9654 9655 [src/mparam_h.in] Use the generic parameters for x86_64 with Clang. 9656 96572018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9658 9659 added tuning for ARM 9660 96612018-02-21 Vincent Lef��vre <vincent@vinc17.net> 9662 9663 Reverted r12368: sparc64 tuning should be updated on gcc202. 9664 96652018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9666 9667 [src/mparam_h.in] generic case for all remaining i386's 9668 9669 [src/mparam_h.in] put back __tune_k8__ 9670 9671 [src/mparam_h.in] check __amd64__ before generic __x86_64__ 9672 9673 removed tuning for hppa (gcc61 is offline) 9674 9675 removed tuning parameters for sparc64 (gcc64, gcc200 and gcc201 are offline) 9676 9677 [tune/tuneup.c] for mpfr_div_threshold, start from 3 limbs again 9678 9679 removed tuning for powerpc32 (no such machine available any more) 9680 9681 [src/powerpc64/mparam.h] updated tuning parameters for powerpc64 9682 9683 [src/amd/k8/mparam.h] fixed MPFR_DIV_THRESHOLD 9684 9685 updated tuning parameters for amd/k8 and x86/core2 9686 96872018-02-21 Vincent Lef��vre <vincent@vinc17.net> 9688 9689 Reverted r12359 and added a comment: tuning for x86 is used when 9690 building GMP/MPFR with a 32-bit ABI (ABI=32 / -m32). 9691 96922018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9693 9694 [tuneup.c] start from 4 limbs for mpfr_div_threshold 9695 9696 removed tuning for ia64 (gcc60.fsffrance.org is now offline) 9697 9698 removed tuning for x86 (no more access to such machine) 9699 9700 [tune/tuneup.c] make tune_simple_func more robust for small precisions 9701 9702 [src/x86_64/mparam.h] fixed MPFR_DIV_THRESHOLD 9703 9704 [x86_64/core2/mparam.h] updated on gcc14 9705 97062018-02-21 Vincent Lef��vre <vincent@vinc17.net> 9707 9708 [acinclude.m4] In the "long double" format recognition, added 9709 size information for IEEE extended (not used by MPFR, but this 9710 may be useful information for the user). 9711 97122018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9713 9714 removed tuning parameters for amd/athlon (we have no access to such machine 9715 any more) 9716 9717 removed tuning for pentium4 9718 9719 removed tuning for corei5 (was not used) 9720 9721 [src/x86_64/mparam.h] added tuning for generic x86_64 9722 [tune/tuneup.c] mpfr_divhigh now wants n >= 2 9723 9724 removed thresholds for arm since gcc57 is no longer available, thus we cannot 9725 tune on an ARM machine 9726 97272018-02-21 Vincent Lef��vre <vincent@vinc17.net> 9728 9729 [src/mulders.c] Removed unused variable dinv. 9730 97312018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9732 9733 [src/div.c] added comment 9734 [src/mpfr-gmp.h] moved definition of MUL_FFT_THRESHOLD 9735 [src/mulders.c] removed unused code, and force n>=2 in mpfr_divhigh_n_basecase 9736 [tests/tmul.c] improve coverage 9737 [tune/tuneup.c] forbid k = n-1 in divhigh_ktab[] 9738 9739 [tests/tdiv.c] improve coverage, now 100% for div.c 9740 9741 [src/ai.c] revert part of r12312 9742 [tests/tai.c] added coverage test provided by Sylvain Chevillard 9743 9744 [src/sub1.c] revert r12317 since it did not consider UBFs. For the record, 9745 tfmma was failing with GMP_CHECK_RANDOMIZE=1519138438006416. 9746 9747 [src/div.c] get rid of mpfr_div_with_mpz_tdiv_q 9748 97492018-02-20 Vincent Lef��vre <vincent@vinc17.net> 9750 9751 [src/gmp_op.c] Fixed a bug in mpfr_cmp_q on NaN rational: the NaN flag 9752 was set by mpfr_set_q, but the flags were not restored just after. 9753 9754 [src/gmp_op.c] Reverted incorrect change in r12337 for mpfr_cmp_q. 9755 Explanation in comment. If the code was not tested, it should be by 9756 using mpq_set_num and mpq_set_den to construct such rationals. 9757 97582018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9759 9760 [tests/tdiv.c] improve coverage 9761 9762 [tests/tdiv.c] improve coverage of mpfr_div_2 9763 97642018-02-20 Vincent Lef��vre <vincent@vinc17.net> 9765 9766 [src/{add,sub}1sp.c] Updated/added comments for MPFR_WANT_ASSERT >= 2. 9767 97682018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9769 9770 [src/div.c] removed dead code 9771 9772 [src/gmp_op.c] removed dead code 9773 [tests/tgmpop.c] improve coverage of gmp_op.c to 100% 9774 97752018-02-20 Vincent Lef��vre <vincent@vinc17.net> 9776 9777 [acinclude.m4] Added missing ";;" before "esac" for code robustness. 9778 9779 [acinclude.m4] Added a FIXME. Added a ";;" for safety. 9780 97812018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9782 9783 [acinclude.m4] added comment, and define MPFR_LONG_WITHIN_LIMB when cannot test 9784 97852018-02-20 Vincent Lef��vre <vincent@vinc17.net> 9786 9787 [src/random_deviate.c] Improved highest_bit_idx in the case where 9788 MPFR_LONG_WITHIN_LIMB is not defined (tested with GCC). 9789 97902018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9791 9792 [src/mul.c] resolved FIXME and removed dead code 9793 9794 [tests/tmul.c] improve coverage 9795 9796 [src/random_deviate.c] highest_bit_idx() assumes x > 0 9797 9798 [src/random_deviate.c] fixed comment 9799 9800 [src/random_deviate.c] redo change r12315 using MPFR_LONG_WITHIN_LIMB 9801 9802 [src/sub1.c] added 2 FIXME 9803 98042018-02-19 Vincent Lef��vre <vincent@vinc17.net> 9805 9806 [tests/tai.c] Renamed test_near_zero to test_near_m2e, since this is 9807 "exercise mpfr_ai near m*2^e", as documented. Corrected comments. 9808 9809 [tests/tai.c] For test_near_zero(), check that the NaN flag was not set 9810 (useful since such tests don't really check that the result is not NaN). 9811 98122018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9813 9814 [tests/tmul.c] improve coverage 9815 9816 [tests/tmul.c] improve coverage 9817 98182018-02-19 Vincent Lef��vre <vincent@vinc17.net> 9819 9820 [src/random_deviate.c] Reverted incorrect change r12315: MPFR_LIMB_MAX 9821 cannot be used with the preprocessor due to the cast. The test should 9822 be done in "pure" C and the middle-end of the compiler should optimize. 9823 9824 [src/sub1.c] Removed an unused label. 9825 9826 [tests/tzeta.c] Check that the NaN flag was not set in some tests 9827 that do not involve NaN (useful since such tests don't really check 9828 that the result is not NaN). 9829 98302018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9831 9832 [src/sub1.c] removed dead code, now coverage should be 100% 9833 98342018-02-19 Vincent Lef��vre <vincent@vinc17.net> 9835 9836 [src/ai.c] Avoid more integer overflows. 9837 98382018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9839 9840 [src/sub1.c] removed dead code 9841 [tests/tsub.c] added coverage test 9842 98432018-02-19 Vincent Lef��vre <vincent@vinc17.net> 9844 9845 [src/ai.c] Detect some potential integer overflows. 9846 98472018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9848 9849 [src/random_deviate.c] don't compile alternate code if not needed 9850 98512018-02-19 Vincent Lef��vre <vincent@vinc17.net> 9852 9853 [src/ai.c] Coding style. Corrected comments. 9854 98552018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9856 9857 [tests/tzeta.c] improve coverage (and also uceil_exp2.c) 9858 9859 [src/ai.c] removed dead code, and improved coverage 9860 [tests/tai.c] exercise mpfr_ai near (negative) zeroes 9861 9862 [src/ai.c] fixed recomputation of wprec (to be confirmed) 9863 9864 [src/ai.c] removed dead code 9865 98662018-02-19 Vincent Lef��vre <vincent@vinc17.net> 9867 9868 [src/sub1sp.c] Fixed indentation. 9869 9870 Removed trailing whitespace. 9871 9872 [src/sqrt.c] Coding style. 9873 9874 [src/expm1.c] Avoid a potential integer overflow in a type conversion 9875 for 32-bit mpfr_exp_t and 64-bit long (e.g. with -D_MPFR_PREC_FORMAT=2 9876 on a 64-bit Linux machine). 9877 9878 [src/div_2ui.c] Reverted incorrect change in r12272 and added comments 9879 and assertions. 9880 [tests/tmul_2exp.c] Improved a test to trigger the bug in r12272 also 9881 when mpfr_exp_t > 32 bits (e.g. on 64-bit Linux machines). 9882 9883 [tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for positive). 9884 9885 [tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for negative). 9886 9887 [tests] Fixed type errors with -D_MPFR_PREC_FORMAT=2 in CFLAGS and the 9888 --enable-assert=full configure option (signaled by GCC's -Wformat). 9889 9890 [src/mul.c] Fixed type error with -D_MPFR_PREC_FORMAT=2 in CFLAGS and 9891 the --enable-assert=full configure option (signaled by GCC's -Wformat). 9892 9893 [doc/README.dev] Removed the mention of MPFR_EXT_EMIN and MPFR_EXT_EMAX, 9894 replacing them by MPFR_EMIN_MIN and MPFR_EMAX_MAX, as done in r12298. 9895 Note: These old macros had been introduced in r7863 so that one could 9896 choose different values for the extended exponent range for debugging 9897 purpose, but they were not used in practice and were adding complexity 9898 (and potential inconsistency) for no really good reason. 9899 99002018-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9901 9902 [src/agm.c] added comment about line of code impossible to cover 9903 9904 [src/agm.c,src/div.c,src/mpfr-impl.h] replaced MPFR_EXT_EMIN by MPFR_EMIN_MIN, 9905 and MPFR_EXT_EMAX by MPFR_EMAX_MAX 9906 9907 [src/sqrt.c] removed dead code 9908 [tests/tsqrt.c] improve coverage of mpfr_sqrt, now at 100% 9909 9910 [tests/tsqrt.c] improve coverage 9911 9912 [tests/tsqrt.c] improve coverage 9913 99142018-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9915 9916 [src/sqrt.c] removed dead code 9917 9918 [tests/tsqrt.c] improve coverage 9919 9920 [tests/tsqrt.c] improved coverage 9921 [src/sqrt.c] added comments 9922 99232018-02-17 Vincent Lef��vre <vincent@vinc17.net> 9924 9925 [src/expm1.c] Added a FIXME comment. 9926 99272018-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9928 9929 [tests/tsqrt.c] improve coverage 9930 9931 [src/sqrt.c] removed dead code 9932 99332018-02-17 Vincent Lef��vre <vincent@vinc17.net> 9934 9935 [tests/tsub.c] Improved a comment. 9936 9937 [tests/tsub.c] Check reuse of arguments for all mpfr_sub tests, when 9938 possible. 9939 99402018-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9941 9942 [src/sub1sp.c] fixed bug in mpfr_sub1sp1n (corner case when a=c) 9943 [tests/tsub1sp.c] added non-regression test 9944 9945 [src/sub1sp.c] fixed case 2e 9946 99472018-02-17 Vincent Lef��vre <vincent@vinc17.net> 9948 9949 [tests/tsub.c] Updated bug20180217 to trigger the bug: one needs to 9950 reuse the smallest input variable as the output variable. 9951 9952 [tests/tsub.c] Added a test. 9953 9954 [src/expm1.c] Updated a comment. 9955 9956 [src/expm1.c] Fixed an integer overflow from r12276. 9957 9958 [src/expm1.c] Added a log message. 9959 99602018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9961 9962 [tests/tfmma.c] added coverage test 9963 9964 [tests/tfmma.c] improve coverage of add.c (ubf case) 9965 99662018-02-16 Vincent Lef��vre <vincent@vinc17.net> 9967 9968 [src/expm1.c] It seems that code removed in r12273 wasn't necessarily 9969 dead code with mpfr_exp_t > long (-D_MPFR_EXP_FORMAT=4 needed) because 9970 for MPFR_SMALL_INPUT_AFTER_SAVE_EXPO, err would be limited to -LONG_MAX 9971 and precisions larger than LONG_MAX could be problems. The -LONG_MAX 9972 bound from r4127 was arbitrary and only used to simplify the code due 9973 to the fact that mpfr_cmp_si compares to a "long" argument. But now we 9974 have the internal mpfr_get_exp_t function, allowing us to avoid this 9975 arbitrary bound (fixing the code and making it more efficient for these 9976 extreme cases) and simplify the code even more. 9977 99782018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9979 9980 [mbench] added new option to usage 9981 9982 [mbench] added option -d to fix the exponent difference between operands 9983 (useful for mpfr_add and mpfr_sub, for example use -d0 for operands 9984 with same exponent, -d1 for operands differing by 1, ...) 9985 9986 [src/expm1.c] improve coverage (by removing dead code) 9987 99882018-02-16 Vincent Lef��vre <vincent@vinc17.net> 9989 9990 [src/div_2ui.c] No need for mpfr_uexp_t, due to the constraints on 9991 the valid exponents. 9992 9993 [doc/README.dev] Update about mpfr_exp_t. 9994 9995 [src/mul_2ui.c] Simplified mpfr_mul_2ui (like mpfr_div_2ui). 9996 9997 [src/div_2ui.c] Simplified justification. 9998 9999 [src/div_2ui.c] Simplified code as suggested by PZ; added justification. 10000 100012018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10002 10003 GNU style: https://www.gnu.org/prep/standards/standards.html#Formatting 10004 10005 [src/div_2ui.c] added comment 10006 [tests/tmul_2exp.c] added coverage test 10007 100082018-02-16 Vincent Lef��vre <vincent@vinc17.net> 10009 10010 [src/div_2ui.c] Replaced FIXME by an explanation. 10011 100122018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10013 10014 [src/div_2ui.c] added FIXME 10015 10016 [src/cmp_ld.c] simplified code (and avoid useless test when long double is not 10017 double-double) 10018 10019 [tests/tsub1sp.c] improve coverage 10020 10021 [tests/tadd1sp.c] improve coverage of add1sp 10022 10023 [src/sub1sp.c] fixed bug20180216 10024 10025 [tests/tadd1sp.c] added coverage test 10026 100272018-02-16 Vincent Lef��vre <vincent@vinc17.net> 10028 10029 [tests/tsub.c] More tests in bug20180216. 10030 10031 [tests/tsub.c] Added bug20180216 test currently failing (corresponding 10032 to the failure mentioned in r12253, r12254 and r12255, but reproducible 10033 with a simple "./configure"). 10034 10035 [src/exp_2.c] Note that the internal behavior depends on whether 10036 MPFR_LONG_WITHIN_LIMB is defined or not (see also r12253). This 10037 should not matter, possibly except in case of bug, like currently. 10038 10039 [acinclude.m4] Updated FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG. 10040 10041 [acinclude.m4] Added a FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG. 10042 10043 [src/sub1sp.c] Squeezed useless double-space. 10044 100452018-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10046 10047 [src/sub1sp.c] fixed bug20180215() 10048 100492018-02-15 Vincent Lef��vre <vincent@vinc17.net> 10050 10051 [tests/tsub.c] Updated comment for bug20180215. 10052 10053 [src/sub1sp.c] Use "else" for symmetry with above code. 10054 10055 [tests/tsub.c] Added a comment for bug20180215 (bug in the case 10056 2 <= d < p in generic code mpfr_sub1sp() introduced in r12242). 10057 10058 [tests/tsub.c] Added bug20180215 test currently failing, found from a 10059 failure using -DMPFR_GENERIC_ABI in CFLAGS and the --enable-assert=full 10060 configure option; but the test had to be extended so that it also fails 10061 with a simple "configure", i.e. without -DMPFR_GENERIC_ABI in CFLAGS 10062 and without the --enable-assert=full configure option. 10063 10064 Removed trailing whitespace. 10065 100662018-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10067 10068 [src/sub1sp.c] review of case 2 <= d < p in generic code mpfr_sub1sp() 10069 10070 [src/div_ui.c] GNU style 10071 [src/sub1sp.c] reviewed the code for d>=p in mpfr_sub1sp() 10072 100732018-02-14 Vincent Lef��vre <vincent@vinc17.net> 10074 10075 [tools/mpfrlint] Much improved the check of the use of GMP internals. 10076 100772018-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10078 10079 [src/sub1sp.c] fixed a FIXME 10080 10081 [src/mpfr-gmp.h] define prototype of __gmpn_rsblsh1_n 10082 [src/sub1sp.c] changed names of variables to something more readable 10083 10084 [configure.ac] detect mpn_rsblsh1_n instead of mpn_rsblsh_n 10085 [src/sub1sp.c] use mpn_rsblsh1_n instead of mpn_rsblsh_n with k=1 10086 100872018-02-14 Vincent Lef��vre <vincent@vinc17.net> 10088 10089 [src/sub1sp.c] Added 2 FIXME's. 10090 10091 [src/sub1sp.c] In mpfr_sub1sp, initialize k only once. This slightly 10092 simplifies the code and avoids a -Wmaybe-uninitialized warning from 10093 GCC. The only failure on a 64-bit Linux machine is tsub1sp, due to 10094 an assertion failure in mpfr_sub1sp, as before this change. 10095 10096 [src/sub1sp.c] Avoid the swapping of the exponents when they are equal. 10097 100982018-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10099 10100 [src/sub1sp.c] review of case d=1 in generic code 10101 10102 [src/add1sp.c] no need of MPFR_TMP_MARK any more 10103 10104 [src/sub1sp.c] end of review of case d=0 in generic code 10105 10106 [src/sub1sp.c] work in progress 10107 101082018-02-13 Vincent Lef��vre <vincent@vinc17.net> 10109 10110 [src/add1sp.c] Moved a MPFR_ASSERTD to the right place. 10111 101122018-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10113 10114 [src/sub1sp.c] re-enable __gmpn_rsblsh_n (with WANT_GMP_INTERNALS) 10115 10116 [src/sub1sp.c] small improvement 10117 10118 [tools/cfarm.sh] updated for 4.0.1-rc2 10119 10120 [src/add1sp.c] mp_ptr -> mp_limb_t* 10121 10122 [src/add1sp.c] get rid of MPN_COPY/MPN_ZERO in generic code 10123 101242018-02-13 Vincent Lef��vre <vincent@vinc17.net> 10125 10126 [src/add1sp.c] Improved comments and other minor changes. 10127 10128 [src/add1sp.c] In the generic code of mpfr_add1sp, fixed the computation 10129 of the round and sticky bits from r12220. At the same time, improved the 10130 handling of MPFR_RNDF in this part of the code: 10131 * The "while" loop to compute the sticky bit is no longer done in this 10132 case (the sticky bit does not matter). 10133 * The "goto" is avoided. 10134 10135 [tests/tadd.c] Added 2 tests that fail starting with r12220. 10136 101372018-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10138 10139 [src/add1sp.c] cleanup generic code mpfr_add1sp() 10140 101412018-02-09 Vincent Lef��vre <vincent@vinc17.net> 10142 10143 [src/fma.c] Added a FIXME comment about overflow/underflow issues in 10144 corner cases (already caught with MPFR_ASSERTN), fixable with UBF 10145 like in mpfr_fmma. 10146 [src/hypot.c] Updated a comment: The problem that would come from an 10147 underflow in y^2, in particular because x was scaled in order to 10148 avoid an overflow in x^2, has been avoided by using a FMA (though 10149 still buggy for these cases, as mentioned just above). 10150 101512018-02-08 Vincent Lef��vre <vincent@vinc17.net> 10152 10153 [tests] Added/updated comments about the config.h inclusion. 10154 10155 [tests/{tset_float128.c,tset_ld.c}] Removed obsolete WITH_FPU_CONTROL 10156 related code (this should have been done in r12185). 10157 101582018-02-07 Vincent Lef��vre <vincent@vinc17.net> 10159 10160 [INSTALL] Updated GMP URL. 10161 10162 [doc/mpfr.texi] Updated the month. 10163 10164 [doc/mpfr.texi] Corrected minimal GMP version. 10165 [tools/mpfrlint] Updated test to detect minimal GMP version mismatch. 10166 10167 [INSTALL] Corrected minimal GMP version (thanks to David Edelsohn). 10168 [tools/mpfrlint] Added a test to detect minimal GMP version mismatch. 10169 10170 [tools/announce-text] For releases, check the VERSION file of the tag. 10171 10172 [doc/README.dev] "To make a release": moved a sentence. 10173 101742018-02-02 Vincent Lef��vre <vincent@vinc17.net> 10175 10176 [tests/tdiv_ui.c] Forcibly disable value coverage checking if 10177 mp_limb_t > unsigned long (e.g. on mips64 with the n32 ABI). 10178 10179 [tests/tdiv_ui.c] Corrected comments. 10180 10181 [tests/t*random*.c] 10182 * Replaced calloc + free by tests_allocate + tests_free as usual. 10183 * trandom.c, turandom.c: do bitwise operations in unsigned arithmetic. 10184 10185 [tests/t*random*.c] 10186 * Replaced some fprintf with stderr by printf (but not those 10187 concerning memory allocation errors). 10188 * Do bitwise operations in unsigned arithmetic. 10189 * Formatting. 10190 10191 [tests] Formatting. 10192 10193 [tests/tests.c] Make stderr unbuffered again. 10194 Note for the history: both stdout and stderr were made unbuffered in 10195 r2361, then all stderr were changed to stdout (and the corresponding 10196 setbuf on stderr removed) in r2449 for consistency, but stderr was 10197 used later for specific cases (e.g. memory allocation errors or when 10198 stdout is already used for something else), and it is also used for 10199 assertion failures. Thus the setbuf on stderr is still needed. 10200 10201 [tests] Fixed the cases where tests_start_mpfr was called too late, 10202 i.e. after potential output (to stdout). 10203 * tremquo.c: moved the call to tests_start_mpfr to the beginning. 10204 * tset_float128.c, tset_ld.c: removed the optional, obsolete code 10205 setting the FPU control word; MPFR_FPU_PREC can be used instead 10206 (see tests.c). 10207 10208 Reverse-merged r12181 since tests_start_mpfr disables stdout buffering, 10209 so that the fflush() are unnecessary. 10210 10211 [tests/tabort_*.c] Flush stdout after a printf(), as an abort() is 10212 expected. This is needed on platforms where abort() does not flush 10213 the stdio streams, such as with the GNU C Library (glibc) 2.27. 10214 102152018-02-01 Vincent Lef��vre <vincent@vinc17.net> 10216 10217 [NEWS] Mention "make check-exported-symbols" (experimental). 10218 10219 [tests/tdiv_ui.c] Portability update, in case MPFR_PREC_MIN > 1. 10220 102212018-01-31 Vincent Lef��vre <vincent@vinc17.net> 10222 10223 [tests/tdiv_ui.c] In corner_cases, test larger values for xn, 10224 as suggested by Paul, allowing one to cover case 2 for both 10225 sb=0 and sb=1. Value coverage is now complete. 10226 10227 [tests/tdiv_ui.c] Updated midpoint_exact to also test the divisor 10228 ULONG_MAX, allowing one to cover cases 3 and 4. 10229 10230 [tests/tdiv_ui.c] Added tests with simple midpoint and exact cases. 10231 This covers case 9, sb=0. 10232 10233 Added a case for the value coverage for tdiv_ui. 10234 ��� Now, on a 64-bit Linux machine: 10235 mpfr_div_ui not tested on case 2, sb=0 10236 mpfr_div_ui not tested on case 2, sb=1 10237 mpfr_div_ui not tested on case 3, sb=0 10238 mpfr_div_ui not tested on case 4, sb=0 10239 mpfr_div_ui not tested on case 9, sb=0 10240 10241 Added value coverage for tdiv_ui (combinations of rb and sb in the 10242 different cases of the mpfr_div_ui code). 10243 ��� Currently on a 64-bit Linux machine: 10244 mpfr_div_ui not tested on case 2, sb=0 10245 mpfr_div_ui not tested on case 3, sb=0 10246 mpfr_div_ui not tested on case 8, sb=0 10247 10248 [src/div_ui.c] Case tmp[yn] != 0: simplified code since u ��� 2. 10249 10250 [src/div_ui.c] Case tmp[yn] == 0: 10251 * corrected/improved comments; 10252 * simplified condition rb && sb to rb (since if rb ��� 0, then r ��� 0, 10253 so that the current sb ��� 0); 10254 * replaced "& (~MPFR_LIMB_HIGHBIT)" by "<< 1" (should be simpler). 10255 102562018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10257 10258 [src/div_ui.c] fixed corner case (hopefully) 10259 102602018-01-30 Vincent Lef��vre <vincent@vinc17.net> 10261 10262 [tools/mpfrlint] Improved a regexp (avoiding false positives). 10263 10264 [tests/tdiv_ui.c] corner_cases() requires limbs to fit in unsigned long. 10265 10266 [tests/tdiv_ui.c] Back to a decimal constant (the UL suffix was 10267 incorrect, but just a U is OK). 10268 102692018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10270 10271 [tests/tdiv_ui.c] added test for corner case (currently fails) 10272 102732018-01-30 Vincent Lef��vre <vincent@vinc17.net> 10274 10275 [tests/tdiv_ui.c] Fixed a value (from a zsh bug). 10276 10277 [src/div_ui.c] Comment: now, "i.e." is correct. 10278 10279 [tests/tdiv_ui.c] Added ABI-independent bug20180126 tests. 10280 102812018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10282 10283 [src/div_ui.c] fixed a comment 10284 102852018-01-30 Vincent Lef��vre <vincent@vinc17.net> 10286 10287 [src/div_ui.c] Typo in a comment. 10288 10289 [src/div_ui.c] Updated a comment. 10290 10291 [src/div_ui.c] Clarified the notation (this was ambiguous, with two 10292 possible interpretations). Added comments about mpn_divrem_1. 10293 10294 [src/div_ui.c] Added a FIXME. 10295 102962018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10297 10298 [src/div_ui.c] fixed a comment, and added a FIXME 10299 103002018-01-29 Vincent Lef��vre <vincent@vinc17.net> 10301 10302 [src/div_ui.c] Clarified a comment. 10303 10304 [src/div_ui.c] Started to review the code; minor changes. 10305 10306 [src/div_ui.c] Minor update of comments. 10307 10308 [src/div_ui.c] Fixed the exact case, which used nexttoinf uninitialized. 10309 10310 [tests/tdiv_ui.c] bug20180126: enable the test only when a limb fits in 10311 an unsigned long; clarified a comment. 10312 103132018-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10314 10315 [src/div_ui.c] fixed bug20180126 (from tdiv.c), with a complete rewrite of 10316 mpfr_div_ui using the round and sticky bits 10317 [tests/tdiv_ui.c] added more tests 10318 103192018-01-27 Vincent Lef��vre <vincent@vinc17.net> 10320 10321 [tests/tdiv.c] mpfr_div bug bug20180126: also test negative values. 10322 10323 [tests/tdiv.c] Updated comment about mpfr_div bug bug20180126. 10324 10325 [tests/tdiv.c] mpfr_div bug bug20180126 was introduced by r9086. 10326 103272018-01-26 Vincent Lef��vre <vincent@vinc17.net> 10328 10329 [tests/tdiv.c] Completed r12128 test with new comments and an assert. 10330 10331 [tests/tdiv.c] Added test case for a mpfr_div bug of MPFR 4. 10332 103332018-01-25 Vincent Lef��vre <vincent@vinc17.net> 10334 10335 [doc/README.dev] Added information about symbol checking. 10336 103372018-01-23 Vincent Lef��vre <vincent@vinc17.net> 10338 10339 [tests/tests.c] Mention a libtool 2.4.6 bug concerning Solaris, yielding 10340 potential failures if a compatible MPFR version is already installed: 10341 this MPFR library is tested instead of the one that has just been built. 10342 103432018-01-22 Vincent Lef��vre <vincent@vinc17.net> 10344 10345 [NEWS] + Improved __GMP_CC and __GMP_CFLAGS retrieval. 10346 10347 [configure.ac] In the CC and CFLAGS setup from gmp.h, added to the 10348 cpp list: "clang -E"; "cl -E" and "icl -E" for Windows ICC and MSVC 10349 (suggested by Alexander). 10350 103512018-01-20 Vincent Lef��vre <vincent@vinc17.net> 10352 10353 [doc/README.dev] "To make a release": mention "make check-gmp-symbols" 10354 and "make check-exported-symbols". 10355 10356 [Makefile.am] Updated comments. 10357 10358 [src/Makefile.am] For check-gmp-symbols and check-exported-symbols, if 10359 the library is not $(top_builddir)/src/.libs/libmpfr.so, these rules 10360 do nothing instead of potentially failing. 10361 10362 Added check-exported-symbols make rule to check that MPFR does not 10363 define symbols with a GMP reserved prefix. 10364 103652018-01-18 Vincent Lef��vre <vincent@vinc17.net> 10366 10367 [src/mp_clz_tab.c] Fixed a condition (see bug mentioned at r12107). 10368 10369 [src/mpfr-gmp.h] Reverse-merged r11969, which yields a build failure 10370 under MinGW when GMP is built with "--disable-shared --enable-static 10371 --enable-assert --disable-assembly" and MPFR is built using the GMP 10372 build. Indeed, this commit was incorrect, as if the GMP build is used, 10373 then this is GMP's longlong.h that is used and GMP's __clz_tab version 10374 that should be used. 10375 The real cause of the "multiple definition of `__gmpn_clz_tab'" error 10376 reported at 10377 https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00061.html 10378 is that MPFR defines its own __gmpn_clz_tab while this is not needed 10379 (and must not be done) when the GMP build is used. 10380 103812018-01-16 Vincent Lef��vre <vincent@vinc17.net> 10382 10383 [TODO] - Decide whether multiple calls to mpfr_clear should be allowed. 10384 10385 [TODO] + Decide whether multiple calls to mpfr_clear should be allowed. 10386 103872018-01-13 Vincent Lef��vre <vincent@vinc17.net> 10388 10389 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 10390 10391 [NEWS] Update. Prepare for new version 4.1.0. 10392 10393 [doc] Updated FAQ.html with update-faq. 10394 103952018-01-10 Vincent Lef��vre <vincent@vinc17.net> 10396 10397 [tests/tlgamma.c] bug20180110: test the ternary value and the flags. 10398 10399 [src/lngamma.c] Fixed mpfr_lgamma bug for tiny negative x, in case 10400 emax < exponent of the result (the issue was an overflow in the "fast" 10401 algorithm, which made it loop with more and more working precision). 10402 10403 [src/lngamma.c] Removed a useless cast. 10404 10405 [tests/tlgamma.c] Added a test case for a bug found from the tgeneric 10406 change done in r12088. 10407 10408 [tests/tgeneric.c] Do several overflow/underflow tests instead of 1, and 10409 this for each precision. This allows one to detect the mpfr_ai bug found 10410 and fixed on 2018-01-07 (with 32-bit *and* 64-bit ABI): 10411 https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html 10412 Moreover, this makes tlgamma loop with a 32-bit ABI (x86). To be fixed. 10413 10414 [tests/tgeneric.c] Added comments for tests in a reduced exponent range. 10415 10416 [tests/tsprintf.c] About r12084, simplified the code, without needing 10417 strncpy. 10418 10419 [tests/tsprintf.c] Fixed strncpy usage, in particular to ensure a 10420 null-terminated string (bug detected by gcc-snapshot 20180107-1 under 10421 Debian with -Werror=stringop-truncation). 10422 104232018-01-09 Vincent Lef��vre <vincent@vinc17.net> 10424 10425 [doc/mpfr.texi] Fixed the @GMPabs macro in tex mode: due to the use of 10426 the OT1 encoding, the pipe character "|" was giving a wide dash. 10427 10428 [doc/mpfr.texi] For mpfr_custom_get_exp, restored the spec for NaN, 10429 infinity and zero, with more details. 10430 10431 [doc/mpfr.texi] Improved description of mpfr_custom_init_set. 10432 Note: For the versions of the manual generated with TeX (PDF/DVI/PS), 10433 "|kind|" appears as "���kind���", and the description of mpfr_ai has 10434 the same issue (since its introduction in MPFR 3.0.0). The cause 10435 is unclear, and this will be fixed later. 10436 104372018-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10438 10439 [doc/mpfr.texi] for mpfr_custom_get_exp, explain the significand is considered 10440 in [1/2,1) as for mpfr_get_exp 10441 104422018-01-09 Vincent Lef��vre <vincent@vinc17.net> 10443 10444 [doc] 10445 * texinfo.tex: update to the latest version 2018-01-09.11, which 10446 supports @var with script font size without any drawback. 10447 * mpfr.texi: replaced the now useless @svar by @var. 10448 104492018-01-07 Vincent Lef��vre <vincent@vinc17.net> 10450 10451 [tests/tai.c] In bug20180107, also check the flags. 10452 10453 [src/ai.c] Really fixed the bug. 10454 10455 [src/check.c] Typo. 10456 104572018-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10458 10459 [src/ai.c] missing call to mpfr_check_range 10460 10461 [tests/tai.c] added test that fails on x86_64 10462 10463 [tests/tai.c] added test for bug in mpfr_ai (see thread 10464 https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html) 10465 104662018-01-03 Vincent Lef��vre <vincent@vinc17.net> 10467 10468 [doc/mpfr.texi] Updated the month. 10469 10470 [tools/ck-mparam] In the copyright notice, just keep the year 2011 10471 since this file is not part of the tarball (just used by mpfrlint). 10472 10473 Copyright notice update: added 2018 with 10474 perl -pi -e 's/ (\d{4}-)?(2017)(?= Free Software)/ 10475 " ".($1||"$2-").($2+1)/e' **/*(^/) 10476 under zsh, reverting the ck-mparam and timings-mpfr.c files and 10477 the mbench directory under "tools" (not distributed with MPFR). 10478 Removed 2017 from the example in the doc/README.dev file. 10479 104802018-01-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10481 10482 [src/zeta.c] added comments and FIXME 10483 10484 Note (2019-04-30): a bug has also been introduced (fixed in r13485). 10485 104862017-12-25 Vincent Lef��vre <vincent@vinc17.net> 10487 10488 [NEWS] Minor corrections for GNU MPFR 4.0.0. 10489 104902017-12-23 Vincent Lef��vre <vincent@vinc17.net> 10491 10492 [tests/tests.c] Added a note about gettimeofday() and a cast. 10493 10494 [tests/tests.c] Fixed a potential integer overflow from r12053 with 10495 GMP_CHECK_RANDOMIZE=1, in particular under a 32-bit Linux. 10496 104972017-12-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10498 10499 [tests/tests.c] decrease probability of collision with random seed 10500 10501 [src/exp_2.c] fixed bug from previous commit 10502 [src/subnormal.c] added assert 10503 10504 [tests/texp.c] added test for new bug 10505 105062017-12-22 Vincent Lef��vre <vincent@vinc17.net> 10507 10508 Removed trailing whitespace. 10509 10510 [src/subnormal.c] Replaced FIXME. 10511 10512 [tests/tj1.c] Avoid a potential integer overflow. 10513 105142017-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10515 10516 [src/subnormal.c] added FIXME 10517 10518 [src/sin.c] simplified code with RNDA 10519 10520 [src/hypot.c] mimic mpfr_round_near_x 10521 10522 [tests/tj1.c] exercise corner case 10523 10524 [tests/tj1.c] added test for j1(z) with small z 10525 10526 [src/hypot.c] fixed issue with overflow flag not correctly set 10527 105282017-12-21 Vincent Lef��vre <vincent@vinc17.net> 10529 10530 [src/next.c] Reverted r12035 as per documentation, which follows 10531 IEEE 754 (with the usual special treatment for the single NaN). 10532 105332017-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10534 10535 [src/next.c] fixed nextinf (missing overflow flag) 10536 [tests/thypot.c] removed debug call to mpfr_dump in previous commit 10537 10538 [tests/thypot.c] another fix... 10539 10540 [tests/thypot.c] fixed bug20171221() 10541 10542 [tests/thypot.c] new failing test 10543 10544 [src/lngamma.c] fixed bug when u=0 in case z0 < 1 10545 [tests/tlngamma.c] fixed test case which was wrong 10546 105472017-12-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10548 10549 [tests/tlngamma.c] added test for new failure 10550 10551 [src/lngamma.c] fixed bug found in previous commit 10552 10553 [tests/tlngamma.c] added failing test with mpfr-4.0.0-rc2 10554 105552017-12-20 Vincent Lef��vre <vincent@vinc17.net> 10556 10557 Updated version to 4.1.0-dev again. 10558 10559 Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch. 10560 10561 [src/fma.c] Minor improvements. Added an assert. 10562 10563 [src/tanh.c] GNU coding style. 10564 10565 [src/mul.c] Reindentation. 10566 10567 [src/exp2.c] Replaced two MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT. 10568 105692017-12-19 Vincent Lef��vre <vincent@vinc17.net> 10570 10571 [src/exp2.c] Fixed the double rounding problem in an underflow case, 10572 triggered by the test added in r12017. 10573 10574 [tests/texp2.c] Added test of underflow in MPFR_RNDN with exact value 10575 close to 2^(emin-2). Currently fails due to double rounding. 10576 10577 [tests/tdiv.c] Added new non-regression test: the was the real cause of 10578 the ttanh failure in r11993 without the tanh.c fix in this same commit. 10579 But this mpfr_div was fixed in r12002. 10580 10581 [doc/mpfr.texi] Added a comment about a bug/limitation in makeinfo 5.2. 10582 10583 [doc/mpfr.texi] Improved svar macro for nottex, in case it is used 10584 in the future. 10585 10586 [doc/mpfr.texi] Define svar even for nottex, though it is not used 10587 (attempt to avoid a failure with makeinfo 5.2). 10588 105892017-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10590 10591 [src/fma.c] fixed bug in mpfr_fma 10592 [tests/tfma.c] added non-regression test 10593 105942017-12-19 Vincent Lef��vre <vincent@vinc17.net> 10595 10596 [src/exp2.c] Update concerning the underflow/overflow cases. 10597 Still incomplete. 10598 10599 [doc/mpfr.texi] Updated a comment. 10600 10601 [doc] 10602 * texinfo.tex: update to the latest version 2017-12-18.20, which 10603 reverts the change done in 2017-12-01.13 attempting to support 10604 @var with script font size (e.g. in exponent); but this change 10605 didn't work correctly. 10606 * mpfr.texi: introduced a @svar macro to handle this case. It 10607 currently disables the use of @var, the other workaround being 10608 worse. 10609 106102017-12-18 Vincent Lef��vre <vincent@vinc17.net> 10611 10612 Removed trailing whitespace. 10613 10614 [doc/algorithms.tex,src/tanh.c] Fixed the bound, in particular from 10615 the recent improvements in the error analysis. 10616 106172017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10618 10619 [src/mul.c] we should compare the smaller size and not the larger one to 10620 MPFR_MUL_THRESHOLD or MPFR_SQR_THRESHOLD for Mulders' short product 10621 10622 [src/mul.c] with Mulders', convert RNDF to RNDZ 10623 [tests/tmul_d.c] added a non-regression test 10624 106252017-12-18 Vincent Lef��vre <vincent@vinc17.net> 10626 10627 [doc/algorithms.tex] mpfr_tanh: corrected bounds (thanks to Paul). 10628 10629 [doc/algorithms.tex] mpfr_tanh: detailed some inequalities. 10630 106312017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10632 10633 [src/div.c] fixed bug in mpfr_div2_approx() 10634 [tests/tdiv.c] added non-regression test 10635 [tests/ttan.c] added test triggering bug in mpfr_div2_approx() 10636 106372017-12-18 Vincent Lef��vre <vincent@vinc17.net> 10638 10639 [doc/algorithms.tex] mpfr_tanh: resolved both FIXME's. 10640 10641 [doc/algorithms.tex] mpfr_tanh: corrected a part of the error analysis 10642 (2^k+4 ��� |theta_4|^(���1/2) was not necessarily true, since theta_4 can 10643 be very small). As a consequence, the lemma can be simplified/improved 10644 (first FIXME). Added a second FIXME on a condition that is not checked. 10645 10646 [doc/algorithms.tex] mpfr_tanh: missing absolute value; added a \cdot. 10647 10648 Removed trailing whitespace. 10649 10650 [doc/algorithms.tex] Added another \cdot for readability. 10651 106522017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10653 10654 [src/exp2.c] added FIXME 10655 106562017-12-18 Vincent Lef��vre <vincent@vinc17.net> 10657 10658 [doc/algorithms.tex] Minor corrections for hyperbolic tangent function: 10659 * "e" had two different meanings (BTW, the constant e should actually 10660 be written \mathrm{e} everywhere in the document). 10661 * Use \left...\right instead of |...| when it contains an expression 10662 starting with \log (the latter was confusing pdflatex, which added 10663 a spurious space before \log). 10664 * Added some \cdot for better readability. 10665 106662017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10667 10668 [src/exp2.c] fixed bug near underflow 10669 [tests/texp2.c] added non-regression test 10670 10671 [tests/ttanh.c] added test for bug in mpfr_tanh 10672 [doc/algorithms.tex] fixed error analysis for mpfr_tanh 10673 [src/tanh.c] fixed error analysis 10674 Note after r12016: Even though mpfr_tanh was incorrect, the failure 10675 of the test added in ttanh.c was actually *only* due to a bug in the 10676 mpfr_div code specific to the trunk (fixed in r12002), i.e. this was 10677 not a non-regression test for the mpfr_tanh bug itself (in particular, 10678 this test does not introduce a failure in the 3.1 branch, which still 10679 has the same incorrect mpfr_tanh code but a correct mpfr_div). 10680 106812017-12-18 Vincent Lef��vre <vincent@vinc17.net> 10682 10683 Updated version to 4.1.0-dev again. 10684 106852017-12-17 Vincent Lef��vre <vincent@vinc17.net> 10686 10687 Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch. 10688 10689 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 10690 106912017-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10692 10693 [src/add1sp.c] fix bug in mpfr_add1sp3() in case d=GMP_NUMB_BITS 10694 106952017-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10696 10697 [tests/tadd1sp.c] added test for new bug (still to be fixed): 10698 10699 Seed GMP_CHECK_RANDOMIZE=1514385177 (include this in bug reports) 10700 add1 & add1sp return different values for MPFR_RNDN 10701 Prec_a = 137, Prec_b = 137, Prec_c = 137 10702 B = 0.11111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000E-66 10703 C = 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000110000E-2 10704 10705 add1 : 0.10000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000E-1 10706 add1sp: 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000010000E-2 10707 Inexact sp = 0 | Inexact = 0 10708 Flags sp = 8 | Flags = 8 10709 add1sp.c:89: MPFR assertion failed: 0 10710 107112017-12-15 Vincent Lef��vre <vincent@vinc17.net> 10712 10713 [src/root.c] Minor comment correction. 10714 10715 [src/root.c] Completed fix from r11978, as x=-1 was affected too. Also 10716 added comments explaining that mpfr_root_aux assumes |x| ��� 1 and why. 10717 Hence the need of a filter on |x| = 1. 10718 [tests/troot.c] Added test for x = -1. 10719 10720 [tests/troot.c] Replaced mpfr_root by TF (like in the other tests). 10721 107222017-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10723 10724 [src/root.c] fixed bug when x=1 10725 [tests/troot.c] added non-regression test 10726 107272017-12-14 Vincent Lef��vre <vincent@vinc17.net> 10728 10729 [tests/tsub1sp.c] Corrected a type. And mpfr_equal_p being a predicate 10730 function, it's better to use Boolean operators on it. 10731 107322017-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10733 10734 [tests/tsub1sp.c] added a generic test for bug20171213() 10735 107362017-12-14 Vincent Lef��vre <vincent@vinc17.net> 10737 10738 [src/{mul.c,sqr.c}] Minor changes, making code similar to sub1sp.c. 10739 Checked with 10740 grep -A 1 'sb *>>' src/*.c 10741 that the bug fixed in r11974 does not occur in other parts of the code. 10742 BTW, there is much duplicate code, as shown by the grep output, and 10743 using macros could have avoided that, making bugs easier to reproduce 10744 (since a same bug would be duplicate several times). 10745 107462017-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10747 10748 [src/sub1sp.c] fixed bug in mpfr_sub1sp2() 10749 [tests/tsub1sp.c] added non-regression test 10750 107512017-12-13 Vincent Lef��vre <vincent@vinc17.net> 10752 10753 [src/mpf2mpfr.h] Added a comment. 10754 107552017-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10756 10757 [src/mpf2mpfr.h] missing mpf_inits/mpf_clears 10758 10759 [src/mpfr-gmp.h] redefine __clz_tab also with gmp-build 10760 107612017-12-12 Vincent Lef��vre <vincent@vinc17.net> 10762 10763 [configure.ac] Improved error message. 10764 10765 [tests/talloc.c] Added a comment about why talloc requires ISO C99. 10766 10767 [src/mpfr-cvers.h] Removed a useless test for __MPFR_STDC, as one just 10768 needs to check whether we have a C99, C11, etc. implementation (if not 10769 done via a configure test). Particular incompatibilities with the C90 10770 standard should always be checked via a configure test. 10771 10772 [tests] Added *.exe to svn:ignore property (files from MinGW builds). 10773 107742017-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10775 10776 [tools/timings-mpfr.c] always use clock() [now very accurate under Linux] 10777 107782017-12-12 Vincent Lef��vre <vincent@vinc17.net> 10779 10780 [tools/timings-mpfr.c] Updated years in copyright notice. 10781 10782 [tools/timings-mpfr.c] Fixed prototypes. 10783 10784 [tools/timings-mpfr.c] Added a defined(_MSC_VER). But clock() is 10785 standard, so why not always using it? 10786 10787 [doc/README.dev] Correction. 10788 10789 [doc/README.dev] Made formatting consistent (same as configure --help). 10790 10791 Completed r11955: There were also DEBUG macros under the "tests" 10792 directory. Since such macros can still be useful in case a test failure, 10793 replaced them by MPFR_DEBUG to avoid issues with CI builds that define 10794 the DEBUG macro. But an environment variable would be a better solution 10795 (see MPFR_DEBUG_BADCASES as an example). 10796 10797 [TODO] Removed item on the DEBUG macro (done in r11955). 10798 107992017-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10800 10801 DEBUG_TGENERIC -> MPFR_DEBUG_TGENERIC 10802 XDEBUG -> MPFR_DISABLE_IEEE_FLOATS 10803 10804 get rid of DEBUG macro (but keep corresponding commands in comment to help 10805 understanding of the code and debugging) 10806 108072017-12-11 Vincent Lef��vre <vincent@vinc17.net> 10808 10809 [tests/tget_q.c] Removed trailing whitespace. 10810 108112017-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10812 10813 [tests/tget_q.c] replaced MPFR_ASSERTN(0) by exit(1) 10814 108152017-12-10 Vincent Lef��vre <vincent@vinc17.net> 10816 10817 [src/get_q.c] Optimization of r11951 suggested by Trevor Spiteri: 10818 https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00040.html 10819 108202017-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10821 10822 [src/get_q.c] make result of mpfr_get_q in canonical form 10823 [tests/tget_q.c] added non-regression test 10824 10825 [src/lngamma.c] replace call to __gmpfr_ceil_log2 by __gmpfr_int_ceil_log2 10826 108272017-12-09 Vincent Lef��vre <vincent@vinc17.net> 10828 10829 [TODO] Rename the DEBUG macro to MPFR_DEBUG? 10830 108312017-12-08 Vincent Lef��vre <vincent@vinc17.net> 10832 10833 [src/Makefile.am] Also distribute generic/coverage/mparam.h 10834 (at least useful for testing the distributed tarballs). 10835 10836 [doc] Updated FAQ.html with update-faq. 10837 10838 [doc] Updated FAQ.html with update-faq. 10839 10840 [doc/README.dev] "To make a release": 10841 * Note that this needs to be done in a branch. 10842 * Swapped (1) and (2), in particular because the coverage might be 10843 different in -dev versions and it is better to give results closer 10844 to the release. 10845 10846 Updated version to 4.1.0-dev. 10847 10848 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 10849 10850 Moved tests/timings-mpfr.c into directory "tools" as it is not part 10851 of the test suite. 10852 108532017-12-07 Vincent Lef��vre <vincent@vinc17.net> 10854 10855 [src/fpif.c] Removed FIXME about the sign bit of NaN: done in 10856 r11910 and r11920 (documentation + tests). 10857 10858 [src] Replaced some "return 0" by "MPFR_RET (0)" (the generated code 10859 is the same as shown by gcc, thanks to an obvious optimization; this 10860 is semantically better, which could help provers, and would allow 10861 code instrumentation in the future, if need be). 10862 108632017-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10864 10865 got rid of mpz_dump (undocumented in GMP) 10866 10867 [src/mpfr-mini-gmp.c] updated with GMP 6.1.2 10868 108692017-12-06 Vincent Lef��vre <vincent@vinc17.net> 10870 10871 [doc/mpfr.texi] Corrected a Texinfo typography issue. 10872 10873 [src/pool.c] Updated description. Corrected copyright years as the 10874 pool code itself was introduced in 2014. 10875 10876 [tests/timings-mpfr.c] Removed trailing whitespace, untabified, 10877 changed GMP_RNDN to MPFR_RNDN. 10878 10879 Cleanup and fixes for the mpz_t pool. 10880 * Split src/free_cache.c to itself and a new source file src/pool.c 10881 containing pool related code. 10882 * src/mpfr-impl.h, src/pool.c: cleanup and fixes. In particular: 10883 - renamed MPFR_MY_MPZ_INIT to MPFR_POOL_NENTRIES; 10884 - no longer use GMP's symbols __gmpz_init, etc. directly; 10885 - improved the condition for mpfr_mpz_init2; 10886 - fixed the condition in mpfr_mpz_clear (we want to consider 10887 the allocated size, not the size of the current number). 10888 * src/Makefile.am: added pool.c. 10889 * src/mpfr.h: added mpfr_free_pool prototype. 10890 * doc/mpfr.texi: updated pool description in "Memory Handling"; 10891 new function mpfr_free_pool. 10892 * doc/README.dev: update due to the rename of MPFR_MY_MPZ_INIT. 10893 * NEWS: better announcement of the mpz_t pool. 10894 10895 [doc/mpfr.texi] Small correction concerning the caches. 10896 10897 [doc/mpfr.texi] More details for mpfr_fpif_export and mpfr_fpif_import. 10898 108992017-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10900 10901 [timings-mpfr.c] test file for measuring timings (added -p option) 10902 109032017-12-06 Vincent Lef��vre <vincent@vinc17.net> 10904 10905 Updated the remaining www.loria.fr URL's. 10906 10907 [doc/algorithms.bib] Updated URL's. 10908 10909 [doc/mpfr.texi] References: typography; updated a URL. 10910 109112017-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10912 10913 [mpfr.texi] updated reference to "Modern Computer Arithmetic" 10914 10915 [free_cache.c] limit the size of objects in the mpz_t pool 10916 109172017-12-06 Vincent Lef��vre <vincent@vinc17.net> 10918 10919 [src/free_cache.c] Added a comment for the mpz_t pool, and a suggestion 10920 for mpfr_mpz_clear so that the pool will not take too much memory while 10921 keeping a possible benefit for very small precision. 10922 109232017-12-05 Vincent Lef��vre <vincent@vinc17.net> 10924 10925 [src/mpfr.h] Made box around code examples for clarity and grep. 10926 10927 [doc/mpfr.texi] For mpfr_fpif_export: the sign of a NaN is stored. 10928 [tests/tfpif.c] Test the sign of NaN (in particular). 10929 10930 [doc/mpfr.texi] Updated references. 10931 10932 [doc/mpfr.texi] Update about 0 of type without signed zeros, as in 10933 mpfr_div_ui. 10934 10935 [doc/mpfr.texi] Document the behavior of mpfr_ui_pow and mpfr_ui_pow_ui 10936 on the integer 0 (0 does not have a sign here). 10937 109382017-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10939 10940 [doc/mini-gmp] added information about result of "make check" 10941 109422017-12-05 Vincent Lef��vre <vincent@vinc17.net> 10943 10944 [src/mpfr-gmp.h] Removed old code for pre-GMP-5 versions. 10945 10946 [src/urandomb.c] Removed an obsolete "#if __MPFR_GMP(5,0,0)" as we now 10947 require GMP 5.0+ and mp_bitcnt_t is also defined by mini-gmp. 10948 10949 [src/mpfr-gmp.h] Removed the code that defined mpn_copyi and mpn_copyd 10950 macros for GMP < 5, since MPFR now requires GMP 5.0+ and these functions 10951 are also defined by mini-gmp (these macros were used by mini-gmp only 10952 because mini-gmp does not define GMP_VERSION). 10953 10954 [src/mpfr-gmp.h] Missing parentheses around parameters in mpn_copyi 10955 and mpn_copyd macro definitions. 10956 109572017-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10958 10959 fixed bug in replacement function for copyi and copyd (found with mini-gmp) 10960 10961 add --disable-shared for mini-gmp (not tested yet with dynamic linking) 10962 109632017-12-05 Vincent Lef��vre <vincent@vinc17.net> 10964 10965 [src/mpfr.h] Explain how to avoid the "... is deprecated" warning when 10966 testing a deprecated function. 10967 10968 [doc/README.dev] Removed a -Wno-error=deprecated-declarations as 10969 the specific warnings are now avoided (r11896). 10970 10971 Disable the "deprecated" attribute of deprecated functions *only* for 10972 the tests of these functions, to avoid the corresponding warnings. 10973 10974 Removed trailing whietespace. 10975 109762017-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10977 10978 fixed compiler warnings with mini-gmp 10979 109802017-12-04 Vincent Lef��vre <vincent@vinc17.net> 10981 10982 Simplified the use of MPFR_USE_FILE since <stdio.h> (<cstdio> for C++) 10983 is unconditionally included. 10984 109852017-12-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10986 10987 make compilation work again (make + make check) with mini-gmp 10988 109892017-12-04 Vincent Lef��vre <vincent@vinc17.net> 10990 10991 Improved portability of the check-gmp-symbols make rule. 10992 10993 [src/fpif.c] Clarification. 10994 10995 [tests] 10996 * tfpif.c: in doit(), also test the negative versions of the numbers. 10997 * tfpif_r1.dat: update. 10998 10999 [src] Update about the internal use of mpfr_get_str. 11000 * get_str.c: updated a comment. 11001 * vasprintf.c: added assertions. 11002 11003 [doc/mpfr.texi] Updated the month. 11004 11005 [src/get_str.c] Corrected a comment. 11006 11007 [doc/mpfr.texi] Update about the memory allocation (added references 11008 to Section "Memory Handling"). 11009 (merged changeset r11632 from the 3.1 branch) 11010 11011 [doc/mpfr.texi] Update for mpfr_get_str: 11012 * Added a texi comment explaining why m+1 (so that if the mpfr_get_str 11013 implementation is improved, we know whether this is still the case). 11014 * Improved the documentation for the case str = null pointer. 11015 110162017-12-03 Vincent Lef��vre <vincent@vinc17.net> 11017 11018 [doc/mpfr.texi] Updated comments about the latest change (r11881). 11019 11020 [doc/mpfr.texi] Typography fixes for TeX (DVI/PS/PDF) in math mode. 11021 * Corrected the use of \lceil and \rceil. 11022 * Added missing @var, including 2 in exponent, as allowed by 11023 texinfo.tex 2017-12-01.13. 11024 * Removed old comments about Texinfo. 11025 11026 [doc/texinfo.tex] Update to the latest version 2017-12-01.13 from 11027 <https://ftp.gnu.org/gnu/texinfo/>. 11028 110292017-12-01 Vincent Lef��vre <vincent@vinc17.net> 11030 11031 [acinclude.m4] In r11876, forgot to define MPFR_WANT_DECIMAL_FLOATS in 11032 the cross-compiling case. 11033 11034 Solved an output issue on AIX due to the use of setbuf() after output 11035 in tversion. Indeed, this is disallowed by ISO C. 11036 * doc/README.dev: added a note about tests_start_mpfr and this issue. 11037 * tests/tests.c: moved test_version() after setbuf(). 11038 * tests/tversion.c: moved tests_start_mpfr() earlier, before any 11039 printf(). 11040 11041 [acinclude.m4] Attempt to fix detection of decimal floats: if _Decimal64 11042 is known but does not work, no longer fail when --enable-decimal-float 11043 has not been used; just disable decimal floats. 11044 11045 [acinclude.m4] Attempt to fix detection of decimal floats (BID was 11046 incorrectly assumed in case of link failure, if ld returned 1, which 11047 was observed on powerpc-ibm-aix7.2.0.0 [gcc119.fsffrance.org]). 11048 11049 [src/fpif.c] Updated comments about the format. 11050 110512017-11-30 Vincent Lef��vre <vincent@vinc17.net> 11052 11053 [doc/README.dev] Typo. 11054 11055 Two fixes for the check-gmp-symbols make rule: 11056 * Use $(COMPILE) instead of $(CC) to get the usual compilation flags 11057 (in particular, the -I flags may be important to find gmp.h and to 11058 get the correct one). 11059 * Run the test only if libmpfr.so exists. 11060 11061 [doc/README.dev] Internal GMP symbols: mention "make check-gmp-symbols". 11062 11063 [NEWS] Mention "make check-gmp-symbols" (experimental). 11064 11065 [INSTALL] Added an optional step "make check-gmp-symbols" to check 11066 that MPFR does not use GMP internal symbols. 11067 11068 Added comment about the check-gmp-symbols make rule (added in r11865). 11069 11070 Added check-gmp-symbols make rule to check that MPFR does not use 11071 GMP internal symbols. 11072 11073 [doc/README.dev] Detailed the note about the list of GMP symbols. 11074 11075 [doc/README.dev] Document how to get the list of GMP symbols used 11076 by MPFR and how to detect GMP internal symbols used by MPFR. 11077 11078 [INSTALL] Added a paragraph about the potential incorrect use of 11079 GMP internals. 11080 110812017-11-29 Vincent Lef��vre <vincent@vinc17.net> 11082 11083 [src/fpif.c] Fixed the sign bug for mpfr_fpif_import. 11084 11085 [tests/tfpif.c] In doit(), before the call to mpfr_fpif_import(), set 11086 the sign of the target to the opposite of the expected sign. Thus, if 11087 mpfr_fpif_import forgets to set the sign, this will be detected. And 11088 a failure actually occurs now! 11089 11090 [tests/tfpif.c] For mpfr_fpif_import, check the precision too. 11091 11092 [doc/mpfr.texi,src/fpif.c] For mpfr_fpif_import, in case of failure, 11093 the argument x is either unchanged or set to NaN, to make sure that 11094 x has valid contents (otherwise this could yield erratic behavior). 11095 11096 [src/fpif.c] For mpfr_fpif_import, replaced an assertion by a failure 11097 (since the full format is not described in the manual and MPFR cannot 11098 currently generate such a case, this is OK). 11099 11100 [tests/tfpif_r1.dat] Fixed an obvious error (incorrect sign of 0). 11101 11102 [tests/tfpif.c] Output more information in case of error. 11103 111042017-11-28 Vincent Lef��vre <vincent@vinc17.net> 11105 11106 [src/fpif.c] Fixed some bugs (though unlikely to occur in practice). 11107 Added comments. Minor code improvement. 11108 11109 Got rid of the useless SIZE_MAX macro. 11110 * src/vasprintf.c: replaced SIZE_MAX by (size_t) -1, already used 11111 in some other files. 11112 * acinclude.m4: no longer use gl_SIZE_MAX (from m4/size_max.m4). 11113 * Removed m4/size_max.m4 as it is no longer needed (note that the 11114 definition of SIZE_MAX by this file was unnecessarily complex 11115 and potentially incorrect on some platforms). 11116 11117 [src/fpif.c] Added static assertions in mpfr_fpif_import(). 11118 11119 [src/fpif.c] Improved a test (mpfr_regular_p ��� !MPFR_IS_SINGULAR). 11120 11121 [src/mpfr-impl.h] Added a note about the use of the MPFR_IS_PURE_*(x) 11122 and MPFR_IS_SINGULAR*(x) macros. 11123 111242017-11-27 Vincent Lef��vre <vincent@vinc17.net> 11125 11126 [src/fpif.c] Added format description from past mail messages, to be 11127 checked in case of change (+ FIXME for NaN). Minor code improvement. 11128 11129 [tests/tfpif.c] Added TODO's (but the failure should be fixed first). 11130 11131 [src/fpif.c] Clarified sign variable. 11132 11133 [tests/tfpif.c] Use SAME_VAL instead of mpfr_cmp. This triggers a bug 11134 that was not detected yet. 11135 11136 [tests/tfpif.c] Split the main test function into: 11137 * doit(): keep only the tests that depend on the precisions. 11138 * check_bad(): tests for bad file/data; precisions are not involved. 11139 11140 [tests/tfpif.c] Improved a test (NaN checking). Added comments. 11141 11142 [tests/tfpif.c] Removed a TODO done in r10326 and r10338. 11143 11144 Updated autogen.sh so that doc/texinfo.tex isn't replaced. 11145 11146 Added doc/texinfo.tex file from Texinfo 6.5 since the version installed 11147 by Automake (via "autoreconf -i" as called by autogen.sh) is obsolete: 11148 more than 4 years older than the current version! 11149 11150 [doc/mpfr.texi] Updated a comment about a bug in Texinfo. 11151 111522017-11-23 Vincent Lef��vre <vincent@vinc17.net> 11153 11154 [tests/tset_exp.c] Check mpfr_get_exp too (with two additional tests 11155 for mpfr_set_exp). 11156 11157 [tests/texceptions.c] Minor improvements. 11158 11159 [doc/mpfr.texi] For mpfr_get_exp, document that x can be outside of 11160 the current range of acceptable values (this was ambiguous). 11161 111622017-11-21 Vincent Lef��vre <vincent@vinc17.net> 11163 11164 [doc/mpfr.texi] Corrected Texinfo typography issues. 11165 111662017-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11167 11168 added another example where we can have an overflow 11169 11170 added pointer to mpfr_subnormalize 11171 111722017-11-21 Vincent Lef��vre <vincent@vinc17.net> 11173 11174 [doc/mpfr.texi] Major update of "MPFR and the IEEE 754 Standard". 11175 11176 [doc/mpfr.texi] Added "MPFR and the IEEE 754 Standard" to the main menu 11177 as required. Title capitalization. 11178 11179 [doc/mpfr.texi] Correction of a @node. 11180 111812017-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11182 11183 added section "MPFR and the IEEE 754 standard" 11184 111852017-11-20 Vincent Lef��vre <vincent@vinc17.net> 11186 11187 [doc/mpfr.texi] mpfr_can_round: corrected the example; removed 11188 a reference to "ternary value" as there is already one in the 11189 previous sentence; clarification. 11190 11191 [doc/mpfr.texi] Faithful rounding (MPFR_RNDF): 11192 * Document that this feature is experimental and partially supported. 11193 * Update Section "API Compatibility". 11194 Note: the NEWS file was up-to-date. 11195 111962017-11-15 Vincent Lef��vre <vincent@vinc17.net> 11197 11198 [tests/talloc-cache.c] 11199 * Replaced test + abort() by the more informative MPFR_ASSERTN(). 11200 * Also check that the allocator is the current GMP one (this would 11201 fail with MPFR 3.1.6, where the allocation functions are memorized 11202 the first time they are seen). 11203 11204 mpfr_mp_memory_cleanup() now returns an error code (currently always 0) 11205 to avoid a future prototype change in case errors would be possible. 11206 112072017-11-10 Vincent Lef��vre <vincent@vinc17.net> 11208 11209 Cleanup: In src/mpfr-gmp.h, exchanged 11210 mpfr_allocate_func and *__gmp_allocate_func 11211 mpfr_reallocate_func and *__gmp_reallocate_func 11212 mpfr_free_func and *__gmp_free_func 11213 and in the code, replaced *__gmp_{allocate,reallocate,free}_func 11214 by mpfr_{allocate,reallocate,free}_func; updated TODO file. 11215 11216 [doc/mpfr.texi] The sign bit of a NaN is now specified for mpfr_abs, 11217 mpfr_neg and mpfr_set, in order to mimic the IEEE-754 abs, negate 11218 and copy operations. 11219 11220 [tests/tabs.c] More tests on mpfr_abs, including the ternary value 11221 and the NaN flag and sign bit for ��NaN. 11222 11223 [tests/tabs.c] Coding style. 11224 11225 [tests/tset.c] For mpfr_neg on NaN, also check that the variable is 11226 set to NaN and that the ternary value is 0. 11227 11228 [tests/tset.c] More NaN tests for mpfr_set. 11229 11230 [tests/tset.c] More tests of the NaN flag and the sign bit for mpfr_neg 11231 on NaN. 11232 11233 [tests/tset.c] The global variable "error" is better as static. 11234 11235 [tests/tset.c] For mpfr_neg on NaN, check that the sign bit is flipped 11236 in both ways. 11237 11238 [tests] Added talloc-cache to svn:ignore property. 11239 112402017-11-09 Vincent Lef��vre <vincent@vinc17.net> 11241 11242 [tests/tset.c] In the mpfr_neg test on the sign of NaN: 11243 C90 compatibility; improved robustness since as specified, 11244 mpfr_signbit can return any value (not just 0 or 1). 11245 11246 [src/neg.c] Refactored code (BTW, this was not a bug as the sign of NaN 11247 is currently unspecified for mpfr_neg). 11248 112492017-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11250 11251 fixed bug reported by Trevor Spiteri 11252 (https://sympa.inria.fr/sympa/arc/mpfr/2017-11/msg00003.html) 11253 112542017-11-08 Vincent Lef��vre <vincent@vinc17.net> 11255 11256 Change the way memory is allocated (as discussed partly in private). 11257 * src/mpfr-gmp.c, src/mpfr-gmp.h, src/mpfr-impl.h: update. 11258 * src/free_cache.c, src/mpfr.h: added mpfr_mp_memory_cleanup function. 11259 * NEWS: describe API change. 11260 * TODO: added 2 related items (future clean-up and feature). 11261 * doc/mpfr.texi: update. 11262 * tests/talloc-cache.c: take API change into account. 11263 112642017-11-07 Vincent Lef��vre <vincent@vinc17.net> 11265 11266 [doc/mpfr.texi] Updated Section "Compatibility With MPF". 11267 11268 [doc/mpfr.texi] Removed a paragraph from r2962 concerning mpf2mpfr.h 11269 and mpf_init / mpf_init2: since r2985, the mpf_init / mpf_init2 macros 11270 initialize to 0 like MPF, so that users shouldn't see differences from 11271 MPF. 11272 112732017-11-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11274 11275 added reference 11276 112772017-11-07 Vincent Lef��vre <vincent@vinc17.net> 11278 11279 [src/mpfr.h] Formatting. 11280 11281 [src/mpfr.h] mpfr_free_cache_t: added comments to show that these are 11282 flags. 11283 11284 [doc/mpfr.texi] Updated mpfr_free_cache / mpfr_free_cache2 description. 11285 11286 [src/free_cache.c] Minor portability improvement for mpfr_free_cache2 11287 to accept way = 0 (no effect on two's complement machines). 11288 112892017-11-06 Vincent Lef��vre <vincent@vinc17.net> 11290 11291 [tests] 11292 * tests.c: for test programs that use GMP's mp_set_memory_functions, 11293 tests_rand_start and tests_rand_end also need to be disabled; to do 11294 that, require that tests_memory_disabled be set to 2 in this case 11295 (the value 1 is already used for the use with mini-gmp, where only 11296 tests_memory_start and tests_memory_end need to be disabled). 11297 * talloc-cache.c: call tests_start_mpfr and tests_end_mpfr as usual, 11298 with tests_memory_disabled set to 2. 11299 11300 [doc/mpfr.texi] Updated the month. 11301 11302 [doc/mpfr.texi] Minor change. 11303 11304 [doc/mpfr.texi] + explicit information on pools (in addition to caches). 11305 11306 [NEWS,doc/mpfr.texi] mpfr_free_cache2 is a new function in MPFR 4.0, 11307 as a consequence of shared caches for multithreaded applications. 11308 11309 [src/free_cache.c] GNU coding style. 11310 11311 [tests] 11312 * Makefile.am: added talloc-cache to check_PROGRAMS. 11313 * talloc-cache.c: improved the test allocators so that an incorrect 11314 use is detected by this code instead of relying on the C library 11315 checking bad use of malloc/realloc/free (which was UB). 11316 NOTE: The test currently fails in the trunk due to the mpz_t pool. 11317 But anyway, the memory allocation method will change soon. 11318 11319 [tests/talloc-cache.c] Corrected indentation. 11320 113212017-10-30 Vincent Lef��vre <vincent@vinc17.net> 11322 11323 [doc/mpfr.texi] Improved the mpfr_nexttoward description w.r.t. flags. 11324 113252017-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11326 11327 added note about mpfr_beta 11328 113292017-10-26 Vincent Lef��vre <vincent@vinc17.net> 11330 11331 [NEWS,doc/mpfr.texi] mpfr_beta is incomplete, experimental. 11332 See <https://sympa.inria.fr/sympa/arc/mpfr/2017-10/msg00007.html>. 11333 113342017-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11335 11336 added functions from C++17 11337 113382017-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11339 11340 fixed typo 11341 113422017-10-11 Vincent Lef��vre <vincent@vinc17.net> 11343 11344 [src/get_float128.c] Fixed failure in mpfr_get_float128 when called with 11345 a very reduced exponent range. 11346 [tests/tset_float128.c] Also test mpfr_get_float128 in reduced exponent 11347 range (triggering a failure before the fix). 11348 113492017-10-10 Vincent Lef��vre <vincent@vinc17.net> 11350 11351 [doc/README.dev] "To make a release": + Check the generic code. 11352 113532017-10-09 Vincent Lef��vre <vincent@vinc17.net> 11354 11355 [src/get_ld.c] Fixed the generic code when called with a very reduced 11356 exponent range. The tset_ld failure could be triggered on x86 by running 11357 "./configure ... mpfr_cv_c_long_double_format=unknown". 11358 11359 [tests/tset_ld.c] Also test mpfr_get_ld in reduced exponent range 11360 (no failures on x86). 11361 11362 [src/get_z.c] Fixed failure in mpfr_get_z when called with a very 11363 reduced exponent range. 11364 [tests/tget_z.c] Added tests in the various rounding modes (triggering 11365 a failure before the above fix). Also call check_one() on an integer 11366 congruent to 1 mod 4 (useful to check even rounding). Fixed 2 issues 11367 in the error message (for inex and the flags). 11368 11369 [tests/tget_z.c] Also test mpfr_get_z in reduced exponent range 11370 (no failures though its code seems incorrect). 11371 113722017-10-06 Vincent Lef��vre <vincent@vinc17.net> 11373 11374 [src/{get_si.c,get_sj.c}] Minor improvement, removing an obsolete note 11375 in get_sj.c at the same time. 11376 11377 [src/{get_sj.c,get_uj.c}] Fixed failure in mpfr_get_sj and mpfr_get_uj 11378 when called with a very reduced exponent range. 11379 [tests/tget_sj.c] Added corresponding test cases. 11380 11381 [tests/tset_si.c] Minor correction in error message. 11382 113832017-10-05 Vincent Lef��vre <vincent@vinc17.net> 11384 11385 [TODO] Function multiversioning (FMV): more details. 11386 11387 [TODO] Mention function multiversioning (FMV). 11388 113892017-10-04 Vincent Lef��vre <vincent@vinc17.net> 11390 11391 [src/{get_si.c,get_ui.c}] Fixed failure in mpfr_get_si and mpfr_get_ui 11392 when called with a very reduced exponent range. 11393 11394 [tests/tset_si.c] get_tests: added comments and tests in a reduced 11395 exponent range, which currently trigger an assertion failure. 11396 113972017-10-02 Vincent Lef��vre <vincent@vinc17.net> 11398 11399 [doc/mpfr.texi] Updated the month. 11400 11401 [NEWS] Mention mpfr_dump. 11402 11403 [doc/mpfr.texi] Describe the current output format of mpfr_dump. 11404 11405 [doc/mpfr.texi] Replaced @code by @samp for things that are not 11406 actually code, but parts of character strings. 11407 114082017-09-29 Vincent Lef��vre <vincent@vinc17.net> 11409 11410 [src/dump.c] mpfr_dump now outputs specific info for invalid data. 11411 [tests/toutimpl.c] Added mpfr_dump tests. 11412 11413 [src/dump.c] 11414 * Output the sign even for NaN, since this can be useful information 11415 (the sign of a NaN has an effect with some functions, following 11416 IEEE 754-2008). 11417 * This changes allows one to get rid of the mpfr_fprint_binary 11418 static function at the same time. 11419 11420 [src/{dump.c,print_raw.c}] Updated the description. 11421 114222017-09-29 Vincent Lef��vre <vincent@vinc17.net> 11423 11424 [src] Clean up of debugging output functions: 11425 * Replaced the internal function mpfr_fprint_binary by a new 11426 internal function mpfr_fdump, similar to mpfr_dump, but with 11427 a FILE * argument. 11428 * Got rid of mpfr_print_binary entirely (it became internal in 11429 r2466 for MPFR 2.0.2, released in 2003). 11430 11431 Details: 11432 * print_raw.c: 11433 - moved the mpfr_fprint_binary code to dump.c; 11434 - removed mpfr_print_binary. 11435 * dump.c: 11436 - mpfr_fprint_binary (from print_raw.c) is now defined as static; 11437 - added function mpfr_fdump, using mpfr_fprint_binary; 11438 - mpfr_dump: use mpfr_fdump instead of the old mpfr_print_binary. 11439 * mpfr-impl.h: 11440 - replaced mpfr_fprint_binary declaration by mpfr_fdump; 11441 - removed mpfr_print_binary declaration. 11442 * add1sp.c, mul.c, sub1sp.c: replaced mpfr_fprint_binary by mpfr_fdump 11443 and removed the '\n', now output by mpfr_fdump. 11444 114452017-09-28 Vincent Lef��vre <vincent@vinc17.net> 11446 11447 [tests] Added trootn_ui to svn:ignore property. 11448 114492017-09-20 Vincent Lef��vre <vincent@vinc17.net> 11450 11451 [tests/toutimpl.c] 11452 * Check mpfr_print_mant_binary() too. 11453 * GNU coding style. 11454 11455 [src/print_raw.c] Changes in mpfr_print_mant_binary(): 11456 * Output a ']' when a '[' was output earlier. 11457 * Correction: putchar() takes an int (or unsigned char), not a char. 11458 * GNU coding style. 11459 114602017-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11461 11462 changed .align 64 into .p2align 6 (cf https://trac.sagemath.org/ticket/19233) 11463 114642017-09-15 Vincent Lef��vre <vincent@vinc17.net> 11465 11466 [tests] Solve issues with the incorrect use of mpfr_sgn, and make sure 11467 that this cannot happen again without being detected: on zero, +1 or -1 11468 was sometimes expected to check the sign of zero, but mpfr_sgn actually 11469 returned 0, so that the check always succeeded whatever the sign of the 11470 null result. 11471 * mpfr-test.h: define a new mpfr_sgn macro that fails when used on NaN 11472 or zero (whose sign is not +1 or -1), except when MPFR_TESTS_TSGN is 11473 defined. 11474 * tacos.c, tasin.c, tasinh.c, tatanh.c, tcbrt.c, tdim.c, terf.c, 11475 texp.c, texp10.c, texp2.c, texpm1.c, tset.c, tset_str.c: replaced 11476 the incorrect use of mpfr_sgn; some other related improvements. 11477 Note: in tset.c, a "mpfr_sgn (x) < 0" test had to be replaced by 11478 "MPFR_IS_POS (x)" since we really want to test whether the sign 11479 is positive (not negative). 11480 * tdiv.c, tmul.c, tui_div.c: simplified some tests, in particular to 11481 avoid a failure with the new mpfr_sgn macro for the tests; here, 11482 the use of mpfr_sgn was correct, but one could do simpler. 11483 * tgmpop.c: replaced "mpfr_sgn (z)" by "(mpfr_sgn) (z)" to avoid the 11484 new mpfr_sgn macro (here, we really want the mathematical sign). 11485 * tsgn.c: define MPFR_TESTS_TSGN as the goal of this program is to 11486 test mpfr_sgn itself (both the function and the macro in mpfr.h). 11487 11488 [doc/README.dev] "To make a release": Enhanced step 5 (tarballs). 11489 114902017-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11491 11492 patch to avoid using the system mpfr.h 11493 114942017-09-14 Vincent Lef��vre <vincent@vinc17.net> 11495 11496 [tests/tfms.c] Similar changes to what was done in tfma.c: 11497 * replaced "mpfr_cmp" by "! mpfr_equal_p"; 11498 * code formatting (mainly reindentation); 11499 * use of SAME_SIGN for better clarity. 11500 11501 [tests/tfma.c] Similar change to what was done in tfms.c (may be useful 11502 in the future). 11503 11504 [tests] Got rid of the use of mpfr_print_binary, in general with 11505 mpfr_dump. Replaced some "mpfr_out_str (stdout, 2, ...)" by mpfr_dump 11506 for consistency or as improvements. Some other corrections in the 11507 related error messages. 11508 115092017-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11510 11511 added info about autoconf-archive 11512 115132017-09-14 Vincent Lef��vre <vincent@vinc17.net> 11514 11515 Old, deprecated macros mpfr_add_one_ulp and mpfr_sub_one_ulp removed. 11516 115172017-09-13 Vincent Lef��vre <vincent@vinc17.net> 11518 11519 [tools/mpfrlint] Do the tests_start_mpfr / tests_end_mpfr check only if 11520 the .c file has a main() function; this avoids an error on trootn_ui.c, 11521 which just does a #include. 11522 11523 [tests/troot.c] 11524 * Use mpfr_set_zero instead of mpfr_set_ui / mpfr_neg (like what was 11525 done for the infinity, using mpfr_set_inf). 11526 * For exact cases (NaN, ��Inf, ��0), check that the ternary value is 0. 11527 11528 [tests/troot.c] For the root(��0,k) tests, before calling the function, 11529 we set the target y to NaN with the wrong sign, so that if the code of 11530 the function forgets to do something, this will be detected. 11531 11532 [tests/troot.c] Also check root(+0,42) and root(-0,17) for completeness. 11533 11534 [tests/troot.c] Really check the sign of the result 0 (the old test 11535 was always false, thus useless!). 11536 11537 [doc/mpfr.texi] Updated the month. 11538 11539 New mpfr_rootn_ui function; mpfr_root deprecated. 11540 * src/root.c: mpfr_rootn_ui is now the main code, and mpfr_root calls 11541 mpfr_rootn_ui. 11542 * src/mpfr.h: added mpfr_rootn_ui prototype; marked mpfr_root as 11543 deprecated. 11544 * Added tests/trootn_ui.c (includes troot.c). 11545 * tests/troot.c: made it usable (via #include) by the new trootn_ui.c 11546 test. 11547 * tests/Makefile.am: added trootn_ui; at the same time, corrected the 11548 order of the test programs (lexicographic, with exceptions). 11549 * NEWS, TODO, doc/mpfr.texi: update. 11550 11551 [tests] Avoid duplicate code by defining the MAKE_STR() macro in 11552 mpfr-test.h only instead of tgeneric.c and tversion.c. 11553 115542017-09-08 Vincent Lef��vre <vincent@vinc17.net> 11555 11556 [doc/README.dev] "To make a release": Updated the warning, as the issue 11557 concerns the .ps file only (the .dvi file has no papersize info). 11558 11559 [doc/README.dev] "To make a release": Added a warning to check the 11560 papersize of the generated dvi and ps files, which may be incorrect 11561 (bug in texinfo(?) reported as Debian bug 874632). 11562 11563 Switched other gmplib.org URL's to https. 11564 11565 [doc/mpfr.texi] Updated URL: 11566 http://gmplib.org ��� https://gmplib.org/ 11567 11568 [doc/mpfr.texi] Updated URL: 11569 ftp://ftp.gnu.org/gnu/mpfr/ ��� https://ftp.gnu.org/gnu/mpfr/ 11570 11571 [tools/announce-text] Switched to https for ftp.gnu.org. 11572 115732017-09-07 Vincent Lef��vre <vincent@vinc17.net> 11574 11575 [doc/README.dev] "To make a release": update about the uploads. 11576 115772017-09-06 Vincent Lef��vre <vincent@vinc17.net> 11578 11579 [NEWS] Completed item on thread-safe DLL (shared library) support. 11580 11581 [src/mpfr-impl.h] Completed the fix in r11713. 11582 11583 [src/mpfr-impl.h] Fixed thread-safe DLL support with ICC and MSVC 11584 on MS Windows without the GMP build directory (r11712 contained 11585 inconsistent function names, yielding "unresolved external symbol" 11586 errors in tabort_defalloc1.obj), second try. 11587 11588 [src] Attempt to fix thread-safe DLL support with ICC and MSVC on 11589 MS Windows without the GMP build directory. See: 11590 https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00009.html 11591 https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00014.html 11592 i.e. for the mpfr_allocate_func, mpfr_reallocate_func & mpfr_free_func 11593 external TLS variables, one does the same thing as what had been done 11594 for the other ones (__gmpfr_flags, __gmpfr_emin, __gmpfr_emax, etc.). 11595 11596 [tests] Added tget_q to svn:ignore property. 11597 115982017-09-05 Vincent Lef��vre <vincent@vinc17.net> 11599 11600 [tests/tsprintf.c] With MPFR_CHECK_LIBC_PRINTF, disable the test of 11601 the "'" flag with a non-glibc C library (SUS extension in printf). 11602 In particular, it is not supported by AIX 7.2. 11603 11604 [src/mpfr-impl.h] In case decimal_point and/or thousands_sep are 11605 non-single-byte characters (as found on FreeBSD 11 in fr_FR.UTF-8), 11606 revert to the default value. Added a FIXME to support multibyte 11607 decimal_point and thousands_sep. 11608 11609 [tests/tsprintf.c] Formatting. 11610 11611 [doc/README.dev] Added a paragraph about temporary result files created 11612 by test programs. 11613 11614 [tests/Makefile.am] Added tfpif_rw.dat to CLEANFILES. 11615 11616 [tests] Renamed mpfrtest.txt, mpfrtest.dat and mpfrtest2.dat to 11617 tfpif_rw.dat, tfpif_r1.dat and tfpif_r2.dat respectively. 11618 11619 [tests] 11620 * toutimpl.c: Changed the filename of the result file like what 11621 has been done in other test programs, to make sure that it will 11622 not be reused by mistake. Removed comments about tmpname (which 11623 does not exist). 11624 * Makefile.am: Added this filename to CLEANFILES (even though the 11625 file is removed by the test program, an error could occur before 11626 its actual removal). 11627 11628 [tests] 11629 * tfprintf.c, tout_str.c, tprintf.c: Do not use the same filename 11630 for result files created in these test programs, as this breaks 11631 parallel tests (note that such files are used only if /dev/null 11632 does not work, so that Unix-like systems were not affected). 11633 This should fix the bug reported in 11634 https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00000.html 11635 as said in 11636 https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00005.html 11637 * Makefile.am: added a CLEANFILES line with these files. 11638 116392017-09-01 Vincent Lef��vre <vincent@vinc17.net> 11640 11641 [tests/turandom.c] Added test_underflow(). 11642 (merged changesets r11691-11694 from the 3.1 branch) 11643 116442017-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11645 11646 update 11647 11648 updated for mpfr-3.1.6-rc1 11649 116502017-08-28 Vincent Lef��vre <vincent@vinc17.net> 11651 11652 [tools/mpfrlint] Run tools/ck-version-info. 11653 11654 [tools/mpfrlint] Updated a message due to the change in r11673. 11655 11656 [doc/README.dev] "To make a release": The DLL version may need to be 11657 updated too. 11658 11659 [configure.ac] Added a comment about the DLL version. 11660 11661 [configure.ac] Updated DLL version to 6 (cur - age). 11662 11663 [tools/{ck-copyright-notice,ck-inits-clears}] Ignore Emacs lock files 11664 (symbolic links) to avoid a failure when a file is being edited. 11665 11666 [tools] Clean up. 11667 * Renamed check_inits_clears to ck-inits-clears (the other "check" 11668 scripts have a name starting with "ck-"). 11669 * mpfrlint: updated the invocation of this test, simplifying it to 11670 make it similar to the other ones (it was based on old code). 11671 116722017-08-27 Vincent Lef��vre <vincent@vinc17.net> 11673 11674 [tests/turandom.c] Disabled the reprod_abi test with GMP < 4.2.0 11675 since the hardcoded values would be different. 11676 116772017-08-25 Vincent Lef��vre <vincent@vinc17.net> 11678 11679 [src/mpfr-impl.h] Replaced 11680 (MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),0) 11681 by 11682 (MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),MPFR_ASSUME(expr),0) 11683 as a workaround to the fact that mpfr_assert_fail is not marked as 11684 "no return" (bug 21415). Thus, after this code, expr must be true. 11685 11686 [tests/turandom.c] Check that the behavior does not depend on the 11687 platform ABI or MPFR version. 11688 11689 [tests/turandom.c] Corrected error messages after r11661. 11690 11691 [tests/turandom.c] Renamed "reprod" to "reprod_rnd_exp" (reproducibility 11692 test with several rounding modes and exponent ranges), because a second 11693 reproducibility test will be added. 11694 11695 [tests/turandom.c] 11696 * In underflow_tests, test the flags in all cases (not just when the 11697 returned result is 0), possibly by first computing the result in a 11698 large exponent range. 11699 * Since the flags are now well tested in underflow_tests, no longer 11700 test them in the second test of test_urandom for k = 0, which was 11701 the incorrect test that was failing (see r11659). 11702 11703 [tests/turandom.c] Do some test several times in order to trigger 11704 a "mpfr_urandom() returns incorrect flags for emin = 1" failure 11705 when GMP_CHECK_RANDOMIZE is not set (default). 11706 Note: It is this test that is actually wrong (it corresponds to the 11707 old behavior, currently found in the 3.1 branch, and was not updated 11708 after the mpfr_urandom code was fixed). 11709 11710 [tests/turandom.c] Code formatting. Added an assertion. 11711 117122017-08-24 Vincent Lef��vre <vincent@vinc17.net> 11713 11714 [tests/turandom.c] Check that the behavior of mpfr_urandom() does not 11715 depend on the rounding mode. 11716 11717 [doc/mpfr.texi] Completed the description of mpfr_urandom. 11718 11719 [src/urandom.c] Completed comment. 11720 117212017-08-23 Vincent Lef��vre <vincent@vinc17.net> 11722 11723 [tests/turandom.c] In bug20170123, use a local gmp_randstate_t variable 11724 instead of mpfr_rands, due to the gmp_randseed_ui (see r11653). 11725 11726 [tools/mpfrlint] Detect the use of gmp_randseed* functions on mpfr_rands 11727 (this is bad practice: this would affect later tests, defeating the 11728 purpose of GMP_CHECK_RANDOMIZE; another gmp_randstate_t variable should 11729 be used instead of mpfr_rands). 11730 11731 [tests/{mpfr-test.h,tests.c}] Got rid of __gmp_randstate_struct, which 11732 is internal to GMP: its use came from very old code (r2330 in 2003-06) 11733 and it is no longer needed. 11734 11735 [tests/turandom.c] Disabled a test with GMP < 4.2.0 since it depends on 11736 a specific behavior of the random generator, which changed in GMP 4.2.0 11737 (the test would probably fail with such old GMP versions). 11738 11739 [src/urandom.c] Partly rewrote mpfr_urandom() so that the next 11740 random state no longer depends on the current exponent range 11741 and the rounding mode, and that the exceptions due to the 11742 rounding of the random number are now correctly generated. 11743 [doc/mpfr.texi] Updated the mpfr_urandom() documentation and 11744 updated Section "API Compatibility / Changed Functions" to 11745 mention the change in MPFR 4.0. 11746 [NEWS] Mentioned the change for MPFR 4.0. 11747 117482017-08-22 Vincent Lef��vre <vincent@vinc17.net> 11749 11750 [src/urandom.c] Minor change about underflow, following the usage. 11751 11752 [tests/turandom.c] Added inex test for the underflow & overflow tests. 11753 11754 [tests/turandom.c] Added overflow tests. 11755 11756 [tests/turandom.c] Indentation. 11757 11758 [tests/turandom.c] Added underflow tests. 11759 11760 [tests/turandom.c] With mini-gmp, omit another test that assumes 11761 a deterministic random generator. 11762 11763 [src/urandom.c] Bug fix: the inexact flag was not set on underflow. 11764 11765 [tests/turandom.c] Added tests of the flags. This currently yields 11766 a failure (inexact flag not set on underflow). 11767 11768 [tests/turandom.c] Added a test of the underflow flag. 11769 117702017-08-21 Vincent Lef��vre <vincent@vinc17.net> 11771 11772 [src/urandom.c] Set the underflow flag if the drawn exponent is less 11773 than emin. This corresponds to "underflow before rounding" while the 11774 normal rule in MPFR is "underflow after rounding". Thus this needs to 11775 be fixed. 11776 Note: This simple change has been done so that it can be merged with 11777 the 3.1 branch. But this will not be fixable in the 3.1 branch since 11778 the significand is not drawn in this case, and drawing the significand 11779 to determine whether there is an underflow would change the state of 11780 the PRNG at the end of the function, breaking the ABI and the users' 11781 expectations. 11782 11783 [src/urandom.c] Updated comments about overflow and its flag. 11784 11785 [src/urandom.c] Simplified the code, but, except for precision 1, 11786 without changing the state of the PRNG. 11787 Note: The code could be simplified even further, but the goal of the 11788 current change is to allow it to be merged with the 3.1 branch (where 11789 precision 1 is not supported) without too many conflicts. 11790 11791 [src/urandom.c] Moved some code without consequences. Updated comments. 11792 11793 [src/urandom.c] Useless parentheses; reformatting. 11794 117952017-08-17 Vincent Lef��vre <vincent@vinc17.net> 11796 11797 [src/set_float128.c] No longer depend on the native FP type "double" 11798 (via mpfr_set_d), avoiding the usual precision issues with the x87 11799 traditional FPU in particular. Use the internal representation with 11800 limbs, instead. The code is simpler and should also be faster. 11801 Note: together with r11627, this avoids the tset_float128 failure 11802 with the "-m32 -mpc32" GCC options. 11803 11804 [src/get_float128.c] Removed variable z (no longer useful). 11805 11806 [src/get_float128.c] No longer depend on the native FP type "double" 11807 (via mpfr_get_d), avoiding the usual precision issues with the x87 11808 traditional FPU in particular. Use the internal representation with 11809 limbs, instead. The code is simpler and should also be faster. 11810 118112017-08-14 Vincent Lef��vre <vincent@vinc17.net> 11812 11813 [src/get_float128.c] Fixed the remaining cases of mpfr_get_float128 11814 (when the value is below the smallest subnormal in absolute value). 11815 11816 [src/get_float128.c] Partly fixed mpfr_get_float128 when it underflows. 11817 [tests/tset_float128.c] Added tests for small values, in particular 11818 involving underflows (and subnormals). 11819 118202017-08-13 Vincent Lef��vre <vincent@vinc17.net> 11821 11822 [src/get_float128.c] Reverted r11623 (a note mainly for the 3.1 branch, 11823 which actually doesn't support __float128). 11824 118252017-08-12 Vincent Lef��vre <vincent@vinc17.net> 11826 11827 [src/get_float128.c] Updated the FIXME. 11828 118292017-08-08 Vincent Lef��vre <vincent@vinc17.net> 11830 11831 [src/get_float128.c] Added a FIXME after a bug report by Rob: 11832 https://sympa.inria.fr/sympa/arc/mpfr/2017-08/msg00003.html 11833 118342017-08-03 Vincent Lef��vre <vincent@vinc17.net> 11835 11836 [doc/mpfr.texi] Section "Getting the Best Efficiency Out of MPFR" moved 11837 from "Installing MPFR" to "MPFR Basics". Added corresponding node. 11838 118392017-08-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11840 11841 new section "How to get the best out of MPFR" 11842 118432017-08-03 Vincent Lef��vre <vincent@vinc17.net> 11844 11845 [doc/mpfr.texi] Added a FIXME about memory allocation. 11846 11847 [doc/mpfr.texi] Updated the month. 11848 11849 [doc/mpfr.texi] Removed obsolete comments. 11850 11851 [doc/mpfr.texi] Updated paragraph on the MPFR formatted output functions 11852 and overflow on the return type int. 11853 118542017-08-02 Vincent Lef��vre <vincent@vinc17.net> 11855 11856 [NEWS] Mention the use of the old dtags under Linux (see r11588). 11857 11858 [src] Moved mpfr_vasprintf from vasprintf.c to printf.c and updated 11859 file descriptions for consistency (vasprintf.c should probably be 11860 renamed later to something like printf_aux.c). 11861 11862 [src/printf.c] Updated a comment (taking r11269 into account). 11863 11864 [src/vasprintf.c] Added an assertion. 11865 11866 [src/vasprintf.c] Completed mpfr_vasnprintf_aux description. 11867 118682017-08-01 Vincent Lef��vre <vincent@vinc17.net> 11869 11870 [tests/{tstdint.c,tvalist.c}] Include "mpfr-test.h" instead of 11871 "mpfr-impl.h" (this is done only when compiling with mini-gmp). 11872 11873 [tools/mpfrlint] Detect "mpfr-impl.h" inclusion by the test programs: 11874 "mpfr-test.h" should be included instead; otherwise __MPFR_WITHIN_MPFR 11875 will be defined, yielding failures under MS Windows with DLL. 11876 118772017-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11878 11879 fixed typo 11880 118812017-07-28 Vincent Lef��vre <vincent@vinc17.net> 11882 11883 [doc/mpfr.texi] Added important details for the example from r11595. 11884 118852017-07-27 Vincent Lef��vre <vincent@vinc17.net> 11886 11887 [doc/mpfr.texi] Minor changes. 11888 11889 [doc/mpfr.texi] Updated the month. 11890 118912017-07-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11892 11893 fixed FIXME related to r11595 11894 118952017-07-27 Vincent Lef��vre <vincent@vinc17.net> 11896 11897 [doc/mpfr.texi] Added FIXME on example from r11595. 11898 118992017-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11900 11901 [mpfr.texi] added example showing how to emulate fixed-point arithmetic 11902 119032017-07-17 Vincent Lef��vre <vincent@vinc17.net> 11904 11905 [src/sin_cos.c] Avoid integer overflows with precision 1100000 and 11906 the 32-bit ABI (32-bit long), fixing bug reported by Simon Byrne: 11907 https://sympa.inria.fr/sympa/arc/mpfr/2017-07/msg00002.html 11908 11909 [tests] Re-indented some RND_LOOP / RND_LOOP_NO_RNDF blocks. 11910 11911 [configure.ac] Under Linux, make sure that the old dtags are used 11912 if LD_LIBRARY_PATH is defined, avoiding the following issue: 11913 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732 11914 https://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html 11915 (merged changeset r11587 from the 3.1 branch) 11916 119172017-07-10 Vincent Lef��vre <vincent@vinc17.net> 11918 11919 [tests/tversion.c] Forgot casts for printf in r11585. 11920 11921 [tests/tversion.c] Added ABI information & tests. 11922 119232017-06-20 Vincent Lef��vre <vincent@vinc17.net> 11924 11925 [src/subnormal.c] Correction in comment (English). 11926 119272017-06-19 Vincent Lef��vre <vincent@vinc17.net> 11928 11929 [tests/tversion.c] 11930 * Better organization; moved MPFR patches info below MPFR version. 11931 * Output __GMP_CC and __GMP_CFLAGS values. 11932 * Output GMP ABI info (to be completed with MPFR ABI info). 11933 119342017-06-03 Vincent Lef��vre <vincent@vinc17.net> 11935 11936 [configure.ac] Improved some AC_DEFINE comments. 11937 11938 [doc/README.dev] Added quotes for clarity. 11939 11940 [tests/mpf_compat.h] Always use stdout for failure messages. 11941 11942 [src/get_str.c] Improved comments (avoid the confusion between a 11943 negative base argument and a negative base). 11944 119452017-06-02 Vincent Lef��vre <vincent@vinc17.net> 11946 11947 [doc/mpfr.texi] Punctuation. 11948 119492017-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11950 11951 added mpfr_get_q in Added Functions 11952 11953 src/get_str.c: fixed for negative base 11954 tests/tget_str.c: added tests for negative base 11955 11956 tests/mpf_compat.h: non-regression tests for bugs fixed in revision 11565 11957 11958 src/get_str.c: allow -36 <= b <= -2 too (work in progress) with the same 11959 meaning as in mpf_get_str 11960 11961 fixed a bug in mpfr_mul for RNDF when Mulders' algorithm is used 11962 (and resolved a FIXME) 11963 119642017-06-02 Vincent Lef��vre <vincent@vinc17.net> 11965 11966 [doc/mpfr.texi] Corrected mpfr_get_q documentation. 11967 11968 [src/get_q.c] Added assertions to detect integer overflows, in case 11969 mpfr_exp_t is larger than mp_bitcnt_t. 11970 119712017-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11972 11973 src/mpf2mpfr.h: replaced __MPFR_GMP (requires internal mpfr-gmp.h) 11974 11975 src/mpf2mpfr.h: fixed fits_s* functions and get_si 11976 11977 use macro __MPFR_GMP 11978 11979 added new function mpfr_get_q 11980 11981 src/mpf2mpfr.h: added mpf_cmp_z (appeared in GMP 6.1.0) 11982 119832017-06-01 Vincent Lef��vre <vincent@vinc17.net> 11984 11985 [Makefile.am] Put doc/README.dev in EXTRA_DIST to provide this file in 11986 tarballs too (it is not installed by "make install", though), since 11987 it contains information that may be useful for users of tarballs and 11988 various distributed files mention it. 11989 [README] Update about the "doc" directory and "doc/README.dev". 11990 11991 [doc/README.dev] More information about the DEBUG macro. 11992 11993 [doc/mpfr.texi] Updated the month. 11994 11995 Update about MPFR_RNDF (faithful rounding): 11996 * NEWS: mention that it is partially supported (should be updated 11997 once MPFR_RNDF is completely supported). 11998 * TODO: moved an item to the right place (MPFR_RNDF is not removed 11999 from the TODO because it is not completely supported yet). 12000 * doc/mpfr.texi: added a FIXME about the partial support. 12001 120022017-05-31 Vincent Lef��vre <vincent@vinc17.net> 12003 12004 [src/{atanh.c,log1p.c}] 12005 * Replaced mpfr_get_exp by MPFR_GET_EXP (so that the exponent is 12006 checked with --enable-assert). 12007 * For a test, doing the division first should be better. 12008 120092017-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12010 12011 improved log1p and atanh for small inputs 12012 12013 added expm1 to mbench 12014 12015 added log1p to mbench 12016 120172017-05-29 Vincent Lef��vre <vincent@vinc17.net> 12018 12019 [doc/mpfr.texi] Updated the month. 12020 12021 Removed trailing spaces. 12022 12023 [tests] Code simplification and improvement by using SAME_VAL(). 12024 12025 [tests/tbeta.c] Replaced not_same() by the simpler ! SAME_VAL(). 12026 12027 [src/sum.c] Code reindentation due to a new test for MPFR_RNDF support, 12028 and other minor changes in formatting and comments. 12029 12030 [doc/sum.txt] Typo in the MPFR_RNDF text. 12031 12032 Merged the "faithful" branch into the trunk: 12033 faithful rounding (MPFR_RNDF). 12034 12035 [tests/tgeneric.c] For MPFR_RNDF, replaced EQUAL() by SAME_VAL(), 12036 which also tests the sign (to distinguish +0 and -0). 12037 12038 [tests/tui_sub.c] Avoid a failure in 32-bit ABI by replacing 12039 RND_LOOP by RND_LOOP_NO_RNDF. 12040 12041 Merged the latest changes from the trunk. 12042 120432017-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12044 12045 added new reference 12046 120472017-05-24 Vincent Lef��vre <vincent@vinc17.net> 12048 12049 [tests/tsprintf.c] Fixed setlocale usage (problem detected with MinGW) 12050 by not using the returned string any longer. Indeed, ISO C99 says that 12051 this string "may be overwritten by a subsequent call to the setlocale 12052 function". 12053 12054 [src] Moved "#include <errno.h>" from printf.c to vasprintf.c 12055 (this should have been done in r5230, where EOVERFLOW was moved). 12056 This fixes the "Got r = -1, errno = 0" errors in tprintf with 12057 MPFR_CHECK_LARGEMEM=1. 12058 12059 [src/vasprintf.c] Added overflow detection at the end (due to the switch 12060 to mpfr_intmax_t for the string length in the string_buffer structure, 12061 it was no longer detected; however, this bug was not normally visible in 12062 the tests because here, a negative value was returned thanks to wrapping 12063 in a type conversion and the negative value was changed to the expected 12064 -1 value in printf.c). 12065 12066 [src/vasprintf.c] Added log messages. 12067 12068 [src/vasprintf.c] In case of overflow, do not stop before everything has 12069 been processed, allowing the %...n arguments to be filled, as decided. 12070 12071 [tests/tprintf.c] check_long_string() error handling: initialize n2 to 12072 an invalid value and do all tests before exiting. 12073 12074 [src/vasprintf.c] Fixed some parts of overflow tracking. 12075 12076 [tests/tprintf.c] More detailed error message. 12077 12078 [tests/tprintf.c] Added tests with %ln. 12079 12080 [tests/tprintf.c] Improved check_vprintf_failure(). 12081 12082 [src/vasprintf.c] Fixed the handling of the 'n' format specifier 12083 for size = 0, still allowing its support in case of overflow on 12084 the return value (i.e. when the number of characters that would 12085 have been output is > INT_MAX). 12086 Note: full support in case of overflow is still limited by GMP 12087 and the C library. 12088 [tests/tprintf.c] Increased the memory needed in check_long_string(). 12089 120902017-05-23 Vincent Lef��vre <vincent@vinc17.net> 12091 12092 [src/mpfr-intmax.h] Define mpfr_uintmax_t and MPFR_INTMAX_MAX too. 12093 However, this will not necessarily be used by src/vasprintf.c, as 12094 this can be regarded as an EOVERFLOW error for which the behavior 12095 on the %...n values is not specified, i.e. we may not need to 12096 support size values larger than INT_MAX. 12097 120982017-05-22 Vincent Lef��vre <vincent@vinc17.net> 12099 12100 [src/vasprintf.c] In a macro definition, changed a parameter to 12101 lowercase so that it doesn't look like a constant to mpfrlint. 12102 12103 [src/vasprintf.c] Added a FIXME for the percent_n() / mixed() bug due 12104 to the 'n' format specifier with size = 0. The way to fix this issue 12105 depends on the specifications in case of overflow on the return value, 12106 and for POSIX, they are unclear. Waiting for comments... 12107 12108 [src/mpfr-intmax.h] Define mpfr_intmax_t as being the largest 12109 signed integer type available for the MPFR build. It will be 12110 useful for the formatted output functions (src/vasprintf.c) to 12111 handle the 'n' format specifier, assuming that the value may 12112 be larger than INT_MAX, which is possible assuming that the 12113 C standard has a defect in the corresponding specification: 12114 https://sourceware.org/bugzilla/show_bug.cgi?id=21360 12115 12116 [tests/tsprintf.c] Added explanation for the bugs triggered by 12117 percent_n() and mixed(). 12118 12119 [tests/tsprintf.c] Added percent_n() test to reproduce the bug found 12120 in mixed(), test without random data. 12121 12122 [src/vasprintf.c] In partition_number(), complete check for overflow 12123 on total. 12124 12125 [src/vasprintf.c] Partially fixed check for integer overflow when 12126 the long and int types have the same size. 12127 12128 [src/vasprintf.c] With assertions enabled, check that the number of 12129 characters to be written computed in partition_number() corresponds 12130 to what is really written. 12131 12132 [src/vasprintf.c] Fixed the bug triggered by the da_DK locale test: the 12133 computation of the number of characters to be written was incorrect in 12134 partition_number() when the thousands separator was not empty. This bug 12135 was visible with size = 0 and could be visible near overflow on the 12136 number of characters. 12137 Note: the buggy code was introduced in r5288 (2008-02-15), which fixed 12138 other issues with the thousands separator. 12139 12140 [tests/tsprintf.c] Do more tests in the da_DK locale (these are the 12141 only tests for which the thousands separator is not empty). 12142 12143 [tests/tsprintf.c] Do more tests involving check_sprintf() in a loop 12144 (to test mpfr_snprintf with size = 0 more often), and call mixed() 12145 later in order to get failures without the use of %n first. 12146 121472017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12148 12149 get rid of computations with 'double' in mpfr_zeta 12150 121512017-05-19 Vincent Lef��vre <vincent@vinc17.net> 12152 12153 [tests/tsprintf.c] Added a TODO about %n test. 12154 12155 [doc/README.dev] Added MPFR_TESTS_FPE_TRAP documentation. 12156 12157 [tests/tests.c] Corrected comment about MPFR_TESTS_FPE_TRAP. 12158 12159 Renamed MPFR_TESTS_DIVBYZERO to MPFR_TESTS_FPE_DIV (less confusing). 12160 In doc/README.dev, updated the corresponding description. 12161 12162 [tests] Renamed MPFR_RAISE_EXCEPTIONS to MPFR_TESTS_FPE_TRAP. 12163 12164 [tests] Got rid of MPFR_TESTS_EXCEPTIONS (added in r11489 and above), 12165 which is redundant with MPFR_TESTS_DIVBYZERO and MPFR_ERRDIVZERO. The 12166 code related to these exceptions is now like r11488 (see the output of 12167 "svn diff -r11488"), but keeping the following changes: 12168 * Missing !defined(MPFR_ERRDIVZERO) tests added in r11498,11499. 12169 * In tests.c: 12170 - code related to traps (macro MPFR_RAISE_EXCEPTIONS, which will 12171 be renamed); 12172 - more detailed output about which FP exceptions occurred; 12173 - removal of "#ifdef MPFR_ERRDIVZERO" (as in r11493), as this is 12174 better with Automake 1.13+ (required by MPFR since r9375). 12175 Note: EXCEPTIONS_FLAG renamed to FPE_FLAGS, since EXCEPTIONS_FLAG is 12176 reserved by ISO C when <errno.h> is included. 12177 12178 [tests/tsprintf.c] Do the locale_da_DK() test several times to yield 12179 a failure by default once the bug triggered by mixed() is fixed. 12180 12181 [tests/tsprintf.c] Updated comment about r11501: the failure occurs 12182 with %n when the size argument of mpfr_vsnprintf is 0. 12183 12184 [tests/tsprintf.c] Do more tests with %n. One now gets a failure 12185 by default (which occurs when one gets randsize <= 0). 12186 12187 [tests/tsprintf.c] Fixed portability issues: The va_end(3) man page 12188 of Linux Programmer's Manual says: "On some systems, va_end contains 12189 a closing '}' matching a '{' in va_start, so that both macros must 12190 occur in the same function, and in a way that allows this." 12191 12192 [tests/tget_set_d64.c] Disable tests with a division by 0 (which now 12193 occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined. 12194 12195 [tests/tset_ld.c] Disable an overflow test with a division by 0 12196 (now occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined. 12197 12198 [doc/README.dev] Details for "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO". 12199 12200 [tests/tsprintf.c] In mixed(), initialize n2 to an invalid value 12201 in order to ease failure analysis. 12202 122032017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12204 12205 removed leftover debug statement in last commit 12206 12207 fix for clang bug (https://bugs.llvm.org//show_bug.cgi?id=17686) 12208 122092017-05-19 Vincent Lef��vre <vincent@vinc17.net> 12210 12211 [tests/tests.c] Change for MPFR_TESTS_DIVBYZERO: in case of FE_DIVBYZERO 12212 or FE_INVALID, fail unconditionally, not just when MPFR_ERRDIVZERO is 12213 defined, otherwise one cannot see the output about the floating-point 12214 exceptions with "make check" (the test of MPFR_ERRDIVZERO here should 12215 have been removed after switching to Automake 1.13, which discards the 12216 output when the test program succeeds). 12217 Note: defining MPFR_TESTS_DIVBYZERO without MPFR_ERRDIVZERO is just for 12218 debugging. 12219 122202017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12221 12222 more work on MPFR_TESTS_EXCEPTIONS 12223 122242017-05-19 Vincent Lef��vre <vincent@vinc17.net> 12225 12226 [tests/tests.c] Re-added code testing FE_DIVBYZERO and FE_INVALID with 12227 -DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO, because MPFR_TESTS_EXCEPTIONS 12228 is not ready yet. 12229 12230 [tests/tversion.c] Output IEEE floats status. 12231 122322017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12233 12234 check for fp exceptions (experimental) 12235 122362017-05-17 Vincent Lef��vre <vincent@vinc17.net> 12237 12238 [src/cmp2.c] Added/updated comments. 12239 12240 [tests/tcmp2.c] Added tests with equal numbers, possibly of different 12241 sizes. 12242 12243 [src/cmp2.c] Corrected comments. 12244 12245 [tools/mpfrlint] In the detection of reserved macro names, skip ERR 12246 from src/mpfr-gmp.h (this is a special case). 12247 12248 [tests/tget_set_d64.c] Made PRINT_ERR_MISC more robust. 12249 12250 [tests/*.c] Renamed the remaining macros whose names are reserved 12251 by ISO C when <errno.h> is included. 12252 122532017-05-16 Vincent Lef��vre <vincent@vinc17.net> 12254 12255 [tests/texceptions.c] Made code formatting consistent. 12256 12257 [tests/*.c] Renamed "ERROR" macro (macro name reserved by ISO C 12258 when <errno.h> is included) to "PRINT_ERROR", and made the macro 12259 more robust. 12260 12261 Define the EXP() macro in src/mpfr-gmp.h only when needed (macro name 12262 reserved by ISO C when <errno.h> is included). 12263 12264 [src/gamma.c] Got rid of the EXPM1_STR macro (macro name reserved 12265 by ISO C when <errno.h> is included), made no longer interesting by 12266 using mpfr_set_str_binary only once and another temporary variable. 12267 At the same time, replaced the usual allocation by a GROUP allocation 12268 (more efficient). 12269 122702017-05-15 Vincent Lef��vre <vincent@vinc17.net> 12271 12272 [tests/tcheck.c] Code reformatting (GNU coding style). 12273 12274 [tests/tcheck.c] Renamed "ERROR" macro (macro name reserved by ISO C 12275 when <errno.h> is included) to "PRINT_ERROR". 12276 12277 Do not define macro names starting with "SIG" (+ uppercase letter) 12278 as they are reserved when <signal.h> is included (ISO C, 7.31.7), 12279 which happens to be the case in tests/tests.c, which also includes 12280 tests/mpfr-test.h and src/mpfr-impl.h indirectly. 12281 * src/mpfr-impl.h, tests/mpfr-test.h: renamed macros: 12282 SIGN ��� VSIGN 12283 SIGN_RAND ��� RAND_SIGN 12284 * {src,tests}/*.{c,h}: updated the names in the use of these macros. 12285 12286 [tools/mpfrlint] Added a comment about the definition of reserved 12287 identifiers (in particular, macro names). 12288 12289 [tools/mpfrlint] Detect the definition of reserved macro names. 12290 12291 [src/bernoulli.c] Changed isprime to is_prime in order to avoid obscure 12292 problems if <ctype.h> is added to mpfr-impl.h in the future (or if this 12293 function is made external). See ISO C "Future library directions", 12294 Clause 7.31.2 "Character handling <ctype.h>". 12295 122962017-05-12 Vincent Lef��vre <vincent@vinc17.net> 12297 12298 [src/mpfr-impl.h] Improved comments about assertions and MPFR_ASSUME(). 12299 123002017-05-09 Vincent Lef��vre <vincent@vinc17.net> 12301 12302 [INSTALL] Mention the problem when almost all the tests fails with a 12303 message "Incorrect MPFR version! ...". 12304 12305 Increase the buffer sizes even more, and added a comment. This may 12306 be better in case of quick future changes (possibly for debugging), 12307 without checking carefully. For the tests, optimal code is useless. 12308 123092017-05-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12310 12311 fixed bugs found by gcc 7.1.0 (-Werror=format-overflow=) 12312 [VL] The MPFR code was correct. This is actually a bug in GCC: 12313 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79257 12314 123152017-05-09 Vincent Lef��vre <vincent@vinc17.net> 12316 12317 [doc] Updated FAQ.html with update-faq. 12318 123192017-05-05 Vincent Lef��vre <vincent@vinc17.net> 12320 12321 [tools/mbench/timp.h] Updated TIMP_MEASURE() to handle the case where 12322 the return value is 0: this probably means that timp_overhead was too 12323 large and incorrect. In this case, TIMP_OVERHEAD() is called again to 12324 recompute timp_overhead and the timing is redone. 12325 Note: if we do not call TIMP_OVERHEAD() again, then TIMP_MEASURE() 12326 loops indefinitely, meaning that timp_overhead was really too large. 12327 12328 [tools/mbench/timp.h] Comment at the wrong place. Fixed. 12329 12330 [tools/mbench/timp.h] Added a comment about r11458. 12331 123322017-05-04 Vincent Lef��vre <vincent@vinc17.net> 12333 12334 [tools/mbench/timp.h] Fixed overflows on unsigned arithmetic. 12335 12336 [tools/mbench/mfv5.h] Increased values from 2^60-1 to 2^64-1 12337 (it is possible to get more than 2^60-1 cycles in practice!). 12338 12339 Merged the latest changes from the trunk, including some old changesets 12340 related to mpfr_zeta that were skipped, resolving conflicts. Added RNDF 12341 support to new code introduced by this merge: 12342 * mpfr_mul_1n in src/mul.c (from r11281); 12343 * mpfr_sqr_1n in src/sqr.c (from r11283); 12344 * mpfr_div_1n in src/div.c (from r11284); 12345 * mpfr_sqrt1n in src/sqrt.c (from r11293). 12346 12347 Merged r11198-11280 from the trunk; no conflicts but additional changes: 12348 * About r11271 (src/add1sp.c), which introduces new special code 12349 (function mpfr_add1sp1n), handle MPFR_RNDF in the same way as done 12350 in similar existing special code (mpfr_add1sp1 and mpfr_add1sp2). 12351 * In mpfr_add1sp3, do the same thing (this should have been done in 12352 r11172, where this function was introduced via a merge). 12353 * About r11279 (src/sub1sp.c, tests/tsub1sp.c), which introduces new 12354 special code (function mpfr_sub1sp1n), do the same thing. 12355 In tests/tsub1sp.c, s/RND_LOOP/RND_LOOP_NO_RNDF/ as usual to avoid 12356 a failure. 12357 * Note: concerning mpfr_sub1sp3, RNDF support was added at the same 12358 time of the merge in r11179. 12359 * Some style changes related to RNDF, in particular for consistency. 12360 12361 Merged r11197 from the trunk, resolving the conflict. 12362 12363 Merged r11179-11196 from the trunk (no conflicts). 12364 123652017-05-02 Vincent Lef��vre <vincent@vinc17.net> 12366 12367 [src/gamma.c] Clarified proof for tiny arguments again. 12368 12369 [src/gamma.c] Clarified proof for tiny arguments. 12370 12371 [src/gamma.c] In the proof for tiny arguments: 12372 * Simplification suggested by Paul. 12373 * Attempt to clarify the end. 12374 123752017-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12376 12377 added comment 12378 12379 added reference for mbench (rdtsc vs rdtscp) 12380 123812017-04-28 Vincent Lef��vre <vincent@vinc17.net> 12382 12383 [src/gamma.c] Tiny arguments: corrected a typo and added a TODO 12384 (one might get a better condition). 12385 12386 [src/gamma.c] Corrections in a proof for tiny arguments. Added a TODO. 12387 123882017-04-27 Vincent Lef��vre <vincent@vinc17.net> 12389 12390 [doc/README.dev] Update about the MPFR_GENERIC_ABI macro. 12391 12392 [src/sqr.c] Corrected a comment. 12393 12394 [src/sqrt.c] Blank line like in add1sp.c, sub1sp.c, etc. 12395 12396 [src/sqr.c] Blank lines and comment like in add1sp.c, sub1sp.c, etc. 12397 12398 [src/mul.c] Like in add1sp.c and sub1sp.c, do not define the specific 12399 functions for low precision if MPFR_GENERIC_ABI is defined (they are 12400 not called in such a case). 12401 12402 [src/sub1sp.c] Added blank lines for readability (like in add1sp.c). 12403 12404 s/interruption/interrupt/ 12405 12406 [mbench] Updated copyright years. Added a comment. 12407 124082017-04-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12409 12410 better detection of rdtscp 12411 124122017-04-18 Vincent Lef��vre <vincent@vinc17.net> 12413 12414 [src/mpfr-impl.h] Updated a comment, with reference to GCC bug 80454. 12415 124162017-04-09 Vincent Lef��vre <vincent@vinc17.net> 12417 12418 [tests/tprintf.c] Avoid integer overflow from r11411 with 32-bit long. 12419 124202017-04-07 Vincent Lef��vre <vincent@vinc17.net> 12421 12422 [tools/mpfrlint] Updated test to check that the snprintf function (C99) 12423 is not used. 12424 12425 [doc/mpfr.texi] Corrected an English error. 12426 12427 [src/vasprintf.c] Fixed bug triggered by the test added in r11428: 12428 the size field of struct printf_spec must have type size_t, not int, 12429 because the size argument of mpfr_snprintf has type size_t. 12430 12431 [tests/tsprintf.c] Added a test that fails on 64-bit machines 12432 (4-byte int, 8-byte size_t), due to the use of mpfr_snprintf 12433 with required size = (size_t) UINT_MAX + 1. 12434 12435 [src/vasprintf.c] Minor changes. 12436 12437 [src/vasprintf.c] Comment re-indentation. 12438 12439 [src/ubf.c] Renamed mpfr_get_zexp to mpfr_init_get_zexp for clarity. 12440 124412017-04-06 Vincent Lef��vre <vincent@vinc17.net> 12442 12443 [src/mpfr-impl.h] Fixed silly typo in MPFR_UBF_CLEAR_EXP() yielding 12444 either an obscure memory leak or a crash in some mpfr_fmma calls. 12445 We would really need formal proofs on the code... Or avoid macros. 12446 124472017-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12448 12449 [tests/tfmma.c] added one test 12450 12451 [tests/tfmma.c] fixed test 12452 124532017-04-06 Vincent Lef��vre <vincent@vinc17.net> 12454 12455 [src/add1.c] Updated comment about underflow. 12456 12457 [src/add1.c] Handling of UBF and overflow/underflow. 12458 * Added a MPFR_ASSERTD related to the overflow code. 12459 * Bug fix: handle underflow, possible if UBF input(s). 12460 124612017-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12462 12463 [tests/tfmma.c] added another test (currently fails) 12464 124652017-04-06 Vincent Lef��vre <vincent@vinc17.net> 12466 12467 [src/sub1.c] Bug fix: underflow was not detected in the case cancel = 0 12468 with UBF numbers. At the same time, refactored the related code a bit. 12469 12470 [tests] Added tbeta to svn:ignore property. 12471 12472 [doc/mpfr.texi] Formatting of the mpfr_can_round example for 80-column 12473 terminals + GNU coding style. 12474 12475 [tests/tfmma.c] Updated comment about bug20170405 (fixed in r11414). 12476 12477 [src/sub1.c] Also corrected the comment about overflow detection. 12478 12479 [src/sub1.c] Really fixed overflow detection (r11412 is broken). 12480 12481 [src/sub1.c] Fixed/improved UBF cases. 12482 * Added an assertion (usual MPFR limitation with huge precisions, 12483 affecting 32-bit ABI only in practice). 12484 * Fixed overflow detection. 12485 12486 [tests/tprintf.c] In check_long_string(), which is called when 12487 MPFR_CHECK_LARGEMEM is defined, increase tests_memory_limit if need be 12488 in order to avoid an obvious failure due to insufficient memory. 12489 12490 [tests/memory.c] Write all error messages to stderr in order to make 12491 sure that they remain visible when the standard output is redirected 12492 (e.g. in tprintf). Rewrote the messages in a consistent way. 12493 12494 [tests/tfmma.c] Fixed return type of test added in r11407. 12495 12496 [tests/tinits.c] When MPFR_CHECK_LARGEMEM is defined, increase 12497 tests_memory_limit if need be in order to avoid an obvious failure 12498 due to insufficient memory. 12499 125002017-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12501 12502 added test that triggers an error 12503 (see https://sympa.inria.fr/sympa/arc/mpfr/2017-04/msg00016.html) 12504 125052017-04-05 Vincent Lef��vre <vincent@vinc17.net> 12506 12507 [doc/mpfr.texi] Updated the month. 12508 12509 [doc/mpfr.texi] More details about errno. 12510 125112017-04-04 Vincent Lef��vre <vincent@vinc17.net> 12512 12513 [doc/README.dev] Added a paragraph about the use of errno. 12514 12515 [doc/mpfr.texi] Details about EOVERFLOW. 12516 125172017-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12518 12519 [tests/tstrtofr.c] added test in bug20161217() 12520 125212017-04-03 Vincent Lef��vre <vincent@vinc17.net> 12522 12523 [TODO] Update about functions returning a native floating-point value 12524 and underflow/overflow. 12525 12526 [src/atanh.c] Removed comment giving the "optimal" working precision 12527 (I do not see any proof in algorithms.tex, and it seems incorrect). 12528 12529 [TODO,src/log1p.c] log1p(x) on small x should also be improved instead 12530 of computing log(1+x). 12531 12532 [TODO,src/atanh.c] Suggest a faster formula for atanh(x) on small x. 12533 12534 [src/atanh.c] Cosmetic changes (comments and whitespace). 12535 12536 [TODO] Update about ERANGE. 12537 125382017-03-27 Vincent Lef��vre <vincent@vinc17.net> 12539 12540 [tests/tbeta.c] Fixed a macro (use of mpfr_printf, missing cast). 12541 125422017-03-09 Vincent Lef��vre <vincent@vinc17.net> 12543 12544 [NEWS] Mention how to find the full list of bug fixes. 12545 12546 [tests/tstrtofr.c] Updated comments about bug20161217 and bug20170308. 12547 12548 [tests/tstrtofr.c] Added comments about bug20161217 and bug20170308. 12549 12550 [tests/tstrtofr.c] Updated comment: bug20170308 checks the same bug 12551 as bug20161217. 12552 12553 [doc/mpfr.texi] Updated the month. 12554 125552017-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12556 12557 added non-regression test 12558 125592017-03-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12560 12561 [doc/mpfr.texi] results should not depend on machine rounding mode/precision 12562 125632017-03-06 Vincent Lef��vre <vincent@vinc17.net> 12564 12565 [doc/sum.txt] Minor corrections. 12566 125672017-03-05 Vincent Lef��vre <vincent@vinc17.net> 12568 12569 [src/sum.c] Added a comment about shiftq. 12570 125712017-02-28 Vincent Lef��vre <vincent@vinc17.net> 12572 12573 [tests/tbeta.c] C89 compatibility and some code reformatting. 12574 12575 [src/beta.c] Slightly improved comments. 12576 12577 [src/beta.c] Fixed a bug in reduced exponent range (not detected by 12578 the current tests). 12579 12580 [src/beta.c] Added a comment for Beta(0,negative integer). 12581 12582 [src/beta.c] Eventually fixed the case z or w is 0 (note: r11374 12583 did also other unwanted changes, reverted here). 12584 12585 [src/beta.c] Reverted my changes (this was incorrect). 12586 12587 [src/beta.c] Fixed special cases. 12588 12589 [src/beta.c] Added comments and some corrections (incomplete) for the 12590 case "z or w is 0". 12591 125922017-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12593 12594 [src/beta.c] fixed case z or w is 0 12595 12596 [tests/tbeta.c] patch from Cade Brown 12597 - signed zeros are checked in is_same 12598 - the case above (summing non-integer negative z, w which sum to a negative integer) 12599 126002017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12601 12602 [doc/mpfr.texi] added mpfr_beta in "Added Functions" 12603 126042017-02-27 Vincent Lef��vre <vincent@vinc17.net> 12605 12606 [src/jn.c] Use MPFR_ADD_PREC. 12607 12608 [src/beta.c] Updated comments; added a FIXME. 12609 126102017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12611 12612 [src/jn.c] in case the first Ziv loop failed, take into account the number of 12613 lost bits 12614 126152017-02-27 Vincent Lef��vre <vincent@vinc17.net> 12616 12617 [src/beta.c] Use MPFR_ARE_SINGULAR. 12618 126192017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12620 12621 [src/beta.c] fix in case z and w are not integers and z+w is a nonpositive integer 12622 12623 [src/odd_p.c] new source file 12624 12625 [src/Makefile.am] new file odd_p.c 12626 [src/beta.c] fixed bug 12627 [src/mpfr-impl.h] renamed mpfr_is_odd into mpfr_odd_p 12628 [src/pow.c] moved mpfr_is_odd (renamed mpfr_odd_p) into separate file 12629 126302017-02-27 Vincent Lef��vre <vincent@vinc17.net> 12631 12632 [src/beta.c] Added a FIXME (test failure with assertions). 12633 12634 [src/beta.c] Removed an unusual space. 12635 12636 [tests/tbuildopt.c] Added calls to tests_start_mpfr and tests_end_mpfr. 12637 12638 [tools/mpfrlint] Added a test to check that the usual test programs 12639 call tests_start_mpfr and tests_end_mpfr. 12640 126412017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12642 12643 [src/beta.c] several fixes 12644 [src/pow.c] renamed is_odd to mpfr_is_odd, and export it 12645 [src/mpfr-impl.h] export mpfr_is_odd as internal function 12646 [tests/tbeta.c] added generic tests 12647 126482017-02-27 Vincent Lef��vre <vincent@vinc17.net> 12649 12650 [tests/tbeta.c] Added missing void in prototype. 12651 12652 Removed trailing spaces. 12653 12654 [tests/tbeta.c] Fixed the usage of MPFR types. 12655 12656 [tests/tbeta.c] Minor correction. Added a FIXME and a TODO. 12657 126582017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12659 12660 [tests/tbeta.c] GNU style and C89 portability 12661 12662 [TODO] removed beta entry 12663 12664 new function mpfr_beta 12665 12666 [tests/tbeta.c] test file for mpfr_beta, contributed by Cade Brown from 12667 ChemicalDevelopment (this commit is the file as it was 12668 contributed, except the mpfr-test.h include) 12669 126702017-02-27 Vincent Lef��vre <vincent@vinc17.net> 12671 12672 [src/beta.c] Portability corrections. 12673 126742017-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12675 12676 [src/beta.c] fix for exact case beta(1,2^k) for k negative integer 12677 12678 [src/beta.c] special values are now implemented (should be reviewed) 12679 126802017-02-25 Vincent Lef��vre <vincent@vinc17.net> 12681 12682 [TODO] mpfr_root: replace "obsolete" by "deprecated" (the right word). 12683 12684 [TODO] Update about rootn. 12685 12686 [TODO] Added some propositions about rootn. 12687 126882017-02-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12689 12690 [src/root.c] added comment 12691 12692 added reference 12693 126942017-02-23 Vincent Lef��vre <vincent@vinc17.net> 12695 12696 [src/beta.c] Call mpfr_check_range as usual. 12697 12698 [src/beta.c] Extended the exponent range for the generic case. 12699 12700 [src/beta.c] Added a comment. 12701 12702 [src/beta.c] Various code improvement / fixes. 12703 12704 [src/beta.c] Added a FIXME. 12705 127062017-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12707 12708 [src/beta.c] added beta function (work in progress, not yet fully implemented, 12709 and not tested) 12710 127112017-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12712 12713 [src/fmma.c] speedup of mpfr_fmma and mpfr_fmms 12714 12715 [src/fma.c] speedup of mpfr_fma when all operands have the same precision 12716 (less than one full limb) 12717 127182017-02-21 Vincent Lef��vre <vincent@vinc17.net> 12719 12720 [NEWS] Note that the position of "const" in the mpfr_sum prototype 12721 has been fixed (in case writers of interfaces for MPFR use that). 12722 12723 "a IEEE 754r decimal64 float" ��� "an IEEE 754-2008 decimal64 float". 12724 127252017-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12726 12727 [src/fma.c] speedup mpfr_fma for 1 limb 12728 12729 754R -> 754-2008 12730 127312017-02-20 Vincent Lef��vre <vincent@vinc17.net> 12732 12733 Removed trailing spaces. 12734 12735 [src/vasprintf.c] Solved the FIXME for %g on easy cases. 12736 127372017-02-17 Vincent Lef��vre <vincent@vinc17.net> 12738 12739 [src/zeta.c] mpfr_reflection_overflow: reverted r11322 as the rounding 12740 direction was correct; it was a comment that was incorrect, now fixed. 12741 12742 [src/zeta.c] mpfr_reflection_overflow: fixed a rounding direction. 12743 12744 [src/zeta.c] Improvements of mpfr_reflection_overflow: 12745 * Moved identical parts of the code at the beginning of if/else blocks 12746 as a single part before the "if". 12747 * When the rounding mode doesn't matter (exact result), use MPFR_RNDN. 12748 * Updated comments (making them more consistent at the same time). 12749 127502017-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12751 12752 [src/zeta.c] added more comments for the overflow case 12753 127542017-02-14 Vincent Lef��vre <vincent@vinc17.net> 12755 12756 [src/sum.c] Added a note about why one uses "const mpfr_ptr *x" in the 12757 prototypes instead of "const mpfr_srcptr *x" (old info from r5381). 12758 [doc/sum.txt] Fixed the const position (see r11316) and added this note. 12759 12760 [src/{mpfr-impl.h,mpfr.h}] Code reformatting and other cosmetic changes. 12761 12762 [doc/mpfr.texi] For mpfr_sum, changed "mpfr_ptr const" to the equivalent 12763 "const mpfr_ptr" (usual style, less confusing). 12764 12765 For mpfr_sum and its auxiliary functions, moved the const type qualifier 12766 to the right place (mpfr_ptr *const ��� const mpfr_ptr *). This bug had 12767 been introduced in r3642 (2005-06-10). 12768 127692017-02-13 Vincent Lef��vre <vincent@vinc17.net> 12770 12771 [src/zeta.c] mpfr_reflection_overflow: added comments and FIXME's; 12772 fixed obvious typos in a comment and the code. 12773 12774 [src/zeta.c] mpfr_reflection_overflow: typo in a comment. 12775 12776 [src/zeta.c] Untabified. 12777 12778 [src/zeta.c] mpfr_reflection_overflow: added an assertion and a comment. 12779 12780 [src/vasprintf.c] Added a comment in a FIXME. 12781 12782 [src/vasprintf.c] Added MPFR_ASSERTD's. 12783 12784 [src/vasprintf.c] Avoid some potential integer overflows. 12785 127862017-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12787 12788 [src/zeta.c] improved overflow detection 12789 127902017-02-13 Vincent Lef��vre <vincent@vinc17.net> 12791 12792 [src/vasprintf.c] Added FIXME's: possible integer overflows. 12793 127942017-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12795 12796 fix for mpfr_zeta overflow on 32-bit computers 12797 127982017-02-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12799 12800 [src/sqr.c] revert detection of leading bit in sqr_1 and sqr_2 12801 (not clear it is faster) 12802 128032017-02-10 Vincent Lef��vre <vincent@vinc17.net> 12804 12805 [tests/tsprintf.c] Added a mpfr_snprintf test with a null pointer, 12806 "%#.*RDg" and a large precision (it currently takes too much memory, 12807 like the similar ones). 12808 12809 [src/vasprintf.c] Added a FIXME for %g on easy cases (too much memory). 12810 [tests/tsprintf.c] Added corresponding tests. 12811 128122017-02-09 Vincent Lef��vre <vincent@vinc17.net> 12813 12814 [src/vasprintf.c] Fix for mpfr_snprintf with size=0: do not allocate 12815 a buffer for the output if not needed. This really fixes bug #21056. 12816 The case size_t < unsigned int could not be solved completely due to 12817 limitations from the C standard and GMP. 12818 12819 [src/sqrt.c] Avoid a warning due to an unused variable with 12820 MPFR_GENERIC_ABI defined or GMP_NUMB_BITS != 64. 12821 12822 [src/sqrt.c] Added MPFR_ASSERTD's from comments. 12823 128242017-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12825 12826 [tests/tzeta.c] interm_overflow -> intermediate_overflow 12827 128282017-02-09 Vincent Lef��vre <vincent@vinc17.net> 12829 12830 [src/zeta.c] Updated a FIXME. 12831 128322017-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12833 12834 improved detection of fmma and fmms 12835 12836 [src/zeta.c] fixed long-standing failure in tzeta 12837 128382017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12839 12840 [src/sqrt.c] fixed a bug, and simplified code (sb=0 implies rb=0) 12841 128422017-02-08 Vincent Lef��vre <vincent@vinc17.net> 12843 12844 [src/vasprintf.c] Updated FIXME. 12845 128462017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12847 12848 [src/sqrt.c] new code for prec=GMP_NUMB_BITS 12849 128502017-02-08 Vincent Lef��vre <vincent@vinc17.net> 12851 12852 [src/vasprintf.c] Moved the size_t vs int FIXME, with details added. 12853 12854 [src/vasprintf.c] Added a MPFR_ASSERTN for security. 12855 12856 [src/vasprintf.c] Added a FIXME for the case size_t < unsigned int. 12857 12858 [src/vasprintf.c] Solved the r11288 FIXME, introducing new ones 12859 with a more visible failure. Not fixed yet because there seems 12860 to be another issue (already present at the beginning in r4993), 12861 which should be considered first. 12862 12863 [src/vasprintf.c] Added a FIXME (related to the cause of the failure). 12864 12865 [src/vasprintf.c] Added some precondition assertions, as the buffer_cat 12866 implementation requires that the current buffer position contains \0. 12867 Note[VL]: tsprintf is still failing with assertions on my machine in 12868 the 32-bit Linux/x86 ABI, but now on the new precondition instead of 12869 postcondition. The behavior with size = 0 actually depends on the state 12870 of uninitialized memory (even in the 64-bit ABI), so that the failures 12871 may be random; the problem is detected by valgrind. 12872 12873 [src/div.c] Declare variables used by GMP_NUMB_BITS == 64 only in the 12874 related code. 12875 128762017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12877 12878 [src/mul.c] simplified logic for special code 12879 [src/div.c] fixed bug in mpfr_div_1n when extra=0 12880 12881 [src/div.c] special code for prec=GMP_NUMB_BITS 12882 12883 [src/sqr.c] new code for p = GMP_NUMB_BITS, and small improvement in mpfr_sqr_1 12884 [src/mul.c] cosmetic changes 12885 128862017-02-08 Vincent Lef��vre <vincent@vinc17.net> 12887 12888 [tests/tsub1sp.c] Fix: C++ compatibility. 12889 128902017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12891 12892 [src/mul.c] added special code for prec=GMP_NUMB_BITS 12893 [src/add1sp.c] use special code only when MPFR_GENERIC_ABI is not defined 12894 [src/sub1sp.c] idem as above 12895 128962017-02-08 Vincent Lef��vre <vincent@vinc17.net> 12897 12898 [src/mpfr-impl.h] Declare the mpfr_vasnprintf_aux prototype (which 12899 uses va_list) only if <stdarg.h> has been included, otherwise the 12900 build was failing with GCC in C90 mode under Linux (and could fail 12901 with other C implementations where this header isn't automatically 12902 included as a consequence of the inclusion of some other header). 12903 129042017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12905 12906 [src/sub1sp.c] new function for p=GMP_NUMB_BITS, fixed bug in mpfr_sub1sp3 12907 [tests/tsub1sp.c] added new tests 12908 129092017-02-08 Vincent Lef��vre <vincent@vinc17.net> 12910 12911 [src/vasprintf.c] Fixed bug introduced in r11273. 12912 12913 [tools/mpfrlint] Updated the "simple mp_limb_t constants" test. 12914 12915 Made some assertions a bit more readable. 12916 12917 [tests/tsub1sp.c] Fixed mpfr_inits2/mpfr_clears sentinel ��� (mpfr_ptr) 0 12918 12919 [tests/tsprintf.c] C90 compatibility. 12920 129212017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12922 12923 [src/vasprintf.c] avoid memory allocation for snprintf with size=0 12924 12925 [src/sub1sp.c] fixed a bug in mpfr_sub1sp1 and mpfr_sub1sp2 (corner case) 12926 [tests/tsub1sp.c] added non-regression test 12927 129282017-02-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12929 12930 [src/add1sp.c] added special code for p=GMP_NUMB_BITS 12931 12932 [src/vasprintf.c] improved also %a and %e 12933 12934 [src/vasprintf.c] fixed bug #21056 12935 129362017-02-07 Vincent Lef��vre <vincent@vinc17.net> 12937 12938 [TODO] More about the mpz_t pool. 12939 12940 [src/free_cache.c] Better file description (keeping it short). 12941 12942 [src/free_cache.c] Updated comments (mpz_t cache ��� mpz_t pool). 12943 12944 [doc/mpfr.texi] Updated the month. 12945 12946 [doc/mpfr.texi] Clarified mpfr_asprintf & mpfr_vasprintf specification 12947 in case of error. 12948 12949 [src/vasprintf.c] Code cleanup. 12950 129512017-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12952 12953 partial solution of bug #21056: a test of mpfr_sprintf still fails 12954 12955 [tests/tmul.c] added test for underflow corner case 12956 12957 [src/div.c] simplified underflow in div_1 and div_2 (one case is not possible) 12958 12959 [tests/tsqr.c] added another corner case for underflow and mpfr_sqr_2 12960 12961 [tests/tsqr.c] added a corner underflow case 12962 129632017-02-06 Vincent Lef��vre <vincent@vinc17.net> 12964 12965 [src/mpfr-impl.h] Added missing function prototype after r11256. 12966 129672017-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12968 12969 [mpfr-impl.h] now mpz_init2 uses the mpz spool too 12970 129712017-02-03 Vincent Lef��vre <vincent@vinc17.net> 12972 12973 [TODO] Added: check the small-precision tables in the tests? 12974 12975 Removed trailing whitespace. 12976 12977 [acinclude.m4] Fixed code for the _mulx_u64 test. 12978 129792017-02-02 Vincent Lef��vre <vincent@vinc17.net> 12980 12981 [tests/tversion.c] Output whether _mulx_u64 is available. 12982 12983 [acinclude.m4] Fixed _mulx_u64 detection to avoid failures in tests 12984 with ICC 15: we need an AC_RUN_IFELSE, not just an AC_LINK_IFELSE. 12985 129862017-01-31 Vincent Lef��vre <vincent@vinc17.net> 12987 12988 [src/invsqrt_limb.h] Improved constants: make their meaning explicit; 12989 portability with 32-bit long (and 64-bit limb). 12990 129912017-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12992 12993 [src/invsqrt_limb.h] new macro __gmpfr_sqrt_limb_approx 12994 [src/sqrt.c] new sqrt1 code using __gmpfr_sqrt_limb_approx 12995 129962017-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12997 12998 [src/sqrt.c] improved slow branch of mpfr_sqrt2 12999 13000 [src/div.c] improved slow branch of mpfr_div_2 13001 13002 [src/div.c] fixed TODO: replaced two if-statements by while-loop 13003 130042017-01-30 Vincent Lef��vre <vincent@vinc17.net> 13005 13006 [src/div.c] Added TODO's. 13007 13008 [src/div.c] Added a MPFR_ASSERTD. 13009 130102017-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13011 13012 [src/atan.c] added comment 13013 13014 [src/invsqrt_limb.h] fixed __gmpfr_sqrt_limb macro 13015 13016 [src/atan.c] small optimization 13017 130182017-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13019 13020 [src/atan.c] speedup for small precision 13021 130222017-01-27 Vincent Lef��vre <vincent@vinc17.net> 13023 13024 [src/mul.c] Disable mpfr_mul_{1,2,3} if MPFR_GENERIC_ABI is defined. 13025 13026 [src/mul.c] Removed useless parentheses that can inhibit warnings. 13027 130282017-01-26 Vincent Lef��vre <vincent@vinc17.net> 13029 13030 [src/mul.c] Updated TODO. 13031 13032 [src/mul.c] Added a TODO about an optimization. 13033 130342017-01-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13035 13036 [src/sqrt.c] fixed error bound for mpfr_sqrt2_approx 13037 130382017-01-25 Vincent Lef��vre <vincent@vinc17.net> 13039 13040 [TODO] Added optimization of test + shift for some processors. 13041 13042 [src/sub1sp.c] Added MPFR_FULLSUB code for mpfr_sub1sp2. 13043 130442017-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13045 13046 [src/sqrt.c] changed error bound back from 16 to 15 13047 130482017-01-25 Vincent Lef��vre <vincent@vinc17.net> 13049 13050 [doc/add-with-carry.c] Added reference to my bug report about Clang's 13051 carry detection missed optimization in chained add-with-carry. 13052 130532017-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13054 13055 [src/sqrt.c] updated error bound for __gmpfr_invsqrt_limb_approx 13056 130572017-01-25 Vincent Lef��vre <vincent@vinc17.net> 13058 13059 [src/sub1sp.c] Added refs to missed/broken optimization with Clang/LLVM. 13060 13061 [src/sub1sp.c] Use the FULLSUB only. Added a comment about the change 13062 in r11227. 13063 130642017-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13065 13066 [src/sub1sp.c] changed MPFR_FULLSUB variant into faster code 13067 130682017-01-24 Vincent Lef��vre <vincent@vinc17.net> 13069 13070 [doc/mpfr.texi] Texinfo typography correction. 13071 13072 [doc/mpfr.texi] Improvements concerning the exponent range. 13073 * mpfr_get_exp: added a FIXME in a comment (documented behavior?). 13074 * mpfr_set_emin / mpfr_set_emax: more specification and details. 13075 * mpfr_subnormalize: clarification; added a warning about emin. 13076 * Example of mpfr_subnormalize: added a note. 13077 In particular, this follows a confusion: 13078 https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00024.html 13079 130802017-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13081 13082 [src/invsqrt_limb.h] changed slightly definition of d10 and d37 (does not 13083 change final error analysis) 13084 130852017-01-23 Vincent Lef��vre <vincent@vinc17.net> 13086 13087 [src/sub1sp.c] Updated comments about subtraction with borrow; the first 13088 one from r11213 was incorrect (bad interpretation of the generated code 13089 for GCC, potentially on a different alternate source code for Clang). 13090 130912017-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13092 13093 [src/sub1sp.c] simplified mpfr_sub1sp1() 13094 13095 [tests/turandom.c] added non-regression test 13096 130972017-01-23 Vincent Lef��vre <vincent@vinc17.net> 13098 13099 [src/urandom.c] Added a FIXME as mpfr_urandom does not always set flags. 13100 13101 [src/urandom.c] Simplified code (no changes in the behavior). 13102 131032017-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13104 13105 [src/urandom.c] fixed bug reported by Trevor Spiteri 13106 (https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00020.html) 13107 131082017-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13109 13110 changed mpn_sqr_n into mpn_sqr 13111 131122017-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13113 13114 new version of mpfr_sqrt2_approx (no longer needs sqrt_tab.h) 13115 131162017-01-20 Vincent Lef��vre <vincent@vinc17.net> 13117 13118 [src/sub1sp.c] Updated TODO, mentioning an optimization bug in LLVM. 13119 13120 [src/sub1sp.c] Updated TODO about full subtraction with borrow. 13121 13122 [src/sub1sp.c] Added alternate code (enabled with -DMPFR_FULLSUB, until 13123 fully tested) to replace a test + correction by a 2-limb subtraction, 13124 recognized by GCC and Clang. 13125 131262017-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13127 13128 renamed __gmpfr_invsqrt_limb into __gmpfr_invsqrt_limb_approx to better reflect 13129 it only gives an approximation 13130 131312017-01-20 Vincent Lef��vre <vincent@vinc17.net> 13132 13133 [src/invert_limb.h] Just like for invsqrt_limb.h (r11210), in 1UL << 60, 13134 replaced 1UL by MPFR_LIMB_ONE to make the code valid with 32-bit long. 13135 13136 [src/invsqrt_limb.h] Bug fix: replaced 1UL by MPFR_LIMB_ONE since the 13137 computations are done on limbs, which are expected to have 64 bits in 13138 this context (the old code would fail on MS Windows / MinGW, where limbs 13139 are 64-bit unsigned long long and unsigned long is a 32-bit type). 13140 13141 [src/invsqrt_limb.h] Portability correction: avoid lines longer than the 13142 POSIX line-length limit of 2047 characters; actually fit on 80 columns. 13143 131442017-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13145 13146 faster version of mpfr_sqrt1(), with smaller table 13147 13148 [src/invert_limb.h] improved __gmpfr_invert_limb* for 64-bit limb 13149 131502017-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13151 13152 [src/div.c] use ADD_LIMB macro, and fixed comment 13153 131542017-01-17 Vincent Lef��vre <vincent@vinc17.net> 13155 13156 [acinclude.m4] MPFR_PARSE_DIRECTORY macro definition: workaround if 13157 the realpath command is not found. Suggestion by Trevor Spiteri: 13158 https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00013.html 13159 Note: I had to modify the patch to use quadrigraphs, otherwise the 13160 generated configure file was invalid. 13161 131622017-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13163 13164 [tdiv.c] added code to exercise mpfr_div2_approx 13165 131662017-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13167 13168 [src/div.c] new variant of mpfr_div2_approx() 13169 131702017-01-13 Vincent Lef��vre <vincent@vinc17.net> 13171 13172 [src/invert_limb.h] Fit on 80 columns (one line was over the 13173 POSIX line-length limit of 2047 characters). 13174 13175 [src/invert_limb.h] Correction in __gmpfr_invert_limb for 32-bit ABI: 13176 _d was used before being defined. 13177 131782017-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13179 13180 [invert_limb.h] added invert_limb code for 32-bit 13181 131822017-01-13 Vincent Lef��vre <vincent@vinc17.net> 13183 13184 [src/add1sp.c] Improved a line based on analysis (+ timings I've done 13185 on x86_64 with GCC and Clang give better results, though they cannot 13186 be conclusive since the gain is too small compared to other possible 13187 causes of variations). 13188 13189 [tools/mbench/Makefile] Added -static to CFLAGS in order to avoid 13190 a link error when MPFR has been built with Clang (linking is done 13191 with .a libraries, i.e. static libraries). 13192 13193 [src/add1sp.c] Replaced "return 0;" by "MPFR_RET(0);" to emphasize on 13194 the fact that we return a ternary value (code instrumentation may also 13195 be easier later). Note: this is equivalent since the macro expands to 13196 0 != 0 ? ... : 0, which gives 0 via trivial optimization. 13197 13198 [src/add1sp.c] Improvements in mpfr_add1sp1; added a TODO. 13199 Note for rb -> bp[0]: the generated code is the same, but the source 13200 is more readable (-> rb has only one meaning). 13201 13202 [src/div.c] C90 compatibility (avoid initializer elements not computable 13203 at load time). 13204 132052017-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13206 13207 [src/div.c] added some alternate code for mpfr_div2_approx (disabled for now) 13208 13209 fixed bug in urandomb.c reported by Dominic Chen 13210 (https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00011.html) 13211 and replaced MPN_COPY_INCR/MPN_COPY_DECR by mpn_copyi/mpn_copyd 13212 13213 [src/div.c] small improvement in div_1 and div_2: force all precisions to be 13214 equal, then we cannot have rb <> 0 and sb = 0 13215 13216 [src/div.c] improved case p=127 (or two-limb case with hard to round case) 13217 132182017-01-12 Vincent Lef��vre <vincent@vinc17.net> 13219 13220 [src/add1sp.c] Added a TODO: slightly better code? 13221 132222017-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13223 13224 [src/div.c] improve mpfr_div_1 for precision 63 13225 132262017-01-12 Vincent Lef��vre <vincent@vinc17.net> 13227 13228 [src/rndna.c] Updated comments. 13229 132302017-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13231 13232 [src/sqrt.c] improved mpfr_sqrt2_approx() 13233 132342017-01-12 Vincent Lef��vre <vincent@vinc17.net> 13235 13236 [doc/mpfr.texi] Typographic correction (including generated spaces). 13237 132382017-01-10 Vincent Lef��vre <vincent@vinc17.net> 13239 13240 Improvement of additions with carry. 13241 * Added doc/add-with-carry.c showing how to do an addition with carry 13242 in C (to make the compiler understand the code). 13243 * src/mpfr-impl.h: added ADD_LIMB macro (addition with carry). 13244 * src/sqr.c: use this ADD_LIMB macro to improve the generated code. 13245 132462017-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13247 13248 [src/sqr.c] 2 calls to umul_ppmm are enough in mpfr_sqr_2 in most cases 13249 13250 [src/div.c] added FIXME 13251 [src/sub1sp.c] added comments 13252 13253 [src/sqrt.c] made code coherent with comment 13254 132552017-01-10 Vincent Lef��vre <vincent@vinc17.net> 13256 13257 [src/sqrt.c] Improved comment from r11180. 13258 132592017-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13260 13261 [src/sqrt.c] improved error bound for mpfr_sqrt2_approx, with known direction 13262 of error 13263 132642017-01-10 Vincent Lef��vre <vincent@vinc17.net> 13265 13266 Merged the latest changes from the trunk and added RNDF support 13267 in mpfr_sub1sp3. 13268 13269 [src/sub1sp.c] Fixed other two bugs in special code for 3 limbs. 13270 TODO: non-regression tests should be added for both. 13271 13272 [src/sub1sp.c] Fixed some bugs in special code for 3 limbs. 13273 13274 [src/sub1sp.c] Simplified a test. 13275 132762017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13277 13278 [src/sqr.c] deal with RNDF in sqr_1, sqr_2 and sqr_3 13279 13280 [src/mul.c] deal with RNDF in mpfr_mul_3 13281 13282 [src/sub1sp.c] added special code for 3 limbs 13283 132842017-01-09 Vincent Lef��vre <vincent@vinc17.net> 13285 13286 Merged the latest changes from the trunk. 13287 13288 [src/add1sp.c] Fixed too large shift count in r11170 (code for 3 limbs). 13289 132902017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13291 13292 [src/add1sp.c] added special code for 3 limbs 13293 13294 [src/sqr.c] added special code for 3 limbs 13295 132962017-01-09 Vincent Lef��vre <vincent@vinc17.net> 13297 13298 Merged the latest changes from the trunk (changing a RND_RAND to 13299 RND_RAND_NO_RNDF in order to avoid a failure in a test). 13300 13301 [tests/tsub1sp.c] Fixed a return type. 13302 13303 [doc/README.dev] Updated note added in r11165. 13304 13305 [doc/README.dev] Added a note about cross-compilation and test 13306 under Wine, with references to bugs in autoconf and dash. 13307 133082017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13309 13310 [tests/tmul.c] fixed typo 13311 133122017-01-09 Vincent Lef��vre <vincent@vinc17.net> 13313 13314 [src/round_raw_generic.c] Added MPFR_RNDF special support (seen as 13315 MPFR_RNDZ since this is faster, with *inexp = 0). 13316 133172017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13318 13319 [src/sub1sp.c] fixed bug in mpfr_sub1sp2 when exponent diff. is GMP_NUMB_BITS 13320 [tests/tsub1sp.c] added testcase 13321 133222017-01-09 Vincent Lef��vre <vincent@vinc17.net> 13323 13324 [src/mul.c] Bug fix in mpfr_mul_3; tmul no longer fails (64-bit ABI). 13325 13326 [tests/tmul.c] Added test of mpfr_mul on 1 to 3 limbs. Currently fails. 13327 133282017-01-08 Vincent Lef��vre <vincent@vinc17.net> 13329 13330 [src/mul.c] Define aq = MPFR_GET_PREC (a), and use this. 13331 133322017-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13333 13334 [src/mul.c] added mpfr_mul_3 13335 [src/sqrt.c] renamed internal functions 13336 [src/sub1sp.c] cosmetic change 13337 133382017-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13339 13340 [src/exp.c] avoid using a full limb as precision 13341 [src/sqrt.c] removed obsolete comment 13342 13343 [src/get_str.c] avoid precision = GMP_NUMB_BITS 13344 13345 [src/div_ui.c] added comment 13346 133472017-01-06 Vincent Lef��vre <vincent@vinc17.net> 13348 13349 [tools/mbench/README] Say how to disable a non-working library. 13350 13351 Merged the latest change from the trunk. 13352 133532017-01-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13354 13355 [src/div.c] fixed previous commit: mpfr_div_1 and mpfr_div_2 also work for 13356 GMP_NUMB_BITS <> 64, only some fast code inside is not defined 13357 133582017-01-06 Vincent Lef��vre <vincent@vinc17.net> 13359 13360 Merged the latest changes from the trunk. 13361 133622017-01-05 Vincent Lef��vre <vincent@vinc17.net> 13363 13364 [src/div.c] Use mpfr_limb_ptr instead of mp_ptr. 13365 13366 [src/div.c] Fix for GMP_NUMB_BITS != 64. 13367 133682017-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13369 13370 [src/div.c] faster division for 2 limbs 13371 133722017-01-05 Vincent Lef��vre <vincent@vinc17.net> 13373 13374 [src/div_ui.c] Coding style. 13375 13376 [src/div_ui.c] Simplification. 13377 13378 [src/div_ui.c] Replaced a MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT. 13379 13380 [tests/tdiv_ui.c] Correction for 64-bit limb with 32-bit unsigned long. 13381 13382 [tests/tdiv_ui.c] Fix when GMP_NUMB_BITS != 64. 13383 133842017-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13385 13386 last fix was incomplete 13387 13388 [src/div_ui.c] fixed a bug in mpfr_div_ui (also affects mpfr_div since it calls 13389 mpfr_div_ui when the divisor has a few bits) 13390 13391 fixed underflow bug by replacing !MPFR_IS_LIKE_RNDZ by new macro 13392 MPFR_IS_LIKE_RNDA: for RNDN, !MPFR_IS_LIKE_RNDZ was true, while new macro 13393 MPFR_IS_LIKE_RNDA is false 13394 133952017-01-04 Vincent Lef��vre <vincent@vinc17.net> 13396 13397 [tests/tdiv.c] Added a test that triggers an assertion failure 13398 in a reduced exponent range (found from the generic tests with 13399 GMP_CHECK_RANDOMIZE=1483628702). 13400 13401 [tests/tgeneric.c] Added debug messages for overflow & underflow tests. 13402 13403 [tests/tdiv_ui.c] Added a comment on new test (doesn't fail). 13404 134052017-01-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13406 13407 [tdiv_ui.c] added new test 13408 134092017-01-03 Vincent Lef��vre <vincent@vinc17.net> 13410 13411 [src/invert_limb.h] Removed an unused variable. 13412 134132017-01-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13414 13415 use a macro instead of a function for __gmpfr_invert_limb and 13416 __gmpfr_invert_limb_approx saves 2-3 cycles 13417 134182017-01-01 Vincent Lef��vre <vincent@vinc17.net> 13419 13420 Merged the latest changes from the trunk. 13421 13422 [doc/mpfr.texi] Updated the month. 13423 13424 Copyright notice update: added 2017 with 13425 perl -pi -e 's/ (\d{4}-)?(2016)(?= Free Software)/ 13426 " ".($1||"$2-").($2+1)/e' **/*(^/) 13427 under zsh, reverting the tools/mbench directory (not distributed with 13428 MPFR). Removed 2016 from the example in the doc/README.dev file. 13429 134302016-12-31 Vincent Lef��vre <vincent@vinc17.net> 13431 13432 [src/sqr.c] Bug fixes (portability): replaced left shift of a value 13433 that can be negative by a multiplication by 2. 13434 13435 [src/sqrt.c] C90 compatibility. 13436 13437 [src/div.c] C90 compatibility. 13438 13439 [src/invert_limb.c] Removed unused variable. 13440 134412016-12-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13442 13443 [src/mul.c] small speedup in mpfr_mul_2 by not computing the product b0*c0 13444 13445 [src/mul.c] fixed typo in comment 13446 [src/sqr.c] likewise 13447 13448 [src/mul.c] fixed regression for 1/2 limbs introduced in revision 11098: 13449 critical routines should not be exported, otherwise we lose a few 13450 cycles (maybe they are inlined by the compiler) 13451 13452 [src/div.c] further improvement in mpfr_div_1() 13453 13454 [src/div.c] use an approximate quotient in mpfr_div_1() 13455 13456 [src/div.c] simplify mpfr_div_1() 13457 13458 [src/invert_limb.c] new file for __gmpfr_invert_limb internal function 13459 (only provided so far for 64-bit limb) 13460 [src/div.c] mpfr_div_1 and mpfr_div_2 don't require --enable-gmp-internals 13461 any more 13462 13463 [sqrt_tab.h] better file description 13464 134652016-12-29 Vincent Lef��vre <vincent@vinc17.net> 13466 13467 Improvement concerning the _mulx_u64 intrinsic. 13468 134692016-12-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13470 13471 [src/div.c] replace GMP's invert_limb (internal) by own code 13472 134732016-12-29 Vincent Lef��vre <vincent@vinc17.net> 13474 13475 Merged the latest changes from the trunk. 13476 13477 [src/sqrt.c] Replaced constant MPFR_ASSERTD by MPFR_STAT_STATIC_ASSERT. 13478 134792016-12-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13480 13481 [src/sqr.c] use special code for 1 and 2 limbs 13482 [mbench] added mpfr_sqr 13483 13484 [src/sqrt.c] faster sqrt code for 2 limbs and 64-bit limb (removed special code 13485 for 32-bit limb) 13486 [src/sqrt_tab.h] new table for mpn_sqrtrem4_approx 13487 13488 [tlog.c] missing printf() 13489 134902016-12-27 Vincent Lef��vre <vincent@vinc17.net> 13491 13492 [NEWS] Mention that mpfr_get_str now also sets the inexact flag when 13493 the conversion is inexact (completing r11073). 13494 13495 [mpfr.texi] Be stronger in mpfr_round_nearest_away documentation 13496 (as the ternary value is used each time the last bit on p+1 bits 13497 is not 0, i.e. in about half cases). 13498 134992016-12-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13500 13501 [mpfr.texi] added stuff in mpfr_round_nearest_away documentation 13502 135032016-12-27 Vincent Lef��vre <vincent@vinc17.net> 13504 13505 [src/log.c] Added another FIXME concerning the error analysis. 13506 13507 [src/log.c] Added an assertion and a FIXME: error in the MPFR code or 13508 in the proof (error analysis). 13509 13510 [src/log.c] Slight simplification / improvement. 13511 13512 [doc/algorithms.tex] In Section "The logarithm function" (from r9046), 13513 removed everything concerning the AGM since this is not what is done 13514 in the MPFR code, where mpfr_agm is simply called (and this function 13515 already has its own description later). 13516 Note: The error analysis of mpfr_log can only be found in log.c, but 13517 seems incorrect (though the bounds may be valid); it was introduced 13518 in r416. 13519 135202016-12-26 Vincent Lef��vre <vincent@vinc17.net> 13521 13522 Merged the latest changes from the trunk (this concerns only src/log.c). 13523 13524 [src/log.c] Group constant terms together (GCC takes advantage of this, 13525 at least on x86_64). 13526 13527 [src/log.c] Check for integer overflow (no visible changes in 13528 standard configuration) + explanations. 13529 13530 [src/log.c] Get the exponent of the input only once. 13531 135322016-12-20 Vincent Lef��vre <vincent@vinc17.net> 13533 13534 [doc/sum.txt] Update for faithful rounding (MPFR_RNDF). 13535 13536 [src/sum.c] Fixed the bug mentioned in r11077. 13537 13538 [tests/tsum.c] The new test for MPFR_RNDF in r11079 can actually trigger 13539 a failure; increased the number of tests to get a failure by default. 13540 13541 [tests/tsum.c] Improved a test to support MPFR_RNDF. It doesn't fail, 13542 but would if 0 in "corr = 0" were changed to -1 or 1 (tested). 13543 13544 Removed trailing spaces. 13545 13546 [src/sum.c] Improvement for MPFR_RNDF, but still based on the change 13547 done in r10512, which was incorrect; added a FIXME (a non-regression 13548 test needs to be added first). 13549 13550 Merged the latest changes from the trunk (this concerns only src/sum.c 13551 and will be useful for the upcoming improvement). 13552 13553 [src/sum.c] Delay some assignments so that they are done just before 13554 the variables are used (this should have been done in r10467). 13555 13556 Merged the latest changes from the trunk. 13557 13558 [doc/mpfr.texi] For mpfr_get_str, explicitly say that the inexact flag 13559 is set iff the result is inexact (since this may not be obvious and this 13560 wasn't the case until now). In the compatibility section, mention this 13561 change. 13562 13563 [doc/mpfr.texi] For mpfr_get_str, removed the note saying that 13564 the inexact flag is not set when the conversion is inexact: 13565 this is fixed in r11071. 13566 13567 [src/get_str.c] Corrected a comment and a test for inexactness 13568 (��� the new tget_str.c test no longer fails). 13569 135702016-12-19 Vincent Lef��vre <vincent@vinc17.net> 13571 13572 [tests/tstrtofr.c] Added a comment. 13573 13574 [src/strtofr.c] Better indentation. 13575 13576 [tests/tstrtofr.c] Replaced mpfr_cmp() == 0 by mpfr_equal_p(). 13577 13578 [doc/mpfr.texi] Updated the month. 13579 13580 [src/get_str.c] Removed an obsolete comment, which came from r2757 13581 (and even before, under another form); this comment no longer made 13582 any sense as the sign of dir is no longer tested. 13583 13584 [src/get_str.c] Indentation fixed. 13585 13586 [src/get_str.c] Setting the inexact flag as done in r11060 was incorrect 13587 since the flags are restored. Moreover, this was done even when the Ziv 13588 loop was going to fail (it's not clear whether this was expected). Moved 13589 the test out of the Ziv loop, and update the copy of the flags instead 13590 of the flags that will be overwritten. 13591 Note: this still fails, but now for another reason. 13592 13593 [tests/tget_str.c] Check the inexact flag for mpfr_get_str. 13594 The test currently fails. 13595 135962016-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13597 13598 [get_str.c] inexact flag should now be correct in mpfr_get_str 13599 13600 [strtofr.c] updated comment 13601 136022016-12-18 Vincent Lef��vre <vincent@vinc17.net> 13603 13604 [doc/mpfr.texi] Added a short note about the default precision for Re. 13605 136062016-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13607 13608 [mpfr.texi] added emin in comment about mpfr_round_nearest_away 13609 13610 fixed bug in mpfr_strtofr (and likely similar bug in mpfr_get_str) 13611 136122016-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13613 13614 [tstrtofr.c] added test for bug in mpfr_strtofr() 13615 136162016-12-17 Vincent Lef��vre <vincent@vinc17.net> 13617 13618 [src/sqrt.c] Added "do ... while (0)" in macro definition. 13619 136202016-12-16 Vincent Lef��vre <vincent@vinc17.net> 13621 13622 Removed trailing whitespace. 13623 13624 [src/round_raw_generic.c] Completed the support for MPFR_RNDNA (set 13625 *inexp if use_inexp is true), from a patch by John P. Hartmann. 13626 136272016-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13628 13629 new mpn_sqrtrem4_approx function (unused so far) 13630 136312016-12-15 Vincent Lef��vre <vincent@vinc17.net> 13632 13633 [tests/tsqrt.c] The latest changes made tsqrt fail in an inexact test 13634 on MPFR_RNDF. Fixed by changing RND_RAND to RND_RAND_NO_RNDF. 13635 13636 Merged the latest changes from the trunk. 13637 13638 [src/sin.c] Handled a FIXME. 13639 13640 [src/sqrt_tab.h] Added copyright notice. 13641 136422016-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13643 13644 [sqrt.c] simplify code for GMP_NUMB_BITS = 64 13645 136462016-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13647 13648 better fix than r11025 13649 13650 [sqrt_tab.h] new header file with table for mpn_sqrtrem2_approx() 13651 [sqrt.c] new version of mpn_sqrtrem2_approx() 13652 13653 [sqrt.c] added mathematical error in mpn_sqrtrem2_approx() 13654 13655 added non-regression test for bug fix in r11037 13656 136572016-12-14 Vincent Lef��vre <vincent@vinc17.net> 13658 13659 [src/vasprintf.c] Fixed a bug as spec.prec can be a negative number 13660 other than -1 (if such a value is given as an argument with ".*"). 13661 This is the probable cause of the assertion failure on: 13662 https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21056&group_id=136 13663 136642016-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13665 13666 [sqrt.c] faster version of mpn_sqrtrem2 for 64-bit limb 13667 13668 [sqrt.c] approximate version of mpn_sqrtrem2, saves a few cycles in mpfr_sqrt1 13669 13670 [add/sub] added MPFR_UNLIKELY when adding one ulp changes the binade 13671 136722016-12-12 Vincent Lef��vre <vincent@vinc17.net> 13673 13674 [src/sin.c] Added missing word in r11032 comment. 13675 13676 [src/sin.c] Common/related subexpressions. Added a FIXME. 13677 136782016-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13679 13680 [cos.c,exp_2.c,log.c] improved initial precision for Ziv's strategy 13681 13682 [sin.c] improved strategy for initial precision 13683 13684 [sqrt.c] updated code and comments 13685 13686 [sqrt.c] slightly improve mpn_rsqrtrem1() (and detailed error analysis) 13687 13688 [sqrt.c] removed mpn_sqrtrem1 (no longer needed since r11023) 13689 13690 [sqrt.c] fixed comments to be coherent with the code 13691 13692 fixed https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21053&group_id=136 13693 136942016-12-09 Vincent Lef��vre <vincent@vinc17.net> 13695 13696 [src/sqrt.c] Corrected a comment (1 has exponent 1 and we support 13697 precision 1). 13698 136992016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13700 13701 [sqrt.c] no more special case for prec <= GMP_NUMB_BITS/2, and added comments 13702 137032016-12-09 Vincent Lef��vre <vincent@vinc17.net> 13704 13705 [src/sqrt.c] Bug fix (replaced = by ==). Note: this kind of bug could 13706 be detected by avoiding extra parentheses. 13707 13708 [src] Simplified ~MPFR_LIMB_ZERO to MPFR_LIMB_MAX. 13709 137102016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13711 13712 [div.c] simplified mpfr_div_1 and mpfr_div_2 13713 13714 [div.c] added comments and simplified code 13715 13716 [div.c] simplified code 13717 13718 likewise for mpfr_mul_2() 13719 13720 fixed bug in mpfr_mul_1() introduced in r11004 and added test case 13721 13722 [div.c] simplified underflow test in mpfr_div_1() 13723 137242016-12-09 Vincent Lef��vre <vincent@vinc17.net> 13725 13726 [src/div_ui.c] underflow is unlikely! 13727 13728 [src/sqrt.c] overflow and underflow are unlikely! 13729 137302016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13731 13732 [div.c] overflow and underflow are unlikely! 13733 13734 [div.c] slightly better code (less dependencies) for mpfr_div_1 when u0 >= v0 13735 13736 [div.c] simplified mpfr_div_1() code 13737 13738 [div.c] in mpfr_div_1, do not deal with the case where the precision is 13739 <= GMP_NUMB_BITS/2, to not slow down the general case 13740 137412016-12-09 Vincent Lef��vre <vincent@vinc17.net> 13742 13743 [src/mul.c] Slight improvement (but shouldn't affect the generated code 13744 with an optimizing compiler). 13745 137462016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13747 13748 [mul.c] likewise for mpfr_mul_2() 13749 13750 [mul.c] simplified mpfr_mul_1() 13751 13752 fixed similar bug in mpfr_mul_2() + non-regression test 13753 13754 [mul.c] simplified the code and fixed a bug 13755 [tmul.c] added non-regression test for fixed bug 13756 13757 [sub1sp.c] added comment + assert 13758 137592016-12-09 Vincent Lef��vre <vincent@vinc17.net> 13760 13761 [src] Fixed bug introduced in r10964 with --with-gmp-build: move 13762 the numberof_const() definition from mpfr-gmp.h to mpfr-impl.h. 13763 137642016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13765 13766 [add1sp.c] added comment 13767 13768 [add1sp.c] simplified mpfr_add1sp2() 13769 13770 [sub1sp.c] in mpfr_sub1sp2(), compute a0 before a1 whenever possible 13771 137722016-12-09 Vincent Lef��vre <vincent@vinc17.net> 13773 13774 [tools/mbench/mfv5.cc] Fixed type. 13775 137762016-12-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13777 13778 [mbench] fixed typo 13779 137802016-12-08 Vincent Lef��vre <vincent@vinc17.net> 13781 13782 Replaced two ~0 with mp_limb_t target by MPFR_LIMB_MAX. 13783 13784 [tools/mpfrlint] Added a test detecting code like ~0 (either an error 13785 or poorly written code). 13786 137872016-12-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13788 13789 improved add1sp.c and sub1sp.c like in r10991 13790 13791 [mbench] set default max_exp to 1 (independent of number of bits per limb) 13792 13793 [sub1sp.c] improved further 13794 13795 [mbench] use mpfr_printf to print test numbers 13796 13797 fixed bug in mfv5 (numbers used were 10 times too large) 13798 137992016-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13800 13801 added rounding code for RNDF in special routines for 1 and 2 limbs 13802 13803 [sub1sp.c] corrected a comment, added another one 13804 138052016-12-07 Vincent Lef��vre <vincent@vinc17.net> 13806 13807 [src/add1sp.c] Typo in a comment. 13808 13809 [src/pow.c] Punctuation to make clear that there are 2 sentences. 13810 138112016-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13812 13813 likewise r10983 13814 13815 [add1sp.c] improved a conditional (if compiler is not smart enough) 13816 13817 [exp_2.c] small improvements 13818 138192016-12-07 Vincent Lef��vre <vincent@vinc17.net> 13820 13821 [src/mpfr-impl.h] MPFR_INT_CEIL_LOG2(x) macro: added a FIXME and an 13822 assertion concerning whether x <= ULONG_MAX or not. 13823 13824 [src/pow.c] Added an assertion. 13825 138262016-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13827 13828 [algorithms.tex] fixed typo 13829 13830 [pow.c] tuned starting precision (and removed obsolete comment) 13831 13832 use MPFR_INT_CEIL_LOG2 13833 13834 modified the semantics of mpfr_can_round for rnd2=RNDF 13835 138362016-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13837 13838 [mfv5] added option -e, for example use -e1 to avoid over/underflow in mpfr_pow 13839 13840 [pow.c] reduced overhead of special cases (gives speedup of a factor of two 13841 for 53 bits of precision) 13842 138432016-12-06 Vincent Lef��vre <vincent@vinc17.net> 13844 13845 Merged the latest changes from the trunk except those related to 13846 mpfr_zeta (it is buggy and not fixed yet in the trunk, but the bug 13847 will not be triggered here, allowing the tests to pass). 13848 138492016-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13850 13851 added mpfr_pow 13852 138532016-12-06 Vincent Lef��vre <vincent@vinc17.net> 13854 13855 [tools/mpfrlint] Correction for zsh change after v5.2 (POSIX compat: 13856 "set -e; f() { false && true; }; f; echo OK" no longer prints OK). 13857 138582016-11-29 Vincent Lef��vre <vincent@vinc17.net> 13859 13860 Check that the numberof() macro is used on an array. 13861 * src/mpfr-gmp.h: define numberof_const() macro, equivalent to the 13862 old numberof() macro: no check, but constant expression; improved 13863 the numberof() macro to check that it is used on an array (since 13864 an array can silently be converted to a pointer in C). Note that 13865 potential failures are currently reported at run time. 13866 * src/mulders.c: replaced numberof by numberof_const in #define's 13867 (also removed a useless cast at the same time). 13868 138692016-11-17 Vincent Lef��vre <vincent@vinc17.net> 13870 13871 [src/set_ld.c,tests/tset_ld.c] Updated comments, in particular 13872 concerning LDBL_MAX. 13873 138742016-11-15 Vincent Lef��vre <vincent@vinc17.net> 13875 13876 [tests/tset_ld.c] Added an overflow test that triggers a bug for 13877 double-double (IBM long double format). See: 13878 https://sympa.inria.fr/sympa/arc/mpfr/2016-11/msg00006.html 13879 13880 [src/get_ld.c] Fixed bugs for double-double (IBM long double format): 13881 * one from r8650, which could yield a spurious assertion failure 13882 in debug mode in case of underflow (with result 0); 13883 * one from r8972, which used the variable sign uninitialized and 13884 could yield a result with an incorrect sign. 13885 13886 [tests/tset_ld.c] Added a missing exit(1). 13887 13888 [tests] _GMP_IEEE_FLOATS was got rid of in r10150, but still used in 13889 the tests, meaning that some tests were no longer done. So, get rid of 13890 _GMP_IEEE_FLOATS also in the tests. Testing !defined(MPFR_ERRDIVZERO) 13891 or defined(HAVE_SIGNEDZ) should be sufficient, depending on the context 13892 (they were already used alone at some other places, so that new failures 13893 are unlikely); anyway, _GMP_IEEE_FLOATS was not the right macro to test. 13894 Only tget_set_d64.c has a specific change to use _MPFR_IEEE_FLOATS. 13895 13896 [src/get_ld.c] For double-double (IBM long double format): test other 13897 special values, as this may be useful. 13898 13899 [src/get_ld.c] For double-double (IBM long double format), the code 13900 was incorrect on large finite values, which are infinite as a double: 13901 (+inf) + (-inf) was computed, which is NaN (thanks to Rob for the 13902 report). Fixed this bug, with code clean up (not tested). 13903 139042016-11-10 Vincent Lef��vre <vincent@vinc17.net> 13905 13906 [INSTALL] Added a note about MinGW and libtool error "libobj name ... 13907 may not contain shell special characters.", with a solution. 13908 139092016-11-09 Vincent Lef��vre <vincent@vinc17.net> 13910 13911 [doc/sum.txt] Final corrections. 13912 13913 [doc/sum.txt] Another correction due to the rewrite for reuse support. 13914 13915 [doc/sum.txt] Correction. 13916 139172016-11-08 Vincent Lef��vre <vincent@vinc17.net> 13918 13919 [src/sum.c] Added a short explanation for halfway cases. 13920 13921 [doc/sum.txt] Improved an example (from my ARITH-23 slides). 13922 13923 [doc/sum.txt] English usage. 13924 139252016-11-07 Vincent Lef��vre <vincent@vinc17.net> 13926 13927 [doc/sum.txt] Explained the handling of halfway cases for sq = 1 13928 (since the explanations for sq ��� 2 are not valid for sq = 1). 13929 13930 [doc/sum.txt] Minor update. 13931 13932 [doc/sum.txt] Last corrections. Concerning the setting of the sign of 13933 the result, this changed with the support for precision 1 (see r10068). 13934 13935 [doc/sum.txt] Correction (English). 13936 13937 [doc/sum.txt] Correction about neg / sgn. 13938 13939 [doc/sum.txt] Added details about the handling of halfway cases, as 13940 the rule is not obvious due to two's complement representation. 13941 139422016-11-06 Vincent Lef��vre <vincent@vinc17.net> 13943 13944 [src/sum.c] Cosmetic change for consistency between lbit and rbit. 13945 13946 [doc/sum.txt] Minor update. 13947 139482016-11-04 Vincent Lef��vre <vincent@vinc17.net> 13949 13950 [doc/sum.txt] A bit more explanations. 13951 13952 [doc/sum.txt] Corrected the usage of the HYPHEN-MINUS character (-): 13953 * If it is a minus sign, use U+2212 MINUS SIGN (as already done). 13954 * Do not use "-" after the "non" and "pre" prefixes. 13955 13956 [doc/sum.txt] Minor improvement. 13957 139582016-10-27 Vincent Lef��vre <vincent@vinc17.net> 13959 13960 [tools/mpfrlint] Replaced "TZ=UTC" by "TZ=GMT0" for portability. 13961 13962 [doc/sum.txt] Added a note. 13963 13964 [doc/sum.txt] Update for the current code (support of reused arguments); 13965 some other improvements. 13966 13967 [doc/sum.txt] Corrected 2 typos. 13968 13969 [src/sum.c] Changed a MPN_COPY_DECR to MPN_COPY, which may be more 13970 efficient: as of r10464 (support for reused arguments), the memory 13971 used by the accumulator for the TMD resolution is no longer a part 13972 of the main accumulator, so that we now know that the memory blocks 13973 do not overlap. 13974 139752016-10-26 Vincent Lef��vre <vincent@vinc17.net> 13976 13977 [src/sum.c] Corrected a comment from r10503. 13978 13979 [src/sum.c] Moved/rewrote a comment (should have been done in r10467). 13980 139812016-10-25 Vincent Lef��vre <vincent@vinc17.net> 13982 13983 [doc/sum.txt] Started the update for the code supporting reuse. 13984 13985 [src/mpfr-impl.h] Fixed r10916 (thanks to Eli Zaretskii for the report). 13986 139872016-10-24 Vincent Lef��vre <vincent@vinc17.net> 13988 13989 [src/mpfr-impl.h] Improved a macro from r10916 (just in case...). 13990 13991 [src] Support build as thread-safe DLL on Windows: clean-up. 13992 * Increased the use of macros to avoid some code duplication 13993 (with risks of typos) and to prevent the problems related 13994 to thread-safe DLL from appearing in the .c files. 13995 * The prototypes of the functions to access the address of a 13996 TLS variable are now defined. Otherwise one gets warnings: 13997 https://sympa.inria.fr/sympa/arc/mpfr/2016-10/msg00004.html 13998 139992016-10-20 Vincent Lef��vre <vincent@vinc17.net> 14000 14001 [doc/sum.txt] Minor correction and improvement (English). 14002 14003 [doc/sum.txt] "a" ��� "an" before "additional iteration". 14004 140052016-10-18 Vincent Lef��vre <vincent@vinc17.net> 14006 14007 [src/mpfr-gmp.h] Updated a comment about bit-fields. 14008 140092016-10-17 Vincent Lef��vre <vincent@vinc17.net> 14010 14011 [doc/mpfr.texi] Updated the FIXME concerning the mpfr_can_round 14012 specification with MPFR_RNDF (faithful rounding): after discussion 14013 with PZ, reverted r10909,10910; added a note explaining the choice 14014 done for this specification. 14015 140162016-10-14 Vincent Lef��vre <vincent@vinc17.net> 14017 14018 [doc/mpfr.texi] Another correction of the FIXME concerning the 14019 mpfr_can_round specification with MPFR_RNDF (faithful rounding). 14020 14021 [doc/mpfr.texi] Corrected FIXME concerning the mpfr_can_round 14022 specification with MPFR_RNDF (faithful rounding). 14023 140242016-09-27 Vincent Lef��vre <vincent@vinc17.net> 14025 14026 [src] 14027 * mpfr-impl.h: document the memory allocated for a significand; 14028 added a cast to avoid a direct conversion from mp_limb_t * to 14029 mp_size_t *. 14030 * init2.c, round_prec.c, set_prec.c: code clean-up by correcting 14031 the type expected for the second argument of MPFR_SET_MANT_PTR 14032 (this macro has a cast, so that this should not change anything, 14033 but the old type mpfr_limb_ptr was meaningless and confusing). 14034 140352016-09-23 Vincent Lef��vre <vincent@vinc17.net> 14036 14037 [examples/version.c] For MPFR >= 4, output float128 support info. 14038 14039 [examples/version.c] A bit more output. 14040 14041 [examples/version.c] 14042 * Really support C++ compilers (tested with g++ 6.2.0). 14043 * Output information about the C implementation. 14044 * Detect MPIR (��� output information on MPIR instead of GMP). 14045 14046 [examples/version.c] 14047 * Code simplification: support for MPFR versions less than 3.0 had 14048 already been dropped with the use of MPFR_RNDN. 14049 * For MPFR patches, output "[none]" when there are no patches. 14050 * Output mpfr_ptr size. 14051 140522016-09-21 Vincent Lef��vre <vincent@vinc17.net> 14053 14054 [src/sin_cos.c] Avoid the reuse of variables for two completely 14055 different things (with different orders of magnitude)! Changed types. 14056 14057 [src/exp3.c] Avoid the reuse of variables for two completely different 14058 things (with different orders of magnitude)! Added a cast to avoid a 14059 potential integer overflow (like in r10881). 14060 14061 [src/atan.c] Avoid the reuse of variables for two completely different 14062 things (with different orders of magnitude)! Changed types. 14063 14064 [src/{atan.c,sin_cos.c}] Added casts to avoid potential integer 14065 overflows. Possible issue reported by David Binderman: 14066 https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00029.html 14067 Note: From tests I've done on mpfr_atan, there would be issues with 14068 16-bit int, but for 32-bit int, one could need several hundreds of 14069 billions of bits for the target precision. 14070 14071 [doc/README.dev] "To make a release": updated paragraph about warnings. 14072 14073 [src/mpfr-impl.h] In the MPFR_RET macro, avoid the use of an integer 14074 in a boolean context (even though that this is not wrong in C). Fix 14075 after a bug report from David Binderman. Explanations: 14076 https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00028.html 14077 140782016-09-16 Vincent Lef��vre <vincent@vinc17.net> 14079 14080 [doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a 14081 paragraph on the sin(...) term of the reflection formula. 14082 14083 [doc/algorithms.tex] More work on the Riemann Zeta function. 14084 140852016-09-15 Vincent Lef��vre <vincent@vinc17.net> 14086 14087 [doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a 14088 paragraph briefly describing how the precisions of the variables 14089 will be chosen (this is much more efficient than the current code 14090 when the target precision is much lower than the input precision). 14091 14092 Some improvements / corrections in the description / proof of the 14093 algorithm for the Riemann Zeta function. 14094 * doc/algorithms.tex, section on the Riemann Zeta function: the case 14095 s < 1/2 (reflection formula) is now in a new section, which needs 14096 to be completed (with the detailed algorithm and error analysis); 14097 case "s close to 0" added and now properly proved. 14098 * src/zeta.c: update of the comment for s close to 0 (the brief 14099 explanations were wrong for precision 1, and this was apparently 14100 not checked when we allowed this precision!), adding a reference 14101 to algorithms.tex for details. 14102 141032016-09-14 Vincent Lef��vre <vincent@vinc17.net> 14104 14105 [tools/mpfrlint] In "[[���]]" conditional expressions, replaced "=" 14106 by the preferred (and equivalent) form "==". 14107 Discussion: https://www.zsh.org/mla/workers/2016/msg01711.html 14108 14109 [tests/tdiv.c] Improved code readability (related to r10871). 14110 141112016-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14112 14113 [tests/tdiv.c] improved code (found by David Binderman using cppcheck) 14114 141152016-09-14 Vincent Lef��vre <vincent@vinc17.net> 14116 14117 [tools/announce-text] Use the 64-bit key ID instead of the 32-bit one 14118 since there are known collisions for 32-bit key ID's: 14119 https://evil32.com/ 14120 141212016-09-13 Vincent Lef��vre <vincent@vinc17.net> 14122 14123 [src/zeta.c] Added a FIXME: bug in the error computation due to the 14124 use of the native double C type, which can yield an overflow. 14125 [tests/tzeta.c] Added a corresponding test case, which gives an 14126 assertion failure. 14127 14128 [src/{uceil_log2.c,ufloor_log2.c}] Added "MPFR_ASSERTN (exp < 1023);" 14129 to get an assertion failure on infinities (which do not have an 14130 exponent). 14131 14132 [src/uceil_log2.c] Code style. 14133 14134 [src/ufloor_log2.c] Code style. 14135 14136 [src/zeta.c] Make explicit that we need to use lngamma. 14137 14138 [src/zeta.c] Updated comments on overflows / underflows. 14139 14140 [src/zeta.c] About internal underflows / cancellation: 14141 * Added comments to FIXME's. 14142 * Detect a potential integer overflow with MPFR_ASSERTN. 14143 141442016-09-12 Vincent Lef��vre <vincent@vinc17.net> 14145 14146 [tests/tset_ld.c] Moved a comment. 14147 14148 [tests/tset_ld.c] Fixed print_binary (and no longer any failure with 14149 gcc -mpc64 on x86). 14150 14151 [tests/tset_ld.c] Corrected note in print_binary. 14152 14153 [tests/tset_ld.c] Reverted r10847 (it was incomplete and I was testing 14154 the wrong code). 14155 14156 [tests/tset_ld.c] Fixed print_binary. 14157 14158 [tests/tset_ld.c] Added a FIXME in print_binary, which can yield an 14159 incorrect output and return a wrong precision (causing the failure). 14160 14161 [tests/tset_ld.c] Added a test that triggers a failure with gcc -mpc64 14162 on x86 (64-bit ABI). 14163 14164 [tests/tset_ld.c] Added some tests in case the rounding precision is 14165 smaller than MPFR_LDBL_MANT_DIG (e.g. with gcc -mpc64 on x86). 14166 14167 [tests/tset_ld.c] In print_binary, added an assertion that may fail 14168 with flush-to-zero on underflow (avoiding an infinite loop). 14169 14170 [tests/tset_ld.c] Simplified a condition in print_binary (BTW, the old 14171 condition was based on the fact that the rounding depended only on the 14172 exact result, which may not be the case when rounding is not completely 14173 specified, e.g. with double-double arithmetic like on PowerPC). 14174 14175 [tests/tset_ld.c] Replaced a condition by a simpler, equivalent one. 14176 141772016-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14178 14179 [tests/tset_ld.c] added note 14180 141812016-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14182 14183 [tests/tset_ld.c] get rid of C99-only stuff 14184 141852016-09-09 Vincent Lef��vre <vincent@vinc17.net> 14186 14187 [tests/tset_ld.c] Removed a variable that is no longer used. 14188 14189 [tests/tset_ld.c] FIXME: nextafterl and ilogbl are C99 only. 14190 141912016-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14192 14193 [tests/tset_ld.c] fixed computation of smallest subnormal using nextafterl 14194 14195 [tests/tset_ld.c] added warning 14196 14197 [tests/tset_ld.c] fixed print_binary() for when the rounding precision is less 14198 than the precision of long double 14199 142002016-09-09 Vincent Lef��vre <vincent@vinc17.net> 14201 14202 [src/get_ld.c] Replaced FIXME by an explanation of the current behavior. 14203 [tests/tset_ld.c] Added a FIXME as a consequence. 14204 14205 [doc/README.dev] Update about NetBSD. 14206 142072016-09-08 Vincent Lef��vre <vincent@vinc17.net> 14208 14209 [src/sqrt.c] Corrected a spelling mistake. 14210 14211 [src/get_ld.c] Updated FIXME (mention subnormals). 14212 14213 [src/get_ld.c] Updated FIXME (this is NetBSD 5.1). 14214 14215 [src/get_ld.c] Added a FIXME, in particular for NetBSD. 14216 14217 [tests/tset_ld.c] Avoid a freeze in print_binary under NetBSD due to 14218 excess precision in LDBL_MAX (we do not run the test in this case). 14219 142202016-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14221 14222 [src/sqrt.c] fixed bug in mpfr_sqrt2 14223 [tests/tsqrt.c] added non-regression test 14224 142252016-09-08 Vincent Lef��vre <vincent@vinc17.net> 14226 14227 [tests/tset_ld.c] The print_binary function is freezing on a NetBSD 14228 machine; let's start with some improvements (assertions...). 14229 14230 [tests/tabs.c] Removed mpfr_test_init (not needed here). 14231 14232 [tests/tset_ld.c] Moved mpfr_test_init at the right place (like 14233 tget_d.c, tset_d.c, etc.). 14234 142352016-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14236 14237 [src/sqrt.c] divsp1 -> div_1 14238 142392016-09-08 Vincent Lef��vre <vincent@vinc17.net> 14240 14241 [tests/tset_ld.c] Fixed a loop in case an extended range is used 14242 (there are issues on a NetBSD machine, and this could be a cause). 14243 14244 [tests/tset_ld.c] Corrected a type (due to a printf with %ld). 14245 142462016-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14247 14248 [src/div.c] divsp1 -> div_1, divsp2 -> div_2 (not necessarily same precision) 14249 14250 [src/mul.c] mulsp1 -> mul_1, mulsp2 -> mul_2 (the precision of operands is not 14251 necessarily the same) 14252 142532016-09-08 Vincent Lef��vre <vincent@vinc17.net> 14254 14255 [src/{get_d,get_ld}.c] Use MPFR_ALIAS. 14256 142572016-09-07 Vincent Lef��vre <vincent@vinc17.net> 14258 14259 [src/get_ld.c] Improved the fix done in r10808: The mpfr_set_emin value 14260 is not changed, but let's make the LDBL_MIN_EXP and LDBL_MAX_EXP values 14261 appear as expected. 14262 Note: The code for x86 extended precision first appeared in r3226 with 14263 the usual emin and emax values, as found in the IEEE 754-1985 standard 14264 (bounds) or on <https://en.wikipedia.org/wiki/IEEE_floating_point>. But 14265 MPFR uses a different convention, with a significand between 1/2 and 1 14266 instead of between 1 and 2, so that these values were off by 1. The 14267 emax one was fixed in r6101, but the error on emin remained undetected. 14268 14269 [tests/tset_ld.c] The bug_20160907 test is valid only with 14270 HAVE_LDOUBLE_IEEE_EXT_LITTLE. 14271 14272 [src/zeta.c] Updated FIXME: also suggest a scaling. 14273 142742016-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14275 14276 [tests/tset_ld.c] check more numbers in bug_20160907() 14277 14278 [src/get_ld.c] fixed bug reported by Walter Mascarenhas 14279 14280 [tests/tset_ld.c] added test that triggers bug in mpfr_get_ld 14281 (https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00005.html) 14282 142832016-09-07 Vincent Lef��vre <vincent@vinc17.net> 14284 14285 [src/zeta.c] Updated FIXME with a suggestion. 14286 14287 [src/zeta.c] Added a FIXME: An overflow in gamma(s1) does not imply 14288 that Zeta(s) will overflow. 14289 [tests/tzeta.c] Added a test that triggers this bug with a 32-bit ABI. 14290 14291 [doc/README.dev] Concerning GCC's AddressSanitizer (-fsanitize=address), 14292 mention that LD_PRELOAD needs to be unset (or -static-libasan needs to 14293 be used, but does not work yet). 14294 142952016-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14296 14297 [doc/algorithms.tex] l -> \ell 14298 14299 [doc/algorithms.tex] du -> {\mathrm d}u 14300 14301 [src/log_ui.c] added FIXME 14302 143032016-09-06 Vincent Lef��vre <vincent@vinc17.net> 14304 14305 [src/sqrt.c] Avoid a warning due to an unused variable with 14306 GMP_NUMB_BITS == 32. 14307 14308 [acinclude.m4] Fixed m4_pattern_forbid argument to avoid an error with 14309 recent ax_pthread.m4 (such as in Debian's autoconf-archive 20160320-1, 14310 which has just appeared in unstable). 14311 14312 [src/zeta.c] Updated FIXME. 14313 143142016-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14315 14316 [src/zeta.c] added FIXME 14317 14318 [src/sqrt.c] added alternate code for mpn_sqrtrem4 (disabled for now) 14319 143202016-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14321 14322 move macros from div.c to mpfr-gmp.h 14323 143242016-09-05 Vincent Lef��vre <vincent@vinc17.net> 14325 14326 About the tzeta timing issue (since r9848): 14327 * TODO: updated item on tzeta. 14328 * tests/tzeta.c: updated FIXME for test_generic. 14329 14330 [TODO] Updated item on tzeta: 14331 * removed the old problem: the fact that the traces for the trunk and 14332 for r9954 are different is normal (fixes in mpfr_can_round affecting 14333 tgeneric.c), and the timings depend on GMP_CHECK_RANDOMIZE and seem 14334 equivalent in average with "test_generic (..., 5);" in both cases; 14335 * added the fact that tzeta has been much slower since r9848, at least 14336 with the x86 32-bit ABI. 14337 143382016-09-02 Vincent Lef��vre <vincent@vinc17.net> 14339 14340 [src/round_prec.c] Added some details in a comment for rnd2 = RNDF. 14341 14342 [doc/mpfr.texi] Added a FIXME on the mpfr_can_round description in order 14343 to match what I intended to say in my comment in round_prec.c (perhaps 14344 not detailed enough). 14345 143462016-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14347 14348 [src/round_prec.c] updated specification of mpfr_can_round with rnd2 = RNDF 14349 [tests/tpow.c] one test makes no sense for RNDF 14350 143512016-09-02 Vincent Lef��vre <vincent@vinc17.net> 14352 14353 [doc/mpfr.texi] Completed mpfr_can_round description with RNDF. 14354 143552016-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14356 14357 [src/get_str.c] map RNDF to RNDN in mpfr_get_str 14358 14359 [tests/tconst_euler.c] fixed with new specification of mpfr_can_round for RNDF 14360 14361 [doc/mpfr.texi] put back stuff removed by accident in last commit 14362 14363 [doc/mpfr.texi] defined the bahaviour of mpfr_can_round for rnd2 = RNDF 14364 (suggestion from Vincent) 14365 143662016-09-02 Vincent Lef��vre <vincent@vinc17.net> 14367 14368 [src/round_prec.c] Forbid rnd2 = MPFR_RNDF as it does not make much 14369 sense without additional specification (and explained why). 14370 [tests/{tcan_round.c,tgeneric.c}] Added MPFR_RNDF support with the 14371 above restriction. 14372 Note: 6 tests are failing as a consequence. 14373 14374 [src/round_prec.c] FIXME: rnd2 == MPFR_RNDF is not supported yet. 14375 143762016-09-02 Vincent Lef��vre <vincent@vinc17.net> 14377 14378 Merged the remaining changesets (concerning src/{add1sp.c,sub1sp.c}) 14379 from the trunk, and fixed the code: The old mpfr_add1sp2 function 14380 was renamed to mpfr_add1sp_ref in the trunk and a new mpfr_add1sp2 14381 function (with a different purpose) was defined; so, in 14382 14383 if (rnd_mode == MPFR_RNDF) 14384 return mpfr_add1sp2 (a, b, c, rnd_mode); 14385 14386 mpfr_add1sp2 had to be changed to mpfr_sub1sp_ref. 14387 Ditto for mpfr_sub1sp2 and mpfr_sub1sp_ref. 14388 143892016-09-02 Vincent Lef��vre <vincent@vinc17.net> 14390 14391 Merged r10698 from the trunk (it was skipped by mistake in r10776). 14392 14393 Merged the following changesets from the trunk: 14394 r10664-10686,10689-10690,10692,10695-10696,10699-10775 14395 i.e. all the latest changes except for src/{add1sp.c,sub1sp.c} 14396 to avoid build failures (to be solved later). 14397 Currently only tcan_round fails, due to MPFR_RNDF. 14398 14399 Removed trailing whitespace. 14400 144012016-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14402 14403 [src/sqrt.c] new code for 2 limbs on 64-bit machines, giving speedup of almost 14404 a factor of two: 14405 14406 bavette.loria.fr (Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz) 14407 numactl --physcpubind=0 ./mfv5 -p113 mpfr_sqrt 14408 14409 3.1.4: 14410 mpfr_sqrt: 234 / 243.72 / 258 14411 14412 4.0-dev: 14413 mpfr_sqrt: 122 / 127.63 / 136 14414 144152016-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14416 14417 [src/div.c] fixed error triggered by previous commit 14418 14419 [src/div.c] added missing assertion 14420 [tests/tdiv.c] added test case that make new assertion fail (with --enable-assert --enable-gmp-internals on a 64-bit machine) 14421 14422 [src/div.c] fixed bug found by Vincent 14423 144242016-08-31 Vincent Lef��vre <vincent@vinc17.net> 14425 14426 [tests/tdiv.c] Added a test triggering an assertion failure with 14427 "--enable-assert --enable-gmp-internals". 14428 144292016-08-30 Vincent Lef��vre <vincent@vinc17.net> 14430 14431 [tools/mpfrlint] Update. 14432 14433 [src/div.c] Untabified. Clarified a comment. 14434 144352016-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14436 14437 [src/sqrt.c] document mpn_sqrtrem2() 14438 14439 [src/div.c] don't use mpfr_divsp1 and mpfr_divsp2 when MPFR_GENERIC_ABI is defined 14440 14441 [src/div.c] faster code for 2 limbs 14442 [tests/tdiv.c] added special test for 2 limbs 14443 144442016-08-30 Vincent Lef��vre <vincent@vinc17.net> 14445 14446 [tests] Define global variable tests_memory_disabled, which needs to 14447 be set when the memory.c allocators (to track memory leaks) must not 14448 be used; i.e., setting it disables the calls to tests_memory_start() 14449 and tests_memory_end(). In tests.c, it is initialized to 0 (unset), 14450 except when mini-gmp is used (same behavior as before this commit). 14451 Programs that test GMP's mp_set_memory_functions() need to set this 14452 variable before calling tests_start_mpfr(). 14453 144542016-08-29 Vincent Lef��vre <vincent@vinc17.net> 14455 14456 Added tests/talloc-cache.c (not run by "make check") testing multiple 14457 calls to mp_set_memory_functions. It yields a crash in the MPFR trunk, 14458 which is unexpected with the current code. However, in the 3.1 branch, 14459 r9467 fixed the crash as expected. 14460 144612016-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14462 14463 [src/sqrt.c] added Sage code used to generate the bipartite tables 14464 144652016-08-29 Vincent Lef��vre <vincent@vinc17.net> 14466 14467 [tests/talloc.c] Added a warning about new tests. 14468 144692016-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14470 14471 [src/atan.c] fixed TODOs, and simplified code 14472 144732016-08-29 Vincent Lef��vre <vincent@vinc17.net> 14474 14475 [doc/mpfr.texi] Added a FIXME comment about memory allocation. 14476 14477 [doc/mpfr.texi] Updated the month. 14478 14479 [TODO] Done in r10756: unify is_power_of_two() and mpfr_powerof2_raw(). 14480 144812016-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14482 14483 unified is_power_of_two() and mpfr_powerof2_raw() 14484 14485 [doc/mpfr.texi] improved documentation of mpfr_free_cache() 14486 144872016-08-28 Vincent Lef��vre <vincent@vinc17.net> 14488 14489 [tests/tcan_round.c] Improved a test now that mpfr_can_round is exact. 14490 14491 [src/mpfr-gmp.h] Added a warning about r10749. 14492 144932016-08-27 Vincent Lef��vre <vincent@vinc17.net> 14494 14495 [src/round_prec.c] Various corrections/improvements: 14496 * Unified the return, making sure that temporary memory is no longer 14497 used after MPFR_TMP_FREE(marker), which was not the case in some 14498 places. 14499 * C90 compatibility. 14500 * Minor improvements (use of MPFR_PREC2LIMBS, code on 78 columns...). 14501 14502 [TODO] Added: unify is_power_of_two() and mpfr_powerof2_raw()? 14503 14504 [src/atan2.c] Replaced the use of the MPFR_IS_POWER_OF_2(x) macro by 14505 a more efficient solution based on mpfr_powerof2_raw(). 14506 [src/mpfr-impl.h] Removed the now obsolete MPFR_IS_POWER_OF_2 macro. 14507 145082016-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14509 14510 [src/mpfr-gmp.h] added comment about GMP memory allocation functions 14511 145122016-08-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14513 14514 [src/round_p.c] since mpfr_can_round is now always correct, we cannot compare 14515 it blindly to mpfr_round_p any more 14516 145172016-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14518 14519 [src/round_prec.c] fixed mpfr_can_round() so that all tests of tcan_round pass 14520 145212016-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14522 14523 [tests/tcan_round.c] more information in case of error in check_can_round() 14524 145252016-08-22 Vincent Lef��vre <vincent@vinc17.net> 14526 14527 [tools/mbench/mfv5.cc] Fixed code (C++11 compatibility). 14528 14529 [tests/tcan_round.c] Added a comprehensive test of mpfr_can_round, 14530 based on a naive implementation. 14531 Note: if the exit() is removed, many cases are failing, for both kinds 14532 of answers (there might also remain an error in my test...). 14533 145342016-08-19 Vincent Lef��vre <vincent@vinc17.net> 14535 14536 [TODO] More thoughts about mpz_t caching (mpz_t pool). 14537 14538 [TODO] Issues with mpz_t caching. 14539 14540 [TODO] Update about mpz_t caching (mpz_t pool). 14541 14542 [src/atan.c] Added TODO's to use mpz_init2 instead mpz_init: I could 14543 check that without "mpz_t cache" (pool), this makes the code faster. 14544 14545 [doc/README.dev] Added a note about memory reallocations; recommend 14546 mpz_init2 with the estimated maximum size instead of mpz_init. 14547 14548 [tests/tests.c] Updated the error message on incorrect MPFR version. 14549 14550 [INSTALL] Added note on Solaris and the LD_OPTIONS environment variable. 14551 145522016-08-11 Vincent Lef��vre <vincent@vinc17.net> 14553 14554 [tools/coverage] Added a warning: on a machine shared with other users, 14555 by running this script, the account can easily be compromised due to a 14556 libtool bug. 14557 145582016-08-06 Vincent Lef��vre <vincent@vinc17.net> 14559 14560 [src/mpfr.h] Moved MPFR_DEPRECATED before __MPFR_DECLSPEC for 14561 compatibility with MSVC (and documented this requirement). 14562 Thanks to Brian Gladman for the information. 14563 145642016-08-04 Vincent Lef��vre <vincent@vinc17.net> 14565 14566 [doc/README.dev] Added a note about the C++11 compatibility issue 14567 with a string literal immediately followed by a macro name. 14568 14569 Fixed remaining macros with missing "do" ��� "while (0)", detected with 14570 mpfrlint. There were no consequences except spurious null statements. 14571 14572 [tools/mpfrlint] Added a comment. 14573 14574 [tools/mpfrlint] Added a test detecting (unsafe) macros of the form: 14575 #define FOO { ... } 14576 The following form is preferred in most of the cases to avoid spurious 14577 null statements: 14578 #define FOO do { ... } while (0) 14579 14580 [tests/tsi_op.c] Fixed a macro. There were no consequences except 14581 spurious null statements. 14582 14583 [tests/tset_{si,sj}.c] Style improvements. Added a comment. 14584 14585 [tests/tset_{si,sj}.c] Fixed macros. There were no consequences except 14586 spurious null statements. 14587 14588 [tests] C++ compatibility: avoid errors with "g++ -std=c++11" or later. 14589 Note that as of GCC 6, "the default mode for C++ is now -std=gnu++14 14590 instead of -std=gnu++98" <https://gcc.gnu.org/gcc-6/changes.html>. 14591 So, this fixes the failures in the build of the MPFR tests with g++ 14592 from GCC 6 without particular options. 14593 145942016-08-03 Vincent Lef��vre <vincent@vinc17.net> 14595 14596 [src/round_prec.c] mpfr_can_round_raw: added another FIXME. 14597 14598 [src/round_prec.c] mpfr_can_round_raw: added an assertion, corrected 14599 a condition in a comment, and added comments, showing a new bug. 14600 146012016-08-02 Vincent Lef��vre <vincent@vinc17.net> 14602 14603 [tests/tmul.c] Various corrections and improvements in test_underflow. 14604 14605 [src/mpfr.h] Mark mpfr_grandom as deprecated (this had already been done 14606 in mpfr.texi r8548). 14607 14608 [src/mpfr.h] Suggest MPFR_EXPERIMENTAL for experimental functions. 14609 146102016-08-01 Vincent Lef��vre <vincent@vinc17.net> 14611 14612 [tests/tversion.c] Correction in the info about the C implementation. 14613 14614 [tests/tversion.c] Corrections in the info about the C implementation. 14615 14616 [src/sqrt.c] Corrected a bound in the proof of mpfr_sqrt1 (one-limb 14617 precisions), related to the right shift of a negative value. Added 14618 a warning and a TODO about such an operation. 14619 14620 [src/sqrt.c] Enable mpfr_sqrt1 code for one-limb precisions (which 14621 depends on implementation-defined features of the C standard) only 14622 when __GNUC__ is defined, as it is known to be correct with GCC and 14623 compatible compilers, but nothing is known yet for other compilers. 14624 Removed the corresponding FIXME and added a note. In the future, a 14625 configure test could be used as an alternative solution. 14626 14627 [tests/tversion.c] Output more information about the C implementation. 14628 146292016-07-31 Vincent Lef��vre <vincent@vinc17.net> 14630 14631 [src/sqrt.c] Fixed some portability issues. 14632 14633 [src/sqrt.c] Fix if mp_limb_t > unsigned long (this fixed failures 14634 with mingw-w64). 14635 14636 [src/lngamma.c] Fix in case mp_limb_t is more than twice as large 14637 as unsigned long (that would make it at least 128 bits). 14638 [src/cos.c] Made code similar to the rest of the code. 14639 14640 [src/div_ui.c] Improved a comment (to make it closer to what correct 14641 C code should be), avoiding a false positive with mpfrlint. 14642 14643 [tools/mpfrlint] Detect possibly wrong code with some C/GMP 14644 implementations, related to shifts and integer types. 14645 14646 [src/sqrt.c] Completed the FIXME (another portability issue). 14647 14648 [src/sqrt.c] Added a FIXME. The current code for prec < GMP_NUMB_BITS 14649 is not portable. 14650 14651 [src/sqrt.c] Fixed code for implementations with 16-bit int's. 14652 14653 [tests/tsqrt.c] Fixed output bug in a test. 14654 146552016-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14656 14657 [src/mul.c] speedup for 2 limbs: numactl --physcpubind=0 ./mfv5 -p113 mpfr_mul 14658 14659 3.1.5-dev: 14660 mpfr_mul: 45 / 61.60 / 84 14661 14662 4.0-dev: 14663 mpfr_mul: 30 / 32.15 / 36 14664 14665 [NEWS] mention that speedup 14666 146672016-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14668 14669 [src/sub1sp.c] fixed bug in mpfr_sub1sp2 14670 14671 [src/mul.c] removed useless code 14672 14673 [src/mul.c] code simplification 14674 14675 [src/sub1sp.c] another code simplification 14676 14677 [src/sub1sp.c] code simplification 14678 14679 [NEWS] mention speedup in mpfr_add and mpfr_sub for 2 limbs 14680 146812016-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14682 14683 [src/sub1sp.c] faster code for 2 limbs. Results with mbench 14684 (numactl --physcpubind=0 ./mfv5 -p113 mpfr_sub): 14685 14686 3.1.5-dev: 14687 mpfr_sub: 36 / 65.33 / 81 14688 14689 4.0-dev: 14690 mpfr_sub: 24 / 33.00 / 36 14691 146922016-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14693 14694 [tests/tmul.c] fixed wrong test 14695 146962016-07-28 Vincent Lef��vre <vincent@vinc17.net> 14697 14698 [tests/reuse.c] Perform each reuse test on 1 to 5 limbs, with a random 14699 number of trailing bits. This allows one to test code specific to 1 or 14700 2 limbs. 14701 147022016-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14703 14704 [src/add1sp.c] fixed issues found with --enable-assert=full 14705 147062016-07-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14707 14708 [src/add1sp.c] new code to deal with p in [GMP_NUMB_BITS+1,2*GMP_NUMB_BITS-1] 14709 147102016-07-27 Vincent Lef��vre <vincent@vinc17.net> 14711 14712 [src/round_prec.c] Various minor improvements: 14713 * Added a MPFR_ASSERTN since mpfr_can_round is a function in the API. 14714 * Changed error variables to be more consistent with the context. 14715 * Removed unnecessary code (casts...) about the error: it came from 14716 round.c r1574, where types were different at that time. 14717 * Made err2 (the old err) local to a small block to make sure that it 14718 will not be used by mistake instead of err in future changes. 14719 * Made equivalent expressions appear under the same form: 14720 (rnd1 == rnd2 || rnd2 == MPFR_RNDN) && err - 2 >= prec 14721 14722 [src/round_prec.c] Changed precision variables to be like SSA. 14723 14724 [src/round_prec.c] Simplified code, making it more similar to code 14725 that has just been fixed. 14726 14727 [src/round_prec.c] Removed useless parentheses. 14728 14729 [src/round_prec.c] Added an assertion for "default:". 14730 14731 [tests/tcan_round.c] In test_simple, output p (which is variable), 14732 not prec (which is always 4). 14733 147342016-07-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14735 14736 [src/round_prec.c] fixed bug in mpfr_can_round for 2^e when rnd1=rnd2 14737 and err > prec + 1 (was returning 0 instead of 1) 14738 147392016-07-27 Vincent Lef��vre <vincent@vinc17.net> 14740 14741 [tests/tcan_round.c] Added a simple test that fails as a consequence of 14742 r9883 (this could be observed on tzeta before r10678 in tgeneric.c). 14743 14744 [tests/tgeneric.c] Improvement: When the result is exact, it can always 14745 be rounded (while mpfr_can_round can fail). 14746 14747 [TODO] Updated item about tzeta. 14748 147492016-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14750 14751 [INSTALL] update (feedback from Bill Hart) 14752 147532016-07-26 Vincent Lef��vre <vincent@vinc17.net> 14754 14755 [src/sqrt.c] Replaced mp_ptr by mpfr_limb_ptr (as usual). 14756 147572016-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14758 14759 [mbench/mfv5-mpfr.cc] patch to allow using it with older versions of MPFR (say branch 3.1) 14760 14761 [src/sqrt.c] fixed mpn_sqrtrem2 for 32-bit limb 14762 147632016-07-26 Vincent Lef��vre <vincent@vinc17.net> 14764 14765 [tests/tzeta.c] Added a FIXME so that r10667 can be reverted. 14766 14767 [TODO] Updated item about tzeta. 14768 14769 [TODO] Added item about the fix of mpfr_can_round in r9883 and tzeta. 14770 14771 New MPFR_GENERIC_ABI macro to test the generic code, not tied to a 14772 particular ABI (e.g. GMP_NUMB_BITS value), so that such code has a 14773 chance to be tested on current machines. 14774 * doc/README.dev: added brief documentation. 14775 * src/sqrt.c: enable mpfr_sqrt1 (optimization for one-limb precisions, 14776 currently when GMP_NUMB_BITS is 32 or 64) only when MPFR_GENERIC_ABI 14777 is not defined. 14778 14779 [src/sqrt.c] 14780 * Changed mp_ptr to mpfr_limb_ptr. 14781 * Untabified and removed trailing spaces. 14782 147832016-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14784 14785 [tests/tzeta.c] reduced test time 14786 14787 [src/sqrt.c] adapted mpn_sqrtrem1 for GMP_NUMB_BITS=32 14788 147892016-07-25 Vincent Lef��vre <vincent@vinc17.net> 14790 14791 [INSTALL] Corrected hint for mingw (use --build instead of --host). 14792 147932016-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14794 14795 [INSTALL] added hint for mingw 14796 147972016-07-25 Vincent Lef��vre <vincent@vinc17.net> 14798 14799 Merged the latest changes from the trunk. 14800 148012016-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14802 14803 [src/sqrt.c] fixed temporary patch for 32-bit computers 14804 148052016-07-25 Vincent Lef��vre <vincent@vinc17.net> 14806 14807 [src/sqrt.c] Typo in comment. 14808 14809 [src/sqrt.c] Updated FIXME's. This is still incorrect with 32-bit limbs. 14810 148112016-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14812 14813 [src/sqrt.c] temporary fix for 32-bit limbs 14814 148152016-07-22 Vincent Lef��vre <vincent@vinc17.net> 14816 14817 Merged r10657 from the trunk, resolving the conflict (same code as 14818 in the trunk, except RND_RAND changed to RND_RAND_NO_RNDF). 14819 14820 [tests/tadd.c] Improved coding style and messages (do not mix up 14821 "inexact flag" and "ternary value"!). 14822 14823 [tests] Define the RND_RAND_NO_RNDF and RND_LOOP_NO_RNDF macros, similar 14824 to RND_RAND and RND_LOOP respectively but excluding MPFR_RNDF, to be 14825 used for tests that don't make sense in the faithful rounding mode. 14826 Replaced code to use these macros, fixing the remaining failures. 14827 14828 Merged r10599 through r10628 from the trunk, resolving the conflict 14829 in tests/tmul.c (i.e. keep code from both the branch and the trunk, 14830 corresponding to two independent tests). Some of the later changes 14831 in the trunk (src/sqrt.c) are broken with a 32-bit ABI, so let's not 14832 merge them for now. 14833 14834 Merged r10598 from the trunk, resolving the conflict (this consists 14835 in changing MPFR_PREC to MPFR_GET_PREC). 14836 14837 Merged r10573 through r10597 from the trunk (no conflicts). 14838 14839 Merged r10572 from the trunk, resolving the conflict. 14840 14841 Merged r10571 from the trunk, resolving the conflict. 14842 14843 Merged r10566 through r10570 from the trunk, resolving the conflict. 14844 14845 Merged r10556 through r10564 from the trunk (no conflicts). 14846 14847 Merged r10555 from the trunk, resolving the conflict. 14848 14849 Merged r10529 through r10554 from the trunk (no conflicts). 14850 14851 Merged r10528 from the trunk, resolving the conflict. 14852 14853 Merged r10520 through r10527 from the trunk (no conflicts). 14854 14855 [src/add1sp.c] The reverse-merge done in r10633 was incorrect. Fixed. 14856 14857 [src/add1sp.c] Also reverse-merged r10522 (together with related 14858 whitespace change from r10514), which had nothing to do with the 14859 faithful rounding. Improvements for 1 limb will be obtained when 14860 merging the trunk into the faithful branch. 14861 14862 [src/sqrt.c] Added another FIXME comment for 32-bit machines. 14863 14864 [src/sqrt.c] Added other FIXME comments for 32-bit machines. 14865 148662016-07-20 Vincent Lef��vre <vincent@vinc17.net> 14867 14868 [src/sqrt.c] Added FIXME comments for 32-bit machines. 14869 14870 [src/sqrt.c] C90 compatibility. 14871 14872 [src/sqrt.c] Fixed minor (mainly style) issues found by mpfrlint. 14873 14874 [tools/mpfrlint] 14875 * Added --msg option to err-if-output function to optionally output 14876 a message explaining what to do in case of error. 14877 * Added this option to 3 err-if-output calls (errors with src/sqrt.c 14878 r10636). 14879 148802016-07-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14881 14882 [src/sqrt.c] new speedup for 1/2 and 1 limb 14883 148842016-07-20 Vincent Lef��vre <vincent@vinc17.net> 14885 14886 [doc/mpfr.texi] Improved a sentence. 14887 148882016-07-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14889 14890 [faithful] reverse-merge r10524 (had nothing to do with the faithful branch) 14891 14892 [faithful] reverse-merge parts of r10514 independent of the faithful branch 14893 148942016-07-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14895 14896 [NEWS] mention speedup in mpfr_sqrt 14897 14898 [src/sqrt.c] faster code for small precision (on tomate.loria.fr, 45 cycles 14899 for prec=24 instead of 161 before, and 108 cycles for prec=53 instead of 14900 165 with 3.1.4) 14901 149022016-07-19 Vincent Lef��vre <vincent@vinc17.net> 14903 14904 [tools/mbench] Replaced r10505 by r10565 merged from the trunk. 14905 14906 [doc/mpfr.texi] Improvements in the MPFR_RNDF (faithful rounding) spec. 14907 Added some notes concerning the reproducibility. 14908 149092016-07-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14910 14911 [src/div.c] removed duplicate prototype (cf revision 10625) 14912 14913 [src/div.c] yet another speedup 14914 14915 [src/div.c] small improvement 14916 149172016-07-18 Vincent Lef��vre <vincent@vinc17.net> 14918 14919 [src/mpfr-gmp.h] Declare __gmpn_invert_limb if used (in order to avoid 14920 an error with g++ for the tests). 14921 149222016-07-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14923 14924 [src/div.c] removed wrong assertions (and added comments to explain why) 14925 149262016-07-15 Vincent Lef��vre <vincent@vinc17.net> 14927 14928 [src/div.c] Added a FIXME (assertion failure). 14929 14930 [src/div.c] Untabified. 14931 14932 [tools/mpfrlint] Update concerning GMP internals. 14933 149342016-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14935 14936 [src/sub1sp.c] implement use of __gmpn_rsblsh_n (disabled for now) 14937 14938 [src/div.c] only use __gmpn_invert_limb with --enable-gmp-internals 14939 149402016-07-14 Vincent Lef��vre <vincent@vinc17.net> 14941 14942 [src/mpfr-impl.h] Require <float.h> to be included in order to be 14943 able to use the "long double macros and typedef" part. Moved the 14944 IEEE_FLOAT128_MANT_DIG macro definition out of this part. 14945 [tests/tcmp_ld.c] Added missing #include <float.h>. 14946 14947 [src/div.c] Added a FIXME as __gmpn_invert_limb is a GMP internal. 14948 149492016-07-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14950 14951 [src/div.c] speedup for precision < GMP_NUMB_BITS/2 (by almost a factor 2) 14952 14953 [src/mul.c] added comment 14954 14955 [src/div.c] new faster code for 1 limb 14956 14957 [src/cmp_ld.c] include float.h so that MPFR_LDBL_MANT_DIG is correctly defined 14958 [src/get_ld.c,src/set_ld.c] added comment 14959 149602016-07-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14961 14962 [src/div.c] removed obsolete comment since we no longer use __udiv_qrnnd_ld 14963 14964 [src/div.c] changed __udiv_qrnnd_ld into __udiv_qrnnd_preinv (no dependency 14965 any more on long double) 14966 149672016-07-09 Vincent Lef��vre <vincent@vinc17.net> 14968 14969 [src/div.c] Do not use __udiv_qrnnd_ld for MPFR_LDBL_MANT_DIG > 64. 14970 Added a comment about __udiv_qrnnd_ld. 14971 14972 [src/mpfr-longlong.h] Typo. 14973 14974 [src/mpfr-longlong.h] C89 compatibility. 14975 149762016-07-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14977 14978 [src/div.c] speedup using __udiv_qrnnd_ld 14979 14980 [src/mpfr-longlong.h] contributed __udiv_qrnnd_ld variant 14981 14982 [src/div.c] new special code for 1 limb 14983 [src/mul.c] fixed corner case near underflow 14984 14985 [src/mul.c] fixed detection of rounding away 14986 14987 [src/mul.c] fixed underflow *after* rounding 14988 [tests/tmul.c] fixed a test 14989 14990 [tests/tmul.c] added underflow test for directed rounding too 14991 14992 [tests/tmul.c] added test for underflow after rounding (reveals bug in mul.c) 14993 149942016-07-08 Vincent Lef��vre <vincent@vinc17.net> 14995 14996 [src/sub1sp.c] Clarified comment (it's better not to mention underflow 14997 before rounding because it is not considered at all in MPFR). 14998 149992016-07-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15000 15001 [src/sub1sp.c] added comment about underflow before/after rounding 15002 15003 [src/mul.c] changed MPFR_PREC into MPFR_GET_PREC 15004 150052016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15006 15007 [src/mul.c] removed a call to MPFR_LIKELY which is unlikely... 15008 150092016-07-07 Vincent Lef��vre <vincent@vinc17.net> 15010 15011 [NEWS] i.e. ��� e.g. 15012 15013 [src/mul.c] Replaced mp_ptr by mpfr_limb_ptr (as usual). 15014 15015 [tests/tadd1sp.c] Added tests with EXP(b) < EXP(c), as there are 15016 no such restrictions on the exponents for mpfr_add1sp. 15017 [src/add1sp.c] Fixed mpfr_add1sp when b and c have different signs 15018 and EXP(b) < EXP(c). 15019 150202016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15021 15022 [NEWS] speedup in mpfr_mul for one limb (minus 1 bit) 15023 150242016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15025 15026 [src/mul.c] speed-up of mpfr_mul for 1 limb (1 limb - 1 bit for the result). 15027 Results of mbench for 53 bits on Intel i5-4590: 15028 15029 before: 15030 mpfr_mul: 33 / 37.12 / 42 15031 after: 15032 mpfr_mul: 18 / 20.63 / 24 15033 150342016-07-07 Vincent Lef��vre <vincent@vinc17.net> 15035 15036 [src/add1.c] Corrected a comment as in practice, b and c do not 15037 necessarily have the same sign (when called by mpfr_sub). 15038 150392016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15040 15041 [src/sub1sp.c] added assertions 15042 150432016-07-06 Vincent Lef��vre <vincent@vinc17.net> 15044 15045 [tests/tadd.c] C++ compatibility. 15046 15047 [tests/tadd1sp.c] Do not use != 0 on predicate function. 15048 150492016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15050 15051 [src/sub1sp.c] removed special code for n = 1, now that we have a special 15052 function mpfr_sub1sp1 15053 15054 [tests/tadd.c] revert mpfr_add to test_add 15055 15056 [src/add1sp.c] fixed two bugs in mpfr_add1sp1 15057 15058 [tests/tadd1sp.c] added one hard-coded test 15059 15060 [tests/tadd.c] last commit was wrong 15061 15062 improved check_overflow() 15063 150642016-07-06 Vincent Lef��vre <vincent@vinc17.net> 15065 15066 [src/urandom.c] Fixed uninitialized emin for nbits == 1 15067 (thanks GCC's -Werror=maybe-uninitialized). 15068 150692016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15070 15071 [src/urandom.c] should now be ok for nbits = 1 15072 150732016-07-06 Vincent Lef��vre <vincent@vinc17.net> 15074 15075 [TODO] Change most mpfr_urandomb to mpfr_urandom in the tests? 15076 15077 [tests/turandom.c] Improved an error message. 15078 15079 [tests/turandom.c] Corrected English usage in error message. 15080 15081 [tests/turandom.c] Small precision check: replaced 2 by MPFR_PREC_MIN. 15082 150832016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15084 15085 [src/urandom.c] fixed urandom for a precision of 1 bit 15086 150872016-07-06 Vincent Lef��vre <vincent@vinc17.net> 15088 15089 [doc/README.dev] About random tests: avoid mpfr_urandomb!!! 15090 15091 [tests/tadd1sp.c] Use mpfr_urandom instead of mpfr_urandomb. 15092 This triggers an assertion failure in urandomb.c. 15093 15094 [tests/tadd1sp.c] Reordered variables. Removed a redundant test. 15095 15096 [tests/tadd1sp.c] In check_random, check the flags too. 15097 15098 [tests/tadd1sp.c] Test negative numbers too. 15099 15100 Removed trailing spaces. 15101 151022016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15103 15104 added comment 15105 15106 [src/add1sp.c] removed special cases for n=1 in mpfr_add1sp, now that we have 15107 a special routine mpfr_add1sp1 15108 15109 [mbench/mfv5.cc] added RNDA and fixed typo 15110 151112016-07-06 Vincent Lef��vre <vincent@vinc17.net> 15112 15113 The rounding mode can now be passed in argument with the -r option 15114 (patch by Patrick P��lissier). 15115 15116 Removed MPFR_HOT_FUNCTION_ATTR for mpfr_add1sp1 and mpfr_sub1sp1. 15117 151182016-07-05 Vincent Lef��vre <vincent@vinc17.net> 15119 15120 [tests/tadd.c] Added FIXME comment: there are many tests, but the 15121 ternary value and the flags are not tested! 15122 15123 Functions mpfr_add1sp1 and mpfr_sub1sp1 are called only from the files 15124 where they are defined, thus can be static. 15125 15126 [src/add1sp.c] Removed unused variable. 15127 151282016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15129 15130 [src/add1sp.c] new special code for 1 limb. In 3.1.4 we add with mfv5: 15131 15132 mpfr_add: 30 / 49.30 / 90 15133 15134 now we have: 15135 15136 mpfr_add: 24 / 28.18 / 30 15137 151382016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15139 15140 [src/sub1sp.c] added comment 15141 151422016-07-05 Vincent Lef��vre <vincent@vinc17.net> 15143 15144 [src/sub1sp.c] Another improvement (suggested by Paul). 15145 15146 [src/sub1sp.c] Improved readability. With Debian's gcc-snapshot, this 15147 is equivalent, and with tcc, the generated code is shorter. 15148 15149 [src/sub1sp.c] No longer depend on the representation of 0. 15150 15151 [src/sub1sp.c] Various improvements in the coding style: readability, 15152 consistency, GNU coding style. 15153 151542016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15155 15156 [README.dev] added documentation about mpfr-gfx 15157 15158 [mbench/mpfr-gfx.c] change of syntax of gnuplot 15159 15160 [src/sub1sp.c] removed dead code, and improved coverage to 100% 15161 151622016-07-05 Vincent Lef��vre <vincent@vinc17.net> 15163 15164 [src/sub1sp.c] Removed incorrect MPFR_SET_EXP (the value was incorrect 15165 and the real MPFR_SET_EXP is done later, after underflow checking). 15166 15167 [tests/tsub1sp.c] Added missing printf arguments. 15168 151692016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15170 15171 [src/sub1sp.c] fixed some FIXMEs 15172 151732016-07-04 Vincent Lef��vre <vincent@vinc17.net> 15174 15175 [src/sub1sp.c] Added a FIXME. 15176 15177 [src/sub1sp.c] Avoid a -Wmaybe-uninitialized warning from GCC 15178 by declaring a variable as initialized (the code is correct, 15179 GCC isn't just smart enough). 15180 15181 Removed trailing spaces. 15182 15183 Added tools/ck-clz_tab sh script to check the __clz_tab sizes 15184 (to detect issues like the one fixed in r10542). Run this script 15185 in dist-hook (Makefile.am) and in mpfrlint. 15186 151872016-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15188 15189 resolved a FIXME 15190 15191 fixed bug reported by <sisyphus1@optusnet.com.au> 15192 151932016-07-04 Vincent Lef��vre <vincent@vinc17.net> 15194 15195 [src/exceptions.c] Added a comment for mpfr_underflow: historical reason 15196 for the choice of the behavior with MPFR_RNDN. 15197 151982016-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15199 15200 code simplification (suggested by Vincent) 15201 15202 speedup of mpfr_sub for same precision < GMP_NUMB_BITS 15203 152042016-07-01 Vincent Lef��vre <vincent@vinc17.net> 15205 15206 [src/add1sp.c] Corrected indentation. 15207 15208 [src/sub1sp.c] Added comments. 15209 15210 [src/add1sp.c] Added comments. 15211 152122016-06-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15213 15214 optimize mpfr_add (and mpfr_sub, not yet finished) for 1 limb 15215 152162016-06-29 Vincent Lef��vre <vincent@vinc17.net> 15217 15218 Renamed macro MPFR_EXP_LESS_P to MPFR_UBF_EXP_LESS_P. 15219 15220 [src/add1sp.c] Fixed bug introduced in r10530 when MPFR_WANT_ASSERT >= 2 15221 (--enable-assert=full). 15222 15223 [src/add1.c] Re-added the MPFR_ASSERTD. The culprit seems to be r10530. 15224 15225 [src/add1.c] Reverted r10529, which now fails. That's strange. 15226 152272016-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15228 15229 mpfr_add1sp does not assume any more EXP(b) >= EXP(c) 15230 152312016-06-29 Vincent Lef��vre <vincent@vinc17.net> 15232 15233 [src/add1.c] Added a MPFR_ASSERTD. 15234 152352016-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15236 15237 still faster code for 1 limb 15238 15239 merged r10522 from faithful branch + other special-code for 1 limb: 15240 the worst case for mpfr_add in 53 limbs decreases from 70 to 60 cycles 15241 15242 removed leftover debug statement 15243 15244 added comment that EXP(b) >= EXP(c) 15245 15246 mpfr_add1sp no longer assumes EXP(b) >= EXP(c): gives small speedup 15247 152482016-06-27 Vincent Lef��vre <vincent@vinc17.net> 15249 15250 [doc/sum.txt] Changed "hole" to "gap". 15251 152522016-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15253 15254 added special code for 1 limb 15255 152562016-06-25 Vincent Lef��vre <vincent@vinc17.net> 15257 15258 C++ compatibility. 15259 15260 Merged the latest changes from the trunk. 15261 15262 [autogen.sh] Treat autoreconf warnings as errors. 15263 152642016-06-24 Vincent Lef��vre <vincent@vinc17.net> 15265 15266 [src/vasprintf.c] Some improvements. In particular, avoid two successive 15267 calls to mpfr_cmpabs on the same arguments (the compiler doesn't know 15268 that it could optimize, as the function is not pure). 15269 15270 [src/vasprintf.c] Fixed an assertion failure. 15271 152722016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15273 15274 fixed reuse with --enable-assert 15275 15276 small speedup of mpfr_add for RNDF 15277 152782016-06-24 Vincent Lef��vre <vincent@vinc17.net> 15279 15280 [tests/tsum.c] Correction: r10484 didn't take the latest version from 15281 the trunk in the conflict resolution. 15282 15283 [src/sum.c] A more efficient way to support faithful rounding, avoiding 15284 the TMD completely and an assertion failure at the same time. 15285 15286 Avoid failures in mpfr_mul for MPFR_RNDF with MPFR_WANT_ASSERT >= 2 15287 (--enable-assert=full) by disabling the comparison with the old 15288 implementation, which doesn't make sense for faithful rounding. 15289 152902016-06-24 Vincent Lef��vre <vincent@vinc17.net> 15291 15292 Avoid failures in mpfr_add1sp / mpfr_sub1sp for MPFR_RNDF with 15293 MPFR_WANT_ASSERT >= 2 (--enable-assert=full) by disabling the 15294 comparison with mpfr_add1 / mpfr_sub1, which doesn't make sense 15295 for faithful rounding. 15296 15297 [Added during the Subversion to Git conversion] 15298 This commit includes a merge of r10509 from the trunk. 15299 153002016-06-24 Vincent Lef��vre <vincent@vinc17.net> 15301 15302 Cosmetic change (whitespace). 15303 15304 Merged the latest changes from the trunk. 15305 15306 Removed trailing spaces. 15307 15308 [src/add1sp.c] For MPFR_WANT_ASSERT >= 2 (--enable-assert=full), test 15309 the flags too and replaced "mpfr_cmp" by "! mpfr_equal_p". 15310 [src/sub1sp.c] Make it similar to add1sp.c for MPFR_WANT_ASSERT >= 2. 15311 153122016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15313 15314 use macro for the rounding mode used in the tests 15315 153162016-06-24 Vincent Lef��vre <vincent@vinc17.net> 15317 15318 [doc/mpfr.texi] Updated the month. 15319 15320 [src/sum.c] Made the code a bit more natural: change of pos to neg 15321 (an indirect consequence of the support of reused arguments). Some 15322 other minor related changes. 15323 153242016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15325 15326 added more tests for RNDF 15327 153282016-06-24 Vincent Lef��vre <vincent@vinc17.net> 15329 15330 The support of reused arguments in mpfr_sum is now complete, without 15331 any visible regressions in the timings (which are unfortunately too 15332 inaccurate to see anything). 15333 * doc/mpfr.texi: removed sentences about the previous limitation. 15334 * src/sum.c: removed the corresponding FIXME/TODO comment. 15335 15336 [tests/tsum.c] Test the support of reused arguments. 15337 153382016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15339 15340 disable mpfr_all_div() for RNDF 15341 15342 replaced mpfr_cmp by !mpfr_equal_p 15343 15344 added exhaustive tests for add,sub,mul,div,sqrt 15345 15346 fixed corner case with RNDF 15347 153482016-06-23 Vincent Lef��vre <vincent@vinc17.net> 15349 15350 [src/mpfr-impl.h] Added a comment for MPFR_RNDRAW_GEN about the use 15351 of the exponent field of the destination. 15352 15353 [src/add1sp.c] For MPFR_RNDF, set inexact = 0 (like what is done in 15354 sub1.c) instead of 1, though this doesn't really matter. 15355 15356 [src/sub1.c] Fix: the conflict resolution done in r10484 was incorrect. 15357 15358 [src/add1sp.c] Avoid the use of uninitialized values with MPFR_RNDF. 15359 153602016-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15361 15362 fix for RNDF 15363 153642016-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15365 15366 merged changed from trunk with 15367 15368 svn merge '^/trunk' 15369 15370 (resolved conflict for sub1.c; copied tests/tsum.c from trunk and 15371 re-incorporated changes from faithful branch) 15372 153732016-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15374 15375 src/li2.c: better like this 15376 15377 src/li2.c: revision 10379 was ok 15378 15379 fixed mpfr_all_div() for RNDF 15380 153812016-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15382 15383 more work on branch faithful 15384 153852016-06-17 Vincent Lef��vre <vincent@vinc17.net> 15386 15387 [src/mpfr.h] Coding style: added spaces. 15388 15389 [TODO] Suggest the use the keyword "static" in array indices of 15390 parameter declarations with C99 compilers (6.7.5.3p7) when the 15391 pointer is expected not to be null. 15392 153932016-06-15 Vincent Lef��vre <vincent@vinc17.net> 15394 15395 [doc/README.dev] Update (GCC trunk ��� GCC 5). 15396 153972016-06-13 Vincent Lef��vre <vincent@vinc17.net> 15398 15399 [src/sum.c] Copy the significand to the destination after resolving 15400 the TMD in order to support reused arguments. 15401 15402 [src/sum.c] Improved a comment. 15403 154042016-06-10 Vincent Lef��vre <vincent@vinc17.net> 15405 15406 [src/sum.c] Corrected a MPFR_LOG_MSG modified in the latest change. 15407 15408 [src/sum.c] For the future support of reused arguments: TMD resolution 15409 is now done in a specific TMD accumulator, allocated at the same time 15410 as the main accumulator. This TMD accumulator currently just takes at 15411 most 2 limbs in practice, so that's not a problem. 15412 [doc/sum.txt] Added TODO for things that will change. 15413 154142016-06-09 Vincent Lef��vre <vincent@vinc17.net> 15415 15416 [src/mpfr-impl.h] Define mpfr_ueexp_t (needed for r10462). 15417 15418 [tests/tversion.c] Do not use "%zu" with printf (added in r10460). 15419 15420 [doc/README.dev] Document environment variables that affect the tests. 15421 15422 Other changes concerning the memory limit for the tests. 15423 * Export the tests_memory_limit variable so that it can be accessed in 15424 test programs (e.g. read by tversion as mentioned below, or modified 15425 by a test program when executed with particular arguments). 15426 * In tversion, print a warning when the memory limit has been modified 15427 (with the MPFR_TESTS_MEMORY_LIMIT environment variable). 15428 15429 [tests/memory.c] The MPFR_TESTS_MEMORY_LIMIT environment variable can 15430 now contain an integer specifying the memory limit for the tests, or 0 15431 for unlimited, the default still being 2^22 = 4 MB. 15432 154332016-06-08 Vincent Lef��vre <vincent@vinc17.net> 15434 15435 [tests/tsum.c] Improved check3: 15436 * Also do the tests with output precision MPFR_PREC_MIN; 15437 this completes the value coverage for tsum. 15438 * Also compare the flags. 15439 15440 Value coverage for tsum: After r9984 to differentiate sq > MPFR_PREC_MIN 15441 and sq == MPFR_PREC_MIN, 42 tests were not done for sq == MPFR_PREC_MIN 15442 on a 64-bit machine. In the check4 test, changed a 2 to MPFR_PREC_MIN. 15443 This reduces to 12 tests that are not done. 15444 154452016-06-07 Vincent Lef��vre <vincent@vinc17.net> 15446 15447 Merged the "ubf" branch into the trunk: 15448 * limited implementation of "unbounded floats" (numbers with a mpz_t 15449 exponent), which could be completed in the future, in particular to 15450 handle intermediate overflows/underflows in polynomial evaluation; 15451 * rewrote mpfr_fmma and mpfr_fmms to use them, and added tests; 15452 * restored the MPFR 3.1- exponent range for compatibility; 15453 * restored some tests that were based on this exponent range. 15454 The choice for the UBF implementation was to use a compatible structure: 15455 the same as the mpfr_t one, with an additional field at the end, used 15456 only when the exponent field _mpfr_exp has some special value. Thus some 15457 functions such as addition and subtraction just needed minor changes to 15458 support UBF, and no code was duplicated. This means that on MPFR numbers 15459 (the usual case), one has a few more tests than before, but with known 15460 branch probabilities. In practice, this should not be visible, at least 15461 in most applications. This was more or less confirmed by timings (even 15462 with many additions/subtractions in low precision, this was difficult 15463 to say, as timings were influenced by various parameters that we cannot 15464 control). 15465 15466 Merged the latest change from the trunk (r10452). 15467 15468 [tools/mbench/Makefile] Added multiarch support for GMP. 15469 15470 [src/mpfr-impl.h] Updated a comment (removing a FIXME). 15471 15472 Merged the latest change from the trunk (r10449). 15473 15474 [tests/tprintf.c] Removed tests of native %'g and %'f (from r8292) 15475 as the ' flag is an extension from Single UNIX Specification and 15476 in particular, they fail with MinGW under Wine. 15477 15478 Merged the latest changes from the trunk. 15479 15480 [tests/tlgamma.c] Typo in comment. 15481 15482 [src/uceil_log2.c] Added a comment. Cosmetic changes. 15483 15484 [tests/tlgamma.c] Corrected updated comment from r10444. 15485 154862016-06-06 Vincent Lef��vre <vincent@vinc17.net> 15487 15488 [tests/tlgamma.c] Updated comment of the test added in r10442. 15489 15490 [src/uceil_log2.c] Correction in __gmpfr_ceil_log2, avoiding an 15491 incorrect result with tcc: x.s.exp is declared as an unsigned 15492 bit-field, so that tcc considers that x.s.exp - 1023 is unsigned. 15493 However, since all the values of x.s.exp are representable in an 15494 int, according to the integer promotion rules, x.s.exp should be 15495 converted to an int, so that the subtraction is signed. So, this 15496 appears to be a bug in tcc. 15497 15498 [tests/tlgamma.c] Added a test causing a "too much memory" error with 15499 tcc 0.9.27~git20151227.933c223-1 (there's already one in special(), 15500 but this one is a simpler, standalone test). 15501 15502 Merged the latest change from the trunk (r10440). 15503 15504 [acinclude.m4] When checking if __float128 is available, we now also 15505 check whether C99 constants (in particular the __float128 ones, such 15506 as 0x1.fp+16383q) are supported since this is now required with the 15507 __float128 support. 15508 15509 Merged the latest changes from the trunk. 15510 15511 [src/add1.c] Improved a comment about faithful rounding. 15512 15513 [src/add1.c] The code for faithful rounding (MPFR_RNDF) was not 15514 avoiding some useless loops needing to know on which side of a 15515 breakpoint the result is. Quick fix. 15516 15517 Merged the latest changes from the trunk. 15518 15519 [src/add1.c] Simplified code: removed fb = 1 since it was already 1 15520 in the "if (fb > 0)" branch. 15521 15522 [src/set_float128.c] Fix: removed the divisions by zero, replacing them 15523 by comparisons with the maximum finite binary128 number. Changes to be 15524 similar to the handling of infinities in "src/set_ld.c". 15525 15526 [TODO] Faithful rounding: small correction. 15527 15528 [TODO] Added "faithful rounding", with information about its definition 15529 and implementation. 15530 155312016-06-03 Vincent Lef��vre <vincent@vinc17.net> 15532 15533 [src/{fits_intmax.c,fits_s.h}] In comments, fit ��� fits. 15534 15535 [src/set_float128.c] Added FIXME comment: The mpfr_set_float128 code 15536 generates a divide-by-zero exception. Suggest a solution. 15537 Note: this is detected with "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO". 15538 15539 [tests/tset_float128.c] Take into account failures in division by 0 15540 and absence of signed zeros. Also fixed the code checking the sign 15541 of 0 (mpfr_sgn cannot be used for that since it returns 0 for ��0). 15542 155432016-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15544 15545 RNDF: fixed the fits functions 15546 155472016-06-03 Vincent Lef��vre <vincent@vinc17.net> 15548 15549 Merged the latest change from the trunk (r10426 fix). 15550 15551 [src/set_d.c] Added some assertions and fixed a 32-bit shift count 15552 when GMP_NUMB_BITS == 32. 15553 15554 Merged the latest changes from the trunk (C++ compatibility). 15555 15556 [tests/tset_float128.c] C++ compatibility. 15557 15558 [tests/tlog.c] Added a cast to mpfr_rnd_t for C++ compatibility. 15559 15560 [tests/tfmma.c] Forgot a cast to mpfr_rnd_t for C++ compatibility. 15561 15562 [src/add1.c] Completed UBF support. Note: due to the restriction 15563 on the exponent values, diff_exp does not need to be the unsigned 15564 integer type mpfr_uexp_t (mpfr_exp_t is sufficient). 15565 15566 [tests/tfmma.c] Correction. 15567 15568 [tests/tfmma.c] Test (1/2)x + (1/2)x = x near underflow. 15569 15570 [tests/tfmma.c] Replaced precision 64 by GMP_NUMB_BITS (to make sure 15571 that the add1sp and sub1sp conditions are satisfied with the current 15572 src code, these tests may rely on the fact that there are no trailing 15573 bits, i.e. that the precision is a multiple of GMP_NUMB_BITS). 15574 155752016-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15576 15577 added reference for Lambert W function 15578 155792016-06-03 Vincent Lef��vre <vincent@vinc17.net> 15580 15581 [src/{add,sub}.c] Consider UBF numbers as special cases so that 15582 mpfr_sub1sp and mpfr_add1sp, which do not support UBF, are never 15583 called on UBF numbers. This should also (very slightly) speed up 15584 the normal cases. 15585 15586 [src/mpfr-impl.h] UBF support: added MPFR_IS_SINGULAR_OR_UBF and 15587 MPFR_ARE_SINGULAR_OR_UBF macros. 15588 155892016-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15590 15591 declare prec in unsigned long 15592 15593 RNDF: specified the fits functions 15594 15595 RNDF: fixed tfactorial 15596 155972016-06-02 Vincent Lef��vre <vincent@vinc17.net> 15598 15599 C++ compatibility (corrected). 15600 156012016-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15602 15603 RNDF: fixed texp2 15604 15605 avoid mpfr_printf in tests 15606 15607 C++ compatibility 15608 15609 suggestion from Vincent 15610 15611 RNDF: fixed texp10 and tgeneric 15612 15613 RNDF: fixed mpfr_sum and tsum 15614 15615 RNDF: fixed texp 15616 156172016-06-02 Vincent Lef��vre <vincent@vinc17.net> 15618 15619 [tests/tfmma.c] Added test cases where the precision of the result 15620 is twice the precision of each input, which can currently involve 15621 add1sp.c and sub1sp.c code. 15622 156232016-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15624 15625 RNDF: partially fixed texp 15626 15627 RNDF: fixed tcot 15628 15629 RNDF: fixed tcos 15630 15631 RNDF: fixed tconst_pi 15632 15633 RNDF: fixed li2 and tconst_log2 15634 156352016-06-02 Vincent Lef��vre <vincent@vinc17.net> 15636 15637 Merged the latest changes from the trunk. 15638 15639 [src/exceptions.c] Fixed the MPFR_LOG_FUNC in mpfr_underflow and 15640 mpfr_overflow (x is not an input in these functions). 15641 15642 [src/sub1.c] In r10347, logging was introduced instead of #ifdef DEBUG 15643 and printf. Removed 2 MPFR_LOG_VAR, as the variable is not normalized 15644 yet. Re-added #ifdef DEBUG for the MPFR_LOG_MSG's since this may be 15645 too low level and not much useful except in case of bugs. 15646 156472016-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15648 15649 RNDF: fixed issue with Bessel functions for large arguments 15650 156512016-05-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15652 15653 added description of flags for RNDF 15654 156552016-05-30 Vincent Lef��vre <vincent@vinc17.net> 15656 15657 [src/sub1.c] Forgot a \n in a log message. 15658 156592016-05-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15660 15661 fixed typos 15662 156632016-05-30 Vincent Lef��vre <vincent@vinc17.net> 15664 15665 [src/sub1.c] Completed UBF support. 15666 15667 Merged the latest changes (in particular the fix in sub1.c) from the 15668 trunk. 15669 15670 [tests/tsub.c] Added comments for check_max_almosteven (latest 15671 test case, added in r10383). 15672 156732016-05-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15674 15675 more work on the faithful branch 15676 156772016-05-29 Vincent Lef��vre <vincent@vinc17.net> 15678 15679 [src/sub1.c] Fixed bug in mpfr_sub1 (real subtraction a = b - c, with 15680 |b| > |c|): In MPFR_RNDN (round-to-nearest mode), when 15681 * |b| is the midpoint between the maximum finite number in the 15682 precision of a and 2^emax (the maximum finite number + 1 ulp), 15683 which is possible only if PREC(b) > PREC(a), 15684 * c is small enough (i.e. no overlap with a and b), 15685 mpfr_sub1 returns an infinity (with overflow flag set) instead of 15686 �� the maximum number (no overflow). The cause is that an overflow 15687 is generated too early, in an intermediate rounding. 15688 [tests/tsub.c] Added test cases. 15689 15690 [tests/tfmma.c] Forgot a \n in printf. 15691 15692 [tests/tfmma.c] Added overflow tests that trigger an assertion failure 15693 in sub1.c (because UBF support is not complete yet). 15694 156952016-05-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15696 15697 start implementing RNDF (work in progress) 15698 156992016-05-25 Vincent Lef��vre <vincent@vinc17.net> 15700 15701 [src/log_ui.c] Changes for ISO C90 compatibility. 15702 15703 [src/mpfr-gmp.h] For _MPFR_IEEE_FLOATS, changed bit-field type from 15704 unsigned long, which is implementation-defined, to unsigned int. 15705 15706 [src/log_ui.c] Added an assertion. 15707 15708 [src/mpfr-impl.h] Fixed bug introduced in r10327, giving: 15709 error: ISO C does not allow extra ';' outside of a function [-Wpedantic] 15710 157112016-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15712 15713 improved mpfr_log_ui 15714 15715 added comment 15716 157172016-05-25 Vincent Lef��vre <vincent@vinc17.net> 15718 15719 [TODO] mpfr_ai efficiency: also mention mpfr.texi (the issue with large 15720 arguments has always been documented). 15721 15722 [TODO] mpfr_ai efficiency: mention tests/tai.c (the REDUCE_EMAX was 15723 added in r6734). 15724 157252016-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15726 15727 added item about efficiency of mpfr_ai for large arguments 15728 157292016-05-25 Vincent Lef��vre <vincent@vinc17.net> 15730 15731 [doc/README.dev] Also clarified the use of "configure". 15732 15733 [doc/README.dev] Clarified the use of "autogen.sh". 15734 157352016-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15736 15737 use autogen.sh 15738 15739 added libtoolize (needed for AX_PTHREAD) 15740 157412016-05-24 Vincent Lef��vre <vincent@vinc17.net> 15742 15743 [tests/tlog_ui.c] Improved a test function. 15744 15745 [acinclude.m4] Fixed the use of m4_pattern_forbid: the argument must 15746 be quoted, otherwise the macro is expanded when defined. 15747 157482016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15749 15750 small improvements to log_ui (still slower than log for large precision) 15751 157522016-05-24 Vincent Lef��vre <vincent@vinc17.net> 15753 15754 [acinclude.m4] Detect whether the AX_PTHREAD macro is left unexpanded. 15755 157562016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15757 15758 use rounding to nearest by default in "tconst_log2 prec" 15759 15760 minor changes to allow ./tlog xxx prec 15761 15762 added generic tests for mpfr_log_ui + compare with mpfr_log 15763 157642016-05-24 Vincent Lef��vre <vincent@vinc17.net> 15765 15766 [src/sub1.c] Started to add UBF support (still incomplete). 15767 15768 Merged the latest changes from the trunk and removed the remaining 15769 _MPFR_PROTO of UBF functions. 15770 15771 Removed _MPFR_PROTO with the following Perl script on the .h files. 15772 while (<>) { if ($c) { die if /_MPFR_PROTO/; s/^( {$c}) */$1/; 15773 s/\) *\)/)/ and undef $c } elsif (s/^(.*)(_MPFR_PROTO *\()\(/$1(/) 15774 { s/\) *\)/)/ or $c = 1 + length $1 } print } 15775 15776 [configure.ac] Re-added AM_PROG_AR in case Microsoft lib.exe is used 15777 (without this, "automake --warnings=all" gives a warning). 15778 15779 [acinclude.m4] Replaced the obsolete ACX_PTHREAD by AX_PTHREAD 15780 (done with "autoupdate acinclude.m4"). 15781 15782 [configure.ac] Moved LT_INIT near the top for --enable-lto, and removed 15783 AM_PROG_AR (no longer needed as done by LT_INIT) and AC_PROG_RANLIB 15784 (obsoleted by LT_INIT). 15785 15786 Avoid some warnings with "gcc -Wundef". 15787 15788 [configure.ac] Removed a FIXME fixed in r4482. 15789 15790 [src/mpfr-longlong.h] Update from GMP 6.1.0. 15791 15792 [src/mpfr-cvers.h] Fixed typo in a macro (thanks to Patrick P��lissier). 15793 15794 [src/sub1.c] Various minor improvements: 15795 * Some changes related to the exponents and diff_exp. 15796 * Coding style + use of IS_POW2. 15797 * Use logging instead of #ifdef DEBUG and printf. 15798 157992016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15800 15801 removed too aggressive MPFR_LIKELY/MPFR_UNLIKELY (see README.dev) 15802 158032016-05-24 Vincent Lef��vre <vincent@vinc17.net> 15804 15805 Added optional LTO support (from a patch by Patrick P��lissier). 15806 15807 Corrected mpfr_free_cache behavior when WANT_SHARED_CACHE is defined 15808 to make it consistent with the behavior when WANT_SHARED_CACHE is not 15809 defined (patch by Patrick P��lissier). 15810 15811 [src/vasprintf.c] Output the sign of UBF like with infinities. 15812 15813 [tests/tfpif.c] Correction on r10338: use src_fopen instead of fopen 15814 and check fp (just like with FILE_NAME_R). 15815 15816 [tests/tfmma.c] Completed near_overflow_tests (there's still a crash, 15817 this time really in fmma.c). 15818 15819 [tests/tfmma.c] Added near_overflow_tests, which crashes. 15820 158212016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15822 15823 added new (read-only) test file for mpfr_fpif_import 15824 15825 added tests for mpfr_fpif_import with precision > MPFR_PREC_MAX 15826 158272016-05-24 Vincent Lef��vre <vincent@vinc17.net> 15828 15829 Merged the latest changes from the trunk. 15830 15831 Updated NEWS about shared caches. 15832 15833 MPFR 3.2(.x) ��� 4.0(.x) 15834 15835 [NEWS] New function mpfr_buildopt_sharedcache_p in MPFR 3.2. 15836 [doc/mpfr.texi] New function mpfr_buildopt_sharedcache_p. Minor changes. 15837 158382016-05-23 Vincent Lef��vre <vincent@vinc17.net> 15839 15840 [src/mpfr-impl.h] About the MPFR_DECL_INIT_CACHE macro: 15841 * Added a FIXME comment about a possible warning due to a missing 15842 field initializer; suggest 2 possible solutions. 15843 * Improved code readability. 15844 15845 [src/free_cache.c] Avoid duplicated source code for maintainability. 15846 15847 [doc/mpfr.texi] Corrections about caches. 15848 15849 [src/mpfr-thread.h] For #error, use a string literal as a single 15850 preprocessing-token. 15851 15852 [src/mpfr-thread.h] Coding style. 15853 15854 Minor comment & coding style corrections on r10327. 15855 15856 Added shared cache support (from a patch by Patrick P��lissier). 15857 158582016-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15859 15860 added tests for mpfr_fpif in precision 1 15861 158622016-05-23 Vincent Lef��vre <vincent@vinc17.net> 15863 15864 More UBF support: 15865 * mpfr-impl.h, ubf.c: added mpfr_ubf_zexp2exp function. 15866 * add1.c: support the case where b (the first input) is an UBF. 15867 15868 [tests/tfmma.c] Added max_tests. 15869 15870 [src/ubf.c] Memory leak in some case. 15871 15872 Added UBF support for mpfr_cmp2. 15873 15874 ABS(SIZ(x)) ��� ABSIZ(x) 15875 15876 [src/ubf.c] Support reduced exponent range in mpfr_get_zexp. 15877 158782016-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15879 15880 redefine mpfr_init_set_xxx with mpz_t pool, otherwise the pool is not 15881 used for those calls 15882 158832016-05-23 Vincent Lef��vre <vincent@vinc17.net> 15884 15885 Started to implement unbounded floats (UBF) and added support in some 15886 existing functions. 15887 15888 Also reverse-merge r9960 (due to the previous ones). 15889 15890 Also reverse-merge r9958, r9961 and r9962 (due to the previous ones). 15891 15892 First, reverse-merge r9975 and r9957 (whose only purpose was for fmma, 15893 but changed the exponent range and still had various issues). 15894 158952016-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15896 15897 added comment about MPFR_MY_MPZ_INIT 15898 158992016-05-23 Vincent Lef��vre <vincent@vinc17.net> 15900 15901 [src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD. 15902 15903 [src/vasprintf.c] Code simplification. 15904 15905 [src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD. 15906 15907 [src/print_raw.c] Changes for mpfr_print_binary / mpfr_dump: 15908 * Support out-of-range exponents as this function is mainly for 15909 debugging purpose (TODO: add some warning for such exponents). 15910 See: https://sympa.inria.fr/sympa/arc/mpfr/2016-01/msg00061.html 15911 * Support _MPFR_EXP_FORMAT == 4 (format used for testing). 15912 159132016-05-22 Vincent Lef��vre <vincent@vinc17.net> 15914 15915 [tests/tfmma.c] Corrections and improvements in random_test. 15916 15917 [tests/tfmma.c] Replaced mpfr_cmp by the stronger mpfr_equal_p. 15918 15919 [tests] 15920 * tadd_ui.c: clean-up (a boolean test doesn't need "!= 0"). 15921 * tsub_ui.c: check that the NaN flag is set on NaN. 15922 15923 [src/mpfr-impl.h] Added IS_SIGNED macro to check whether an integer type 15924 (after integer promotion) is signed; and use it for MPFR_EXP_IN_RANGE. 15925 159262016-05-20 Vincent Lef��vre <vincent@vinc17.net> 15927 15928 [src/ui_sub.c] Improved code style and assertions, making mpfr_ui_sub 15929 more like mpfr_add_ui and mpfr_sub_ui. Added comments. 15930 15931 Partly rewrote mpfr_add_ui and mpfr_sub_ui (more similar to the 15932 mpfr_ui_sub code), solving the failures. 15933 15934 [tests/tgeneric.c] Check NaN argument, mainly in order to check the NaN 15935 flag when the result is NaN (almost all cases). This makes both tadd_ui 15936 (ignoring the new test done in r10298) and tsub_ui fail. 15937 159382016-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15939 15940 added test case for bug reported by Rob (sisyphus1@optusnet.com.au) 15941 159422016-05-19 Vincent Lef��vre <vincent@vinc17.net> 15943 15944 [src/fmma.c] Added FIXME comments. 15945 159462016-05-18 Vincent Lef��vre <vincent@vinc17.net> 15947 15948 Added MPFR_EXP_IN_RANGE macro, and replaced some tests to use it. 15949 15950 [src/fma.c] Minor code simplification. 15951 159522016-05-17 Vincent Lef��vre <vincent@vinc17.net> 15953 15954 Improved code related to mpfr_set_exp_t: 15955 * Define MPFR_EXP_LIMB_SIZE macro (size of mpfr_exp_t in limbs) 15956 and use it. 15957 * src/pow.c: replaced a mpfr_init2 by MPFR_TMP_INIT1. 15958 159592016-05-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15960 15961 added comment about printing decimal floats 15962 159632016-05-13 Vincent Lef��vre <vincent@vinc17.net> 15964 15965 [src/mpfr-impl.h] Minor improvements. 15966 159672016-05-12 Vincent Lef��vre <vincent@vinc17.net> 15968 15969 [configure.ac] Added a comment about GMP CC/CFLAGS detection. 15970 15971 [configure.ac] Better GMP CC/CFLAGS detection (based on a patch by 15972 Patrick P��lissier). 15973 159742016-05-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15975 15976 add -P option to cpp when detecting CC/CFLAGS in gmp.h (workaround for gcc-5) 15977 159782016-05-04 Vincent Lef��vre <vincent@vinc17.net> 15979 15980 [doc/mpfr.texi] Updated the month. 15981 15982 [doc/Makefile.am] Reverted the change done in r10283 as the mpfr.info 15983 file was always rebuilt. 15984 [Makefile.am] Execute check-typography from dist-hook instead. 15985 15986 [Makefile.am] Add doc/check-typography to the tarball as it is needed 15987 to rebuild the mpfr.info file if the mpfr.texi file is modified. 15988 [doc/check-typography] Added copyright notice and explanations. 15989 15990 [doc/check-typography] Removed useless parentheses. 15991 15992 Detect typography ambiguities in doc/mpfr.texi ASAP: to avoid errors 15993 due to implicit rules, it is better to explicitly make clear whether 15994 a punctuation mark ends or does not end a sentence. 15995 * Added doc/check-typography sh script to detect such typography 15996 ambiguities. 15997 * doc/Makefile.am: automatically execute this script before mpfr.info 15998 is rebuilt; fail with explanations in case there are ambiguities. 15999 * doc/mpfr.texi: avoid typography ambiguities. 16000 * tools/mpfrlint: replaced the old typography check by a call to the 16001 check-typography script (which does more checks). 16002 16003 [doc/mpfr.texi] Typographic correction on the latest addition. 16004 16005 [doc/mpfr.texi] The MPFR_ and mpfr_ prefixes are reserved for MPFR. 16006 160072016-04-25 Vincent Lef��vre <vincent@vinc17.net> 16008 16009 [src/mpfr-impl.h] Clean-up. 16010 160112016-04-21 Vincent Lef��vre <vincent@vinc17.net> 16012 16013 [configure.ac] Improved the GMP CC/CFLAGS detection: the test for $cpp 16014 was not checking whether gmp.h could actually be included, so that the 16015 code was outputting "yes" even when gmp.h was not installed. 16016 16017 [NEWS] Added: Limited pkg-config support. 16018 16019 Added pkg-config support (patch from Kip Warner + some changes). 16020 160212016-04-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16022 16023 typo 16024 160252016-04-20 Vincent Lef��vre <vincent@vinc17.net> 16026 16027 [acinclude.m4] Improved warning message for the "long double" test. 16028 16029 [configure.ac] "double format" test: changed the AC_MSG_ERROR (when 16030 not recognized) to AC_MSG_WARN (like with long double). 16031 16032 [configure.ac] No longer include <stdint.h> in the "double format" test 16033 (it is unnecessary and doesn't exist everywhere). 16034 16035 [acinclude.m4] Typo. 16036 160372016-04-13 Vincent Lef��vre <vincent@vinc17.net> 16038 16039 [tests/tversion.c] Updated a comment about Cygwin and Unix. 16040 160412016-04-09 Vincent Lef��vre <vincent@vinc17.net> 16042 16043 [tools/mpfrlint] Fixed bug triggered when the command for err-if-output 16044 has empty arguments (this does not occur yet). 16045 160462016-04-08 Vincent Lef��vre <vincent@vinc17.net> 16047 16048 [tests/tversion.c] Output the status of the __GMP_LIBGMP_DLL and 16049 MPFR_WIN_THREAD_SAFE_DLL macros (since unreliable consistency checks 16050 have been removed in r10260). 16051 16052 [src/mpfr-impl.h] Removed the detection of possible inconsistencies 16053 under Unix because the tests could yield spurious errors with Cygwin32 16054 or other similar implementations. Moreover, such tests were used for 16055 debugging purpose or to detect potential problems in the environment, 16056 thus were not really useful for the end user. They were initially 16057 added in the win-thread-safe-dll branch (r9682, following a problem 16058 found in r9680). One alternative for checking by the MPFR developers 16059 would be to output the status of some internal macros in tversion. 16060 16061 [tools/mpfrlint] Use err-if-output also for external checkers. 16062 16063 [tools/mpfrlint] Better choice of a variable name. 16064 160652016-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16066 16067 revert changeset 10255 16068 160692016-04-08 Vincent Lef��vre <vincent@vinc17.net> 16070 16071 [tools/mpfrlint] 16072 * Switched to zsh. 16073 * Much more meaningful error messages. 16074 * Fix: in the mpfr.texi punctuation test, ignore the comments. 16075 160762016-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16077 16078 patch for Cygwin (cf https://trac.sagemath.org/ticket/20380) 16079 160802016-04-08 Vincent Lef��vre <vincent@vinc17.net> 16081 16082 [doc/mpfr.texi] Updated the month. 16083 160842016-04-07 Vincent Lef��vre <vincent@vinc17.net> 16085 16086 [doc/mpfr.texi] Document mpfr_dump (which has always been there). 16087 [src/dump.c] Added a comment (with TODO). 16088 16089 Replaced various instances of mpfr_print_binary + newline (sometimes 16090 missing) by mpfr_dump. 16091 16092 [tests] Fixed typo in error messages. 16093 160942016-04-01 Vincent Lef��vre <vincent@vinc17.net> 16095 16096 [TODO] Mention ISO/IEC JTC 1/SC 22/WG 21 N3060 (C++ special functions). 16097 160982016-03-29 Vincent Lef��vre <vincent@vinc17.net> 16099 16100 [INSTALL] Removed incorrect note about NetBSD/alpha: The configure 16101 script distributed with the MPFR 3.1.4 tarball does not contain anything 16102 related to the -mieee GCC option; this just seems to be a particular 16103 pkgsrc issue for NetBSD: 16104 http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/mk/platform/NetBSD.mk?rev=1.48&content-type=text/x-cvsweb-markup 16105 https://www.google.fr/search?q=pkgsrc+%22mieee%22 16106 where -mieee is added. The -mieee-with-inexact option added in the MPFR 16107 3.1 branch might yield the same error with the buggy GCC versions, but 16108 this is now obsolete in the trunk (the code was removed in r10152). 16109 161102016-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16111 16112 added note about NetBSD/alpha 16113 161142016-03-16 Vincent Lef��vre <vincent@vinc17.net> 16115 16116 [doc/sum.txt] Added a summary of the timings, copied from: 16117 ^/misc/sum-timings/results/ReadMe@10244 16118 161192016-03-15 Vincent Lef��vre <vincent@vinc17.net> 16120 16121 [tests/tsum.c] Updated comment of bug20160315 after fix in 3.1 branch. 16122 16123 [tests/tsum.c] Added bug20160315 (this bug appears when porting sum.c 16124 for MPFR 3.1.4 but does not appear in the trunk). 16125 161262016-03-14 Vincent Lef��vre <vincent@vinc17.net> 16127 16128 [doc/sum.txt] Some clarification in the TMD case. 16129 16130 [doc/sum.txt] Added a proof that the choice for the size ts of the 16131 temporary area is sufficient. 16132 16133 [doc/sum.txt] Replaced e by �� for the error (e is already used). 16134 16135 [doc/sum.txt] Update about t' in the error analysis. 16136 16137 [doc/sum.txt] More about the notion of exponent in two's complement. 16138 161392016-03-13 Vincent Lef��vre <vincent@vinc17.net> 16140 16141 [doc/sum.txt] Update about sum_raw (with a correction of a typo). 16142 161432016-03-10 Vincent Lef��vre <vincent@vinc17.net> 16144 16145 [doc/sum.txt] Rewrote paragraph about limitations. 16146 16147 [src/sum.c] Corrected comment: 32/64-bit machine ��� 32/64-bit ABI. 16148 16149 [src/sum.c] Use UPDATE_MINEXP when necessary; added comments. 16150 16151 [src/sum.c] Added a comment about corner cases involving huge 16152 precisions, which should never occur in practice. 16153 16154 [src/sum.c] 16155 * Added some MPFR_ASSERTD that correspond to properties used in the 16156 proof corrected in doc/sum.txt r10221. 16157 * Added a test for corner cases that will/can probably never occur 16158 in practice. 16159 16160 [doc/sum.txt] Improved explanations and corrected a proof. 16161 16162 [doc/sum.txt] Added a figure. 16163 16164 [doc/sum.txt] Clarifications. 16165 161662016-03-09 Vincent Lef��vre <vincent@vinc17.net> 16167 16168 [doc/sum.txt] GMP ��� the current version of GMP (6.1.0). 16169 16170 [doc/sum.txt] Another clarification. 16171 16172 [doc/sum.txt] Clarification about a reiteration in sum_raw with 16173 explanation closer to the code. 16174 16175 [src/sum.c] Clarification of comments about "sum.txt". 16176 16177 [src/sum.c] Added comments and an MPFR_ASSERTD for sum_raw(). 16178 16179 [doc/sum.txt] Clarification. 16180 16181 [doc/sum.txt] Update (mainly related to two's complement). 16182 16183 [INSTALL] More information about MinGW and __USE_MINGW_ANSI_STDIO. 16184 161852016-03-08 Vincent Lef��vre <vincent@vinc17.net> 16186 16187 [doc/sum.txt] Corrected 2 typos found by PZ. 16188 16189 [doc/sum.txt] Added commas. 16190 16191 [doc/sum.txt] Added info about an exact zero result and IEEE 754 / 1788. 16192 16193 [doc/sum.txt] A bit more about the choice of two's complement for the 16194 accumulator. 16195 16196 [doc/sum.txt] Explanation concerning the choice of two's complement for 16197 the accumulator. 16198 161992016-03-04 Vincent Lef��vre <vincent@vinc17.net> 16200 16201 [doc/README.dev] Update about MinGW and __USE_MINGW_ANSI_STDIO. 16202 16203 [INSTALL] Some improvement about MinGW and __USE_MINGW_ANSI_STDIO. 16204 16205 [TODO] With MinGW, build with -D__USE_MINGW_ANSI_STDIO by default? 16206 162072016-03-03 Vincent Lef��vre <vincent@vinc17.net> 16208 16209 [configure.ac] Improved --help messages for decimal-float and float128 16210 (a bit like what was done for thread-safe). 16211 162122016-03-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16213 16214 updated NEWS for decimal floats and __float128 16215 16216 set --enable-float128 to "autodetect" by default (like --enable-decimal-float) 16217 162182016-03-02 Vincent Lef��vre <vincent@vinc17.net> 16219 16220 [TODO] For testing the lack of subnormal support. 16221 16222 [acinclude.m4] Also fixed the test for subnormal double-precision 16223 numbers, in case an extended precision / exponent range is used 16224 (however the test is not guaranteed with non-conforming compilers). 16225 16226 [acinclude.m4] Fixed test for subnormal single-precision numbers. 16227 162282016-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16229 16230 added a separate configure test for subnormals in the "float" format 16231 162322016-03-02 Vincent Lef��vre <vincent@vinc17.net> 16233 16234 [acinclude.m4,configure.ac] Various fixes in error messages. 16235 16236 [TODO] Update ICC detection. 16237 162382016-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16239 16240 autodetect support for decimal floats (as suggested in revision 10179) 16241 162422016-03-02 Vincent Lef��vre <vincent@vinc17.net> 16243 16244 [src/ieee_floats.h] Comment update. 16245 16246 [tests/tversion.c] Another improvement, just in case Clang no longer 16247 defines __GNUC__ in the future. 16248 16249 [tests/tversion.c] Improved output of compiler information. 16250 16251 [src/ieee_floats.h] No longer use a NaN memory representation because 16252 it was fixed thus could be either a qNaN or a sNaN, depending on the 16253 machine. Moreover the choice is to generate a qNaN, in particular due 16254 to lack of sNaN support by compilers. 16255 16256 Do not build with decimal float by default as it is not standard 16257 (a better behavior could be to auto-detect). 16258 16259 Updated comments about DBL_NAN, dbl_nan.d and qNaN / sNaN encoding. 16260 16261 [src/get_flt.c] Updated FIXME comment: idea of a solution... 16262 16263 [src/get_flt.c] FIXME: The code assumes the IEEE-754 binary32 format 16264 with subnormal support. 16265 16266 [tests/tget_flt.c] Do tests that may involve subnormals only 16267 if HAVE_DENORMS is defined. 16268 162692016-03-01 Vincent Lef��vre <vincent@vinc17.net> 16270 16271 [src/set_*.c] Use the DOUBLE_ISNAN macro for _Decimal64, __float128 and 16272 long double like what is done for double; on platforms where d != d is 16273 not wrongly optimized to false, this should not change anything. Also 16274 added some MPFR_UNLIKELY for special cases of _Decimal64 and __float128, 16275 as this is already done for double and long double. 16276 16277 [tools/mpfrlint] Detect some uses of "x != x" and "x == x". 16278 162792016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16280 16281 recognize icc (which might define __GNUC__) 16282 162832016-03-01 Vincent Lef��vre <vincent@vinc17.net> 16284 16285 [src/mpfr-impl.h] Added a comment about non-IEEE-754 environment. 16286 162872016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16288 16289 HAVE_DOUBLE_IEEE_LITTLE_SWAPPED is not supported 16290 162912016-03-01 Vincent Lef��vre <vincent@vinc17.net> 16292 16293 [configure.ac] Quote the argument of all AC_MSG_RESULT and AC_MSG_ERROR 16294 when it is longer than a word, as already done in most cases (this is 16295 safer in case we modify the text and add a comma). 16296 16297 [tests/tset_float128.c] Better cast. 16298 162992016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16300 16301 use DOUBLE_ISNAN() instead of f == f 16302 16303 updated 16304 16305 updated paragraph on AIX/PowerPC 16306 16307 added more details in case of error 16308 16309 harmonize configure message against GMP 16310 16311 updated with mpfr-3.1.4-rc2 16312 16313 fixed detection of "double" format, and removed 16314 HAVE_DOUBLE_IEEE_LITTLE_SWAPPED, since we have no machine to test it 16315 16316 removed leftover debug statement 16317 163182016-03-01 Vincent Lef��vre <vincent@vinc17.net> 16319 16320 Removed "The IEEE code for double needs GMP internal files." from 16321 doc/README.dev as this is no longer the case since r10150. 16322 163232016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16324 16325 speedup in mpfr_set_d and mpfr_get_d 16326 16327 improved detection of decimal floats 16328 removed (obsolete?) #define XDEBUG in mpfr-gmp.h 16329 163302016-03-01 Vincent Lef��vre <vincent@vinc17.net> 16331 16332 [acinclude.m4] Removed old code for Alpha (as suggested by Paul). 16333 It was no longer tested. 16334 16335 [configure.ac] Added a FIXME comment about a possible misuse of 16336 AC_RUN_IFELSE programs that can return several values. 16337 163382016-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16339 16340 get rid of dependency from GMP for _GMP_IEEE_FLOATS and ieee_double_extract 16341 enable decimal float by default 16342 163432016-02-29 Vincent Lef��vre <vincent@vinc17.net> 16344 16345 [tools/mpfrlint] Also detect the use of ASSERT_ALWAYS (forbidden). 16346 16347 Replaced the remaining ASSERT_ALWAYS by MPFR_ASSERTN. 16348 16349 [NEWS] Removed a useless note (as the ABI has already changed). 16350 16351 [NEWS] Update about MinGW: "Added support for thread-safe DLL" as 16352 this was more than a fix of the test suite with r9684,9778. 16353 16354 [NEWS] Added "MinGW: Avoid failures in the test suite for shared builds 16355 with TLS." (fix in r9891). 16356 16357 [INSTALL] Removed an obsolete sentence about MinGW and shared builds 16358 with TLS (the failures in the test suite were avoided in r9891). 16359 16360 [tests/Makefile.am] Comment update. 16361 163622016-02-25 Vincent Lef��vre <vincent@vinc17.net> 16363 16364 About "config.h" inclusion: code consistency; removed obsolete comment. 16365 16366 [tests/tversion.c] Output availability of intmax_t/uintmax_t based 16367 functions and *printf functions. 16368 16369 [src/printf.c] Added a blank line for more readability. 16370 16371 [doc/README.dev] Added a note about the "config.h" inclusion. 16372 16373 [tests/tversion.c] Let's group the features together. 16374 16375 [tests/tversion.c] Output support status of modifiers in gmp_printf. 16376 16377 Added mpfr_buildopt_float128_p function. 16378 16379 [doc/mpfr.texi] Removed old comments. 16380 163812016-02-24 Vincent Lef��vre <vincent@vinc17.net> 16382 16383 [tests/tset_str.c] Correction (with no noticeable effect). 16384 16385 [tools/mpfrlint] For codespell, skip the openout.* files, which are 16386 created by "make pdf". 16387 16388 [src/sum.c] Minor FIXME comment update. 16389 16390 [doc/sum.txt] Updated introduction. 16391 16392 [tools/announce-text] Check the files on the mpfr.org web server. 16393 16394 [tools/announce-text] Added a comment. 16395 16396 [tools/announce-text] Update for release candidates. 16397 16398 [doc/mpfr.texi] Fixed a warning with "make info". 16399 16400 Added tools/ck-news Perl script to check the NEWS file. 16401 In Makefile.am: 16402 * run this script in dist-hook for "make dist"; 16403 * added this script to EXTRA_DIST as it is used in dist-hook. 16404 16405 [tools/announce-text] Take into account $vers setting. 16406 16407 [tools/announce-text] Replaced MD5 by SHA256. 16408 164092016-02-23 Vincent Lef��vre <vincent@vinc17.net> 16410 16411 [tools/update-version] Correction for new perl versions. 16412 164132016-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16414 16415 unified description of mpfr_eint 16416 164172016-02-23 Vincent Lef��vre <vincent@vinc17.net> 16418 16419 [src/{cmp_d.c,cmp_ld.c}] Bug fixes: mpfr_cmp_d (resp. mpfr_cmp_ld) was 16420 setting the NaN flag when the double (resp. long double) was a NaN and 16421 could return an incorrect result (assertion failure in debug mode) in 16422 reduced exponent range. 16423 16424 [tests/{tcmp_d.c,tcmp_ld.c}] Added a test in reduced exponent range. 16425 16426 [tests/{tcmp_d.c,tcmp_ld.c}] Full test of the flags for NaN ��� failure. 16427 16428 [tests/{tcmp_d.c,tcmp_ld.c}] GNU coding style. 16429 16430 [tests/tcmp_d.c] GNU coding style. 16431 16432 [doc/sum.txt] Update about the suggestion to split the inputs for 16433 Demmel's algorithm. 16434 164352016-02-22 Vincent Lef��vre <vincent@vinc17.net> 16436 16437 [doc/README.dev] Added a reference to the build-multi script. 16438 16439 Removed the tools/build-multi script (already in ^/misc). 16440 16441 Added tools/build-multi zsh script to build and install multiple MPFR 16442 versions, and add XML library descriptors for ABI Compliance Checker. 16443 16444 [tests/tagm.c] Also do the test with a = b in precision 2 (since the 16445 same bug occurs in the 3.1 branch, which doesn't support precision 1). 16446 164472016-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16448 16449 fixed error analysis for gamma_inc continued fraction 16450 164512016-02-19 Vincent Lef��vre <vincent@vinc17.net> 16452 16453 [tests/tfmod.c] Test that triggers the bug fixed in r10054: run it 16454 also in the extended exponent range in order to make the test fail 16455 when ported to the 3.1 branch. 16456 16457 [tests/tfmod.c] Renamed a variable since it is not always NaN. 16458 16459 [tests/tfmod.c] Added a test that triggers the bug fixed in r10054 16460 without relying on test_generic failure. 16461 164622016-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16463 16464 added references in comment 16465 164662016-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16467 16468 added error analysis for gamma_inc with continued fraction (to be reviewed) 16469 164702016-02-18 Vincent Lef��vre <vincent@vinc17.net> 16471 16472 [doc/sum.txt,src/sum.c] mpfr_sum: added support for precision 1. 16473 164742016-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16475 16476 more precision about gamma_inc 16477 16478 added reference to series for incomplete gamma function 16479 164802016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16481 16482 added tests for negative integer a 16483 164842016-02-17 Vincent Lef��vre <vincent@vinc17.net> 16485 16486 [tests/tfmod.c] Do not use a variable named nan to avoid confusion 16487 with the nan function of C99 (and possible obscure failures in the 16488 future, if we include <math.h>). 16489 164902016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16491 16492 added reference to gamma_inc(-n,x) for current code 16493 16494 added test to exercise bug fixed in revision 10056 16495 16496 fixed one test 16497 16498 fixed bug in mpfr_agm in case a=b but result cannot be exactly represented 16499 in the target precision: ternary value was wrongly set to 0 16500 165012016-02-17 Vincent Lef��vre <vincent@vinc17.net> 16502 16503 Removed trailing spaces. 16504 165052016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16506 16507 reduce the time of tgamma_inc 16508 16509 fixed the number of special tests for 2-argument functions 16510 16511 fixed stupid error in revision 10054 16512 165132016-02-17 Vincent Lef��vre <vincent@vinc17.net> 16514 16515 [src/mpfr-impl.h] Removed mpfr_sum_sort declaration, as this internal 16516 function had been removed in r9370. 16517 165182016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16519 16520 avoid computing with huge integers in mpfr_fmod when x/y is very small 16521 165222016-02-17 Vincent Lef��vre <vincent@vinc17.net> 16523 16524 [doc/sum.txt] Update about the old mpfr_sum implementation. 16525 165262016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16527 16528 Clarify the status of mpfr_gamma_inc for the MPFR 3.2 release. 16529 165302016-02-17 Vincent Lef��vre <vincent@vinc17.net> 16531 16532 [tests/tgeneric.c] Fixed a typo in latest commit, and added min/max 16533 and max/min special tests for functions with 2 arguments. 16534 This triggers a failure in tfmod on 64-bit machines at least. 16535 16536 [src/gamma_inc.c] Improved assertions. 16537 165382016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16539 16540 now mpfr_gamma_inc(a,x) also works for 'a' a negative integer 16541 (however a and x should not be too large, we should implement 16542 Legendre's continued fraction for the general case) 16543 16544 fixed issue in mpfr_eint 16545 165462016-02-17 Vincent Lef��vre <vincent@vinc17.net> 16547 16548 [src/gamma.c] Added another assertion. 16549 16550 [src/gamma.c] Added assertions and a comment. 16551 16552 [src/gamma.c] Removed useless saved_flags as flags are already saved 16553 by MPFR_SAVE_EXPO_MARK. Removed the comment about about emin/emax as 16554 emin <= 2 <= emax may not be sufficient (or may be suboptimal). 16555 After all, MPFR_SAVE_EXPO_* is the usual thing to do... 16556 165572016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16558 16559 previous commit was incomplete 16560 16561 fixed bug in mpfr_gamma: flags might be corrupted in case the argument was 16562 an integer fitting in an unsigned long 16563 165642016-02-15 Vincent Lef��vre <vincent@vinc17.net> 16565 16566 [doc/README.dev] Update about patches. 16567 16568 [tests/troot.c] Compare root(x,2^h) with pow(x,2^(-h)). 16569 16570 Added bad_cases tests for mpfr_pow_ui and mpfr_pow_si. 16571 16572 Added bad_cases tests for mpfr_root. 16573 16574 [src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions 16575 in a reduced exponent range and debug mode for non-integer numbers 16576 just above the positive limit. 16577 16578 [tests/tfits.c] Check a non-integer number just below a power of two. 16579 16580 [tests/tfits.c] Also run the tests in reduced exponent range. 16581 16582 [tests/tfits.c] Added tests of non-integer values near the type limits. 16583 This triggers a flags failure for src/fits_* r9649, corresponding to 16584 the bug fixed in r9650 (there were no tests for this bug yet). 16585 16586 [tests/tfits.c] Increased code reuse so that tests could be improved 16587 more easily (not everything is tested yet). 16588 165892016-02-12 Vincent Lef��vre <vincent@vinc17.net> 16590 16591 [tests/tconst_log2.c] Correction for C++ compilers. 16592 16593 [tests/tcan_round.c] Correction for C++ compilers. Code formatting. 16594 16595 [src/div.c] Coding style. 16596 16597 [src/div.c] Added a TODO for value coverage tests. 16598 16599 [doc/mpfr.texi] Added a comment about mpfr_gamma_inc. 16600 16601 [tests/tgamma_inc.c] Added a TODO. 16602 16603 [src/gamma_inc.c] Detect internal overflow in order to avoid taking 16604 all the memory of the machine, but it is currently not supported: 16605 assertion failure. This was occurring with a = 2^32 and x = 2^(-32) 16606 on 32-bit machines (see change in r10019). 16607 166082016-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16609 16610 reduced a test with large arguments 16611 166122016-02-11 Vincent Lef��vre <vincent@vinc17.net> 16613 16614 [src/gamma_inc.c] Improved type consistency to avoid integer overflow. 16615 16616 [src/gamma_inc.c] Added some assertions to detect integer overflow. 16617 16618 [tests/tgamma_inc.c] C++/C99 comment ��� C89 comment. 16619 16620 [src/gmp_op.c] Fixed an assertion that made tgmpop fail on 32-bit 16621 machines (it became wrong with r9964 and --enable-assert). 16622 166232016-02-10 Vincent Lef��vre <vincent@vinc17.net> 16624 16625 [doc/sum.txt] Added a FIXME for precision 1 (recently added). 16626 166272016-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16628 16629 added formula for gamma_inc(-n,x) 16630 166312016-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16632 16633 removed item about speeding up const_euler: done since now for x=1.1, 16634 prec=16610, mpfr_const_euler takes only about 40% of the total time. 16635 For x=1.1 and prec=100000 it takes only about 14% of the total time. 16636 16637 fixed the call to mpfr_eint() in gamma_inc, added some tests for gamma_inc 16638 16639 now mpfr_eint() returns -E1(-x) for x < 0 16640 166412016-02-09 Vincent Lef��vre <vincent@vinc17.net> 16642 16643 [src/eint.c] Fixed eint(-inf). 16644 [tests/teint.c] Added a corresponding test. 16645 16646 [src/si_op.c] Unified coding style and added logging. 16647 16648 [src] Moved si ops from mul_ui.c, div_ui.c and ui_div.c to si_op.c. 16649 16650 [src/ui_div.c] Fixed bug in mpfr_si_div when the integer is LONG_MIN, 16651 visible when using an UB sanitizer (see r9999). 16652 Note: this integer value is not tested yet in the test suite due to 16653 the lack of generic tests for mpfr_si_div. 16654 16655 [tests/{tgeneric.c,tsi_op.c}] Added TODO. 16656 16657 [src/{div,mul}_ui.c] Fixed bug in mpfr_div_si and mpfr_mul_si when the 16658 integer is LONG_MIN, visible when using an UB sanitizer (see r9999). 16659 16660 [tests/tgeneric_ui.c] Added tests of the extreme integer values, 16661 so that tsi_op fails with a runtime error in si_op.c r9998 when 16662 using an UB sanitizer (bug fixed in r9999). 16663 16664 [src/eint.c] Code simplification. 16665 16666 [src/si_op.c] Fixed bug in mpfr_add_si, mpfr_sub_si and mpfr_si_sub 16667 when the integer is LONG_MIN, visible when using an UB sanitizer. 16668 16669 [src/si_op.c] Code formatting. 16670 16671 [tests/teint.c] Added a test that triggers a runtime error 16672 at si_op.c:42:31 on an x86-64 Linux machine, using: 16673 CFLAGS="-fsanitize=undefined -fno-sanitize-recover" 16674 16675 [doc/mpfr.texi] Typographic correction. 16676 16677 [tools/mpfrlint] Avoid false positives in mp_exp_t check. 16678 16679 [src/eint.c] Updated a FIXME (mpfr_set_exp_t was added in r4333 and 16680 completed in r5455), with typo from r6789 corrected. 16681 16682 [doc/mpfr.texi] Updated Section "API Compatibility / Changed Functions": 16683 mpfr_eint changed in MPFR 3.2. 16684 166852016-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16686 16687 update NEWS/TODO with respect to E1 16688 16689 oops, eint(x) was wrong for negative x with |x| >= 0.5 16690 16691 now mpfr_eint(x) returns E1(x) for negative x 16692 166932016-02-08 Vincent Lef��vre <vincent@vinc17.net> 16694 16695 [doc/mpfr.texi] Correction (spelling). 16696 16697 [tests/tsum.c] Clarified a bit more. 16698 16699 [tests/tsum.c] Added explanations concerning the check1 test. 16700 16701 Value coverage for tsum: reduce output length. 16702 16703 Value coverage for tsum: differentiate sq > MPFR_PREC_MIN and not. 16704 167052016-02-07 Vincent Lef��vre <vincent@vinc17.net> 16706 16707 [tests/tsum.c] Source on 80 columns. 16708 167092016-02-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16710 16711 extended the check1() test, gives failure on 64-bit processor 16712 16713 fixed note 16714 167152016-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16716 16717 more work on gamma_inc 16718 16719 note about memory usage 16720 167212016-02-05 Vincent Lef��vre <vincent@vinc17.net> 16722 16723 [src/gamma_inc.c] Corrected protection against integer overflow 16724 (MPFR_PREC_IN_RANGE is just for debug mode). 16725 16726 [src/gamma_inc.c] Added protection against integer overflow 16727 (i.e. abort instead of getting incorrect results). 16728 167292016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16730 16731 more work on gamma_inc (only remains the case a=0 and x>0 to implement) 16732 167332016-02-05 Vincent Lef��vre <vincent@vinc17.net> 16734 16735 Removed trailing spaces. 16736 16737 [tests/troot.c] In exact_powers, check negative values too. 16738 16739 [src/root.c] Code simplification. 16740 16741 TODO update for fmma. 16742 167432016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16744 16745 reduced emax 16746 16747 added a test for exact powers for mpfr_root 16748 and fixed mpfr_root for negative x (and odd k) 16749 167502016-02-05 Vincent Lef��vre <vincent@vinc17.net> 16751 16752 [src/root.c] Corrected(?) the check for exact root by adding an 16753 exactness test for the inverse operation z^k (if unnecessary, it 16754 needs to be properly proved and documented). 16755 16756 [src/root.c] Corrected a comment. 16757 16758 [src/root.c] Some minor changes. Updated comments. 16759 167602016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16761 16762 check for an exact root in mpfr_root_aux 16763 16764 fixed bug in mpfr_root and inefficiency problem with large k 16765 167662016-02-05 Vincent Lef��vre <vincent@vinc17.net> 16767 16768 [src/mpfr-impl.h] For MPFR_IS_PURE_FP(x), when x is a pure FP number, 16769 check that EXP(x) is in the current exponent range (debug mode). 16770 16771 [src/exceptions.c] Some changes concerning mpfr_check_range: 16772 * Added a note about the case EXP(x) < MPFR_EMIN_MIN. 16773 * Do not use the MPFR_IS_PURE_FP() macro as this macro assumes that 16774 if the number is not a singular number, then it is really a pure 16775 FP number (some assertion checking may be done in debug mode), 16776 but this is not necessarily the case here. 16777 * Removed an incorrect comment and re-added the MPFR_UNLIKELY for 16778 the cases where EXP(x) is outside the exponent range. Indeed, 16779 mpfr_check_range is called at the end of most functions, and 16780 in most cases, there are no underflows / overflows. 16781 16782 [tests/texp.c] Added FIXME, as the overflow test, which was specific 16783 to the 32-bit ABI, is no longer run. 16784 16785 [tests/tacosh.c] Added a FIXME (huge values no longer tested at all). 16786 16787 [src/fmma.c] Removed unused code. 16788 167892016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16790 16791 added code to compare mpfr_root with exp(log(x)/k) 16792 16793 reduce MPFR_EMAX_DEFAULT by 2, and modify some tests cases assuming 16794 MPFR_EMAX_DEFAULT=2^30-1 16795 16796 fixed fmma failure 16797 167982016-02-05 Vincent Lef��vre <vincent@vinc17.net> 16799 16800 [src/exp.c] Simplified exponent range setting in special case. 16801 168022016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16803 16804 changed test_generic() calls to start from MPFR_PREC_MIN instead of 2; 16805 this revealed a special-case code in mpfr_exp which didn't work for prec=1 16806 168072016-02-05 Vincent Lef��vre <vincent@vinc17.net> 16808 16809 [tests/trint.c] Do the significand parity test only for precision > 1. 16810 168112016-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16812 16813 updated NEWS and mpfr.texi for MPFR_PREC_MIN=1 16814 16815 MPFR_PREC_MIN is now 1, in accordance with the next revision of IEEE-754 16816 fixed tests to start at MPFR_PREC_MIN instead of hard-coded value of 2 16817 16818 fixed test which was assuming MPFR_PREC_MIN=2 16819 16820 fixed to correctly check prec=1 16821 16822 prepare for MPFR_PREC_MIN=1 16823 16824 fixed tcheck for MPFR_PREC_MIN=1 16825 16826 prepare mpfr_pow to work for precision 1 16827 168282016-02-04 Vincent Lef��vre <vincent@vinc17.net> 16829 16830 [doc/mpfr.texi] Mention the Caramba project-team. 16831 16832 Replaced 16833 Contributed by the AriC and Caramel projects 16834 by 16835 Contributed by the AriC and Caramba projects 16836 168372016-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16838 16839 added comment about gamma_inc 16840 168412016-02-04 Vincent Lef��vre <vincent@vinc17.net> 16842 16843 [src/gamma_inc.c] Added assertions. 16844 168452016-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16846 16847 more work on gamma_inc 16848 16849 fixed some special values for gamma_inc 16850 168512016-02-03 Vincent Lef��vre <vincent@vinc17.net> 16852 16853 [doc/mpfr.texi] FIXME: Clarify the status of mpfr_gamma_inc for 16854 the MPFR 3.2 release. 16855 168562016-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16857 16858 completed "Added Functions" section 16859 168602016-02-03 Vincent Lef��vre <vincent@vinc17.net> 16861 16862 [doc/mpfr.texi] Typographic correction. 16863 16864 [src/div.c] Fixed bug introduced in r9902 and visible in the tests 16865 on 32-bit machines. 16866 16867 [src/root.c] Added TODO for code rewrite (discussion between VL and PZ). 16868 16869 [tests/troot.c] Also check that root(0,0) is NaN to make sure that such 16870 special cases are considered in the right order in the implementation. 16871 16872 [doc/mpfr.texi] Completed mpfr_root description: the 0th root gives NaN. 16873 16874 [src/root.c,tests/troot.c] Removed obsolete code that was commented out; 16875 some cleanup. 16876 16877 [src/root.c] Comment correction (again). 16878 16879 [src/root.c] Comment correction to avoid a variable name with several 16880 meanings. 16881 16882 [src/root.c] Simplified code and corrected comment. 16883 16884 [src/root.c] Corrected a comment and added an assertion (see r9923). 16885 16886 [src/root.c] Added a FIXME comment. 16887 16888 [tests/troot.c] Typo in a comment. 16889 16890 [tests/troot.c] Added tests showing a bug in mpfr_root on large 16891 integer arguments (found thanks to a bug in GNOME Calculator: 16892 <https://bugzilla.gnome.org/show_bug.cgi?id=756960>). 16893 16894 Style: use RND_LOOP; mpfr_can_round returns a Boolean-like value. 16895 168962016-02-02 Vincent Lef��vre <vincent@vinc17.net> 16897 16898 [src/{erandom.c,nrandom.c}] Updated a reference. 16899 169002016-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16901 16902 mpfr_can_round -> MPFR_CAN_ROUND 16903 169042016-02-02 Vincent Lef��vre <vincent@vinc17.net> 16905 16906 [doc/mpfr.texi] Updated FIXME for mpfr_can_round. 16907 16908 [doc/mpfr.texi] Added a FIXME for mpfr_can_round. Still incorrect... 16909 16910 [doc/mpfr.texi] Updated the month. 16911 16912 [doc/mpfr.texi] Corrected note about mpfr_can_round. 16913 169142016-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16915 16916 refactor the exhaustive search code in mpfr_const_log2 16917 16918 mpfr_round_p -> MPFR_CAN_ROUND 16919 16920 mpfr_can_round -> MPFR_CAN_ROUND 16921 16922 mpfr_can_round -> MPFR_CAN_ROUND 16923 16924 use MPFR_CAN_ROUND instead of mpfr_can_round/mpfr_round_p 16925 16926 rounding test was wrong for rounding to nearest 16927 16928 replace mpfr_can_round by mpfr_round_p 16929 169302016-02-02 Vincent Lef��vre <vincent@vinc17.net> 16931 16932 [src/round_prec.c] Added a TODO to improve the mpfr_can_round_raw 16933 efficiency by only doing a bit inspection (no mpn operations). 16934 169352016-02-01 Vincent Lef��vre <vincent@vinc17.net> 16936 16937 [tests/tcan_round.c] Added test of mpfr_round_p with powers of two 16938 (similar to the one done in src/round_p.c for MPFR_WANT_ASSERT >= 2). 16939 16940 [tests/tcan_round.c] Updated description: mpfr_round_p is also tested 16941 in check_round_p (and will be in test_pow2). 16942 169432016-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16944 16945 now mpfr_round_p() always requires normalized input 16946 169472016-02-01 Vincent Lef��vre <vincent@vinc17.net> 16948 16949 [src/div.c] Added an assert based on comments in the code. 16950 16951 [src/round_p.c] Some corrections in comment. 16952 169532016-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16954 16955 added a comment 16956 169572016-01-31 Vincent Lef��vre <vincent@vinc17.net> 16958 16959 [src/round_p.c] Fixed mpfr_round_p for MPFR_WANT_ASSERT >= 2, as 16960 mpfr_round_p accepts non-normalized inputs (as decided in r9897), 16961 but not mpfr_can_round_raw (as decided in r9883). 16962 169632016-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16964 16965 the inputs of mpfr_round_p might not always be normalized 16966 169672016-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16968 16969 fixed FIXME 16970 169712016-01-29 Vincent Lef��vre <vincent@vinc17.net> 16972 16973 [configure.ac] Improved consistency in messages. 16974 16975 [doc/README.dev] Updated instructions on how to cross-compile MPFR 16976 for MinGW (i586-mingw32msvc) and test it under Wine. 16977 169782016-01-29 Vincent Lef��vre <vincent@vinc17.net> 16979 16980 Cleanup of memory allocation in the tests: 16981 * only tests_allocate, tests_reallocate and tests_free should be used 16982 (now exported instead of mpfr_default_allocate, etc.); 16983 * this is now mentioned in doc/README.dev; 16984 * added checks to tools/mpfrlint (heuristics as usual). 16985 16986 Note: This follows the discussion at 16987 https://sympa.inria.fr/sympa/arc/mpfr/2015-12/msg00055.html 16988 and should solve these problems under MS Windows (mingw32), though this 16989 cleanup is more general than an attempt to fix a Windows issue. 16990 169912016-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16992 16993 fixed case when prec > bn * GMP_NUMB_BITS and directed rounding 16994 16995 typo 16996 169972016-01-28 Vincent Lef��vre <vincent@vinc17.net> 16998 16999 [tests/tcan_round.c] Updated comment and corrected condition on prec. 17000 17001 [tests/tcan_round.c] Updated comments. 17002 17003 [src/round_p.c] Added an assertion (similar to what was added to 17004 mpfr_can_round_raw). This triggers failures, which could also be 17005 detected with MPFR_WANT_ASSERT >= 2, due to the fact that mpfr_div 17006 can internally generate a number that is not normalized before a 17007 rounding test. 17008 17009 [src/round_prec.c] Updated comments. 17010 170112016-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17012 17013 more work on mpfr_can_round 17014 17015 fixed bug in mpfr_can_round for input = 2^k 17016 170172016-01-27 Vincent Lef��vre <vincent@vinc17.net> 17018 17019 [doc/mpfr.texi] Replaced "Rounding Related Functions" by 17020 "Rounding-Related Functions" (thanks to Keith Briggs for the remark). 17021 17022 [tests/tcan_round.c] Added tests for powers of two. This triggers 17023 errors. I may have done mistakes, but at least x = 2^32, j = 32, 17024 r1=MPFR_RNDN, r2=MPFR_RNDN seems buggy. 17025 170262016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17027 17028 simplified 17029 17030 another detail 17031 170322016-01-27 Vincent Lef��vre <vincent@vinc17.net> 17033 17034 [doc/mpfr.texi] Corrected mpfr_can_round description again as the 17035 possible difference is on 0+ = 2^(emin-1), not about overflow. 17036 Let's just say "assuming an unbounded exponent range". 17037 17038 [doc/mpfr.texi] Corrected mpfr_can_round description (about overflow). 17039 170402016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17041 17042 yet another improvement 17043 17044 improved documentation 17045 170462016-01-27 Vincent Lef��vre <vincent@vinc17.net> 17047 17048 [doc/mpfr.texi] Clarified change in r9873. 17049 170502016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17051 17052 improve documentation of mpfr_can_round 17053 17054 also print the rounded value 17055 17056 added pointer to examples/can_round.c 17057 170582016-01-27 Vincent Lef��vre <vincent@vinc17.net> 17059 17060 [examples/can_round.c] Removed the useless #include <gmp.h> and 17061 replaced the internal mpfr_dump by mpfr_printf. 17062 170632016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17064 17065 improved documentation of mpfr_can_round 17066 17067 added example on how to use mpfr_can_round 17068 170692016-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17070 17071 mention mpfr_set/get_decimal128 for the future (low priority for now) 17072 170732016-01-21 Vincent Lef��vre <vincent@vinc17.net> 17074 17075 [src/round_p.c] Code formatting. 17076 170772016-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17078 17079 added remark about Ei vs E1 17080 170812016-01-21 Vincent Lef��vre <vincent@vinc17.net> 17082 17083 [tests/tsqrt.c] Improved bug20160120. 17084 17085 [tests/tsqrt.c] In bug20160120, check the validity of the result with 17086 mpfr_check first, because the mpfr_sqrt was generating invalid data. 17087 170882016-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17089 17090 fixed bug in mpfr_sqrt reported by Fredrik Johansson 17091 17092 added test case for bug reported by Fredrik Johansson 17093 17094 added FIXME 17095 170962016-01-20 Vincent Lef��vre <vincent@vinc17.net> 17097 17098 [tests/tzeta.c] Added casts for printf. 17099 17100 [tests/tzeta.c] Some corrections. Made the input value of the latest 17101 test clear (avoiding a long string at the same time). 17102 171032016-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17104 17105 fixed bug for zeta(s) with s near an even negative integer 17106 171072016-01-20 Vincent Lef��vre <vincent@vinc17.net> 17108 17109 [doc/README.dev] Instructions on how to cross-compile MPFR for MinGW 17110 (i586-mingw32msvc) and test it under Wine. 17111 17112 [doc/README.dev] Typo. 17113 17114 [tests/tgeneric.c] Improved the generic tests in order to trigger the 17115 mpfr_jn bug found by Fredrik Johansson (r9841) and potential similar 17116 bugs: For half cases, the precision of the inputs was modified to be 17117 smaller than the base precision (for the result). Here, this rule is 17118 changed so that if the base precision is small (< 16), then the 17119 precision of the inputs is chosen to be significantly *larger* than 17120 the base precision in general. 17121 Note: With this improvement, both tj0 and tj1 fail in r9840. 17122 171232016-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17124 17125 added references 17126 17127 added section about gamma_inc 17128 17129 fixed bug found by Fredrik Johansson 17130 17131 added reference for eint 17132 171332016-01-20 Vincent Lef��vre <vincent@vinc17.net> 17134 17135 [tests/tj0.c] Avoid mpfr_set_d. 17136 171372016-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17138 17139 added bug found by Fredrik Johansson in mpfr_j0 17140 17141 added mpfr_gamma_inc 17142 171432016-01-19 Vincent Lef��vre <vincent@vinc17.net> 17144 17145 [src/gamma_inc.c] Use MPFR_ARE_SINGULAR. 17146 171472016-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17148 17149 deal with the case where one of a or x is not regular 17150 171512016-01-19 Vincent Lef��vre <vincent@vinc17.net> 17152 17153 [tools/nightly-test] Corrected tests. 17154 171552016-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17156 17157 added reference 17158 171592016-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17160 17161 added the incomplete beta function 17162 17163 incomplete Gamma is now available 17164 17165 switch to bash and add --enable-decimal-float 17166 17167 minor modification of documentation for mini-gmp 17168 17169 added target "make bench" 17170 171712016-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17172 17173 allow tgamma x prec to print gamma(x) to prec bits 17174 171752016-01-17 Vincent Lef��vre <vincent@vinc17.net> 17176 17177 [tests] Added tgamma_inc to svn:ignore property. 17178 17179 TODO update. 17180 17181 [src/fmma.c] Removed trailing spaces. 17182 17183 [tests/tgamma_inc.c] Portability correction. 17184 17185 [src/mpfr.h] Improved a comment. 17186 17187 [src/gamma_inc.c] Various corrections. 17188 171892016-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17190 17191 first version of incomplete Gamma function (work in progress) 17192 171932016-01-16 Vincent Lef��vre <vincent@vinc17.net> 17194 17195 TODO for correctly rounded polynomials (like fmma). 17196 171972016-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17198 17199 try to fix bugs in fmma (work in progress) 17200 172012016-01-15 Vincent Lef��vre <vincent@vinc17.net> 17202 17203 [src/log_ui.c] Added a FIXME comment: mpfr_log_ui is much slower than 17204 mpfr_log on some values of n, e.g. around ULONG_MAX/3. 17205 17206 [tests/tlog_ui.c] Added tests for n around ULONG_MAX/3. 17207 17208 [src/log_ui.c] Fixed the computation of p. 17209 17210 [src/log_ui.c] Removed a mpz_sub_ui(...,1) to match the comment. 17211 This -1 came from the previous code, but this doesn't change the 17212 value of k because a multiple of 3 cannot be a power of 2. Also 17213 renamed a variable. 17214 17215 [src/log_ui.c] Compute the value of k without rounding (if n was larger 17216 than 2^53 or even 2^24 due to dynamic x87 precision, the result could 17217 be wrong) and overflow (3 * n doesn't always fit in a limb). 17218 17219 [src/log_ui.c] Added assertions. 17220 17221 [tests/tlog_ui.c] Added tests for n around LONG_MAX. 17222 17223 [src/log_ui.c] Replaced a comment by an assertion. 17224 17225 [src/log_ui.c] Added a FIXME (integer overflow for large n). 17226 17227 [tests/tlog_ui.c] 17228 * In the loop, do not test n = 0 and n = 1, because mpfr_can_round 17229 always fails for these values, so that the test is pointless. 17230 * Check that mpfr_can_round no longer fails (this is possible as 17231 we are not doing random tests, i.e. the tested values are known); 17232 the additional precision for y had to be increased. 17233 * Also test large values of n (ULONG_MAX down to ULONG_MAX-19). When 17234 GCC's run-time sanitizer -fsanitize=undefined -fno-sanitize-recover 17235 is used, it signals an error for large values of n. 17236 * The reference values y are obtained with mpfr_log instead of 17237 mpfr_log_ui: indeed we need a different implementation from the 17238 tested function, otherwise only the rounding is tested! Without 17239 GCC's run-time sanitizer, this shows that mpfr_log_ui is buggy 17240 for large values of n. 17241 17242 [tests] Added tfmma and tlog_ui to svn:ignore property. 17243 17244 [src/fmma.c] Use MPFR_SET_EXP to get an assertion failure in case of 17245 out-of-range exponent instead of uncontrolled behavior. 17246 17247 [tests/tfmma.c] Added tests that trigger an error. 17248 17249 [src/fma.c] Added a comment for the new code. 17250 172512016-01-14 Vincent Lef��vre <vincent@vinc17.net> 17252 17253 [tests/Makefile.am] Tests in lexicographic order. 17254 172552016-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17256 17257 in tests, removed #if MPFR_VERSION >= MPFR_VERSION_NUM(2,x,y) 17258 17259 forgot in last commit 17260 17261 added new function mpfr_log_ui 17262 172632016-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17264 17265 adapted to 3- and 4-argument functions (using patch from Patrick Pelissier) 17266 172672016-01-12 Vincent Lef��vre <vincent@vinc17.net> 17268 17269 [tests/tfmma.c] C++ compatibility. 17270 17271 [tests/tfmma.c] Fixed type in printf. 17272 17273 [src/fmma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual). 17274 17275 Really replaced mpfr_printf by printf. 17276 172772016-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17278 17279 give copyright to FSF 17280 17281 replaced mpfr_printf calls 17282 17283 changed copyright (I'm the sole author of this part of the code) 17284 17285 forgot two files 17286 172872016-01-12 Vincent Lef��vre <vincent@vinc17.net> 17288 17289 [src/fma.c] C89 compatibility correction. 17290 17291 [src/fma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual). 17292 172932016-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17294 17295 speedup in mpfr_fma and mpfr_fms 17296 new functions mpfr_fmma and mpfr_fmms 17297 modified mbench/fma to compute b*c+c instead of b*b+c (b*c+d would be better) 17298 172992016-01-08 Vincent Lef��vre <vincent@vinc17.net> 17300 17301 [doc/README.dev] Added info about the parallel test harness. 17302 17303 Updated documentation related to valgrind or other wrapper for the tests 17304 due to the fact that Automake 1.13+ generates a parallel test harness. 17305 * doc/README.dev: replaced VALGRIND by LOG_COMPILER. 17306 * tests/Makefile.am: added a comment mentioning LOG_COMPILER. 17307 173082016-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17309 17310 mpfrbench: use clock() when getrusage() is not available 17311 173122016-01-02 Vincent Lef��vre <vincent@vinc17.net> 17313 17314 [INSTALL] Added a note about tuning MPFR: 17315 For the current GMP version (6.1.0), a Unix-like OS is required. 17316 173172016-01-01 Vincent Lef��vre <vincent@vinc17.net> 17318 17319 [doc/mpfr.texi] Updated the month. 17320 17321 Copyright notice update: added 2016 with 17322 perl -pi -e 's/ (\d{4}-)?(2015)(?= Free Software)/ 17323 " ".($1||"$2-").($2+1)/e' **/*(^/) 17324 under zsh (the m4 and tools/mbench directories were not modified). 17325 Removed 2015 from the example in the doc/README.dev file. 17326 173272015-12-28 Vincent Lef��vre <vincent@vinc17.net> 17328 17329 [src/mpfr-impl.h] Fixed MPFR_WIN_THREAD_SAFE_DLL definition 17330 (patch by Patrick P��lissier). 17331 173322015-12-27 Vincent Lef��vre <vincent@vinc17.net> 17333 17334 [tests/mpf_compat.h] Fix: File "inp_str.dat" could not be opened with 17335 builds outside the source directory (objdir different from srcdir). 17336 This did not generate an error, but prevented a test from being done. 17337 Now that mpfr-test.h is included via the mpf_compat.c or mpfr_compat.c 17338 file (there does not seem to be a valid reason not to include it), we 17339 can use src_fopen to open the file in all cases. 17340 17341 [tests] In tversion.c, output the locale too (if supported). 17342 17343 [tests/tinp_str.c] Added a blank line. 17344 17345 [tests] 17346 * inp_str.dat: added a locale-independent line at the beginning of 17347 the file (useful for mpf_compat). 17348 * mpf_compat.h, tinp_str.c: update because of this change. 17349 17350 [tests/tests.c] Improved src_fopen description (do not use the term 17351 "src directory" because there is a directory named "src", but this 17352 is not what is referred here). 17353 173542015-12-26 Vincent Lef��vre <vincent@vinc17.net> 17355 17356 [tests/mpf_compat.h] Fix: changed "inp_str.data" to "inp_str.dat" 17357 due to the file rename in r8120 (otherwise nothing is tested). 17358 17359 [tests/mpf_compat.h] For mpf_set_str and mpf_init_set_str, avoid strings 17360 with ".", since for GMP the decimal separator is locale dependent (the 17361 tests can be run in non-C locales on purpose in order to detect issues 17362 in various locales), so that for the mpf_compat test, the conversion 17363 fails and the mpf value x is set to 0 (which can yield other problems, 17364 such as with mpf_div (y, x, x), which raises an exception). 17365 Note: this problem appeared in r9157, where tests_start_mpfr() was added 17366 to mpf_compat.h (the locale setting is done in this function). 17367 173682015-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17369 17370 patch from Patrick Pelissier (for MinGW) 17371 173722015-12-15 Vincent Lef��vre <vincent@vinc17.net> 17373 17374 [tests/tsum.c] Corrections for C++. 17375 173762015-12-14 Vincent Lef��vre <vincent@vinc17.net> 17377 17378 Removed trailing spaces. 17379 173802015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17381 17382 review by Rob (sisyphus1@optusnet.com.au) 17383 17384 removed obsolete parts (?) for MinGW 17385 17386 new text for Windows/Visual Studio/Visual C++ part contributed by Brian Gladman 17387 173882015-12-14 Vincent Lef��vre <vincent@vinc17.net> 17389 17390 [INSTALL] Switch to UTF-8. 17391 173922015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17393 17394 changes proposed by Alexander (sav_ix@ukr.net) 17395 173962015-12-14 Vincent Lef��vre <vincent@vinc17.net> 17397 17398 [tests/tsum.c] Correction. 17399 174002015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17401 17402 clock() should work everywhere 17403 174042015-12-14 Vincent Lef��vre <vincent@vinc17.net> 17405 17406 [tests/tsum.c] The timing test from r9753 in POSIX-only. 17407 17408 [doc/mpfr.texi] Updated the month. 17409 174102015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17411 17412 update INSTALL file 17413 17414 -D__USE_MINGW_ANSI_STDIO is needed for GMP only 17415 174162015-12-11 Vincent Lef��vre <vincent@vinc17.net> 17417 17418 [src/sum.c] Updated comment about overlapping between input and output. 17419 174202015-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17421 17422 document that (currently) mpfr_sum doesn't allow overlap 17423 17424 timing test to compare mpfr_sum and naive algorithm (without correct rounding) 17425 17426 update wrt -D__USE_MINGW_ANSI_STDIO 17427 17428 note about MinGW and TLS support 17429 17430 improving error message 17431 174322015-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17433 17434 added comment and message for errors under MinGW 17435 174362015-12-03 Vincent Lef��vre <vincent@vinc17.net> 17437 17438 [src/mpfr-impl.h] Updated a comment about clang and division by 0. 17439 174402015-11-11 Vincent Lef��vre <vincent@vinc17.net> 17441 17442 [doc/sum.txt] Update. 17443 17444 [doc/sum.txt] Update. 17445 17446 [doc/sum.txt] Minor correction. 17447 174482015-11-10 Vincent Lef��vre <vincent@vinc17.net> 17449 17450 [doc/sum.txt] Minor correction. 17451 17452 [doc/sum.txt] Minor correction. 17453 17454 [doc/sum.txt] Update. 17455 17456 [doc/sum.txt] Clarification: avoid the word "iteration" for the loop 17457 over the inputs, when possible. 17458 17459 [doc/sum.txt] Update. 17460 17461 [doc/sum.txt] Update. 17462 17463 [doc/sum.txt] Update. 17464 174652015-11-09 Vincent Lef��vre <vincent@vinc17.net> 17466 17467 [src/sum.c] Added a FIXME comment about the reuse of an input for the 17468 output. 17469 174702015-11-06 Vincent Lef��vre <vincent@vinc17.net> 17471 17472 GMP 5.0.0 or newer is required (instead of 4.2.0). 17473 17474 [doc/sum.txt] Major and final update (complete rewrite). 17475 17476 [src/mpfr-gmp.h] Added a TODO. 17477 17478 [src/sum.c] Bug fixed (MPN_COPY_INCR instead of MPN_COPY_DECR). 17479 174802015-11-05 Vincent Lef��vre <vincent@vinc17.net> 17481 17482 [src/sum.c] Minor comment correction. 17483 17484 [src/sum.c] Added another assertion (checked). 17485 17486 [src/sum.c] Added assertions (checked). 17487 174882015-11-04 Vincent Lef��vre <vincent@vinc17.net> 17489 17490 [tests/tsum.c] Added a comment. 17491 17492 [TODO] In tsum, add testcases for mpfr_sum triggering the bug fixed 17493 in r9722. 17494 17495 [src/sum.c] Bug fix: an error bound was too large to compute the sign 17496 of the secondary term (when the TMD occurs). 17497 174982015-11-03 Vincent Lef��vre <vincent@vinc17.net> 17499 17500 [tests/{tstdint.c,tvalist.c}] Updated and improved comment about the 17501 test of partial + full <mpfr.h> inclusion. 17502 17503 [configure.ac] C code starting with # (preprocessor directives) must not 17504 be indented. 17505 175062015-11-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17507 17508 simplify the configuration with mini-gmp 17509 175102015-10-30 Vincent Lef��vre <vincent@vinc17.net> 17511 17512 [src/sum.c] Updated comment for sum_raw(). 17513 175142015-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17515 17516 better definition of GMP_NUMB_BITS 17517 175182015-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17519 17520 update description of file 17521 175222015-10-29 Vincent Lef��vre <vincent@vinc17.net> 17523 17524 [tests/tdiv.c] Improved comment about the mpfr_divhigh_n_basecase bug. 17525 175262015-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17527 17528 more tests do work with mini-gmp (from GMP 6.1.0-rc1) 17529 175302015-10-29 Vincent Lef��vre <vincent@vinc17.net> 17531 17532 [tools/mpfrlint] For the tests on the source files, ignore everything 17533 related to mini-gmp, not just the src/mini-gmp.[ch] files. 17534 17535 [doc/README.dev] "To make a release": mention -DMPFR_TUNE_COVERAGE. 17536 17537 [tests/tdiv.c] Updated comment about the mpfr_divhigh_n_basecase bug. 17538 175392015-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17540 17541 fixed replacement for mpn_neg (return value was wrong) 17542 17543 adapt for mini-gmp (from GMP 6.1.0-rc1) 17544 17545 replace obsolete mpz_div_2exp function by mpz_xdiv_q_2exp 17546 175472015-10-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17548 17549 adapt mini-gmp stuff to GMP 6.1.0-rc1 17550 17551 replace obsolete mpz_div by mpz_tdiv_q 17552 175532015-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17554 17555 fix bug reported by Ricky Farr 17556 (https://sympa.inria.fr/sympa/arc/mpfr/2015-10/msg00023.html) 17557 175582015-10-22 Vincent Lef��vre <vincent@vinc17.net> 17559 17560 [autogen.sh] Restore the INSTALL file also if the process receives 17561 a usual signal (SIGHUP, SIGINT, SIGQUIT or SIGTERM). 17562 17563 [tests/tversion.c] Added a comment about compiler info. 17564 17565 [tests/tversion.c] Instead of __GNUC__, __GNUC_MINOR__ and 17566 __GNUC_PATCHLEVEL__, output __VERSION__, which gives more 17567 information (for GCC development versions and ICC). 17568 175692015-10-21 Vincent Lef��vre <vincent@vinc17.net> 17570 17571 [src/sum.c] Updated comment for sum_raw(). 17572 175732015-09-15 Vincent Lef��vre <vincent@vinc17.net> 17574 17575 [doc/mpfr.texi] Added a comment about mpfr_get_{si,ui,sj,uj} and flags. 17576 17577 [doc/mpfr.texi] Updated the month. 17578 17579 [doc/mpfr.texi] Changed "returned value" to "return value" when this 17580 is the value returned by the C function (synonymous, but sometimes 17581 less ambiguous). 17582 17583 [doc/mpfr.texi] For r9689, "returned value" ��� "return value". 17584 17585 [doc/mpfr.texi] Completed the specification of mpfr_get_{si,ui,sj,uj} 17586 and mpfr_get_z (inexact flag, and returned value for mpfr_get_z). 17587 17588 [tests/tget_z.c] Fixed and improved the check_one() test. 17589 * The input value was modified at each iteration, giving z = 0 very 17590 quickly, so that not much was tested in practice; in particular, 17591 the third argument of mpz_fdiv_q_2exp in mpfr_get_z was never 17592 properly tested (since it has no effect for z = 0). 17593 * Added various tests of the flags. 17594 17595 [tests/tget_z.c] Optimized the check_one() test. 17596 175972015-09-10 Vincent Lef��vre <vincent@vinc17.net> 17598 17599 Merged the win-thread-safe-dll branch: support build as thread-safe DLL 17600 on Windows: changes from Stephan Tolksdorf 17601 https://gforge.inria.fr/tracker/download.php/136/619/19537/4980/changes.zip 17602 + a correction and some consistency checks. See MPFR bug 19537 on: 17603 https://gforge.inria.fr/tracker/index.php?func=detail&aid=19537&group_id=136&atid=619 17604 17605 [src/mpfr-impl.h] Resolved the problem under Linux. 17606 17607 [src/mpfr-impl.h] Detect some possible inconsistencies under Unix, 17608 when some macro should imply a MS-Windows platform. 17609 17610 Merged the latest changes from the trunk since this wasn't the cause 17611 of the problem. 17612 17613 Applied changes from Stephan Tolksdorf: 17614 https://gforge.inria.fr/tracker/download.php/136/619/19537/4980/changes.zip 17615 The MPFR build fails on my Linux machine with 17616 CFLAGS=-Werror=missing-prototypes 17617 because MPFR_WIN_THREAD_SAFE_DLL gets defined (this CFLAGS just allowed 17618 me to detect the problem with MPFR_WIN_THREAD_SAFE_DLL, which could have 17619 otherwise remained unnoticed). 17620 17621 Include config.h when need be. 17622 176232015-09-07 Vincent Lef��vre <vincent@vinc17.net> 17624 17625 [TODO] Updated mpz_t caching item, suggesting mpz_init2 instead. 17626 17627 [TODO] Added: check whether mpz_t caching is necessary (this was 17628 committed in r8911). In short, timings should be done with -static 17629 (this wasn't clear), they may depend on the malloc implementation, 17630 and after a look at the source, the difference in the timings with 17631 mpz_t caching is surprising and should be explained. 17632 176332015-09-04 Vincent Lef��vre <vincent@vinc17.net> 17634 17635 [tools/ck-copyright-notice] Check src/mparam_h.in instead of the 17636 generated (and not distributed) src/mparam.h file; this is also 17637 useful to avoid an error after running "make tune". 17638 176392015-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17640 17641 distribute the mpfrbench README 17642 17643 add a README for mpfrbench 17644 176452015-09-04 Vincent Lef��vre <vincent@vinc17.net> 17646 17647 More details in a comment about assertions via tuneup. 17648 176492015-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17650 17651 fixed failed assertion during "make tune" 17652 176532015-08-25 Vincent Lef��vre <vincent@vinc17.net> 17654 17655 [tests/tget_z.c] Flags testing. 17656 17657 [doc/README.dev] Updated a URL. 17658 17659 [tests/tstdint.c] Support MPFR_PRINTF_MAXLM. 17660 17661 [tests/tget_sj.c] Support MPFR_PRINTF_MAXLM. 17662 17663 [tests/tget_sj.c] Typo. 17664 17665 [acinclude.m4] Instead of checking whether the 'j' printf length 17666 modifier is working, try to find one that works. 17667 17668 [acinclude.m4] Check whether the 'j' printf length modifier is working. 17669 17670 [tests/tget_sj.c] Improved check_erange (more flags testing). 17671 17672 [tests/tget_sj.c] Improved check_sj and check_uj even more. 17673 17674 [tests/tget_sj.c] Improved check_sj and check_uj (flags testing). 17675 176762015-08-24 Vincent Lef��vre <vincent@vinc17.net> 17677 17678 [tests/tfits.c] New tests at the limits of the types. 17679 17680 [tests/tfits.c] For the mpfr_fits_{uintmax,intmax}_p functions, check 17681 that the flags are not modified and added tests of -Inf and -0. 17682 17683 [tests/tfits.c] For the mpfr_fits_{u,s}{long,int,short}_p functions, 17684 check that the flags are not modified and added tests of -Inf and -0. 17685 176862015-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17687 17688 fixed the AMD K8 tuning (cf r8118) 17689 176902015-08-24 Vincent Lef��vre <vincent@vinc17.net> 17691 17692 [tests/tset_si.c] Improved NaN mpfr_get_si / mpfr_get_ui test. 17693 17694 [src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions: 17695 the flags could be modified, which made the new mpfr_get_{si,ui} tests 17696 fail (tests/tset_si.c r9649). 17697 17698 [tests/tset_si.c] Added mpfr_get_{si,ui} tests, including flags. 17699 177002015-08-20 Vincent Lef��vre <vincent@vinc17.net> 17701 17702 [src/mparam_h.in] Improved comment: __amd64__ is generic to all 17703 x86 processors with a 64-bit ABI (amd64, a.k.a. x86_64), thus 17704 suggest to move mparam.h files to more meaningful locations. 17705 17706 [configure.ac] Added test for usability of gmp.h at link time 17707 (merged changeset r9644 from the 3.1 branch, with minor changes 17708 due to the fact that a known problem between GMP 4.1 and GCC 5 17709 can no longer occur, now that we require GMP 4.2.0 or newer). 17710 177112015-08-19 Vincent Lef��vre <vincent@vinc17.net> 17712 17713 [doc/README.dev] "To make a release": mention abi-compliance-checker. 17714 177152015-07-31 Vincent Lef��vre <vincent@vinc17.net> 17716 17717 [src/fpif.c] Added an assertion (I get a build failure with gcc-snapshot 17718 20150722-1 due to -Werror=array-bounds, but the code looks OK). 17719 Simplified test on: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67077 17720 177212015-07-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17722 17723 remove usage of mpn_rootrem in mpfr_sqrt since now mpn_sqrtrem is faster 17724 (https://gmplib.org/list-archives/gmp-devel/2015-July/004074.html) 17725 177262015-07-30 Vincent Lef��vre <vincent@vinc17.net> 17727 17728 [src/next.c] Added a note concerning the exceptions. 17729 177302015-07-20 Vincent Lef��vre <vincent@vinc17.net> 17731 17732 [doc/mpfr.texi] Updated the month. 17733 17734 [tests/tversion.c] Output MPFR_VERSION_STRING too. 17735 17736 [tests/tversion.c] Check and output additional mpfr_buildopt_* info. 17737 17738 Added mpfr_rint_roundeven and mpfr_roundeven functions, with 17739 documentation and tests. 17740 177412015-07-16 Vincent Lef��vre <vincent@vinc17.net> 17742 17743 [tests/tfrexp.c] 17744 * Replaced each mpfr_get_exp occurrence by the internal MPFR_GET_EXP 17745 macro in order to make sure that an assertion failure is triggered 17746 in case of singular number (see also the comment added in r9618). 17747 * Fixed the remaining problem due to an overflow and infinite value. 17748 17749 [src/mpfr.h] Added a comment about the drawback of the mpfr_get_exp() 17750 macro, defined in addition to the function. 17751 177522015-07-15 Vincent Lef��vre <vincent@vinc17.net> 17753 17754 [tests/tfrexp.c] Simplification: merged the tests on the ternary values, 17755 the returned MPFR values and the flags. 17756 17757 [src/{div_2si.c,div_2ui.c,mul_2si.c}] Fixed some underflow cases in 17758 rounding to nearest when the exact result is -2^(emin-2), i.e. the 17759 middle of 0 and the minimum negative number in absolute value (the 17760 correction in r5517 was incorrect/incomplete). 17761 17762 [src/exceptions.c] Added logging for mpfr_underflow and mpfr_overflow. 17763 17764 [tests/tmul_2exp.c] Extended the underflow() test to negative numbers, 17765 triggering a new bug. 17766 17767 [src/frexp.c] Added a comment. 17768 177692015-07-02 Vincent Lef��vre <vincent@vinc17.net> 17770 17771 [tools/build-patch] Rebuild the mpfr.info file if mpfr.texi has been 17772 modified, in order to take it into account in the patch. This is needed 17773 since the mpfr.info file is distributed in the tarball. 17774 17775 [tools/mpfrlint] Check a Texinfo rule (Section "Ending a Sentence") 17776 with common words that end with a capital letter. 17777 (merged changeset r9603 from the 3.1 branch) 17778 177792015-06-28 Vincent Lef��vre <vincent@vinc17.net> 17780 17781 [TODO] Updated URL of TS 18661-4. 17782 177832015-06-26 Vincent Lef��vre <vincent@vinc17.net> 17784 17785 [src/frexp.c] Handle internal overflow. 17786 17787 [tests/tfrexp.c] Forgot a "exit (1);". 17788 17789 [tests/tmul_2exp.c] Overflow test: more output info; improved code. 17790 17791 [src/mul_2si.c] Fixed overflow case when n = 0. 17792 [tests/tmul_2exp.c] In the overflow test, check mpfr_mul_2ui and 17793 mpfr_mul_2si too (mpfr_mul_2ui was OK). 17794 17795 [src/div_2si.c] Fixed overflow case when n = 0. 17796 [tests/tmul_2exp.c] In the overflow test, check mpfr_div_2si too. 17797 17798 [src/div_2ui.c] Fixed overflow case (can occur only when n = 0). 17799 [tests/tmul_2exp.c] Completed the overflow test. 17800 17801 [tests/tfrexp.c] Added tests (currently fail due to the mpfr_div_2ui 17802 unhandled-overflow bug). 17803 17804 [tests/tmul_2exp.c] Added tests where mpfr_div_2ui overflows, which 17805 is currently not handled. 17806 17807 [src/frexp.c] Fixed a bug occurring when the current exponent range 17808 does not contain 0. 17809 178102015-06-25 Vincent Lef��vre <vincent@vinc17.net> 17811 17812 [src/check.c] Typo in a comment. 17813 178142015-06-19 Vincent Lef��vre <vincent@vinc17.net> 17815 17816 [tools/announce-text] Update due to recent InriaForge upgrade. 17817 178182015-06-16 Vincent Lef��vre <vincent@vinc17.net> 17819 17820 [doc/mpfr.texi] Added a paragraph about the multiple use of MPFR. 17821 17822 [TODO] Added: use symbol versioning. 17823 178242015-06-12 Vincent Lef��vre <vincent@vinc17.net> 17825 17826 [doc/faq.xsl] Remove the indent="no" to get the same behavior as before 17827 when using libxslt 1.1.27+. See: 17828 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718535#10 17829 17830 [tests/tfma.c] Improved the new underflow tests (test_underflow3) to 17831 test FMA(-x,y,-z). 17832 17833 [src/fma.c] Completely fixed the scaling in case of underflow. 17834 17835 [src/fma.c] Partially fixed the scaling in case of underflow, 17836 corresponding to the testcase from r9566. Double rounding is 17837 not handled yet (failure triggered by r9567). 17838 17839 [tests/tfma.c] Improved the new underflow tests (test_underflow3) to 17840 yield some cases with double rounding when scaling: If the only fix 17841 in src/fma.c is to change the rounding mode of the last mpfr_div_2ui 17842 (computing s / 2^scale) to rnd_mode, a new failure appears for n = 2, 17843 k = 4, s = -1, MPFR_RNDN. 17844 17845 [tests/tfma.c] Corrected the new underflow tests to really generate 17846 underflows, showing a bug in mpfr_fma. 17847 17848 [src/fma.c] Added log messages. 17849 17850 [tests/tfma.c] The code removed in r9560 was actually necessary, 17851 but do this in a better way. 17852 178532015-06-11 Vincent Lef��vre <vincent@vinc17.net> 17854 17855 [tests/tfma.c] Added other underflow tests. 17856 17857 [tests/tfma.c] Some improvements. 17858 17859 [tests/tfma.c] GNU coding style. 17860 17861 [tests/tfma.c] Removed code that isn't necessary. 17862 17863 [doc/README.dev] "To make a release": mention -DMPFR_COV_CHECK and 17864 -DMPFR_ALLOCA_MAX=0 tests. 17865 178662015-06-10 Vincent Lef��vre <vincent@vinc17.net> 17867 17868 [tests/trandom.c] Cleaner test, avoiding the explicit use of mpfr_rands. 17869 17870 [tests/trandom.c] Improved latest change, as some other test already 17871 assume a fixed PRNG with GMP >= 4.2.0 (now the value of the last 17872 random number of the test is checked). 17873 17874 [tests/trandom.c] 17875 * Get a non-zero fixed-point number whose first 32 bits are 0 with the 17876 default GMP PRNG. This corresponds to the case cnt == 0 && k != 0 in 17877 src/urandomb.c (fixed in r8762) with the 32-bit ABI. 17878 * Output a warning (with a fatal error when the MPFR_COV_CHECK macro 17879 is defined) if one doesn't get such a number, probably because the 17880 GMP PRNG has changed. 17881 17882 [src/sqrt.c] The bug fixed in r9540 actually came from r9014, which 17883 incorrectly replaced MPFR_EXP by MPFR_SET_EXP. So, restored the 17884 previous code (re-adding the assertion check), keeping my comment 17885 from r9540 to explain why we don't use MPFR_SET_EXP. 17886 17887 [tests/tgeneric.c] Fixed overflow/underflow tests introduced in r9539: 17888 the tests were done in all rounding modes, but the code was incorrect 17889 if the exponent of the result depended on the rounding mode. So, the 17890 tests are now done only in the rounding mode previously selected. This 17891 should be sufficient to detect bugs. 17892 17893 [src/lngamma.c] For mpfr_lgamma and mpfr_lngamma, the exponent range 17894 was not restored in some cases (some large results). Bug introduced 17895 in r8917 (trunk only). 17896 17897 [src/{cos.c,sin.c}] Fixed bug related to the exponent range, introduced 17898 in r6461 with the use of mpfr_sincos_fast. 17899 Details: 17900 For mpfr_sin, the exponent range was not restored, and restoring it 17901 before calling mpfr_sincos_fast as this was done for mpfr_cos did 17902 not work; indeed the source of this function shows that it needs an 17903 extended exponent range. So, changed both mpfr_cos and mpfr_sin to 17904 call mpfr_sincos_fast in the extended exponent range and restore the 17905 exponent range at the end, like in usual code. 17906 17907 [tests/tgeneric.c] Check whether the exponent range has been 17908 modified by the tested function (which should never happen). 17909 This check triggers failures in tlgamma, tlngamma and tsin. 17910 17911 [src/sqrt.c] Fixed assertion failure in reduced exponent range. 17912 Note: This could happen only in very specific exponent ranges, 17913 in particular, which do not include the number 1. 17914 17915 [tests/tgeneric.c] Added overflow/underflow tests (��� 4 failed tests). 17916 179172015-06-08 Vincent Lef��vre <vincent@vinc17.net> 17918 17919 [src/zeta_ui.c] 17920 * Support reduced exponent range for the generic case. 17921 * Added logging. 17922 [tests/tzeta_ui.c] Added tests in reduced exponent range. 17923 17924 [src/add_ui.c] Fixed format string in MPFR_LOG_FUNC. 17925 179262015-06-07 Vincent Lef��vre <vincent@vinc17.net> 17927 17928 [tests/tzeta_ui.c] Code simplification. 17929 17930 [tests/tzeta_ui.c] Test zeta(0) in reduced exponent range and all 17931 rounding modes. 17932 17933 [src/zeta_ui.c] Fixed zeta(0) in reduced exponent range. 17934 [tests/tzeta_ui.c] Added testcase. 17935 179362015-06-05 Vincent Lef��vre <vincent@vinc17.net> 17937 17938 [src/{ui_div.c,ui_sub.c}] Correction for reduced exponent range. 17939 17940 [tests/tui_sub.c] Check overflow. 17941 17942 [tests/tui_div.c] Check overflow. 17943 17944 [tests/tgeneric.c] Removed useless parentheses. 17945 17946 [tests/tgeneric.c] Special cases with unsigned long argument. 17947 17948 [tests/tpow_all.c] Better flags output in error message. 17949 179502015-06-04 Vincent Lef��vre <vincent@vinc17.net> 17951 17952 [src/set_q.c] Added missing MPFR_SAVE_EXPO_FREE in case of preliminary 17953 overflow or underflow (extreme cases). 17954 17955 [src/set_q.c] Replaced a "return" by MPFR_RET: this is at least needed 17956 in the extreme case cd != 0, and safer in general. 17957 17958 [tests/tset_q.c] Check the flags. 17959 17960 [src/mul_ui.c] Fixed bug in mpfr_mul_ui/si: the inexact flag wasn't set. 17961 17962 [tests/t{add,div,mul,sub}_ui.c] Replaced tgeneric_ui.c by tgeneric.c, 17963 showing a bug in mpfr_mul_ui (missing inexact flag). 17964 17965 [tests/{tui_div.c,tui_sub.c}] Added generic tests, yielding assertion 17966 failures (due to a reduced exponent range) when assertions are checked. 17967 17968 [tests/tgeneric.c] Major clean-up, with some minor corrections. 17969 Added support for unsigned long argument, which can be the first 17970 or the second one (another intent is to replace tgeneric_ui.c, 17971 which does fewer tests concerning the flags). 17972 17973 [tests/tdiv_d.c] Corrected the tested function for the generic tests. 17974 17975 [tests/td_div.c] Corrected the tested function for the generic tests. 17976 17977 [tests/tui_sub.c] Minor improvements. 17978 17979 [tests/tgeneric_ui.c] Added missing \n. Minor improvements. 17980 17981 [tests/tui_div.c] Minor improvements. 17982 179832015-06-03 Vincent Lef��vre <vincent@vinc17.net> 17984 17985 [tests/trint.c] Corrected the description (copy-paste error in r9473). 17986 17987 [src/rint.c] Handle reduced exponent range. 17988 17989 [tests/trint.c] Extend basic_tests from [56,72] to [1,72] since i < 4 17990 (|x| < 1) are special cases in the implementation. 17991 17992 [tests/trint.c] Also run BASIC_TEST in reduced exponent range 17993 (emin = emax = EXP(x)). 17994 17995 [tests/trint.c] Also run BASIC_TEST2 in reduced exponent range 17996 (emin = emax = EXP(x)). 17997 17998 [src/rint.c] Added a comment about the mpfr_rint_* functions. 17999 18000 [src/rint.c] Simplified and fixed the mpfr_rint_* functions: in some 18001 corner cases, an intermediate overflow would not be propagated. No 18002 testcases added for this particular problem since huge precision 18003 numbers would be involved. 18004 180052015-06-02 Vincent Lef��vre <vincent@vinc17.net> 18006 18007 [doc/mpfr.texi] Added description of the flags for the mpfr_rint, 18008 mpfr_ceil, mpfr_floor, mpfr_round, mpfr_trunc functions. 18009 180102015-06-01 Vincent Lef��vre <vincent@vinc17.net> 18011 18012 [tests/trint.c] In the basic tests, test the flags. 18013 180142015-05-31 Vincent Lef��vre <vincent@vinc17.net> 18015 18016 [tests/trint.c] Corrections for r9476 and r9477. 18017 18018 [configure.ac] For the gcc compiler, better choice of the -W flags 18019 when the selected language is C++ (e.g. when CC=g++). 18020 180212015-05-29 Vincent Lef��vre <vincent@vinc17.net> 18022 18023 [tests/trint.c] Added basic tests of the mpfr_{trunc,floor,ceil,round} 18024 functions. 18025 18026 [tests/trint.c] Added basic tests of the mpfr_rint_* functions. 18027 18028 [doc/mpfr.texi] Added blank lines to improve readability. 18029 18030 [tests/trint.c] Updated the description (test_generic_round is now 18031 tested, which wasn't done at all before). 18032 18033 [tests/trint.c] Added generic tests for the mpfr_rint_* functions. 18034 Since all numbers in ]0,1/2[ round to the same value, in order to 18035 avoid redundant tests, increased the TEST_RANDOM_EMIN value to -20 18036 and set TEST_RANDOM_ALWAYS_SCALE to 1. 18037 Note: only these new tests generate an error if the change of the 18038 exponent range is no longer done in these mpfr_rint_* functions. 18039 180402015-05-29 Vincent Lef��vre <vincent@vinc17.net> 18041 18042 [tests] Added always_scale argument (boolean) to tests_default_random() 18043 so that when it is true, scaling is always performed on random numbers 18044 generated by mpfr_urandomb(), instead of preferring numbers of the order 18045 of magnitude of 1 for half outputs. This will be useful for mpfr_rint_* 18046 tests. 18047 18048 For tgeneric.c, the value of this argument is controlled by a new macro 18049 TEST_RANDOM_ALWAYS_SCALE (0 by default, which corresponds to the current 18050 behavior). For the other tests that call tests_default_random(), the 18051 argument is set to 0, so that the behavior remains the same. 18052 180532015-05-29 Vincent Lef��vre <vincent@vinc17.net> 18054 18055 [doc/mpfr.texi] Added a remark concerning the mpfr_rint_* functions. 18056 180572015-05-28 Vincent Lef��vre <vincent@vinc17.net> 18058 18059 [src] Fixed allocation issue for multithreaded applications: 18060 https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html 18061 * mpfr-gmp.{c,h}: made mpfr_allocate_func, mpfr_reallocate_func and 18062 mpfr_free_func thread-local; updated MPFR_GET_MEMFUNC to execute 18063 mp_get_memory_functions only when these pointers have not been set 18064 to the actual function pointers yet. 18065 * mpfr-impl.h: #include "mpfr-thread.h" earlier (before mpfr-gmp.h, 18066 where MPFR_THREAD_ATTR is now used). 18067 180682015-05-25 Vincent Lef��vre <vincent@vinc17.net> 18069 18070 [src/mpfr-gmp.c] Replaced mpfr_allocate_func and mpfr_free_func 18071 by __gmp_allocate_func and __gmp_free_func in mpfr_tmp_allocate 18072 and mpfr_tmp_free respectively, fixing the crash in talloc. 18073 See: https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html 18074 18075 [tests/talloc.c] Avoid a failure with --with-gmp-build due to the fact 18076 that the MPFR_ALLOCA_MAX macro is not defined in this case. 18077 180782015-05-23 Vincent Lef��vre <vincent@vinc17.net> 18079 18080 Added libtool-tcc-rpath.patch from 18081 https://lists.gnu.org/archive/html/libtool-patches/2015-05/msg00000.html 18082 so that tcc can be used with libtool 2.4.3 to 2.4.6. 18083 In doc/README.dev, documented how to use this patch (before a release). 18084 18085 [tests] Added talloc.c and updated check_PROGRAMS in Makefile.am. 18086 This test detects an allocation bug added in r8813, which occurs 18087 if mpfr_tmp_allocate() is invoked before __gmp_allocate_func when 18088 the GMP build is not used (thus this bug is not visible in most 18089 code since mpfr_init2 is generally called first, directly or not, 18090 and it uses __gmp_allocate_func). Details: 18091 https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html 18092 18093 [tests/{tstdint.c,tvalist.c}] Added missing #include "mpfr-test.h" 18094 (detected with gcc -Werror=implicit-function-declaration), needed 18095 since r9447. 18096 180972015-05-22 Vincent Lef��vre <vincent@vinc17.net> 18098 18099 [src/mpfr-gmp.c] Code formatting. 18100 18101 [tests/tstckintc.c] Fixed undefined behavior (invalid pointer). 18102 18103 Define MPFR_ALLOCA_MAX macro: Maximum size for the use of alloca by 18104 temporary allocations (default: 16384). 18105 18106 [tests/{tstdint.c,tvalist.c}] Use tests_start_mpfr / tests_end_mpfr, 18107 in particular to detect a wrong MPFR version (due to a libtool bug). 18108 181092015-05-21 Vincent Lef��vre <vincent@vinc17.net> 18110 18111 [autogen.sh] Exit with the exit status of autoreconf. Thus a failure 18112 will be noticed more easily. 18113 18114 [NEWS] Update. 18115 18116 [acinclude.m4] Added a comment about memmove and memset being considered 18117 to be missing when gcc -Werror is used, because of a "conflicting types 18118 for built-in function" error. 18119 18120 [acinclude.m4] Various corrections in the tests: 18121 * MPFR_CHECK_MP_LIMB_T_VS_LONG was always failing due to a typo. 18122 * MPFR_FUNC_GMP_PRINTF_SPEC: missing #include <string.h> for strcmp. 18123 * Replaced rint by nearbyint in messages (as nearbyint is tested). 18124 * Avoid warnings to avoid failures when -Werror is used. 18125 181262015-05-20 Vincent Lef��vre <vincent@vinc17.net> 18127 18128 [tests/{tcmp_d.c,tcmp_ld.c,tget_d.c}] Avoid warnings concerning unused 18129 variables when MPFR_ERRDIVZERO is defined (useful with -Werror). 18130 18131 [tests/tests.c] Avoid a warning concerning an unused variable 18132 when HAVE_DENORMS is not defined (useful with -Werror). 18133 181342015-05-19 Vincent Lef��vre <vincent@vinc17.net> 18135 18136 [doc/mpfr.texi] Improved mpfr_swap description again. 18137 18138 [doc/mpfr.texi] Correction and improvements in the formatting. 18139 18140 [doc/mpfr.texi] Added a warning for mpfr_set_prec and mpfr_prec_round 18141 about allocation issue, as these functions change the precision of x. 18142 18143 [doc/mpfr.texi] Typo in the latest change. 18144 18145 [doc/mpfr.texi] Rewrote the mpfr_swap description. This should solve 18146 the documentation issue reported on: 18147 https://gforge.inria.fr/tracker/index.php?func=detail&aid=18954&group_id=136&atid=619 18148 181492015-05-18 Vincent Lef��vre <vincent@vinc17.net> 18150 18151 [doc/sum.txt] Update (preliminary steps). 18152 181532015-05-13 Vincent Lef��vre <vincent@vinc17.net> 18154 18155 [doc/sum.txt] Started the rewrite of the doc. 18156 181572015-05-06 Vincent Lef��vre <vincent@vinc17.net> 18158 18159 [NEWS] Update concerning mpfr_sum. 18160 18161 [doc/mpfr.texi] Update concerning mpfr_sum. 18162 18163 [doc/sum.txt] The specification of the sign of a zero result only 18164 applies to an exact zero, of course (for an inexact zero result, 18165 the usual rule of the rounding mode is applied). 18166 18167 [tests/t[ne]random_chisq.c] Fixed memory leak (detected by GCC's 18168 AddressSanitizer). 18169 18170 [doc/README.dev] "To make a release": Test with GCC's AddressSanitizer 18171 (-fsanitize=address). 18172 18173 [tests/tabort_defalloc*.c] Disable the tests if __SANITIZE_ADDRESS__ 18174 is defined, i.e. when GCC's AddressSanitizer is used, because it 18175 reports the error before GMP can do the abort. 18176 181772015-05-05 Vincent Lef��vre <vincent@vinc17.net> 18178 18179 [tests/tests.c] Make tests_default_random() more intuitive, avoiding 18180 automatic changes of the current exponent range in some cases: instead 18181 of adding some random exponent in [emin,emax] to the exponent of the 18182 random number x in ]0,1[, force this random exponent to be the one of 18183 x, so that its exponent is guaranteed to be in [emin,emax]. This avoids 18184 a failure in tsum due to the fact that the exponent range was changed 18185 automatically (and not restored). 18186 18187 [tests/tsum.c] In cancel(), increase the number of tests from 8 to 1000. 18188 This is much more, but the test is fast compare to other ones so that 18189 the running time increases by a few percents only. And this triggers a 18190 new bug: the exponent range is not restored (on a 64-bit machine). 18191 18192 [tests/tsum.c] Changes in cancel(): 18193 * The fail-test was x[n] > bound instead of |x[n]| > bound, so that 18194 some failures could be missed. 18195 * More output in case of failure. 18196 * Handle underflow in the bound computation. This fixes an incorrect 18197 failure due to a bound rounded toward zero instead of toward +inf 18198 with GMP_CHECK_RANDOMIZE=1431478020 (found by the nightly tests). 18199 18200 [tools/nightly-test] Run "make check" with VERBOSE=1 in order to have 18201 tests/test-suite.log output in case of failure, now that Automake 1.13+ 18202 is used. 18203 182042015-04-28 Vincent Lef��vre <vincent@vinc17.net> 18205 18206 Added a TODO about mpfr_sum. 18207 182082015-04-24 Vincent Lef��vre <vincent@vinc17.net> 18209 18210 [configure.ac] Updated a comment about Automake 1.13. 18211 18212 [Makefile.am] Updated comment about ACLOCAL_AMFLAGS. 18213 18214 [TODO] Suggest to move some macro definitions from acinclude.m4 to the 18215 m4 directory as suggested by the Automake manual. 18216 182172015-04-23 Vincent Lef��vre <vincent@vinc17.net> 18218 18219 [doc/README.dev] Grouped everything about the test suite near the end 18220 of this file. Added information about how the test suite works since 18221 the full Automake 1.13 support (r8821). 18222 18223 To take into account that Automake 1.13 or later will be used: 18224 * doc/mpfr.texi, INSTALL: updates related to "make check". 18225 * configure.ac: require Automake 1.13 since the documentation now 18226 assumes that 1.13 or later is used (and because previous Automake 18227 versions are no longer tested). 18228 182292015-04-10 Vincent Lef��vre <vincent@vinc17.net> 18230 18231 [NEWS] Mention the complete rewrite of function mpfr_sum. 18232 18233 [tests/tsum.c] Added a comment about the latest fixed bug. 18234 18235 Merged the new-sum branch: 18236 * New feature for developers in order to improve the testsuite: 18237 value coverage checking (MPFR_COV_CHECK macro), allowing one 18238 to check whether some combinations of values are tested. See 18239 example of use in src/sum.c and tests/tsum.c files. 18240 * src/sum.c: full rewrite of mpfr_sum. Note: the documentation 18241 of the algorithm in doc/sum.txt is currently a bit obsolete. 18242 * tests/tsum.c: many new tests, some of them specifically written 18243 for the new algorithm and implementation. 18244 182452015-04-09 Vincent Lef��vre <vincent@vinc17.net> 18246 18247 [src/sum.c] Fixed bug: mpn functions do not accept a zero size argument. 18248 18249 [tests/tsum.c] Replaced a mpfr_inits by a mpfr_inits2. 18250 18251 [tests/tsum.c] Added a simple test that triggers a glibc free() error 18252 or segmentation fault when MPFR is configured with GMP 6.0.0 built 18253 with "--disable-alloca ABI=32". GCC's address sanitizer shows a 18254 heap-buffer-overflow. This is mainly for debugging as this problem 18255 also occurs in other tests (it is quite generic). 18256 18257 [tests/tsum.c] Removed a temporary comment. 18258 18259 Merged the latest changes from the trunk. 18260 18261 [tests/tsum.c] Added check_underflow test. 18262 182632015-04-08 Vincent Lef��vre <vincent@vinc17.net> 18264 18265 [tests/tsum.c] Comments. 18266 18267 [src/sum.c] Bug fix: use MPFR_EXP instead of MPFR_SET_EXP to set the 18268 exponent since it can be outside the current exponent range before 18269 it is checked with mpfr_check_range. Also added a static assertion 18270 (always satisfied in practice) to make sure that exponent related 18271 computations cannot yield an integer overflow. 18272 18273 [tests/tsum.c] Added check_overflow test, which triggers a bug. 18274 182752015-03-31 Vincent Lef��vre <vincent@vinc17.net> 18276 18277 [tests/tsum.c] Completed the cancel test (generic random tests with 18278 cancellations): check the bound on the result. 18279 18280 [tests/tsum.c] Improved the check4 test: 18281 * removed some not very useful tests to reduce the running time; 18282 * added tests checking "MPFR_RNDN, tmd=2, rbit=0, sst=1, negative", 18283 which was the only remaining one output by check_coverage (when 18284 MPFR_COV_CHECK is defined). 18285 18286 [tests/tsum.c] Reduced the check4 test because it was much too long 18287 compared to the other tests. The bug fixed in r9356 is still triggered 18288 and "MPFR_RNDN, tmd=2, rbit=0, sst=0, negative" is still checked. 18289 182902015-03-30 Vincent Lef��vre <vincent@vinc17.net> 18291 18292 [tests/tsum.c] Updated comment of the check4 test. 18293 18294 [src/sum.c] Bug triggered by the check4 test fixed. 18295 18296 [tests/tsum.c] Another correction in the check4 test. 18297 18298 [tests/tsum.c] In the check4 test, two terms didn't correspond to 18299 the formula given in the comment; corrected these terms (the same 18300 bug is triggered). 18301 18302 [tests/tsum.c] Forgot the h in the error message of the check4 test. 18303 18304 [tests/tsum.c] Extend the check4 test even further. 18305 18306 [tests/tsum.c] Extend the check4 test even further. 18307 18308 [tests/tsum.c] Added check4 test, which triggers a bug. 18309 183102015-03-27 Vincent Lef��vre <vincent@vinc17.net> 18311 18312 [src/sum.c] In the TMD detection: 18313 * improved variable nbits to decrease the number of operations; 18314 * added some comments; 18315 * fixed the shift count bug triggered by the bug20150327 test. 18316 18317 [tests/tsum.c] Added bug20150327 testcase. 18318 18319 [tests/tsum.c] Corrected test of the ternary values inex1 and inex2. 18320 183212015-03-20 Vincent Lef��vre <vincent@vinc17.net> 18322 18323 [tools/ck-copyright-notice] Bug fix and improvements. 18324 18325 [tools/ck-copyright-notice] More checks. 18326 183272015-03-19 Vincent Lef��vre <vincent@vinc17.net> 18328 18329 [src/sum.c] Do not consider the corrected sst for MPFR_COV_SET. 18330 18331 [tests/tsum.c] More tests. 18332 18333 [src/sum.c] Added comments. 18334 18335 [src/sum.c] In the final rounding, forgot to handle the possible 18336 exponent change in the negative case with corr == 2. 18337 183382015-03-17 Vincent Lef��vre <vincent@vinc17.net> 18339 18340 [tests/tsum.c] Improved the check3 tests, which were added in the 18341 latest commit. They now trigger an assertion failure in sum.c. 18342 18343 [tests/tsum.c] New tests. 18344 18345 [tests/tsum.c] Value coverage checking: tmd can be 2 only for MPFR_RNDN. 18346 183472015-03-16 Vincent Lef��vre <vincent@vinc17.net> 18348 18349 [src/sum.c] Better logging. 18350 18351 [src/sum.c] Bug fix: the sum_raw code was unnecessarily assuming 18352 too much; thus, removed too parameters, which can be very easily 18353 recomputed only when they make sense. 18354 183552015-03-12 Vincent Lef��vre <vincent@vinc17.net> 18356 18357 [doc/sum.txt] Added a new table concerning the correction term. 18358 [src/sum.c] Updated rounding. 18359 183602015-03-10 Vincent Lef��vre <vincent@vinc17.net> 18361 18362 [src/sum.c] Added comments on the correction. Minor changes in the code. 18363 183642015-03-06 Vincent Lef��vre <vincent@vinc17.net> 18365 18366 [doc/README.dev] Added information on how to do type punning 18367 (something we already did, but with no justification yet). 18368 183692015-02-27 Vincent Lef��vre <vincent@vinc17.net> 18370 18371 [doc/sum.txt] Updated TODO. 18372 18373 [doc/sum.txt] Added TODO (since the description is a bit obsolete). 18374 18375 [src/sum.c] In the latest commit, the temporary area was split for 18376 the computations that determine the sign of the error term in case 18377 the TMD occurs, as these computations occur earlier in the code. 18378 This was actually not necessary since the content of the accumulator 18379 has already been copied to the final destination (only sign handling 18380 and rounding have not been done yet, but they entirely take place in 18381 the destination). As a consequence, let's revert the code related to 18382 this split. The actual changes concerning the merge of pre-rounding 18383 and final rounding can be seen with "svn diff -r 9328:9330". 18384 18385 [src/sum.c] 18386 * Removed any reference to the obsolete step numbering. 18387 * Merged pre-rounding and final rounding, simplifying the code. 18388 The correction value still needs to be fixed. 18389 18390 [src/sub1sp.c] Avoid an unnecessary mpn_lshift after an mpn_sub_1 when 18391 the initial value was a power of two. 18392 18393 [src/next.c] Avoid an unnecessary loop when the exponent decreases. 18394 183952015-02-26 Vincent Lef��vre <vincent@vinc17.net> 18396 18397 [tests/tsum.c] Improved test portability. 18398 18399 [tests/tsum.c] New tests. 18400 18401 [src/sum.c] Completed the implementation (but there's still a bug). 18402 18403 [tests/tsum.c] New tests. 18404 184052015-02-25 Vincent Lef��vre <vincent@vinc17.net> 18406 18407 [src/sum.c] Improved the setting of sst (Step 8), using the fact 18408 that the accumulator is 0 iff cancel = 0. 18409 18410 [src/sum.c] Bug fix: when determining the sticky bit, the search was 18411 starting at the rounding bit instead of the bit following it. 18412 18413 [tests/tsum.c] New tests. 18414 18415 [src/sum.c] More logging. 18416 18417 [tests/tsum.c] In the generic test, also test with negative numbers. 18418 18419 Updated value coverage checking for mpfr_sum. 18420 18421 [doc/README.dev] Document the new MPFR_COV_CHECK macro. 18422 18423 Value coverage checking when MPFR_COV_CHECK is defined, initially 18424 for mpfr_sum. 18425 18426 [src/sum.c] Bug fix in the ternary value. 18427 18428 [tests/tsum.c] Added check of the ternary value. 18429 18430 [src/sum.c] Removed incorrect assertions. 18431 18432 [tests/tsum.c] Re-enabled cancel() test. 18433 184342015-02-24 Vincent Lef��vre <vincent@vinc17.net> 18435 18436 [src/sum.c] Update. 18437 18438 [src/sum.c] Update. 18439 18440 [src/sum.c] Use the new SAFE_DIFF macro. 18441 18442 Merged the latest changes from the trunk (r9306). 18443 18444 [src/mpfr-impl.h] Added SAFE_DIFF macro (safe difference). 18445 18446 [src/sum.c] Fixed a test. 18447 18448 [src/sum.c] Better logging. 18449 18450 [src/sum.c] Minor correction of last change of a comment. 18451 18452 [src/sum.c] More logging and comments. 18453 18454 [src/sum.c] Fixed bug introduced in r9294 (minexp wasn't updated). 18455 18456 [src/sum.c] Log the value of tq. 18457 18458 [src/sum.c] Bug fix. 18459 18460 [src/sum.c] Virtually eliminate halfway cases by making them equivalent 18461 to a non-halfway case. 18462 184632015-02-21 Vincent Lef��vre <vincent@vinc17.net> 18464 18465 [src/sum.c] Update. 18466 18467 Merged the latest changes from the trunk (r9295). 18468 18469 [src/mpfr-impl.h] Fixed and improved some sign-related macros 18470 (some parentheses were missing). 18471 18472 [src/sum.c] Update: sum_raw, with a new prototype, now reiterates until 18473 the error bound is acceptable; thus the "while" loops have been removed 18474 from sum_aux. 18475 184762015-02-20 Vincent Lef��vre <vincent@vinc17.net> 18477 18478 [tests/tsum.c] Increased the number of tests to get 2 current failures 18479 with a "break" in the last loop of sum.c (m = 438, m = 3780), without 18480 the exit() in the generic test. Improved error message. 18481 18482 [tests/tsum.c] Completely rewrote the generic test (now allows one to 18483 detect that the implementation is incomplete when adding a "break" in 18484 the last loop of sum.c). 18485 184862015-02-19 Vincent Lef��vre <vincent@vinc17.net> 18487 18488 [tests/tsum.c] Run bug20131027 in each rounding mode. 18489 18490 [src/sum.c] Fixed sum_raw. 18491 184922015-02-18 Vincent Lef��vre <vincent@vinc17.net> 18493 18494 [src/sum.c] More logging. 18495 18496 Merged the latest changes from the trunk. 18497 18498 Logging: the log stream is flushed after each log output when 18499 the MPFR_LOG_FLUSH environment variable is set. 18500 18501 Factorized the logging macros by moving tests inside LOG_PRINT. 18502 18503 [src/sum.c] Correction. Set the exponent. 18504 18505 [src/sum.c] Added a log message. 18506 18507 [src/sum.c] Bug fix: I had inverted positive and negative. 18508 185092015-02-13 Vincent Lef��vre <vincent@vinc17.net> 18510 18511 [tests/tsum.c] Removed the obsolete mpfr_sum_sort related test 18512 (which could obviously no longer compile), so that I can start 18513 debugging before finishing the implementation. 18514 18515 Merged the latest changes from the trunk. 18516 18517 [doc/mpfr.texi] Updated the month. 18518 18519 Copyright notice update: added 2015 with 18520 perl -pi -e 's/ (\d{4}-)?(2014)(?= Free Software)/ 18521 " ".($1||"$2-").($2+1)/e' **/*(^/) 18522 under zsh, reverting the tools/mbench directory (not distributed with 18523 MPFR). Removed 2014 from the example in the doc/README.dev file. 18524 185252015-02-12 Vincent Lef��vre <vincent@vinc17.net> 18526 18527 [src/sum.c] Copyright notice update. 18528 18529 [src/sum.c] Split mpfr_sum into mpfr_sum (handling special cases) 18530 and sum_aux (generic case only). Revised some comments. 18531 18532 [src/sum.c] When updating minexp, detect a potential integer overflow 18533 first (macro UPDATE_MINEXP). Updated comments. 18534 18535 [src/sum.c] Logging of sum_raw: log *cancelp at the end. 18536 18537 [src/sum.c] Update (Step 8). 18538 18539 [src/sum.c] Corrected/improved logging. 18540 185412015-01-23 Vincent Lef��vre <vincent@vinc17.net> 18542 18543 Added algorithms.fls (generated by latexmk) to svn:ignore property. 18544 185452015-01-21 Vincent Lef��vre <vincent@vinc17.net> 18546 18547 [tests/tfpif.c] Updated a mpfr_set_zero line for consistency and 18548 better readability. 18549 18550 [tools/mpfrlint] Added mpfr_set_(inf|zero) tests on the sign. 18551 18552 [tests/tset.c] More mpfr_set_inf tests. 18553 18554 [tests/tset.c] More mpfr_set_zero tests. 18555 18556 [tools/mbench/timp.h] Spelling mistake in a comment. 18557 185582014-12-17 Vincent Lef��vre <vincent@vinc17.net> 18559 18560 [src/sum.c] Added a TODO. 18561 18562 [src/sum.c] Added missing closing parenthesis from r9257. Step 8 update. 18563 18564 [doc/sum.txt] Step 8: renamed "sgn" to "sst". 18565 18566 [doc/sum.txt] Merged old Step 9 with Step 8; minor changes. 18567 18568 [src/sum.c] Avoid a loop in some cases. 18569 18570 [src/sum.c] Remember the rounding bit for Step 9; correction for 18571 halfway cases in round to nearest. 18572 18573 [doc/mpfr.texi] Updated the month. 18574 185752014-12-16 Vincent Lef��vre <vincent@vinc17.net> 18576 18577 [NEWS] Added an item about improved caching. 18578 [NEWS,doc/mpfr.texi] In particular, mention the minimum of 10% increase 18579 of the precision (done in r8967). 18580 18581 [NEWS] Note that the behavior of the mpfr_set_exp function changed. 18582 [src/Makefile.am] As this changed the ABI (the old, unwise behavior 18583 was documented), reset -version-info age. This is not that bad since 18584 there are other changes in the behavior, though regarded as bugs or 18585 previously undocumented behavior. 18586 18587 Moved src/sum.txt into the doc directory, and updated the reference 18588 in src/sum.c. 18589 185902014-12-12 Vincent Lef��vre <vincent@vinc17.net> 18591 18592 [src/sum.txt] Update (Step 9). 18593 18594 [src/sum.txt] Correction. 18595 185962014-12-11 Vincent Lef��vre <vincent@vinc17.net> 18597 18598 [src/sum.*] Update. 18599 186002014-12-04 Vincent Lef��vre <vincent@vinc17.net> 18601 18602 [doc/README.dev] Mention the tools/build-patch script. 18603 186042014-12-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18605 18606 pointed to Feature Request 18607 186082014-11-28 Vincent Lef��vre <vincent@vinc17.net> 18609 18610 [src/sum.c] Determine the number of cancelled bits in sum_raw instead 18611 of the main loop, since it will also be useful in Step 8. 18612 18613 [src/sum.*] Update (Step 8). 18614 186152014-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18616 18617 fixed issue reported by Dan Grayson: 18618 https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=18314&group_id=136 18619 186202014-11-13 Vincent Lef��vre <vincent@vinc17.net> 18621 18622 [tools/mpfrlint] Minor change concerning mp_limb_t. 18623 186242014-11-12 Vincent Lef��vre <vincent@vinc17.net> 18625 18626 Style improvements. 18627 18628 [src/exp_2.c] Improved t = 0 test. 18629 18630 [src/exp_2.c] Fixed a bug added in r9233 (a case t = 0 was no longer 18631 taken into account). 18632 18633 [src/exp_2.c] GNU coding style. 18634 186352014-11-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18636 18637 improve mpfr_exp2 (patch from Patrick Pelissier) 18638 186392014-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18640 18641 improve mpfr_atan for small precision (patch from Patrick Pelissier) 18642 18643 added check for libquadmath (not used) 18644 186452014-11-03 Vincent Lef��vre <vincent@vinc17.net> 18646 18647 [src/cache.c] Improved mpfr_clear_cache in case mpfr_free_cache is 18648 called often (like with GC-based systems). Patch by Patrick P��lissier. 18649 18650 [src] Applied patch by Patrick P��lissier to allocate some constant-size 18651 MPFR numbers on the stack instead of using mpfr_init2, and replace some 18652 MPFR_ASSERTN by MPFR_ASSERTD. 18653 186542014-10-31 Vincent Lef��vre <vincent@vinc17.net> 18655 18656 [src/get_str.c] Improved comments. 18657 186582014-10-30 Vincent Lef��vre <vincent@vinc17.net> 18659 18660 [src/get_str.c] Free the temporary memory allocated in the Ziv loop ASAP 18661 and at a single place (the code should be clearer like that). 18662 18663 [src/get_str.c] Code refactoring. 18664 18665 [tests/tget_str.c] Code formatting. 18666 18667 [tests/tget_str.c] Fixed a test that made mpfr_get_str crash with 18668 logging (even when the base is invalid, the MPFR number must be 18669 initialized). 18670 18671 [src/check.c] Added a note saying that mpfr_check() must not be called 18672 on statically allocated numbers (only used inside MPFR). 18673 [src/get_str.c] Removed the "MPFR_ASSERTD (mpfr_check (p));" (added in 18674 previous commit) because of that. 18675 18676 [src/get_str.c] Added some logging (MPFR_LOG_*), which triggers a crash 18677 in tget_str with MPFR_LOG_ALL=1. An analysis with gdb shows that this 18678 is due to an invalid MPFR number in mpfr_ceil_mul(). Added a 18679 MPFR_ASSERTD (mpfr_check (p)); 18680 there, which fails in tget_str (this was the cause of the crash), even 18681 without logging. 18682 186832014-10-29 Vincent Lef��vre <vincent@vinc17.net> 18684 18685 mpfr_get_str now sets the NaN flag on NaN input. See: 18686 https://sympa.inria.fr/sympa/arc/mpfr/2014-10/msg00013.html and 18687 https://gforge.inria.fr/tracker/index.php?func=detail&aid=18228&group_id=136&atid=619 18688 Also completed the mpfr_get_str description in mpfr.texi concerning 18689 the special numbers and the exception flags. 18690 186912014-10-28 Vincent Lef��vre <vincent@vinc17.net> 18692 18693 [doc/mpfr.texi] Updated the month. 18694 18695 [doc/mpfr.texi] Removed a spurious "an". 18696 18697 [src/get_str.c] Improved style consistency. 18698 18699 [doc/mpfr.texi] In the mpfr_get_str description, note that the type 18700 mpfr_exp_t is large enough to hold the exponent in all cases. 18701 18702 [doc/mpfr.texi] Improved mpfr_get_str description concerning the 18703 returned pointer (it was ambiguous in the case of an invalid base). 18704 187052014-10-09 Vincent Lef��vre <vincent@vinc17.net> 18706 18707 [tests/tests.c] Updated the error message last changed. 18708 18709 [tests/tests.c] Updated the error message last changed + comment. 18710 187112014-10-08 Vincent Lef��vre <vincent@vinc17.net> 18712 18713 [tests/Makefile.am] Added a reference to the bug I've just reported 18714 against GNU Automake (completing the other references). 18715 18716 [tests/tests.c] Updated the error message last changed. 18717 187182014-10-07 Vincent Lef��vre <vincent@vinc17.net> 18719 18720 [tests/tests.c] Changed an error message. 18721 187222014-10-06 Vincent Lef��vre <vincent@vinc17.net> 18723 18724 [src/sum.txt] Update. 18725 18726 [src/sum.c] Improved a comment. 18727 18728 [src/sum.c] Got rid of maxexp2 in the mpfr_sum function, since after the 18729 sum in the main iteration, the old maxexp value is no longer needed: 18730 it's simpler to reuse maxexp for maxexp2 since maxexp2 will be the new 18731 maxexp value at the next iteration. 18732 [src/sum.txt] Update, in particular concerning the variables used in the 18733 implementation. 18734 187352014-09-09 Vincent Lef��vre <vincent@vinc17.net> 18736 18737 [tests] Corrections for builds with "config.h". 18738 187392014-08-26 Vincent Lef��vre <vincent@vinc17.net> 18740 18741 [src/sum.c] Reset copyright years to 2014 since the whole file is 18742 being rewritten from scratch (i.e. everything is new material). 18743 18744 [src/sum.txt] Update. 18745 187462014-08-25 Vincent Lef��vre <vincent@vinc17.net> 18747 18748 [src/sum.*] Update (Step 7, including a part of Step 8 in Step 7). 18749 18750 [src/sum.c] Correction (Step 7). 18751 18752 [src/sum.c] Corrected r9197 (two "else" branches were mixed up), and 18753 update (Step 8). 18754 18755 [src/sum.c] Correction when determining the early value of inex. 18756 18757 [src/sum.c] Update (Step 8). 18758 18759 [src/sum.txt] Update about the value of d. 18760 18761 [src/sum.c] Added comments for Step 7 about carry and inex. 18762 187632014-08-22 Vincent Lef��vre <vincent@vinc17.net> 18764 18765 Merged the latest changes from the trunk (here, tools/mpfrlint). 18766 18767 [tools/mpfrlint] Avoid false positives in the check of MPFR_LOG_MSG. 18768 18769 [src/sum.*] Update (Step 7). 18770 187712014-08-21 Vincent Lef��vre <vincent@vinc17.net> 18772 18773 [src/sum.txt] Updated Note 2 again. 18774 18775 [src/sum.txt] Updated Note 2. 18776 18777 [src/sum.*] Various corrections, and update. 18778 18779 Merged the latest changes from the trunk. 18780 18781 [src] Cleaner use of MPFR_SET_SIGN. 18782 187832014-08-19 Vincent Lef��vre <vincent@vinc17.net> 18784 18785 [src/sum.c] Updated comments. 18786 18787 [src/sum.c] Update (Step 7). 18788 18789 [src/sum.c] Improved description of sum_raw. 18790 18791 [src/sum.c] Added description of sum_raw. 18792 187932014-08-18 Vincent Lef��vre <vincent@vinc17.net> 18794 18795 [src/sum.c] Suppressed a level of block (which became rather useless 18796 now that Step 3 has been moved to a separate function). 18797 18798 [src/sum.c] Moved Step 3 to a separate auxiliary function sum_raw. 18799 18800 [src/sum.c] Renamed variables: p -> x, pe -> xe, pq -> xq (because 18801 the p suffix is used here for pointers to mp_limb_t). 18802 18803 [src/sum.c] Updated comments. 18804 188052014-08-17 Vincent Lef��vre <vincent@vinc17.net> 18806 18807 [TODO] Added item on tests (mpfr.h macros vs mpfr-impl.h). 18808 18809 [src/mpfr.h] Fixed the mpfr_signbit() macro, which depended on 18810 mpfr-impl.h (the problem wasn't detected in the tests since mpfr-impl.h 18811 is included in them). Thanks to Rob for the bug report. 18812 188132014-08-14 Vincent Lef��vre <vincent@vinc17.net> 18814 18815 [src/sum.*] Update (Step 7). 18816 188172014-08-13 Vincent Lef��vre <vincent@vinc17.net> 18818 18819 [src/sum.txt] Update. 18820 18821 [src/sum.txt] Update (another tricky case). 18822 188232014-08-12 Vincent Lef��vre <vincent@vinc17.net> 18824 18825 [src/sum.txt] Update. 18826 18827 [src/sum.txt] Update. 18828 188292014-08-11 Vincent Lef��vre <vincent@vinc17.net> 18830 18831 [src/sum.*] Completed Step 6. 18832 188332014-08-08 Vincent Lef��vre <vincent@vinc17.net> 18834 18835 [src/sum.txt] Update. 18836 18837 [src] Moved the comment about the mpfr_sum algorithm from sum.c to 18838 a new file sum.txt (this will later go into algorithms.tex). 18839 188402014-08-06 Vincent Lef��vre <vincent@vinc17.net> 18841 18842 [src/sum.c] Updated the algorithm. 18843 18844 [src/sum.c] Updated the algorithm. 18845 188462014-08-05 Vincent Lef��vre <vincent@vinc17.net> 18847 18848 [src/sum.c] Added some log messages. 18849 18850 Merged the latest changes from the trunk (but reverted tests/tsum.c). 18851 18852 [tools/mpfrlint] Improved check of MPFR_LOG_MSG. 18853 18854 [tools/mpfrlint] Replaced {src,tests}/*.{c,h} by $srctests. 18855 18856 [src/ai.c] Corrected log messages. 18857 18858 [doc/mpfr.texi] Updated the month. 18859 18860 Update concerning the P type specifier for formatted output, since 18861 mpfr_prec_t was changed to a signed type in MPFR 3.0.0. 18862 * doc/mpfr.texi: d and i can be used (o, u, x, and X are still OK 18863 in practice since a mpfr_prec_t value is usually nonnegative); 18864 changed a "unsigned int" to "int". 18865 * src/vasprintf.c: updated a comment. 18866 188672014-07-23 Vincent Lef��vre <vincent@vinc17.net> 18868 18869 [tests/mpf_compat.h] Fixed a bug (mpf_set_prec_raw usage with GMP/MPF). 18870 18871 [tests] 18872 * mpfr-test.h: no longer include <stdio.h> right here since the 18873 included mpfr-impl.h does that and even better for C++. 18874 * mpf_compat.c, mpfr_compat.c: include mpfr-test.h as it does useful 18875 things (in particular, include config.h via mpfr-impl.h if there 18876 is one, and define __MPFR_TEST_H__ for mpfr-impl.h). 18877 * mpf_compat.h: no longer include some headers already included 18878 via mpfr-test.h (see above change); added tests_start_mpfr and 18879 tests_end_mpfr (showing memory inconsistency with mpf_compat). 18880 188812014-07-20 Vincent Lef��vre <vincent@vinc17.net> 18882 18883 [src/get_str.c] Coding style: better code for a boolean. 18884 188852014-07-17 Vincent Lef��vre <vincent@vinc17.net> 18886 18887 [src/sum.c] Update. 18888 188892014-07-10 Vincent Lef��vre <vincent@vinc17.net> 18890 18891 [doc/README.dev] "To make a release": check also without mpz_t caching. 18892 18893 [tools/ck-copyright-notice] Ignore src/mini-gmp.[ch] files. 18894 [tools/mpfrlint] 18895 * Ignore src/mini-gmp.[ch] files for some tests. 18896 * Check that __gmp[nz]_ functions are not used (with 2 exceptions), 18897 since this breaks the support of mini-gmp and may also break 18898 future/modified GMP versions. 18899 Note: only code added in r8911 (mpz_t caching) currently fails to 18900 follow this rule. 18901 18902 Do not test include guards before a #include: the test must be done only 18903 in the included file itself. Note that some files such as mpfr.h may 18904 have multiple parts that could be enabled depending on the context, so 18905 that testing a guard before a #include may yield incorrect behavior. 18906 189072014-07-09 Vincent Lef��vre <vincent@vinc17.net> 18908 18909 [doc/README.dev] Updated the list of macros used for building and 18910 checking MPFR. 18911 18912 [acinclude.m4] Corrected a message. 18913 189142014-07-08 Vincent Lef��vre <vincent@vinc17.net> 18915 18916 Renamed the MPFR_TEST_DIVBYZERO macro to MPFR_TESTS_DIVBYZERO 18917 for consistency with MPFR_TESTS_TIMEOUT. 18918 189192014-07-07 Vincent Lef��vre <vincent@vinc17.net> 18920 18921 [tests] Minor improvements. 18922 18923 [tests/reuse.c,tests/taway.c] Added mpfr_ai and mpfr_digamma. 18924 18925 [tests/tmul_d.c] Minor improvement. 18926 18927 [src/mul.c] Fixed a test when MPFR_WANT_ASSERT >= 2 (NaN with non-NaN 18928 was not detected as an error). 18929 18930 [src] MPFR_WANT_ASSERT clean-up. 18931 Note: the mul.c test for MPFR_WANT_ASSERT >= 3 is now enabled for 18932 MPFR_WANT_ASSERT = 2 (since setting MPFR_WANT_ASSERT to 3 was not 18933 possible with configure options), and fixed. 18934 18935 Added debug of branch prediction / --enable-debug-prediction configure 18936 option (patch from Patrick P��lissier, with some changes). 18937 189382014-07-02 Vincent Lef��vre <vincent@vinc17.net> 18939 18940 [src/round_raw_generic.c] Updated comment about MPFR_RNDNA. 18941 18942 [doc/mini-gmp] Added a note about MPFR_USE_MINI_GMP. 18943 18944 [doc/README.dev] Added an item on the use of GMP functions. 18945 18946 [doc/README.dev] "To make a release": test with mini-gmp. 18947 18948 Removed the need of MPFR_USE_MINI_GMP tests for mpfr_[ne]random 18949 functions (source and tests) as mpfr_random_deviate_value no longer 18950 needs mpq_t (since r9066). Also removed a static assertion in 18951 src/random_deviate.c for the same reason. 18952 Note: the change done in r9133 is now really useful! 18953 18954 [src/mpfr.h] Added other missing "#ifndef MPFR_USE_MINI_GMP". 18955 18956 [tests/t[ne]random.c] Code clean-up: added !defined(MPFR_USE_MINI_GMP) 18957 to protect mpfr_printf. This is actually not needed due to the initial 18958 "#ifndef MPFR_USE_MINI_GMP" but this is for a different reason. 18959 18960 [tests/t[ne]random.c] Reverted the changes done in r9126,9127,9130 18961 and added a proper comment. 18962 18963 [src/mpfr.h] Added a missing "#ifndef MPFR_USE_MINI_GMP" 18964 (not really useful, but cleaner). 18965 18966 [tests/t[ne]random.c] Fixed the change done in r9126 and r9127. 18967 18968 Renamed WANT_MINI_GMP to MPFR_USE_MINI_GMP as it is used in mpfr.h 18969 (all MPFR macros that appear there should start with MPFR_ to avoid 18970 conflicts with other software). 18971 18972 [tools/mpfrlint] Detect the possible use of forbidden macros in mpfr.h. 18973 18974 [tests/terandom.c] Put the WANT_MINI_GMP test at the right place, like 18975 what has been done for "tests/tnrandom.c". 18976 18977 [tests/tnrandom.c] Put the WANT_MINI_GMP test at the right place 18978 (at the same time of the HAVE_STDARG test), but this should be 18979 improved in the future, e.g. with a HAVE_MPFR_PRINTF macro. 18980 189812014-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18982 18983 added comment 18984 189852014-07-02 Vincent Lef��vre <vincent@vinc17.net> 18986 18987 [src/mul.c] Minor correction of a comment. 18988 189892014-07-01 Vincent Lef��vre <vincent@vinc17.net> 18990 18991 [tests/trandom_deviate.c] Correction (fprintf format). 18992 189932014-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18994 18995 patch from Charles Karney: 18996 > Here is the patch which repeats the chi-squared tests in the case of 18997 > suspiciously high values. The probability of a false positive is now 18998 > 1/10^9. I also got rid of the mpfr_printf's. 18999 190002014-06-30 Vincent Lef��vre <vincent@vinc17.net> 19001 19002 [tools/build-patch] 19003 * Removed unnecessary quotes for better readability (this is zsh). 19004 * When <patchlevel> (second argument) is used, use the correct name 19005 for the generated patch; at the same time, fixed a checkobj call. 19006 * Added comment about typical usage. 19007 19008 [tools/build-patch] Correction if MPFR_CURRENT_DIR is set: to make sure 19009 that it is always up-to-date, we want to allow it to be a symlink (e.g. 19010 .../mpfr-current), so that we want to call realpath on it. 19011 19012 Added tools/build-patch zsh script to transform a raw patch into a patch 19013 to be put on the MPFR www server. 19014 19015 [src/mpfr.h] For the mpfr_{mul,div}_si macros: s/positive/non-negative/ 19016 19017 [configure.ac] Correction of two "configure --help" messages 19018 (from Patrick P��lissier and other changes). 19019 19020 [src/mpfr.h] Coding style. 19021 19022 New macros for mpfr_{mul,div}_ui to optimize the call when the integer 19023 is a constant number that is a power of 2. 19024 New macros for mpfr_{mul,div}_si to optimize the call when the integer 19025 is a constant number that is positive. 19026 (Modified patch from Patrick P��lissier) 19027 190282014-06-26 Vincent Lef��vre <vincent@vinc17.net> 19029 19030 [src/vasprintf.c] Improved comments. 19031 19032 [src/vasprintf.c] Fixed assertion failures for tiny numbers (the code 19033 was correct, but the assertions didn't check against the right bound). 19034 19035 [src/div.c] Bug fix: avoid integer overflow in the code added in r9086 19036 (now tdiv no longer fails). 19037 19038 [src/div.c] Bug fix: avoid an integer overflow when dividing the 19039 largest finite MPFR number by the smallest positive one. 19040 (merged changeset r9105 from the 3.1 branch) 19041 19042 [tests/tdiv.c] Forgot "exit (1);". 19043 19044 [tests/tdiv.c] Added mpfr_div tests on extreme values. This detects 19045 2 problems (at least on a 64-bit machine): a result is not a valid 19046 MPFR number (mpfr_check fails) and the flags are incorrect. 19047 190482014-06-25 Vincent Lef��vre <vincent@vinc17.net> 19049 19050 [tests/tsprintf.c] Fixed test added in r9099 (the problem was unrelated 19051 to the bug in vasprintf.c). 19052 19053 [tests/tsprintf.c] Added a test with the minimum exponent 19054 (currently triggers an assertion failure in vasprintf.c). 19055 190562014-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19057 19058 define MPFR_SKIP_EXTREME to avoid currently failing tsum test 19059 190602014-06-25 Vincent Lef��vre <vincent@vinc17.net> 19061 19062 [tests/tsum.c] Do not run the check_extreme test (which currently fails) 19063 when the MPFR_SKIP_EXTREME environment variable is defined. 19064 190652014-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19066 19067 reconfigure for mpfrbench 19068 19069 speedup in mpfr_div for n/n division, using mpz_tdiv_q 19070 190712014-06-25 Vincent Lef��vre <vincent@vinc17.net> 19072 19073 [tools/mpfrlint] Check when simple mp_limb_t constants could be used 19074 (MPFR_LIMB_ZERO, MPFR_LIMB_ONE, and MPFR_LIMB_MAX). 19075 19076 Merged the latest changes from the trunk. 19077 19078 Use MPFR_IS_NEG and MPFR_IS_POS instead of comparing the sign with 0. 19079 Done with 19080 perl -pi -e ' 19081 s/MPFR_SIGN *\(([^)]+)\) *<=? *0/MPFR_IS_NEG ($1)/g; 19082 s/MPFR_SIGN *\(([^)]+)\) *>=? *0/MPFR_IS_POS ($1)/g; 19083 ' {src,tests}/*.{c,h} 19084 and some manual changes. 19085 19086 More code clean-up (for both consistency and readability): 19087 * Use the simple mp_limb_t constants when possible. 19088 * New internal macro MPFR_IS_NORMALIZED. 19089 Note: this was done with 19090 perl -pi -e ' 19091 s/~ *\(mp_limb_t\) *0/MPFR_LIMB_MAX/g; 19092 s/\(mp_limb_t\) *-1/MPFR_LIMB_MAX/g; 19093 s/\(mp_limb_t\) *0/MPFR_LIMB_ZERO/g; 19094 s/\(mp_limb_t\) *1L?/MPFR_LIMB_ONE/g' {src,tests}/*.{c,h} 19095 svn revert src/mpfr-impl.h 19096 and some manual changes. 19097 19098 Code clean-up: 19099 * Simplified the definition of simple mp_limb_t constants: it is 19100 better to avoid GMP internals when there is a standard way. 19101 * Replaced the use of MP_LIMB_T_MAX by the new macro MPFR_LIMB_MAX. 19102 * So, removed the now useless MP_LIMB_T_MAX and GMP_LIMB_HIGHBIT 19103 definitions from "mpfr-gmp.h". 19104 19105 [src/mpfr-mini-gmp.h] GMP_NUMB_MASK is no longer needed. 19106 19107 [tests/random2.c] Removed a useless use of GMP_NUMB_MASK. 19108 19109 [src/div.c] In the case where the divisor has one limb (latest commit), 19110 check that the value of this limb fits in an unsigned long, otherwise 19111 mpfr_div_ui cannot be used. Indeed, according to the GMP manual ��2.2, 19112 a limb may be a long long (actually unsigned): 19113 For example in some 32-bit ABIs, GMP may support a limb as either a 19114 32-bit `long' or a 64-bit `long long'. 19115 Note: if a limb is an unsigned long, this new test will be no-op, since 19116 always true. 19117 191182014-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19119 19120 speedup of mpfr_div when divisor has one limb 19121 191222014-06-25 Vincent Lef��vre <vincent@vinc17.net> 19123 19124 [src/random_deviate.h] Fixed prototypes: 19125 * Added __MPFR_DECLSPEC to avoid failure with Windows DLL; see 19126 https://sympa.inria.fr/sympa/arc/mpfr/2014-06/msg00003.html 19127 * Added _MPFR_PROTO for consistency (though it will probably 19128 be removed in the near future). 19129 * Removed variable names (coding style). 19130 191312014-06-24 Vincent Lef��vre <vincent@vinc17.net> 19132 19133 [tests] Added terandom_chisq and tnrandom_chisq to svn:ignore property. 19134 19135 [tests] Applied patch by Charles Karney (chi-squared tests for 19136 mpfr_[ne]random), together with the contents of his mail about 19137 this patch. 19138 191392014-06-23 Vincent Lef��vre <vincent@vinc17.net> 19140 19141 [doc/mpfr.texi] Updated the month. 19142 191432014-06-22 Vincent Lef��vre <vincent@vinc17.net> 19144 19145 Updated URL's. 19146 19147 [doc/README.dev] Updated URL's (use of https instead of http). 19148 191492014-06-20 Vincent Lef��vre <vincent@vinc17.net> 19150 19151 [src/sum.c] At Step 2, ignore the input bits of exponent >= maxexp. 19152 19153 [src/sum.c] Fixed maxexp2 update, and added truncflag for future 19154 truncation on the most significant part >= maxexp at Step 2 (TODO). 19155 191562014-06-19 Vincent Lef��vre <vincent@vinc17.net> 19157 19158 [src/sum.c] Another major update concerning the algo and Step 2. 19159 19160 [src/sum.c] Added a TODO about carry propagation (so, it seems that 19161 using two windows may not really be that interesting to guarantee a 19162 low complexity). 19163 191642014-06-17 Vincent Lef��vre <vincent@vinc17.net> 19165 19166 [src/sum.c] Implemented Step 2. 19167 19168 [tests/trandom_deviate.c] New version, with fixes of ternary value 19169 (inexact) handling by Charles Karney. 19170 19171 [tests] Added trandom_deviate to svn:ignore property. 19172 19173 [tests/trandom_deviate.c] GNU style and C90 compatibility. 19174 19175 [doc/README.dev] Updated note about ternary values (macros). 19176 19177 [doc/README.dev] Added a note about ternary values. 19178 191792014-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19180 19181 patches from Charles Karney 19182 191832014-06-17 Vincent Lef��vre <vincent@vinc17.net> 19184 19185 [tests/trandom_deviate.c] Removed useless "#ifdef HAVE_STDARG": 19186 printf is a standard C function and is always defined. 19187 19188 [tests/trandom_deviate.c] GNU style. Pre-C99 compatibility 19189 (statements after declarations). 19190 19191 [tests/trandom_deviate.c] Untabified. 19192 191932014-06-16 Vincent Lef��vre <vincent@vinc17.net> 19194 19195 [src/sum.c] Updated the algorithm and started to rewrite again, 19196 in a cleaner way and with more comments. 19197 191982014-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19199 19200 added trandom_deviate.c to improve coverage (contributed by Charles Karney) 19201 19202 updated information about coverage test 19203 192042014-06-05 Vincent Lef��vre <vincent@vinc17.net> 19205 19206 [src/mul.c] English usage in a comment. 19207 192082014-06-03 Vincent Lef��vre <vincent@vinc17.net> 19209 19210 [tests/tset_ld.c] Updated a comment. 19211 192122014-05-22 Vincent Lef��vre <vincent@vinc17.net> 19213 19214 Changed "INRIAGForge" to "InriaForge" (due to the rename). 19215 192162014-05-14 Vincent Lef��vre <vincent@vinc17.net> 19217 19218 [doc/README.dev] Correction about clang sanitizer: mention the 19219 -fno-sanitize=float-cast-overflow,float-divide-by-zero option. 19220 19221 [doc/README.dev] About clang sanitizer, mention the 19222 -fno-sanitize=float-divide-by-zero option. 19223 192242014-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19225 19226 added description of algorithm used for mpfr_log (from Sylvie Boldo) 19227 192282014-04-25 Vincent Lef��vre <vincent@vinc17.net> 19229 19230 [doc/README.dev] Updated an old note about GCC 4.9. 19231 19232 [doc/README.dev] Completed the note about GCC's sanitizer. See 19233 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44786 (sanitizer) 19234 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60275 (no recover) 19235 19236 [doc/README.dev] Completed the note about GCC's sanitizer. 19237 19238 [doc/README.dev] Mention that GCC 4.9 supports "-fsanitize=undefined". 19239 192402014-04-22 Vincent Lef��vre <vincent@vinc17.net> 19241 19242 [tests/tpow.c] Removed comment that can now be confusing: try_mpfr.html 19243 was actually not using the mpfr_pow function, but exp(y*log(x)). 19244 19245 [tests/tpow.c] Added a test corresponding to buggy output on 19246 http://ex-cs.sist.ac.jp/~tkouya/try_mpfr.html but everything 19247 is OK in r9038. 19248 192492014-04-15 Vincent Lef��vre <vincent@vinc17.net> 19250 19251 [doc/README.dev] Update about patches and autotools files. 19252 19253 [doc/README.dev] Update about patches and autotools files. 19254 19255 [tests/tsum.c] Changed initialization in check_extreme(), which wasn't 19256 supported by ISO C90. 19257 19258 [free_cache.c] Avoid mixed declarations and code for ISO C90 support. 19259 19260 Re-added configure test on GMP_NUMB_BITS and sizeof(mp_limb_t), and 19261 updated it: 19262 * BYTES_PER_MP_LIMB is no longer tested (see r9029). 19263 * The test is now always run, not just when --with-gmp-build is used. 19264 * Results are output in config.log in case of failure. 19265 * The error message has been updated. 19266 192672014-04-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19268 19269 BYTES_PER_MP_LIMB -> MPFR_BYTES_PER_MP_LIMB for GMP 6 compatibility 19270 when --with-gmp-build is used. See mailing-list discussion: 19271 https://sympa.inria.fr/sympa/arc/mpfr/2014-04/msg00000.html 19272 192732014-04-11 Vincent Lef��vre <vincent@vinc17.net> 19274 19275 [src/sum.c] Updated comment to be even more clear, with more details. 19276 192772014-04-07 Vincent Lef��vre <vincent@vinc17.net> 19278 19279 [src/sum.c] Updated comment. 19280 19281 [src/sum.c] Updated comment. 19282 19283 [src/sum.c] Improved (corrected) algo in comment. Code not updated. 19284 192852014-03-28 Vincent Lef��vre <vincent@vinc17.net> 19286 19287 [src/sum.c] Update. 19288 19289 [src/sum.c] Added a comment. 19290 19291 [src/sum.c] Update. 19292 192932014-03-26 Vincent Lef��vre <vincent@vinc17.net> 19294 19295 [src/sum.c] More thoughts about the algorithm and its implementation. 19296 192972014-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19298 19299 other argument reduction for log_ui 19300 193012014-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19302 19303 mpn_sqrtrem (rp, sp, sp, rrsize) is faster than 19304 mpn_sqrtrem (rp, NULL, sp, rrsize): avoids one allocation and one copy 19305 193062014-03-25 Vincent Lef��vre <vincent@vinc17.net> 19307 19308 [src/sum.c] Update. 19309 19310 Merged the latest changes from the trunk. 19311 19312 Added MPFR_PREC_COND, MPFR_PREC_IN_RANGE and MPFR_GET_PREC internal 19313 macros (to mpfr-impl.h). Use these macros at some places in the code 19314 (replacing some MPFR_PREC instances, as suggested by a patch from 19315 Patrick P��lissier). 19316 19317 [src/mpfr-impl.h] Added an MPFR_ASSERTD in MPFR_MPZ_SIZEINBASE2 19318 (from a patch by Patrick P��lissier). 19319 19320 [src/sqrt.c] Replaced a MPFR_EXP by MPFR_SET_EXP (from a patch by 19321 Patrick P��lissier). 19322 19323 [src/div.c] Added MPFR_ASSERTD assertions and improved a test 19324 (patch from Patrick P��lissier). 19325 193262014-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19327 19328 fixed FIXME 19329 193302014-03-17 Vincent Lef��vre <vincent@vinc17.net> 19331 19332 [doc/algorithms.*] A formula about radix conversion was incorrect 19333 (and didn't match the correct code) when the output radix b is a 19334 power of two. Added reference to Matula's "In-and-Out Conversions" 19335 (correctness and optimality of the formula) and left a FIXME. 19336 For more information, see the August/September discussion in the 19337 MPFR list, particular subthreads starting at: 19338 https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00028.html 19339 https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00000.html 19340 https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00011.html 19341 193422014-03-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19343 19344 added item 19345 193462014-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19347 19348 added item (mpfr_log_ui) 19349 193502014-03-14 Vincent Lef��vre <vincent@vinc17.net> 19351 19352 [src/sum.c] Corrected the detection of Inf. Improved algo in comment. 19353 19354 [tests/tsum.c] Improved check_more_special test. 19355 19356 [tests/tsum.c] Added check_more_special test. 19357 19358 [doc/mpfr.texi] Updated the month. 19359 19360 [doc/mpfr.texi] Correction in the mpfr_set_str description. 19361 19362 Rewrote special cases of mpfr_sum. 19363 193642014-03-10 Vincent Lef��vre <vincent@vinc17.net> 19365 19366 Added a TODO item concerning gmp_op.c functions with mpz_srcptr and 19367 the use of mpz_fits_slong_p and a mpfr_*_si function (see r8992). 19368 193692014-03-02 Vincent Lef��vre <vincent@vinc17.net> 19370 19371 [src/mpfr-impl.h] Fixed the mpfr_get_default_rounding_mode() macro for 19372 C++ (it didn't have the correct type), and improved the similar ones. 19373 19374 [src/lngamma.c] Fixed allocation. 19375 19376 [src/lngamma.c] Temporarily disabled fast argument reconstruction 19377 because it doesn't compile with g++. 19378 193792014-03-01 Vincent Lef��vre <vincent@vinc17.net> 19380 19381 Removed trailing spaces. 19382 193832014-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19384 19385 [lngamma.c] implemented fast way of computing x*(x+1)*...*(x+k-1) 19386 (it remains to speed up the computation of the Bernoulli numbers) 19387 19388 speedup of the mpfr_xxx_z functions when z fits in a long 19389 19390 explicit possible speedup in mpfr_[ln]gamma 19391 193922014-02-24 Vincent Lef��vre <vincent@vinc17.net> 19393 19394 [doc/algorithms.tex] Avoid inconsistent spaces. 19395 193962014-02-21 Vincent Lef��vre <vincent@vinc17.net> 19397 19398 [tools/mbench/README] Conversion into UTF-8. 19399 19400 [tools/mbench] Replaced GMP_RNDx by MPFR_RNDx. 19401 194022014-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19403 19404 definitively fix the name mpfr_min_prec 19405 194062014-02-17 Vincent Lef��vre <vincent@vinc17.net> 19407 19408 [src/bernoulli.c] Minor bug fixed and other improvements. 19409 194102014-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19411 19412 update for mpfr_gamma and Bernoulli numbers 19413 194142014-02-17 Vincent Lef��vre <vincent@vinc17.net> 19415 19416 [src/bernoulli.c] Fixed pointer types (build failure with -Werror). 19417 19418 [src/mpfr-impl.h] Removed obsolete mpfr_bernoulli_internal prototype, 19419 which makes the compilation of bernoulli.c fail. 19420 19421 [src/bernoulli.c] Improved isprime() by using MPFR_ASSERTD. 19422 194232014-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19424 19425 use a faster algorithm (based on Von Staudt���Clausen theorem) to compute 19426 Bernoulli numbers -> speedup in mpfr_*gamma and mpfr_li2 19427 194282014-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19429 19430 more changes suggested by Wolf Lammen (and also test 2^(-1074)) 19431 194322014-02-16 Vincent Lef��vre <vincent@vinc17.net> 19433 19434 [tests/memory.c] Limit heap memory to 4 MB. This should be sufficient. 19435 Currently, only tsum should fail, but mpfr_sum will be rewritten soon. 19436 194372014-02-15 Vincent Lef��vre <vincent@vinc17.net> 19438 19439 [src/set_d.c] Fixed type to avoid non-representable unsigned ��� signed 19440 conversion. 19441 19442 [src/set_d.c] Correction when MPFR_WANT_ASSERT is defined. 19443 19444 Untabified and removed trailing spaces. 19445 194462014-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19447 19448 partial patch from Wolf Lammen: 19449 - move the normalization code, necessary in an extremely rare corner case only, 19450 out of the way of the normal case, for speed up 19451 19452 Rename MPFR gmp_randstate_ptr into mpfr_gmp_randstate_ptr 19453 (patch from Patrick P��lissier) 19454 194552014-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19456 19457 print message for "possibly double-double, little endian" long double format 19458 19459 different fixes for set_ld, get_ld and cmd_ld with double-double 19460 194612014-02-14 Vincent Lef��vre <vincent@vinc17.net> 19462 19463 [tests/tset_ld.c] Fixed an assertion to support systems where 19464 2^1023 + 2^(-1074) is exactly representable, while not detected 19465 as double-double. 19466 194672014-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19468 19469 recognize long-double format for ppc64le 19470 (https://sympa.inria.fr/sympa/arc/mpfr/2014-02/msg00014.html) 19471 194722014-02-14 Vincent Lef��vre <vincent@vinc17.net> 19473 19474 [TODO] Added item on special case of mpfr_add and mpfr_sub. 19475 194762014-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19477 19478 added test for get_ld 19479 194802014-02-14 Vincent Lef��vre <vincent@vinc17.net> 19481 19482 [src/cache.c] 19483 * Improved r8966: Setting the cache size to 10% more than the 19484 requested precision may be a bad idea in large precisions. 19485 It's better to guarantee a minimum of 10% increase; if the 19486 user wants to, he can still control the maximum precision by 19487 pre-computing the constant at this precision. Also make sure 19488 that if pold == 0, the mpfr_init2 size is the same as the 19489 mpfr_set_prec one (in order to avoid immediate reallocation). 19490 * Replaced a comment by a couple of MPFR_ASSERTD's. 19491 194922014-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19493 19494 when recomputing a constant, use a precision 10% larger than the wanted 19495 precision to avoid many recomputations 19496 194972014-02-13 Vincent Lef��vre <vincent@vinc17.net> 19498 19499 [src/round_raw_generic.c] Added a FIXME comment for MPFR_RNDNA. 19500 19501 [src/bernoulli.c] GNU style. 19502 [src/mpfr-impl.h] Corrected prototypes. 19503 195042014-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19505 19506 implement cache for Bernoulli numbers (patch from Patrick P��lissier) 19507 tuned parameters for [ln]gamma now that we cache Bernoulli numbers 19508 19509 added bench target so that we can simply do "make bench" 19510 195112014-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19512 19513 added test for double-double 19514 19515 added comment about mpfr_gamma 19516 19517 forgot to restore the exponents in last commit 19518 19519 added reference for efficiency issue with mpfr_gamma 19520 19521 improve mpfr_gamma at around 1000 bits 19522 195232014-02-12 Vincent Lef��vre <vincent@vinc17.net> 19524 19525 [doc/mpfr.texi] Updated the month. 19526 19527 Merged the set_exp branch into the trunk. Changes: 19528 * src/mpfr-impl.h: updated the MPFR_SET_EXP(x, exp) definition for 19529 the MPFR_EXP_CHECK case. There are 2 consequences: 19530 1. The exp expression is evaluated several times (this should be 19531 OK with the MPFR code and optimizations). 19532 2. The real value of exp is tested for the assertion, instead of 19533 the value converted to mpfr_exp_t. Thus new bugs could be found 19534 (e.g. when an unsigned type is used instead of signed). 19535 * src/set_exp.c: set the exponent only if x is a non-zero ordinary 19536 number, i.e. already has a valid significand and a valid exponent 19537 (thus it is no longer a low-level function, and it can no longer 19538 generate an invalid value from a valid one). 19539 * doc/mpfr.texi: updated mpfr_set_exp description and added an item 19540 in the "API Compatibility / Changed Functions" section. 19541 * Clean-up. 19542 Original discussion: 19543 https://sympa.inria.fr/sympa/arc/mpfr/2011-01/msg00092.html 19544 19545 [src/rint.c] Added FIXME comment. 19546 19547 [src/next.c] Improved handling of special values. 19548 19549 [src/hypot.c] Reverted changeset r8950 (MPFR_SET_EXP is OK). 19550 19551 [src/hypot.c] Replaced a MPFR_SET_EXP by MPFR_EXP. 19552 19553 [src/fpif.c] Bug fixes and code clean-up. At the same time, took the 19554 future mpfr_set_exp change into account (see set_exp branch). 19555 19556 [src/set.c] Cosmetic change. 19557 19558 [src/fpif.c] English usage. 19559 19560 [src/cache.c] Replaced a MPFR_SET_EXP by MPFR_EXP (in practice, the code 19561 was working, but just because MPFR_DECL_INIT_CACHE inits the cache with 19562 a real exponent, though the significand pointer is null). 19563 195642014-02-11 Vincent Lef��vre <vincent@vinc17.net> 19565 19566 [src/mul.c] Cosmetic change. 19567 19568 [src/atan.c] Fixed types of some variables, in particular 19569 unsigned ��� signed conversion of non-representable value 19570 (detected due to the new MPFR_SET_EXP assertion check in 19571 the set_exp branch). 19572 19573 [src/atan.c] Fixed types of some variables, in particular 19574 unsigned ��� signed conversion of non-representable value. 19575 Now, all the tests pass on Linux/x86_64. 19576 19577 [src/exp3.c] Fixed types of some variables, in particular 19578 unsigned ��� signed conversion of non-representable value 19579 (detected due to the new MPFR_SET_EXP assertion check in 19580 the set_exp branch). 19581 19582 [src/exp3.c] Fixed types of some variables, in particular 19583 unsigned ��� signed conversion of non-representable value. 19584 Now, 161 tests pass and 8 tests fail on Linux/x86_64. 19585 19586 [src/{set_ui_2exp.c,set_uj.c}] Fixed types of some variables, in 19587 particular unsigned ��� signed conversion of non-representable value 19588 under some conditions. 19589 19590 [src/{set_ui_2exp.c,set_uj.c}] Fixed types of some variables, in 19591 particular unsigned ��� signed conversion of non-representable value 19592 under some conditions. 19593 This doesn't change the number of failed tests. 19594 19595 [src/{sqrt_ui.c,sub_ui.c,ui_div.c,ui_sub.c}] Changed cnt type from 19596 unsigned long to int (signed) due to the MPFR_SET_EXP requirement. 19597 Otherwise the code was correct. 19598 Now, 160 tests pass and 9 tests fail on Linux/x86_64. 19599 19600 [src/mpfr-impl.h] Added a comment about MPFR_SET_EXP: exp is required 19601 to have a signed type. 19602 19603 [src/{set_d.c,set_f.c}] Type clean-up to improve maintainability. 19604 19605 [src/random_deviate.c] Type clean-up to improve maintainability. 19606 19607 [src/set_si_2exp.c] Fixed unsigned ��� signed conversion of 19608 non-representable value when mpfr_exp_t has the same size 19609 as int. 19610 19611 [src/set_si_2exp.c] Fixed unsigned ��� signed conversion of 19612 non-representable value when mpfr_exp_t has the same size 19613 as int (unrelated to MPFR_SET_EXP change). 19614 19615 [src/add_ui.c] Cosmetic changes. 19616 19617 [src/add_ui.c] Fixed unsigned ��� signed conversion of non-representable 19618 value (detected due to the new MPFR_SET_EXP assertion check in the 19619 set_exp branch). 19620 19621 [src/add_ui.c] Fixed unsigned ��� signed conversion of non-representable 19622 value (detected due to the new MPFR_SET_EXP assertion check). 19623 Now, 92 tests pass and 77 tests fail on Linux/x86_64. 19624 19625 [src/random_deviate.c] Added an assertion. 19626 19627 [tests/random2.c] Fixed unsigned ��� signed conversion of 19628 non-representable value (detected due to the new MPFR_SET_EXP 19629 assertion check in the set_exp branch). 19630 19631 [tests/random2.c] Fixed unsigned ��� signed conversion of 19632 non-representable value (detected due to the new MPFR_SET_EXP 19633 assertion check). 19634 Now, 87 tests pass and 82 tests fail on Linux/x86_64. 19635 19636 Updated src/urandomb.c due to the change of mpfr_set_exp behavior. 19637 Now, 77 tests pass and 92 tests fail on Linux/x86_64. 19638 19639 [tests/trandom.c] Improved test to get an assertion failure instead of 19640 a segmentation fault. 19641 19642 Start of mpfr_set_exp behavior clean-up. 19643 * src/mpfr-impl.h: updated the MPFR_SET_EXP(x, exp) definition for 19644 the MPFR_EXP_CHECK case. There are 2 consequences: 19645 1. The exp expression is evaluated several times (this should be 19646 OK with the MPFR code and optimizations). 19647 2. The real value of exp is tested for the assertion, instead of 19648 the value converted to mpfr_exp_t. Thus new bugs can be found 19649 (e.g. when an unsigned type is used instead of signed). 19650 * src/set_exp.c: set the exponent only if x is a non-zero ordinary 19651 number, i.e. already has a valid significand and a valid exponent 19652 (thus it is no longer a low-level function, and it can no longer 19653 generate an invalid value from a valid one). 19654 * doc/mpfr.texi: updated mpfr_set_exp description and added an item 19655 in the "API Compatibility / Changed Functions" section. 19656 Currently 73 tests pass and 96 fail on Linux/x86_64, either due to bugs 19657 or due to code not yet updated for this change. 19658 19659 Set svn:ignore property on the tools/bench directory. 19660 196612014-02-06 Vincent Lef��vre <vincent@vinc17.net> 19662 19663 [src/set_ld.c] Added a note about the test for infinity. 19664 196652014-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19666 19667 make -> make mpfrbench 19668 196692014-02-05 Vincent Lef��vre <vincent@vinc17.net> 19670 19671 Removed MPFR_CHECK_MAX as it is now useless: all "max" tests succeed. 19672 19673 [src/lngamma.c] Fixed bug introduced in the latest change r8917 19674 (inexact was not initialized in the case compared < 0). 19675 196762014-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19677 19678 added code for large inputs in lngamma/lgamma 19679 196802014-02-04 Vincent Lef��vre <vincent@vinc17.net> 19681 19682 [TODO] Suggest timing-based thresholds for asymptotic expansions. 19683 196842014-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19685 19686 use asymptotic expansion for large positive argument 19687 196882014-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19689 19690 tiny change to distinguish different versions of the manual 19691 196922014-01-29 Vincent Lef��vre <vincent@vinc17.net> 19693 19694 [src] Add constants: 19695 * __gmpfr_mone = -1 19696 * mpfr_const_log2_RNDD = log(2) rounded down in precision 64 bits 19697 * mpfr_const_log2_RNDU = log(2) rounded up in precision 64 bits 19698 (modified patch from Patrick P��lissier). 19699 197002014-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19701 19702 added reference 19703 197042014-01-29 Vincent Lef��vre <vincent@vinc17.net> 19705 19706 [src] mpz_t caching (modified patch by Patrick P��lissier). 19707 19708 [src/const_pi.c] Rewrote a condition to avoid a potential 19709 integer overflow (?) and match a comment. 19710 19711 [src/const_pi.c] Use of GROUP allocation and minor optimization 19712 (modified patch by Patrick P��lissier). 19713 197142014-01-28 Vincent Lef��vre <vincent@vinc17.net> 19715 19716 [TODO] Added a note about "rounding to odd" / "sticky rounding". 19717 197182014-01-27 Vincent Lef��vre <vincent@vinc17.net> 19719 19720 [tools/mpfrlint] Run-time assertions concerning relations between 19721 the MPFR exponent type and the long type are allowed (see r8896). 19722 197232014-01-26 Vincent Lef��vre <vincent@vinc17.net> 19724 19725 [tests/mpf_compat.h] In MPFR mode, skip the tests when mpfr_exp_t is not 19726 a long. 19727 19728 [tests/tset_ld.c] Fixed printf argument. 19729 19730 [tests/tgamma.c] Fixed printf argument (bug detected with 19731 _MPFR_EXP_FORMAT=2 and -Werror=format=). 19732 19733 [tools/bench/mpfrbench.c] No longer use the numberof macro, and 19734 #include "mpfr.h" instead of "mpfr-impl.h", so that mpfrbench.c 19735 can now be linked against an installed MPFR library. 19736 197372014-01-24 Vincent Lef��vre <vincent@vinc17.net> 19738 19739 Added MPFR_CHECK_GMP configure check. 19740 Useful if the user provides --with-gmp with a directory containing 19741 a GMP version that doesn't have the correct ABI: the previous tests 19742 won't trigger the error if the same GMP version with the right ABI 19743 is installed on the system, as this library is automatically 19744 selected by the linker, while the header (which depends on the ABI) 19745 of the --with-gmp include directory is used. Before this test, one 19746 was getting an error in MPFR_CHECK_DBL2INT_BUG, though the error is 19747 not related to a double-to-integer conversion bug. 19748 19749 [src/mpfr-impl.h] Corrections for the case _MPFR_EXP_FORMAT == 4: 19750 * No longer use MPFR_EXP_MIN and MPFR_EXP_MAX unconditionally in 19751 a #if directive, since if MPFR_HAVE_INTMAX_MAX is not defined, 19752 the compilation fails. The test was not really useful anyway: 19753 if one really wants mpfr_eexp_t to be long int if mpfr_exp_t 19754 has the same range as long int, then _MPFR_EXP_FORMAT == 3 is 19755 sufficient (and this is the default). 19756 * Removed a test that should be always true due to the previous 19757 inclusion of mpfr.h (intmax_t has already been used there in 19758 the case _MPFR_EXP_FORMAT == 4). 19759 19760 [doc/README.dev] Rephrased paragraph added in r8897. 19761 19762 [doc/README.dev] Added a note for Automake 1.13+ and failed tests. 19763 19764 [src] Replaced some MPFR_ASSERTN's by MPFR_STAT_STATIC_ASSERT (from the 19765 detection by mpfrlint). Note: the MPFR_ASSERTN's concerning relations 19766 between the MPFR exponent type and the long type have not been replaced 19767 because these tests may fail with the non-standard _MPFR_EXP_FORMAT = 4 19768 on some platforms (e.g. 32-bit ones), and we still want to be able to 19769 build MPFR in this case in order to test it; this needs to be fixed. 19770 19771 [tools/mpfrlint] Constant checking in assertions. 19772 19773 [src/mpfr-mini-gmp.c] Use lower case for function parameters. 19774 197752014-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19776 19777 re-enable assertions (patch from Patrick P��lissier) 19778 19779 removed an MPFR_LIKELY that is not so likely... 19780 197812014-01-24 Vincent Lef��vre <vincent@vinc17.net> 19782 19783 Optimization: likely / unlikely, etc. (patch by Patrick P��lissier). 19784 Coding style. 19785 19786 [tune/tuneup.c] Fix compilation error due to static assertion being 19787 wrong (patch by Patrick P��lissier). 19788 19789 [src/const_log2.c] Optimization by using GROUP allocation (patch 19790 by Patrick P��lissier). 19791 19792 [src/exp_2.c] Optimization: Increase the initial estimate of the number 19793 of iterations (patch by Patrick P��lissier). 19794 19795 [src/erfc.c] Use of static assertion instead of run time assertion 19796 (patch by Patrick P��lissier). 19797 19798 [src/sum.c] Removed trailing spaces. 19799 19800 [src/sin_cos.c] Optimization: use of MPFR_MPZ_SIZEINBASE2, GROUP 19801 allocation, and MPFR_ALIAS (modified patch by Patrick P��lissier). 19802 19803 [tools/mbench/mfv5-libc.cc] Fix warning when compiling with recent GCC 19804 due to unused but set variable (patch by Patrick P��lissier). 19805 198062014-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19807 19808 revert to EXTRA_PROGRAMS (bin_PROGRAMS is installed in /usr/local/bin, 19809 which is not what we want, we could use noinst_PROGRAMS, which would be 19810 compiled automatically, but for coherence with GNU MPC we use EXTRA_PROGRAMS 19811 which is not compiled automatically) 19812 19813 divide the global score to get a number around 1000 19814 19815 added reference 19816 19817 gnu style 19818 198192014-01-23 Vincent Lef��vre <vincent@vinc17.net> 19820 19821 Added libtool-tcc-wl.patch patch from 19822 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=663945#46 19823 to add tcc support to libtool 2.4.2 and below. 19824 In doc/README.dev, documented how to use this patch (before a release). 19825 19826 [tests/tadd.c] Added check_extreme test (huge + tiny). 19827 [tests/tsum.c] Added check_extreme test (same test as in tadd.c, 19828 but with mpfr_sum instead of mpfr_add), and temporarily disabled 19829 the cancel test. 19830 19831 Use of the numberof macro. 19832 19833 [tools/bench/mpfrbench.c] Whitespace clean-up. 19834 19835 [src/const_euler.c] Removed trailing spaces. 19836 19837 [tools/bench/Makefile.am] Fix for separate build directory (problem 19838 detected with "make distcheck"). 19839 19840 [src/sum.c] Updated comment. 19841 19842 [src/sum.c] Updated comment. 19843 19844 [src/sum.c] Added a possible algorithm in comment. 19845 19846 [src/sum.c] Added FIXME comment. 19847 198482014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19849 19850 missing space 19851 19852 Micka��l is the only author of MPFRbench 19853 19854 updated authors and contributors 19855 19856 new code for Euler's constant (contributed by Fredrik Johansson) 19857 19858 added subdir tools/bench 19859 19860 added MPFRbench 19861 19862 added MPFRbench 19863 19864 make mpfrbench compiled just with "make" 19865 19866 changes for MPFRbench 19867 19868 new directory for MPFRbench (contributed by Micka��l Gastineau and Bill Hart) 19869 198702014-01-22 Vincent Lef��vre <vincent@vinc17.net> 19871 19872 [tests/tsum.c] Added a comment about the cancellation test. 19873 19874 [tests/tsum.c] In the cancellation test, do a random permutation. 19875 198762014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19877 19878 mention sponsors 19879 198802014-01-22 Vincent Lef��vre <vincent@vinc17.net> 19881 19882 [tests/tsum.c] In the cancellation test: reduced the number of tests; 19883 output debug information when building with -DDEBUG. 19884 19885 [tests/tsum.c] Added simple cancellation test. 19886 19887 [tests/tests.c] Fixed tests_default_random in case mpfr_exp_t > long. 19888 19889 [doc/mpfr.texi] Improved mpfr_sum description. 19890 19891 [src/sum.c] Do not use bitwise operations on values that can be 19892 negative. Added comments about what the functions do. 19893 198942014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19895 19896 fixed regression noticed by Patrick Pelissier with --enable-gmp-internals 19897 198982014-01-22 Vincent Lef��vre <vincent@vinc17.net> 19899 19900 [tests/tests.c] Fixed bug in test_version() introduced in r8821. 19901 19902 [src/lngamma.c] Fixed divide-by-zero flag for negative integers. 19903 [tests/tlngamma.c] Test the flags for some special values. Clean-up. 19904 199052014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19906 19907 removed two items done 19908 199092014-01-21 Vincent Lef��vre <vincent@vinc17.net> 19910 19911 [src/{exp.c,exp_2.c}] mpfr_exp optimization (modified patch 19912 by Patrick P��lissier). 19913 [src/round_prec.c] Added a note about the reallocation. 19914 19915 LIKELY some code. 19916 19917 [src/lngamma.c] Fixed mpfr_lngamma behavior on nonpositive integers 19918 and -Inf. 19919 [doc/mpfr.texi] Updated the documentation on the general rules for 19920 special values and on mpfr_lngamma. 19921 [tests/tlngamma.c] Update. 19922 See <https://sympa.inria.fr/sympa/arc/mpfr/2013-08/msg00008.html> 19923 (behavior of mpfr_lngamma on zero and general rule for such limits). 19924 19925 [acinclude.m4,configure.ac] Check that a directory passed to 19926 a --with-gmp* configure option exists and doesn't contain any 19927 space, and canonicalize the name if the realpath utility is 19928 available (patch by Patrick P��lissier). 19929 19930 [src/mul.c] Optimization (modified patch by Patrick P��lissier). 19931 19932 [src] Added support for MPFR_PURE_FUNCTION_ATTR, MPFR_HOT_FUNCTION_ATTR, 19933 and MPFR_COLD_FUNCTION_ATTR, and fixed some LIKELY/UNLIKELY conditions 19934 (modified patch by Patrick P��lissier). 19935 19936 [src/*.c] Replaced mpfr_set_divby0 by the faster MPFR_SET_DIVBY0, 19937 and so on (except for src/exceptions.c). 19938 [tools/mpfrlint] Update for flags related functions: check that 19939 the macros are used in src (except for exceptions.c and mpfr.h) 19940 instead of the functions. 19941 [src/mpfr-impl.h] Removed some useless parentheses in comments, 19942 for mpfrlint. 19943 199442014-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19945 19946 added more detail in case of error 19947 199482014-01-21 Vincent Lef��vre <vincent@vinc17.net> 19949 19950 [src/mpfr-impl.h] Added MPFR_SET_* macros to set flags efficiently. 19951 19952 Small mpfr_erf improvement (modified patch by Patrick P��lissier). 19953 19954 [src/mpfr-gmp.h] TMP_FREE optimization as tmp_marker is often null 19955 (based on a patch by Patrick P��lissier). 19956 19957 [configure.ac] --enable-mini-gmp message: fixed layout; experimental. 19958 19959 [NEWS] Mini-gmp support is experimental. 19960 19961 [NEWS] Mention the new --enable-mini-gmp configure option. 19962 19963 [NEWS] Mini-gmp support. 19964 19965 [NEWS] MPFR now depends on GMP 4.2+. Dropped K&R C compatibility. 19966 19967 [NEWS] Better Automake 1.13 support. 19968 19969 Merged the vl-am113 branch: test suite improvement with Automake 1.13. 19970 * Moved GMP version check from tversion.c to the test_version() 19971 function of tests.c, so that this check is done in every test. 19972 This function now returns an int, as there are now 3 cases: 19973 1. An error in MPFR version check is a fatal error: test_version() 19974 exits with an error (exit status = 1). 19975 2. An error in GMP version check is a non-fatal error: if there 19976 are no errors in MPFR version check, test_version() returns 19977 with value 1. 19978 3. Otherwise test_version() returns with value 0 (everything is 19979 fine). 19980 * tversion.c still runs test_version(), but fails if this function 19981 returns with an error, i.e. any error is fatal for this test. 19982 Note: for the other tests, one just has a message in the output 19983 in case of GMP version mismatch. 19984 * mpfr-test.h: updated test_version() prototype. 19985 * Makefile.am: removed the second tversion invocation, and output 19986 the contents of tversion.log if this file exists (typically with 19987 Automake 1.13+, for which one no longer gets tversion output by 19988 default). 19989 19990 [tests/Makefile.am] Removed obsolete comment. 19991 199922014-01-20 Vincent Lef��vre <vincent@vinc17.net> 19993 19994 Dropped obsolete __gmp_const (replaced by const). 19995 19996 [TODO] Removed mini-gmp support: done. 19997 19998 Small mpfr_exp improvement (modified patch by Patrick P��lissier). 19999 20000 [tools/mbench] Patch by Patrick P��lissier: import base support, 20001 corei7 support, build fix (with MPFR 3.1+). 20002 200032014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20004 20005 come back to revision 8723 which was faster (measured with tools/mbench/mfv5 20006 on 53 and 1024 bits). The reason is that the "new" version had overhead for 20007 mpfr_round_p (about 40 cycles on Core 2) and mpfr_set (about 98 cycles for 20008 53 bits, and 132 cycles for 1024 bits) 20009 200102014-01-20 Vincent Lef��vre <vincent@vinc17.net> 20011 20012 Added __builtin_unreachable / MPFR_ASSUME support (modified patch 20013 from Patrick P��lissier). 20014 20015 MPFR now depends on GMP 4.2+ instead of 4.1+. 20016 GMP 4.2 compatibility fixed. 20017 Code clean-up. 20018 (Modified patch from Patrick P��lissier) 20019 20020 [src/fms.c] Coding style. 20021 20022 [src/fma.c] Changed mp_prec_t to mpfr_prec_t. 20023 200242014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20025 20026 added mpfr_fma 20027 200282014-01-20 Vincent Lef��vre <vincent@vinc17.net> 20029 20030 [tests/tests.c] Output a \n between two error messages when need be. 20031 200322014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20033 20034 speed up mpfr_fma [common work with Jeroen Demeyer] 20035 200362014-01-20 Vincent Lef��vre <vincent@vinc17.net> 20037 20038 [tests] 20039 * Moved GMP version check from tversion.c to the test_version() 20040 function of tests.c, so that this check is done in every test. 20041 This function now returns an int, as there are now 3 cases: 20042 1. An error in MPFR version check is a fatal error: test_version() 20043 exits with an error (exit status = 1). 20044 2. An error in GMP version check is a non-fatal error: if there 20045 are no errors in MPFR version check, test_version() returns 20046 with value 1. 20047 3. Otherwise test_version() returns with value 0 (everything is 20048 fine). 20049 * tversion.c still runs test_version(), but fails if this function 20050 returns with an error, i.e. any error is fatal for this test. 20051 Note: for the other tests, one just has a message in the output 20052 in case of GMP version mismatch. 20053 * mpfr-test.h: updated test_version() prototype. 20054 * Makefile.am: removed the second tversion invocation. 20055 20056 [tests/Makefile.am] Output the contents of tversion.log if this file 20057 exists (typically with Automake 1.13+, for which one no longer gets 20058 tversion output by default). 20059 200602014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20061 20062 simplified the fms code (joint work with Jeroen Demeyer) 20063 20064 fixed bug in mpfr_exp_3, and memory leak in texp 20065 200662014-01-20 Vincent Lef��vre <vincent@vinc17.net> 20067 20068 [src/li2.c] Use MPFR_RET_NEVER_GO_HERE () instead of MPFR_ASSERTN (0) 20069 to avoid an error with: 20070 ./configure --enable-logging CFLAGS="-Werror=return-type"; make 20071 20072 [src/mpfr-impl.h] Updated comment of the MPFR_RET_NEVER_GO_HERE macro. 20073 200742014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20075 20076 added new test that currently fails (found with mini-gmp) 20077 200782014-01-18 Vincent Lef��vre <vincent@vinc17.net> 20079 20080 Spelling consistency: 20081 non-negative ��� nonnegative 20082 non-positive ��� nonpositive 20083 20084 [doc/README.dev] More on exponent handling. 20085 20086 [tests/tset_str.c] Fixed and improved a mpfr_set_str_binary random test. 20087 Some code clean-up. 20088 20089 [tests/tset_str.c] Removed useless and confusing cast. 20090 20091 [src/set_d.c] Improved a comment about signed zeros. 20092 200932014-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20094 20095 fixed memory leak 20096 20097 instructions to compile MPFR with mini-gmp 20098 20099 disable those tests for mini-gmp 20100 20101 fixed test which might produce subnormal numbers 20102 20103 disable two tests that depend on the random generator 20104 20105 followup from previous commit: 1^Inf is special too 20106 20107 fixed issue for n^x with x=Inf when the random number n is 0 20108 20109 fixed issue when x=0 and y=Inf (or converse) 20110 20111 fixed issue when x=0 and y=Inf (or converse) 20112 20113 fixed bug in test file 20114 201152014-01-18 Vincent Lef��vre <vincent@vinc17.net> 20116 20117 [src/set_d.c] Fixes and other minor changes suggested by Wolf Lammen: 20118 https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html 20119 20120 [src/set_d.c] In extract_double, replaced long by int for exp (it may be 20121 faster, and shouldn't be slower as it is more restrictive than long). 20122 20123 [src/set_d.c] Removed obsolete comment from r245. 20124 20125 [src/set_d.c] Renamed __gmpfr_extract_double to extract_double 20126 (this is just a static function). 20127 20128 [src/set_d.c] Fixed __gmpfr_extract_double precondition on d. 20129 Bug found by Wolf Lammen: 20130 https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html 20131 201322014-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20133 20134 more progress with mini-gmp: 20135 ======================= 20136 9 of 157 tests failed 20137 (13 tests were not run) 20138 ======================= 20139 201402014-01-18 Vincent Lef��vre <vincent@vinc17.net> 20141 20142 [tests/{ty0,ty1}.c] Reduce emax for the generic tests. 20143 201442014-01-17 Vincent Lef��vre <vincent@vinc17.net> 20145 20146 [src/lngamma.c] FIXME: proposed method for overflow detection. 20147 20148 [src/lngamma.c] Minor improvements. 20149 201502014-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20151 20152 missing \n 20153 20154 missing \n 20155 20156 missing \n in error messages 20157 20158 missing \n in error messages 20159 201602014-01-17 Vincent Lef��vre <vincent@vinc17.net> 20161 20162 [src/lngamma.c] Added a MPFR_LOG_FUNC. 20163 20164 [src/digamma.c] FIXME: for x large, use the asymptotic expansion. 20165 20166 [src/digamma.c] Added 2 MPFR_LOG_FUNC's. 20167 20168 [tests/tgeneric.c] Fixed bug found by PZ: code introduced in r4538 to 20169 test the maximum (in absolute value) positive and negative arguments 20170 was buggy, as only the negative one was tested. 20171 ��� This makes some tests fail on the maximum positive argument. 20172 201732014-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20174 20175 some progress with mini-gmp: 20176 ======================= 20177 34 of 157 tests failed 20178 (13 tests were not run) 20179 ======================= 20180 20181 mpn_copyd (rp, sp, n) should be used when rp >= sp 20182 20183 fixed bug which could appear with probability 1/2^32 or 1/2^64 20184 201852014-01-17 Vincent Lef��vre <vincent@vinc17.net> 20186 20187 [src/mpfr-mini-gmp.c] Removed trailing spaces. 20188 20189 [tools/mpfrlint] Update due to the mini-gmp support (r8753). 20190 20191 [tests] Various fixes for r8753. 20192 20193 [src/mpfr.h] Indentation. 20194 20195 [src/mpfr-impl.h] Indentation. 20196 20197 Avoid an empty translation unit (see ISO C99, 6.9). Some errors could 20198 be triggered with "gcc -std=c99 -pedantic-errors". 20199 202002014-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20201 20202 more progress for the mini-gmp interface 20203 202042014-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20205 20206 added two new files for mini-gmp interface 20207 20208 first step towards making MPFR compile with --enable-mini-gmp, so far make 20209 succeeds and all tests compile, but many tests fail, will investigate later 20210 202112014-01-16 Vincent Lef��vre <vincent@vinc17.net> 20212 20213 [src/get_z_exp.c] Added an assert for security in case the precision is 20214 large, but the error should be handled properly (to be discussed). 20215 Note: there are still corrupt memory problems when the precision is 20216 large enough but below the mpz limit (a bug in GMP?). 20217 Note [VL, 2014-01-17]: these problems are due to an integer overflow in 20218 mpz/clear.c of GMP 5.1.3; I've reported the bug here: 20219 https://gmplib.org/list-archives/gmp-bugs/2014-January/003321.html 20220 20221 [src/get_z_exp.c] Avoid a potential overflow. 20222 20223 [src/extract.c] Type clean-up with 2 bug fixes (these bugs should have 20224 no effect on most platforms without too aggressive optimizations). 20225 202262014-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20227 20228 replaced function _mpz_realloc by preferred one mpz_realloc2 20229 202302014-01-16 Vincent Lef��vre <vincent@vinc17.net> 20231 20232 [TODO] Added mini-gmp support. 20233 202342014-01-15 Vincent Lef��vre <vincent@vinc17.net> 20235 20236 [NEWS] Mention speed improvement with --enable-assert[=full] and GCC 20237 (due to the fix in r8746). 20238 202392014-01-14 Vincent Lef��vre <vincent@vinc17.net> 20240 20241 [src/mpfr-impl.h] Fixed the MPFR_ASSERTN macro as suggested by 20242 Wolf Lammen: https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00002.html 20243 Note: the semantics doesn't change, it should just be more efficient. 20244 202452014-01-12 Vincent Lef��vre <vincent@vinc17.net> 20246 20247 [tests/tset_ld.c] Output MPFR_LDBL_MANT_DIG in some failure case. 20248 202492014-01-11 Vincent Lef��vre <vincent@vinc17.net> 20250 20251 [tests/tset_d.c] More information in a failed test. 20252 202532014-01-10 Vincent Lef��vre <vincent@vinc17.net> 20254 20255 [tests/Makefile.am] In LOADLIBES, replaced $(INCLUDES) by $(AM_CPPFLAGS) 20256 (this should have been done at the same time as r8364). 20257 202582014-01-09 Vincent Lef��vre <vincent@vinc17.net> 20259 20260 [doc/README.dev] "To make a release" update. In particular at step 5, 20261 replaced "make dist" by "make distcheck" so that some problems can be 20262 detected at step 5 instead of step 6, ensuring that the tarballs are 20263 complete. 20264 20265 [src/Makefile.am] Forgot to add mpfr-cvers.h in r8739. 20266 20267 When static assertions are not supported by the C implementation 20268 natively (new C11 feature), their MPFR implementation got broken by 20269 changeset r8625, as the __MPFR_GNUC macro in mpfr-sassert.h was not 20270 defined in the configure test (since mpfr-impl.h wasn't included) 20271 and generated an error, disabling the static assertions support. 20272 This is fixed by the following changes, avoiding code duplication 20273 and thus risk of inconsistencies in future modification: 20274 * copied some of the version detection macros from mpfr-impl.h to 20275 a standalone file mpfr-cvers.h, and updated the macros; 20276 * in mpfr-impl.h, replaced these macros by a #include "mpfr-cvers.h" 20277 and updated a comment; 20278 * in mpfr-sassert.h, added a #include "mpfr-cvers.h". 20279 20280 [acinclude.m4] In the Static Assertions test, avoid a warning with GCC 20281 and added comments. 20282 202832014-01-07 Vincent Lef��vre <vincent@vinc17.net> 20284 20285 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 20286 20287 [tools/mpfrlint] Use codespell if available. 20288 20289 [TODO] Fixed a misspelling, using codespell. 20290 20291 Fixed misspellings, using codespell. 20292 202932014-01-06 Vincent Lef��vre <vincent@vinc17.net> 20294 20295 [TODO] Added item: new functions of IEEE 754-2008 / C binding draft. 20296 202972014-01-05 Vincent Lef��vre <vincent@vinc17.net> 20298 20299 [doc/README.dev] "To make a release": added a paragraph about warnings. 20300 20301 [tests/trint.c] Avoid a warning. 20302 20303 [acinclude.m4] Avoid a warning due to variable set but not used in a 20304 test, making the test fail with gcc -Werror=unused-but-set-variable. 20305 20306 [acinclude.m4] Replaced "main()" by "main (void)". 20307 203082014-01-04 Vincent Lef��vre <vincent@vinc17.net> 20309 20310 [doc/mpfr.texi] Updated the month. 20311 203122014-01-03 Vincent Lef��vre <vincent@vinc17.net> 20313 20314 Fixed warnings from GCC's -Wold-style-declaration option: 20315 MPFR_THREAD_ATTR must be at beginning of declaration. 20316 20317 Copyright notice update: added 2014 with 20318 perl -pi -e 's/ (\d{4}-)?(2013)(?= Free Software)/ 20319 " ".($1||"$2-").($2+1)/e' **/*(^/) 20320 under zsh (the tools/mbench directory was not modified). 20321 Removed 2013 from the example in the doc/README.dev file. 20322 203232013-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20324 20325 work around for bug in mpn_set_str 20326 (https://gmplib.org/list-archives/gmp-bugs/2013-December/003267.html) 20327 203282013-12-12 Vincent Lef��vre <vincent@vinc17.net> 20329 20330 Added tools/repl-variadic Perl script to replace the variadic functions 20331 mpfr_clears, mpfr_inits and mpfr_inits2, in case they are not supported 20332 by the compiler. 20333 203342013-11-28 Vincent Lef��vre <vincent@vinc17.net> 20335 20336 [tests/tstckintc.c] Improved tests when mpfr_custom_init_set is used as 20337 a macro (i.e. without parentheses) to trigger the bug fixed in r8715. 20338 20339 [src/mpfr.h] Fixed bug in the mpfr_custom_init_set macro (typo in 20340 variable name, which can yield incorrect behavior if the second 20341 argument is not a simple expression). 20342 Thanks to Andreas Enge for the bug report: 20343 https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00029.html 20344 203452013-11-21 Vincent Lef��vre <vincent@vinc17.net> 20346 20347 [src/lngamma.c] No longer declare B as initialized with GCC (see r5534), 20348 as the "may be used uninitialized" warning no longer occurs with latest 20349 GCC: trunk revision 203899 (Debian 20131021-1), for the future GCC 4.9. 20350 The warning still occurs with GCC 4.8.2 (Debian 4.8.2-1): 20351 20352 $ gcc-4.8 -O2 -Wall -c gamma.c 20353 In file included from gamma.c:27:0: 20354 gamma.c: In function ���mpfr_gamma���: 20355 lngamma.c:468:17: warning: ���B��� may be used uninitialized in this function [-Wmaybe-uninitialized] 20356 B = mpfr_bernoulli_internal (B, m); /* B[2m]*(2m+1)!, exact */ 20357 ^ 20358 lngamma.c:165:10: note: ���B��� was declared here 20359 mpz_t *B; 20360 ^ 20361 Note: with GCC 4.8.2, at least -O is needed to reproduce the warning, 20362 and -Wmaybe-uninitialized without -Wuninitialized (or -Wall) doesn't 20363 trigger the warning. 20364 203652013-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20366 20367 added -Wlogical-op 20368 203692013-11-15 Vincent Lef��vre <vincent@vinc17.net> 20370 20371 [tests/tsprintf.c] Added a few tests. 20372 20373 [doc/README.dev] This may seem obvious, but this is not the first time 20374 this happens: + "When adding the expected result, do NOT use the one 20375 obtained from the MPFR function! Otherwise, if this function is buggy, 20376 the test will be wrong and the function will remain buggy." 20377 20378 [tests/tsprintf.c] Fixed incorrect test from r5652 (the corresponding 20379 bug in src/vasprintf.c has been fixed in r8705). 20380 203812013-11-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20382 20383 fixed bug reported by David Binderman 20384 (https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00009.html) 20385 203862013-11-06 Vincent Lef��vre <vincent@vinc17.net> 20387 20388 [tests/thypot.c] More NaN tests. 20389 203902013-11-06 Philippe Th��veny <philippe.theveny@laposte.net> 20391 20392 [tests/thypot.c] Fix use of a non explicitly initialized variable. 20393 203942013-11-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20395 20396 [sum.c] the call to mpfr_can_round was obviously wrong 20397 203982013-11-04 Vincent Lef��vre <vincent@vinc17.net> 20399 20400 [tests/tsum.c] Updated TODO comment (��� check underflows). 20401 204022013-11-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20403 20404 [sum.c] mpfr_sum should consider the maximal precision of its inputs/output 20405 204062013-10-28 Vincent Lef��vre <vincent@vinc17.net> 20407 20408 [tests/tsum.c] Added a TODO comment: add generic random test with 20409 cancellations, and tests with intermediate overflows. 20410 20411 [tests/tsum.c] Added test for bug reported by Joseph S. Myers: 20412 https://sympa.inria.fr/sympa/arc/mpfr/2013-10/msg00015.html 20413 204142013-09-27 Vincent Lef��vre <vincent@vinc17.net> 20415 20416 [doc/mpfr.texi] Added an example for mpfr_fits_*, corresponding to the 20417 bug fixed in r8503. 20418 20419 [src/mpfr-impl.h] Document that DOUBLE_ISNAN(x) is valid on long double. 20420 [tests/tset_ld.c] In Isnan_ld, do not convert the long double argument 20421 to double, as this can give an overflow and unexpected behavior without 20422 default IEEE 754 behavior. With this change, this tset_ld test no longer 20423 fails with "clang -O2 -fsanitize=undefined -fno-sanitize-recover". 20424 20425 [tests/tset_ld.c] Avoid a division by zero if MPFR_ERRDIVZERO. 20426 20427 [tests/tset_ld.c] Move tests_start_mpfr call earlier. 20428 20429 [tests/tget_flt.c] Corrections when MPFR_ERRDIVZERO is defined. 20430 20431 [src/mpfr-impl.h] With clang, disable division by zero using constants 20432 due to a bug in its sanitizer and because IEEE 754 division by zero is 20433 currently not properly supported. 20434 With this change, the tget_d test no longer fails with: 20435 clang -O2 -fsanitize=undefined -fno-sanitize-recover 20436 204372013-09-26 Vincent Lef��vre <vincent@vinc17.net> 20438 20439 [tests/tget_flt.c] Protect a division by 0. 20440 204412013-09-17 Vincent Lef��vre <vincent@vinc17.net> 20442 20443 [src/Makefile.am] Updated -version-info to 6:0:2 for MPFR 3.2.0. 20444 204452013-09-16 Vincent Lef��vre <vincent@vinc17.net> 20446 20447 [NEWS] For MPFR 3.2: The --enable-decimal-float configure option 20448 no longer requires --with-gmp-build (see r8402). 20449 204502013-09-15 Vincent Lef��vre <vincent@vinc17.net> 20451 20452 [configure.ac] Detect broken _Decimal64 support on powerpc64 with 20453 the mode32 ABI. 20454 20455 [tests/tget_set_d64.c] More meaningful messages in check_inf_nan. 20456 20457 [tests/tget_set_d64.c] More meaningful messages in check_inf_nan 20458 after failures on powerpc64 with the mode32 ABI. 20459 204602013-09-04 Vincent Lef��vre <vincent@vinc17.net> 20461 20462 [TODO] Added: implement optional cache sharing between threads. 20463 204642013-09-02 Vincent Lef��vre <vincent@vinc17.net> 20465 20466 [doc/mpfr.texi] Changed node name "Integer Related Functions" to 20467 "Integer and Remainder Related Functions", as the corresponding 20468 section title was changed in r4867. Added associated @cindex. 20469 20470 [doc/mpfr.texi] Updated the month. 20471 20472 [doc/mpfr.texi] Specified special values (in particular the sign of 0) 20473 for Section 5.10 "Integer and Remainder Related Functions". 20474 20475 [src/round_raw_generic.c] Support MPFR_RNDNA for this class of functions 20476 at the request of John P. Hartmann (to support one of IBM's High Level 20477 Assembler rounding mode for hexadecimal floating-point constants). 20478 20479 [src/round_raw_generic.c] Code simplification / comment corrections. 20480 204812013-08-26 Vincent Lef��vre <vincent@vinc17.net> 20482 20483 [doc/README.dev] About clang sanitizer, mention -fno-sanitize-recover 20484 for more visibility in automated tests. 20485 204862013-08-23 Vincent Lef��vre <vincent@vinc17.net> 20487 20488 [src/ai.c] Moved the handling of the special cases NaN and ��Inf to 20489 the main function mpfr_ai. 20490 20491 [src/agm.c] Corrected a comment. 20492 [tests/tagm.c] Added tests concerning special values, 20493 in particular (zero,negative) and symmetric tests. 20494 [doc/mpfr.texi] Corrected mpfr_agm description. 20495 204962013-08-21 Vincent Lef��vre <vincent@vinc17.net> 20497 20498 [TODO] Revisit the conversion functions between a MPFR number and 20499 a native floating-point value. 20500 205012013-08-19 Vincent Lef��vre <vincent@vinc17.net> 20502 20503 [doc] Added mpfr.t2d and mpfr.t2p to svn:ignore property. 20504 Note: These directories are now generated when using "make mpfr.dvi" 20505 and "make mpfr.pdf". This comes from a change in Automake 1.13 (see 20506 its 2012-06-20 changelog) for the texi2dvi and texi2pdf invocations. 20507 205082013-08-10 Vincent Lef��vre <vincent@vinc17.net> 20509 20510 [doc/README.dev] Before release, test with gcc -mpc64 under Linux/x86. 20511 205122013-08-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20513 20514 [tversion.c] added GCC version 20515 20516 [tset_ld.c] try to fix a bug on i686-freebsd 20517 (see http://hydra.nixos.org/build/5665961/log/raw) 20518 20519 [tset_ld.c] added debug information 20520 205212013-08-07 Vincent Lef��vre <vincent@vinc17.net> 20522 20523 [tests/tset_ld.c] Reverted changeset r8657 as %a is C99-only. Moreover 20524 the memory representation already gives the necessary information (and 20525 the decimal output was correct on the machine where the test fails). 20526 205272013-08-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20528 20529 [tset_ld.c] maybe this will fix the issue for i686-freebsd? 20530 Cf http://hydra.nixos.org/build/5662697. 20531 20532 [tset_ld.c] in case of error, print d in hexadecimal 20533 205342013-08-07 Vincent Lef��vre <vincent@vinc17.net> 20535 20536 [tests/tset_ld.c] In the "mpfr_set_ld should be exact" error, output 20537 the memory representation of d. 20538 205392013-08-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20540 20541 [tset_ld.c] print value of MPFR_LDBL_MANT_DIG in case of error 20542 205432013-08-07 Vincent Lef��vre <vincent@vinc17.net> 20544 20545 [doc/mpfr.texi] Space consistency. 20546 205472013-08-06 Vincent Lef��vre <vincent@vinc17.net> 20548 20549 [tests/tset_ld.c] Corrected a comment. 20550 20551 [tests/tset_ld.c] Set some long double variables as volatile in order to 20552 avoid optimizations that yield failures with xlc on power7 (not tested). 20553 20554 [src/get_ld.c] Oops... The non-working code was due to a missing cast. 20555 So, simplified the code. 20556 20557 [acinclude.m4] Define HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE if the 20558 "long double" format seems to be double-double (e.g. on PowerPC). 20559 [src/get_ld.c] Added double-double support. 20560 205612013-08-05 Vincent Lef��vre <vincent@vinc17.net> 20562 20563 [src/get_ld.c] GNU style. 20564 20565 [tests/tset_ld.c] Improved output in case of error. 20566 20567 [tests/tset_ld.c] Improved check_set_get() test function; in particular, 20568 it no longer takes a mpfr_t argument: the precision of the MPFR number 20569 is now determined dynamically from the long double d. Thus some numbers 20570 having a precision > MPFR_LDBL_MANT_DIG in double-double arithmetic are 20571 now tested (e.g. on PowerPC). 20572 20573 [doc/mpfr.texi] "correctly-rounded" ��� "correctly rounded" (see rule on 20574 https://en.wikipedia.org/wiki/Wikipedia:HYPHEN#Hyphens and the IEEE 754 20575 and ISO C standards don't use a hyphen either). 20576 20577 [doc/mpfr.texi] Added missing @code{}'s in mpfr_fpif_import description. 20578 20579 [doc/mpfr.texi] Replaced periods ending a sentence by "@." in the 20580 following cases: when the preceding character is a capital letter 20581 or a closing parenthesis following a capital letter (e.g. "NaN.", 20582 "MPFR.", "MPFR).", etc). This is needed to get correct spacing in 20583 the generated .info and PDF files with the next sentence of the 20584 paragraph (when there is one). 20585 20586 [tests/tset_ld.c] Removed the "check largest 2^k that is representable 20587 as a long double" test based on macros LDBL_MAX and LDBL_EPSILON, which 20588 are not correct in some C implementations. There is already another 20589 "check the largest power of two" test, based on a loop, which is OK. 20590 205912013-08-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20592 20593 [tset_ld.c] improve tests to avoid spurious errors for double-double 20594 representation where MPFR_LDBL_MANT_DIG=106 and numbers 20595 with 107 bits or more 20596 205972013-08-02 Vincent Lef��vre <vincent@vinc17.net> 20598 20599 [doc/mpfr.texi] Document that log1p(-1) = -Inf. 20600 20601 [doc/mpfr.texi] Updated the month. 20602 20603 [doc/mpfr.texi] Moved mpfr_log1p & mpfr_expm1 after mpfr_log & mpfr_exp 20604 respectively. 20605 20606 [tests/tset_ld.c] Comment on LDBL_MAX. 20607 206082013-08-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20609 20610 [tset_ld.c] missing conversion from int to mpfr_rnd_t 20611 20612 [tset_ld.c] improve error message 20613 206142013-08-02 Vincent Lef��vre <vincent@vinc17.net> 20615 20616 [src/set_ld.c] Corrected a comment. 20617 206182013-08-01 Vincent Lef��vre <vincent@vinc17.net> 20619 20620 [doc/mpfr.texi] Completed specification of mpfr_lngamma and mpfr_lgamma 20621 on 1 and 2 (result is +0). 20622 20623 [doc/mpfr.texi] Improved description of mpfr_rec_sqrt and mpfr_hypot. 20624 20625 [tests] Added terandom and tnrandom to svn:ignore property. 20626 20627 [src] Improved some comments with "0", about its sign. 20628 20629 [doc/mpfr.texi] Completed specification on special numbers (��0, ��Inf). 20630 206312013-08-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20632 20633 [tset_ld.c] increase precision to take into account double-double encoding 20634 20635 [tset_ld.c] replaced error by warning when _GMP_IEEE_FLOATS is not defined 20636 206372013-07-22 Vincent Lef��vre <vincent@vinc17.net> 20638 20639 [src/mpfr-sassert.h] Get rid of annoying warnings 20640 typedef 'MPFR_ASSERT_xxx' locally defined but not used 20641 with GCC 4.8+ (better than the non-portable solution r8618). Thanks to 20642 Jonathan Wakely: https://gcc.gnu.org/legacy-ml/gcc-help/2013-07/msg00142.html 20643 206442013-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20645 20646 [configure.ac] revert commit 8618 since it breaks hydra jobs i686-cygwin, 20647 i686-freebsd, i686-solaris and x86_64-freebsd 20648 (cf http://hydra.nixos.org/eval/955753) 20649 206502013-07-22 Vincent Lef��vre <vincent@vinc17.net> 20651 20652 Applied patch 3 by Ond��ej B��lka with some manual corrections, 20653 fixing typos: 20654 https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00016.html 20655 20656 Applied patch 2 by Ond��ej B��lka, fixing capitalization: 20657 https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00015.html 20658 20659 Applied patch 1 by Ond��ej B��lka, fixing common typos: 20660 https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00014.html 20661 20662 [configure.ac] Added -Wno-unused-local-typedefs flag to avoid spurious 20663 "typedef 'MPFR_ASSERT_xxx' locally defined but not used" warnings due 20664 to the implementation of static assertions. 20665 206662013-07-16 Vincent Lef��vre <vincent@vinc17.net> 20667 20668 Slightly restructured doc/README.dev and mentioned C-Reduce. 20669 206702013-07-12 Vincent Lef��vre <vincent@vinc17.net> 20671 20672 [configure.ac] If the gmp.h vs libgmp test fails, also output the value 20673 of some variables (in case config.log is available, information can 20674 also be retrieved from "Cache variables" and "Output variables" near 20675 the end). 20676 206772013-07-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20678 20679 revert temporary commit 8613 20680 206812013-07-11 Vincent Lef��vre <vincent@vinc17.net> 20682 20683 [acinclude.m4] Improved MPFR_CHECK_DBL2INT_BUG in case of failure 20684 and added comments about that. 20685 206862013-07-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20687 20688 [configure.ac] temporary commit to investigate problem with i686-solaris on hydra 20689 206902013-07-11 Vincent Lef��vre <vincent@vinc17.net> 20691 20692 [configure.ac] In the CC and CFLAGS setup from gmp.h, modified the 20693 list of commands to select the C preprocessor since /lib/cpp isn't 20694 the best choice under Solaris. 20695 20696 [configure.ac] Moved AM_PROG_AR (introduced in r8546) after the 20697 CC and CFLAGS setup from gmp.h, because AM_PROG_AR makes Autoconf 20698 select a compiler (before it may be chosen from __GMP_CC). 20699 20700 [configure.ac] The test of CC and CFLAGS was done too late! Moved this 20701 test earlier (checked on Debian/unstable with autoconf 2.69). 20702 207032013-07-10 Vincent Lef��vre <vincent@vinc17.net> 20704 20705 [configure.ac] Improved r8608 (gmp.h/libgmp on stderr). 20706 207072013-07-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20708 20709 [configure.ac] print also the versions of gmp.h/libgmp on stderr, hoping they 20710 will appear on i686-solaris 20711 20712 [src/exp_2.c] removed useless instruction 20713 207142013-07-10 Vincent Lef��vre <vincent@vinc17.net> 20715 20716 [acinclude.m4] Corrected change in r8602 to get an error in the case 20717 i == 0 and u != 1. 20718 207192013-07-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20720 20721 [configure.ac] added fflush to see versions of gmp.h/libgmp 20722 207232013-07-10 Vincent Lef��vre <vincent@vinc17.net> 20724 20725 [src/exp_2.c] Fixed undefined behavior (present in all MPFR versions) 20726 detected by "clang -fsanitize=undefined". 20727 20728 [doc/README.dev] Suggest to test with "clang -fsanitize=undefined"; 20729 see <https://blog.regehr.org/archives/963>. 20730 207312013-07-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20732 20733 more helpful debug information 20734 20735 added debug information for double-to-integer conversion bug 20736 207372013-07-09 Vincent Lef��vre <vincent@vinc17.net> 20738 20739 [src/mpfr.h] Updated a comment about ICC. 20740 20741 [doc/README.dev] Added URL about compiler detection. 20742 207432013-06-07 Vincent Lef��vre <vincent@vinc17.net> 20744 20745 [doc/README.dev] Another update about signed and unsigned integer types. 20746 20747 [doc/README.dev] Update about signed and unsigned integer types. 20748 207492013-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20750 20751 [src/random_deviate.c] applied patch from Charles Karney 20752 [tests/Makefile.am] reorder test files 20753 207542013-06-07 Vincent Lef��vre <vincent@vinc17.net> 20755 20756 [doc/README.dev] Added URL's about C++ reserved keywords. 20757 207582013-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20759 20760 changed to allow compilation with C++: 20761 [src/random_deviate.h] must declare the types before extern C {...} 20762 [tests/tget_sj.c,tests/tset_si.c] "not" seems to be reserved in C++ 20763 207642013-06-07 Vincent Lef��vre <vincent@vinc17.net> 20765 20766 [doc/algorithms.tex] Slightly improved a bound under which mpfr_hypot 20767 cannot have an internal underflow, thus is correct. 20768 207692013-06-06 Vincent Lef��vre <vincent@vinc17.net> 20770 20771 [tools/mpfrlint] Improved a test to avoid false positives. 20772 20773 [doc/algorithms.tex] Updated/improved the proof of mpfr_hypot in the 20774 scaling case. 20775 20776 [src/hypot.c] Slightly improved scaling to avoid even more underflow 20777 in the scaling of y or in its square. 20778 20779 [src/hypot.c] Added a comment on the FIXME. 20780 20781 [src/mpfr-gmp.h] Removed useless and meaningless definitions. 20782 20783 [src] Moved mp_bitcnt_t definition for GMP < 5 from mpfr-gmp.h to 20784 mpfr-impl.h (mpfr-gmp.h is only for definitions from GMP internals 20785 as it is included only in builds without GMP internals). 20786 20787 [src/mpfr-gmp.h] Fixed mp_bitcnt_t presence test. 20788 207892013-06-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20790 20791 changed macro to typedef when mp_bitcnt_t is missing (for coherence with GMP) 20792 20793 fixed compiler warnings 20794 20795 [mpfr-gmp.h] added replacement for mp_bitcnt_t 20796 [hypot.c] added comment 20797 207982013-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20799 20800 applied patch from Charles Karney 20801 208022013-06-05 Vincent Lef��vre <vincent@vinc17.net> 20803 20804 [README] Added ar-lib (due to AM_PROG_AR in r8546) and test-driver 20805 (installed by Automake 1.12+). 20806 208072013-06-03 Vincent Lef��vre <vincent@vinc17.net> 20808 20809 [doc/mpfr.texi] Updated the month. 20810 208112013-06-02 Vincent Lef��vre <vincent@vinc17.net> 20812 20813 [configure.ac] In AM_INIT_AUTOMAKE, lowered Automake version requirement 20814 to 1.11.2 (for AM_PROG_AR), as Ubuntu 12.04 LTS only has Automake 1.11.3 20815 (we assume that such distributions have a security patch). 20816 20817 [configure.ac] In AM_INIT_AUTOMAKE, require Automake 1.11.6 for 20818 AM_PROG_AR and security reasons. 20819 20820 [NEWS,doc/mpfr.texi] New and deprecated functions in MPFR 3.2. 20821 20822 Spelling: gaussian -> Gaussian (Wikipedia, Wolfram MathWorld, dict). 20823 20824 [doc/mpfr.texi] Slight doc improvement for mpfr_grandom. 20825 208262013-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20827 20828 added assertion 20829 208302013-06-01 Vincent Lef��vre <vincent@vinc17.net> 20831 20832 [src/random_deviate.c] Updated a comment. 20833 208342013-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20835 20836 in case mp_limb_t is smaller than unsigned long, use alternate code for 20837 highest_bit_idx 20838 208392013-06-01 Vincent Lef��vre <vincent@vinc17.net> 20840 20841 [tools/mpfrlint] Update for random_deviate. 20842 20843 [src/nrandom.c] Corrected indentation. 20844 20845 [src/random_deviate.h] Fixed a typo in a macro name. 20846 20847 [src/random_deviate.c] Removed trailing spaces. 20848 20849 Added ar-lib to svn:ignore property (this script comes from Automake, 20850 due to the use of AM_PROG_AR in configure.ac as of r8546). 20851 208522013-05-31 Vincent Lef��vre <vincent@vinc17.net> 20853 20854 [tests/memory.c] Added a FIXME comment about the time complexity of 20855 tests_memory_find (Paul Zimmermann noticed that tgrandom on a large 20856 value takes a lot of time, probably because of that). 20857 208582013-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20859 20860 updated NEWS and contribution section in mpfr.texi 20861 20862 #include <...> -> #include "..." for local files 20863 20864 removed obsolete comment 20865 20866 GNU style 20867 20868 GNU style 20869 20870 GNU style 20871 20872 added tests files for mpfr_nrandom and mpfr_erandom 20873 20874 removed RANDOM_SIMPLE=1 stuff (this was an alternate slower implementation). 20875 Kept in svn history as a reference. 20876 20877 removed mpfr_grandom_alt (likewise previous commit) 20878 20879 removed mpfr_urandom_alt (slower than mpfr_urandom, but it can be recovered 20880 from the svn history to illustrate one of the basic properties of a newly 20881 initialized mpfr_random_deviate_t) 20882 20883 removed mpfr_random.h, headers are in mpfr.h 20884 20885 original contribution from Charles Karney <charles.karney@sri.com> 20886 208872013-05-30 Vincent Lef��vre <vincent@vinc17.net> 20888 20889 Removed obsolete tools/update-patchv script. Use update-version instead. 20890 20891 [configure.ac] Added AM_PROG_AR to support unusual archivers 20892 (after a warning from Automake 1.13). 20893 20894 [tools/ck-copyright-notice] Update for copyright year ranges. 20895 20896 [doc/mpfr.texi] Updated the month. 20897 20898 Use copyright year ranges, following 20899 https://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices 20900 20901 [tests] Added *.log and *.trs to svn:ignore property. 20902 20903 [INSTALL] Update about configure default options. 20904 20905 Added test-driver (from Automake 1.12+) to svn:ignore property. 20906 209072013-05-24 Vincent Lef��vre <vincent@vinc17.net> 20908 20909 [configure.ac] Updated comment about -mieee-fp icc option. 20910 209112013-05-24 Philippe Th��veny <philippe.theveny@laposte.net> 20912 20913 [tests/tprintf] remove tests of invalid format (continuation of r8525). 20914 20915 [src/vasprintf.c] Support all length modifiers defined by ISO C99, even if the 20916 corresponding type is not detected by configure (continuation of r8525). 20917 209182013-05-24 Vincent Lef��vre <vincent@vinc17.net> 20919 20920 [configure.ac] For ICC, changed the deprecated -mp option to the 20921 equivalent one -mieee-fp; added a comment about that. 20922 209232013-05-24 Philippe Th��veny <philippe.theveny@laposte.net> 20924 20925 [src/vasprintf.c] Always support 't' and 'L' length modifiers, but don't 20926 test them if configure doesn't find the corresponding type. 20927 20928 Printing invalid format specifiers (continuation of r8525) 20929 [src/vasprintf.c] Add comments. 20930 [tests/tprintf.c] Simplify tests. 20931 209322013-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20933 20934 new macro MPFR_MAYBE_UNUSED to avoid compiler warnings 20935 209362013-05-23 Philippe Th��veny <philippe.theveny@laposte.net> 20937 20938 [src/vasprintf.c] Print invalid format specifier instead of returning an error code, as in GMP. 20939 [tests/tprintf.c] Modify tests for invalid format. 20940 209412013-05-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20942 20943 try to link with GMP even when a dll, since it seems to work now 20944 (see https://sympa.inria.fr/sympa/arc/mpfr/2013-05/msg00010.html) 20945 20946 replaced macros NPRINTF_T and NPRINTF_L by positive versions 20947 PRINTF_T and PRINTF_L, now we don't assume that %td and %Lf are supported 20948 when we don't check it (for example when cross-compiling, or under Windows 20949 when GMP is a dynamic library) 20950 20951 fixed typo 20952 209532013-05-15 Vincent Lef��vre <vincent@vinc17.net> 20954 20955 [Makefile.am] Added a comment about ACLOCAL_AMFLAGS, based on the 20956 GNU Automake 1.13.2 release notes. 20957 209582013-04-17 Vincent Lef��vre <vincent@vinc17.net> 20959 20960 [src/mpfr-impl.h] With clang, do not use GCC's self-initialization trick 20961 as it generates a warning, though clang claims GCC compatibility. 20962 209632013-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20964 20965 [algorithms.tex] added reference 20966 209672013-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20968 20969 [TODO] added item 20970 209712013-03-18 Vincent Lef��vre <vincent@vinc17.net> 20972 20973 [src/fits_intmax.c] Corrected a comment. 20974 20975 [src/{fits_u.h,fits_uintmax.c}] Fixed the mpfr_fits_u*_p functions, 20976 which incorrectly returned 0 ("doesn't fit") on negative arguments 20977 when the rounding to an integer was 0. The fits_uintmax.c file now 20978 uses fits_u.h for consistency. 20979 20980 [tests/tfits.c] Use error numbers to know where an error occurred. 20981 20982 [src/fits_uintmax.c] Replaced an obsolete comment by a TODO. 20983 20984 [tests/tget_sj.c] Added mpfr_get_uj tests on small negative op, 20985 similar to what has been done for mpfr_get_ui in r8498,8499. 20986 20987 [tests/tset_si.c] Minor type correction for r8498 (this shouldn't matter 20988 because the value is normally small, but perhaps not in case of bug). 20989 20990 [tests/tset_si.c] Added mpfr_get_ui tests on small negative op. 20991 20992 [tests/tset_si.c] Corrected comment. 20993 20994 [doc/mpfr.texi] Updated the month. 20995 20996 [doc/mpfr.texi] Improved documentation of the conversions to an integer 20997 (mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj). 20998 20999 [tests/tfits.c] Added tests, in particular for small negative op 21000 and in non-RNDN rounding modes; tfits currently fails. 21001 21002 [tools/announce-text] Added short text about what GNU MPFR is. 21003 210042013-03-13 Vincent Lef��vre <vincent@vinc17.net> 21005 21006 [doc/README.dev] Removed a duplicate word. 21007 210082013-03-12 Vincent Lef��vre <vincent@vinc17.net> 21009 21010 [INSTALL] Added a paragraph about Cygwin and threading. 21011 21012 [INSTALL] Improved information on patches. 21013 210142013-03-11 Vincent Lef��vre <vincent@vinc17.net> 21015 21016 [tools/announce-text] Added text about how to verify the signatures. 21017 21018 [doc/README.dev] Updated "To make a release" about the web pages. 21019 210202013-03-08 Vincent Lef��vre <vincent@vinc17.net> 21021 21022 [doc/README.dev] Added info about update-version and ck-version-info. 21023 210242013-03-05 Vincent Lef��vre <vincent@vinc17.net> 21025 21026 [tests/tfpif.c] Clean-up. Improved consistency. 21027 210282013-03-04 Vincent Lef��vre <vincent@vinc17.net> 21029 21030 [examples] Replaced the old rounding mode macros (GMP_RNDN, etc.) by the 21031 new ones (MPFR_RNDN, etc.) in the *.c files; updated ReadMe file. 21032 21033 [doc/update-faq] Removed the now useless s/GMP_RND/MPFR_RND/ rewriting. 21034 21035 [doc] Slightly modified faq.xsl to avoid libxslt bug 377440, and 21036 moved the addition of special CSS comments for XML compatibility 21037 from update-faq to faq.xsl file. 21038 210392013-03-01 Vincent Lef��vre <vincent@vinc17.net> 21040 21041 [tests/tgamma.c] Avoid mpfr_set_d. 21042 21043 [tests/tfpif.c] Avoid mpfr_set_d as the results may depend on the C 21044 implementation. 21045 210462013-01-03 Vincent Lef��vre <vincent@vinc17.net> 21047 21048 [doc/mpfr.texi] Updated the month. 21049 21050 Copyright notice update: added 2013 with 21051 perl -pi -e 's/2012 Free Software/2012, 2013 Free Software/' **/*(^/) 21052 under zsh, reverting the ChangeLog file and the m4 directory 21053 (the tools/mbench directory was not modified). 21054 Removed 2012 from the example in the doc/README.dev file. 21055 21056 [configure.ac] Corrected comment on clock_gettime (from r8445). 21057 210582012-12-31 Vincent Lef��vre <vincent@vinc17.net> 21059 21060 Tuning: reverted changeset r8444 and applied patch by Patrick P��lissier 21061 for GMP 5.1.0 to link against librt conditionally. 21062 210632012-12-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21064 21065 [Makefile.am] -lrt is needed for clock_gettime() [undefined with GMP 5.1.0] 21066 210672012-12-21 Vincent Lef��vre <vincent@vinc17.net> 21068 21069 [tests/tfpif.c] Added a TODO. 21070 21071 [src/fpif.c] Added an assert on MPFR_PREC_MIN because the code seems 21072 to be based on this (always true with the current value). 21073 21074 [doc/mpfr.texi] Minor corrections of mpfr_fpif_import documentation. 21075 210762012-12-21 Olivier Demengeon <olivier.demengeon@inria.fr> 21077 21078 mpfr_fpif_import now check precision size. Documentation updated for mpfr_fpif_import. 21079 210802012-12-20 Vincent Lef��vre <vincent@vinc17.net> 21081 21082 Compatibility with GMP 5.1.0 when gmp-impl.h is included (thanks to Rob: 21083 https://sympa.inria.fr/sympa/arc/mpfr/2012-12/msg00003.html); clean-up. 21084 210852012-12-12 Vincent Lef��vre <vincent@vinc17.net> 21086 21087 [src/fpif.c] Added a FIXME comment in mpfr_fpif_import concerning the 21088 precision. 21089 210902012-12-11 Vincent Lef��vre <vincent@vinc17.net> 21091 21092 [src/fpif.c] Added comments. Fixed mpfr_fpif_read_precision_from_file 21093 in the case where the precision size > sizeof(mpfr_prec_t) and/or when 21094 the read precision is too large (as mpfr_prec_t is signed). 21095 210962012-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21097 21098 [fpif.c] completed FIXME 21099 211002012-12-08 Vincent Lef��vre <vincent@vinc17.net> 21101 21102 [src/fpif.c] Added a FIXME comment: large precisions read from the file 21103 can trigger undefined behavior if sizeof(mpfr_prec_t) is too small. 21104 211052012-12-07 Olivier Demengeon <olivier.demengeon@inria.fr> 21106 21107 Fixed stack overflow bug in fpif.c 21108 211092012-12-05 Vincent Lef��vre <vincent@vinc17.net> 21110 21111 [acinclude.m4,configure.ac] Moved the "double-to-integer conversion bug" 21112 test after the gmp.h detection as it uses gmp.h (otherwise one gets an 21113 incorrect error on this test if gmp.h can't be found or is unusable). 21114 211152012-12-03 Vincent Lef��vre <vincent@vinc17.net> 21116 21117 [doc/mpfr.texi] Removed a useless comma from r8428. 21118 21119 [doc/mpfr.texi] Updated the month. 21120 21121 [doc/mpfr.texi] Updated warning in mpfr_min_prec description, 21122 in particular for the use with mpfr_prec_round. 21123 211242012-10-17 Vincent Lef��vre <vincent@vinc17.net> 21125 21126 [src/set_uj.c] Change to help the compiler to detect dead code, 21127 improving the coverage (from a patch by Patrick P��lissier). 21128 21129 [src/get_d64.c] Added a const (thanks to Patrick P��lissier). 21130 211312012-10-10 Vincent Lef��vre <vincent@vinc17.net> 21132 21133 [acinclude.m4] Check struct lconv members (from <locale.h>) to avoid a 21134 build failure under Android, which does not have them; see 21135 https://sympa.inria.fr/sympa/arc/mpfr/2012-10/msg00002.html 21136 [src/mpfr-impl.h] Decimal point / thousands separator support can now be 21137 detected automatically by configure (from the presence of <locale.h> 21138 and the above members) or explicitly disabled/enabled by the user by 21139 defining the MPFR_LCONV_DPTS macro to 0 or 1 via CFLAGS (a configure 21140 switch might be added in the future). 21141 [tests/tsprintf.c] Do the locale_da_DK test only if MPFR_LCONV_DPTS is 21142 true. 21143 211442012-09-29 Vincent Lef��vre <vincent@vinc17.net> 21145 21146 [doc/README.dev] Note about GNU extensions and ICC. 21147 211482012-09-20 Vincent Lef��vre <vincent@vinc17.net> 21149 21150 [get_float128.c,set_float128.c] Avoid an empty translation unit 21151 (forbidden by ISO C, detected with gcc -ansi -pedantic-errors) 21152 when MPFR_WANT_FLOAT128 is not defined. 21153 21154 Applied patch (with minor changes) by Patrick P��lissier to improve 21155 the mpfr_round_nearest_away interface. 21156 211572012-09-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21158 21159 [nightly-test] modified so that decimal floats are tested (with gcc) 21160 211612012-09-05 Vincent Lef��vre <vincent@vinc17.net> 21162 21163 Removed trailing whitespace. 21164 21165 [doc/mpfr.texi] Updated the month. 21166 211672012-09-04 Vincent Lef��vre <vincent@vinc17.net> 21168 21169 [configure.ac] Improved error message when the compiler doesn't know 21170 _Decimal64 (if MPFR is built with --enable-decimal-float). 21171 211722012-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21173 21174 revert changeset r8412 (_Decimal64 might be defined in C++, but not as a macro) 21175 21176 updated documentation wrt --enable-decimal-float 21177 21178 added support for --enable-decimal-float with g++ (does not work with icpc, 21179 the Intel C++ compiler) 21180 21181 [tests/tl2b.c] fix for C++ 21182 211832012-09-04 Vincent Lef��vre <vincent@vinc17.net> 21184 21185 [src/set_d.c] Updated a comment on the negative zero. 21186 21187 [src/get_str.c] #include "mpfr-intmax.h" so that UINT64_C has a chance 21188 to be defined (optionally used as of r8406). 21189 211902012-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21191 21192 [src/set_d64.c] fix for systems where +0.0 and -0.0 are stored identically in 21193 memory 21194 21195 [src/set_d64.c] better code to detect -0.0 (copied from set_d.c) 21196 21197 [tests/tl2b.c] use UINT64_C for 64-bit integer constants 21198 [src/get_str.c] update table generated by "tests/tl2b 1" 21199 21200 [get_d64.c,set_d64.c] small fixes (did not work any more with --with-gmp-build) 21201 21202 [set_d64.c] some cleanup, since sprintf adds a final '\0', and fixed a too 21203 small memory allocation 21204 212052012-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21206 21207 [TODO] removed an item (done) 21208 21209 Now --enable-decimal-float does not require any more --with-gmp-build. 21210 Still disabled by default: some more testing is needed before we can enable 21211 it by default (if _Decimal64 is supported). 21212 212132012-08-29 Vincent Lef��vre <vincent@vinc17.net> 21214 21215 [tests/tstrtofr.c] Updated bug20120829 comment (bug fixed in r8396). 21216 21217 [tests/tstrtofr.c] Fixed small type error. 21218 212192012-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21220 21221 [strtofr.c] new try to fix the assertion failure on 32-bit 21222 212232012-08-29 Vincent Lef��vre <vincent@vinc17.net> 21224 21225 [tests/tstrtofr.c] Added more bug20120829 tests, showing that r8394 is 21226 still buggy on 32-bit machines (assertion failure in strtofr.c). 21227 212282012-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21229 21230 [strtofr.c] fix for failing test case introduced in r8392 21231 212322012-08-29 Vincent Lef��vre <vincent@vinc17.net> 21233 21234 [tests/tstrtofr.c] Updated a comment: the 2nd testcase of r8392 also 21235 triggers an assertion failure on 32-bit machines. 21236 21237 [tests/tstrtofr.c] Added 2 testcases: 21238 * One triggering an assertion failure in strtofr.c r8389 21239 on 32-bit machines (fixed in r8390). 21240 * One still triggering an assertion failure in strtofr.c (r8391) 21241 on 64-bit machines. 21242 212432012-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21244 21245 [strtofr.c] fixed comments 21246 212472012-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21248 21249 [strtofr.c] fix for err >= GMP_NUMB_BITS 21250 212512012-08-28 Vincent Lef��vre <vincent@vinc17.net> 21252 21253 [src/strtofr.c] Consistency correction: towards ��� toward. 21254 21255 [src/sin_cos.c] Consistency correction: towards ��� toward. 21256 21257 [doc] Updated FAQ.html with update-faq. 21258 212592012-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21260 21261 [strtofr.c] fixed bug in mpfr_strtofr in case: 21262 (1) the input string was used entirely 21263 (2) the conversion was done by a division 21264 (3) and the division was exact 21265 In such a case the "reconstruction" of the ternary value was 21266 inexact. 21267 212682012-08-16 Vincent Lef��vre <vincent@vinc17.net> 21269 21270 [src/get_d64.c] mpfr_get_decimal64 was buggy in MPFR_RNDN on some 21271 values x such that 0.5e-398 < |x| < 1e-398 (smallest subnormal): 21272 it was returning 0 instead of +/- 1e-398 (see r8370). 21273 [tests/tget_set_d64.c] Added testcases. 21274 212752012-08-15 Vincent Lef��vre <vincent@vinc17.net> 21276 21277 [src/get_d64.c] Fixed get_decimal64_max by simplifying it completely, 21278 and changed get_decimal64_min in the same way. 21279 Thanks to Rob (Sisyphus) for the idea. 21280 21281 [tests/tget_set_d64.c] Added overflow tests (they cover the two bad 21282 tests fixed in r8372 and trigger a bug in get_decimal64_max). 21283 21284 [tests/tget_set_d64.c] Added some tests for large numbers. 21285 21286 Renamed WANT_ASSERT to MPFR_WANT_ASSERT in order to avoid a clash 21287 with GMP when MPFR is configured with --with-gmp-build. 21288 212892012-08-14 Vincent Lef��vre <vincent@vinc17.net> 21290 21291 [src/get_d64.c] Fixed overflow cases. 21292 21293 [tests/tstrtofr.c] Added testcase from bug reported by Joseph S. Myers. 21294 212952012-08-13 Vincent Lef��vre <vincent@vinc17.net> 21296 21297 [src/get_d64.c] mpfr_get_decimal64 is buggy in MPFR_RNDN for values x 21298 such that 0.5e-398 < |x| < 1e-398. Added a FIXME comment. 21299 See: https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00002.html 21300 213012012-07-27 Vincent Lef��vre <vincent@vinc17.net> 21302 21303 [src/fpif.c] No longer assume that if HAVE_BIG_ENDIAN is not defined, 21304 the architecture is little endian. Detect the case where neither 21305 HAVE_BIG_ENDIAN nor HAVE_LITTLE_ENDIAN is defined (currently an 21306 error). 21307 [configure.ac] Fixed the use of AC_C_BIGENDIAN (since AC_CONFIG_HEADERS 21308 is not used, one must have an ACTION-IF-UNIVERSAL argument). 21309 [doc/README.dev] Check with "-UHAVE_BIG_ENDIAN -UHAVE_LITTLE_ENDIAN" 21310 (unknown/unspecified endianness) before a release. 21311 21312 [doc/README.dev] Update now that autogen.sh is in the repository. 21313 21314 Added autogen.sh sh script from Daniel Richard G. to install/update the 21315 autotools files and clean up caches (useful before a release). 21316 21317 Updated autotools files to get rid of obsolete macros (thanks to 21318 Daniel Richard G. for the patch; kept the autoconf requirement 21319 to 2.60 instead of changing it to 2.68 as done with autoupdate, 21320 since 2.60 seems to be sufficient according to the changes and 21321 2.68 is too recent, e.g. Debian/stable still has 2.67). 21322 --- Note --- 21323 This update has another effect: The "Configs for Windows DLLs." 21324 code (from "case $host in" to "esac") is now executed at the right 21325 time, after options like --disable-static are taken into account. 21326 Juste before this change, the test 21327 if test "$enable_shared" = yes; then 21328 was always false. This could be seen on hydra: 21329 With r8360: 21330 [...] 21331 configure flags: --disable-static --disable-dependency-tracking 21332 --prefix=/nix/store/95zhbb0v23syxsazx33hg3acbvixyq5a-mpfr-0-3.2.0-dev 21333 [...] 21334 checking for DLL/static GMP... static 21335 [...] 21336 checking whether to build shared libraries... yes 21337 checking whether to build static libraries... no 21338 [...] 21339 With r8367: 21340 [...] 21341 configure flags: --disable-static --disable-dependency-tracking 21342 --prefix=/nix/store/8zblwffd2ww1z0smqlgwrfzcl6b48rim-mpfr-0-3.2.0-dev 21343 [...] 21344 checking whether to build shared libraries... yes 21345 checking whether to build static libraries... no 21346 checking for DLL/static GMP... static 21347 [...] 21348 21349 [src/mpfr-intmax.h] Updated comment formatting so that mpfrlint 21350 doesn't complain. 21351 213522012-07-26 Vincent Lef��vre <vincent@vinc17.net> 21353 21354 [configure.ac] Replaced "sed" by "$SED". 21355 21356 [tools/mpfrlint] Check for sed. 21357 21358 [tools/mpfrlint] Check for grep, egrep and fgrep (see r8356 correction). 21359 213602012-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21361 21362 we use a 77-bit approximation in get_str.c (and not 76-bit) 21363 213642012-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21365 21366 [configure.ac] grep -> $EGREP (thanks Marc Glisse) 21367 https://sympa.inria.fr/sympa/arc/mpfr/2012-07/msg00006.html 21368 213692012-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21370 21371 [acinclude.m4] fix for cross-compilation 21372 213732012-07-24 Vincent Lef��vre <vincent@vinc17.net> 21374 21375 [acinclude.m4] Improved a message and corrected gmp.h inclusion. 21376 213772012-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21378 21379 [acinclude.m4] added test for double-to-integer conversion bug 21380 21381 revert r8349 (will do the test in configure) 21382 213832012-07-24 Vincent Lef��vre <vincent@vinc17.net> 21384 21385 Improved doc/mpfr.texi about MPFR_USE_INTMAX_T. 21386 21387 [src/mpfr-intmax.h] Define MPFR_USE_INTMAX_T if <inttypes.h> and/or 21388 <stdint.h> is available. This is needed on systems for which the 21389 current (non-standard) macro tests in mpfr.h is not sufficient. 21390 This will force the support of intmax_t/uintmax_t in this case and 21391 also avoids a failure in the tests on such systems. 21392 Tested by replacing the macro tests in mpfr.h by just 21393 #if defined (MPFR_USE_INTMAX_T) 21394 to simulate such a system. 21395 213962012-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21397 21398 [tinternals.c] added test for double -> mp_limb_t conversion 21399 214002012-07-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21401 21402 [mpfr.h] patch for FreeBSD (tested on gcc76.fsffrance.org with freebsd-83-amd64) 21403 214042012-07-10 Vincent Lef��vre <vincent@vinc17.net> 21405 21406 Added tools/announce-text sh script to be run before publishing an 21407 announce of a new GNU MPFR release (it does some checking, then it 21408 outputs the announce text to stdout). 21409 Mention this script in "doc/README.dev". 21410 21411 [doc/README.dev] Updated "To make a release". 21412 214132012-07-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21414 21415 [TODO] added item 21416 214172012-07-06 Vincent Lef��vre <vincent@vinc17.net> 21418 21419 [tests/{tset_d.c,tget_flt.c}] Disabled two tests when HAVE_SIGNEDZ 21420 isn't defined, because these tests rely on signed zeros. 21421 21422 [acinclude.m4] Added a test for signed zeros (tcc currently doesn't 21423 support signed zeros, and 2 MPFR tests fail because of that). 21424 21425 [acinclude.m4] Removed useless "#include <math.h>" in the test 21426 for subnormal numbers. 21427 21428 [acinclude.m4] Replaced the AC_TRY_RUN obsolete macro by 21429 AC_RUN_IFELSE([AC_LANG_SOURCE([[...]])],...) as documented 21430 in the GNU Autoconf manual. 21431 Minor correction in the test for subnormal numbers. 21432 21433 [tests] Added trndna to svn:ignore property. 21434 21435 [tests/tset_d.c] Formatting. 21436 21437 Replaced "denormalized" by the official term "subnormal". 21438 214392012-07-05 Vincent Lef��vre <vincent@vinc17.net> 21440 21441 [tools/coverage] unset MPFR_* environment variables in a better way. 21442 21443 [tools/coverage] unset MPFR_* environment variables in a better way. 21444 214452012-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21446 21447 [coverage] unset MPFR_* environment variables to get reproducible results 21448 21449 [tabort_defalloc2.c] changed char* into void* to please g++ compiler 21450 214512012-07-04 Vincent Lef��vre <vincent@vinc17.net> 21452 21453 [tests/trndna.c] Removed useless initialization. 21454 214552012-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21456 21457 [trndna.c] restore emin 21458 21459 [coverage] unset GMP_CHECK_RANDOMIZE so that the coverage test is deterministic 21460 214612012-07-04 Vincent Lef��vre <vincent@vinc17.net> 21462 21463 [doc/mpfr.texi] Replaced a "should not" by a "must not". 21464 21465 [doc/mpfr.texi] Consistency change. 21466 214672012-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21468 21469 [trndna.c] increase emin when smallest possible 21470 21471 [rndna.c] special treatment for the case 2^(emin-2) 21472 21473 several changes suggested by Vincent Lefevre 21474 21475 [rndna.c] changed the specification since on 32-bit machines we have no margin 21476 for the smallest exponent emin 21477 21478 added new function mpfr_round_nearest_away() as discussed during the June 2012 21479 workshop 21480 214812012-07-03 Vincent Lef��vre <vincent@vinc17.net> 21482 21483 [tools/coverage] Minor update, just in case... 21484 214852012-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21486 21487 [exp.c] fixed typo 21488 214892012-07-03 Vincent Lef��vre <vincent@vinc17.net> 21490 21491 [doc/mpfr.texi] Updated the month. 21492 21493 [tests/{td_div.c,tget_d.c}] Disable tests with a division by 0 if 21494 MPFR_ERRDIVZERO is defined. 21495 21496 [tests/tests.c] Improved an error message. 21497 21498 [acinclude.m4] Fixed sigaction check to support "gcc -std=c99", like 21499 what has been done for math/round. 21500 215012012-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21502 21503 [trndna.c] test file for mpfr_round_nearest_away() 21504 215052012-07-02 Vincent Lef��vre <vincent@vinc17.net> 21506 21507 [src/rndna.c] 21508 * Handle singular cases like with other functions. Avoid the goto. 21509 * Reordered the tests to make them simpler and easier to understand 21510 (it wasn't immediately visible that inex could not be 0 for the 21511 second "else") and fixed the case lastbit == 1 && inex < 0. 21512 21513 [src/rndna.c] Added a note saying that this method doesn't work 21514 for 2^(emin-2). 21515 215162012-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21517 21518 [rndna.c] new function that computes rounding to nearest-away 21519 215202012-06-28 Vincent Lef��vre <vincent@vinc17.net> 21521 21522 [tests/tprintf.c] Test the thousands separator in some en_US locale, 21523 if available (modified patch from Patrick). 21524 21525 Added coverage tune (from a patch by Patrick). 21526 215272012-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21528 21529 [mpfr.texi] added support by ERC grant of Andreas 21530 215312012-06-27 Vincent Lef��vre <vincent@vinc17.net> 21532 21533 [doc/mpfr.texi] Replaced a few @samp by @code for consistency. 21534 215352012-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21536 21537 [mpfr.texi] document MPFR_WANT_DECIMAL_FLOATS and MPFR_WANT_FLOAT128 21538 215392012-06-27 Vincent Lef��vre <vincent@vinc17.net> 21540 21541 [src/mulders.c] Clean-up and static assertions (patch from Patrick). 21542 21543 [tests/tgrandom.c] Replaced GMP_RNDN by MPFR_RNDN. 21544 21545 [tests/tgrandom.c] Improved a test and added a new one for 21546 mpfr_grandom(x, NULL, ...). 21547 21548 [doc/mpfr.texi] Completed spec of mpfr_grandom. 21549 215502012-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21551 21552 [coverage] added instructions how to use this script 21553 215542012-06-27 Vincent Lef��vre <vincent@vinc17.net> 21555 21556 [NEWS] Update: test coverage. 21557 21558 [tools/coverage] Detailed coverage (from a patch by Patrick). 21559 215602012-06-26 Vincent Lef��vre <vincent@vinc17.net> 21561 21562 [src/{mpfr-impl.h,print_raw.c}] Removed unused function mpfr_dump_mant 21563 (added in r3410, but never used); patch by Patrick. 21564 21565 [tests/tsin.c] Improved coverage. 21566 21567 [tests/tset.c] Test the mpfr_set function too (patch by Patrick). 21568 21569 Added configure option --enable-assert=none to avoid checking any 21570 assertion (this is based on a patch by Patrick). 21571 21572 [src/digamma.c] Correction: assertions must never have any side effect. 21573 21574 [tests] Updated svn:ignore property. 21575 21576 [src/atan.c] Removed trailing whitespace. 21577 21578 Forgot to add some files in r8266 (tests that are expected to fail). 21579 21580 Support tests that are expected to fail (from a patch by Patrick). 21581 21582 [tests/tversion.c] Output the applied patches (if any). 21583 21584 [tests/tstckintc.c] Correction and test improvement (from a patch 21585 by Patrick). 21586 21587 [tools/coverage] Correction by Patrick. 21588 215892012-06-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21590 21591 [atan.c] improved code coverage by removing some dead code after some numerical 21592 analysis with Benjamin Dadoun 21593 215942012-06-26 Vincent Lef��vre <vincent@vinc17.net> 21595 21596 [doc/README.dev] Removed obsolete "but see below". 21597 21598 [tests/tinternals.c] mpfr_set_prec_raw missing tests (thanks to Patrick). 21599 21600 [tests/tset_si.c] Also test the mpfr_set_ui function (instead of macro). 21601 21602 [NEWS] 3.2.0 will be "dinde aux marrons". 21603 216042012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21605 21606 [gamma.c] simplified mpfr_gamma_1_minus_x_exact() after code coverage analysis 21607 with Benjamin Dadoun 21608 216092012-06-25 Vincent Lef��vre <vincent@vinc17.net> 21610 21611 [configure.ac] aclocal -> acinclude.m4 in a comment. 21612 21613 [src/{init2.c,mpfr-impl.h}] Clean-up. 21614 216152012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21616 21617 [TODO] removed one item, added one 21618 216192012-06-25 Vincent Lef��vre <vincent@vinc17.net> 21620 21621 [acinclude.m4] Detect whether _Thread_local (C11) is supported. 21622 [src/mpfr-thread.h] Use _Thread_local if supported, instead of __thread. 21623 (Patch from Patrick) 21624 216252012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21626 21627 [gamma.c] simplified code for mpfr_gamma_2_minus_x_exact() (thanks to coverage 21628 analysis by Benjamin Dadoun) 21629 216302012-06-25 Vincent Lef��vre <vincent@vinc17.net> 21631 21632 [src/Makefile.am] Added mpfr-sassert.h to libmpfr_la_SOURCES. 21633 21634 [src/init2.c] Replaced classic assertions by static assertions. 21635 21636 Added Static Assertion support (modified patch from Patrick). 21637 * Added src/mpfr-sassert.h: implementation of static assertions. 21638 * src/mpfr-impl.h: include "mpfr-sassert.h". 21639 * acinclude.m4: test whether static assertions are supported. 21640 21641 [doc/README.dev] Suggest to test with and without -std=c11. 21642 21643 [tests/tset_float128.c] Test the sign of 0. Use mpfr_equal_p instead of 21644 mpfr_cmp (this is safer if a result is NaN). 21645 21646 [src/set_float128.c] Avoid a goto (useless here, contrary to set_ld.c). 21647 21648 [src/get_float128.c] !MPFR_IS_ZERO -> MPFR_NOTZERO; GNU coding style. 21649 21650 tests: updated svn:ignore property. 21651 21652 [tests/tset_float128.c] Got rid of the remaining mpfr_printf's. 21653 216542012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21655 21656 [tset_float128.c] added missing empty main when functions are not tested 21657 21658 [set_float128.c,tset_float128.c] untabified and got rid of mpfr_printf 21659 216602012-06-25 Vincent Lef��vre <vincent@vinc17.net> 21661 21662 [NEWS] Added a period. 21663 21664 [doc/mpfr.texi] Updated the month. 21665 21666 [configure.ac] "configure --help" formatting for --enable-float128. 21667 216682012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21669 21670 compile mpfr_set_float128 and mpfr_get_float128 only when __float128 is supported 21671 21672 [configure.ac] __float128 is supported by GCC >= 4.3 21673 216742012-06-25 Vincent Lef��vre <vincent@vinc17.net> 21675 21676 [tests/tset_float128.c] mp_rnd_t -> mpfr_rnd_t 21677 216782012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21679 21680 added new functions mpfr_set_float128 and mpfr_get_float128 21681 21682 [get_ld.c] fixed typo 21683 216842012-06-25 Vincent Lef��vre <vincent@vinc17.net> 21685 21686 [tests/tversion.c] Test mpfr_buildopt_tune_case() vs MPFR_TUNE_CASE. 21687 21688 [src/buildopt.c] Made mpfr_buildopt_tune_case() simpler. 21689 216902012-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21691 21692 [li2.c] replaced mpfr_cmp_d by mpfr_cmp_ui_2exp 21693 216942012-06-21 Vincent Lef��vre <vincent@vinc17.net> 21695 21696 [tests/tset_ld.c] For _GMP_IEEE_FLOATS, use #if instead of #ifdef 21697 since mpfr-impl.h defines it to 0 if it was undefined. 21698 216992012-05-18 Vincent Lef��vre <vincent@vinc17.net> 21700 21701 [TODO] Added a reference to a new discussion concerning __float128. 21702 217032012-05-14 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 21704 21705 * Other corrections (essentially bad or missing declarations) in metaMPFR. 21706 217072012-05-11 Vincent Lef��vre <vincent@vinc17.net> 21708 21709 [doc/mpfr.texi] Improved the description of the mpfr_flags_ functions. 21710 217112012-05-10 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 21712 21713 * Corrected small errors. 21714 217152012-05-10 Vincent Lef��vre <vincent@vinc17.net> 21716 21717 [doc/mpfr.texi] Improved mpfr_flags_test description, giving an example. 21718 21719 [src/mpfr.h] Define MPFR_FLAGS_ALL from the individual flags 21720 (MPFR_FLAGS_UNDERFLOW...). Suggestion by Paul Zimmermann. 21721 Note: the output expression looks OK in assertion failures. 21722 21723 [doc/mpfr.texi] Correction on mpfr_clear_flags description. 21724 217252012-05-09 Vincent Lef��vre <vincent@vinc17.net> 21726 21727 Added functions that operate on groups of flags: mpfr_flags_clear, 21728 mpfr_flags_set, mpfr_flags_test, mpfr_flags_save and mpfr_flags_restore. 21729 (reintegrated flags branch to the trunk: svn merge --reintegrate ...) 21730 217312012-05-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21732 21733 patch from Nitin A Kamble for automake 1.12. 21734 This patch avoids these issues with automake 1.12: 21735 | configure.ac:304: error: automatic de-ANSI-fication support has been removed 21736 | tests/Makefile.am:12: error: automatic de-ANSI-fication support has been removed 21737 217382012-05-07 Vincent Lef��vre <vincent@vinc17.net> 21739 21740 [AUTHORS,INSTALL,doc/mpfr.texi] Updated the e-mail address of the 21741 MPFR mailing-list to match the List-* headers written by the new 21742 mailing-list server (the old one still works, but may lead to bad 21743 interaction with MUA's that attempt to honor the List-Post header 21744 when replying to the list(s)). 21745 21746 [src/lngamma.c] Added mpfr_explgamma internal function to handle 21747 overflows/underflows (intermediate or not) in mpfr_gamma. 21748 Updated the general overflow detection to use this function. 21749 [src/gamma.c] Fixed the general underflow detection. 21750 21751 [src/lngamma.c] Removed spurious parentheses. 21752 21753 [tests/tgamma.c] Added tests for 32-bit and 64-bit machines, showing an 21754 underflow detection bug in gamma.c (see FIXME comment added in r8185). 21755 21756 [tests/tgamma.c] Added tests to trigger the pre-r8189 endless loop 21757 on 32-bit machines. 21758 217592012-05-04 Vincent Lef��vre <vincent@vinc17.net> 21760 21761 [tests/tgamma.c] Updated exp_lgamma to test the ternary value. 21762 21763 [src/lngamma.c] Fixed the problem with the overflow flag (r8192). 21764 21765 Improved src/lngamma.c (mainly on changes from r8189): 21766 * Declarations of ok variable were used in nested block. 21767 * Added a missing "MPFR_ZIV_FREE (loop);". 21768 * In the overflow detection code, call mpfr_lngamma only once, use 21769 mpfr_equal_p instead of mpfr_cmp, and share code with the end. 21770 Note: the problem with the overflow flag (r8192) hasn't been solved yet. 21771 21772 [tests/tgamma.c] Added a test showing a failure on 64-bit machines 21773 due to an unset overflow flag. 21774 21775 [tests/tgamma.c] Updated exp_lgamma to test underflow & overflow flags. 21776 21777 [TODO] For mpfr_get_flt, etc., exception flags should be raised. 21778 217792012-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21780 21781 [src/lngamma.c] fixed endless loop with test cases introduced in r8188 21782 217832012-05-03 Vincent Lef��vre <vincent@vinc17.net> 21784 21785 [tests/tgamma.c] Updated the exp_lgamma_tests test to trigger an 21786 endless loop due to undetected overflow on 64-bit machines. 21787 21788 [tests/tgamma.c] Say that the freeze is for 64-bit machines only. 21789 21790 [tests/tgamma.c] Added more mpfr_tgamma tests, showing a freeze. 21791 21792 [src/gamma.c] Corrected the FIXME comment concerning the underflow 21793 detection. 21794 21795 [src/gamma.c] Added a FIXME comment: the underflow detection may still 21796 be buggy (or the explanation is incomplete). 21797 21798 [src/gamma.c] Completed the explanation concerning the new underflow 21799 detection. 21800 21801 [src/gamma.c] Removed the FIXME comment (from r8169). 21802 21803 [src/gamma.c] Untabified. 21804 21805 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 21806 21807 [doc/mpfr.texi] Updated the month. 21808 218092012-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21810 21811 [gamma.c] tentative fix for the underflow problem 21812 218132012-05-03 Vincent Lef��vre <vincent@vinc17.net> 21814 21815 Updated URL's of mailing-list archives/messages in all files 21816 (except ChangeLog, as it is generated). 21817 21818 [TODO] Updated URL's of mailing-list archives/messages. 21819 218202012-05-02 Vincent Lef��vre <vincent@vinc17.net> 21821 21822 [TODO] Updated concerning MPFR_RNDNA. 21823 218242012-04-27 Vincent Lef��vre <vincent@vinc17.net> 21825 21826 [src/gamma.c] Added a FIXME comment. 21827 21828 [TODO] Suggested a new rounding mode: MPFR_RNDE, to be used when the 21829 result is known to be exact (normal mode: optimize; debug mode: check). 21830 21831 [src/gamma.c] Use the new MPFR_DBGRES macro. 21832 21833 [tests/tgamma.c] Improved testcase test20100709. 21834 21835 [tests/tgamma.c] Updated testcase test20100709 for 64-bit machines, 21836 as this bug reappeared in r8159. 21837 218382012-04-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21839 21840 [src/gamma.c] fixed bug found by Giridhar Tammana 21841 https://sympa.inria.fr/sympa/arc/mpfr/2012-04/msg00013.html 21842 Note (VL): this fix triggers an infinite loop on 32-bit machines 21843 (or with -m32) in test20100709 from tgamma.c and this is partly 21844 the opposite of changeset r6996. 21845 218462012-04-26 Vincent Lef��vre <vincent@vinc17.net> 21847 21848 [tests/texceptions.c] Added a comment for check_groups(). 21849 21850 [src/mpfr-impl.h] Improved the noreturn feature. 21851 218522012-04-25 Vincent Lef��vre <vincent@vinc17.net> 21853 21854 Added support for _Noreturn function specifier (ISO C11). 21855 * acinclude.m4: define MPFR_HAVE_NORETURN if _Noreturn is supported. 21856 * src/mpfr-impl.h: use _Noreturn when MPFR_HAVE_NORETURN is defined. 21857 Tested with GCC 4.6 (no _Noreturn) and 4.7 (supports _Noreturn). 21858 21859 [doc/README.dev] Added a note about the new experimental 21860 -ftrack-macro-expansion GCC option. 21861 218622012-04-24 Vincent Lef��vre <vincent@vinc17.net> 21863 21864 [doc/mpfr.texi] Small correction on the mpfr_flags_t description. 21865 21866 [src/mpfr-impl.h] Added MPFR_FLAGS_DIVBY0 (missing from r8143). 21867 21868 [src/mpfr-impl.h] Forgot to replace the mpfr_clear_divby0 internal macro 21869 by MPFR_CLEAR_DIVBY0 in r8141. 21870 218712012-04-23 Vincent Lef��vre <vincent@vinc17.net> 21872 21873 [src/ai.c] Use an intermediate variable to avoid a huge macro expansion 21874 in ASSERT_FAIL with gcc -ansi -pedantic-errors. 21875 (Merged changeset r8149 from the trunk) 21876 21877 [src/mpfr-impl.h] Added a comment concerning MPFR_INT_CEIL_LOG2 and 21878 macro expansion. 21879 21880 [src/ai.c] Use an intermediate variable to avoid a huge macro expansion 21881 in ASSERT_FAIL with gcc -ansi -pedantic-errors. 21882 21883 [tools/mpfrlint] Update after r8143. 21884 (Merged changeset r8147 from the trunk) 21885 21886 [tools/mpfrlint] Update after r8141. 21887 218882012-04-20 Vincent Lef��vre <vincent@vinc17.net> 21889 21890 [TODO] Removed item about saving/restoring flags. 21891 21892 [tests/texceptions.c] Added test of the mpfr_flags_* functions/macros. 21893 21894 [NEWS] New mpfr_flags_* functions. 21895 21896 Merged /trunk:r8141-8142 with a few manual changes due to conflict: 21897 replaced the flags-related mpfr_clear_* internal macros (which were 21898 already removed in this flags branch) by an uppercase version using 21899 a do-while in order to prevent one from using them in an expression. 21900 Renamed MPFR_SET_ERANGE to MPFR_SET_ERANGEFLAG for consistency. 21901 21902 [src/mpfr-impl.h] Improved comment about MPFR_CLEAR_* macros. 21903 21904 [src] Replaced the flags-related mpfr_clear_* internal macros by an 21905 uppercase version with a do-while in order to prevent one from using 21906 them in an expression. Renamed MPFR_SET_ERANGE to MPFR_SET_ERANGEFLAG 21907 for consistency. 21908 219092012-04-19 Vincent Lef��vre <vincent@vinc17.net> 21910 21911 Implemented the mpfr_flags_* functions (and mpfr_flags_test as a macro). 21912 The MPFR_FLAGS_* macros had to be moved from mpfr-impl.h to mpfr.h (as 21913 they are now part of the API). Check that MPFR_FLAGS_ALL <= INT_MAX (or 21914 similar) when need be. Removed the mpfr_clear_* macros and merged r8139 21915 (about the MPFR_SET_ERANGE macro) from the trunk due to a risk to break 21916 the sequence point rules. 21917 21918 [src/mpfr-impl.h] Use a do-while statement for the MPFR_SET_ERANGE() 21919 macro in order to prevent one from using this macro in an expression, 21920 as the sequence point rules could be broken if __gmpfr_flags is 21921 assigned twice in the same expression (via macro expansions). 21922 Note: This cannot be done for the mpfr_clear_* flags macros because 21923 we want to be able to follow the API inside MPFR (thus these macros 21924 must be usable wherever a function is). These macros should probably 21925 be removed or renamed in the future (e.g. via the flags branch). 21926 219272012-04-17 Vincent Lef��vre <vincent@vinc17.net> 21928 21929 [doc/mpfr.texi] Added documentation for the new functions on groups 21930 of flags (not implemented yet). 21931 219322012-04-11 Vincent Lef��vre <vincent@vinc17.net> 21933 21934 [TODO] Suggest mpfr_pow_q and variants. 21935 219362012-03-28 Vincent Lef��vre <vincent@vinc17.net> 21937 21938 [doc/mpfr.texi] Updated "API Compatibility" section: functions 21939 mpfr_fmodquo, mpfr_fpif_export and mpfr_fpif_import are new in 21940 MPFR 3.2. 21941 219422012-03-27 Vincent Lef��vre <vincent@vinc17.net> 21943 21944 [tests/tfpif.c] Removed trailing whitespace. 21945 219462012-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21947 21948 [src/fpif.c,tests/tfpif.c] changed to GNU style 21949 219502012-03-26 Olivier Demengeon <olivier.demengeon@inria.fr> 21951 21952 Add a test on FILE* in fpif.c; Added a missing test on a return value; Changed the way to compute number of bytes needed for the limb of a mpfr number; Increase coverage test of fpif.c 21953 219542012-03-26 Vincent Lef��vre <vincent@vinc17.net> 21955 21956 [src] New mpfr_flags_t type, defined as an unsigned int. For the 21957 __gmpfr_flags variable and internal flags-related variables, 21958 replaced unsigned int by mpfr_flags_t (note that this doesn't 21959 change the ABI, since unsigned int was already used). 21960 [tests] Cast __gmpfr_flags to unsigned int when printed with %u. 21961 219622012-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21963 21964 added new function mpfr_fmodquo 21965 (cf https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00020.html) 21966 219672012-03-26 Vincent Lef��vre <vincent@vinc17.net> 21968 21969 [src/mpfr-examples/version.c] Output sizeof(mpfr_t) value. 21970 21971 [tests/tests.c] Improved src_fopen() a bit. 21972 21973 [doc/README.dev] Explain the use of the new MPFR_DBGRES macro. 21974 21975 [src/mpfr-impl.h] Added a MPFR_DBGRES macro to avoid a warning in 21976 non-debug mode, e.g. with GCC's -Wunused-but-set-variable, when a 21977 result is tested only in an MPFR_ASSERTD expression. 21978 [src/const_euler.c] Avoid such a warning by using MPFR_DBGRES. 21979 21980 MPFR_ASSERTD or MPFR_ASSERTN must be used for assertions, not ASSERT. 21981 219822012-03-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21983 21984 [tests/tests.c] fixed problem with src_fopen 21985 (https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00021.html) 21986 21987 [tests/Makefile.am] inp_str.data -> inp_str.dat 21988 21989 renamed tests/inp_str.data into tests/inp_str.dat 21990 [tests/tinp_str.c] now use tests/inp_str.dat 21991 [tests/tfpif.c] use src_fopen instead of fopen 21992 21993 [src/fpif.c] simplified &x[i] into x+i 21994 21995 [src/mparam_h.in] better recognition of AMD64 systems 21996 [tools/cfarm.sh] updated 21997 21998 [tests.c] fixed compiler warning (gcc70.fsffrance.org, NetBSD, gcc 4.1.3) 21999 220002012-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22001 22002 [fpif.c] simplified code since nb_data is always 1 22003 22004 [mparam_h.in] recognize __tune_amdfam10__ (for example gcc10.fsffrance.org) 22005 22006 [configure.ac] use AC_C_BIGENDIAN to determine endianness of words 22007 22008 [tests/Makefile.am] the name of the test file for the export/import functions has changed 22009 220102012-03-19 Vincent Lef��vre <vincent@vinc17.net> 22011 22012 tests: updated svn:ignore property. 22013 22014 [src/mpfr.h] Indentation. 22015 220162012-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22017 22018 changed the order of arguments of mpfr_fpif_import so that the modified 22019 argument is first 22020 22021 [NEWS] updated item about the new mpfr_fpif_export and mpfr_fpif_import functions 22022 22023 mpfr_fpif_export_binary -> mpfr_fpif_export 22024 mpfr_fpif_import_binary -> mpfr_fpif_import 22025 22026 stream.data renamed to mpfrtest.dat 22027 [tfpif.c] now use remove() 22028 220292012-03-19 Vincent Lef��vre <vincent@vinc17.net> 22030 22031 [doc/mpfr.texi] "in future version" ��� "in future versions". 22032 22033 [doc/mpfr.texi] Updated the month. 22034 22035 [src/fpif.c,tests/tfpif.c] Corrected coding style. 22036 220372012-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22038 22039 [src/fpif.c] fixed a few warnings and errors with g++ (found on hydra) 22040 220412012-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22042 22043 [out_raw.c] removed obsolete file (replaced by fpif.c) 22044 22045 [tests/Makefile.am] put tfpif at its right place 22046 22047 [src/fpif.c] fixed problem with sign on gcc38 22048 [tests/tfpif.c] solved FIXME's, added new test with fixed data file 22049 [tests/stream.data] data file for tfpif.c (to check we get same results with 22050 different word size and endianness) 22051 [tests/Makefile.am] added stream.data to make dist 22052 22053 [fpif.c] added comments 22054 [tfpif.c] improve error message in case of mismatch 22055 [acinclude.m4] forgot double-double big endian 22056 22057 [mpfr.texi] added note saying that mpfr_fpif_export_binary and 22058 mpfr_fpif_import_binary are experimental 22059 22060 [mpfr.texi] added documentation for mpfr_fpif_export_binary and mpfr_fpif_import_binary 22061 22062 [fpif.c] replaced sizeof(var) by sizeof(type) 22063 220642012-03-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22065 22066 [fpif.c] fixed a few issues 22067 22068 [src/fpif.c,src/mpfr.h,tests/tfpif.c] a few fixes so that make and make check 22069 pass on one machine. Will fix the 22070 remaining issues later. 22071 220722012-03-15 Vincent Lef��vre <vincent@vinc17.net> 22073 22074 Added FIXME for export/import MPFR numbers, did some corrections, 22075 updated NEWS file. 22076 22077 [doc/README.dev] Update about C headers. 22078 220792012-03-15 Olivier Demengeon <olivier.demengeon@inria.fr> 22080 22081 Add copyright material in fpif.c and test_fpif.c 22082 22083 Add functions/tests to export/import mpfr number in a binary format 22084 220852012-03-13 Vincent Lef��vre <vincent@vinc17.net> 22086 22087 Improved mpfr_check and added a missing testcase. 22088 220892012-03-09 Vincent Lef��vre <vincent@vinc17.net> 22090 22091 [doc/README.dev] Corrected information about valgrind. 22092 22093 [src/mpfr-impl.h] Updated a comment. 22094 22095 [src/mpfr-impl.h] Improved macros from the changeset r8025, in 22096 particular to avoid an error with the --enable-assert configure 22097 option and the -ansi -pedantic-errors gcc compiler flags. 22098 220992012-03-08 Vincent Lef��vre <vincent@vinc17.net> 22100 22101 [tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1 again, 22102 and improved it in case _MPFR_PREC_FORMAT == 2, where MPFR_PREC_MAX is 22103 INT_MAX minus some small constant (see r8035). 22104 22105 [tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1. 22106 22107 [tests/tinits.c] Improved the large precision test so that it is still 22108 performed after r8035 (where MPFR_PREC_MAX has been decreased). 22109 22110 [tests/tconst_log2.c] Replaced mpfr_printf by mpfr_out_str. 22111 221122012-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22113 22114 [tconst_log2.c] use hexadecimal output in case of error in check_large() 22115 22116 [get_ld.c] added comments and ASSERT() 22117 [tset_ld.c] added test to better exercise get_ld and set_ld for subnormals, 22118 and replaced some 64 by MPFR_LDBL_MANT_DIG 22119 221202012-03-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22121 22122 [tconst_log2.c] improved error message, cf 22123 https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00017.html 22124 22125 [get_ld.c] deal with the case "long double" == "double" 22126 22127 [acinclude.m4] deal with long double == double 22128 [src/set_ld.c] idem 22129 221302012-03-07 Vincent Lef��vre <vincent@vinc17.net> 22131 22132 [NEWS] Prepare for new version 3.2.0 (will be 4.0.0). 22133 22134 [INSTALL] Added information about --with-sysroot. 22135 22136 [INSTALL] Removed an obsolete paragraph saying that the test suite 22137 can't be run with a C++ compiler. C++ related problems have been 22138 fixed a long time ago. 22139 221402012-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22141 22142 [TODO] added new item about saving/restoring flags 22143 22144 added tuning parameters for mips (on gcc49.fsffrance.org) 22145 221462012-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22147 22148 [tuneup.c] fixed compiler warning (got on gcc49.fsffrance.org) 22149 221502012-03-05 Vincent Lef��vre <vincent@vinc17.net> 22151 22152 [src/mpfr.h] Minor change to be consistent with "src/mpfr-gmp.h". 22153 22154 [src/mpfr.h] Added a reference to MPFR bug 13947. 22155 22156 [src/mpfr.h] Simple temporary fix following GMP's internal __gmp_const 22157 macro removal in <https://gmplib.org/repo/gmp/rev/d287cfaf6732> (and its 22158 replacement by const): if __gmp_const isn't define, let's define it to 22159 const. 22160 221612012-03-03 Vincent Lef��vre <vincent@vinc17.net> 22162 22163 [NEWS] Mention the mpfr_exp bug fix (from r6964 in exp_2.c). 22164 221652012-02-27 Vincent Lef��vre <vincent@vinc17.net> 22166 22167 [configure.ac] If 'gmp.h' and 'libgmp' seem to have different versions, 22168 output the temporary LD_RUN_PATH value (may be useful for debugging). 22169 221702012-02-24 Vincent Lef��vre <vincent@vinc17.net> 22171 22172 [tests] Removed #include of headers already included via "mpfr-test.h" 22173 (<limits.h>, <stdio.h>, <stdlib.h>). Note: this change doesn't apply 22174 to tvalist.c, which is a special test that doesn't use "mpfr-test.h". 22175 22176 [src] #include <stdlib.h> unconditionally in mpfr-impl.h; removed 22177 this #include from the .c files. 22178 22179 [src/logging.c] #include <stdarg.h> was no longer necessary. Removed. 22180 22181 [src/logging.c] Updated a comment (contained obsolete information). 22182 22183 [src/mpfr-impl.h] Use %.*Rg instead of %.*Rf for MPFR_LOG_VAR. 22184 22185 [NEWS] Mention an internal change in MPFR 3.1.0. 22186 22187 Corrected a typo in MPFR_LOG_FUNC of add_d.c, add_ui.c and mul_d.c 22188 (mpfr_get_prec ��� mpfr_log_prec), fixing bug 13933. 22189 The consequence was random freezes (on the same binary) with dynamic 22190 linking (and just more memory with static linking to the MPFR library) 22191 when logging was used. 22192 22193 [src/const_euler.c] Use the safer MPFR_BLOCK. 22194 221952012-02-23 Vincent Lef��vre <vincent@vinc17.net> 22196 22197 [src/const_euler.c] Removed a useless log message added in r8040. 22198 22199 [src/const_euler.c] Replaced computations on double by computations 22200 on MPFR types, with detection of overflows. Fixed inconsistencies 22201 with algorithms.tex (due to rounding) in the computation of n. 22202 [src/mpfr-impl.h] Removed #define ALPHA (no longer used). 22203 22204 [src/mpfr-impl.h] Removed obsolete #define EXPM1. 22205 22206 [src/erf.c] Removed an obsolete #define. 22207 22208 [BUGS] Update concerning huge precisions and integer overflows. 22209 22210 [examples/version.c] Output mpfr_prec_t information with all MPFR 22211 versions. Output signedness information for MPFR types/macros. 22212 22213 [src/mpfr.h] Decrease the MPFR_PREC_MAX value by 256 in order to 22214 avoid some integer overflows in existing code that increases the 22215 working precision (if mpfr_prec_t is on 64 bits, this does not 22216 change anything in practice), as too large precisions should be 22217 detected via assertions for more security. After discussion, it 22218 has been decided to keep the MPFR_PREC_MAX value close to 2^31 22219 when mpfr_prec_t is on 32 bits. 22220 [src/mpfr-impl.h] Added a comment concerning MPFR_ADD_PREC. 22221 22222 [examples/version.c] Output more information about the precision and 22223 exponent types. 22224 222252012-02-22 Vincent Lef��vre <vincent@vinc17.net> 22226 22227 [src/mpfr-impl.h] Use MPFR_ADD_PREC in MPFR_ZIV_NEXT. 22228 22229 [src/mpfr-impl.h] Added an MPFR_ADD_PREC macro to safely increase some 22230 precision (i.e. with an assertion check for integer overflow). 22231 [src/ai.c] Use this MPFR_ADD_PREC macro, in particular in a case where 22232 the additional precision can be huge. 22233 TODO: Other files would need to use MPFR_ADD_PREC. 22234 22235 [tests/tinits.c] Updated the large precision test to trigger a bug fixed 22236 in r8025 on 32-bit machines (or when MPFR is built with -m32). Here the 22237 crash was due to (MPFR_PREC (b) + GMP_NUMB_BITS-1)/GMP_NUMB_BITS in 22238 "src/set.c". 22239 22240 [src/rec_sqrt.c] Removed useless #include (mpfr-impl.h does a better job 22241 for stdio). 22242 22243 [tests/tinits.c] Improved r8026 (missing #include, support 16-bit prec). 22244 22245 Document the MPFR_DEBUG_BADCASES environment variable before bad_cases() 22246 in tests/tests.c (where it is used). Remove it from "doc/README.dev" 22247 since it is useful only in case of crash / infinite loop in bad_cases(), 22248 and will give useless output otherwise. 22249 222502012-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22251 22252 [TODO] added comment 22253 [doc/README.dev] added environment variables 22254 22255 [tinits.c] added test to check #13918 is fixed 22256 222572012-02-22 Vincent Lef��vre <vincent@vinc17.net> 22258 22259 Avoid potential integer overflows and improve consistency. This should 22260 fix bug #13918 "Segfault with precision = MPFR_PREC_MAX on 32-bit". 22261 Note: this problem appeared in MPFR 3.0.0 when the precision type (now 22262 mpfr_prec_t) was changed to a signed integer. 22263 22264 [configure.ac] Added a comment mentioning a problem with GNU gold ld. 22265 222662012-02-15 Vincent Lef��vre <vincent@vinc17.net> 22267 22268 [TODO] Added reference to ISO/IEC 24747:2009 (C, special functions). 22269 222702012-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22271 22272 removed directory src/x86_64/xeon 22273 [src/Makefile.am] removed x86_64/xeon/mparam.h 22274 222752012-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22276 22277 share parameters between x86_64/core2 and x86_64/xeon (gcc70) 22278 22279 [src/Makefile.am] forgot to add new param file 22280 22281 added tuning parameters for -mtune=nocona (gcc70) 22282 222832012-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22284 22285 [mparam_h.in] swap tests for 32-bit and 64-bit powerpc, since on powerpc64 22286 the parameters for 32-bit are used! 22287 222882012-01-15 Vincent Lef��vre <vincent@vinc17.net> 22289 22290 [doc/README.dev] Updated "To make a release". 22291 222922012-01-10 Vincent Lef��vre <vincent@vinc17.net> 22293 22294 [TODO] Added a note to item about sNaN/qNaN. 22295 22296 [doc/mpfr.texi] Updated the month. 22297 22298 [doc/mpfr.texi] Mention the AriC project-team. 22299 22300 Reverted incorrect change in ChangeLog from r7993. 22301 22302 Changed Arenaire to AriC with: 22303 perl -pi -e 's/Contributed by the Arenaire/Contributed by the AriC/' **/*(^/) 22304 under zsh. 22305 22306 [doc] Updated FAQ.html with update-faq. 22307 22308 [doc/faq.xsl] Remove only the top-level comments from the HTML file. 22309 22310 [doc/faq.xsl] Updated a comment. 22311 22312 Copyright notice update: added 2012 with 22313 perl -pi -e 's/2011 Free Software/2011, 2012 Free Software/' **/*(^/) 22314 under zsh, reverting the ChangeLog file (the m4 and tools/mbench 22315 directories were not modified). 22316 Removed 2011 from the example in the doc/README.dev file. 22317 223182011-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22319 22320 [TODO] trivial change (to test the commit logs) 22321 223222011-12-09 Vincent Lef��vre <vincent@vinc17.net> 22323 22324 [configure.ac] Mention --disable-thread-safe. 22325 22326 [INSTALL] Added information about system/compiler bugs related to TLS 22327 or optimizations. 22328 223292011-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22330 22331 [INSTALL] added note about buggy TLS support 22332 223332011-11-28 Vincent Lef��vre <vincent@vinc17.net> 22334 22335 [tests/turandom.c] Removed an obsolete comment. 22336 22337 [src/mpfr-gmp.h] Updated the TODO comment about the rand state. 22338 22339 [doc/mpfr.texi] Updated the month. 22340 22341 [tests/trandom.c,tests/turandom.c] Fixed compatibility with GMP 4.1.x 22342 (since the default PRNG has changed between GMP 4.1 and 4.2). 22343 22344 [doc/mpfr.texi] Mentioned the difference between GMP 4.1 and 4.2 about 22345 the changes of mpfr_urandom and mpfr_urandomb in MPFR 3.1. 22346 22347 [src/mpfr-gmp.h] Added a TODO comment. 22348 223492011-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22350 22351 revert previous commit (test) 22352 22353 commit test 22354 223552011-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22356 22357 [src/mpfr-thread.h] added pointer to TLS on Windows 22358 223592011-11-09 Vincent Lef��vre <vincent@vinc17.net> 22360 22361 [tests/tsprintf.c] Added a test showing a regression in MPFR 3.1.0 22362 (but fixed in r7931 and later). 22363 223642011-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22365 22366 [tests/tatan.c] mpfr_set_emin -> set_emin (idem for emax) 22367 223682011-11-09 Vincent Lef��vre <vincent@vinc17.net> 22369 22370 [TODO] Added a reference to an old discussion concerning __float128. 22371 223722011-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22373 22374 [TODO] added item 22375 223762011-11-03 Vincent Lef��vre <vincent@vinc17.net> 22377 22378 [src/vasprintf.c] Untabify. 22379 223802011-11-03 Philippe Th��veny <philippe.theveny@laposte.net> 22381 22382 [src/vasprintf.c] Corrected a comment. 22383 223842011-11-03 Vincent Lef��vre <vincent@vinc17.net> 22385 22386 [tests/tsprintf.c] Coding style. 22387 223882011-11-02 Vincent Lef��vre <vincent@vinc17.net> 22389 22390 [src/strtofr.c] Spelling. 22391 22392 [src/vasprintf.c] Spelling. 22393 22394 [src/vasprintf.c] Corrected a comment. 22395 22396 [tests/tsprintf.c] Added tests. 22397 22398 [src/vasprintf.c] Untabify. Minor correction in a comment. 22399 224002011-11-02 Philippe Th��veny <philippe.theveny@laposte.net> 22401 22402 [src/vasprintf.c] Rewrite in a cleaner way the part of regular_fg implied in the bug reported by Pavel Holoborodko (see r7931). 22403 224042011-11-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22405 22406 [src/mpn_exp.c] changed FIXME into TODO 22407 22408 [src/mpn_exp.c] added comment 22409 [src/vasprintf.c] (hopefully) fixed bug reported by Pavel Holoborodko 22410 [tests/tsprintf.c] added corresponding test case 22411 224122011-10-14 Vincent Lef��vre <vincent@vinc17.net> 22413 22414 [tests/Makefile.am] Added -L$(top_builddir)/src/.libs to AM_LDFLAGS. 22415 [INSTALL] Removed the notes on HP-UX (obsolete after the above change). 22416 224172011-10-13 Vincent Lef��vre <vincent@vinc17.net> 22418 22419 [INSTALL] Corrected notes for HP-UX. 22420 22421 [INSTALL] Added notes for HP-UX after a bug report. See discussion: 22422 https://sympa.inria.fr/sympa/arc/mpfr/2011-10/msg00042.html 22423 224242011-10-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22425 22426 [TODO] added one item 22427 22428 [corei5/mparam.h] tuning files for Core i5 (not yet used since GMP 5.0.2 does 22429 currently recognize Core i5 as "k8", however the k8 tuning 22430 parameters are not so bad for Core i5) 22431 224322011-10-05 Vincent Lef��vre <vincent@vinc17.net> 22433 22434 [src/mpfr-impl.h] Improved MPFR_IS_PURE_FP definition, so that 22435 MPFR_ASSERTD takes a boolean (0 or 1). 22436 224372011-10-04 Vincent Lef��vre <vincent@vinc17.net> 22438 22439 [src/mpfr-impl.h] Fixed a bug in the MPFR_UNLIKELY macro for GCC 22440 (found under Mac OS X / PowerPC with the mode32 GMP ABI, and MPFR 22441 built with --enable-assert=full). 22442 (Merged changeset r7908 from the 3.1 branch.) 22443 224442011-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22445 22446 [doc/mpfr.texi] added reference and comment for eint 22447 224482011-09-25 Vincent Lef��vre <vincent@vinc17.net> 22449 22450 [doc/mpfr.texi] Rephrased mpfr_frexp description. 22451 224522011-09-24 Vincent Lef��vre <vincent@vinc17.net> 22453 22454 Renamed "division-by-zero" to "divide-by-zero" (term used by the 22455 ISO C99 standard, the IEEE 754-2008 standard using divideByZero, 22456 and the old IEEE 754-1985 standard using both "divide by zero" 22457 and "division by zero"). 22458 22459 [src/gmp_op.c] Forgot to update the flags in some functions. 22460 22461 [tests/tgmpop.c] Improved division-by-zero tests. 22462 224632011-09-23 Vincent Lef��vre <vincent@vinc17.net> 22464 22465 [doc/faq.xsl] Added a comment about the MPFR logo. 22466 224672011-09-22 Vincent Lef��vre <vincent@vinc17.net> 22468 22469 [doc/mpfr.texi] Improved mpfr_frexp description. 22470 22471 [doc/mpfr.texi] Corrected typo in the mpfr_frexp description. 22472 224732011-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22474 22475 [tools/cfarm.sh] updated for MPFR 3.1.0 rc2 22476 224772011-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22478 22479 [cfarm.sh] updated for MPFR 3.1.0-rc1 (with GMP 5.0.2) 22480 224812011-09-20 Vincent Lef��vre <vincent@vinc17.net> 22482 22483 [examples/version.c] Output mpfr_buildopt_gmpinternals_p() and 22484 mpfr_buildopt_tune_case() values with MPFR 3.1 or later. 22485 22486 Renamed mpfr_buildopt_internals_p to mpfr_buildopt_gmpinternals_p. 22487 22488 Added mpfr_buildopt_internals_p function. 22489 22490 [doc/mpfr.texi] Added commas. 22491 22492 [src/gmp_op.c] Handle the special cases in mpfr_cmp_q and mpfr_cmp_f. 22493 224942011-09-19 Vincent Lef��vre <vincent@vinc17.net> 22495 22496 [TODO] Added an item about the minimum and maximum exponents. 22497 22498 [src/agm.c] Replaced MPFR_EMIN_MIN and MPFR_EMAX_MAX by MPFR_EXT_EMIN 22499 and MPFR_EXT_EMAX respectively (see r7862 and r7863). 22500 22501 [src/mpfr-impl.h] Define new macros MPFR_EXT_EMIN and MPFR_EXT_EMAX. 22502 [doc/README.dev] Document how to specify the minimum exponent or the 22503 maximum exponent. 22504 225052011-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22506 22507 [src/agm.c] replaced __gmpfr_emax by MPFR_EMAX_MAX (same for __gmpfr_emin). 22508 Solves bug on gcc54 with --enable-thread-safe and GCC 4.3.2. 22509 225102011-09-19 Vincent Lef��vre <vincent@vinc17.net> 22511 22512 [src/mpfr-gmp.h] Added missing prototype for __gmpn_sbpi1_divappr_q 22513 (it could be detected when building MPFR with g++). 22514 225152011-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22516 22517 [tests/tgmpop.c] check for erange flag in mpfr_cmp_[f,q,z] 22518 (https://sympa.inria.fr/sympa/arc/mpfr/2011-09/msg00013.html) 22519 225202011-09-19 Vincent Lef��vre <vincent@vinc17.net> 22521 22522 [doc/README.dev] Updated "To make a release". 22523 225242011-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22525 22526 [src/mpfr-gmp.h] fixed bug with --enable-gmp-internals introduced in r7455 22527 (mpfr_limb_ptr is not yet defined when reading mpfr-gmp.h 22528 thus we can't use it) 22529 225302011-09-19 Vincent Lef��vre <vincent@vinc17.net> 22531 22532 [doc/mpfr.texi] Correction: "5 exception types" ��� "6 exception types" 22533 (thanks to Case Vanhorsen for the report). 22534 225352011-09-14 Vincent Lef��vre <vincent@vinc17.net> 22536 22537 [src/mpfr-impl.h] Define LONGLONG_STANDALONE before including 22538 mpfr-longlong.h so that udiv_qrnnd_preinv is defined (this is 22539 useful at least on IA64 when compiling without gmp-impl.h). 22540 Thanks to Patrick P��lissier for the fix. 22541 225422011-09-11 Vincent Lef��vre <vincent@vinc17.net> 22543 22544 [doc/mpfr.texi] Updated "API Compatibility" section: as of MPFR 3.1, 22545 the mpfr.h header can be included several times, while still supporting 22546 optional functions. 22547 22548 [doc/mpfr.texi] Replaced some @code by @file for consistency. 22549 22550 [doc/mpfr.texi] Updated "API Compatibility" section: functions 22551 mpfr_frexp, mpfr_grandom and mpfr_z_sub are new in MPFR 3.1. 22552 22553 [doc/mpfr.texi] Documented function mpfr_buildopt_tune_case, 22554 and added it to the list of added functions. 22555 [NEWS] Function mpfr_buildopt_tune_case is new in MPFR 3.1. 22556 22557 [doc/mpfr.texi] Updated "API Compatibility" section 22558 (new division-by-zero exception in MPFR 3.1). 22559 22560 [doc/mpfr.texi] Updated the month. 22561 22562 [doc/mpfr.texi] MPFR_RNDA was introduced in MPFR 3.0.0 and should 22563 no longer be considered experimental. 22564 225652011-09-10 Vincent Lef��vre <vincent@vinc17.net> 22566 22567 [tests/trec_sqrt.c] Fixed bug introduced in r7711 (build failure 22568 with a C++ compiler). 22569 22570 [TODO] Replaced "configure.in" by "configure.ac". 22571 22572 [doc/README.dev] Removed obsolete paragraph about AM_MAINTAINER_MODE. 22573 22574 [tools/mpfrlint] Correction after r7825. 22575 22576 [tools/mpfrlint] Run tools/ck-mparam. 22577 22578 Added tools/ck-mparam sh script to check the mparam.h files 22579 (gcc is needed). 22580 225812011-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22582 22583 [src/amd/k8/mparam.h] removed spurious end of comment 22584 225852011-09-09 Vincent Lef��vre <vincent@vinc17.net> 22586 22587 [doc/README.dev] For the valgrind example, use the same arguments 22588 as in gnulib's valgrind-tests.m4 file. 22589 22590 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 22591 22592 [Makefile.am] Added tools/ck-copyright-notice to EXTRA_DIST as it is 22593 used in dist-hook. 22594 [tools/ck-copyright-notice] Added copyright notice (since this file is 22595 distributed in the tarballs). Note: the first year is 2008 as a part 22596 of the code comes from r5370 in mpfrlint. 22597 22598 [tools/ck-copyright-notice] Skip src/mpfr-longlong.h as this file 22599 (which comes from GMP) has a specific copyright notice. 22600 22601 [src/mp_clz_tab.c] Updated the copyright notice. 22602 22603 [tools/ck-copyright-notice] Check that the first copyright year for 22604 the mparam.h files is 2005. 22605 22606 Added copyright notice to the mparam.h files (with the same years 22607 as in the template). 22608 22609 Added tools/ck-copyright-notice sh script from mpfrlint (updated) to 22610 check that copyright notices exist and appear to be correct. Updated 22611 tools/mpfrlint to run tools/ck-copyright-notice instead of its old 22612 test. In Makefile.am, run tools/ck-copyright-notice in dist-hook for 22613 "make dist". 22614 22615 [tools/mpfrlint] More files under src and tests directories. 22616 226172011-09-08 Vincent Lef��vre <vincent@vinc17.net> 22618 22619 [NEWS] Update for MPFR 3.1.x. 22620 22621 [tests/Makefile.am] 22622 * Added "AM_LDFLAGS = -no-install" to prevent libtool from generating 22623 wrapper scripts for the tests (according to discussions and tests, 22624 there should be no negative effects); useful for gdb and valgrind. 22625 * Added $(VALGRIND) to TESTS_ENVIRONMENT in order to easily run the 22626 tests under valgrind with: VALGRIND="valgrind -q" make check 22627 [doc/README.dev] Update for gdb and valgrind. 22628 226292011-08-31 Vincent Lef��vre <vincent@vinc17.net> 22630 22631 [doc/mpfr.texi] Improved the specification of mpfr_get_f. 22632 226332011-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22634 22635 [configure.ac] added comment about minimal GMP version 22636 22637 dummy change to check if GMP_CHECK_RANDOMIZE is now used in the Hydra 22638 builds on http://hydra.nixos.org/jobset/gnu/mpfr-trunk 22639 226402011-08-19 Vincent Lef��vre <vincent@vinc17.net> 22641 22642 [doc/mpfr.texi] Added some references to the ternary definition. 22643 226442011-08-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22645 22646 [doc/mpfr.texi] improved the documentation of mpfr_set_str, as suggested by 22647 Vincent Lefevre 22648 226492011-08-19 Vincent Lef��vre <vincent@vinc17.net> 22650 22651 [doc/mpfr.texi] Added "Ternary value" to the concept index. 22652 226532011-08-15 Vincent Lef��vre <vincent@vinc17.net> 22654 22655 [doc/README.dev] Added information on how to update the FAQ. 22656 22657 [doc] Updated FAQ.html with update-faq. 22658 226592011-08-12 Vincent Lef��vre <vincent@vinc17.net> 22660 22661 [tune/tuneup.c] Untabified. 22662 22663 [src/mulders.c] Replaced MPFR_ASSERTD by MPFR_ASSERTN on constant 22664 expressions (this is a temporary change, as they should later be 22665 replaced by static assertions). 22666 22667 [src/mulders.c] Replaced mp_ptr and mp_srcptr (internal to GMP) by 22668 mpfr_limb_ptr and mpfr_limb_srcptr. 22669 22670 [src/mpfr-gmp.h] Avoid potential identifier collision by using an 22671 underscore for variable names declared in the invert_pi1 macro. 22672 22673 [src/mpfr-gmp.h] Untabified. 22674 22675 [doc/mpfr.texi] Updated the month. 22676 226772011-08-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22678 22679 [k8/mparam.h] added comment 22680 22681 [x86/mparam.h] new tuning contributed by Jim Cloos 22682 [amd/amdfam10/mparam.h] added GMP version 22683 22684 [mpfr-gmp.h] use mpfr_pi1_t instead of gmp_pi1_t to avoid using GMP's namespace 22685 226862011-08-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22687 22688 [src/mulders.c] use mpn_sbpi1_divappr_q if available and WANT_GMP_INTERNALS 22689 is defined 22690 [src/mpfr-gmp.h] defined macros needed for mpfr_divhigh_n_basecase 22691 [configure.ac] check for mpn_sbpi1_divappr_q 22692 226932011-08-05 Vincent Lef��vre <vincent@vinc17.net> 22694 22695 Updated version to 3.2.0-dev. 22696 226972011-08-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22698 22699 [amdfam10/mparam.h] tuning parameters contributed by Jim Cloos 22700 22701 [mulders.c] added a basecase code for Mulders' short division 22702 [tuneup.c] added corresponding tuning code 22703 [TODO] added an item 22704 227052011-08-04 Vincent Lef��vre <vincent@vinc17.net> 22706 22707 [acinclude.m4] In the INTMAX_MAX test, no longer hardcode the 22708 "#include <stdint.h>" (for instance, this doesn't work under 22709 Solaris 9: INTMAX_MAX is defined only via <inttypes.h>), but 22710 include "mpfr-intmax.h" instead (needs a temporary CPPFLAGS). 22711 227122011-08-01 Vincent Lef��vre <vincent@vinc17.net> 22713 22714 [NEWS] Much faster formatted output (mpfr_printf, etc.) with %Rg and similar. 22715 22716 [doc/README.dev] Added copyright notice in case the file is distributed. 22717 22718 [doc/README.dev] Added information on how to run the MPFR test suite 22719 under valgrind. 22720 22721 Untabified and removed trailing spaces. 22722 22723 [tests/tversion.c] Improved output information. 22724 227252011-07-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22726 22727 [hppa/mparam.h] updated for new Mulders' division 22728 22729 [sparc64/mparam.h] updated for new Mulders' division 22730 22731 [powerpc64/mparam.h] updated for new Mulders' division 22732 22733 [ia64/mparam.h] updated for new Mulders' division 22734 22735 [amd/k8/mparam.h] updated for new Mulders' division 22736 22737 [x86/core2/mparam.h] updated thresholds for new Mulders' division 22738 22739 [mparam_h.in] changed the detection of 64-bit Core 2, and added 22740 MPFR_TUNE_CASE for default case 22741 [tversion.c] print GMP version (header and library), and file for tuning 22742 parameters 22743 22744 [x86_64/core2/mparam.h] updated for Mulders' division 22745 22746 Added tuning for MPFR_DIV_THRESHOLD, and default value. 22747 It now remains to do the tuning on the architectures in mparam_in.h. 22748 227492011-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22750 22751 [NEWS] added speed improvement in mpfr_div 22752 227532011-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22754 22755 [mulders.c] fixed bug in mpfr_divhigh_n (this routine was not used yet) 22756 [div.c] now use Mulders' short product for large division. It remains to 22757 do the automatic tuning of MPFR_DIV_THRESHOLD. The speedup is nice, 22758 for example on my Core 2 Duo laptop we got with MPFR 3.0.0: 22759 22760 [zimmerma@coing tests]$ ./timings-mpfr 1000 22761 Using MPFR-3.0.0 with GMP-5.0.2 22762 [precision is 3322 bits] 22763 x*y took 0.004543 ms (262143 eval in 1191 ms) 22764 x*x took 0.003616 ms (524287 eval in 1896 ms) 22765 x/y took 0.009087 ms (131071 eval in 1191 ms) 22766 sqrt(x) took 0.007004 ms (262143 eval in 1836 ms) 22767 exp(x) took 0.293040 ms (4095 eval in 1200 ms) 22768 log(x) took 0.253724 ms (4095 eval in 1039 ms) 22769 sin(x) took 0.306960 ms (4095 eval in 1257 ms) 22770 cos(x) took 0.290842 ms (4095 eval in 1191 ms) 22771 arccos(x) took 0.590620 ms (2047 eval in 1209 ms) 22772 arctan(x) took 0.560332 ms (2047 eval in 1147 ms) 22773 22774 and now we get: 22775 22776 [zimmerma@coing tests]$ ./timings-mpfr 1000 22777 Using MPFR-3.1.0-dev with GMP-5.0.2 22778 [precision is 3322 bits] 22779 x*y took 0.004444 ms (262143 eval in 1165 ms) 22780 x*x took 0.002686 ms (524287 eval in 1408 ms) 22781 x/y took 0.006989 ms (262143 eval in 1832 ms) 22782 sqrt(x) took 0.007084 ms (262143 eval in 1857 ms) 22783 exp(x) took 0.292063 ms (4095 eval in 1196 ms) 22784 log(x) took 0.246886 ms (4095 eval in 1011 ms) 22785 sin(x) took 0.259096 ms (4095 eval in 1061 ms) 22786 cos(x) took 0.244933 ms (4095 eval in 1003 ms) 22787 arccos(x) took 0.556424 ms (2047 eval in 1139 ms) 22788 arctan(x) took 0.526624 ms (2047 eval in 1078 ms) 22789 22790 We see that other routines also benefit from the speedup in mpfr_sqr and 22791 mpfr_div (log, sin, cos, arccos, arctan). 22792 227932011-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22794 22795 [algorithms.tex] added algorithm for division with Mulders' short product 22796 (can anybody check the algorithm is ok?) 22797 227982011-07-29 Vincent Lef��vre <vincent@vinc17.net> 22799 22800 [src/vasprintf.c] Added a comment. 22801 22802 [src/get_str.c] Added a comment about the use of mpfr_ceil_mul 22803 (exported and declared in mpfr-impl.h since r7760). 22804 228052011-07-28 Philippe Th��veny <philippe.theveny@laposte.net> 22806 22807 Avoid expensive calls to mpfr_get_prec() using mpfr_ceil_mul() instead. 22808 22809 Make ceil_mul() public as mpfr_ceil_mul() in mpfr-impl.h 22810 228112011-07-28 Vincent Lef��vre <vincent@vinc17.net> 22812 22813 [src/mulders.c] MPFR coding conventions for r7752. 22814 228152011-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22816 22817 modified the default tuning parameters so they are within the bounds of the 22818 ARITH-20 paper "Short Division of Long Integers" 22819 22820 [src/mulders.c] declare mpfr_mullow_n as non-static since it might be useful 22821 elsewhere 22822 22823 [tuneup.c] fix tuning bounds of short product and division according to the 22824 ARITH-20 paper 22825 22826 [acinclude.m4] detect long double format in m68k 22827 22828 [tget_flt.c] added test to check FLT_MAX + FLT_MAX gives INFP 22829 (to early detect compiler bugs) 22830 22831 [nightly-test] changed -pedantic-errors into -pedantic 22832 22833 [mulders.c] added some code for short division (FoldDiv, not used), 22834 added comments and fixed bounds in accordance with the 22835 ARITH-20 paper 22836 228372011-07-28 Philippe Th��veny <philippe.theveny@laposte.net> 22838 22839 Use a buffer in order to avoid a double call to mpfr_get_str. 22840 228412011-07-26 Vincent Lef��vre <vincent@vinc17.net> 22842 22843 [src/log.c] Replaced TMP_* by MPFR_GROUP_* (patch by Patrick). 22844 228452011-07-22 Vincent Lef��vre <vincent@vinc17.net> 22846 22847 [doc/mpfr.texi] Added a comment about TLS variable initialization. 22848 22849 [doc/mpfr.texi] Added information about TLS variable initialization. 22850 22851 [doc/mpfr.texi] Split Chapter "MPFR Basics" into nodes as it is now 22852 quite large (thus references to particular sections are now possible). 22853 228542011-07-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22855 22856 [vasprintf.c] simplified and improved round_to_10_power(), also contributed 22857 a negative number of lines of code :-) 22858 Still not optimal, since round_to_10_power() is still called 22859 twice for printing say pi with mpfr_printf ("%Rg\n", x), once 22860 from partition_number(), once from regular_fg(), and thus 22861 mpfr_get_str is called at least 3 times! 22862 22863 [configure.ac] improve error message when libgmp is not found 22864 22865 [mpfr.texi] added note about threads for mpfr_set_default_prec and 22866 mpfr_get_default_prec 22867 228682011-07-06 Vincent Lef��vre <vincent@vinc17.net> 22869 22870 [doc/mpfr.texi] Updated the month. 22871 22872 [NEWS, doc/mpfr.texi] mpfr_min_prec was a new function in MPFR 3.0.0. 22873 228742011-07-01 Vincent Lef��vre <vincent@vinc17.net> 22875 22876 [tests/tget_flt.c] Replaced FLT_MAX + FLT_MAX by (float) DBL_POS_INF, 22877 which should trigger fewer compiler bugs. See: 22878 https://sympa.inria.fr/sympa/arc/mpfr/2011-07/msg00002.html 22879 22880 [src/ieee_floats.h] Added a comment about the NaN format when 22881 _GMP_IEEE_FLOATS is defined. 22882 228832011-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22884 22885 [tget_flt.c] check for compiler bug 22886 (https://sympa.inria.fr/sympa/arc/mpfr/2011-07/msg00000.html) 22887 228882011-06-30 Vincent Lef��vre <vincent@vinc17.net> 22889 22890 Removed all the svn:eol-style properties (they were set to "native"), 22891 and in doc/README.dev, explained why svn:eol-style native should not 22892 be used. 22893 228942011-06-28 Vincent Lef��vre <vincent@vinc17.net> 22895 22896 [tools/ck-version-info] Check DLL version in LIBMPFR_LDFLAGS line from 22897 configure.ac (patch by Stefan Graff, with minor changes). 22898 228992011-06-26 Vincent Lef��vre <vincent@vinc17.net> 22900 22901 [tools/ck-version-info] 2 corrections: 22902 * update due to the change of the libmpfr_la_LDFLAGS line in r7724; 22903 * to support the CRLF end-of-line sometimes used under MS-Windows 22904 (perl should normally take care of that, but Windows software is 22905 not always consistent). 22906 22907 [doc/mpfr.texi] Due to the "@unnumbered Function and Type Index", 22908 replaced the other "Function Index" by "Function and Type Index" 22909 (note: the function index and the type index are merged thanks to 22910 the "@synindex tp fn" line at the beginning of mpfr.texi). 22911 229122011-06-25 Vincent Lef��vre <vincent@vinc17.net> 22913 22914 Ported patch r7723 (changes suggested by Stefan Graff to be able 22915 to build Windows DLLs with GCC 4.6[*]) to the trunk, not tested 22916 (something more may be needed due to the source reorganization). 22917 [*] https://sympa.inria.fr/sympa/arc/mpfr/2011-06/msg00013.html 22918 229192011-06-21 Vincent Lef��vre <vincent@vinc17.net> 22920 22921 [doc/mpfr.texi] Updated the month. 22922 22923 [doc/mpfr.texi] Corrected a note about mpfr_set_*, due to the addition 22924 of mpfr_set_decimal64. 22925 229262011-06-20 Vincent Lef��vre <vincent@vinc17.net> 22927 22928 [doc/README.dev] Removed comment added in r7181, as it is no longer 22929 necessary since r7182 (new option --enable-gmp-internals). 22930 22931 [configure.ac] Updated comment concerning __gmpn_rootrem (mention 22932 WANT_GMP_INTERNALS). 22933 22934 [doc/README.dev] Added a note about logging and timeout. 22935 22936 [src] Conversion into UTF-8 (only comments were concerned). 22937 22938 [TODO] Conversion into UTF-8. 22939 22940 [src/pow.c] Made the code more robust concerning the scaling (a bug was 22941 very unlikely, though), and updated the comments (partial proof). 22942 229432011-06-01 Vincent Lef��vre <vincent@vinc17.net> 22944 22945 [examples/version.c] Output MPFR features and size of MPFR types. 22946 229472011-05-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22948 22949 [src/rec_sqrt.c] continued review; I can now prove that cu=0 in all cases 22950 [tests/trec_sqrt.c] added tests for corner cases 22951 229522011-05-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22953 22954 [rec_sqrt.c] more review of codes, following comments from Vincent 22955 229562011-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22957 22958 [rec_sqrt.c] removed tabs 22959 22960 [rec_sqrt.c] review and small change of changeset 7651: most probably cu=0 22961 when th=0 (and maybe cu=0 always, I cannot find an example where 22962 cu <> 0) but considering the case th=0 is more natural. 22963 229642011-05-18 Vincent Lef��vre <vincent@vinc17.net> 22965 22966 [doc/mpfr.texi] List the contributors in the alphabetic order, like 22967 the main authors. 22968 22969 Made AUTHORS and doc/mpfr.texi consistent. 22970 22971 Updated AUTHORS file and copyright notices (for more consistency). 22972 22973 [tests/thyperbolic.c] Fixed copyright notice. 22974 22975 [src/inp_str.c] Improved comment. 22976 22977 [src/fits_s.h] Improved comment. 22978 22979 [doc/mpfr.texi] Updated the month. 22980 22981 [src/mpfr.h] Avoid a warning from mpfrlint. 22982 22983 [configure.ac] Consistency change in the copyright notice. 22984 22985 [tests/tsqr.c] Added a note in the check_mpn_sqr error message. 22986 22987 [tests/tsqr.c] Added a test of mpn_sqr concerning a bug seen 22988 with GCC 4.5.2 and GMP 5.0.1 on m68k (m68000 target). 22989 229902011-05-17 Vincent Lef��vre <vincent@vinc17.net> 22991 22992 [doc/README.dev] Added a note about a texinfo bug. 22993 229942011-05-13 Vincent Lef��vre <vincent@vinc17.net> 22995 22996 Added mpfr-intmax.h header. 22997 22998 Started to support mpfr_exp_t defined as intmax_t (_MPFR_EXP_FORMAT==4). 22999 23000 [NEWS] Added that the mpfr.h header can be included several times, 23001 while still supporting optional functions. 23002 23003 [doc/mpfr.texi] Document what to do if mpfr.h can be included 23004 multiple times (fixes MPFR bug #9653). 23005 230062011-05-12 Vincent Lef��vre <vincent@vinc17.net> 23007 23008 [doc/README.dev] Added a note to run tests with -D_MPFR_PREC_FORMAT=2. 23009 23010 [src/mpfr-impl.h] Exponent properties: corrected comments and removed 23011 obsolete mp_exp_unsigned_t definition (was internal only). 23012 23013 [src/{mpfr.h,mpfr-impl.h,vasprintf.c}] Clean-up and improvement 23014 of definitions related to mpfr_exp_t. MPFR can now be built with 23015 -D_MPFR_PREC_FORMAT=2 to have mpfr_prec_t and mpfr_exp_t defined 23016 as an int. 23017 23018 [src/mpfr.h] Fixed spaces in a comment. 23019 23020 Fixed printf's calls: support the case where mpfr_prec_t is not a long 23021 (or unsigned long). 23022 [merged changeset r7643 from the exp-int branch] 23023 23024 [src/strtofr.c] Support the case where mpfr_exp_t < long; mpfr_exp_t is 23025 currently defined as mp_exp_t, which comes from GMP, and GMP currently 23026 defines mp_exp_t as a long, except on Cray (never tested for MPFR). But 23027 this may change in the future (possibly as an option)... 23028 [merged changeset r7642 from the exp-int branch] 23029 23030 [src/mpfr-impl.h] Added missing parentheses in MPFR_SADD_OVERFLOW 23031 (fortunately the current MPFR code was not affected). 23032 23033 [tests/tpow_z.c] More details for a test in case of failure. 23034 23035 [src/sub1.c] Fixed several bugs: integer overflows and potential 23036 out-of-bound pointers. They might be visible on particular platforms, 23037 with a particular configuration (e.g. 64-bit limbs and 32-bit exponent 23038 type) or particular compiler options (to check such overflows). 23039 [merged changesets r7637-7638 from the exp-int branch] 23040 230412011-05-11 Vincent Lef��vre <vincent@vinc17.net> 23042 23043 [tests/tsin.c] Added a test (it failed before the fix in r7308). 23044 23045 Fixed constants pi and log(2) computation when logging is used: When 23046 MPFR is built with logging support, these two constants are used by 23047 the logging functions (via mpfr_fprintf, then mpfr_log, for the base 23048 conversion). Since the mpfr_cache function isn't re-entrant when 23049 working on the same cache, we need to define two caches for each 23050 constant. Otherwise the constants could be incorrect; for instance, 23051 "MPFR_LOG_ALL=1 ./tconst_pi" was failing. 23052 Note: the bug was introduced with the new logging system from r7575 23053 for MPFR 3.1.0, based on mpfr_fprintf instead of mpfr_out_str (which 23054 doesn't depend on mpfr_log). 23055 230562011-05-09 Vincent Lef��vre <vincent@vinc17.net> 23057 23058 [tests/tests.c] Replaced atoi by strtoul to read the seed from 23059 GMP_CHECK_RANDOMIZE, as it is an unsigned long. 23060 23061 [tests/texp.c] Fixed the test comparing mpfr_exp_2 and mpfr_exp_3: 23062 filter out 0, as it is handled correctly only by mpfr_exp. 23063 230642011-05-06 Vincent Lef��vre <vincent@vinc17.net> 23065 23066 [doc/README.dev] Completed the note to run tests under gdb. 23067 23068 [doc/README.dev] Added a note to run tests under gdb. 23069 230702011-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23071 23072 [README.dev] added hint for logging 23073 230742011-05-04 Vincent Lef��vre <vincent@vinc17.net> 23075 23076 [src/atan.c] Fixed bug in mpfr_atan: mpfr_check_range was called on the 23077 unrounded result (no longer allocated) instead of the rounded result. 23078 Consequence of this bug: possible incorrect or invalid result and/or 23079 incorrect flags if either the unrounded result or rounded result is not 23080 in the current exponent range. Or possibly worse if the memory used by 23081 the unrounded result is modified before the return of the function. 23082 23083 [tests/tatan.c] Corrected a comment. 23084 23085 [tests/tatan.c] Added a testcase showing a failure of mpfr_atan 23086 in a reduced exponent range. 23087 23088 [src/const_pi.c] Removed useless assignment. 23089 230902011-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23091 23092 [mpfr-impl.h] fixed typo 23093 230942011-05-03 Vincent Lef��vre <vincent@vinc17.net> 23095 23096 [src/mpfr-impl.h] In MPFR_RNDRAW_GEN, do not try to compute the 23097 sticky bit when not necessary (directed mode with rb = 1). 23098 [src/mul.c] FIXME comment: with the change in MPFR_RNDRAW_GEN, 23099 uninitialized data are no longer read; there's still something 23100 wrong, at least with the code documentation, though. 23101 23102 [src/mul.c] Updated the FIXME comment. 23103 23104 Bug in mpfr_mul: a call mpfr_mulhigh_n(pointers..., n) where n is some 23105 size is done, but the mpfr_mul code assumes a result whose size can be 23106 arbitrarily larger, thus may depend on uninitialised data. 23107 * [src/mul.c] Added a FIXME comment. 23108 * [tests/tmul.c] Added a corresponding test. The result is not checked 23109 but valgrind complains of the use of uninitialised value(s). 23110 23111 [src/mpfr-impl.h] MPFR_RNDRAW_GEN: added other missing parentheses. 23112 23113 [src/mpfr-impl.h] MPFR_RNDRAW_GEN: added missing parentheses. 23114 23115 [src/mpfr-impl.h] Logging: do not take into account the Ziv loops due 23116 to logging (i.e. used by the MPFR functions called by the mpfr_fprintf 23117 in LOG_PRINT). 23118 23119 [src/mpfr-impl.h] Avoid recursive logging for MPFR_ZIV_* macros too, 23120 and fixed type for the output of the precision. 23121 23122 [src/mpfr-impl.h] Avoid recursive logging (not wanted and freezes MPFR). 23123 23124 [src/rec_sqrt.c] Improved the comment added in r7651. 23125 231262011-05-02 Vincent Lef��vre <vincent@vinc17.net> 23127 23128 [src/rec_sqrt.c] Fixed the buffer overflow (bug 12553). 23129 23130 [src/rec_sqrt.c] Added an assertion to avoid a buffer overflow 23131 (mpn_add_1 and mpn_sub_1 don't support size = 0). It sometimes 23132 fails, and this is the following bug: 23133 https://gforge.inria.fr/tracker/index.php?func=detail&aid=12553&group_id=136&atid=619 23134 23135 [src/rec_sqrt.c] Added a comment about a buffer overflow. Bug report: 23136 https://gforge.inria.fr/tracker/index.php?func=detail&aid=12553&group_id=136&atid=619 23137 23138 [tests/tvalist.c] Make sure that fct is used (avoid a warning). 23139 23140 [tests/tsin_cos.c] status_f and status were not read (compared) in 23141 coverage_01032011, yielding a warning. 23142 23143 [src/mpfr-impl.h] Avoid a spurious warning with some use of MPFR_BLOCK. 23144 23145 [doc/README.dev] Added command to test with valgrind. 23146 231472011-05-01 Vincent Lef��vre <vincent@vinc17.net> 23148 23149 Added "make dist" support for -dev MPFR versions by distributing the 23150 tests/data files in the tarball for such MPFR versions ("make check" 23151 fails if some data file couldn't be read for such versions). 23152 * configure.ac: add a Makefile variable DATAFILES, which contains the 23153 list of the tests/data files if the MPFR version ends with "-dev". 23154 * Makefile.am: add $(DATAFILES) to EXTRA_DIST. 23155 231562011-04-29 Vincent Lef��vre <vincent@vinc17.net> 23157 23158 Added casts for printf (mpfr_prec_t was assumed to be an unsigned long). 23159 23160 [src/strtofr.c] Support the case where mpfr_exp_t < long. 23161 23162 [src/mpfr-impl.h] Added missing parentheses in MPFR_SADD_OVERFLOW. 23163 23164 [tests/trint.c] Removed a useless pointer cast (in general, such casts 23165 are either useless or incorrect, as breaking aliasing rules). 23166 231672011-04-28 Vincent Lef��vre <vincent@vinc17.net> 23168 23169 [tests/tpow_z.c] More details concerning a failure. 23170 23171 [src/sub1.c] Added a useless cast (for maintainability: may be needed 23172 in case of future change) and comments about the last change (r7637). 23173 23174 [src/sub1.c] Fixed several bugs: integer overflows and potential 23175 out-of-bound pointers. 23176 23177 [src/cmp2.c] Added an assertion. 23178 231792011-04-18 Vincent Lef��vre <vincent@vinc17.net> 23180 23181 [acinclude.m4] Correction of problems triggering the warning 23182 "warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body" 23183 with autoconf 2.68: 23184 * Fixed missing quoting in an AC_RUN_IFELSE. 23185 * Added an AC_LANG_SOURCE in another AC_RUN_IFELSE. 23186 23187 [acinclude.m4] s/can not/cannot/ 23188 23189 [acinclude.m4] Added comment about the warning: 23190 warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body 23191 231922011-04-15 Vincent Lef��vre <vincent@vinc17.net> 23193 23194 [acinclude.m4] Use conventional quotes. 23195 23196 [acinclude.m4] Added a comment. 23197 231982011-04-12 Vincent Lef��vre <vincent@vinc17.net> 23199 23200 [src/asin.c] Fixed bug in mpfr_asin for x = 1 or -1 in extremely reduced 23201 exponent range (when pi is not representable, but pi/2 is). 23202 [tests/tasin.c] Added testcase. 23203 232042011-04-08 Vincent Lef��vre <vincent@vinc17.net> 23205 23206 [TODO] Removed "allow generic tests to run with a restricted 23207 exponent range" (this was done in r7470). 23208 232092011-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23210 23211 [TODO] added item 23212 232132011-04-05 Vincent Lef��vre <vincent@vinc17.net> 23214 23215 [doc/mpfr.texi] Updated the month. 23216 23217 [INSTALL,doc/mpfr.texi] Say that mpfr@loria.fr is the MPFR mailing-list. 23218 232192011-04-01 Vincent Lef��vre <vincent@vinc17.net> 23220 23221 [configure.ac] Removed the -Wno-format GCC option, which was added 23222 when logging was used, as it is no longer needed after the changes 23223 done in r7575,7578 (mpfr_fprintf is now used for logging instead of 23224 fprintf with the Glibc register_printf_function extension). 23225 232262011-03-29 Vincent Lef��vre <vincent@vinc17.net> 23227 23228 [tests/reuse.c] Added a comment. 23229 23230 [src/pow.c] Fixed a bug in mpfr_pow_general when an argument is reused 23231 (e.g. mpfr_pow(x,x,y,rnd) or mpfr_pow(y,x,y,rnd)) and the result is 23232 negative, thus when x is negative and y is a huge odd integer ("huge" 23233 because not-too-large integers are currently handled by mpfr_pow_z). 23234 23235 [tests/reuse.c] Added a mpfr_pow(x,x,y,rnd) test showing a failure 23236 when x is negative and y is a huge odd integer. 23237 23238 [src/subnormal.c] Improved a comment. 23239 23240 [tests/reuse.c] Test also negative numbers. 23241 23242 [tests/reuse.c] GNU coding style. 23243 23244 [src/mul.c] Updated a comment. 23245 23246 [src/powerof2.c] Updated comment. 23247 23248 [src/powerof2.c] More detailed comment. 23249 232502011-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23251 23252 [cfarm.sh] complete tests with mpfr-3.0.1-rc1 23253 232542011-03-21 Vincent Lef��vre <vincent@vinc17.net> 23255 23256 [src/pow_z.c] Fixed bug bug20110320, that occurs in extremely reduced 23257 exponent range (more precisely, if 1 is out of range, i.e. emin > 1). 23258 23259 [tests/tpow.c] Added testcase bug20110320. 23260 23261 [tests/tgeneric.c] Added debug information. 23262 232632011-03-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23264 23265 [cfarm.sh] shell script to test MPFR on the GCC Compile Farm 23266 232672011-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23268 23269 [digamma.c] fixed compiler warning (ISO C90 forbids mixed declarations and code) 23270 232712011-03-17 Vincent Lef��vre <vincent@vinc17.net> 23272 23273 [NEWS] Added a note about the fix in the mpfr_subnormalize 23274 implementation, in case users would think the old behavior 23275 was chosen on purpose. 23276 23277 Completed r7575 (Get rid of deprecated register_printf_function 23278 function in logging system): there was a remaining old MPFR_LOG_FUNC 23279 in "src/div_ui.c". Now, the MPFR source no longer contains '%#R'. 23280 23281 [src/mul_2si.c] Removed trailing whitespace. 23282 23283 [doc/README.dev] Fixed variable name from r7575. 23284 232852011-03-17 Philippe Th��veny <philippe.theveny@laposte.net> 23286 23287 Get rid of deprecated register_printf_function function in logging system. 23288 232892011-03-15 Vincent Lef��vre <vincent@vinc17.net> 23290 23291 [src/erfc.c] Fixed a problem (incorrect flags or possible crash) in 23292 extremely reduced exponent range. Support the case where mpfr_prec_t 23293 is larger than a long. 23294 23295 [tests/terf.c] Added some tests of the flags (no failure in them, 23296 thanks to the mpfr_cmp_si (x, -27282) in erfc.c, for 1b). 23297 23298 [tests/tgeneric.c] In failure messages, output the name of the 23299 tested function. This is useful for programs that have generic 23300 tests for several functions, such as terf. 23301 23302 [tests/terf.c] Added a testcase showing a failure due to bad flags 23303 in a reduced exponent range. 23304 233052011-03-14 Vincent Lef��vre <vincent@vinc17.net> 23306 23307 [tests/terf.c] Changed mp_exp_t (r7564) to mpfr_exp_t. 23308 233092011-03-11 Vincent Lef��vre <vincent@vinc17.net> 23310 23311 [src/erfc.c] Added an assertion for future platforms (e.g. with 128-bit 23312 exponent type). 23313 23314 [src/erfc.c] Fixed r7564 (comparison must really be signed). 23315 23316 [tests/terf.c] Fixed test added in r7564 for 32-bit machines. 23317 233182011-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23319 23320 [erfc.c] fixed bug found by Pascal Molin: when we increase the exponent range 23321 on 64-bit machines, erfc() wrongly underflows for x >= 27282 23322 233232011-03-10 Vincent Lef��vre <vincent@vinc17.net> 23324 23325 [src/jn.c] Fixed the MPFR_FAST_COMPUTE_IF_SMALL_INPUT test for n == 1 23326 in underflow cases. 23327 23328 [src/jn.c] No need for mpfr_clear_flags (already done in MPFR_BLOCK). 23329 23330 [src/jn.c] Check that no intermediate underflow or overflow occurs. 23331 23332 [doc/algorithms.tex] For the Bessel function, say that the algorithm 23333 assumes that no underflows/overflows occur. 23334 233352011-03-09 Vincent Lef��vre <vincent@vinc17.net> 23336 23337 [src/gamma.c] More robust code (for the change in r7551). 23338 23339 Removed trailing spaces. 23340 23341 [tests/tgeneric.c] Added feature for MPFR_SUSPICIOUS_OVERFLOW to avoid 23342 spurious failures by defining TGENERIC_SO_TEST to some well-chosen test. 23343 23344 [tests/tgamma.c] Added a comment about MPFR_SUSPICIOUS_OVERFLOW. 23345 23346 [src/gamma.c] Fixed the special code for tiny values. 23347 23348 [tests/tgamma.c] Corrected a test and added other tests for tiny x > 0. 23349 23350 [tests/tgamma.c] Updated a comment. 23351 23352 [tests/tgamma.c] Restore emax. 23353 23354 [tests/tgamma.c] Do not initialize x twice. 23355 23356 [tests/tgamma.c] Do not run the same test twice if emin = MPFR_EMIN_MIN. 23357 23358 [tests/tgamma.c] Added tests for tiny values, showing bugs in special 23359 code for such values. Run tgamma with at least an argument to get all 23360 the failures. 23361 233622011-03-07 Vincent Lef��vre <vincent@vinc17.net> 23363 23364 [src/jn.c] Fixed mpfr_jn_k0() internal function: 23365 * The prototype was incorrect: one needs "unsigned long" for n 23366 (actually absn), in case absn is equal to - LONG_MIN. 23367 * The formula and the code were incorrect for n = 0, due to the 23368 division by n; it was yielding k0 = ULONG_MAX. The case n = 0 23369 is now handled separately. 23370 * Small optimization: division by log(2) -> multiplication by 23371 1/log(2). 23372 23373 [src/jn.c] Avoid integer overflow in the computation of the initial 23374 working precision. This makes several tests fail, but logging shows 23375 that previous non-failure was due to undefined behavior due to huge 23376 k0 computed by mpfr_jn_k0. 23377 23378 [src/jn.c] Added a comment for mpfrlint. 23379 23380 [tools/mpfrlint] Change of r7515: any mpfr_clear_* can be mentioned. 23381 23382 [src/jn.c] Added comments and fixed a bug. 23383 23384 [src/jn.c] Detect incorrect error analysis (that may have been the goal 23385 of the assertion corrected in r7534, but this wasn't documented). Added 23386 a FIXME comment. 23387 23388 [src/jn.c] Fixed incorrect assertion. It could occur only 23389 in precision >= 2^(1+s/2), where s is the bitsize of a 23390 "long", e.g. p >= 2^17 = 131072 on most 32-bit machines and 23391 p >= 2^33 = 8,589,934,592 on most 64-bit machines. Only some 23392 arguments are affected (|z| between around 2^(s/2) and p/2). 23393 23394 [tests/Makefile.am] Added a comment. 23395 23396 [doc/README.dev] Corrected a typo. 23397 233982011-03-06 Vincent Lef��vre <vincent@vinc17.net> 23399 23400 [src/jn.c] Improved underflow detection. Still not complete, though. 23401 23402 [src/jn.c] Comments: English usage. 23403 234042011-03-05 Vincent Lef��vre <vincent@vinc17.net> 23405 23406 [tests/trint.c] mantissa -> significand (standard and correct term). 23407 23408 [tests/trint.c] Do not use snprintf (C99). 23409 234102011-03-04 Vincent Lef��vre <vincent@vinc17.net> 23411 23412 [tools/mpfrlint] Added a test to check that the snprintf function (C99) 23413 is not used. 23414 234152011-03-04 Olivier Demengeon <olivier.demengeon@inria.fr> 23416 23417 Previous extended coverage test in trint.c now self generate tests in and compare values 23418 23419 Extend test coverage of mpfr_rint to 100% 23420 234212011-03-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23422 23423 [src/add1sp.c] same as previous commits 23424 23425 [src/sub1sp.c] ibidem (see previous commit log) 23426 23427 [add1.c] ibidem (see previous commit log) 23428 234292011-03-03 Vincent Lef��vre <vincent@vinc17.net> 23430 23431 [src/add.c,src/sub.c] Split assertions for C90 compilers, to avoid 23432 too long strings generated by #expr. Problem seen with: 23433 gcc -ansi -pedantic-errors 23434 23435 [src/yn.c] Minor change. 23436 23437 [src/yn.c] Extend the exponent range (code not checked concerning 23438 internal exceptions, such as overflows, underflows and divby0). 23439 23440 [src/agm.c] Added comments (for mpfrlint, in particular). 23441 23442 [tools/mpfrlint] The use of mpfr_overflow_p, etc. is allowed if 23443 mpfr_clear_flags is mentioned (useful for checking purpose at the 23444 end of a function, but this needs an explicit mpfr_clear_flags; 23445 otherwise MPFR_BLOCK should still be used). 23446 23447 [src/agm.c] Completed scaling to avoid intermediate overflow/underflow. 23448 23449 [src/agm.c] Bug fix in error computation: in Ziv's iteration, err kept 23450 its value from the previous iteration instead of being reset to 0. 23451 Consequence: a possible loss of performance in rare cases. 23452 23453 [src/cmp2.c] Removed a useless assertion and updated comments. 23454 234552011-03-02 Vincent Lef��vre <vincent@vinc17.net> 23456 23457 [src/agm.c] Added a FIXME comment. 23458 23459 [src/agm.c] Updated exception checking (more informative). 23460 23461 [src/agm.c] Check internal exceptions: the error analysis may be 23462 incorrect in case of exception. 23463 23464 [src/agm.c] Implemented scaling to avoid intermediate overflow/underflow 23465 (but the tagm test still fails, due to a rounding error this time). 23466 23467 [tests/tagm.c] Added tests triggering intermediate underflow/overflow. 23468 23469 [tests/tagm.c] Also test the ternary value and the flags. 23470 23471 [tests/tagm.c] Corrected values (using Pari). 23472 23473 [src/agm.c] Extend the exponent range. This doesn't make the algorithm 23474 correct yet, as intermediate underflow or overflow is still possible in 23475 the first multiplication. 23476 234772011-03-01 Olivier Demengeon <olivier.demengeon@inria.fr> 23478 23479 Change some functions called in test tsin_cos.c 23480 23481 Extend coverage test of mpfr_sincos_fast to 100% 23482 23483 Extend coverage test of mpfr_custom_get_kind to 100% 23484 234852011-02-25 Vincent Lef��vre <vincent@vinc17.net> 23486 23487 [src/jn.c] Fix: support reduced exponent ranges for small inputs. 23488 23489 [src/gamma.c] Added a comment about an overflow case. 23490 23491 [tests/tgamma.c] Added tests in maximum exponent range. 23492 23493 [src/gamma.c] Fixed flags when x if very small (protect from 23494 intermediate overflow). 23495 23496 [tests/tgamma.c] Corrected test number. 23497 23498 [tests/tgamma.c] Added a test in maximum exponent range. 23499 23500 [src/gamma.c] Fixed inexact flag when x if very small. 23501 23502 [tests/tgamma.c] Added tests. 23503 23504 [src/gamma.c] Fixed a bug occurring in reduced exponent range. 23505 [tests/tgamma.c] Added corresponding testcase. 23506 23507 [src/lngamma.c] Do not use MPFR_EXP after a mpfr_clear (even though 23508 this currently work). 23509 23510 [src/rem1.c] Fixed mpfr_rem1 in reduced exponent range (the function 23511 is actually simplified). 23512 235132011-02-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23514 23515 [TODO] added an item 23516 235172011-02-25 Vincent Lef��vre <vincent@vinc17.net> 23518 23519 Fixed mpfr_div_2si, mpfr_div_2ui and mpfr_mul_2si in some corner cases. 23520 23521 [tests/tmul_2exp.c] Small correction in output (in case of failure). 23522 235232011-02-21 Vincent Lef��vre <vincent@vinc17.net> 23524 23525 [tests/tset_q.c] Corrections in function prototypes. 23526 235272011-02-21 Olivier Demengeon <olivier.demengeon@inria.fr> 23528 23529 Remove the use of mpfr_get_default_prec in some coverage test 23530 23531 Add some coverage test in tests/tset_q.c 23532 23533 fixed coding convention of 2 tests functions 23534 235352011-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23536 23537 [tget_d.c] fixed some compiler errors and warnings 23538 235392011-02-18 Vincent Lef��vre <vincent@vinc17.net> 23540 23541 [tests/tversion.c] Split a printf into several ones to reduce the 23542 string length below the 509-byte limit from C90 (useful to avoid 23543 an error when testing with gcc -ansi -pedantic-errors). 23544 235452011-02-18 Olivier Demengeon <olivier.demengeon@inria.fr> 23546 23547 Extend test coverage to 100% on mpfr_z_sub and mpfr_mul_q function 23548 23549 Extend test coverage on mpfr_get_d_2exp function 23550 235512011-02-18 Vincent Lef��vre <vincent@vinc17.net> 23552 23553 [tests/tmul_2exp.c] Also test mpfr_div_2si and mpfr_div_2ui (same bug). 23554 23555 [tests/tmul_2exp.c] Added a testcase showing a bug in mpfr_mul_2si 23556 (possible intermediate overflow). 23557 23558 [src/zeta.c] Support zeta(eps) with |eps| very small or 0 23559 in extremely reduced exponent range. 23560 23561 [src/atan2.c] Fix: the overflow or underflow flag was set in the case 23562 x = power of two and y/x overflows or underflows. 23563 23564 [src/atan2.c] Support special cases in extremely reduced exponent range. 23565 23566 [src/acos.c] Support acos(0) in extremely reduced exponent range. 23567 235682011-02-17 Vincent Lef��vre <vincent@vinc17.net> 23569 23570 [tests/tgeneric.c] Added generic tests in a reduced exponent range. 23571 This currently makes 10 tests fail on a 64-bit machine. 23572 23573 [tests/mpfr-test.h] Defined a SAME_VAL(X,Y) macro to test whether two 23574 floating-point data have the same value, seen as an element of the set 23575 of the floating-point data (Level 2 in the IEEE 754-2008 standard). 23576 23577 [src/mpfr-impl.h] Defined a MPFR_EXP_FSPEC macro containing the 23578 format specifier for mpfr_eexp_t, to output an exponent with: 23579 printf ("%" MPFR_EXP_FSPEC "d", (mpfr_eexp_t) exponent); 23580 23581 [tests/tgeneric.c] Reformat. 23582 23583 [doc/README.dev] Added a warning about whitespace in the mpfr.texi file. 23584 23585 [doc/mpfr.texi] Fixed spacing for the mpfr.info file. 23586 235872011-02-10 Vincent Lef��vre <vincent@vinc17.net> 23588 23589 [tools/mpfrlint] Detect the use of mp_ptr and mp_srcptr. 23590 23591 [doc/mpfr.texi] Updated the month. 23592 23593 [src/gmp_op.c] Added a blank line. 23594 235952011-02-09 Olivier Demengeon <olivier.demengeon@inria.fr> 23596 23597 Added mpfr_z_sub (function/test/doc) 23598 235992011-02-09 Vincent Lef��vre <vincent@vinc17.net> 23600 23601 Added new types mpfr_limb_ptr and mpfr_limb_srcptr to src/mpfr-impl.h, 23602 and replaced mp_ptr and mp_srcptr (GMP internals) by these 2 new types 23603 respectively. 23604 236052011-02-08 Vincent Lef��vre <vincent@vinc17.net> 23606 23607 [src/mpfr-impl.h] Fix for Intel's compiler (ICC) under MS Windows: 23608 MPFR was incorrectly assuming that ICC had some extensions like 23609 under GNU/Linux. This made the MPFR compilation fail. 23610 23611 [src/mpfr-impl.h] Corrected a typo in a comment. 23612 236132011-02-05 Vincent Lef��vre <vincent@vinc17.net> 23614 23615 [INSTALL] Removed incorrect note. 23616 236172011-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23618 23619 [INSTALL] added hint for VS2008 and Intel compiler v11.1 23620 236212011-02-03 Vincent Lef��vre <vincent@vinc17.net> 23622 23623 [configure.ac,Makefile.am] Clean-up and depend on GNU Automake 1.11. 23624 236252011-01-31 Vincent Lef��vre <vincent@vinc17.net> 23626 23627 [src/zeta_ui.c,tests/tzeta_ui.c] Patch from Patrick P��lissier for 23628 the division-by-zero support in mpfr_zeta_ui (and test): 23629 236302011-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23631 23632 [src/zeta.c] patch from Patrick Pelissier (problem with division by zero flag) 23633 236342011-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23635 23636 [TODO] removed division by zero item (done) 23637 23638 [src/get_str.c,TODO] updated comments, mpfr_get_str already supports base <= 62 23639 236402011-01-27 Vincent Lef��vre <vincent@vinc17.net> 23641 23642 [tests/tj0.c] GMP_RNDN ��� MPFR_RNDN. 23643 23644 [src/subnormal.c] Set the inexact and underflow flags when needed. Fixes 23645 https://gforge.inria.fr/tracker/index.php?func=detail&aid=7958&group_id=136&atid=622 23646 [tests/tsubnormal.c] Improved the tests, in particular for the flags. 23647 [doc/mpfr.texi] Documented the change. 23648 23649 [doc/mpfr.texi] Corrected order in Section "Changed Functions". 23650 23651 [tests/tj0.c] Added case for which s = 0 occurs in mpfr_jn. 23652 23653 [src/jn.c] Added a log message. 23654 23655 [src/div_ui.c] Added logging support. 23656 236572011-01-26 Vincent Lef��vre <vincent@vinc17.net> 23658 23659 [tests/tsum.c] Fixed bug in test (do not set the exponent on 0). 23660 23661 [tests/tsum.c] Formatting. 23662 23663 [tests/tsum.c] Fixed get_prec_max and added some checks. 23664 Current failure: tab[1] is not valid. 23665 23666 [src/sum.c] Added an assertion. 23667 23668 [src/check.c] Replaced MPFR_IS_PURE_FP by !MPFR_IS_SINGULAR, the 23669 former macro now has a check for validity in debug mode (r7426). 23670 The goal of mpfr_check is to test the validity, so that we don't 23671 want this check here. 23672 23673 [src/mpfr-impl.h] In the MPFR_IS_PURE_FP test, if positive, check that 23674 the number is normalized (debug mode only). This makes 2 tests fail: 23675 tcheck and tsum. Note: with logging active, tsum was already triggering 23676 an assertion failure in mpfr_get_str (via mpfr_add). 23677 23678 [src/add.c] Formatting. 23679 23680 [src/li2.c] Fixed crash in mpfr_li2 when logging is used. 23681 236822011-01-24 Vincent Lef��vre <vincent@vinc17.net> 23683 23684 [src/jn.c] Corrected a comment. 23685 236862011-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23687 23688 [src/jn.c] added notes for correctness of the algorithm used 23689 236902011-01-24 Vincent Lef��vre <vincent@vinc17.net> 23691 23692 [src/jn.c] C90 compatibility fix (empty macro arguments are undefined). 23693 23694 [src/jn.c] Added an assaertion against a potential overflow (which 23695 probably never occurs, but this should be proved...). 23696 236972011-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23698 23699 [src/jn.c] patch from Patrick Pelissier 23700 237012011-01-23 Vincent Lef��vre <vincent@vinc17.net> 23702 23703 [src/jn.c] Forgot to change an MPFR_EXP to MPFR_GET_EXP. 23704 23705 [src/jn.c] Replaced MPFR_EXP by MPFR_GET_EXP when the value should 23706 really be an exponent. Removed incorrect and useless casts. Added 23707 an assertion to protect against potentially incorrect code. 23708 23709 [src/jn.c] Patch from Patrick P��lissier (mpfr_check_range and other). 23710 237112011-01-21 Vincent Lef��vre <vincent@vinc17.net> 23712 23713 [tools/mpfrlint] Update the check for mpfr_printf-like functions 23714 in the tests. 23715 23716 [tests/tprintf.c] Consistency. 23717 23718 [tests/tgrandom.c] Added a comment. 23719 23720 [tests/tgrandom.c] Protection of the mpfr_printf by #ifdef HAVE_STDARG. 23721 237222011-01-20 Vincent Lef��vre <vincent@vinc17.net> 23723 23724 [src/eint.c] Added a FIXME. 23725 237262011-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23727 23728 [src/out_raw.c] added pointer to discussion 23729 237302011-01-17 Vincent Lef��vre <vincent@vinc17.net> 23731 23732 [tests/tvalist.c] Correction for C++ compilers. 23733 23734 [doc/mpfr.texi] Added division-by-zero exception. 23735 23736 [doc/README.dev] Updated "To make a release". 23737 23738 [NEWS] Update for MPFR 3.1.x. 23739 23740 [src/grandom.c] Reformat. 23741 23742 [tools/mpfrlint] tests/tvalist.c can use mpfr_printf-like functions. 23743 23744 [tests/tgrandom.c] Added a FIXME: do not use mpfr_printf in the tests. 23745 23746 [tests] Untabified and removed trailing spaces. 23747 23748 [src/grandom.c,src/mpfr.h] Untabified and removed trailing spaces. 23749 23750 [src/frexp.c] Corrections. 23751 23752 [src/out_raw.c] Untabified. 23753 23754 [src/out_raw.c] Fixed some bugs on the incomplete code. 23755 23756 [src/atan2.c] MPFR_EXP -> MPFR_GET_EXP and reformat. 23757 23758 [src/ai.c] Removed trailing spaces. 23759 23760 [doc/mpfr.texi] Updated the month. 23761 23762 Copyright notice update: added 2011 with 23763 perl -pi -e 's/2010 Free Software/2010, 2011 Free Software/' **/*(^/) 23764 under zsh, reverting the ChangeLog file and the m4 and tools/mbench 23765 directories. 23766 23767 [doc/README.dev] Updated year in example. 23768 23769 tests: updated svn:ignore property. 23770 23771 [src/pow.c] Added an assertion. 23772 23773 [tests/td_div.c] Consistency change. 23774 23775 [tests/tdiv_d.c] Updated test of special cases. 23776 23777 [src/log1p.c] Added support for the division-by-zero exception. 23778 23779 [tests/tlog1p.c] Test the flags for special cases. 23780 23781 Added support for the division-by-zero exception in functions 23782 mpfr_atanh, mpfr_cot, mpfr_coth, mpfr_csc, mpfr_csch, 23783 mpfr_digamma, mpfr_eint, mpfr_gamma, mpfr_lgamma, mpfr_lngamma, 23784 mpfr_log, mpfr_log2 and mpfr_log10. 23785 237862011-01-16 Laurent Fousse <laurent@komite.net> 23787 23788 [tests/tgrandom.c] Add missing cast for malloc. 23789 237902011-01-16 Vincent Lef��vre <vincent@vinc17.net> 23791 23792 [src/yn.c] Added support for the division-by-zero exception. 23793 23794 [src/rec_sqrt.c] Added support for the division-by-zero exception. 23795 23796 [src/pow_si.c] Improved robustness (in case of future changes). 23797 23798 Added support for the division-by-zero exception for the power functions 23799 (with additional tests). (Corrected patch from Patrick.) 23800 238012011-01-16 Laurent Fousse <laurent@komite.net> 23802 23803 Rename mpfr_urandom_gaussian to mpfr_grandom. 23804 238052011-01-15 Vincent Lef��vre <vincent@vinc17.net> 23806 23807 [doc/mpfr.texi] Corrections for mpfr_urandom_gaussian. 23808 23809 [tests/turandom_gaussian.c] Fixed C99-only code. 23810 238112011-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23812 23813 [src/frexp.c,tests/tfrexp.c] added new function mpfr_frexp 23814 [src/urandom_gaussian.c] fixed copyright line 23815 [src/out_raw.c] started writing code (work in progress, please continue if 23816 you are interested) 23817 238182011-01-14 Laurent Fousse <laurent@komite.net> 23819 23820 [doc/mpfr.texi] Document urandom_gaussian. 23821 23822 [tests/Makefile.am] Include turandom_gaussian in tests. 23823 23824 [tests/turandom_gaussian.c] Add tests for urandom_gaussian. 23825 238262011-01-14 Vincent Lef��vre <vincent@vinc17.net> 23827 23828 [tests/tdiv.c] Added consistency tests between mpfr_div, mpfr_ui_div, 23829 mpfr_si_div, mpfr_div_ui and mpfr_div_si (check the ternary value, 23830 the flags and the result of the division). 23831 23832 [src/ui_div.c] Fixed prototype formatting. 23833 [src/div_ui.c] Fixed prototype formatting. Set division-by-zero flag. 23834 238352011-01-14 Laurent Fousse <laurent@komite.net> 23836 23837 [src/urandom_gaussian.c] Fix x -> xp, and scaling. 23838 23839 [src/urandom_gaussian.c] Pick the signs of the outputs at random. 23840 23841 [src/urandom_gaussian.c] Fix precision of temporary results. 23842 23843 [src/urandom_gaussian.c] Add missing inits/clears. 23844 23845 [src/mpfr.h] Declare urandom_gaussian. 23846 23847 [src/Makefile.am] Add urandom_gaussian.c to the sources. 23848 23849 [src/urandom_gaussian] Start work on gaussian distribution. 23850 238512011-01-14 Vincent Lef��vre <vincent@vinc17.net> 23852 23853 [tests/tgeneric.c] Fixed code introduced in r7346, again. 23854 238552011-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23856 23857 [sin_cos.c] moved macros to mpfr-impl.h, added README 23858 23859 [sin_cos.c] new inexact flags computed by mpfr_check_range were lost 23860 238612011-01-14 Vincent Lef��vre <vincent@vinc17.net> 23862 23863 [tests/tgeneric.c] Fixed code introduced in r7346. 23864 23865 [tools/coverage] Update from Patrick. 23866 23867 [src/ui_div.c] Set the division-by-zero flag. 23868 [tests/tui_div.c] Updated and improved the test of special cases. 23869 Note: tpow_all currently fails since the support of the division-by-zero 23870 exception is not complete yet. 23871 23872 [src/div.c] Set the division-by-zero flag. 23873 [tests/tdiv.c, tests/td_div.c] Updated and improved the test of special 23874 cases. 23875 23876 [tests/tset.c] Tests didn't fail in case of error from PRINT_ERROR_IF. 23877 23878 [tests/tgeneric.c] Added comments. 23879 23880 [tests/tgeneric.c] Check the division-by-zero flag. 23881 23882 Improved tests/texceptions.c (mpfr_clear_*, mpfr_set_*). 23883 23884 Added support for the division-by-zero exception. 23885 23886 [src/exceptions.c] Fixed bad #undef's (with currently no consequences). 23887 238882011-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23889 23890 [TODO] removed item about inlined mpfr_neg: Patrick Pelissier tried it but it 23891 does not speed things 23892 238932011-01-14 Vincent Lef��vre <vincent@vinc17.net> 23894 23895 [src/mpfr-impl.h] Removed an obsolete comment. 23896 238972011-01-13 Laurent Fousse <laurent@komite.net> 23898 23899 [src/atan2.c] "Exact" division can be inexact because of the exponent range. 23900 239012011-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23902 23903 [out_raw.c] exchanged bits for precision and exponent 23904 23905 [out_raw.c] first proposal for external format 23906 239072011-01-13 Vincent Lef��vre <vincent@vinc17.net> 23908 23909 [src/mpfr-impl.h] MPFR_IS_POWER_OF_2: added parentheses. 23910 239112011-01-13 Laurent Fousse <laurent@komite.net> 23912 23913 Add tests for special case of atan2 (x power of 2). 23914 23915 Add special case for atan2(x,y) when x is a power of 2. 23916 23917 New macro MPFR_IS_POWER_OF_2. 23918 239192011-01-13 Vincent Lef��vre <vincent@vinc17.net> 23920 23921 TLS support is now detected automatically. If TLS is supported, MPFR is 23922 built as thread safe by default. To disable TLS explicitly, configure 23923 MPFR with --disable-thread-safe. 23924 239252011-01-13 Laurent Fousse <laurent@komite.net> 23926 23927 Add tests for mpfr_ai special case x=0. 23928 23929 Add special case for x=0 in mpfr_ai1. 23930 239312011-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23932 23933 [algorithms.tex] extended Lemma 2 to the case of terms of the form 1/(1+delta) 23934 239352011-01-13 Vincent Lef��vre <vincent@vinc17.net> 23936 23937 tests: return 77 for skipped tests (see GNU Automake manual). 23938 23939 tests: updated svn:ignore property. 23940 23941 TODO update after r7317 and r7320. 23942 23943 Support multiple inclusions of mpfr.h w.r.t. <stdio.h> and <stdarg.h> 23944 (MPFR_USE_FILE and/or MPFR_USE_VA_LIST are needed until GMP is fixed). 23945 Added test "tests/tvalist.c". 23946 239472011-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23948 23949 [src/mpfr-longlong.h] idem as previous commit for other 2 FIXME's 23950 23951 [mpfr-longlong.h] resolved one FIXME, by adding a new one :-) 23952 239532011-01-13 Vincent Lef��vre <vincent@vinc17.net> 23954 23955 Support multiple inclusions of mpfr.h w.r.t. <stdint.h> / <inttypes.h>. 23956 239572011-01-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23958 23959 another patch from Patrick Pelissier to test get_ld (with export of data used) 23960 23961 patch from Patrick Pelissier to use clock_getime instead of rdtsc 23962 (use "make rt" instead of "make") 23963 References: 23964 https://stackoverflow.com/questions/3388134/rdtsc-accuracy-across-cpu-cores 23965 https://en.wikipedia.org/wiki/Time_Stamp_Counter 23966 239672010-12-25 Vincent Lef��vre <vincent@vinc17.net> 23968 23969 [src/get_ld.c] Updated a comment about the last change. 23970 23971 [src/get_ld.c] Minor performance improvement. 23972 239732010-12-19 Vincent Lef��vre <vincent@vinc17.net> 23974 23975 [tools/mbench/Makefile] Update due to source reorganization (r7087): 23976 patch from Patrick Pelissier. 23977 239782010-12-17 Vincent Lef��vre <vincent@vinc17.net> 23979 23980 [TODO] Update (exp-int branch, internal macro). 23981 23982 [src/sin.c] Fixed failure in debug mode (missing MPFR_IS_ZERO test). 23983 23984 [src/rec_sqrt.c] Improved comment. 23985 23986 Added exp-int branch from r7304, where mpfr_exp_t is defined as an 23987 int instead of mp_exp_t. This is for testing only for usual 64-bit 23988 machines (e.g. x86_64 GNU/Linux), where mpfr_exp_t and mpfr_prec_t 23989 are now on 32 bits instead of 64 bits. Many tests currently fail 23990 for unknown reasons. 23991 TODO: find the cause of these failures, starting with the low level 23992 functions (since they can affect higher level ones). 23993 239942010-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23995 23996 [rec_sqrt.c] put back some information lost in commit 7302 23997 239982010-12-17 Vincent Lef��vre <vincent@vinc17.net> 23999 24000 [src/cmp2.c] Corrected a comment. 24001 24002 Replaced some MPFR_EXP by MPFR_GET_EXP. 24003 24004 [src/rec_sqrt.c] Removed a variable that was used only once. 24005 24006 [src/mpfr.h] Changed comment for mpfrlint. 24007 24008 Added MPFR_TMP_LIMBS_ALLOC macro and updated the source to use it. 24009 tools/mpfrlint: check its use instead of MPFR_TMP_ALLOC. 24010 24011 [src/sum.c] Improved readability. 24012 24013 [src/mpfr-impl.h] Formatting. 24014 240152010-12-14 Vincent Lef��vre <vincent@vinc17.net> 24016 24017 [TODO] Added year on a date (the item was added on 2007-07-28 in r4707). 24018 240192010-12-13 Vincent Lef��vre <vincent@vinc17.net> 24020 24021 Added configure.lineno (generated by configure) to the svn:ignore 24022 property of the src directory. 24023 240242010-12-12 Vincent Lef��vre <vincent@vinc17.net> 24025 24026 [NEWS] Update concerning the --with-gmp-build configure option. 24027 24028 [INSTALL] Corrected a typo from r7293. 24029 24030 Updated INSTALL file after the recent changes in configure.ac concerning 24031 the --with-gmp-build configure option. 24032 24033 [configure.ac] With --with-gmp-build, do not duplicate the include 24034 search paths if the GMP source and build directories are the same. 24035 24036 [configure.ac] Fixed another bug in r7289. This new version now seems 24037 to work with GMP's srcdir pointing to a relative directory or to an 24038 absolute one. 24039 24040 [configure.ac] Fixed bug in r7289. 24041 24042 [configure.ac] Corrected Patrick Pelissier's patch (not tested). 24043 240442010-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24045 24046 [configure.ac] patch from Patrick Pelissier to solve the problem with 24047 --with-gmp-build when the GMP build directory and the GMP 24048 source directory differ 24049 240502010-12-12 Vincent Lef��vre <vincent@vinc17.net> 24051 24052 [tests/Makefile.am] tversion is also run at the end (after a discussion 24053 with Patrick and Paul). 24054 24055 [configure.ac] Fixed two problems with --with-gmp-build: 24056 * "grep -w" isn't POSIX (an error shouldn't matter with recent GMP 24057 versions, as CFLAGS and CC would then be retrieved from gmp.h). 24058 * "sed" was used instead of "$SED". 24059 240602010-12-07 Vincent Lef��vre <vincent@vinc17.net> 24061 24062 [INSTALL] Added a section "If 'gmp.h' and 'libgmp' do not match". 24063 24064 [configure.ac] Improved warning message in case of unmatched 'gmp.h' 24065 and 'libgmp'. 24066 24067 [INSTALL] Update concerning "configure". 24068 240692010-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24070 24071 [NEWS] fixed news for 3.0.0 24072 240732010-12-03 Vincent Lef��vre <vincent@vinc17.net> 24074 24075 [tests/tversion.c] Now fail if the versions of gmp.h and libgmp do not 24076 match (error message improved); previously, the warning could remain 24077 unnoticed, in particular with automatic installations. 24078 240792010-11-30 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24080 24081 Added metaMPFR in the tools directory of MPFR. 24082 240832010-11-29 Vincent Lef��vre <vincent@vinc17.net> 24084 24085 [src/mpfr.h] Defined MPFR_DEPRECATED to mark MPFR functions, types 24086 or variables as deprecated. 24087 240882010-11-25 Vincent Lef��vre <vincent@vinc17.net> 24089 24090 [tests/tui_pow.c] Updated a comment. 24091 240922010-11-23 Vincent Lef��vre <vincent@vinc17.net> 24093 24094 [tools/mpfrlint] Support BSD sed. 24095 240962010-11-19 Vincent Lef��vre <vincent@vinc17.net> 24097 24098 [tools/mpfrlint] Detect the use of __mpfr_struct structure members 24099 in .c files. 24100 24101 [src/min_prec.c] Replaced x->_mpfr_d by MPFR_MANT(x). 24102 241032010-11-18 Vincent Lef��vre <vincent@vinc17.net> 24104 24105 [src/mpfr-impl.h] Commented out the declaration of mpfr_round_raw_3 24106 (since this function is no longer defined). 24107 24108 [src/min_prec.c] Major simplification of mpfr_min_prec by using 24109 mpn_scan1 (suggestion by Andreas Enge). 24110 241112010-11-15 Vincent Lef��vre <vincent@vinc17.net> 24112 24113 [src/mpfr-impl.h] Added a comment about mpn_sqr_n. 24114 241152010-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24116 24117 [algorithms.tex] replaced reference to Graillat05 by earlier one (Higham02) 24118 241192010-11-12 Vincent Lef��vre <vincent@vinc17.net> 24120 24121 [tools/nightly-test] Added a comment about the use of -pedantic-errors. 24122 241232010-11-10 Vincent Lef��vre <vincent@vinc17.net> 24124 24125 [src/sub1.c] Minor simplification. 24126 24127 [tests/tpow.c] Avoid warnings if mpfr_exp_t < long. 24128 241292010-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24130 24131 [mul.c] fixed bug introduced in revision 7183, and reported by Brian Gladman 24132 on Windows, where mpfr_exp_t has 32 bits and mp_limb_t has 64 bits 24133 241342010-11-09 Vincent Lef��vre <vincent@vinc17.net> 24135 24136 [src/mpfr.h] Use only mpfr_* types in __MPFR_EXP_* macro definitions 24137 (should have been done in r7236). 24138 24139 [src/mpfr.h] Changed a "void" into a "mpfr_void" in a macro definition 24140 (should have been done in r7236). 24141 24142 [tests/tset_si.c] Added testcase for problem fixed in r7236. 24143 241442010-11-08 Vincent Lef��vre <vincent@vinc17.net> 24145 24146 [src/mpfr.h] Removed some useless casts that where added in r7121 and 24147 r7236 (such casts prevented the compiler from emitting diagnostics in 24148 incorrect calls). 24149 24150 [tests/Makefile.am] Added a comment (warning about LOADLIBES). 24151 241522010-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24153 24154 [taway.c] reduced time of the test 24155 241562010-10-25 Vincent Lef��vre <vincent@vinc17.net> 24157 24158 Mentioned --enable-gmp-internals in INSTALL and NEWS. 24159 241602010-10-24 Vincent Lef��vre <vincent@vinc17.net> 24161 24162 [tests/taway.c] Added a FIXME (test is too long on old machines). 24163 24164 [acinclude.m4] Corrected comment for PowerPC. 24165 241662010-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24167 24168 added tuning parameters for HPPA (on HP-UX machine kindly provided by David 24169 Kirkby) 24170 241712010-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24172 24173 [powerpc32/mparam.h] added more info on processor and operating system used 24174 24175 needed stuff to use src/powerpc32/mparam.h file 24176 (note that long double is IEEE double on PowerPC32) 24177 24178 [powerpc32/mparam.h] param file for powerpc32 (made on PowerPC 604 under AIX) 24179 241802010-10-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24181 24182 [tuneup.c] added cast from time_t to long, after warning under HP-UX: 24183 tuneup.c:1131: warning: format '%ld' expects type 'long int', but argument 3 has type 'time_t' 24184 tuneup.c:1133: warning: format '%ld' expects type 'long int', but argument 2 has type 'time_t' 24185 (I don't know if it is because time_t is unsigned, or has a different width) 24186 241872010-10-22 Vincent Lef��vre <vincent@vinc17.net> 24188 24189 [src/mpfr.h] Added a space. 24190 24191 [src/mpfr.h] Avoid some problems with macro expansion if the user 24192 defines macros with the same name as keywords. 24193 [doc/mpfr.texi] Document the use of macros. 24194 241952010-10-22 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24196 24197 Included the new /arch/mparam.h files into the dist. 24198 241992010-10-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24200 24201 Cosmetic change: the constant MPFR_TUNE_CASE is now defined in mparam_h.in. 24202 Hence the files src/some-architecture/mparam.h are now simply obtained by 24203 performing 'make tune' on some architecture and copying the resulting 24204 src/mparam.h to src/some-architecture/mparam.h. 24205 24206 Typo. 24207 24208 Up-to-date thresholds. 24209 242102010-10-20 Vincent Lef��vre <vincent@vinc17.net> 24211 24212 [tests/tsub.c] mp_prec_t -> mpfr_prec_t 24213 24214 [src/sub1.c] Removed trailing spaces. 24215 242162010-10-19 Vincent Lef��vre <vincent@vinc17.net> 24217 24218 [tests/*.c] Support the case where mpfr_exp_t is not a long int 24219 (but with such a future extension, one should probably provide 24220 a MPFR_PRIexp macro, similar to what <inttypes.h> does). 24221 24222 [tests/texceptions.c] Added casts, in case mpfr_exp_t is not a long int. 24223 242242010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24225 24226 [tset_ld.c] replaced hexadecimal long double constants by decimal constants 24227 242282010-10-19 Vincent Lef��vre <vincent@vinc17.net> 24229 24230 [tests/tset_ld.c] Added a FIXME for r7222 change. 24231 242322010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24233 24234 [set_ld.c] fixed bug #11300 on bug tracker 24235 [tset_ld.c] added corresponding tests 24236 24237 [algorithms.tex] modified proof of mpfr_sub in accordance with source code 24238 242392010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24240 24241 this is a tree of all possible cases that can happen for rounding in mpfr_sub 24242 (file sub1.c) for rounding to nearest. 24243 24244 The nodes at depth 1 of the tree correspond to the 3 possible cases before 24245 rounding: (1) sh=0, (2) sh>0 and the low sh bits are 1/2 ulp, (3) sh>0 and 24246 the low sh bits are 0. 24247 24248 The nodes at depth 2 represent the possible subcases for k=0 in the rounding 24249 loop. 24250 24251 The nodes at depth 3 represent the possible subcases for k=1 in the rounding 24252 loop. 24253 242542010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24255 24256 [src/sub1.c] fixed another remaining issue in case 1d1 24257 (case sh=0, i.e., the result uses a full number of limbs, 24258 the first neglected limbs of b and c match, 24259 and for the next limbs, low(b) > low(c)). 24260 This case was incorrectly rounded up (add_one_ulp). 24261 [tests/tsub.c] added more test cases 24262 24263 [tgmpop.c] in case of error, print mpz_t in decimal instead of binary 24264 24265 [tuneup.c] increase maximal number of calls to speed_measure from 5 to 30 24266 (seems to solve problems on gcc15) 24267 242682010-10-18 Vincent Lef��vre <vincent@vinc17.net> 24269 24270 [tests/tcan_round.c] Removed an incorrect cast, fixing a bug (in the 24271 test) that was producing a failure for GMP_CHECK_RANDOMIZE=1287710095 24272 on 64-bit machines (visible since mpfr_prec_t is now signed). 24273 24274 [src/sub1.c] Removed trailing whitespace. 24275 242762010-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24277 24278 [sub1.c] previous fix was not incorrect (but strangely our tests cases did 24279 not exhibit that) 24280 [tfma.c] added more test cases from Jakub Jelinek 24281 24282 [sub1.c] fixed bug found by Jakub Jelinek (#11301 on tracker) 24283 242842010-10-18 Vincent Lef��vre <vincent@vinc17.net> 24285 24286 [doc/mpfr.texi] Updated the month. 24287 24288 [tests/tsub.c] Fixed inex test in bug20101017. 24289 242902010-10-18 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24291 24292 Mention the warning message displayed by gcc when the ABI of gcc and MPFR 24293 differ. 24294 24295 Note: the message does not automatically imply the problem; however, if the 24296 message appears, the ABI somehow differ, so it is worth mentioning it. 24297 Users might look for the message in INSTALL in order to see if their problem is 24298 mentioned. 24299 243002010-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24301 24302 [INSTALL] added "Notes about ABI" section 24303 243042010-10-18 Vincent Lef��vre <vincent@vinc17.net> 24305 24306 [tests/tsub.c] Updated comment of bug20101017. 24307 24308 [tests/tsub.c] Added testcase for bug found by Jakub Jelinek 24309 (bug 11301 on INRIAGforge). 24310 243112010-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24312 24313 [tuneup.c] print size when speed_measure fails 24314 243152010-10-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24316 24317 [mpfr.texi] added that the 'N' mode rounds ties to even in the mpfr*printf 24318 functions 24319 243202010-10-15 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24321 24322 Reorganized mparam_h.in in separate files. 24323 Added mpfr_buildopt_tune_case function. 24324 243252010-10-14 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24326 24327 Modified the number of iterations in the loop of mpfr_speed_measure. 24328 243292010-10-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24330 24331 [tuneup.c] new function mpfr_speed_measure, which calls speed_measure() several 24332 times (currently 30) until there is no failure. 24333 In case all 30 calls fail, give some hints to the user. 24334 243352010-10-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24336 24337 [tuneup.c] try again when speed_measure returns -1.0 (i.e. fails) 24338 also check return value of speed_measure in all cases 24339 (was not done for mulhigh, sqrhigh and divhigh, reported 24340 by Sylvain Chevillard) 24341 243422010-10-12 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24343 24344 Small indication explaining what is the negative threshold for Ai. 24345 243462010-10-10 Vincent Lef��vre <vincent@vinc17.net> 24347 24348 [src/mpfr-impl.h] Added MPFR_UEXP macro to check (in debug mode) that 24349 a value is nonnegative before a cast to mpfr_uexp_t. 24350 [src/add1.c] Use the MPFR_UEXP macro to make sure that the avoided 24351 warning doesn't hide a real bug. 24352 243532010-10-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24354 24355 avoid several compiler warnings with g++ 24356 24357 [nightly-test] added -Wno-sign-compare for g++, to avoid spurious warnings 24358 24359 [nightly-test] do not use -Wmissing-prototypes for g++ 24360 24361 [add1.c] fixed compiler warning (from g++) 24362 243632010-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24364 24365 [src/mulders.c] fixed comment 24366 243672010-10-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24368 24369 [sqrt.c,mulders.c] added missing cast (detected by nightly builds with g++) 24370 243712010-10-01 Vincent Lef��vre <vincent@vinc17.net> 24372 24373 [src/mulders.c] Untabified. 24374 243752010-09-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24376 24377 [src/mulders.c] fixed comments about error analysis in short product, 24378 and improved short division code 24379 243802010-09-30 Vincent Lef��vre <vincent@vinc17.net> 24381 24382 Removed trailing spaces and untabified several files. 24383 24384 [src/mul.c] Added comments concerning the latest changes about mulhigh. 24385 243862010-09-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24387 24388 [src/mulders.c] removed leftover debug stuff 24389 243902010-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24391 24392 [src/mulders.c] added new function mpfr_divhigh_n() for short division 24393 (not used yet), fixed comments and added error analysis 24394 in mpfr_mulhigh_n() and mpfr_sqrhigh_n() 24395 [src/sqrt.c] fixed ill-placed MPFR_TMP_MARK 24396 [src/mparam_h.in] added default MPFR_DIVHIGH_TAB for mpfr_divhigh_n() 24397 [src/round_p.c] typo 24398 [src/mpfr-impl.h] added prototype for mpfr_divhigh_n 24399 [src/mul.c] added comment, simplified code 24400 [tune/tuneup.c] added tuning for mpfr_divhigh_n(), increased MAX_STEPS to get 24401 a better tuning (will take longer), set tolerance to 1.0 24402 24403 added new option --enable-gmp-internals to use GMP undocumented function 24404 (at user's own risk). So far only mpn_rootrem is used in mpfr_sqrt. 24405 24406 [doc/README.dev] added comment about mpn_rootrem 24407 244082010-09-28 Vincent Lef��vre <vincent@vinc17.net> 24409 24410 [configure.ac] Added a FIXME note about incorrect use of an internal 24411 GMP symbol (__gmpn_rootrem). 24412 244132010-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24414 24415 [src/sqrt.c] followup to previous commit: only compute an extra limb of the 24416 square root for rounding to nearest (for directed rounding, it 24417 suffices to know if the remainder is zero or not) 24418 24419 [src/sqrt.c] now uses mpn_rootrem (if available) instead of mpn_sqrtrem since 24420 mpn_rootrem is faster. Also refactored the code: now compute one 24421 more limb of the square root when the target precision is a 24422 multiple of GMP_NUMB_LIMB. This greatly simplifies the code. 24423 24424 [src/sqrt.c] simplified computation of sticky bit 24425 244262010-09-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24427 24428 [mulders.c] fixed typo 24429 244302010-09-27 Vincent Lef��vre <vincent@vinc17.net> 24431 24432 [src/mulders.c] Replaced MPFR_ASSERTD with constant expression 24433 by MPFR_ASSERTN. 24434 24435 [tools/mpfrlint] Added a test: 24436 Constant checking should use MPFR_ASSERTN, not MPFR_ASSERTD. 24437 244382010-09-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24439 24440 [mulders.c] modified mpfr_sqrhigh_n threshold so that it is > n/2 24441 244422010-09-27 Vincent Lef��vre <vincent@vinc17.net> 24443 24444 [acinclude.m4] Added a FIXME concerning autoconf 2.68. 24445 244462010-09-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24447 24448 [mulders.c] use mpn_lshift instead of mpn_add_n, and improved the default 24449 Mulders cutoff k beyond 1024 limbs (extrapolated from the cutoff 24450 k for n=1023 on Core 2, and checked experimentally it is faster) 24451 244522010-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24453 24454 [tuneup.c] changed lower bound for exp_2 threshold from MPFR_PREC_MIN (2) to 24455 GMP_NUMB_BITS. Seems to be better (since for p=2 the 2nd routine 24456 was sometimes already faster). 24457 24458 [mul.c] another changes for Mulders' algorithm in case of a square 24459 244602010-09-24 Vincent Lef��vre <vincent@vinc17.net> 24461 24462 [src/mul.c] Change in r7166 was incomplete. Fixed suspicious code. 24463 244642010-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24465 24466 [mparam_h.in] updated for 64-bit Core2 24467 24468 now use Mulders' algorithm also for mpfr_sqr, provides nice speed improvement 24469 in all functions that perform squarings 24470 244712010-09-21 Vincent Lef��vre <vincent@vinc17.net> 24472 24473 [doc/mpfr.texi] API compatibility section: noted that mpfr_urandom 24474 and mpfr_urandomb changed for MPFR 3.1. 24475 244762010-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24477 24478 [INSTALL] update about "make tune" 24479 244802010-09-21 Vincent Lef��vre <vincent@vinc17.net> 24481 24482 [doc] Updated FAQ.html with update-faq. 24483 244842010-09-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24485 24486 Indicated the location of README.dev. 24487 244882010-09-19 Vincent Lef��vre <vincent@vinc17.net> 24489 24490 [NEWS] Minor update. 24491 244922010-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24493 24494 [NEWS] inform the users that mpfr_add_one_ulp and mpfr_sub_one_ulp will be 24495 removed 24496 244972010-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24498 24499 [TODO] added efficiency item 24500 245012010-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24502 24503 replaced calls to mpfr_printf by calls to mpfr_dump 24504 (mpfr_printf might not be defined) 24505 24506 [NEWS,doc/mpfr.texi] updated: the GMP random functions do not depend on the 24507 computer word size 24508 245092010-09-15 Vincent Lef��vre <vincent@vinc17.net> 24510 24511 [tools/mpfrlint] Check for mpfr_printf-like functions in the tests. 24512 24513 [doc/mpfr.texi] Updated the month. 24514 245152010-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24516 24517 [doc/mpfr.texi] added notes for mpfr_urandom and mpfr_urandomb 24518 24519 [Makefile.am] updated LOADLIBES with reorganization of the sources 24520 24521 [algorithms.tex] added sections for pow_ui and root 24522 24523 [src/urandom.c] now mpfr_urandom also returns identical values on 32-bit and 24524 64-bit machines 24525 [tests/turandom.c] modified corresponding test 24526 24527 replaced mpfr_printf in tests by calls to mpfr_out_str 24528 245292010-09-15 Vincent Lef��vre <vincent@vinc17.net> 24530 24531 [doc/README.dev] Updated the paragraph added in r7137. 24532 24533 [doc/README.dev] Added a paragraph about the use of system-dependent 24534 functions in the test suite. 24535 24536 Some minor corrections in comments. 24537 24538 [src/printf.c] Typo in a comment. 24539 24540 [src/printf.c] Slight modification of a comment. 24541 245422010-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24543 24544 [urandomb.c] modified to leave the GMP random generator in the same state, 24545 independent of GMP_NUMB_BITS 24546 [trandom.c] test of the above 24547 [urandom.c] added FIXME's 24548 [turandom.c] check we leave the GMP random generator in the same state, 24549 independent of GMP_NUMB_BITS. Currently this fails on 64-bit 24550 computers. 24551 24552 [urandomb.c] added comment + slight change 24553 245542010-09-01 Vincent Lef��vre <vincent@vinc17.net> 24555 24556 [src/mpfr.h] Added casts to improve robustness in case of undefined 24557 behavior and compiler extensions based on UB (in particular -fwrapv). 24558 MPFR doesn't use such extensions, but these macros will be used by 24559 3rd-party code, where such extensions may be required. 24560 24561 [src/mpfr.h] Updated a comment concerning -Wconversion. 24562 24563 [src/mpfr.h] Added casts to unsigned long in mpfr_cmp_si and mpfr_set_si 24564 macros for GCC, in order to avoid warnings in programs that use MPFR and 24565 are compiled with -Wconversion (suggestion by Andreas Enge); such casts 24566 are OK since if X is a constant expression, then (unsigned long) X is 24567 also a constant expression, so that the optimizations still work. 24568 Reformatted these macros. 24569 24570 [src/mpfr.h] Fixed bug in the mpfr_cmp_ui macro for GCC (also used 24571 by mpfr_cmp_si), when the evaluation of the first argument yields 24572 side effects and the second argument is a constant expression with 24573 the value 0. 24574 24575 [tests/tcmp_ui.c] Added side-effect tests similar to those in tset_si.c, 24576 showing a bug in the mpfr_cmp_ui and mpfr_cmp_si macros. 24577 24578 [tests/tcmp_ui.c] Check mpfr_cmp_ui and mpfr_cmp_si macros against 24579 side effects in the arguments. 24580 24581 [src/mpfr.h] Added a comment about the macros that use 24582 __builtin_constant_p. 24583 245842010-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24585 24586 [tsqrt.c] improved comment, and added test sqrt(+0) == +0 24587 245882010-08-29 Vincent Lef��vre <vincent@vinc17.net> 24589 24590 [tests/tsqrt.c] Renamed check_nan() to check_singular(). 24591 24592 [tests/tsqrt.c] Check that sqrt(-0) has a negative sign. 24593 245942010-08-26 Vincent Lef��vre <vincent@vinc17.net> 24595 24596 [INSTALL] Replaced "patches" by "allpatches". 24597 245982010-08-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24599 24600 [configure.ac] fixed typo 24601 246022010-08-23 Vincent Lef��vre <vincent@vinc17.net> 24603 24604 [src/gmp_op.c] Extend the exponent range in mpfr_cmp_q and mpfr_cmp_f. 24605 24606 [src/gmp_op.c] In mpfr_add_q / mpfr_sub_q, check with MPFR_ASSERTN 24607 that an internal overflow/underflow doesn't occur. In theory, such 24608 an exception is possible, but only if q has a huge numerator or 24609 denominator. This is not supported (note: other problems may occur 24610 first, such as insufficient memory). 24611 24612 [tests/tgmpop.c] Added overflow tests for mpfr_add_q / mpfr_sub_q. 24613 24614 [tests/{mpfr-test.h,tests.c}] Added flags_out function to output flags. 24615 24616 [src/gmp_op.c] Extend the exponent range in mpfr_add_q / mpfr_sub_q 24617 (overflow/underflow exceptions are not supported yet). 24618 [tests/tgmpop.c] Added corresponding testcases. 24619 246202010-08-19 Vincent Lef��vre <vincent@vinc17.net> 24621 24622 [src/gmp_op.c] Fixed the Inf +/- Inf cases for mpfr_add_q / mpfr_sub_q. 24623 [tests/tgmpop.c] Added Inf +/- Inf tests. 24624 246252010-08-19 Philippe Th��veny <philippe.theveny@laposte.net> 24626 24627 [tests/tgmpop.c] Fix rounding mode in overflow tests 24628 246292010-08-19 Vincent Lef��vre <vincent@vinc17.net> 24630 24631 [src/gmp_op.c] The function mpfr_cmp_z could fail in a reduced 24632 exponent range. 24633 [tests/tgmpop.c] Added a corresponding testcase. 24634 24635 [src/gmp_op.c] The functions mpfr_mul_z, mpfr_div_z, mpfr_add_z and 24636 mpfr_sub_z could fail in a reduced exponent range. Fixed. 24637 [tests/tgmpop.c] Added corresponding testcase. 24638 246392010-08-18 Vincent Lef��vre <vincent@vinc17.net> 24640 24641 [tests/tgmpop.c] Disabled buggy tests. 24642 24643 [src/gmp_op.c] Fixed the intermediate overflow case in mpfr_muldiv_z 24644 (for mpfr_mul_q and mpfr_div_q). 24645 24646 [src/gmp_op.c] Added function mpfr_muldiv_z (currently static -- should 24647 it be in the API?) that computes y = RND(x*n/d), where n and d are mpz 24648 integers. Changed mpfr_mul_q and mpfr_div_q to use this function. 24649 Note: the code of the general case is currently the same as the old 24650 mpfr_mul_q/mpfr_div_q code, thus needs to be fixed. 24651 24652 [tests/tgmpop.c] Replaced GMP_RNDN by MPFR_RNDN. 24653 24654 [tests/tgmpop.c] Added testcase for mpfr_mul_q/mpfr_div_q bug noted 24655 in src/gmp_op.c (due to intermediate overflow). 24656 246572010-08-17 Vincent Lef��vre <vincent@vinc17.net> 24658 24659 [src/logging.c] Added a comment about register_printf_function. 24660 24661 Added tools/ck-version-info Perl script with the same license as 24662 Makefile.am, to check consistency concerning -version-info and 24663 that the -version-info value is up-to-date. 24664 Updated Makefile.am: 24665 * In dist-hook, replaced complex sh code by a call to ck-version-info. 24666 * Distribute ck-version-info (EXTRA_DIST). 24667 24668 Updated svn:ignore properties. 24669 24670 [Makefile.am] Put tools/get_patches.sh back to EXTRA_DIST. 24671 24672 [src/Makefile.am] Fixed -version-info (I forgot to increment CURRENT). 24673 246742010-08-17 Vincent Lef��vre <vincent@vinc17.net> 24675 24676 Source reorganization. In short: 24677 * Added directories and moved related files into them: 24678 - src for the MPFR source files (to build the library). 24679 - doc for documentation files (except INSTALL, README...). 24680 - tools for various tools (scripts) and mbench. 24681 - tune for tuneup-related source files. 24682 - other for other source files (not distributed in tarballs). 24683 Existing directories: 24684 - tests for the source files of the test suite (make check). 24685 - examples for examples. 24686 - m4 for m4 files. 24687 * Renamed configure.in to configure.ac. 24688 * Added/updated Makefile.am files where needed. 24689 * Updated acinclude.m4 and configure.ac (AC_CONFIG_FILES line). 24690 * Updated the documentation (INSTALL, README, doc/README.dev and 24691 doc/mpfr.texi). 24692 * Updated NEWS and TODO. 24693 * Updated the scripts now in tools. 24694 24695 The following script was used: 24696 24697 #!/usr/bin/env zsh 24698 svn mkdir doc other src tools tune 24699 svn mv ${${(M)$(sed -n '/libmpfr_la_SOURCES/,/[^\]$/p' \ 24700 Makefile.am):#*.[ch]}:#get_patches.c} mparam_h.in \ 24701 round_raw_generic.c jyn_asympt.c src 24702 svn mv mbench check_inits_clears coverage get_patches.sh mpfrlint \ 24703 nightly-test update-patchv update-version tools 24704 svn mv bidimensional_sample.c speed.c tuneup.c tune 24705 svn mv *.{c,h} other 24706 svn mv FAQ.html README.dev algorithm* faq.xsl fdl.texi mpfr.texi \ 24707 update-faq doc 24708 svn mv configure.in configure.ac 24709 svn cp Makefile.am src/Makefile.am 24710 svn rm replace_all 24711 [Modifying some files, see above] 24712 svn add doc/Makefile.am 24713 svn add tune/Makefile.am 24714 247152010-08-16 Vincent Lef��vre <vincent@vinc17.net> 24716 24717 [Makefile.am] Updated -version-info (the interface hasn't really been 24718 changed yet -- though the future bug fix / rewrite of mpfr_mul_q and 24719 mpfr_div_q could be seen as an addition -- but this eases maintenance 24720 and avoids -version-info conflict with the 3.0 branch). 24721 24722 [bidimensional_sample.c] Added copyright notice. 24723 24724 [ai.c] Prototype clean-up. 24725 247262010-08-16 Vincent Lef��vre <vincent@vinc17.net> 24727 24728 Avoid a compilation failure on OSF/1 (Tru64) 5.1 due to non-C99 24729 conformance though <inttypes.h> is available. In various source 24730 files and m4 files, use the following form only: 24731 24732 #if HAVE_INTTYPES_H 24733 # include <inttypes.h> 24734 #endif 24735 #if HAVE_STDINT_H 24736 # include <stdint.h> 24737 #endif 24738 24739 Updated README.dev to mention this form. 24740 247412010-08-13 Vincent Lef��vre <vincent@vinc17.net> 24742 24743 [tests] Avoid warning due to -Wunused-but-set-variable (from future 24744 GCC 4.6). Only let the one from tsubnormal.c because it's a TODO. 24745 * mpf_compat.h: use the variables, that are there for prototype 24746 checking. 24747 * tpow.c, tpow_z.c: test the ternary value. 24748 * tremquo.c: removed inex variables (the bug due to the MPFR value). 24749 * tset.c: test the ternary value. 24750 * tset_ld.c: removed the long double variable (it cannot be tested 24751 in a portable way and the bug was an assertion failure). 24752 * tzeta_ui.c: removed the inexact variable (not really useful here). 24753 24754 [get_f.c] Avoid warning due to -Wunused-but-set-variable (from 24755 future GCC 4.6). 24756 24757 [gamma.c] Avoid warning due to -Wunused-but-set-variable (from 24758 future GCC 4.6). 24759 24760 [gmp_op.c] Avoid warning due to -Wunused-but-set-variable (from 24761 future GCC 4.6). 24762 24763 [exp_2.c] No longer define qn and sizer, which are no longer used since 24764 r6919. This was detected by gcc-snapshot (4.6.0 prerelease) under Debian 24765 (-Wunused-but-set-variable). 24766 24767 [NEWS] Update. 24768 24769 [ieee_floats.h] Avoid breaking aliasing-rules when _GMP_IEEE_FLOATS is 24770 defined (e.g. with --with-gmp-build), by replacing a struct by a union 24771 like in r6381 for long double. 24772 24773 [configure.in] Removed useless slash. 24774 247752010-08-12 Vincent Lef��vre <vincent@vinc17.net> 24776 24777 [NEWS] Prepare for new version 3.1.0. 24778 24779 [README.dev] Removed obsolete paragraph about the old prepare script. 24780 24781 [update-version] Detect errors. 24782 24783 Updated FAQ.html with update-faq. 24784 24785 [faq.xsl] Do not copy XML comments. 24786 24787 Updated FAQ.html with update-faq. 24788 24789 [README.dev] INRIAGforge -> INRIAGForge. 24790 24791 [README] Update: 24792 * InriaGforge -> INRIAGForge (official typography). 24793 * Updated URL of the Subversion FAQ (now on apache.org). 24794 * README.dev provided via SVN only. 24795 * Removed the old note about the old CVS repository. 24796 247972010-08-11 Vincent Lef��vre <vincent@vinc17.net> 24798 24799 [gmp_op.c] mpfr_mul_q and mpfr_div_q are still buggy; added comment. 24800 24801 [tests/tgmpop.c] Added missing "static". 24802 248032010-08-11 Philippe Th��veny <philippe.theveny@laposte.net> 24804 24805 gmp_op.c: Fix ternary value returned by mpfr_mul_q and mpfr_div_q in overflow cases. 24806 248072010-08-04 Vincent Lef��vre <vincent@vinc17.net> 24808 24809 README.dev: updated "To make a release" (test of FP division by 0). 24810 24811 Support implementations where the floating-point division by 0 fails. 24812 * acinclude.m4: added a test to check whether the FP division by 0 24813 fails, and define MPFR_ERRDIVZERO in such a case. 24814 * tests/tests.c: if MPFR_TEST_DIVBYZERO is defined, test whether 24815 there has been a floating-point division by 0 (FE_DIVBYZERO or 24816 FE_INVALID exception). 24817 * tests/tgeneric.c: if MPFR_ERRDIVZERO is defined, disable the 24818 huge and tiny cases. 24819 * tests/t*_{flt,d,ld}.c: if MPFR_ERRDIVZERO is defined, disable 24820 tests involving NaN and infinities. 24821 24822 [README.dev] Update about the compilers. 24823 24824 [README.dev] Mention clang. 24825 24826 [get_sj.c] Fixed bug found by John Regehr: 24827 https://gforge.inria.fr/tracker/index.php?func=detail&aid=10839&group_id=136&atid=619 24828 Note: the problem was an undefined behavior that could occur when 24829 sizeof(mp_limb_t) < sizeof(intmax_t) and |x| was small enough, 24830 because a right shift was >= the type width. However as the shifted 24831 value was 0, most platforms should not be affected by this bug. This 24832 problem was detected with clang -fcatch-undefined-ansic-behavior. 24833 24834 [tests/tget_sj.c] Added tests of 1 and -1. 24835 24836 [get_sj.c] Added assertions concerning 24837 https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=10839&group_id=136 24838 24839 [configure.in] When logging is enabled, remove the possible -pedantic 24840 from GMP's CFLAGS to avoid warnings about C conformance. 24841 24842 [mpfr-impl.h] Reverse-merged changeset r7042. The code was not 24843 incorrect: the warning is due to the -pedantic from GMP's CFLAGS. 24844 24845 [mpfr-impl.h] Correction to avoid GCC warnings 24846 warning: invalid storage class for function 'x_f' 24847 warning: invalid storage class for function '__mpfr_log_cleanup' 24848 when building MPFR with logging support. 24849 248502010-08-03 Vincent Lef��vre <vincent@vinc17.net> 24851 24852 [mpfrlint] Correction for the future MPFR source structure. 24853 24854 [mpfrlint] Execute check_inits_clears. 24855 24856 [check_inits_clears] Correction. 24857 248582010-08-02 Vincent Lef��vre <vincent@vinc17.net> 24859 24860 [Makefile.am] Moved ieee_floats.h from EXTRA_DIST to libmpfr_la_SOURCES. 24861 24862 [Makefile.am] Clean-up: removed gen_inverse.h from EXTRA_DIST because 24863 it is already in libmpfr_la_SOURCES. 24864 248652010-08-01 Vincent Lef��vre <vincent@vinc17.net> 24866 24867 [mparam_h.in] Removed the comment about the dependency bug. 24868 (svn merge -r7032:7031 mparam_h.in) 24869 24870 [Makefile.am] Added "BUILT_SOURCES = mparam.h", fixing bug 24871 https://gforge.inria.fr/tracker/index.php?func=detail&aid=10810&group_id=136&atid=619 24872 24873 [mparam_h.in] Added a comment concerning the bug in the mparam.h dependency rule: 24874 https://gforge.inria.fr/tracker/index.php?func=detail&aid=10810&group_id=136&atid=619 24875 24876 [mparam_h.in] Enable C mode for Emacs. 24877 24878 [mparam_h.in] Deleted trailing whitespace. 24879 24880 [mparam_h.in] Bug fix: added a newline at the end of the file. 24881 248822010-07-30 Vincent Lef��vre <vincent@vinc17.net> 24883 24884 Replaced 24885 Contributed by the Arenaire and Cacao projects 24886 by 24887 Contributed by the Arenaire and Caramel projects 24888 24889 [AUTHORS] Updated a sentence. 24890 24891 Added configure.lineno (generated by configure) to svn:ignore property. 24892 248932010-07-29 Vincent Lef��vre <vincent@vinc17.net> 24894 24895 [README.dev] For announces, changed mpfr into mpfr-announce. 24896 248972010-07-26 Vincent Lef��vre <vincent@vinc17.net> 24898 24899 [ai.c] Replaced mp_exp_t by mpfr_exp_t. 24900 249012010-07-25 Vincent Lef��vre <vincent@vinc17.net> 24902 24903 [ai.c] Fixed several bugs in mpfr_ai. 24904 249052010-07-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24906 24907 Updated bidimensional_sample to take into account the fact the mpfr_ai1 and mpfr_ai2 are now statically defined. 24908 24909 mpfr_ai1 and mpfr_ai2 are now declared static. Only mpfr_ai is global. 24910 24911 Forgot a declaration in the previous commit. 24912 249132010-07-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24914 24915 Added automatic tuning of mpfr_ai. 24916 24917 More precisely: 24918 * removed ai2.c: both implementations are now in the same file ai.c 24919 * added thresholds and automatic choice of the method to use in function of the thresholds. 24920 * added procedures for tuning functions like ai into tuneup.c 24921 * added a tuning procedure into tuneup.c 24922 249232010-07-19 Vincent Lef��vre <vincent@vinc17.net> 24924 24925 [tests/tget_flt.c] Fixed printf strings (missing backslash). 24926 249272010-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24928 24929 [tget_flt.c] completed previous commit 24930 24931 [tget_flt.c] print more information in case a test fails 24932 249332010-07-09 Vincent Lef��vre <vincent@vinc17.net> 24934 24935 [gamma.c] Added an assert concerning the mpfr_exp_t size. 24936 24937 [tests/tgamma.c] Use mpfr_set_str instead of mpfr_set_d. 24938 24939 [exp_2.c] Untabified. 24940 249412010-07-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24942 24943 [gamma.c] fixed bug reported on MPFR list: 24944 https://sympa.inria.fr/sympa/arc/mpfr/2010-07/msg00001.html 24945 In the underflow detection: 24946 * we took log instead of log2 24947 * at the end, we added the wrong terms 24948 249492010-07-01 Vincent Lef��vre <vincent@vinc17.net> 24950 24951 [mpfr-impl.h] Added a comment concerning the 'noreturn' property. 24952 249532010-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24954 24955 [exp_2.c] added 3 more bits to initial working precision. On a sample of 20247 24956 tests by Sylvain Chevillard with precisions in [50, 100], the number 24957 of Ziv's failures decreased from 1184 to 144, which is less than 1% 24958 (to reduce to zero, we would have to increase the number of extra 24959 bits from 8 to 17). 24960 249612010-06-28 Vincent Lef��vre <vincent@vinc17.net> 24962 24963 [round_prec.c] Applied a patch from Patrick P��lissier (with 24964 slightly modified comments) to make mpfr_prec_round compatible 24965 with non-mpfr_init allocation methods when no realloc is needed. 24966 249672010-06-25 Vincent Lef��vre <vincent@vinc17.net> 24968 24969 [acinclude.m4] Use AC_FUNC_ALLOCA to have HAVE_ALLOCA_H defined 24970 when available. This problem was introduced when AC_FUNC_ALLOCA 24971 was removed from configure.in in r6765. Note: building MPFR with 24972 --with-gmp-build is not affected as GMP's config.h is used. 24973 24974 [mpfr-gmp.h] Reverted incorrect changeset r6987 (see code about alloca). 24975 249762010-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24977 24978 [mpfr-gmp.h] include alloca.h 24979 24980 [mpfr.texi] added comment about config.log 24981 249822010-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24983 24984 [exp_2.c] fixed problem reported by Sylvain Chevillard for large x, where the 24985 cancelled bits were counted twice 24986 249872010-06-24 Vincent Lef��vre <vincent@vinc17.net> 24988 24989 [tests/tfprintf.c] Cosmetic improvement suggested by Denis Excoffier. 24990 249912010-06-23 Vincent Lef��vre <vincent@vinc17.net> 24992 24993 [README.dev] Minor change to match a filename on the website. 24994 24995 [tests/tout_str.c] Fixed bug introduced in r6976: changed size_t into 24996 unsigned int for printf (the size of unsigned int is sufficient here). 24997 249982010-06-22 Vincent Lef��vre <vincent@vinc17.net> 24999 25000 [out_str.c] Handle the output errors. 25001 25002 [out_str.c] Handle output error in the special cases of mpfr_out_str 25003 (and use MPFR_IS_SINGULAR like in the other functions). 25004 250052010-06-22 Philippe Th��veny <philippe.theveny@laposte.net> 25006 25007 Fix wrong return value of mpfr_out_str on special values. 25008 250092010-06-22 Vincent Lef��vre <vincent@vinc17.net> 25010 25011 Updated version to 3.1.0-dev. 25012 25013 [README.dev] Added a paragraph about the precision, rounding mode and 25014 exponent types. 25015 25016 In mpfrlint, detect the use of mp_exp_t and mp_prec_t. 25017 Fixed the files that were generating warnings. 25018 250192010-06-22 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 25020 25021 I forgot to replace one occurrence of isqrt. 25022 25023 Use of __gmpfr_isqrt instead of my own isqrt wrapper. 25024 25025 Added a tool for nicely displaying which method is the best in function of x 25026 and prec when several method can be used for evaluating a given function f in x 25027 at precision prec. 25028 250292010-06-21 Vincent Lef��vre <vincent@vinc17.net> 25030 25031 [Makefile.am] Fixed dist-hook for -dev versions (I assumed that || 25032 and && were right associative, while they are left associative). 25033 Thanks to Laurent Rineau for noticing this problem. 25034 250352010-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25036 25037 [exp_2.c] fixed inefficiency for large x: the initial precision was too small, 25038 which had the effect that the first Ziv iteration did fail with 25039 non-negligible probability (problem reported by Sylvain Chevillard). 25040 Also in case of 2 iterations or more the K variable was corrupted. 25041 Note (2012-03-03): huge inefficiency has been noticed when evaluating 25042 mpfr_exp on an argument close to log(2^n) in RNDU: 25043 https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00000.html 25044 One has an obvious hard-to-round case, meaning that several iterations 25045 are needed and that K is corrupted. This changeset fixes this bug. 25046 250472010-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25048 25049 [INSTALL] added note about problem with MSVC runtime (seems to be fixed) 25050 25051 [Makefile] alternate patch to r6959 from Patrick Pelissier 25052 25053 [INSTALL] comments from Vincent Lefevre 25054 25055 [mbench] fixes to make mbench work again (tested with GCC 4.4.3) 25056 25057 [INSTALL] updated notes on Windows (contributed by Brian Gladman) 25058 250592010-06-10 Vincent Lef��vre <vincent@vinc17.net> 25060 25061 [tests/Makefile.am] Reordered check_PROGRAMS. 25062 25063 [README.dev] Untabified. 25064 25065 [BUGS] Update. 25066 250672010-06-09 Vincent Lef��vre <vincent@vinc17.net> 25068 25069 [INSTALL] Added a note on Mac OS X; thanks to FX Coudert and Fumihiro 25070 Chiba: https://sympa.inria.fr/sympa/arc/mpfr/2010-06/msg00011.html 25071 250722010-06-08 Vincent Lef��vre <vincent@vinc17.net> 25073 25074 [INSTALL] Update concerning CC/CFLAGS and the --with-gmp-build option. 25075 250762010-06-07 Vincent Lef��vre <vincent@vinc17.net> 25077 25078 [NEWS] Added an item about the --with-gmp-build configure option and 25079 the use of GMP's internal header files. 25080 250812010-06-06 Vincent Lef��vre <vincent@vinc17.net> 25082 25083 [exp_2.c] Reverted incorrect optimization patch r6922 (added a comment). 25084 There were failures on 32-bit machines. 25085 25086 [mpfr-impl.h] Added log messages for the MPFR_GROUP_* macros. 25087 25088 [mpfrlint] Detect incorrect use of MPFR_LOG_MSG. 25089 25090 [ai2.c] Fixed build failure with --enable-logging, due to incorrect 25091 MPFR_LOG_MSG usage (see README.dev). 25092 25093 README.dev: updated "To make a release". 25094 25095 [ai.c] Fixed build failure with --enable-logging, due to incorrect 25096 MPFR_LOG_MSG usage (see README.dev). 25097 250982010-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25099 25100 [exp_2.c] speed improvement using MPFR_GROUP_* (from Patrick Pelissier): 25101 Pass 69 25102 mpfr_add: 63 / 102.97 / 126 25103 mpfr_exp: 430 / 11861.26 / 46588 25104 Was before we removed MY_MPZ_INIT: 25105 Pass 50 25106 mpfr_add: 63 / 103.09 / 126 25107 mpfr_exp: 430 / 10911.86 / 44215 25108 251092010-06-04 Vincent Lef��vre <vincent@vinc17.net> 25110 25111 [exp_2.c] Removed useless and possibly incorrect cast 25112 (in case -q doesn't necessarily fit in an int). 25113 251142010-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25115 25116 [exp_2.c] got rid of MY_INIT_MPZ, small slowdown, but code should be more 25117 robust. Below are timings from Patrick Pelissier with mbench: 25118 mpz_init: 25119 Pass 78 25120 mpfr_add: 63 / 102.86 / 126 25121 mpfr_exp: 441 / 12067.81 / 47355 25122 25123 MY_MPZ_INIT 25124 Pass 50 25125 mpfr_add: 63 / 103.09 / 126 25126 mpfr_exp: 430 / 10911.86 / 44215 25127 25128 Prec=53 bits (core 2 duo 64 bits) 25129 251302010-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25131 25132 [exp_2.c] fixed problem reported by Sylvain Chevillard with following code 25133 and MPFR_EXP_2_THRESHOLD=36 (valgrind complains). 25134 It was due to the fact that GMP might allocate extra limbs, 25135 see https://gmplib.org/list-archives/gmp-devel/2010-June/001577.html. 25136 The fix is not optimal in the sense that GMP does not give a bound 25137 on the allocated memory, thus we can only guess. 25138 25139 #include "mpfr.h" 25140 int main(void) { 25141 mpfr_t x,w; 25142 25143 mpfr_init2(x, 37); 25144 mpfr_init2(w, 37); 25145 mpfr_set_str(x, "-1.000001100100100001111110110101010001p+20", 2, MPFR_RNDN); 25146 mpfr_exp (w, x, MPFR_RNDN); 25147 25148 mpfr_clear (w); 25149 mpfr_clear (x); 25150 25151 return 0; 25152 } 25153 251542010-06-03 Vincent Lef��vre <vincent@vinc17.net> 25155 25156 [acinclude.m4] Math library check: removed rule specific to HP-UX 25157 (only -lM was tested while this library may not be available; so, 25158 let's use the default rule as -lm works). 25159 25160 [mpfr.texi] Arenaire -> Ar��naire. 25161 251622010-06-02 Vincent Lef��vre <vincent@vinc17.net> 25163 25164 [NEWS] 3.0 -> 3.0.0. 25165 25166 [NEWS] Added test coverage for MPFR 3.0.0. 25167 251682010-05-31 Vincent Lef��vre <vincent@vinc17.net> 25169 25170 [INSTALL] Added missing blank lines (consistency). 25171 25172 [tests/tset_z_exp.c] Fixed type in a printf. 25173 251742010-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25175 25176 [INSTALL] added instructions for "make tune" 25177 25178 [README.dev] completed missing instructions for "make tune" 25179 25180 [tset_z_exp.c] fixed two FIXME 25181 251822010-05-31 Vincent Lef��vre <vincent@vinc17.net> 25183 25184 [tests/tset_z_exp.c] Added 2 FIXME in the test. 25185 25186 [tests/tset_z_exp.c] Removed testcase bug20100531 (this was a bug in 25187 the test, which didn't detect overflow cases due to too large random 25188 exponent). 25189 25190 [tests/tset_z_exp.c] Added testcase bug20100531. 25191 25192 [mpfr.texi, NEWS] Update related to r6879: "Made defined the previously 25193 undefined cases of mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj, 25194 mpfr_get_z and mpfr_get_z_2exp. In such cases, the erange flag is set.". 25195 25196 [mpfr.texi] Corrected mpfr_atan2 range (added in r6831). 25197 251982010-05-28 Vincent Lef��vre <vincent@vinc17.net> 25199 25200 [mpfr.texi] Made an example fit on 80 columns for the info manual. 25201 25202 [mpfr.texi] Changed some @math into @var in the mpfr_fmod description 25203 (for consistency). 25204 25205 [mpfr.texi] Corrected a paragraph. 25206 25207 [mpfr.texi] Added an example to get the MPFR version (and at the same 25208 time, check whether MPFR is already installed). 25209 25210 Added examples/version.c (and updated Makefile.am). 25211 25212 [mpfr.texi] Correction (English usage). 25213 25214 [Makefile.am] Improved dist-hook rule. 25215 252162010-05-27 Philippe Th��veny <philippe.theveny@laposte.net> 25217 25218 Fix typo. 25219 252202010-05-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25221 25222 [TODO] removed one item, added one 25223 25224 [mpfr.texi] removed FIXME (resolved: Philippe confirmed that gmp_printf does 25225 not work with mpf2mpfr.h) 25226 252272010-05-25 Vincent Lef��vre <vincent@vinc17.net> 25228 25229 Made defined the previously undefined cases of mpfr_get_si, mpfr_get_ui, 25230 mpfr_get_sj, mpfr_get_uj, mpfr_get_z and mpfr_get_z_2exp. In such cases, 25231 the erange flag is set. 25232 252332010-05-25 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 25234 25235 * 80 columns. 25236 25237 do ... while(0) style for macros. 25238 252392010-05-25 Vincent Lef��vre <vincent@vinc17.net> 25240 25241 [NEWS] Correction. 25242 25243 [mpfr.texi] Minor changes. 25244 25245 [INSTALL] Reverted incorrect changeset r6870. 25246 25247 [mpfr.texi] Added a comment about non-ASCII characters. 25248 252492010-05-25 Philippe Th��veny <philippe.theveny@laposte.net> 25250 25251 More explicit documentation on the use of specifiers in printf function. 25252 252532010-05-25 Vincent Lef��vre <vincent@vinc17.net> 25254 25255 [mpfr.texi] Encoding correction for ��. 25256 25257 [NEWS, mpfr.texi] mpfr_custom_get_mantissa was renamed to 25258 mpfr_custom_get_significand. 25259 25260 [tests/tstckintc.c] Changed mpfr_custom_get_mantissa into 25261 mpfr_custom_get_significand (but mpfr_custom_get_mantissa 25262 was still working thanks to the #define). 25263 25264 [mpfr.h, stack_interface.c] Changed mpfr_custom_get_mantissa into 25265 mpfr_custom_get_significand (r6862 was incomplete). 25266 25267 [mpfr.h] <stdint.h> support: also test _STDINT (for MS Visual Studio). 25268 Thanks to Brian Gladman for the information. 25269 25270 [buildopt.c] Missing #include "mpfr-impl.h" for cygwin builds. 25271 [mpfrlint] Detect such errors (mpfr-impl.h may be needed because it 25272 includes config.h when there is one). 25273 252742010-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25275 25276 [mpfr.texi] more changes after answers by Vincent to my questions 25277 252782010-05-24 Vincent Lef��vre <vincent@vinc17.net> 25279 25280 [NEWS] Reformat / fixed typography. 25281 25282 [sub1sp.c] Fixed a problem that appeared after mpfr_prec_t has been 25283 made signed. It was visible on PowerPC (tested on Linux 32 bits and 25284 on Mac OS X 32 & 64 bits), but could potentially affect any platform 25285 as a negative shift count was generated. As the faulty expressions 25286 were in a MPFR_ASSERTD, the failure could occur only when assertion 25287 checking had been enabled. 25288 252892010-05-22 Vincent Lef��vre <vincent@vinc17.net> 25290 25291 [README.dev] Removed trailing spaces. 25292 25293 [README.dev] Added information about intmax_t and corresponding macros. 25294 25295 Detect when the intmax_t type is available but INTMAX_MAX doesn't work 25296 (e.g. with gcc -ansi -pedantic-errors in 32-bit mode under GNU/Linux). 25297 New macros MPFR_UINTMAX_MAX, MPFR_INTMAX_MAX and MPFR_INTMAX_MIN are 25298 defined and used internally instead of UINTMAX_MAX, INTMAX_MAX and 25299 INTMAX_MIN. If these C99 macros work, then the MPFR_* macros use them, 25300 otherwise MPFR uses its own definitions. 25301 25302 mpfr_div_ui8 and mpfr_mul_ui5 didn't have to be exported. 25303 25304 [ai2.c] GNU style. 25305 25306 [ai2.c] Style correction (necessary for ansi2knr, if still useful). 25307 25308 [ai.c, ai2.c] Untabified / removed trailing spaces. 25309 25310 [ai.c] GNU style. 25311 25312 [mpfr.texi] Corrected the paragraph about whether MPFR is installed. 25313 25314 [mpfr.texi] Corrections and answers to PZ comments from r6831. 25315 The document encoding is now UTF-8. 25316 253172010-05-21 Vincent Lef��vre <vincent@vinc17.net> 25318 25319 [mpfr.texi] n-char-sequence was changed into n-char-sequence-opt 25320 in r6132, but I forgot to update all the occurrences. 25321 253222010-05-21 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 25323 25324 * Removed double precision numbers. 25325 * Handle +0 and -0 the same way. 25326 * Use MPFR_GET_EXP in ai2.c 25327 253282010-05-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 25329 25330 * Corrected a bug when x=0 (MPFR_GET_EXP requires to assert that x!=0). 25331 25332 Corrected some warnings. 25333 25334 Corrected an error that prevented the doc from compiling. 25335 253362010-05-20 Vincent Lef��vre <vincent@vinc17.net> 25337 25338 mpfr.texi: corrections. 25339 253402010-05-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25341 25342 [mpfr.texi] explain why mpfr_sum uses an array of pointers to mpfr_t 25343 25344 [mpfr.texi] changes after a complete reading of the documentation. 25345 There are some issues left that I don't know how to solve, 25346 they are marked with @c PZ in mpfr.texi. 25347 253482010-05-19 Vincent Lef��vre <vincent@vinc17.net> 25349 25350 [mpfr.texi, NEWS] Noted that the mpfr_ai implementation is incomplete 25351 and experimental. 25352 25353 [ai.c] Use MPFR_IS_SINGULAR. Added a FIXME comment for Ai(0). 25354 25355 Type corrections for C++ compilers (in particular, mpfr_rnd_t vs int). 25356 25357 [ai.c] Fixed possible problem in reduced exponent range. 25358 25359 Removed trailing spaces. 25360 253612010-05-19 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 25362 25363 * Removed some warnings. 25364 * More conform to GNU coding standards. 25365 253662010-05-19 Vincent Lef��vre <vincent@vinc17.net> 25367 25368 Removed obsolete patch-aclocal-icc and updated README.dev (about 25369 "To make a release"). 25370 25371 [Makefile.am] Added a comment concerning -version-info and MPFR 3.0.x. 25372 25373 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 25374 25375 [mpfr.texi] Preliminary interfaces are no longer preliminary. 25376 25377 [mpfr.texi] API Compatibility: mention the detection of the availability 25378 of intmax_t with C++ compilers. 25379 25380 [mpfr.texi] signness -> signedness (thanks to Philippe). 25381 25382 [mpfr.texi] Missing @code. 25383 25384 [mpfr.texi] Corrected C terminology (table -> array). 25385 253862010-05-18 Vincent Lef��vre <vincent@vinc17.net> 25387 25388 [mpfr.texi, NEWS] Mention that mpfr_ai is a new function in MPFR 3.0. 25389 25390 Removed obsolete prepare script (autoreconf does the same thing). 25391 253922010-05-18 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 25393 25394 * I added a new implementation of Airy Ai. This implementation uses Smith's 25395 algorithm. 25396 Currently, it is provided as a separate implementation mpfr_ai2. 25397 25398 * Please note that both mpfr_ai and mpfr_ai2 need to efficiently evaluate 25399 Gamma(1/3) and Gamma(2/3). This is provided by functions in the file 25400 gammaonethird.c 25401 25402 * There is no test file for mpfr_ai2 since it should quickly disappear behind 25403 a single implementation using the best of mpfr_ai and mpfr_ai2. 25404 However, if necessary, a test file can be obtained by copying tai.c and 25405 replacing mpfr_ai by mpfr_ai2 everywhere. 25406 25407 * I do not know if gammaonethird.c will remain like that in the future. Should 25408 we make this implementation available as a public MPFR function? In this case, 25409 I have to write a wrapper for providing a correctly rounded implementation. 25410 Moreover, it contains functions that could be interesting for the 25411 implementation of other functions (the functions mpfr_div_ui*). Maybe, it 25412 could be worth providing a file specially for this purpose. 25413 254142010-05-18 Vincent Lef��vre <vincent@vinc17.net> 25415 25416 [NEWS] Added release name. 25417 25418 [NEWS] Updated "Changes from versions 2.3.* to version 2.4.0" 25419 from MPFR 2.4.2. 25420 25421 [mpfr.texi] Completed Section 6.1 "Type and Macro Changes". 25422 25423 [mpfr.texi] Updated Section 6.1 "Type and Macro Changes". 25424 25425 [mpfr.texi] Missing space. 25426 25427 [mpfr.texi] Updated Section 6.1 "Type and Macro Changes". 25428 25429 [NEWS] A bit less ambiguous... 25430 25431 [NEWS] More details for mp_rnd_t/mpfr_rnd_t, like mp_prec_t/mpfr_prec_t. 25432 254332010-05-17 Vincent Lef��vre <vincent@vinc17.net> 25434 25435 Added "API Compatibility" section to the MPFR manual. 25436 TODO: Section 6.1 "Type and Macro Changes". 25437 25438 [NEWS] mpfr_strtofr now accepts bases from 37 to 62 (r5965). 25439 254402010-05-10 Vincent Lef��vre <vincent@vinc17.net> 25441 25442 INSTALL: updated section about MS Windows. 25443 25444 INSTALL: updated section about MS Windows. 25445 254462010-05-08 Vincent Lef��vre <vincent@vinc17.net> 25447 25448 [tests/tests.c] Fixed code when _MPFR_PREC_FORMAT != 3. 25449 254502010-05-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25451 25452 [tests/tests.c] fixed compiler warning (found by nightly tests) 25453 254542010-05-07 Vincent Lef��vre <vincent@vinc17.net> 25455 25456 New exponent type mpfr_exp_t for MPFR (replacing GMP's mp_exp_t). 25457 25458 [README.dev] Updated a paragraph concerning signed and unsigned types. 25459 25460 Changed the precision type mpfr_prec_t from an unsigned integer type 25461 into the corresponding signed integer type, in order to avoid problems 25462 due to the usual arithmetic conversions when mixing mpfr_prec_t and 25463 mp_exp_t in an expression. 25464 * NEWS: mentioned this change. 25465 * mpfr-impl.h: removed MPFR_INTPREC_MAX (which wasn't used) and updated 25466 the MPFR_UNSIGNED_MINUS_MODULO(S,A) macro, which assumed that A was 25467 unsigned; this macro now works even when A is signed. 25468 * mpfr.h: added mpfr_uprec_t; updated mpfr_prec_t and MPFR_PREC_MAX. 25469 * tests/tcheck.c: disabled a test on MPFR_PREC_MAX+1 with MPFR >= 3 25470 (this test doesn't work with a signed mpfr_prec_t and isn't needed). 25471 Note: all tests pass under GNU Linux x86 and x86_64. 25472 25473 [tests/tcheck.c] Forgot to remove a printf (added during testing). 25474 25475 [tests/tcheck.c] Support signed mpfr_prec_t (avoid integer overflow). 25476 25477 [tests/mpf_compat.h] Fixed prototype of function main. 25478 25479 [mpfr.h] Added a comment concerning the definition of MPFR_PREC_MAX. 25480 254812010-05-06 Vincent Lef��vre <vincent@vinc17.net> 25482 25483 print_rnd_mode.c: added an assertion so that we do not forget to update 25484 this file after a new rounding mode is added. 25485 254862010-05-03 Vincent Lef��vre <vincent@vinc17.net> 25487 25488 [mpfr.texi] Added a paragraph about multiple inclusions of mpfr.h and/or 25489 gmp.h header files. 25490 254912010-05-03 Philippe Th��veny <philippe.theveny@laposte.net> 25492 25493 Update documentation for mpfr_print_rnd_mode. 25494 254952010-05-03 Vincent Lef��vre <vincent@vinc17.net> 25496 25497 To avoid breaking the ABI when faithful rounding gets implemented, added 25498 MPFR_RNDF to the mpfr_rnd_t enum type now, and removed MPFR_RND_MAX from 25499 the enumeration (it is now defined as a macro in mpfr-impl.h). 25500 25501 fits_* (signed version): corrections and optimizations. 25502 25503 [fits_uintmax.c, fits_u.h] Some casts could be incorrect in the case 25504 mp_exp_t > mpfr_prec_t. Set prec to the int type since in practice, 25505 prec will be small enough to fit in an int. The fact that prec is now 25506 signed allows us to remove a useless test (also note that prec should 25507 be computed at compile time, so that this should be at least as fast). 25508 25509 [fits_uintmax.c, fits_u.h] Comments: doesn't -> don't 25510 25511 mpfr.texi: updated the month. 25512 255132010-05-03 Philippe Th��veny <philippe.theveny@laposte.net> 25514 25515 Add specifier 'Y' for the rounding away from zero mode in printf-like functions. 25516 255172010-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25518 25519 [mpfr.texi] removed obsolete mpfr_round_prec 25520 255212010-04-30 Vincent Lef��vre <vincent@vinc17.net> 25522 25523 [fits_intmax.c,fits_s.h] Added FIXME comments. 25524 25525 Optimized fits_u.h and made fits_uintmax.c like fits_u.h for the 25526 special numbers. 25527 25528 Optimized mpfr_fits_uintmax_p. 25529 25530 Changed mp_prec_t into mpfr_prec_t. 25531 255322010-04-19 Vincent Lef��vre <vincent@vinc17.net> 25533 25534 [configure.in] r6765 introduced non-POSIX syntax. Fixed. 25535 255362010-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25537 25538 [configure.in] check for GMP internal files only with --with-gmp-build 25539 255402010-04-12 Vincent Lef��vre <vincent@vinc17.net> 25541 25542 [NEWS] New function mpfr_regular_p (was added in r6417, 2009-09-14). 25543 255442010-04-07 Vincent Lef��vre <vincent@vinc17.net> 25545 25546 [mpfr-gmp.h] Fixed alloca prototype (bug detected by tcc 0.9.25 25547 under Linux/x86_64). 25548 255492010-03-24 Vincent Lef��vre <vincent@vinc17.net> 25550 25551 [mpfr.texi] Improved/corrected the documentation of functions 25552 mpfr_lgamma, mpfr_digamma, mpfr_j0/j1/jn, mpfr_y0/y1/yn, mpfr_agm, 25553 mpfr_hypot and mpfr_min_prec. 25554 25555 [mpfr.texi] Removed a "currently" that is no longer needed. 25556 25557 [mpfr.texi] Updated description of mpfr_atan2, now that IEEE 754-2008 25558 has been published and follows the same conventions as C99 for atan2. 25559 25560 [mpfr.texi] Updated description of mpfr_pow, now that IEEE 754-2008 25561 has been published and follows the same conventions as C99 for pow. 25562 (IEEE 754-2008 doesn't currently specify pow(��inf,non-zero), but 25563 I've suggested a correction for the errata page.) 25564 255652010-03-23 Vincent Lef��vre <vincent@vinc17.net> 25566 25567 [mpfr.texi] Improved documentation of mpfr_print_rnd_mode (from a 25568 suggestion by Chris Saunders). 25569 255702010-03-22 Vincent Lef��vre <vincent@vinc17.net> 25571 25572 [mpfr.texi] Various corrections and other improvements. 25573 25574 [mpfr.texi] Improved the documentation of mpfr_dim too. 25575 255762010-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25577 25578 [mpfr.texi] improved the documentation of mpfr_rec_sqrt and mpfr_cbrt 25579 (thanks Vincent) 25580 25581 [mpfr.texi] improved documentation of mpfr_sqrt and mpfr_sqrt_ui 25582 255832010-03-21 Vincent Lef��vre <vincent@vinc17.net> 25584 25585 [mpfr.h] Added a comment about integer overflows in macros. 25586 255872010-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25588 25589 [tai.c] enable first test of check_large, and reduced total time 25590 255912010-03-19 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 25592 25593 Added a mention about the current limitation of mpfr_ai in mpfr.texi. 25594 25595 Removed check of ai.c for large arguments. I added in algorithms.tex a 25596 mention about the fact that mpfr_ai is currently not made for large 25597 arguments. 25598 25599 * Corrected problems regarding the GNU recommendations for formatting source code. 25600 256012010-03-18 Vincent Lef��vre <vincent@vinc17.net> 25602 25603 tests: added tai to the svn:ignore property. 25604 256052010-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25606 25607 [tai.c] reduce the maximal exponents in test_generic() 25608 also reduce the number of random tests to decrease the test time 25609 256102010-03-18 Vincent Lef��vre <vincent@vinc17.net> 25611 25612 README.dev: in the tests, use mpfr_equal_p rather than mpfr_cmp. 25613 256142010-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25615 25616 [tai.c] replace mpfr_cmp by mpfr_equal_p 25617 256182010-03-18 Vincent Lef��vre <vincent@vinc17.net> 25619 25620 tests/tset_z_exp.c untabified. 25621 25622 mpfr.texi: removed trailing whitespace. 25623 25624 mpfr.texi: updated the month. 25625 25626 Untabified AUTHORS (consistency). 25627 256282010-03-18 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 25629 25630 * Corrected problems regarding the GNU recommendations for formatting source code. 25631 * Corrected the date of the copyright. 25632 256332010-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25634 25635 [tai.c] added test for large inputs 25636 25637 [AUTHORS] added Sylvain Chevillard 25638 256392010-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25640 25641 [mpfr.texi] added Sylvain as contributor 25642 256432010-03-17 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 25644 25645 * Added function mpfr_ai. The implementation is the most naive: it evaluates 25646 the series step by step until it can stop. 25647 A special strategy is used to detect possible problems when Ai(x) is very 25648 close to 0. 25649 25650 * Updated algorithms.tex with the technical description of the implementation 25651 of mpfr_ai. 25652 25653 * Added algorithm2e.sty and algorithm2e-compatibility.sty (necessary to 25654 compile algorithms.tex now). 25655 25656 * Updated mpfr.texi to let it know this new function. 25657 25658 * Added a basic test file for mpfr_ai. I will add other test cases later. 25659 25660 * Added a small HOWTO to README.dev about how to add a new test file for new 25661 functions. 25662 256632010-03-11 Vincent Lef��vre <vincent@vinc17.net> 25664 25665 GMP_RNDx -> MPFR_RNDx 25666 256672010-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25668 25669 [tstrtofr.c] added test for 1.23e, cf 25670 https://gmplib.org/list-archives/gmp-bugs/2010-March/001898.html 25671 256722010-03-11 Vincent Lef��vre <vincent@vinc17.net> 25673 25674 [tests/tsqrt.c] Add the test -1 <= x/sqrt(x^2) <= 1, which corresponds 25675 to -1 <= x/sqrt(x^2+y^2) <= 1 with y = 0. I don't think the test with 25676 random y is still necessary, though, since even a bad sqrt accuracy 25677 would not be detected. 25678 256792010-03-10 Vincent Lef��vre <vincent@vinc17.net> 25680 25681 [tests/tsqrt.c] Added a comment about the x/sqrt(x^2+y^2) test. 25682 256832010-03-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25684 25685 [tsqrt.c] fixed bug reported by Sam Rawlins 25686 (https://sympa.inria.fr/sympa/arc/mpfr/2010-03/msg00007.html) 25687 Note: this "bug" had no noticeable consequences; this can just be seen 25688 as an incomplete test. 25689 256902010-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25691 25692 [NEWS] added item 25693 256942010-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25695 25696 [acinclude.m4] now also recognize "IEEE double, little endian" long-double 25697 format (not tested, should happen on ARM) 25698 25699 [acinclude.m4] added recognition of "IEEE double big endian" long double format 25700 (tested on gcc40.fsffrance.org and gcc53, both PowerPC's) 25701 257022010-02-24 Vincent Lef��vre <vincent@vinc17.net> 25703 25704 [acinclude.m4] Added test for long double = double-double (GCC/PowerPC). 25705 This test cannot currently be reliable, so we just output a warning. 25706 257072010-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25708 25709 [NEWS] minor grammar fix 25710 25711 [NEWS] be more precise about API compatibility 25712 25713 [mpfr.h] added #define mpfr_get_z_exp mpfr_get_z_2exp for compatibility 25714 257152010-02-23 Vincent Lef��vre <vincent@vinc17.net> 25716 25717 tests: added tset_z_exp to the svn:ignore property. 25718 257192010-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25720 25721 changed mpfr_get_z_exp -> mpfr_get_z_2exp (old function) 25722 mpfr_set_z_exp -> mpfr_set_z_2exp (new function) 25723 25724 added new function mpfr_set_z_exp (companion to mpfr_get_z_exp) 25725 257262010-02-18 Vincent Lef��vre <vincent@vinc17.net> 25727 25728 * Added tests/tstdint.c to test the double inclusion of mpfr.h when only 25729 the second occurrence needs <stdint.h> (this can happen when one uses 25730 several libraries that use MPFR under different conditions). 25731 * Added tstdint to the svn:ignore property of "tests". 25732 * TODO: mentions that tstdint should be added to check_PROGRAMS in 25733 the tests/Makefile.am file once this is fixed. 25734 25735 mpfr.texi: updated Section "Internals". 25736 257372010-02-16 Vincent Lef��vre <vincent@vinc17.net> 25738 25739 mpfr.texi: updated the month. 25740 25741 mpfr.h: disable the INTMAX_C / UINTMAX_C test with C++ compilers as it 25742 doesn't work well in this case (e.g. possible failure with Boost); see 25743 https://sympa.inria.fr/sympa/arc/mpfr/2010-02/msg00025.html 25744 and the whole discussion. 25745 mpfr.texi: update. 25746 257472010-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25748 25749 [configure.in] removed check for C++ and Fortran compiler (comment said to 25750 remove it for libtool >= 2.0) 25751 257522010-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25753 25754 [TODO] dummy change to check if we still get commit mails 25755 257562010-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25757 25758 [mpfr.texi] added note about mpfr_set_str 25759 257602010-01-25 Vincent Lef��vre <vincent@vinc17.net> 25761 25762 Simplified get_patches.sh; minor consequence: the trailing space in 25763 the string returned by mpfr_get_patches() when there are patches is 25764 no longer present (this trailing space wasn't desired anyway). 25765 25766 configure.in: updated message for different gmp.h and libgmp versions. 25767 See <https://sympa.inria.fr/sympa/arc/mpfr/2010-01/msg00051.html>. 25768 257692010-01-20 Vincent Lef��vre <vincent@vinc17.net> 25770 25771 FAQ.html, faq.xsl, README, TODO: slightly changed the copyright notice 25772 to make it consistent with the one of the other files. In short, "and 25773 the GNU General Public License" has been removed, but it was ambiguous 25774 (we did not say which version of the GNU GPL) and useless (for GPLv3) 25775 because the LGPLv3 is compatible with the GPLv3: 25776 https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean 25777 25778 INSTALL: 25779 * added copyright notice (at the top, like GMP); 25780 * replaced "Installing MPFR" by "Installing GNU MPFR". 25781 25782 Copyright notice update: added 2010 with 25783 perl -pi -e 's/2009 Free Software/2009, 2010 Free Software/' **/*(^/) 25784 under zsh, reverting the ChangeLog file and the mbench directory. 25785 25786 tests: added turandom to the svn:ignore property. 25787 25788 INSTALL: updated paragraphs about the search paths (in particular, 25789 --with-gmp=/usr/local is no longer chosen as an example as it does 25790 not work as expected; a note has been added about that). 25791 25792 INSTALL: rewrote a paragraph about search paths. 25793 257942010-01-18 Philippe Th��veny <philippe.theveny@laposte.net> 25795 25796 [urandom.c] Fix case emin > 0. 25797 257982010-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25799 25800 [TODO] added more details for random distribution functions 25801 25802 [tprintf.c, tfprintf.c] cleaned up previous commit 25803 258042010-01-18 Vincent Lef��vre <vincent@vinc17.net> 25805 25806 tests/turandom.c: updated a test (if emin > 1 and rnd == MPFR_RNDN, 25807 then the result is necessarily 0). 25808 25809 tests/turandom.c: more tests in restricted exponent range. 25810 25811 urandom.c: corrected a comment. 25812 258132010-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25814 25815 [tprintf.c,tfprintf.c] print obtained chain in test #8 25816 (https://sympa.inria.fr/sympa/arc/mpfr/2009-12/msg00035.html) 25817 258182010-01-18 Philippe Th��veny <philippe.theveny@laposte.net> 25819 25820 [urandom.c] Fix bug in setting random exponent. 25821 258222010-01-16 Vincent Lef��vre <vincent@vinc17.net> 25823 25824 urandom.c: added a FIXME comment. 25825 258262010-01-15 Vincent Lef��vre <vincent@vinc17.net> 25827 25828 urandom.c: removed unused variable k; updated a comment. 25829 258302010-01-15 Philippe Th��veny <philippe.theveny@laposte.net> 25831 25832 [urandom.c] Improve generation of random exponent. 25833 25834 [urandom.c] Fix bug introduced in r6667. 25835 258362010-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25837 25838 [TODO] added item 25839 258402010-01-15 Philippe Th��veny <philippe.theveny@laposte.net> 25841 25842 [urandom.c] Fix case nextabove(0) in reduced exponent range. 25843 25844 [tests/turandom.c] Change accumulation of ternary value in the loop, it was not portable in system with sign and magnitude representation for integers. 25845 25846 [urandom.c] Move generation of a random rounding bit in a separate function. 25847 25848 [urandom.c] Remove trailing whitespace. 25849 25850 [urandom.c] Call mpfr_nextabove in maximum exponent range. 25851 258522010-01-15 Vincent Lef��vre <vincent@vinc17.net> 25853 25854 urandom.c: added a FIXME so that it is not forgotten. 25855 25856 mpfr.texi: updated the month. 25857 25858 mpfrlint: require bash. 25859 258602010-01-14 Vincent Lef��vre <vincent@vinc17.net> 25861 25862 urandom.c: clean-up (avoid a useless goto). 25863 25864 README.dev: added a paragraph (use MPFR_ASSERTN, not printf + exit). 25865 258662010-01-14 Philippe Th��veny <philippe.theveny@laposte.net> 25867 25868 [mpfr.texi] Cosmetic change. 25869 25870 [urandom.c, mpfr.texi] Change the behavior of mpfr_urandom to the usual mpfr function interface (wrt the ternary value and the out-of-range behavior). 25871 [tests/turandom.c] Check new behavior and add a test for the inclusion in [0, 1]. 25872 258732010-01-13 Philippe Th��veny <philippe.theveny@laposte.net> 25874 25875 New function mpfr_urandom. 25876 258772010-01-11 Vincent Lef��vre <vincent@vinc17.net> 25878 25879 README.dev: added a note about patches and the autotools. 25880 258812010-01-10 Vincent Lef��vre <vincent@vinc17.net> 25882 25883 Added mpfrlint test for the required autoconf versions (see r6649). 25884 258852010-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25886 25887 [README.dev] required version of autoconf did not agree with acinclude.m4 25888 258892010-01-08 Vincent Lef��vre <vincent@vinc17.net> 25890 25891 configure.in: replaced BITS_PER_MP_LIMB by GMP_NUMB_BITS (should have 25892 been done in r6645). 25893 25894 mpfrlint: check that GMP_LIMB_BITS isn't used. 25895 25896 Replaced GMP_LIMB_BITS by GMP_NUMB_BITS to use only one of these macros. 25897 258982010-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25899 25900 [configure.in] put back test BITS_PER_MP_LIMB == BYTES_PER_MP_LIMB * CHAR_BIT 25901 (this is done only with --with-gmp-build, and BYTES_PER_MP_LIMB 25902 is defined in this case in gmp-impl.h, at least in GMP 5) 25903 25904 BITS_PER_MP_LIMB -> GMP_LIMB_BITS 25905 got rid of BYTES_PER_MP_LIMB in configure.in (no longer defined by GMP) 25906 Note[VL] (mpfr-impl.h): a mpn_sqr_n() macro is defined to use mpn_mul 25907 if it is not already defined (in gmp-impl.h from GMP 4.x). 25908 259092009-12-23 Vincent Lef��vre <vincent@vinc17.net> 25910 25911 [mbench/Makefile] Patch from Patrick Pelissier to solve the -I problem 25912 with GCC. 25913 259142009-12-21 Vincent Lef��vre <vincent@vinc17.net> 25915 25916 [mbench/Makefile] Added a comment (warning about the use of -I). 25917 259182009-12-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25919 25920 patch from Patrick Pelissier 25921 259222009-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25923 25924 [scale2.c] added missing include (compilation with --with-gmp-build did fail) 25925 [exp_2.c] small improvements in Smith method: compute x^{2i} as (x^i)^2 instead 25926 of x^{i-1} * x. The error analysis is unchanged. 25927 [tuneup.c] fix for sin_cos threshold (we had a problem since mpfr_sin_cos 25928 was calling mpfr_cos, which was calling mpfr_sincos_fast in some 25929 cases 25930 [mparam_h.in] put new thresholds for Core 2 64-bit 25931 259322009-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25933 25934 [acinclude.m4] reversed order for case "quad, mais en little endian" for 25935 coherence with other cases 25936 259372009-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25938 25939 patch to recognize IEEE quad, little endian format for "long double" 25940 25941 [scale2.c] now mpfr_scale2 is included in mpfr-impl.h, instead of #including 25942 "scale2.c" twice (thus it was compiled twice) 25943 259442009-12-07 Vincent Lef��vre <vincent@vinc17.net> 25945 25946 sin_cos.c: in case of tiny inputs, keep the flags. In practice, this 25947 fixes the following bug in mpfr_sin_cos (shown by the latest additions 25948 to tsin_cos.c): if emin is the minimal exponent (MPFR_EMIN_MIN), the 25949 absolute value of the input is the minimum positive number and the 25950 rounding mode is toward 0 (or equivalent), then the underflow flag is 25951 dropped. The other exception cases (e.g., in case of reduced exponent 25952 range) are handled by mpfr_check_range(). 25953 25954 tests/tsin_cos.c: in consistency(), better error message. 25955 25956 tests/tsin_cos.c: in consistency(), improved testing on underflow case. 25957 25958 tests/tsin_cos.c: in consistency(), added testing on underflow case. 25959 25960 tests/tsin_cos.c: in consistency(), fixed flags testing. 25961 25962 tests/tsin_cos.c: in consistency(), test also the flags. 25963 25964 tests/tsin_cos.c: in consistency(), test also the returned value 25965 (the one that gives inexact-related information). 25966 259672009-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25968 25969 [tfits.c] converted to GNU coding style 25970 259712009-11-30 Vincent Lef��vre <vincent@vinc17.net> 25972 25973 README.dev: updated "To make a release". 25974 25975 uceil_exp2.c: fixed indentation. 25976 259772009-11-29 Vincent Lef��vre <vincent@vinc17.net> 25978 25979 mpfr-impl.h: got rid of broken code when _GMP_IEEE_FLOATS was defined 25980 (broken aliasing rules, yielding failures with GCC 4.5.0 20091119). 25981 259822009-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25983 25984 [tset_ld.c] now perform tests even if old gcc bug is present 25985 259862009-11-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25987 25988 [tget_d.c] removed workaround for old gcc bug. Comment was: 25989 /* workaround for gcc bug on m68040-unknown-netbsd1.4.1, 25990 where DBL_MIN gives (1-2^(-52))/2^1022 */ 25991 25992 [tadd.c, tmul.c] got rid of workaround for old gcc bug. Comment was: 25993 /* Parameter "z1" of check() used to be last in the argument list, but that 25994 tickled a bug in 32-bit sparc gcc 2.95.2. A "double" in that position is 25995 passed on the stack at an address which is 4mod8, but the generated code 25996 didn't take into account that alignment, resulting in bus errors. The 25997 easiest workaround is to move it to the start of the arg list (where it's 25998 passed in registers), this macro does that. FIXME: Change the actual 25999 calls to check(), rather than using a macro. */ 26000 26001 [strtofr.c] removed patch for old FreeBsd/Alpha bug 26002 (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=72024) 26003 260042009-11-26 Vincent Lef��vre <vincent@vinc17.net> 26005 26006 [pow_si.c] Updated comment added in r4355 concerning a bug 26007 in Sun's compiler for Solaris/x86. 26008 26009 Updated comments concerning the old FreeBSD bug 72024 on LONG_MIN / 1. 26010 260112009-11-25 Vincent Lef��vre <vincent@vinc17.net> 26012 26013 [tfprintf.c,tprintf.c] Fixed other types in function with variable 26014 arguments (even though there were no warnings on the tested machine). 26015 26016 [tfprintf.c,tprintf.c] Fixed types in function with variable arguments. 26017 260182009-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26019 26020 [tfprintf.c,tprintf.c] applied patch from Philippe Theveny 26021 [acinclude.m4] removed check for %zu, no longer needed 26022 26023 [acinclude.m4] added test for %zu 26024 [tfprintf.c,tprintf.c] added #ifdef's for NPRINTF_ZU 26025 260262009-11-25 Vincent Lef��vre <vincent@vinc17.net> 26027 26028 configure.in: corrected a comment. 26029 26030 tests/tstckintc.c: fixed types for the printf %p format specifier. 26031 260322009-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26033 26034 [tget_flt.c] replaced %a by %.8e 26035 26036 [tget_d.c,tget_ld_2exp.c] replaced %a and %La by %.16e and %.16Le 26037 26038 [tget_d.c] removed C99-specific instruction 26039 26040 [nightly-test] added -ansi -pedantic-errors 26041 260422009-11-24 Vincent Lef��vre <vincent@vinc17.net> 26043 26044 configure.in: completed the GMP CC/CFLAGS detection. 26045 26046 configure.in: added a test to check for CC and CFLAGS in gmp.h only 26047 when the user doesn't redefine them and he isn't cross-compiling. 26048 26049 configure.in: improved the GMP CC/CFLAGS detection. 26050 26051 configure.in: try to fix the GMP CC/CFLAGS detection. Not finished. 26052 26053 configure.in: replaced "test ... -o ..." (obsolete in POSIX) 26054 by "test ... || test ...". 26055 26056 configure.in: replaced "test ... -a ..." (obsolete in POSIX) 26057 by "test ... && test ...". 26058 26059 INSTALL: made instructions more clear. 26060 260612009-11-23 Vincent Lef��vre <vincent@vinc17.net> 26062 26063 README.dev: updated "To make a release". 26064 26065 README.dev: last things to do when making a release. 26066 260672009-11-22 Vincent Lef��vre <vincent@vinc17.net> 26068 26069 sin_cos.c: fixed a potential bug by changing a rnd_mode into MPFR_RNDZ 26070 in mpfr_can_round. Indeed, in r4574, the change from 26071 if (!mpfr_can_round (c, m, GMP_RNDZ, rnd_mode, MPFR_PREC (z))) 26072 to 26073 if (!mpfr_can_round (c, m, GMP_RNDN, rnd_mode, 26074 MPFR_PREC (z) + (rnd_mode == GMP_RNDN))) 26075 looks wrong to me: in RNDN, the extra bit due to rnd_mode == GMP_RNDN 26076 changes a RNDN worst case into a RNDZ worst case. 26077 Note: The second mpfr_can_round with the same problem has been fixed 26078 in r6513. 26079 26080 tests/tsin_cos.c: ported bug20091122 from the 2.4 branch to the trunk. 26081 But no failure in the trunk. 26082 260832009-11-20 Vincent Lef��vre <vincent@vinc17.net> 26084 26085 tests/tconst_pi.c: fixed types for C++. 26086 26087 Changeset r6162 broke Solaris builds. Fixed that by no longer checking 26088 INTMAX_MAX and UINTMAX_MAX to detect use of <stdint.h> / <inttypes.h>. 26089 260902009-11-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26091 26092 [cos.c] fixed case where reduced argument is zero 26093 260942009-10-30 Vincent Lef��vre <vincent@vinc17.net> 26095 26096 tcos.c: added a testcase yielding an assertion failure (this bug makes 26097 tsin_cos fail). 26098 26099 tests/tsin_cos.c: ported the consistency test from the 2.4 branch. 26100 This yields an assertion failure (Linux/x86_64). 26101 261022009-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26103 26104 [cache.c] fixed bug with directed rounding 26105 [tconst_pi.c] added test for bug with directed rounding 26106 261072009-10-21 Vincent Lef��vre <vincent@vinc17.net> 26108 26109 exceptions.c: improved a comment. 26110 26111 tpow.c: added an overflow test. 26112 26113 tpow.c: added an overflow test in RNDZ. 26114 261152009-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26116 26117 [TODO] added efficiency item 26118 261192009-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26120 26121 [lngamma.c] fixed typo, added comments about argument reduction, and replaced 26122 code using doubles 26123 26124 [TODO] added efficiency item 26125 261262009-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26127 26128 [exp.c] binary splitting is now used for prec >= MPFR_EXP_THRESHOLD 26129 (instead of prec > MPFR_EXP_THRESHOLD before). This is more 26130 consistent with the other thresholds. 26131 26132 [TODO] added efficiency item 26133 26134 [mparam_h.in] added /* bits */ for MPFR_EXP_THRESHOLD and MPFR_EXP_2_THRESHOLD 26135 261362009-10-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26137 26138 [tsin_cos.c] removed useless instruction, and added comments 26139 26140 [sin_cos.c] fixed call to mpfr_can_round (rounding mode was wrong) 26141 [tsin_cos.c] added new test 26142 26143 [li2.c] fixed bug when x is near 0 26144 [tli2.c] added new test 26145 261462009-10-09 Vincent Lef��vre <vincent@vinc17.net> 26147 26148 tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t. 26149 26150 tests/tsin_cos.c: added a comment about bug20091008, corresponding to 26151 r6507; in fact, the bug concerns only the return value (see r6444). 26152 261532009-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26154 26155 [sin_cos.c] fixed error analysis 26156 [tsin_cos.c] added new test 26157 261582009-10-07 Vincent Lef��vre <vincent@vinc17.net> 26159 26160 tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t. 26161 26162 tests/tsin_cos.c: removed trailing spaces. 26163 261642009-10-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26165 26166 [tsin_cos.c] changed binary to hexadecimal string (was too long for C89) 26167 26168 [sin_cos.c] fixed bug introduced in r6447 (some variables had their precision not updated in Ziv's loop) 26169 [tsin_cos.c] added a new test 26170 261712009-09-29 Vincent Lef��vre <vincent@vinc17.net> 26172 26173 FAQ update. 26174 261752009-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26176 26177 [mpfr.texi] added note about mpfr_can_round 26178 [tcan_round.c] added more tests 26179 261802009-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26181 26182 [README.dev] added item for new releases: we should say if they are binary 26183 and/or API compatible with previous releases (we often forgot 26184 to say it in the past) 26185 261862009-09-23 Vincent Lef��vre <vincent@vinc17.net> 26187 26188 tests: added tget_flt to the svn:ignore property. 26189 26190 tests/Makefile.am: added information about LOADLIBES. 26191 261922009-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26193 26194 [tests/Makefile.am] put back LOADLIBES=... (enables to compile a program foo.c 26195 in the test directory by simply doing "make foo") 26196 26197 [atan.c] updated the comments 26198 261992009-09-22 Vincent Lef��vre <vincent@vinc17.net> 26200 26201 atan.c: added a FIXME comment. 26202 26203 atan.c: added some assertions. 26204 262052009-09-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26206 26207 [atan.c] implemented argument reduction (cf error analysis in algorithms.tex) 26208 262092009-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26210 26211 [tests/Makefile.am] removed LOADLIBES=... 26212 262132009-09-20 Vincent Lef��vre <vincent@vinc17.net> 26214 26215 mpfrlint: check that lines aren't too long. 26216 26217 Makefile.am: line-wrap libmpfr_la_SOURCES (M-q with Emacs) for 26218 compatibility with some vendor grep. 26219 26220 Makefile.am, tests/Makefile.am: patch from Ralf Wildenhues. 26221 https://lists.gnu.org/archive/html/bug-automake/2009-09/msg00033.html 26222 262232009-09-18 Vincent Lef��vre <vincent@vinc17.net> 26224 26225 mpfr-impl.h, sin_cos.c, tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t. 26226 26227 sin_cos.c: GMP_RNDx -> MPFR_RNDx. 26228 26229 sin_cos.c: untabified. 26230 26231 frac.c, tests/tfrac.c: fixed underflow case in mpfr_frac and added 26232 testcase. 26233 262342009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26235 26236 [acos.c] initial working precision was too small 26237 262382009-09-18 Vincent Lef��vre <vincent@vinc17.net> 26239 26240 modf.c: no longer extend the exponent range at all, since there are 26241 no intermediate computations (note: the mpfr_frac bug that has just 26242 been fixed affected this change in modf.c). 26243 26244 [frac.c] Patch r6456 was incorrect: the problem with the non-significant 26245 bits had to be dealt with only in the case t = r. This is now fixed. 26246 26247 tests/tfrac.c: reverted overflow case test (was incorrect because the 26248 input was too large). 26249 26250 tests/tfrac.c: also test the overflow case. 26251 26252 tests/tfrac.c: more tests (case where the fractional part rounds to 1). 26253 262542009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26255 26256 [NEWS] added item 26257 26258 [sin.c,cos.c] use mpfr_sincos_fast when prec >= MPFR_SINCOS_THRESHOLD 26259 262602009-09-18 Vincent Lef��vre <vincent@vinc17.net> 26261 26262 tests/tfrac.c: more tests (there are also problems in rounding away 26263 from zero or equivalent). 26264 262652009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26266 26267 added tuning mechanism for mpfr_sin_cos 26268 262692009-09-18 Vincent Lef��vre <vincent@vinc17.net> 26270 26271 tests/tfrac.c: also test the ternary value (it is incorrect too). 26272 26273 frac.c: fixed bug in mpfr_frac (the non-significant bits in low limb 26274 were not cleared). 26275 26276 tests/tfrac.c: improved the testcase so that it triggers the bug for 26277 both 32 bits and 64 bits. 26278 26279 tests/tfrac.c: added a comment for latest testcase. 26280 26281 tests/tfrac.c: added testcase for bug in mpfr_frac. 26282 26283 tests/tmodf.c: typo in error message. 26284 26285 modf.c: extending the exponent range in the first two cases is useless 26286 because there are no intermediate computations (just a mpfr_set). Let's 26287 do that only for the general case. 26288 26289 tests/tmodf.c: added overflow tests. 26290 26291 modf.c: corrected a comment (rounding can yield an overflow, but not 26292 an underflow). 26293 262942009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26295 26296 [sin_cos.c] added asymptotically fast code, with threshold currently hardcoded 26297 at 20000 bits, should be determined by tuneup.c 26298 262992009-09-18 Vincent Lef��vre <vincent@vinc17.net> 26300 26301 Deleted trailing spaces. 26302 263032009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26304 26305 [modf.c] changed semantics of return value in accordance with mpfr_sin_cos 26306 263072009-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26308 26309 [sin_cos.c] more precise meaning of the return value 26310 [sinh_cosh.c] idem as above 26311 [taway.c] fixed to check the more precise return value 26312 263132009-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26314 26315 [mpfr.texi] t was not initialized in Newton's example 26316 263172009-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26318 26319 changed _binary32 into _flt for file names too: 26320 svn mv get_binary32.c get_flt.c 26321 svn mv set_binary32.c set_flt.c 26322 svn mv tests/tget_binary32.c tests/tget_flt.c 26323 26324 [TODO] removed an item 26325 [mpfr.texi] added an example for mpfr_prec_round 26326 26327 [NEWS] added mpfr_set_flt and mpfr_get_flt 26328 26329 changed suffix _binary32 -> _flt 26330 [get_binary32.c] fixed a bug in subnormal range 26331 263322009-09-15 Vincent Lef��vre <vincent@vinc17.net> 26333 26334 mpfrlint: bug fix. 26335 26336 mpfr.texi: updated the month. 26337 26338 mpfrlint: execute svn in C locale. 26339 26340 mpfrlint: check mpfr.texi's UPDATED-MONTH. 26341 263422009-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26343 26344 [tget_d.c] fixed FIXME 26345 263462009-09-15 Vincent Lef��vre <vincent@vinc17.net> 26347 26348 tget_d.c code is C99-only (bug introduced in r6424). Please fix! 26349 263502009-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26351 26352 [get_binary32.c] also forgot in previous commit 26353 26354 [set_binary32.c] file forgot in previous commit 26355 26356 added new functions mpfr_set_binary32 and mpfr_get_binary32 26357 fixed bug in mpfr_get_d and mpfr_get_decimal64 for RNDA 26358 26359 [mpfr.texi] improved description of mpfr_sum, and fixed typo 26360 263612009-09-14 Vincent Lef��vre <vincent@vinc17.net> 26362 26363 mpfr.h: added mpfr_regular_p macro. 26364 263652009-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26366 26367 [sum.c] added reference 26368 26369 [get_ld.c] fixed bug reported by Nelson Beebe 26370 https://sympa.inria.fr/sympa/arc/mpfr/2009-05/msg00061.html 26371 26372 [isregular.c] new function mpfr_regular_p 26373 [iszero.c] fixed typo in comment 26374 [tests/tisnan.c] added tests for mpfr_regular_p 26375 263762009-09-11 Vincent Lef��vre <vincent@vinc17.net> 26377 26378 vasprintf.c: changeset r6414 was incorrect, in particular under Linux 26379 (at least some platforms), where wint_t is an unsigned int, not an int. 26380 Instead, let's detect whether integer promotion will occur or not, even 26381 though the ISO C99 standard requires a wint_t type that doesn't yield 26382 an integer promotion (7.24.1#2), because mingw32 defines wint_t as an 26383 unsigned short (thus with integer promotion). 26384 263852009-09-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26386 26387 [vasprintf.c] https://sympa.inria.fr/sympa/arc/mpfr/2009-09/msg00012.html 26388 (changed __wint_type into int) 26389 263902009-09-08 Vincent Lef��vre <vincent@vinc17.net> 26391 26392 tests/tdigamma.c: added missing void in prototype. 26393 263942009-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26395 26396 [digamma.c] forgot to set sign for Psi(+Inf) 26397 263982009-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26399 26400 changed function into bernoulli.c (which was static, included 3 times) into 26401 an internal function mpfr_bernoulli_internal 26402 264032009-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26404 26405 [TODO] removed psi(=digamma) 26406 264072009-09-02 Vincent Lef��vre <vincent@vinc17.net> 26408 26409 tests/data/digamma: for the special values, use the new mode '*' 26410 (exact cases) instead of 'n'. 26411 26412 tests.c: added special support for exact cases in data_check (to test 26413 all the rounding modes and check the ternary value). 26414 26415 towards -> toward (consistency). 26416 26417 tests: added tdigamma to svn:ignore property. 26418 26419 digamma.c: moved a comment. 26420 264212009-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26422 26423 [digamma.c] fixed bug (emin/emax were not restored) 26424 [data/digamma] added special values 26425 [tests/tests.c] fix to allow putting nan in data/* files 26426 26427 [data/digamma] unitary test file for mpfr_digamma 26428 [tdigamma.c] now use data/digamma 26429 264302009-09-02 Vincent Lef��vre <vincent@vinc17.net> 26431 26432 Removed trailing whitespace. 26433 264342009-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26435 26436 bernoulli.c goes into EXTRA_DIST 26437 26438 [digamma.c] new function mpfr_digamma 26439 [lngamma.c,li2.c] factored computation of Bernoulli numbers in new file 26440 bernoulli.c (also used by digamma.c) 26441 264422009-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26443 26444 replaced obsolete GMP functions (suggested by Brian Gladman): 26445 1. mpz_div_2exp ==> mpz_fdiv_q_2exp 26446 2. mpz_div_ui ==> mpz_fdiv_q_ui 26447 3. gmp_randinit (state, GMP_RAND_ALG_LC, 128) ==> gmp_randinit_lc_2exp_size (state, 128) 26448 (Didn't replace mpn_divrem by mpn_tdiv_qr since the parameters differ, and also 26449 for efficiency reasons.) 26450 264512009-08-26 Vincent Lef��vre <vincent@vinc17.net> 26452 26453 tsprintf.c: fixed locale_da_DK test. 26454 264552009-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26456 26457 [csch.c,coth.c,csc.c,cot.c] fixed bug for tiny input and RNDA (result was 26458 rounded to zero instead of away) 26459 264602009-08-26 Vincent Lef��vre <vincent@vinc17.net> 26461 26462 tests/tsprintf.c: bug fix (uncommented an "exit(1);"). 26463 264642009-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26465 26466 [tgeneric.c] revert previous change, bug is elsewhere 26467 26468 [tgeneric.c] temporary fix in mpfr_can_round call (mpfr_can_round does not 26469 correctly handle MPFR_RNDA) 26470 264712009-08-26 Vincent Lef��vre <vincent@vinc17.net> 26472 26473 set_ld.c: replaced a struct by a union. The struct was triggering the 26474 following warning with GCC 4.4: 26475 dereferencing type-punned pointer will break strict-aliasing rules 26476 (possibly due to possible memory alignment problems). The old code 26477 looked strange anyway and unions are exactly for such kind of things. 26478 264792009-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26480 26481 [tset.c] removed unused variables 26482 264832009-08-25 Vincent Lef��vre <vincent@vinc17.net> 26484 26485 tcmp_ld.c: use "long double" constants. 26486 Note: this might solve the tcmp_ld failure reported on 26487 https://www.linuxquestions.org/questions/linux-from-scratch-13/mpfr-2-4-1-check-failures-in-lfs-6-5-rc2-746538/ 26488 (not tested). 26489 264902009-08-24 Vincent Lef��vre <vincent@vinc17.net> 26491 26492 NEWS: update (new function mpfr_set_zero, added in r6339). 26493 26494 mpfr.texi: NaN has a sign bit (in its binary representation), 26495 but as a FP datum, it does not have a sign. 26496 264972009-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26498 26499 [mpfr.texi] added mention of unspecified NaN sign bit for mpfr_set_nan 26500 265012009-08-21 Vincent Lef��vre <vincent@vinc17.net> 26502 26503 mpfr.texi: do not use @code for roundTiesToAway and binary64 as this is 26504 not code and the IEEE 754-2008 standard doesn't use special typography. 26505 26506 mpfr.texi: the sign bit of a NaN is unspecified. 26507 265082009-08-18 Vincent Lef��vre <vincent@vinc17.net> 26509 26510 Add examples into $docdir (without using a subdir, as this would be 26511 a bit bloated just to add a few files). 26512 * Added "examples" directory with a ReadMe file and 3 examples. 26513 * Makefile.am: added files from the "examples" directory and changed 26514 dist_doc_DATA into nobase_dist_doc_DATA so that the "examples" 26515 directory is not stripped in the target directory $docdir. 26516 * README: added "examples/". 26517 26518 get_str.c: corrected copyright notice, incorrectly modified in r6364. 26519 265202009-08-12 Philippe Th��veny <philippe.theveny@laposte.net> 26521 26522 mpfr.texi: Fix typo. 26523 26524 get_str.c: Format a comment. 26525 26526 get_str.c vasprintf.c: Add support for the rounding away from zero mode. 26527 mpfr.texi: MPFR_RNDA mode support in printf functions. 26528 tests/tsprintf.c tests/tget_str.c: Test MPFR_RNDA support. 26529 265302009-08-06 Vincent Lef��vre <vincent@vinc17.net> 26531 26532 NEWS: update. 26533 26534 Install some documentation files. 26535 265362009-08-05 Vincent Lef��vre <vincent@vinc17.net> 26537 26538 mpfr.texi: updated section "Installing MPFR". 26539 26540 mpfr.texi: corrected a spelling mistake. 26541 26542 Since GNU Automake 1.11 is available on too few platforms, removed its 26543 requirement (reverted to 1.10 requirement: 1.10.1 was needed only for 26544 dist-lzma, which has been removed). Instead, added hardcoded dist-xz 26545 support (tested with both Automake 1.10.2 and Automake 1.11). 26546 265472009-08-04 Vincent Lef��vre <vincent@vinc17.net> 26548 26549 configure.in: replaced dist-lzma by dist-xz (the xz format is the 26550 successor of the lzma format); as a consequence, automake 1.11 is 26551 needed. 26552 265532009-07-30 Vincent Lef��vre <vincent@vinc17.net> 26554 26555 Makefile.am, tests/Makefile.am: added copyright notice (similar to 26556 the one of the generated Makefile.in file). 26557 26558 Since COPYING.LESSER makes a reference to the GPLv3, updated COPYING 26559 to the GPLv3. Autotools files are now distributed under the same license 26560 as MPFR (to avoid any reference to the GPLv2). 26561 26562 Renamed COPYING.LIB as COPYING.LESSER (GNU Coding Standards, #7.3) 26563 and updated all the references (except in ChangeLog). 26564 26565 Added algorithms.fdb_latexmk to svn:ignore property. 26566 265672009-07-30 Philippe Th��veny <philippe.theveny@laposte.net> 26568 26569 tests/tset.c: With revision 6339, some tests were moved and added in the function check_special but this one was not called. 26570 26571 tests/Makefile.am: Strech check_PROGRAMS list to ease insertion of new tests. 26572 26573 Makefile.am: Sort tests in alphabetical order except the very first ones which are needed by the test suite itself. 26574 265752009-07-20 Philippe Th��veny <philippe.theveny@laposte.net> 26576 26577 vasprintf.c mpfr.texi: Change behavior with %Rf and an empty precision field. The default precision is now 6 with %Rf and %Rg. 26578 tests/tprintf.c tests/tfprintf.c tests/tsprintf.c: Change tests with empty precision field and %Rf. 26579 26580 Makefile.am mpfr.h mpfr.texi set_zero.c: New function mpfr_set_zero. 26581 tests/tset.c: Replace all MPFR_ASSERTN with verbose message. Add tests for mpfr_set_zero. 26582 265832009-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26584 26585 [INSTALL] hint about patch command 26586 265872009-07-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26588 26589 [mpn_exp.c] reverted previous change (MPN_ZERO is a macro for memset, which 26590 does not forbid zero size) 26591 26592 [coth.c, tcoth.c] fixed coth(+/0) which was wrong (reported by Christopher Creutzig) 26593 26594 [mpn_exp.c] fixed bug reported by David Kirkby on Solaris (GMP compiled with 26595 Solaris compiler) 26596 265972009-07-08 Vincent Lef��vre <vincent@vinc17.net> 26598 26599 vasprintf.c: typo in a comment. 26600 266012009-07-08 Philippe Th��veny <philippe.theveny@laposte.net> 26602 26603 vasprintf.c: Fix bug with %Rf, non-zero precision and a value rounded up to the next power of ten. 26604 266052009-07-08 Vincent Lef��vre <vincent@vinc17.net> 26606 26607 vasprintf.c: deleted trailing spaces. 26608 26609 tsprintf.c: added tests of some halfway cases. 26610 266112009-07-08 Philippe Th��veny <philippe.theveny@laposte.net> 26612 26613 vasprintf.c: Fix bug in precision 0 with format %.0Rf (0.5 rounds to 0). 26614 266152009-07-08 Vincent Lef��vre <vincent@vinc17.net> 26616 26617 tsprintf.c: added a test that triggers an assertion failure. 26618 26619 tsprintf.c: fixed a test and added more tests for %.0Rf with the even 26620 rounding rule (shows a bug added in the latest corrections). 26621 266222009-07-07 Vincent Lef��vre <vincent@vinc17.net> 26623 26624 tsprintf.c: completed the test on emax (for %Ra and %Rb). 26625 Everything is OK. 26626 26627 tsprintf.c: my test was incorrect (I forgot the R), sorry. 26628 Still completing it... 26629 26630 tsprintf.c: comment (so that the test can be ported to the 2.4 branch). 26631 26632 tsprintf.c: started to write a test for emax, showing a bug (random 26633 output). 26634 266352009-07-06 Vincent Lef��vre <vincent@vinc17.net> 26636 26637 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 26638 26639 mpfr.texi: updated the month. 26640 26641 mpfr.texi consistency: @var{stdout} -> @code{stdout}. 26642 26643 vasprintf.c: do not use a potential function call in SAFE_ABS macro. 26644 266452009-07-06 Philippe Th��veny <philippe.theveny@laposte.net> 26646 26647 vasprintf.c tests/tsprintf.c: deleted trailing spaces. 26648 266492009-06-29 Philippe Th��veny <philippe.theveny@laposte.net> 26650 26651 vasprintf.c: Fix bug when the value to be printed is rounded to the next power of ten with %Rf or %Rg (continuation of fix in r6278). 26652 tests/tsprintf.c: Add tests for rounding to next power of ten bug with %Rf or %Rg. 26653 266542009-06-26 Vincent Lef��vre <vincent@vinc17.net> 26655 26656 mp_exp_unsigned_t -> mpfr_uexp_t (internal type only). 26657 26658 mpfrlint: check the use of the obsolete mp_rnd_t type. 26659 26660 mp_rnd_t -> mpfr_rnd_t 26661 26662 Suppressed MPFR_CLEAR_FLAGS (no longer did anything). 26663 266642009-06-23 Vincent Lef��vre <vincent@vinc17.net> 26665 26666 mpfr.texi: updated the month. 26667 26668 mpfr.texi: fixed description of mpfr_get_str (clash with variables, 26669 inconsistent cases in the info format). 26670 26671 get_str.c: added a space. 26672 266732009-06-21 Vincent Lef��vre <vincent@vinc17.net> 26674 26675 vasprintf.c: corrected comments. 26676 266772009-06-19 Philippe Th��veny <philippe.theveny@laposte.net> 26678 26679 vasprintf.c: convert GMP_RNDx to MPFR_RNDx. 26680 26681 vasprintf.c: Add brace to disambiguate nested if, and remove unused variable. 26682 26683 tests/tfprintf.c tests/tprintf.c: Do not test very small values with %f. 26684 26685 vasprintf.c: Fix bug when the value to be printed is rounded to the next power of ten with %Rf or %Rg. 26686 tests/tsprintf.c: Add tests for rounding to next power of ten bug. 26687 266882009-06-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26689 26690 [TODO] added new functions to implement 26691 266922009-06-16 Philippe Th��veny <philippe.theveny@laposte.net> 26693 26694 sinh_cosh.c: precision of intermediate computation no more depends on precision of input variables. 26695 266962009-06-15 Vincent Lef��vre <vincent@vinc17.net> 26697 26698 mpfr.h: new MPFR_VALUE_OF macro, now used by mpfr_get_prec and 26699 mpfr_get_exp macros (this is cleaner than the old hack). 26700 267012009-06-14 Vincent Lef��vre <vincent@vinc17.net> 26702 26703 acinclude.m4: Make sure results of calculations on constants used with 26704 the fesetround() test are not precomputed by GCC (occurs on MIPS). 26705 Patch from Maciej W. Rozycki. 26706 https://sympa.inria.fr/sympa/arc/mpfr/2009-06/msg00036.html 26707 gmane.comp.lib.mpfr.general:174 26708 267092009-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26710 26711 [algorithms.tex] bounds for get_str were checked by Mark Dickinson 26712 267132009-06-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26714 26715 [algorithms.tex] fixed typo 26716 26717 [algorithms.tex] fixed and completed up to b=62 table of bounds for get_str 26718 [mpfr.texi] fixed description of case n=0 for get_str (case of powers of two 26719 bases was not coherent with the code) 26720 267212009-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26722 26723 [algorithms.tex] analyzed precisely the cases where the value is m+1 instead 26724 of m 26725 267262009-06-10 Vincent Lef��vre <vincent@vinc17.net> 26727 26728 acinclude.m4: reverted incorrect patch r6267 that makes the test 26729 no longer work on x86 (with traditional FPU, no SSE), where one 26730 should get 26731 checking for gcc float-conversion bug... yes, use -ffloat-store 26732 instead of 26733 checking for gcc float-conversion bug... no 26734 Indeed the "volatile" has the effect to have all the intermediate 26735 results x stored into memory, i.e. it is more or less equivalent 26736 to the -ffloat-store option, so that it does not allow one to test 26737 whether -ffloat-store is needed or not (which is the goal of this 26738 test). 26739 267402009-06-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26741 26742 [acinclude.m4] patch from Maciej W. Rozycki on mpfr mailing-list, 9 Jun 2009 26743 26744 added more test cases for the Bessel functions (from John Harrison paper at 26745 Arith19) 26746 267472009-06-04 Philippe Th��veny <philippe.theveny@laposte.net> 26748 26749 vasprintf.c: Binary output with no digit after the decimal point is now supported. Fix bug when the binary or hexadecimal output value is rounded to the next power of the base. This also change outputs like 0xf.f with format string "%.0Ra" from 8p+1 to 1p+4 (as does gnu libc's printf). 26750 tests/tsprintf.c: add check for rounding to the next base power and fix some test value with %.0Ra (now output 1p+4 instead of 8p+3). 26751 267522009-06-03 Philippe Th��veny <philippe.theveny@laposte.net> 26753 26754 mpfr-longlong.h: Update to newer GMP version (changeset 12418:12a1d0bf21f0 Sun Mar 01 23:47:31 2009 +0100), merging modifications from r4657. 26755 267562009-05-29 Vincent Lef��vre <vincent@vinc17.net> 26757 26758 vasprintf.c: do not use GMP's namespace for identifiers defined in MPFR. 26759 26760 README.dev: added: do not use the GMP namespaces... 26761 26762 mpfr.h: rewrote a comment. 26763 267642009-05-29 Philippe Th��veny <philippe.theveny@laposte.net> 26765 26766 vasprintf.c: Fix bug, "%%" was not correctly displayed when used alone or before a mpfr_t output. 26767 tests/tfprintf.c tests/tprintf.c: Fix expected values for tests with "%%". 26768 26769 mpfr.texi: Restate subsection Formatted Output Functions/Format String. 26770 267712009-05-28 Philippe Th��veny <philippe.theveny@laposte.net> 26772 26773 mpfr.texi: details on use of 'P' type in mpfr_printf. 26774 267752009-05-27 Philippe Th��veny <philippe.theveny@laposte.net> 26776 26777 NEWS: remind bug fixes since version 2.4.0. 26778 26779 set_d64.c: Partial revert of r6190 to fix problem in a simpler way: the decimal digits can be stored in array of char (no need to be unsigned). 26780 267812009-05-27 Vincent Lef��vre <vincent@vinc17.net> 26782 26783 mpfr.texi: updated the month. 26784 26785 tests/tfmod.c: deleted trailing whitespace. 26786 267872009-05-22 Philippe Th��veny <philippe.theveny@laposte.net> 26788 26789 tests/tatan.c: Add test triggering underflow (test coverage is now 100%). 26790 267912009-05-20 Vincent Lef��vre <vincent@vinc17.net> 26792 26793 tests/tgeneric.c: for the second computation, increase the precision 26794 of the inputs in order to trigger the mpfr_fmod bug fixed in r6230 26795 (and potentially other bugs). Thanks to Eric Veach for the idea. 26796 26797 Added tbuildopt to svn:ignore property of tests. 26798 267992009-05-20 Philippe Th��veny <philippe.theveny@laposte.net> 26800 26801 tests/tfmod.c: complete tests with special values. 26802 26803 tests/tfmod.c: code simplification + check ternary value too. 26804 268052009-05-20 Vincent Lef��vre <vincent@vinc17.net> 26806 26807 tests/tfmod.c: replaced NULL by (mpfr_ptr) 0 in mpfr_inits2/mpfr_clears. 26808 26809 tests/mpfr-test.h: added mpfr_cmp_ui0 macro (check that x is not a NaN). 26810 tests/tfmod.c (bug20090519): check that the results are not NaN's and 26811 replaced GMP_RNDN by MPFR_RNDN. 26812 268132009-05-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26814 26815 [tests/tfmod.c] added testcase for bug reported by Eric Veach 26816 [rem1.c] fixed bug reported by Eric Veach 26817 268182009-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26819 26820 [TODO] added one item 26821 268222009-05-13 Laurent Fousse <laurent@komite.net> 26823 26824 Clarify the fact that mpfr_sum guarantees correct rounding. 26825 268262009-05-13 Vincent Lef��vre <vincent@vinc17.net> 26827 26828 mpfr.h: updated a comment. 26829 268302009-05-13 Philippe Th��veny <philippe.theveny@laposte.net> 26831 26832 mpfr.h: Add a warning comment (removed in r6026). 26833 [merge -c 6209 from branch 2.4] 26834 268352009-05-13 Vincent Lef��vre <vincent@vinc17.net> 26836 26837 fms.c: improve the performance of memory allocations in small precision 26838 (almost identical to changeset 6195 for fma.c). 26839 268402009-05-12 Vincent Lef��vre <vincent@vinc17.net> 26841 26842 fma.c: patch by Patrick P��lissier to improve the performance of 26843 memory allocations in small precision. 26844 268452009-05-05 Philippe Th��veny <philippe.theveny@laposte.net> 26846 26847 Put '#include <string.h>' in mpfr-impl.h, remove it elsewhere. 26848 Other cleanup of header inclusion. 26849 Other change (by mistake): corrections in algorithms.tex 26850 268512009-05-05 Vincent Lef��vre <vincent@vinc17.net> 26852 26853 NEWS: corrections / limit to 80 characters per line. 26854 268552009-05-05 Philippe Th��veny <philippe.theveny@laposte.net> 26856 26857 get_d64.c set_d64.c: Fix types. 26858 26859 printf.c tests/tpow_all.c: <string.h> is not automatically included when compiling with --with-gmp-build option. 26860 26861 NEWS Makefile.am mpfr.h mpfr.texi buildopt.c: New functions mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p. 26862 tests/Makefile.am tests/tbuildopt.c: Add tests for mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p. 26863 268642009-05-05 Vincent Lef��vre <vincent@vinc17.net> 26865 26866 atan.c: added comments after checking r6186. 26867 268682009-05-05 Philippe Th��veny <philippe.theveny@laposte.net> 26869 26870 atan.c: expand exponent range when computing arctan(Inf) and arctan(+-1). 26871 tests/tatan.c: Check underflow of arctan(Inf) and arctan(1) with reduced exponent range. 26872 268732009-05-04 Vincent Lef��vre <vincent@vinc17.net> 26874 26875 tests/tatan.c: replaced GMP_RNDN by MPFR_RNDN. 26876 268772009-04-29 Vincent Lef��vre <vincent@vinc17.net> 26878 26879 Removed trailing spaces. 26880 268812009-04-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26882 26883 [atan.c] fixed bug when x is very near but differs from 1 26884 268852009-04-29 Vincent Lef��vre <vincent@vinc17.net> 26886 26887 tests/tatan.c: added testcase for bug found by Christopher Creutzig 26888 (atan2_different_prec). 26889 268902009-04-22 Vincent Lef��vre <vincent@vinc17.net> 26891 26892 tests/tests.c (data_check): try to open the data file first from the 26893 build directory, then from the source directory. 26894 26895 init2.c: check that mp_bits_per_limb == BITS_PER_MP_LIMB (useful 26896 in case GMP is upgraded with a different ABI, e.g. 32 vs mode32 26897 on PowerPC 64). Without such a check, MPFR can give incorrect 26898 results if the ABI's don't match. 26899 26900 Improved fix for problem dealt with in r6174: use function src_fopen() 26901 (from tests.c) instead of a macro MPFR_SRCDIR. 26902 26903 Fixed problem when the srcdir value contains a word that is #define'd 26904 by the C implementation (test failure) or a comma (worse, the build of 26905 the tests terminates with an error). This can happen only when objdir 26906 and srcdir are different directories. 26907 * tests/Makefile.am (tmul_CPPFLAGS): Put srcdir pathname in quotes. 26908 * tests/tmul.c (MPFR_SRCDIR): Make the default a string. 26909 (QUOTE, NAME): Delete. 26910 (check_regression): Don't QUOTE MPFR_SRCDIR. 26911 Thanks to Sandra Loosemore for the patch. 26912 https://sympa.inria.fr/sympa/arc/mpfr/2009-04/msg00038.html 26913 269142009-04-15 Philippe Th��veny <philippe.theveny@laposte.net> 26915 26916 get_f.c: remove dead code (x and z always have the same number of limbs). 26917 tests/tget_f.c: Add tests with every rounding mode, add tests with random values. 26918 26919 tests/tget_f.c: Fix typos, better error messages. 26920 269212009-04-14 Philippe Th��veny <philippe.theveny@laposte.net> 26922 26923 tests/tget_f.c get_f.c: Set result to the maximum value when the mpfr_t is plus infinity and set correct ternary value. 26924 26925 tests/tget_f.c: Fix typo, increase size of y so that x and y have different limb size (they had the same size on MacOS X-32bits). 26926 269272009-04-10 Vincent Lef��vre <vincent@vinc17.net> 26928 26929 mpfr.texi: update concerning intmax_t after the change in r6166. 26930 26931 mpfr.h: for intmax_t, also test _STDINT_H and _STDINT_H_. 26932 [merged changeset r6165 from the 2.4 branch] 26933 26934 mpfr.texi: updated the month. 26935 26936 mpfr.h: for the intmax_t detection, also test INTMAX_MAX / UINTMAX_MAX 26937 (this may be useful for users of C++ compilers, if they have defined 26938 __STDC_LIMIT_MACROS but not __STDC_CONSTANT_MACROS). 26939 mpfr.texi: improvement concerning the use of intmax_t and uintmax_t. 26940 [merged changesets r6160 and r6161 from the 2.4 branch] 26941 269422009-04-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26943 26944 [INSTALL] updated Notes on AIX/PowerPC 26945 269462009-04-08 Philippe Th��veny <philippe.theveny@laposte.net> 26947 26948 NEWS mpfr.texi get_f.c: mpfr_get_f now returns the usual ternary value. 26949 tests/tget_f.c: test the ternary value and the erange flag. 26950 269512009-04-08 Vincent Lef��vre <vincent@vinc17.net> 26952 26953 tests/tget_z.c: do not assume specific values of the ternary value. 26954 get_z.c: simplified code. 26955 26956 NEWS: s/an inexact value/a ternary value/ 26957 269582009-04-08 Philippe Th��veny <philippe.theveny@laposte.net> 26959 26960 NEWS mpfr.texi get_z.c: mpfr_get_z now returns an inexact value. 26961 mpfr.h: change prototype of mpfr_get_z. 26962 tests/tget_z.c: test inexact value. 26963 269642009-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26965 26966 [mpf2mpfr.h] added comment for #endif 26967 269682009-04-08 Philippe Th��veny <philippe.theveny@laposte.net> 26969 26970 mpf2mpfr.h: fix typo 26971 269722009-04-02 Vincent Lef��vre <vincent@vinc17.net> 26973 26974 get_z.c: fixed title in comment. 26975 269762009-04-01 Vincent Lef��vre <vincent@vinc17.net> 26977 26978 get_z.c: detect out-of-range precision (such a detection could be missed 26979 if mpfr_exp_t > mpfr_prec_t). 26980 26981 Removed the comment from mpfr.h added in r6149, and patched get_z.c 26982 (safer code is better than a comment). 26983 26984 mpfr.h: important comment to validate the change done in r6147. 26985 26986 get_z_exp.c: updated comments. 26987 269882009-04-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26989 26990 [get_z.c] simplified the code, removed the FIXME 26991 [tget_z.c] added new test 26992 26993 [mpfr.texi] completed documentation of mpfr_get_z_exp (was incomplete for 0) 26994 [tget_z.c] added test case for 0 with emin > 0 (should give 100% coverage for 26995 get_z.c) 26996 269972009-03-30 Philippe Th��veny <philippe.theveny@laposte.net> 26998 26999 strtofr.c tests/tset_str.c: Code simplification (sizeof (char) is always 1). 27000 vasprintf.c: Cast into size_t (just in case). 27001 27002 vasprintf.c: Code simplification (sizeof (char) is always 1). 27003 270042009-03-27 Philippe Th��veny <philippe.theveny@laposte.net> 27005 27006 acinclude.m4: remove definition of va_copy, just detect its presence. 27007 printf.c vasprintf.c: #define a replacement of va_copy if needed (in the same way as gmp). 27008 270092009-03-26 Philippe Th��veny <philippe.theveny@laposte.net> 27010 27011 acinclude.m4: Change MPFR_FUNC_PRINTF_SPEC (renamed MPFR_FUNC_GMP_PRINTF_SPEC) so that it actually checks output. 27012 270132009-03-25 Philippe Th��veny <philippe.theveny@laposte.net> 27014 27015 Change base upper limit in string conversion up to 62. 27016 270172009-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27018 27019 [mpfr.texi] fixed documentation of mpfr_get_str which was wrong 27020 [tget_str.c] added test cases for odd base and tie breaking case 27021 [get_str.c] fixed typos in comments 27022 27023 [tests/random2.c] added missing mpfr-test.h (revealed by nightly tests), and 27024 removed mpfr-impl.h (already included in mpfr-test.h) 27025 I have also removed MPFR_NEED_LONGLONG_H: I don't see why it 27026 is needed, and all tests pass. 27027 270282009-03-24 Philippe Th��veny <philippe.theveny@laposte.net> 27029 27030 mpfr.texi: Add a note on mpfr_printf output in binary with precision one. 27031 27032 urandomb.c mpfr-gmp.c mpfr-gmp.h: mpfr_rand_raw is now in urandom.c. 27033 mpfr-impl.h: mpfr_rand_raw is now always build as an internal function. 27034 TODO tests/tests.c tests/random2.c: Use mpfr_rand_raw instead of _gmp_rand 27035 27036 Move mpfr_random2 to tests directory, remove it from API. 27037 27038 mpfr.texi: Improve documentation in Formatted Output Functions/Format String subsection. 27039 270402009-03-24 Vincent Lef��vre <vincent@vinc17.net> 27041 27042 cos.c, sin.c: added MPFR_ASSERTN for huge expx. 27043 270442009-03-21 Vincent Lef��vre <vincent@vinc17.net> 27045 27046 mpfr.texi: corrected mpfr_strtofr documentation ("NAN()" is accepted). 27047 tests/tstrtofr.c: added a test for "NAN()". 27048 Note: the code follows the ISO C99 standard for strtod, as explained 27049 in the mpfr_strtofr documentation, so that the code was correct. 27050 [merged changeset 6131 from the 2.4 branch and changed GMP_RNDN into 27051 MPFR_RNDN] 27052 270532009-03-19 Vincent Lef��vre <vincent@vinc17.net> 27054 27055 mpfrlint: added some tests for acinclude.m4 and configure.in (sh). 27056 27057 Applied patch from Ralf Wildenhues. 27058 * configure.in: Avoid unportable (and unneeded) shell quoting. 27059 * acinclude.m4: Avoid non-POSIX shell construct. 27060 270612009-03-18 Vincent Lef��vre <vincent@vinc17.net> 27062 27063 tests/tmin_prec.c: replaced GMP_RNDN by MPFR_RNDN. 27064 270652009-03-16 Vincent Lef��vre <vincent@vinc17.net> 27066 27067 tests/tset_ld.c: removed unused variable. 27068 270692009-03-16 Philippe Th��veny <philippe.theveny@laposte.net> 27070 27071 tests/tset_ld.c: Add test case for the bug fixed with r6101. 27072 270732009-03-16 Vincent Lef��vre <vincent@vinc17.net> 27074 27075 tests/tmin_prec.c: added tests. 27076 27077 tests: updated svn:ignore property. 27078 27079 min_prec.c: fixed another bug (the code was incorrect with >= 2 limbs). 27080 27081 tests/tmin_prec.c: bug fix (side effects in MPFR_ASSERTN), new tests. 27082 27083 README.dev: added a note about assertions and code with side effects. 27084 270852009-03-16 Philippe Th��veny <philippe.theveny@laposte.net> 27086 27087 tests/tfprintf.c: Use a value less than 2^31-1 compatible (thus < LONG_MAX) in bug_20090316 (cf r6112). 27088 270892009-03-16 Vincent Lef��vre <vincent@vinc17.net> 27090 27091 Replaced GMP_RND* by MPFR_RND*. 27092 270932009-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27094 27095 [tests/tmin_prec.c] new file contributed from Laurent Fousse 27096 [tests/Makefile.am] added tmin_prec 27097 270982009-03-16 Vincent Lef��vre <vincent@vinc17.net> 27099 27100 min_prec.c: removed a useless test. 27101 27102 min_prec.c: fixed another bug. 27103 271042009-03-16 Philippe Th��veny <philippe.theveny@laposte.net> 27105 27106 vasprintf.c: Add more debug assertion on the buffer size. 27107 27108 vasprintf.c: Fix bug_20090316 (in buffer_cat, the buffer was 1 character too small in some cases). 27109 tests/tfprintf.c: Add test for bug_20090316. 27110 271112009-03-16 Vincent Lef��vre <vincent@vinc17.net> 27112 27113 tests/tadd.c: changed GMP_RND* (from r6071) into MPFR_RND*; this should 27114 have been done when porting the patch from the 2.4 branch. 27115 271162009-03-16 Philippe Th��veny <philippe.theveny@laposte.net> 27117 27118 tests/tprintf.c: Use new environment variable MPFR_CHECK_LARGEMEM for memory expensive test. 27119 271202009-03-16 Vincent Lef��vre <vincent@vinc17.net> 27121 27122 min_prec.c: bug fixed by Laurent. 27123 271242009-03-16 Philippe Th��veny <philippe.theveny@laposte.net> 27125 27126 tests/tsprintf.c: Fix typo. 27127 271282009-03-16 Vincent Lef��vre <vincent@vinc17.net> 27129 27130 Fixed the prototype of mpfr_min_prec (should return a mpfr_prec_t) 27131 and its description. 27132 27133 min_prec.c: fixed a bug (but the code should be improved). 27134 27135 min_prec.c: simplified the singular cases (see other functions). 27136 271372009-03-15 Laurent Fousse <laurent@komite.net> 27138 27139 Add prototype for mpfr_min_prec in mpfr.h. 27140 27141 Add documentation for mpfr_min_prec. 27142 27143 New function mpfr_min_prec. 27144 271452009-03-15 Vincent Lef��vre <vincent@vinc17.net> 27146 27147 get_ld.c: fixed bugs in the case HAVE_LDOUBLE_IEEE_EXT_LITTLE (one found 27148 by Steve Kargl, and another one concerning the mpfr_set_emax value). 27149 271502009-03-13 Philippe Th��veny <philippe.theveny@laposte.net> 27151 27152 vasprintf.c: This is probably dead code, but being uncertain, put an assert here. 27153 27154 vasprintf.c: As the buffer helper functions are not used in the current code with a zero parameter len, do not handle this case anymore, check that these cases do not happened in MPFR_ASSERTD macros, add some additional assert to ensure consistency. 27155 27156 vasprintf.c: make clear that string_buffer.curr is a pointer to the null terminating character, fix the only place where it was not handle so. 27157 27158 vasprintf.c: Fix bug. 27159 27160 tests/tprintf.c: Add an expensive test where the output number has more than INT_MAX characters. 27161 vasprintf.c: Fix the bug triggered by the new test in tsprintf.c. 27162 27163 mpfr.texi: Do cosmetic changes and add some details on printf behavior when the precision field is empty. 27164 tests/tsprintf.c: improve code coverage. 27165 tests/tprintf.c: improve code coverage, check the behavior describe in mpfr.texi. 27166 271672009-03-12 Vincent Lef��vre <vincent@vinc17.net> 27168 27169 zeta_ui.c: correction r6090 was incorrect as there was another problem: 27170 the 3rd argument of mpz_divexact_ui is an unsigned long, not a limb. 27171 So, fixed the shift count (assuming no padding bits in unsigned long). 27172 27173 zeta_ui.c bug fix: a shift count could be >= width of type (if a limb is 27174 a long long and long long is twice the size of a long). This problem was 27175 detected by a warning on gcc40 with CFLAGS="-mpowerpc64 -mcpu=970 -O2". 27176 271772009-03-10 Vincent Lef��vre <vincent@vinc17.net> 27178 27179 tests/tprintf.c: added missing cast to void * for %p. 27180 271812009-03-09 Vincent Lef��vre <vincent@vinc17.net> 27182 27183 tests/tfprintf.c: added missing cast to void * for %p. 27184 27185 vasprintf.c: fixed bug in CONSUME_VA_ARG for case MP_LIMB_ARG (%Mu). 27186 27187 README.dev: GMP with ABI=mode32 should be tested on 64-bit PowerPC. 27188 271892009-03-06 Philippe Th��veny <philippe.theveny@laposte.net> 27190 27191 vasprintf.c: now return -1 when the format string is invalid (undefined behavior in standard C99) 27192 tests/tprintf.c: Additional checks with invalid format strings. 27193 27194 mpfr.texi: Add missing conversion specifier accepted with mpfr_t variable. 27195 271962009-03-06 Vincent Lef��vre <vincent@vinc17.net> 27197 27198 add1.c: assertions on the argument values should use MPFR_ASSERTN. 27199 272002009-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27201 27202 [cache.c] improved comment for mpfr_init_cache 27203 27204 [add1.c] transformed switch() into if-then-else, to get 100% coverage 27205 272062009-03-06 Vincent Lef��vre <vincent@vinc17.net> 27207 27208 untabify 27209 27210 update-faq: change GMP_RND into MPFR_RND from the version on the web 27211 (since MPFR 3.0 hasn't been released yet, the FAQ still uses the 2.x 27212 API). 27213 272142009-03-05 Vincent Lef��vre <vincent@vinc17.net> 27215 27216 tests/tadd.c: completed the code coverage (case bk == 0 in add1.c). 27217 272182009-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27219 27220 [mpfr-impl.h,cache.c] commented out mpfr_init_cache 27221 27222 [const_catalan.c] decreased initial Ziv precision to get 100% coverage 27223 27224 [cmp2.c] added comments 27225 [tcmp2.c] added test to improve coverage to 100% 27226 27227 [atan2.c,tatan.c] reduced Ziv's initial precision and added test to have 27228 100% coverage of atan2.c 27229 27230 [atan.c] coverage should now be 100% 27231 272322009-03-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27233 27234 [algorithms.bib] added new reference 27235 [TODO] added pointers 27236 272372009-03-04 Vincent Lef��vre <vincent@vinc17.net> 27238 27239 mpfr-gmp.c (mpfr_assert_fail): output "MPFR" too in assertion failure 27240 messages. 27241 27242 Updated mpfrlint script. 27243 27244 mpfr.texi: updated month. 27245 27246 NEWS: say that the license has changed. 27247 272482009-03-03 Vincent Lef��vre <vincent@vinc17.net> 27249 27250 Updated NEWS (function mpfr_random has been removed). 27251 272522009-03-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27253 27254 GMP_RNDX -> MPFR_RNDX 27255 272562009-03-03 Vincent Lef��vre <vincent@vinc17.net> 27257 27258 tests: added taway to svn:ignore property. 27259 27260 Update to LGPL v3+, as decided by the main MPFR developers. 27261 272622009-02-27 Vincent Lef��vre <vincent@vinc17.net> 27263 27264 Untabified and deleted trailing spaces (for patches). 27265 272662009-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27267 27268 [rint.c] fixed a bug incorporated with the round away mode 27269 [tget_sj.c] fixed the tests for round away 27270 27271 [rint.c] fixed bug with round away 27272 [taway.c] new test file for round away (with random values) 27273 [tests/Makefile.am] added taway 27274 [set_z.c] GNU style 27275 272762009-02-27 Philippe Th��veny <philippe.theveny@laposte.net> 27277 27278 tests/tests.c: Change test5rm (formerly test4rm) so that it checks the new 27279 GMP_RNDA rounding mode, and that the corresponding rounding towards infinity 27280 is checked with GMP_RNDZ or with GMP_RNDA in one-pass mode (now, two-pass 27281 mode). Remove a comment about a warning from gcc solved with r5057. 27282 272832009-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27284 27285 [rem1.c] fixed bug found in adding tests for round away 27286 27287 [add.c] added comment for 0 + 0 with round away 27288 272892009-02-26 Vincent Lef��vre <vincent@vinc17.net> 27290 27291 tests/texceptions.c: removed obsolete comments from r2427. 27292 272932009-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27294 27295 [mpfr.h] added comment about order of rounding modes 27296 [texceptions.c] added comments, fixed typo 27297 [tsub.c] added test, fixed typo 27298 272992009-02-26 Philippe Th��veny <philippe.theveny@laposte.net> 27300 27301 Add tests with round away mode. 27302 273032009-02-26 Vincent Lef��vre <vincent@vinc17.net> 27304 27305 Updated version to 3.0.0-dev. 27306 273072009-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27308 27309 added round to away (still experimental) 27310 27311 [mpfr.h] added comments for rounding modes 27312 273132009-02-26 Vincent Lef��vre <vincent@vinc17.net> 27314 27315 Added svn:ignore property on the m4 directory (these .m4 files are 27316 generated automatically). 27317 27318 Makefile.am: updated -version-info (since mpfr_random has been removed, 27319 we already know its value). 27320 27321 Makefile.am: do not check libtool -version-info value if the VERSION 27322 file contains "-dev". 27323 27324 Makefile.am: In a "make dist", check that libtool -version-info value 27325 is up-to-date (this is a heuristic only). 27326 27327 README.dev: updated "To make a release" -- it is important to read 27328 this section entirely before making any release (even if some steps 27329 may be skipped for some particular releases). 27330 273312009-02-25 Vincent Lef��vre <vincent@vinc17.net> 27332 27333 tests/tsprintf.c: do not use VLA's (C99 only). 27334 27335 README.dev: update about patches. 27336 27337 tests/tsprintf.c: coding style: removed spurious spaces. 27338 27339 mpfr.texi: updated month. 27340 27341 printf.c: fixed assertion failures in the case buffer == NULL and 27342 size == 0 (see r5995). Also replaced MPFR_ASSERTD(buf != NULL) by 27343 MPFR_ASSERTN(buf != NULL) since buf is provided as an argument. 27344 27345 tests/tsprintf.c: added mpfr_snprintf/mpfr_vsnprintf tests with 27346 buffer == NULL and size == 0 (as allowed in C99 snprintf/vsnprintf 27347 and by the MPFR documentation). 27348 273492009-02-25 Philippe Th��veny <philippe.theveny@laposte.net> 27350 27351 mpfr.texi: Fix typos. 27352 273532009-02-24 Vincent Lef��vre <vincent@vinc17.net> 27354 27355 tuneup.c: untabified. 27356 273572009-02-24 Philippe Th��veny <philippe.theveny@laposte.net> 27358 27359 printf.c: Fix wrong return value, mpfr_snprintf and mpfr_vsnprintf functions must always return the number of character that would be written if the parameter n had been sufficiently large (it previously returned zero when n == 0). 27360 tests/tsprintf.c: Fix test of mpfr_snprintf and mpfr_vsnprintf (the wrong return value was checked). 27361 273622009-02-24 Vincent Lef��vre <vincent@vinc17.net> 27363 27364 printf.c: fix buffer overflow in mpfr_snprintf and mpfr_vsnprintf. 27365 27366 tsprintf.c: added a test showing a buffer overflow in mpfr_vsnprintf. 27367 27368 tsprintf.c: added a test showing a buffer overflow in mpfr_snprintf. 27369 273702009-02-23 Vincent Lef��vre <vincent@vinc17.net> 27371 27372 Changed how the test of MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR and 27373 MPFR_VERSION_PATCHLEVEL vs MPFR_VERSION_STRING is performed. 27374 Detailed explanations: 27375 The test was enabled only in release tarballs (suffix not present), 27376 where tests/tversion.c normally contained a "#if 1" (though this 27377 is not the case in the MPFR 2.4.0 tarball). In patches, this test 27378 should be disabled by changing the "#if 1" into "#if 0", due to 27379 the suffix. But as one should be able to apply any patches (in any 27380 order), this method was not satisfactory. The test has been moved 27381 from tests/tversion.c to tests/tests.c (in function test_version), 27382 and the suffix is now ignored in this test; the change of #if has 27383 been removed from the update-version script. 27384 273852009-02-20 Vincent Lef��vre <vincent@vinc17.net> 27386 27387 README.dev: corrected update-version usage for patches. 27388 27389 FAQ update. 27390 273912009-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27392 27393 [mparam_h.in] added default thresholds for sparc64 27394 [tuneup.c] print gcc patchlevel 27395 273962009-02-19 Vincent Lef��vre <vincent@vinc17.net> 27397 27398 speed.c, tests/texp.c: untabified. 27399 27400 mpfr.texi: improved mpfr_strtofr documentation (completing r5965). 27401 274022009-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27403 27404 [mparam_h.in] added tuning for powerpc64 27405 274062009-02-18 Philippe Th��veny <philippe.theveny@laposte.net> 27407 27408 strtofr.c: fix typo. 27409 27410 strtofr.c: accept bases up to 62. 27411 mpfr.texi: modify mpfr_strtofr documentation accordingly. 27412 tests/tstrtofr.c: add tests for bases 62, 60, and 61. 27413 274142009-02-17 Philippe Th��veny <philippe.theveny@laposte.net> 27415 27416 mparam_h.in: Change core2/64bit parameters. 27417 274182009-02-17 Vincent Lef��vre <vincent@vinc17.net> 27419 27420 Checks whether C99 length modifiers 'hh' and 'll' are supported by the 27421 system ('hh' is absent on alpha-OSF1-V5, bug reported by Kate Minola). 27422 [Merged changeset 5956 from the 2.4 branch.] 27423 274242009-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27425 27426 [texp.c] yet another better fix 27427 27428 [texp.c] fixed previous patch and added comment 27429 27430 [texp.c] fixed corner case test 27431 274322009-02-16 Vincent Lef��vre <vincent@vinc17.net> 27433 27434 README.dev: improved latest change. 27435 27436 README.dev: mentioned update-version for patches. 27437 274382009-02-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27439 27440 [mpfr-gfx.c] added -p option to produce a Postscript file 27441 274422009-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27443 27444 [mparam_h.in] added thresholds for ARM 27445 27446 [README.dev] added description of how to tune MPFR 27447 27448 [README.dev] added another example of using mpfr-gfx 27449 27450 [Makefile] modified Makefile to compile statically, and to allow also 27451 build directories of GMP/MPFR 27452 274532009-02-10 Philippe Th��veny <philippe.theveny@laposte.net> 27454 27455 mbench/mpfr-gfx.c: add option -rPREC_RATIO for geometric progression. 27456 274572009-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27458 27459 [mparam_h.in] updated Itanium parameters (now for Itanium2) 27460 27461 [mparam_h.in] added symbol __itanium__ for Itanium[12] 27462 274632009-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27464 27465 [README.dev] fixed typo 27466 [mpfr-gfx.c] added comments in the code (might be useful) 27467 27468 [README.dev] added pointer to mbench to check the thresholds 27469 27470 [mpfr-gfx.c] now also produces a plot.gnuplot file together with plot.data 27471 27472 [mparam_h.in] updated default thresholds with gmp-4.2.4 27473 27474 [tuneup.c] fixed typo 27475 27476 [Makefile.am] added stuff to compile speed program 27477 27478 [speed.c] preliminary program to check the tuning of mpfr (based on tuneup.c) 27479 So far it only measures mpfr_mul up to 1000 bits, with increment 27480 ratio of 1.1. Requires --with-gmp-build like tuneup. 27481 Feel free to improve! 27482 27483 [mparam_h.in] allow __tune_ia64__ in addition to __ia64 27484 27485 [mparam_h.in] replaced __pentium4 by __tune_pentium4__, ... 27486 274872009-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27488 27489 [acinclude.m4] removed detection of HAVE_HOST_CORE2 27490 [mparam_h.in] replaced HAVE_HOST_CORE2 by __tune_core2__ 27491 274922009-02-06 Philippe Th��veny <philippe.theveny@laposte.net> 27493 27494 tests/mpf_compat.h: complete r5922 adding missing mpz_init/mpz_clear. 27495 274962009-02-06 Vincent Lef��vre <vincent@vinc17.net> 27497 27498 TODO: updated efficiency items. 27499 275002009-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27501 27502 [TODO] added 2 efficiency items 27503 275042009-02-06 Vincent Lef��vre <vincent@vinc17.net> 27505 27506 mpfr.texi: moved MPFR_DECL_INIT specification into Section 27507 "Initialization Functions" (now in the standard MPFR API), 27508 and removed now empty Section "Advanced Functions". 27509 275102009-02-05 Vincent Lef��vre <vincent@vinc17.net> 27511 27512 mparam_h.in: updated comment to mention -march=native and -mtune=native. 27513 27514 mpfr.h: updated a comment concerning MPFR_DECL_INIT. 27515 275162009-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27517 27518 [mpf2mpfr.h] added mpz_set_f (reported by Francois Morain) 27519 27520 [mpfr.texi] moved mpfr_inits, mpfr_inits2, mpfr_clears to supported functions 27521 [TODO] added new info about MPIR 27522 275232009-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27524 27525 [TODO] added info to distinguish GMP and MPIR 27526 275272009-01-26 Vincent Lef��vre <vincent@vinc17.net> 27528 27529 Updated the version on the trunk. 27530 275312009-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27532 27533 [nightly-test] removed --disable-alloca (GMP option) 27534 275352009-01-25 Vincent Lef��vre <vincent@vinc17.net> 27536 27537 README.dev: --disable-alloca is a GMP configure option. 27538 275392009-01-21 Philippe Th��veny <philippe.theveny@laposte.net> 27540 27541 tests/tsprintf.c: remove tests against libc's printf with "%a" (not in ISO C90), and with "%p" (implementation defined). 27542 [merge -c 5885 from branches/2.4] 27543 275442009-01-21 Vincent Lef��vre <vincent@vinc17.net> 27545 27546 mpfr-impl.h: avoid a compiler bug under Mac OS X Tiger + Xcode (&x == &x 27547 is false) that makes tset_d fail; this problem was introduced in r5880. 27548 275492009-01-20 Vincent Lef��vre <vincent@vinc17.net> 27550 27551 Fixed bug reported by Chris Saunders: if _GMP_IEEE_FLOATS is defined, 27552 the build of tset_ld.c fails because DOUBLE_ISNAN expects a lvalue. 27553 * mpfr-impl.h: documented that for such macros, the argument must 27554 be a lvalue, and always make sure that it is a lvalue (so that 27555 a failure doesn't depend on the environment). 27556 * tests/tset_ld.c: fixed the bug. 27557 27558 tests/tversion.c: be more tolerant when checking whether gmp.h version 27559 and libgmp version are the same (in case patch level is 0). 27560 27561 tests/tset_ld.c: added explanation of NaN-related failures in case 27562 MPFR_NANISNAN is defined. 27563 27564 Added missing void's. 27565 27566 tests/tsprintf.c: removed a blank line (for consistency with the 27567 2.4 branch). 27568 27569 vasprintf.c: deleted trailing spaces. 27570 275712009-01-19 Vincent Lef��vre <vincent@vinc17.net> 27572 27573 mpfr-impl.h: comment for DOUBLE_ISNAN with MPFR_NANISNAN defined. 27574 27575 tests/tset_d.c: fixed test of mpfr_set_d on -0 with gcc -ffast-math 27576 (the -d for d = 0.0 was giving 0.0, hence a spurious failure). 27577 27578 mpfr-impl.h: the DOUBLE_ISNAN macro wasn't working with gcc -ffast-math 27579 (at least on x86_64); fixed that by adding another test. 27580 tests/tset_ld.c: Isnan_ld wasn't working either; also the NaN test was 27581 incorrect. Now, the failure on NaN is correctly reported. 27582 27583 tests/tcmp_d.c, tests/tcmp_ld.c, tests/tset_d.c: corrected message. 27584 27585 tests/tcmp_d.c, tests/tcmp_ld.c, tests/tset_d.c: added explanations 27586 of NaN-related failures in case MPFR_NANISNAN is defined. 27587 Note: in tset_d.c, moved the NaN test before the signed-zero test 27588 to catch the failure on the NaN first. 27589 27590 acinclude.m4: improved warning message. 27591 27592 INSTALL: updated "In case of problem". 27593 27594 acinclude.m4: added a warning message for the NAN != NAN test. 27595 275962009-01-19 Philippe Th��veny <philippe.theveny@laposte.net> 27597 27598 tcmp_d.c tset_d.c tcmp_ld.c: Remove tests with NaN when MPFR_NANISNAN is defined. 27599 tests.c: Add a warning in a comment that Isnan always returns 0 on systems where MPFR_NANISNAN is defined. 27600 27601 vasprintf.c: do not support 't' when NPRINTF_T is defined, HAVE_STDINT_H -> _MPFR_H_HAVE_INTMAX_T. 27602 27603 tests/tfprintf.c: renumber tests (there was two tests #9). 27604 276052009-01-19 Vincent Lef��vre <vincent@vinc17.net> 27606 27607 tests/tfprintf.c: %c takes an int argument, not a char (see C standard). 27608 27609 tests/tprintf.c, tests/tsprintf.c: 27610 * %c takes an int argument, not a char (see C standard), even though 27611 this may be equivalent due to integer promotion. 27612 * Add void in prototypes of functions taking no arguments. 27613 27614 mpfr.texi: updated references to the GMP manual. 27615 27616 mpfr.texi: typo in comment. 27617 27618 mpfr.texi: added .info extension in cross-references, to avoid the bug 27619 reported here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484740 27620 27621 mpfr.texi: added a reference to a texinfo bug in a comment. 27622 27623 mpfr.texi: added missing @code{}. 27624 27625 mpfr.texi: don't -> do not, doesn't -> does not, won't -> will not. 27626 27627 mpfr.texi: improved Section "Format String". 27628 276292009-01-19 Philippe Th��veny <philippe.theveny@laposte.net> 27630 27631 tests/tsprintf.c: check if native types are really processed by libc printf. 27632 276332009-01-19 Vincent Lef��vre <vincent@vinc17.net> 27634 27635 README.dev: no longer mentions HAVE_QUAD_T since it is no longer used. 27636 276372009-01-19 Philippe Th��veny <philippe.theveny@laposte.net> 27638 27639 mpfr.texi: Explicit list of type supported by mpfr_printf functions. 27640 acinclude.m4: Remove detection of type modifier 'q'. 27641 vasprintf.c: Remove support of type modifier 'q'. 27642 tests/tfprintf.c tests/tprintf.c: Remove tests with type modifier 'q'. 27643 27644 INSTALL: Warn that --with-gmp, --with-gmp-include/--with-gmp-lib, and --with-gmp-build options are mutually exclusive. 27645 configure.in: Check and fail if --with-gmp, --with-gmp-include/--with-gmp-lib, or --with-gmp-build are use simultaneously. 27646 276472009-01-19 Vincent Lef��vre <vincent@vinc17.net> 27648 27649 tests/tests.c: include <sys/fpu.h> only if need be. 27650 276512009-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27652 27653 [mpfr.texi] made difference between mpfr_set_str and mpfr_strtofr clearer 27654 (after remark from Luis Rivera) 27655 27656 [mpfr.texi] fixed order -> kind (typo found by Luis Rivera, thanks) 27657 276582009-01-16 Philippe Th��veny <philippe.theveny@laposte.net> 27659 27660 tfprintf.c tprintf.c: Test double with "%f" instead of "%e" so as to avoid failure due to exponent "e+000" on MS Windows. 27661 27662 tests/tfprintf.c tests/tsprintf.c tests/tprintf.c acinclude.m4 vasprintf.c: No longer check libc's printf. 27663 27664 acinclude.m4: Check if %Ld specification is supported (not always the case with MS Windows) 27665 tests/tfprintf.c tests/tprintf.c tests/tsprintf.c: do not check %Ld specification when not available. 27666 27667 get_uj.c get_sj.c tests/tset_sj.c tests/tfits.c fits_intmax.c fits_uintmax.c set_uj.c set_sj.c: make #include-s for intmax_t uniform. 27668 vasprintf.c: make #include-s for intmax_t uniform and use _MPFR_H_HAVE_INTMAX_T instead of HAVE_INTMAX_T. 27669 276702009-01-15 Philippe Th��veny <philippe.theveny@laposte.net> 27671 27672 tfprintf.c tprintf.c: Remove tests with u_quad_t (on Solaris 10, quad_t exists but u_quad_t doesn't, bug reported by Michael Abshoff). 27673 27674 tfprintf.c tprintf.c: Fix included headers, type intmax_t may be defined in inttypes.h or in stdint.h (see autoconf manual 5.6.1 Portability of Headers). 27675 276762009-01-15 Vincent Lef��vre <vincent@vinc17.net> 27677 27678 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 27679 27680 vasprintf.c: deleted trailing spaces. 27681 27682 configure.in: be more tolerant when checking whether gmp.h version 27683 and libgmp version are the same (in case patch level is 0). 27684 27685 Copyright notice update: added 2009 with 27686 perl -pi -e 's/2008 Free Software/2008, 2009 Free Software/' **/*(^/) 27687 under zsh. 27688 276892009-01-14 Vincent Lef��vre <vincent@vinc17.net> 27690 27691 Fixed remaining printf format strings. 27692 27693 tests/tadd1sp.c, tests/tsub1sp.c: fixed function prototypes. 27694 27695 tests/teq.c, tests/tests.c: fixed printf format strings. 27696 27697 tests/tcmp2.c: fixed printf format strings. 27698 276992009-01-13 Vincent Lef��vre <vincent@vinc17.net> 27700 27701 tests/tset_str.c: fixed printf format string. 27702 277032009-01-12 Vincent Lef��vre <vincent@vinc17.net> 27704 27705 mpfr.texi: consistency changes and corrections concerning the "erange" 27706 flag (do not use @code{} as this is not an identifier, @emph{} is used 27707 as this is not an English word -- but @emph{} should probably be used 27708 too for the other flag names). 27709 27710 mpfr.texi: typo. 27711 277122009-01-12 Philippe Th��veny <philippe.theveny@laposte.net> 27713 27714 acinclude.m4: New macro MPFR_CHECK_PRINTF_SPEC looking for support of the "%jd", "%qd", and "%td" conversion specifications in printf and gmp_printf. 27715 configure.in: Call MPFR_CHECK_PRINTF_SPEC when we can link against a suitable gmp library and run test programs at compile time, otherwise (for instance, when cross compiling), everything is enable by default. 27716 vasprintf.c: Disable support for length modifiers not supported by libc's printf ('j' and 'q' for this time). 27717 tests/tprintf.c, tests/tfprintf.c: Disable tests for length modifiers not supported by gmp_printf ('j', 'q', and 't' for this time). 27718 27719 mpfr.texi: Fix typo. 27720 277212009-01-08 Vincent Lef��vre <vincent@vinc17.net> 27722 27723 mpfr.texi: update to January 2009. 27724 27725 Removed useless #include of gmp.h from tests/tfprintf.c and 27726 tests/tsprintf.c for consistency. 27727 277282009-01-08 Philippe Th��veny <philippe.theveny@laposte.net> 27729 27730 tests/tfprintf.c: Make tests with 'M' specifier optional. 27731 mpfr.texi: Add a warning that gmp may not support 'M' specifier. 27732 vasprintf.c: Add warning comment about 'M' specifier. 27733 27734 mpfr.texi: Fix wrong definition of rounding specifiers. 27735 277362008-12-30 Vincent Lef��vre <vincent@vinc17.net> 27737 27738 out_str.c: added assert (check that base is in the required range). 27739 277402008-12-26 Vincent Lef��vre <vincent@vinc17.net> 27741 27742 README.dev: suggest "-Wformat=2". 27743 27744 zeta.c: fixed types for printf when DEBUG is defined. 27745 27746 sub1sp.c: fixed types for printf when WANT_ASSERT >= 2 and 27747 when DEBUG is defined. 27748 27749 sub1.c: fixed types for printf when DEBUG is defined. 27750 27751 set_d64.c: set T[] to unsigned int (instead of int) since its values 27752 are printed with %u. 27753 27754 add1sp.c: fixed types for printf when DEBUG is defined. 27755 27756 mpfr-impl.h: fixed MPFR_UNSIGNED_MINUS_MODULO logic and added missing 27757 parentheses. 27758 27759 div.c: fixed types for fprintf when DEBUG and/or DEBUG2 is defined. 27760 27761 div.c: fixed #ifdef. 27762 27763 round_p.c: fixed types for fprintf when WANT_ASSERT >= 2 (since 27764 mp_prec_t is unsigned, it's better to use unsigned long). 27765 27766 round_p.c: fixed types for fprintf when WANT_ASSERT >= 2. 27767 277682008-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27769 27770 [mpfr.tex] improve documentation of %P 27771 277722008-12-18 Vincent Lef��vre <vincent@vinc17.net> 27773 27774 Deleted trailing spaces. 27775 277762008-12-17 Philippe Th��veny <philippe.theveny@laposte.net> 27777 27778 tests/tsprintf.c: clean-up code, improve comment, and put optional tests in tail so that they fail last. 27779 27780 tests/tsprintf.c: Add two regression tests. 27781 277822008-12-16 Philippe Th��veny <philippe.theveny@laposte.net> 27783 27784 acinclude.m4, vasprintf.c, tests/tfprintf.c, tests/tprintf.c, mpfr.texi: quad_t support 27785 27786 tests/tfprintf.c: code clean-up and output improvement. 27787 tests/tprintf.c: code clean-up. 27788 Note that unsigned long long variable is not set to 1 instead of -1 which was architecture dependent. 27789 277902008-12-16 Vincent Lef��vre <vincent@vinc17.net> 27791 27792 tests/tprintf.c: 27793 * stdout_redirect is a boolean (i.e., 0 or 1). 27794 * output freopen(..., stdout) error message to stderr. 27795 277962008-12-16 Philippe Th��veny <philippe.theveny@laposte.net> 27797 27798 tfprintf.c: more user-friendly messages. 27799 tprintf.c: more user-friendly messages. Warning: because stdout might be redirected, error messages are printed to stderr. 27800 278012008-12-15 Vincent Lef��vre <vincent@vinc17.net> 27802 27803 mpfr.texi: more explanations on the precision field for mpfr_printf. 27804 27805 untabify and remove trailing spaces 27806 278072008-12-15 Philippe Th��veny <philippe.theveny@laposte.net> 27808 27809 mpfr.texi: more explanations on the precision field. 27810 27811 mpfr.texi: Clearly mention that the length modifier 'q' is unsupported by mpfr-*printf. 27812 vasprintf.c: Do not take quad_t as a long long but as an insupported length modifier. 27813 acinclude.m4: Remove check for quad_t. 27814 tests/tprintf.c tests/tfprintf.c: Remove tests with 'q' length modifier. 27815 278162008-12-15 Vincent Lef��vre <vincent@vinc17.net> 27817 27818 tests/tstrtofr.c: fixed a test (in case |res| > 1). 27819 27820 tests/tstrtofr.c: fixed alignment bug in error message. 27821 278222008-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27823 27824 [nightly-test] added MPFR_CHECK_LIBC_PRINTF 27825 278262008-12-15 Philippe Th��veny <philippe.theveny@laposte.net> 27827 27828 acinclude.m4: Check for quad_t. 27829 vasprintf.c: Accept length modifier 'q' if HAVE_QUAD_T is defined (instead of HAVE_LONG_LONG). 27830 README.dev: Add notice for new HAVE_QUAD_T macro. 27831 278322008-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27833 27834 [mpfr.texi] added warning about usage of mpfr_init 27835 278362008-12-15 Vincent Lef��vre <vincent@vinc17.net> 27837 27838 tests/tprintf.c: _MPFR_H_HAVE_INTMAX_T -> HAVE_STDINT_H for <stdint.h>. 27839 278402008-12-15 Philippe Th��veny <philippe.theveny@laposte.net> 27841 27842 tests/tsprintf.c: Tests against libc's sprintf function are no more executed unless the MPFR_CHECK_LIBC_PRINTF is defined. 27843 27844 tests/tsprintf.c: move bugs 20080610 and 20081214 outside the function random_double. 27845 278462008-12-15 Vincent Lef��vre <vincent@vinc17.net> 27847 27848 tests/tsprintf.c: completed comment about the sign of a null exponent. 27849 27850 INSTALL: added a note saying the L modifier was added in C89 (source: 27851 C99 rationale, Section 7.19.6.1). 27852 278532008-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27854 27855 [INSTALL] more Windows-related changes 27856 27857 [INSTALL] update on Windows (from Brian Gladman) 27858 27859 [configure.in] removed useless comment 27860 278612008-12-14 Vincent Lef��vre <vincent@vinc17.net> 27862 27863 INSTALL: references to ISO (international) instead of ANSI (American). 27864 27865 tests/tsprintf.c: corrected a comment. 27866 278672008-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27868 27869 [printf.c,vasprintf.c] include config.h if HAVE_CONFIG_H is defined, to 27870 solve problem noticed by Brian Gladman 27871 278722008-12-14 Vincent Lef��vre <vincent@vinc17.net> 27873 27874 tests/tsprintf.c: untabified. 27875 278762008-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27877 27878 [INSTALL] added hint for using the MinGW runtime 27879 27880 [tsprintf.c] added new hard-coded test (needs work to overcome error in 27881 system asprintf) 27882 27883 [tsprintf.c] fixed hard-coded test (spec was missing), and print values of 27884 xi,yi,spec in case of error 27885 278862008-12-14 Vincent Lef��vre <vincent@vinc17.net> 27887 27888 INSTALL: corrections on r5730. 27889 278902008-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27891 27892 [INSTALL] added notes on Windows Vista 64 problem 27893 278942008-12-12 Vincent Lef��vre <vincent@vinc17.net> 27895 27896 README: added "compile" since it is distributed in the tarball. 27897 27898 Added "compile" to svn:ignore property (this file is installed by 27899 "automake --add-missing" due to AM_PROG_CC_C_O, added in r5710). 27900 27901 vasprintf.c: avoid an abort if field width or precision is > INT_MAX. 27902 279032008-12-12 Philippe Th��veny <philippe.theveny@laposte.net> 27904 27905 tests.c, tset_ld.c, tgeneric.c: Code clean-up based on icc warnings (as in r5492): Use #ifdef BOOL_MACRO instead of #if BOOL_MACRO. 27906 27907 configure.in: remove line 'GCC=' in icc tests which seems to confuse libtool. 27908 279092008-12-12 Vincent Lef��vre <vincent@vinc17.net> 27910 27911 set_ld.c: rewrote exp computation. 27912 27913 vasprintf.c: avoid a possible gcc 4.1.2 bug with -ftrapv. 27914 27915 vasprintf.c: revert incorrect change in r5713. 27916 279172008-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27918 27919 [set_ld.c] fixed problem with CC=g++ on 64-bit computer: 27920 $ g++ -v 27921 Using built-in specs. 27922 Target: x86_64-linux-gnu 27923 Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release x86_64-linux-gnu 27924 Thread model: posix 27925 gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) 27926 27927 [vasprintf.c] patch to MPFR_ASSERTN(...) call to avoid failure with gcc -ftrapv 27928 with gcc 4.1.2 (probably compiler error) 27929 279302008-12-12 Philippe Th��veny <philippe.theveny@laposte.net> 27931 27932 Makefile.am, tmul.c: Rename macro __SRCDIR to MPFR_SRCDIR. 27933 279342008-12-11 Philippe Th��veny <philippe.theveny@laposte.net> 27935 27936 configure.in: Add AM_PROG_CC_C_O needed by tmul_CPPFLAGS. 27937 tests/Makefile.am: Add tmul.dat in EXTRA_DIST and pass srcdir to tmul.c through tmul_CPPFLAGS. 27938 tests/tmul.c: Add path to tmul.dat. 27939 279402008-12-09 Vincent Lef��vre <vincent@vinc17.net> 27941 27942 INSTALL: TLS on darwin may work, but I don't know anything more. 27943 See thread <https://gcc.gnu.org/legacy-ml/gcc/2008-12/msg00107.html>. 27944 279452008-12-08 Vincent Lef��vre <vincent@vinc17.net> 27946 27947 README: CVS -> Subversion. 27948 279492008-12-03 Vincent Lef��vre <vincent@vinc17.net> 27950 27951 configure.in: format --enable-decimal-float description on 80 columns. 27952 27953 configure.in: for --enable-thread-safe, say that the system must support 27954 it (like what has been done for --enable-logging, just above). 27955 27956 INSTALL: added details about ---enable-thread-safe and TLS support. 27957 279582008-11-28 Vincent Lef��vre <vincent@vinc17.net> 27959 27960 urandomb.c: added comments and cleaned up code. 27961 mpfr.texi: improved description of mpfr_urandomb. 27962 279632008-11-26 Vincent Lef��vre <vincent@vinc17.net> 27964 27965 mpfr.texi: changed URL added in r5696 to avoid a redirection. 27966 279672008-11-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27968 27969 [mpfr.texi] added official url on ftp.gnu.org 27970 279712008-11-26 Vincent Lef��vre <vincent@vinc17.net> 27972 27973 tests/tmul.c: removed useless variable. 27974 27975 tests/tmul.c: made reading a string from file more robust. 27976 279772008-11-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27978 27979 [tmul.c] moved long strings to file tmul.dat, so that gcc -ansi 27980 -pedantic-errors works (ISO C90 does not support strings of length 27981 > 509) 27982 279832008-11-26 Vincent Lef��vre <vincent@vinc17.net> 27984 27985 tests/tinternals.c: updated tests for guaranteed C90 support, e.g. with 27986 gcc -ansi -pedantic-errors (avoid error "string length 'nnn' is greater 27987 than the length '509' ISO C90 compilers are required to support" because 27988 expression for #expr in ASSERT_FAIL macro is too long). 27989 27990 README.dev: in Section "To make a release", suggest -pedantic-errors. 27991 279922008-11-22 Vincent Lef��vre <vincent@vinc17.net> 27993 27994 r5689 undone: some casts were incorrect (mp_exp_t may be greater than 27995 mp_prec_t, so that casting a mp_exp_t into a mp_prec_t can introduce a 27996 bug). There may be bugs in some cases, but the casts fix the symptom, 27997 not the bug (unless one casts the unsigned type to a signed type that 27998 is *strictly* larger, which is not possible here). 27999 280002008-11-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28001 28002 fixed some signed/unsigned warnings with g++ (please review) 28003 280042008-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28005 28006 [nightly-test] removed MPFR_CHECK_ALL (no longer used) 28007 added possibility to choose compiler (e.g., g++) 28008 28009 [README.dev] better check ./configure CC=g++ 28010 280112008-11-21 Philippe Th��veny <philippe.theveny@laposte.net> 28012 28013 Fix inclusion order: the limit of integer types like size_t are defined in C++ only when __STDC_LIMIT_MACROS is defined before <stdint.h> is included (from ISO C99 7.18.3). 28014 280152008-11-21 Vincent Lef��vre <vincent@vinc17.net> 28016 28017 README: added m4 directory (since it is distributed in the tarball). 28018 280192008-11-20 Vincent Lef��vre <vincent@vinc17.net> 28020 28021 Forgot to update Makefile.am too (for r5680). 28022 28023 configure.in: added AC_CONFIG_MACRO_DIR([m4]) for r5680. 28024 280252008-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28026 28027 [mpfr-gmp.c] added comment on recent bug fix on MacOS 28028 28029 [tests] changes to make compilation work with g++ (only fixed errors, 28030 several warnings remain) 28031 280322008-11-20 Vincent Lef��vre <vincent@vinc17.net> 28033 28034 Added m4/size_max.m4 file (from gettext). 28035 28036 README.dev: paragraph on tentative definitions. 28037 280382008-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28039 28040 [mpfr-gmp.c] replace tentative definitions by real definitions, solves 28041 configure problems with mpc (see https://lists.gforge.inria.fr/pipermail/mpc-discuss/2008-November/000048.html) 28042 280432008-11-18 Vincent Lef��vre <vincent@vinc17.net> 28044 28045 hypot.c: updated a comment. 28046 28047 tests/thypot.c: added a test. 28048 28049 hypot.c: simplified an expression; cosmetic changes. 28050 280512008-11-17 Philippe Th��veny <philippe.theveny@laposte.net> 28052 28053 hypot.c: Fix underflow problem when diff_exp<=MPFR_EMAX_MAX-2 using fma (provided that mpfr_fma is immune to it). 28054 28055 algorithms.tex: Fix one typo in dilogarithm section. 28056 280572008-11-12 Vincent Lef��vre <vincent@vinc17.net> 28058 28059 mpfr.texi, NEWS: update concerning mpfr_eq. 28060 28061 mpfr.texi: improved mpfr_eq documentation. 28062 280632008-11-12 Philippe Th��veny <philippe.theveny@laposte.net> 28064 28065 tests/tstrtofr.c: Add more information when test bug20081028 fails. 28066 280672008-11-07 Philippe Th��veny <philippe.theveny@laposte.net> 28068 28069 strtofr.c: Replace non-zero digits look up by a simpler test, using the fact that parse_string did remove zeros at end of pstr->mant. 28070 tests/tstrtofr.c: Add other test values around 1 for the bug20081028 non regression test. 28071 280722008-11-07 Vincent Lef��vre <vincent@vinc17.net> 28073 28074 strtofr.c: improved style ("exact" is a boolean). 28075 280762008-11-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28077 28078 [strtofr.c] new patch (ternary value was still wrong in some cases), should 28079 be ok now 28080 [tstrtofr.c] added new test 28081 280822008-11-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28083 28084 [strtofr.c] review of patch added in revision 5660, and added comments 28085 280862008-10-29 Vincent Lef��vre <vincent@vinc17.net> 28087 28088 Updated NEWS file. 28089 28090 strtofr.c: in r5660, as pstr_size and pstr->prec both have type size_t, 28091 changed the type of i from mp_size_t to size_t for consistency. 28092 28093 strtofr.c: reverted the change done in r3008, which led to a trivial 28094 assertion. I think the goal is to make sure that pstr_size (of type 28095 size_t) can be represented in a mp_exp_t (as required in the code). 28096 280972008-10-29 Philippe Th��veny <philippe.theveny@laposte.net> 28098 28099 strtofr.c: fix bug '[#6604] incorrect directed rounding in mpfr_strtofr'. 28100 281012008-10-29 Vincent Lef��vre <vincent@vinc17.net> 28102 28103 configure.in: replaced $(...) quoting style by "`...`" since the former 28104 is not supported everywhere (and indeed is not used by the autotools): 28105 https://gmplib.org/list-archives/gmp-bugs/2008-October/001185.html 28106 28107 tests/tstrtofr.c: added bug20081028 (bug found by Christoph Lauter 28108 in mpfr_set_str; this is the corresponding bug in mpfr_strtofr). 28109 28110 tests/tstrtofr.c: corrections related to C usage. 28111 28112 tests/tset_str.c: added bug20081028 (bug found by Christoph Lauter). 28113 281142008-10-27 Vincent Lef��vre <vincent@vinc17.net> 28115 28116 mpfr.texi: updated @dircategory (request by Karl Berry). 28117 28118 This is now GNU MPFR! 28119 28120 README: CVS -> Subversion. 28121 281222008-10-23 Philippe Th��veny <philippe.theveny@laposte.net> 28123 28124 vasprintf.c: Fix bug with '#' and 'g' flag combination, see also defect report at http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_233.htm. 28125 tests/tsprintf.c: Fix wrong test value accordingly, add non-regression tests. 28126 281272008-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28128 28129 [get_d64.c,set_d64.c] added reference to TR 24732 28130 281312008-10-16 Vincent Lef��vre <vincent@vinc17.net> 28132 28133 mpfr.h: added a comment about MPFR_SIGN. 28134 281352008-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28136 28137 [mpfr.h] fixed typo, and added warning about MPFR_SIGN. 28138 Shouldn't we move it in mpfr-impl.h? 28139 281402008-10-03 Vincent Lef��vre <vincent@vinc17.net> 28141 28142 INSTALL, configure.in: corrected documentation of --with-gmp* options. 28143 281442008-10-02 Vincent Lef��vre <vincent@vinc17.net> 28145 28146 INSTALL: gave more details about --with-gmp-build. 28147 281482008-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28149 28150 [INSTALL] added warning about usage of --with-gmp-build 28151 281522008-09-21 Vincent Lef��vre <vincent@vinc17.net> 28153 28154 TODO: updated LIA-2 terminology ("pole" was in the latest public draft, 28155 "infinitary" in the final standard). 28156 281572008-09-19 Philippe Th��veny <philippe.theveny@laposte.net> 28158 28159 tests/tstrtofr.c: Remove underflow test unintentionally committed with revision 5640. 28160 281612008-09-18 Philippe Th��veny <philippe.theveny@laposte.net> 28162 28163 Remove obsolete mpfr_random function and replace it by mpfr_urandomb in tests. 28164 28165 Add void in prototype. 28166 281672008-09-18 Vincent Lef��vre <vincent@vinc17.net> 28168 28169 tests/tests.c: added comments about the MPFR_FPU_PREC macro. 28170 281712008-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28172 28173 [tget_str.c] replaced 'double' input by 'char*' to avoid problems with single 28174 precision (partially solves #3353) 28175 281762008-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28177 28178 [README.dev] added item about coverage of releases 28179 281802008-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28181 28182 final got rid of generic.c (bug 6199) 28183 28184 [generic.c] removed unused file 28185 281862008-09-16 Vincent Lef��vre <vincent@vinc17.net> 28187 28188 NEWS, mpfr.texi: documented the fact that mpfr_random and mpfr_random2 28189 will be suppressed in the next release. 28190 28191 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 28192 281932008-09-10 Philippe Th��veny <philippe.theveny@laposte.net> 28194 28195 tests/tpow_z.c: Check test for bug20080904 with the minimum possible negative exponent so as not to underflow with (future) 128 bits machine. 28196 281972008-09-06 Vincent Lef��vre <vincent@vinc17.net> 28198 28199 pow.c: fixed bug20080904 (from tpow_z.c). 28200 28201 pow.c: added log messages. 28202 282032008-09-05 Philippe Th��veny <philippe.theveny@laposte.net> 28204 28205 tests/tpow_z.c: Add a test that underflows. 28206 282072008-09-05 Vincent Lef��vre <vincent@vinc17.net> 28208 28209 configure.in: updated a comment (for the next automake version). 28210 28211 NEWS: added a note about mpfr_init_gmp_rand (removed in r4953). 28212 282132008-09-04 Vincent Lef��vre <vincent@vinc17.net> 28214 28215 README.dev: update (about AM_MAINTAINER_MODE). 28216 282172008-09-02 Vincent Lef��vre <vincent@vinc17.net> 28218 28219 Updated README file. 28220 282212008-09-01 Vincent Lef��vre <vincent@vinc17.net> 28222 28223 Removed patch-libtool and updated README.dev as libtool has been fixed. 28224 28225 NEWS file update (get default $CC and $CFLAGS from gmp.h). 28226 28227 configure.in: removed a useless blank line. 28228 28229 README.dev: reverse-merged r5440 (about __GMP_CC/__GMP_CFLAGS) as said. 28230 282312008-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28232 28233 [algorithms.tex] the truncation error for rec_sqrt was correct, but the 28234 reasoning was not detailed enough 28235 282362008-08-27 Vincent Lef��vre <vincent@vinc17.net> 28237 28238 Added patch-aclocal-icc; this is a port of the patch posted on 28239 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=485421 28240 for aclocal.m4 when libtool 1.5.26-4 from Debian has been used. 28241 282422008-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28243 28244 [rec_sqrt.c] fixed bug "bad_case1" (truncation error was forgotten, when 28245 output precision was smaller than input precision) 28246 282472008-08-27 Vincent Lef��vre <vincent@vinc17.net> 28248 28249 mpfr.texi: updated the month. 28250 282512008-08-26 Vincent Lef��vre <vincent@vinc17.net> 28252 28253 tests/trec_sqrt.c: enable the tests only with MPFR 2.4.0+. 28254 28255 NEWS: noted when some changes were applied in 2.3.* versions. 28256 282572008-08-25 Vincent Lef��vre <vincent@vinc17.net> 28258 28259 README.dev: completed information about integer types. 28260 28261 README.dev: added information about mixing signed and unsigned types. 28262 28263 li2.c: avoid even more mixing between signed and unsigned types, by 28264 casting mpfr_prec_t to mp_exp_t in expressions involving mp_exp_t. 28265 This time the bug is fixed: tli2 no longer freezes in 64 bits. 28266 28267 li2.c: use an "int" instead of "unsigned int" in li2_series() to avoid 28268 mixing signed and unsigned types, which can yield implicit conversions 28269 from signed into unsigned, and maybe problems on some platforms. This 28270 doesn't fix the current freeze of tli2 on 64-bit machines, though. 28271 282722008-08-24 Vincent Lef��vre <vincent@vinc17.net> 28273 28274 tests/tgeneric.c: changed the way a warning with gcc 4.2+ is avoided 28275 (r5335), as suggested by Manuel L��pez-Ib����ez on GCC bug 36299. 28276 282772008-08-21 Vincent Lef��vre <vincent@vinc17.net> 28278 28279 Added data_check support to mpfr_sqr. 28280 Added bad_cases support to mpfr_sqr and mpfr_sqrt. 28281 28282 tests/tsqr.c: corrected function definitions. 28283 28284 Added data_check & bad_cases support to mpfr_rec_sqrt. 28285 28286 tests/trec_sqrt.c: added bad case that makes mpfr_rec_sqrt fail. 28287 28288 mpfr-impl.h: as not all ICC versions define the __ICC macro (only 28289 the __INTEL_COMPILER macro can be defined), define the __MPFR_ICC 28290 and __MPFR_GNUC macros in another way. 28291 28292 tests/tsprintf.c: fixed compilation failure when HAVE_DENORMS isn't 28293 defined, such as with icc 10.1 on Itanium. 28294 28295 tests/tprintf.c: to allow random values to be reproducible, 28296 do not call randlimb several times in a same expression, 28297 because the evaluation order is unspecified. 28298 28299 tests/tpow_all.c: added test of mpfr_rec_sqrt (only with MPFR 2.4.0+). 28300 28301 tests/tpow_all.c: removed useless parentheses. 28302 28303 rec_sqrt.c: added logging support. 28304 28305 algorithms.tex: replaced "towards" by "toward" for consistency with 28306 the MPFR manual and the standards. 28307 28308 algorithms.tex: corrected English usage, spelling and typography 28309 in the section on mpfr_hypot. 28310 283112008-08-20 Vincent Lef��vre <vincent@vinc17.net> 28312 28313 tests/thypot.c: added a test for tiny x and y (already done by the 28314 generic tests, but not yet in the 2.3 branch in extended exponent 28315 range). 28316 28317 tests/tgeneric.c: for the special cases tested in precision p1 28318 for n <= 3, set the extended exponent range. 28319 28320 tests/thypot.c: improved error messages. 28321 28322 tests/thypot.c: perform some tests both in the current exponent range 28323 and in the extended exponent range, so that the lost-overflow bug of 28324 MPFR 2.3.1 can be triggered on 64-bit machines too. 28325 28326 tests/tpow_all.c: 28327 * In cmpres(), if z1 and z2 were both zeros, their sign wasn't tested. 28328 * Added test of mpfr_sqr and mpfr_sqrt. 28329 28330 mpfr.texi: added a paragraph on MPFR internal data. 28331 28332 pow_si.c: fixed the underflow/overflow detection for n < 0 by using 28333 a method similar to mpfr_pow_z. 28334 28335 pow_si.c: added logging support. 28336 28337 pow.c: fixed bug in mpfr_pow_general by computing correct bounds 28338 on exp(y*ln|x|). ==> tpow no longer fails in bug20080820. 28339 Note: this bug could affect only underflow cases and possibly cases 28340 near overflow. 28341 28342 tests/tpow.c: updated comment for bug20080820(). 28343 28344 tests/tpow.c: added testcase for bug mentioned in r5552. 28345 28346 pow_z.c: solves the underflow problem in round-to-nearest by using 28347 mpfr_pow_general in precision 2 (like in mpfr_pow_pos_z), but this 28348 currently fails due to a more general bug from r4940 (the rounding 28349 modes to compute an upper bound on exp(y*ln|x|) are incorrect). 28350 28351 pow_z.c: formatting. 28352 28353 pow_z.c: moved a log message. 28354 28355 pow_z.c: added log messages. 28356 28357 tests/tpow_all.c: added an underflow test of x^y with y integer < 0. 28358 28359 pow_z.c: no longer take care of the possibly lost overflow flag, as 28360 the other functions do not do this either; this general problem has 28361 been fixed in mpfr_check_range (r5545). 28362 28363 Fixed the following problem: 28364 The overflow flag can be lost in many functions called with the 28365 maximum exponent equal to MPFR_EMAX_MAX (this is the default on 28366 32-bit machines) when the temporary result (in a higher precision) 28367 is representable but once rounded, it yields an overflow. 28368 This needed a slight change of behavior of the mpfr_check_range function 28369 (defined in exceptions.c). Described this change in mpfr.texi and NEWS. 28370 28371 pow_z.c: fixed some of the underflow/overflow problems for z < 0. 28372 28373 tests/tpow_all.c: fixed mpfr_clear in overflow_inv. 28374 28375 tests/tpow_all.c: more detailed error messages. 28376 28377 tests/tpow_all.c: improved overflow_inv tests to trigger a bug 28378 in mpfr_pow_z due to incorrect rounding mode settings in r5315: 28379 on a 64-bit Linux machine, "./tpow_all 1" ends with: 28380 Bad overflow flag in overflow_inv for mpfr_pow, extended exponent range, 28381 s = 1, t = 1, GMP_RNDZ 28382 28383 tests/tpow_all.c: in overflow_inv, reduced t to [0,5] and added tests. 28384 283852008-08-19 Vincent Lef��vre <vincent@vinc17.net> 28386 28387 tests/tpow_all.c: improved error messages. 28388 28389 tests/tpow_all.c: changed the precisions in overflow_inv for clearer 28390 output (the reported failures are the same). 28391 28392 tests/tpow_all.c: information about extended exponent range wasn't 28393 always output. For simplicity to provide such an information, made 28394 ext a global variable. 28395 28396 tests/tpow_all.c: added overflow tests for x^(-1). -> Failure. 28397 28398 Fixed basic underflow checking in mpfr_pow. 28399 284002008-08-18 Vincent Lef��vre <vincent@vinc17.net> 28401 28402 mpfr-impl.h: defined macro INITIALIZED to declare that some variable 28403 is initialized before being used. 28404 README.dev: described the use of this macro. 28405 lngamma.c: replaced the dummy initialization by this macro. 28406 284072008-08-16 Vincent Lef��vre <vincent@vinc17.net> 28408 28409 pow.c: updated comments. 28410 28411 tests/tpow_all.c: added tests -> assertion failed in pow.c line 603. 28412 284132008-08-15 Vincent Lef��vre <vincent@vinc17.net> 28414 28415 tests/tpow_all.c: added test of mpfr_ui_div. 28416 28417 pow_z.c: improved comments. 28418 284192008-08-14 Vincent Lef��vre <vincent@vinc17.net> 28420 28421 mpfr.texi: additions related to MPFR caches. 28422 * Added Section "Memory Handling" mentioning caches. 28423 * Added call to mpfr_free_cache in the first example. 28424 * Updated description of function mpfr_free_cache. 28425 28426 tests/texp.c: improved an underflow test to trigger the bug fixed 28427 in r5453 on 32-bit machines too. 28428 28429 log.c: fixed a log message. 28430 28431 exp_2.c: fixed other log messages. 28432 28433 exp_2.c: fixed a log message (the format didn't correspond to the types) 28434 and improved it. 28435 284362008-08-12 Vincent Lef��vre <vincent@vinc17.net> 28437 28438 tests/tdiv.c: completed underflow test by testing negative results too. 28439 28440 mul_2si.c, div_2si.c, div_2ui.c: fixed double-rounding problem in 28441 rounding to nearest when the rounded result in unbounded exponent 28442 range is 2^(emin - 2). 28443 tests/tmul_2exp.c: test x = 15/16 too. Now tmul_2exp no longer fails 28444 (with the correction in div.c from r5515). 28445 28446 tests/tdiv.c correction: the underflow bug was in case when the 28447 result had to be zero. 28448 28449 div.c: fixed underflow bug that occurs in rounding to nearest when 28450 the rounded result in unbounded exponent range is 2^(emin - 2) and 28451 inex > 0: one got a non-zero result instead of +/-0. 28452 28453 tests/tdiv.c: added a test that triggers a bug in mpfr_div in case of 28454 underflow in rounding to nearest when the result must be non-zero. 28455 28456 div.c: added logging support. 28457 28458 tests/tmul_2exp.c: test mpfr_div_2ui too. 28459 28460 tests/tmul_2exp.c: test mpfr_div_2si too. 28461 28462 tests/tmul_2exp.c: updated underflow() test to trigger a double-rounding 28463 bug in case of underflow. 28464 28465 tests/texp.c: updated comment (the double-rounding bug triggered by 28466 underflow_up() is in mpfr_mul_2si). 28467 28468 tests/texp.c: updated underflow_up() test: added case exp(eps) ~= 1/2, 28469 which fails due to a double-rounding problem in rescaling the result. 28470 28471 tests/texp.c: improved comments in underflow_up(). 28472 284732008-08-11 Vincent Lef��vre <vincent@vinc17.net> 28474 28475 Merged vlefevre branch: 28476 svn merge -c-5445 . 28477 svn merge -r5436:HEAD .../mpfr/branches/vlefevre 28478 * pow.c: 28479 - Moved the general case from mpfr_pow() to a new internal function 28480 mpfr_pow_general(). 28481 - In this function (from old code), avoid unnecessary overflow test 28482 if the intermediate result is not an infinity (which was the case 28483 of underflow with non-zero result, thus not an overflow). 28484 - Fixed a double-rounding problem that occurred in this function in 28485 some underflow cases when rescaling the result. 28486 - Added log messages. 28487 * mpfr-impl.h: added mpfr_pow_general prototype. 28488 * pow_z.c: 28489 - The underflow case of mpfr_pow_pos_z() in rounding to nearest, 28490 which was incorrect, is now handled by calling mpfr_pow_general(), 28491 which can scale the result thus decide whether the rounded result 28492 should be 0 or nextabove(0). To avoid the exact cases of x^y with 28493 y integer (not supported by mpfr_pow_general()), rounding is done 28494 in precision 2 (this is also faster!). 28495 - Fixed underflow-related bug (case exact result = 2^(emin-2), in 28496 rounding to nearest). 28497 - Added log messages. 28498 * pow_ui.c: 28499 - Swapped parameters x and y for consistency (-> y = x^n). 28500 - Fixed the internal overflows and underflows (which could yield 28501 spurious overflows/underflows and incorrect results) by using 28502 mpfr_pow_z. 28503 * tests/tpow_all.c: 28504 - Test flags in test_others and cmpres; cmpres argument z1 can now 28505 be a null pointer (if unknown pure FP value, thus not tested). 28506 - Added a test of 2^(emin - i/4) with 0 <= i <= 12, that triggered 28507 the bugs mentioned above (and now fixed). 28508 28509 [Added during the Subversion to Git conversion] 28510 A merge commit could not be generated for Git. 28511 Branch in Git: refs/deleted/r5506/heads/vlefevre 28512 285132008-08-11 Vincent Lef��vre <vincent@vinc17.net> 28514 28515 tests/tmul_2exp.c: added underflow tests. 28516 28517 Added logging support to mpfr_{mul,div}_2{si,ui}. 28518 285192008-08-08 Vincent Lef��vre <vincent@vinc17.net> 28520 28521 mpfr-impl.h: added a space for MPFR_LOG_MSG. 28522 28523 README.dev: corrected MPFR_LOG_MSG example. 28524 28525 mpfr.h: added a comment concerning ICC. 28526 285272008-08-07 Vincent Lef��vre <vincent@vinc17.net> 28528 28529 Final code clean-up based on icc warnings. 28530 28531 Further code clean-up (and consistency) based on icc warnings: 28532 * Removed useless code. 28533 * Avoid hiding variable declarations. 28534 * Use #ifdef BOOL_MACRO instead of #if BOOL_MACRO. 28535 * In MPFR_RNDRAW_GEN macro definition, variables declared locally now 28536 start with an underscore to avoid possible conflits with parameters 28537 (and modified macro calls that use these variables). 28538 28539 round_prec.c: avoid hiding variable declaration (detected by icc). 28540 28541 pow_si.c: fixed Ziv's iteration (code from r3305) by using MPFR_ZIV_NEXT 28542 (problem detected by icc, because variable "loop" was never used). 28543 28544 mul_ui.c: removed variable that was set but never used (detected by icc, 28545 but not by gcc, probably because of early optimization). 28546 28547 inp_str.c: fixed possible implementation-defined behavior (a value 28548 from the unsigned char range -- from getc -- was stored in a char, 28549 and if the char type is signed and the value cannot be represented 28550 in a char, this is implementation-defined). 28551 28552 get_str.c: avoid hiding variable declaration (detected by icc). 28553 28554 div.c: avoid hiding variable declaration (detected by icc). 28555 28556 mpfr.h, mpfr-impl.h: avoid warnings with icc (at least icc 10.1). 28557 README.dev: added a paragraph on the test of "boolean" macros. 28558 285592008-08-05 Vincent Lef��vre <vincent@vinc17.net> 28560 28561 configure.in: dist-lzma needs automake 1.10.1. 28562 285632008-08-04 Vincent Lef��vre <vincent@vinc17.net> 28564 28565 configure.in: "make dist" generates lzma-compressed tarball too. 28566 285672008-08-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28568 28569 [exp_2.c] fixed case where cancel is negative, added comments and improved 28570 code when initial n is known to be 0 28571 285722008-08-01 Vincent Lef��vre <vincent@vinc17.net> 28573 28574 exp_2.c: MPFR_EXP -> MPFR_GET_EXP. 28575 285762008-08-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28577 28578 [exp_2.c] fixed bug20080731 28579 285802008-07-31 Vincent Lef��vre <vincent@vinc17.net> 28581 28582 Added algorithms.out to svn:ignore property. 28583 28584 tests/texp.c: added testcase for new bug found in mpfr_exp_2. 28585 28586 exp.c, exp_2.c: fixed the overflow/underflow detection. The underflow_up 28587 test in texp.c still fails for mpfr_exp_2 only, but this seems to be due 28588 to a bug in this function (incorrect error bound?). 28589 28590 tests/texp.c: added underflow tests to underflow_up; currently fail due 28591 to incorrect underflow detection in mpfr_exp (and if this detection is 28592 disabled, mpfr_exp_3 behaves correctly, but not mpfr_exp_2). 28593 285942008-07-31 Philippe Th��veny <philippe.theveny@laposte.net> 28595 28596 Fix typos, improve wording. 28597 285982008-07-31 Vincent Lef��vre <vincent@vinc17.net> 28599 28600 Added logging support to mpfr_exp_2 (exp_2.c). 28601 28602 tests/texp.c: updated comment concerning the bug fixed in r5469. 28603 28604 exp.c: updated comment about the exp3.c routine. 28605 28606 exp3.c: fixed internal underflow. 28607 28608 fma.c, fms.c: added a comment about apparently incorrect scaling. 28609 28610 Added logging support to mpfr_sqr and mpfr_sqrt. 28611 286122008-07-31 Philippe Th��veny <philippe.theveny@laposte.net> 28613 28614 hypot.c: Fix comment. 28615 BUGS: Add known bug for mpfr_hypot. 28616 286172008-07-30 Philippe Th��veny <philippe.theveny@laposte.net> 28618 28619 algorithms.tex: Prove the correctness of the algorithm used for mpfr_hypot 28620 when the difference of inputs' exponents is less then exp_max - 2. 28621 hypot.c: Change algorithm according to its description in algorithms.tex 28622 tests/thypot.c: Fix tests (some were present but didn't trigger any error). 28623 286242008-07-30 Vincent Lef��vre <vincent@vinc17.net> 28625 28626 tests/texp.c: completed a comment. 28627 28628 tests/texp.c: updated underflow_up test of log(2^(emin - 1)) + eps: 28629 * In the old test (- log(2) < eps < 0 in GMP_RNDN), do not test 28630 the flags, as this may be incorrect on some platforms (though 28631 unlikely). Better tests will be provided later. 28632 * Added test for case eps > 0, which triggers a bug in mpfr_exp_3 28633 (underflow flag sometimes set while it shouldn't be set). 28634 28635 exp.c: completed a comment, describing how rigorous underflow/overflow 28636 detection can be done. 28637 28638 exp.c: removed an incorrect comment (corresponds to exp_2.c and already 28639 in exp_2.c). 28640 286412008-07-29 Vincent Lef��vre <vincent@vinc17.net> 28642 28643 exp.c: underflow/overflow detection is still a bit incorrect. 28644 28645 TODO: added "test underflow/overflow detection...". 28646 28647 exp.c: fixed underflow/overflow detection. 28648 28649 exp_2.c: GNU style. 28650 28651 mpfr-impl.h: make sure that mpfr_get_exp_t and mpfr_set_exp_t are 28652 correctly defined. 28653 286542008-07-26 Vincent Lef��vre <vincent@vinc17.net> 28655 28656 tests/texp.c: updated comment of underflow_up. 28657 28658 exp_2.c: solved the assertion failure by detecting a zero due to a 28659 cancellation and increasing the precision via Ziv's loop in such a 28660 case. 28661 28662 exp_2.c: added another assertion, that is checked independently of 28663 the value of MPFR_EXP_2_THRESHOLD (better for debugging). 28664 28665 exp_2.c: added an assertion (more explicit than a similar assertion 28666 that would fail later) in mpfr_exp2_aux, caught by the underflow_up 28667 test in texp.c for prec = 16 on a 64-bit Linux machine. 28668 286692008-07-25 Vincent Lef��vre <vincent@vinc17.net> 28670 28671 tests/texp.c: added a test that shows incorrect underflow detection 28672 in mpfr_exp, with possible assertion failure. 28673 28674 tests/tpow_all.c: added test of mpfr_exp2 and mpfr_exp10. 28675 28676 TODO: update. 28677 28678 TODO: added "option to use a 32-bit exponent type on LP64 machines". 28679 286802008-07-23 Vincent Lef��vre <vincent@vinc17.net> 28681 28682 acinclude.m4: updated AC_PREREQ line due to the use of AC_PROG_SED. 28683 286842008-07-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28685 28686 added reminder 28687 28688 patch from Patrick to get __GMP_CC and __GMP_CFLAGS from gmp.h 28689 (future undocumented feature for GMP 4.2.3) -> we need to check 28690 those are the names chosen by GMP 4.2.3 when it will be out 28691 286922008-07-21 Vincent Lef��vre <vincent@vinc17.net> 28693 28694 pow.c: fixed incorrect rounding in the general case when the result 28695 is negative and rnd = GMP_RNDD or GMP_RNDU (bug20080721 in tpow.c). 28696 28697 tests/tpow.c: completed test bug20080721. 28698 28699 pow.c: fixed the non-trivial cases with large integer y. 28700 28701 tests/tpow.c: added comment for bug20080721. 28702 28703 tests/tpow.c: found another bug in mpfr_pow with large integers. 28704 28705 tests/tpow_all.c: added a test that detects a bug in an underflow case. 28706 28707 tests/tpow_all.c: made the comparisons between the power functions 28708 generic to be able to add other tests. 28709 287102008-07-20 Vincent Lef��vre <vincent@vinc17.net> 28711 28712 pow_z.c: use MPFR_IS_POS(x) instead of MPFR_SIGN(x) > 0. 28713 28714 pow_si.c: corrected a comment. 28715 28716 tests/tpow_z.c: fixed NaN^0 test. 28717 28718 Fixed a bug in pow_ui.c and pow_z.c: NaN^0 returned NaN instead of 1 28719 (see documentation). Affected functions: mpfr_pow_ui, mpfr_pow_si and 28720 mpfr_pow_z (but not mpfr_pow). Added new test file tests/tpow_all.c 28721 to test all the MPFR power functions on simple and special values. 28722 287232008-07-19 Vincent Lef��vre <vincent@vinc17.net> 28724 28725 mpfr.texi: forgot the case x^(��0). 28726 28727 pow_z.c: updated comments. 28728 28729 tests/tpow_z.c: test bug20080223() didn't check that the result wasn't 28730 a NaN. Fixed. 28731 28732 tests/tsprintf.c: removed trailing whitespace. 28733 287342008-07-11 Vincent Lef��vre <vincent@vinc17.net> 28735 28736 BUGS: potential problem with integer division and pre-C99 compilers, 28737 noted by Philippe. 28738 287392008-07-08 Philippe Th��veny <philippe.theveny@laposte.net> 28740 28741 Fix typos 28742 287432008-06-30 Philippe Th��veny <philippe.theveny@laposte.net> 28744 28745 Fix typo (gmp macro TMP_ALLOC instead of MPFR_TMP_ALLOC). 28746 287472008-06-27 Vincent Lef��vre <vincent@vinc17.net> 28748 28749 vasprintf.c: fixed comment from r5408. 28750 287512008-06-27 Philippe Th��veny <philippe.theveny@laposte.net> 28752 28753 acinclude.m4: add a check defining va_copy macro when needed. 28754 vasprintf.c: use TMP_ALLOC instead of variable-length array (C99). 28755 tests/tfprintf.c tests/tsprintf.c: #define length of array instead of const int so as to avoid variable-length array (C99). 28756 tests/tprintf.c: #define length of array instead of const int so as to avoid variable-length array (C99). 28757 remove use of function dup (dependency with <unistd.h>). 28758 287592008-06-25 Vincent Lef��vre <vincent@vinc17.net> 28760 28761 README.dev: updated "To make a release" (mention various compilers). 28762 287632008-06-23 Vincent Lef��vre <vincent@vinc17.net> 28764 28765 configure.in: added comments about icc. 28766 287672008-06-22 Vincent Lef��vre <vincent@vinc17.net> 28768 28769 TODO: added "replace the *_THRESHOLD macros by global (TLS) variables 28770 that can be changed at run time [...]". 28771 287722008-06-16 Vincent Lef��vre <vincent@vinc17.net> 28773 28774 INSTALL: updated GMP's URL (the old one no longer worked), using 28775 http://www.gnu.org/software/gmp/ as suggested by Karl Berry (see 28776 GNU policies). 28777 287782008-06-13 Vincent Lef��vre <vincent@vinc17.net> 28779 28780 mpfr.texi: changed the license for the inclusion of the manual in Debian 28781 (see <https://www.debian.org/vote/2006/vote_001). 28782 287832008-06-11 Vincent Lef��vre <vincent@vinc17.net> 28784 28785 AUTHORS: converted from ISO-8859-1 to UTF-8 (this is the standard 28786 nowadays and this is the encoding declared on InriaGforge). 28787 287882008-06-11 Philippe Th��veny <philippe.theveny@laposte.net> 28789 28790 Fix typo in mpfr_printf documentation. 28791 287922008-06-11 Vincent Lef��vre <vincent@vinc17.net> 28793 28794 vasprintf.c: removed a misleading and now useless comment. 28795 28796 vasprintf.c: improved a comment. 28797 28798 tsprintf.c: typo in a comment. 28799 288002008-06-11 Philippe Th��veny <philippe.theveny@laposte.net> 28801 28802 Fix comparison between mpfr string and libc string. 28803 288042008-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28805 28806 added test for bug(?) found by Vincent with icc 28807 288082008-06-10 Philippe Th��veny <philippe.theveny@laposte.net> 28809 28810 Change #include <stdio.h> to #include <cstdio> when compiled with a C++ compiler. 28811 Assume that mpfr_rnd_t and wchar_t arguments in a variadic functions are converted to 'int' by C++ compilers. 28812 288132008-06-10 Vincent Lef��vre <vincent@vinc17.net> 28814 28815 mpfr-impl.h: generate an error (with a clear error message) with g++ and 28816 --enable-logging since compilation fails (--enable-logging is mainly for 28817 testing and is already incompatible with threading support anyway). 28818 288192008-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28820 28821 the O(l^{1/2}) method to evaluate power series is due to 28822 Paterson and Stockmeyer and not Brent/Kung 28823 288242008-06-09 Vincent Lef��vre <vincent@vinc17.net> 28825 28826 Clean-up and various changes to be able to build MPFR with g++. 28827 But the following 3 tests currently fail with g++ 4.3.1: 28828 FAIL: tprintf 28829 FAIL: tsprintf 28830 FAIL: tfprintf 28831 This is an "Illegal instruction" error, so probably a bug in g++. 28832 [Edit: acinclude.m4 now uses gl_SIZE_MAX, typically from size_max.m4, 28833 but which is not installed on all machines; this will be added to the 28834 MPFR repository in changesets 5680 and 5683.] 28835 28836 vasprintf.c: do not use pointer arithmetic on void *. 28837 28838 configure.in: added -Wpointer-arith to gcc options (this warning 28839 is useful as pointer arithmetic on void * is a gcc extension and 28840 doesn't work with g++). 28841 28842 README.dev: mentioned a libtool bug with recent versions of icc. 28843 28844 sum.c: 28845 * Completed a comment about T ** and const T ** mismatch. 28846 * Removed a useless and misleading const that makes icc complain. 28847 288482008-06-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28849 28850 fixed typos 28851 288522008-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28853 28854 use DeclareMathOperator for erf and erfc 28855 28856 fixed typo, added argument reduction for atan (we should try it since I believe 28857 atan is slow wrt exp, log, sin, cos for large precisions) 28858 28859 simplified error analysis of log1p (did not match the code), and improved the 28860 code (in particular when 1+x is exact, directly call mpfr_log and avoid Ziv). 28861 288622008-06-06 Vincent Lef��vre <vincent@vinc17.net> 28863 28864 rec_sqrt.c: removed execution bit. 28865 28866 mpfr.texi: update about build problems and the FAQ. 28867 28868 mpfr.texi: added a comment about why the cross reference to GNU Libtool 28869 doesn't work from MPFR's directory. 28870 28871 mpfr.texi: added Section 4.1 "Headers and Libraries" partly based on 28872 GMP's. Note: in the generated mpfr.info file, the cross reference to 28873 libtool does not work (though GMP's info manual has exactly the same 28874 one and it works there). I couldn't figure out why. 28875 28876 mpfr.texi: make cross reference in HTML similar to texinfo's default one 28877 in PDF. 28878 288792008-06-04 Vincent Lef��vre <vincent@vinc17.net> 28880 28881 mpfr.texi: updated the month. 28882 28883 mpfrlint: check the LGPL license version. 28884 28885 mpfr.texi: updated paragraph on the license in "Introduction to MPFR". 28886 28887 mpfr.texi: updated GFDL version from 1.1 to 1.2 to match fdl.texi 28888 (this should have been done in r4059). 28889 28890 mpfrlint: check GFDL versions. 28891 28892 mpfr.texi, update-version: in the MPFR manual, replaced two 28893 http://www.mpfr.org/ by the URL corresponding to the version, 28894 which can be updated by update-version. 28895 28896 mpfr.texi: completed paragraph on MPFR vs double-precision numbers. 28897 28898 mpfr.texi: replaced each @code{mpfr} by MPFR (for consistency). 28899 289002008-06-03 Vincent Lef��vre <vincent@vinc17.net> 28901 28902 mpfr.h: fixed a comment. 28903 289042008-05-23 Vincent Lef��vre <vincent@vinc17.net> 28905 28906 tests: added tprintf to svn:ignore property. 28907 28908 Added documentation about "'var' may be used uninitialized in this 28909 function" warnings. 28910 289112008-05-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28912 28913 Added comments about int i = i trick to avoid warning about uninitialized 28914 variables. This has the advantage to generate no code, but works for gcc only. 28915 289162008-05-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28917 28918 initialize bbcp and bbcp1 to -1 (should be invalid) 28919 added MPFR_ASSERTN to check they are not -1 before reads 28920 simplified a test: (rnd == RNDN) || (rnd != RNDZ) ==> rnd != RNDZ 28921 28922 got rid of false (?) compiler warnings for uninitialized values 28923 -> we might want to revert this change if we find a better solution and/or 28924 if the problem is fixed in gcc 28925 289262008-05-20 Vincent Lef��vre <vincent@vinc17.net> 28927 28928 Reverted changeset r5355. Better patch to avoid the warnings 28929 "warning: label 'addoneulp_doit' defined but not used" in 28930 MPFR_RNDRAW_GEN by adding the dummy code in the macro itself. 28931 28932 Avoid warnings "warning: label 'addoneulp_doit' defined but not used" 28933 due to the use of MPFR_RNDRAW_GEN. Dummy source code is inserted, but 28934 this is safe, clean (optimized away) and IMHO not too obtrusive. 28935 289362008-05-08 Vincent Lef��vre <vincent@vinc17.net> 28937 28938 acinclude.m4: locally add -I$srcdir to CPPFLAGS for the thread-safe test 28939 (fixes bug #5556). 28940 289412008-04-10 Vincent Lef��vre <vincent@vinc17.net> 28942 28943 INSTALL: added a paragraph about -ffast-math / -fast compiler options. 28944 289452008-04-07 Vincent Lef��vre <vincent@vinc17.net> 28946 28947 tcmp.c: fixed some tests (if mpfr_cmp2 returns an incorrect result, 28948 the bug may be some non-reproducible behavior, so don't compute it 28949 a second time to say what the value was!) and clean-up. 28950 289512008-04-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28952 28953 fixed compiler warning 28954 289552008-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28956 28957 some other changes suggested by Patrick Pelissier for 16-bit portability 28958 28959 a few patches suggested by Patrick Pelissier to ease porting to 16-bit 28960 architectures: removed useless #include <time.h>, changed 1024 to 1024L, 28961 int i to lng i 28962 289632008-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28964 28965 added item about frac_* functions 28966 289672008-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28968 28969 fixed typo 28970 289712008-03-11 Philippe Th��veny <philippe.theveny@laposte.net> 28972 28973 tests/tfprintf.c: set output to stdout when invocked with one command-line 28974 parameter. 28975 tests/tprintf.c: add IO errors processing. 28976 289772008-03-10 Philippe Th��veny <philippe.theveny@laposte.net> 28978 28979 tests/tprintf.c: add tests for mpfr_printf and mpfr_vprintf. 28980 Makefile.am: add tprintf.c to check_PROGRAMS. 28981 28982 TODO: remove newly added functions 28983 vasprintf.c: change type of some variables taking care of signed/unsigned 28984 comparisons, improve conditional tests, improve buffer 28985 allocation, improve comments. 28986 tests/tfprintf.c: remove silly code. 28987 28988 acinclude.m4: add check for long long compiler support, define HAVE_LONG_LONG. 28989 vasprintf.c: raise an error when it encounter an unsupported format in format 28990 string. 28991 tests/tfprintf.c: HAVE_SDTINT_H -> _MPFR_H_HAVE_INTMAX_T 28992 28993 vasprintf.c: fix rounding bit bug with %RNa. 28994 tests/tsprintf.c: add tests for %RNa (rounding bit bug, tie case, trailing 28995 zeros in fractional part. 28996 28997 vasprintf.c: fix bug in macro CONSUME_VA_ARG with a mp_limb_t or mp_limb_t array argument 28998 vasprintf.c: clean code storing the number of character in a pointer and fix bug with a mp_limb_t or mp_limb_t array argument 28999 tests/tfprintf.c: add tests for %n with all kinds of type, get rid of machine dependent limits of type (use +1/-1 instead) 29000 29001 vasprintf.c: fix bug of forgotten decimal point with %#.0Rf 29002 tests/tsprintf.c: add test with %#Rf and an integer mpfr_t 29003 29004 li2.c: improve error estimation in Ziv loop. 29005 algorithm.tex:improve proof of mpfr_li2 algorithm. 29006 29007 hypot.c: change shift amount for exponents so as to avoid overflow in Ziv loop. 29008 algorithm.tex: improve proof for mpfr_hypot algorithm (unfinished). 29009 290102008-03-07 Vincent Lef��vre <vincent@vinc17.net> 29011 29012 tgeneric.c: avoid a warning with gcc 4.2+ about a test that is always 29013 true (the style of the code is now a bit better too). 29014 290152008-02-29 Philippe Th��veny <philippe.theveny@laposte.net> 29016 29017 add mpfr_hypot 29018 29019 fix wrong arguments (set in r5332) 29020 29021 add missing functions 29022 29023 cosmetic changes 29024 290252008-02-28 Philippe Th��veny <philippe.theveny@laposte.net> 29026 29027 add mixed format tests (with different types and different sizes) 29028 29029 vasprintf.c: fix "%%" bug 29030 tests/tsprintf.c: add a test setting "%%" bug off 29031 29032 cosmetic changes 29033 29034 use system number of bits in the significant of a double (instead of 53) 29035 290362008-02-27 Philippe Th��veny <philippe.theveny@laposte.net> 29037 29038 add handle for the case exp(x) overflows but sinh(x) is representable 29039 29040 further code simplification 29041 29042 code simplification (same as in r5323) 29043 29044 code simplification. 29045 29046 add_d.c, div_d.c, sub_d.c, d_div.c, d_sub.c: restore flags in case of exception. This fixes the bug revealed by MPFR_SUSPICIOUS_OVERFLOW 29047 tests/tadd_d.c, tests/tsub_d.c, tests/tdiv_d.c, tests/tmul_d.c, tests/td_sub.c, tests/td_div.c, test/tmul_d.c: add checks for exception flags and ternary value 29048 29049 mul_d.c: restore flags set by mpfr_mul. This fixes the bug revealed by MPFR_SUSPICIOUS_OVERFLOW 29050 test/tmul_d.c: add checks for exception flags 29051 290522008-02-27 Vincent Lef��vre <vincent@vinc17.net> 29053 29054 README.dev: updated the section about new functions (added a paragraph 29055 on exception handling). 29056 290572008-02-26 Philippe Th��veny <philippe.theveny@laposte.net> 29058 29059 improve proof for euclidean distance algorithm (unfinished) 29060 290612008-02-26 Vincent Lef��vre <vincent@vinc17.net> 29062 29063 pow_z.c: rewrote an ambiguous comment. 29064 29065 pow_z.c: removed obsolete comments and updated a comment. 29066 29067 pow_z.c: the same variable was used with two different meanings. 29068 Changed the type and the name of the one inside the Ziv loop 29069 (unsigned is theoretically more correct due to the bitwise OR). 29070 290712008-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29072 29073 fixed bug reported by Carl Witty (on 32-bit computers): 29074 sage: RR(1.99999999)^RR(-(2^30)) 29075 5.11264311088393e-323228495 29076 sage: RR(1.999999999)^RR(-(2^30)) 29077 0.000000000000000 29078 sage: RR(2.0)^RR(-(2^30)) 29079 2.38256490488795e-323228497 29080 290812008-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29082 29083 added bug reported by Carl Witty 29084 290852008-02-22 Philippe Th��veny <philippe.theveny@laposte.net> 29086 29087 remove commented code 29088 29089 add worst cases for RNDZ and RNDU with inexact flag checking 29090 290912008-02-22 Vincent Lef��vre <vincent@vinc17.net> 29092 29093 hypot.c: added a FIXME comment. 29094 29095 algorithms.tex: one can have a better upper bound on \sqrt{x^2+y^2}-|x| 29096 (added as a comment in case this can be useful). 29097 29098 algorithms.tex: use hyperref. 29099 291002008-02-21 Philippe Th��veny <philippe.theveny@laposte.net> 29101 29102 add more details in mpfr_hypot description 29103 29104 cosmetic change: display "EXP" in small capitals 29105 no more use of {\rm \EXP}, use macro \Exp everywhere 29106 291072008-02-20 Philippe Th��veny <philippe.theveny@laposte.net> 29108 29109 add worst case test 29110 29111 add test with locale da_DK 29112 29113 actually trigger overflow on all architectures 29114 291152008-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29116 29117 added MPFR_SUSPICIOUS_OVERFLOW in nightly tests 29118 291192008-02-20 Vincent Lef��vre <vincent@vinc17.net> 29120 29121 hypot.c: fixed overflow flag problem in RNDD/RNDZ modes (testcase was 29122 added in r5301, and another check in r5300). 29123 29124 tests/thypot.c: added check_overflow test (currently fails in 32 bits). 29125 29126 tests/tgeneric.c: added a test that detects suspicious overflows and 29127 fails when the overflow flag is not set. This test is enabled only if 29128 the MPFR_SUSPICIOUS_OVERFLOW environment variable is set, and shows a 29129 bug in mpfr_hypot on 32-bit machines (i.e. when the current exponent 29130 range is the maximum exponent range, so that mpfr_check_range() has 29131 no effect). 29132 291332008-02-19 Philippe Th��veny <philippe.theveny@laposte.net> 29134 29135 restore flag overflow dropped by MPFR_SAVE_EXPO 29136 291372008-02-18 Philippe Th��veny <philippe.theveny@laposte.net> 29138 29139 use of (*__gmp_allocate_func)/(*__gmp_free_func) instead of 29140 mpfr_allocate_func/mpfr_free_func; 29141 the modification in r5281 doesn't work when mpfr is compiled with --gmp_build 29142 option. 29143 291442008-02-18 Vincent Lef��vre <vincent@vinc17.net> 29145 29146 hypot.c: it's better to scale by (Ex + Ey) / 2. 29147 29148 README.dev: now, the ChangeLog file should be in UTF-8, like in other 29149 software (not much difference in practice). 29150 291512008-02-18 Philippe Th��veny <philippe.theveny@laposte.net> 29152 29153 improve code coverage 29154 29155 code simplification 29156 29157 take trailing zeros into account when separating thousands 29158 291592008-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29160 29161 fixed problem when x and y are very small 29162 291632008-02-18 Philippe Th��veny <philippe.theveny@laposte.net> 29164 29165 hypot.c: set flags when returning 29166 tests/thypot.c: change custom random tests to tgeneric ones 29167 291682008-02-15 Vincent Lef��vre <vincent@vinc17.net> 29169 29170 For the terminating null pointer of the functions mpfr_inits, 29171 mpfr_inits2, mpfr_clears, always use the type mpfr_ptr (no longer 29172 void *). Updated the description of these functions in the manual 29173 (mpfr.texi). The reason is that the C standard does not guarantee 29174 that (void *) 0 has the same representation as a null pointer to 29175 a structure (and even the same size). In most C implementations, 29176 the representations are the same, but one never knows (dynamical 29177 checking is also always possible)... 29178 The change has been done with: perl -pi -e \ 29179 's/(mpfr_(clear|init)s.*)\(void *\*\) *0\)/$1(mpfr_ptr) 0)/' **/*.c 29180 under zsh. 29181 291822008-02-15 Philippe Th��veny <philippe.theveny@laposte.net> 29183 29184 fix typo 29185 29186 vasprintf.c: fix buffer_sandwich (use for thousands separator) 29187 tests/tsprintf.c: add tests with "da_DK" locale 29188 29189 add generic tests 29190 29191 cosmetic changes 29192 29193 fix incorrect function call 29194 291952008-02-14 Philippe Th��veny <philippe.theveny@laposte.net> 29196 29197 fix "%P" case, add test for it. 29198 291992008-02-13 Philippe Th��veny <philippe.theveny@laposte.net> 29200 29201 avoid style 'f' with large numbers 29202 292032008-02-13 Vincent Lef��vre <vincent@vinc17.net> 29204 29205 tests: updated svn:ignore property. 29206 292072008-02-12 Philippe Th��veny <philippe.theveny@laposte.net> 29208 29209 use of mpfr_allocate_func/mpfr_free_func instead of malloc/free 29210 29211 remove unneeded free and mpfr_clear 29212 29213 add tests for mpfr_snprintf and mpfr_vsnprintf 29214 292152008-02-12 Vincent Lef��vre <vincent@vinc17.net> 29216 29217 README.dev: added a note about freeing the memory in the tests. 29218 292192008-02-12 Philippe Th��veny <philippe.theveny@laposte.net> 29220 29221 move tests of mpfr_get_str function from tout_str.c to tget_str.c 29222 29223 initialize fmt[] size 29224 29225 tfprintf.c: fix comment. 29226 tsprintf.c: fix comment and get rid of libc rand(). 29227 29228 rename tprintf.c as tsprintf.c, because it does not deal with mpfr_printf. 29229 add tests for mpfr_fprintf functions 29230 29231 remove errno setting in snprintf, it is already done in vasprintf 29232 correct grammatical faults in comment 29233 292342008-02-08 Vincent Lef��vre <vincent@vinc17.net> 29235 29236 tests/tests.c: undo r5270. 29237 29238 tests/tests.c: fixed assertion failure introduced in r5265. 29239 292402008-02-08 Philippe Th��veny <philippe.theveny@laposte.net> 29241 29242 remove exponent checking 29243 29244 mpfr-gmp.h: Cancel r5261 changes removing the overload due to added test. 29245 set_uj.c: Don't call memset when len is zero. 29246 29247 improve assertion. 29248 29249 add support of thousands separator option (' flag, defined in Single UNIX Specification v2) 29250 29251 better string buffer management 29252 292532008-02-07 Vincent Lef��vre <vincent@vinc17.net> 29254 29255 In tests_default_random, allow emin and emax to be outside of the 29256 current exponent range, so that underflow/overflow checks can be 29257 done on 64-bit machines. If the resulting random number is outside 29258 of the current range, the exponent range is extended, and restored 29259 by the caller once the test has been done. 29260 In tests/tacosh.c, changed TEST_RANDOM_EMIN and TEST_RANDOM_EMAX 29261 to MPFR_EMAX_MAX for test_generic_huge, so that the intermediate 29262 overflow case in mpfr_acosh is tested on 64-bit machines. 29263 292642008-02-07 Philippe Th��veny <philippe.theveny@laposte.net> 29265 29266 fix comment. 29267 In fact, GNU libc4 accept '%F', libc5, glibc 2.0, and glibc 2.1 don't, and glibc 2.2 accept it with C99 semantics. 29268 292692008-02-06 Vincent Lef��vre <vincent@vinc17.net> 29270 29271 mpfr.h: added a comment about the mpfr_rnd_t enum. 29272 29273 mpfr-impl.h: removed MPFR_CHECK* macros as they are not used. 29274 292752008-02-05 Philippe Th��veny <philippe.theveny@laposte.net> 29276 29277 MPN_ZERO (dst, n) doesn't call memset when n==0, it prevents warning when compiled with gcc -D_FORTIFY_SOURCE 29278 292792008-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29280 29281 added suggestion from Keith Briggs 29282 292832008-02-04 Philippe Th��veny <philippe.theveny@laposte.net> 29284 29285 vasprintf.c: add code for %n specifier with any type 29286 tests/tprintf.c: add test for %n specifier 29287 29288 improve mention on format string restriction 29289 29290 mention restriction on type field in the format string. 29291 29292 check possible overflows in exponent part, improve comments. 29293 29294 ensure null-terminated string for (v)snprintf. 29295 292962008-02-01 Philippe Th��veny <philippe.theveny@laposte.net> 29297 29298 improve mpfr_printf documentation 29299 293002008-02-01 Vincent Lef��vre <vincent@vinc17.net> 29301 29302 tests.c: fixed perror argument in data_check. 29303 293042008-02-01 Philippe Th��veny <philippe.theveny@laposte.net> 29305 29306 improve error handling 29307 29308 check fscanf return value, manage error case 29309 293102008-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29311 29312 added parentheses to avoid ambiguity (suggested by Keith Briggs) 29313 293142008-02-01 Philippe Th��veny <philippe.theveny@laposte.net> 29315 29316 add some "%s" format string to prevent format string attack 29317 293182008-01-31 Philippe Th��veny <philippe.theveny@laposte.net> 29319 29320 fix typo 29321 293222008-01-30 Philippe Th��veny <philippe.theveny@laposte.net> 29323 29324 homogeneous use of logical variable 29325 293262008-01-30 Vincent Lef��vre <vincent@vinc17.net> 29327 29328 rec_sqrt.c: use MPFR_GET_EXP instead of MPFR_EXP, and avoid the 29329 bitwise AND on a signed integer. 29330 29331 Reformat. 29332 29333 Document how to produce PDF and HTML versions of the manual. 29334 293352008-01-30 Philippe Th��veny <philippe.theveny@laposte.net> 29336 29337 change to values acceptable by 32-bits machines 29338 29339 fix wrong statement in MPFR_ASSERTD 29340 293412008-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29342 29343 added compilation options suggested by Debian: 29344 http://alioth.debian.org/projects/hardening/ 29345 https://lists.debian.org/debian-devel/2007/12/msg00090.html 29346 (except -Wl,zrelro which does not seem to work) 29347 293482008-01-29 Philippe Th��veny <philippe.theveny@laposte.net> 29349 29350 So as to avoid conversion error, get rid of mpfr_set_d/mpf_set_d except in random_double(). 29351 Skip conversion error in random_double(). 29352 29353 fix typo in comment 29354 29355 get rid of limitation on number of character by specifier 29356 29357 vasprintf.c: fix %Rg case 29358 tests/tprintf.c: add %Re, %Rf, and %Rg tests 29359 tests/tprintf.c: add random checking against libc 29360 293612008-01-28 Philippe Th��veny <philippe.theveny@laposte.net> 29362 29363 remove (undocumented) integer conversion support for mpfr_t 29364 29365 set errno to EOVERFLOW when printf-like functions should return value exceeding INT_MAX 29366 29367 change internal name of printf-like functions under preprocessor conditionals, add explanation in comment. 29368 293692008-01-25 Vincent Lef��vre <vincent@vinc17.net> 29370 29371 TODO: added a possible class of tests. 29372 293732008-01-23 Vincent Lef��vre <vincent@vinc17.net> 29374 29375 tests.c: remove a blank line in an error message. 29376 29377 Test that the MPFR library version matches the mpfr.h version in any 29378 test file (this should avoid some bug reports that don't mention the 29379 real problem). 29380 29381 tversion.c: improved an error message. 29382 29383 acinclude.m4: fixed configure test for TLS support. 29384 29385 NEWS file update (configure test for TLS support). 29386 29387 Changes related to thread-local variables / TLS support. 29388 * Moved the MPFR_THREAD_ATTR definition from mpfr-impl.h into a new 29389 header file mpfr-thread.h, and updated Makefile.am accordingly. 29390 * Removed the compiler check __MPFR_GNUC(3,3) || __MPFR_ICC(8,1,0) 29391 as this test leaded to both false positives and false negatives 29392 concerning TLS support. Assume that __thread should be used for 29393 thread-local variables (except for the MS compiler). 29394 * Added a configure test to acinclude.m4 (in MPFR_CONFIGS). 29395 293962008-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29397 29398 added item about timings for a new release 29399 29400 mbench program written by Patrick Pelissier to measure clock cycles of MPFR 29401 (and other libraries) for small precision 29402 294032008-01-22 Vincent Lef��vre <vincent@vinc17.net> 29404 29405 NEWS: noted the changes concerning mpfr_strtofr (changesets 5146, 5147, 29406 5148, 5149, 5167, 5172, 5173). 29407 29408 mpfr-gmp.h: small fix of a macro. 29409 294102008-01-21 Vincent Lef��vre <vincent@vinc17.net> 29411 29412 mpfr-gmp.h: for temporary allocations, use alloca() if size < 16384. 29413 294142008-01-19 Vincent Lef��vre <vincent@vinc17.net> 29415 29416 mpfr.texi: inverse square root -> reciprocal square root. 29417 294182008-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29419 29420 added mpfr_rec_sqrt in mpfr.texi (forgot in last commit) 29421 294222008-01-18 Vincent Lef��vre <vincent@vinc17.net> 29423 29424 NEWS: added mpfr_rec_sqrt for MPFR 2.4.*. 29425 294262008-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29427 29428 removed rec_sqrt (done) 29429 294302008-01-17 Philippe Th��veny <philippe.theveny@laposte.net> 29431 29432 vasprintf.c: merge code for "%Ra" and "%Rb" 29433 294342008-01-16 Philippe Th��veny <philippe.theveny@laposte.net> 29435 29436 cosmetic change: replace "enum _arg_type" by "enum arg_t" 29437 29438 vasprintf.c: fix %g case; merge %e, %f, %g code 29439 tests/tprintf.c: add tests for %Rg 29440 29441 add MPFR_SAVE_EXPO macros 29442 29443 cosmetic changes: only one leading underscore for an identifier with file scope 29444 29445 add needed va_list argument in READ_INT macro 29446 294472008-01-16 Vincent Lef��vre <vincent@vinc17.net> 29448 29449 tests: added trec_sqrt to svn:ignore property. 29450 29451 mpfr-impl.h: when building MPFR with the GMP build directory, 29452 use TMP_ALLOC(s) instead of TMP_SALLOC(s), as we don't know 29453 whether allocations are small or big (see gmp-impl.h). 29454 294552008-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29456 29457 moved from ASSERTD to ASSERTN an assertion which does not depend on MPFR 29458 294592008-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29460 29461 this file might be useful to test mpfr_rec_sqrt... 29462 29463 rec_sqrt.c: complete rewrite, to allow to use directly the MPFR internal 29464 representation as input (without shift), and to allow different 29465 input and output precisions, without loss of efficiency 29466 other files: added new function mpfr_rec_sqrt 29467 294682008-01-14 Vincent Lef��vre <vincent@vinc17.net> 29469 29470 rec_sqrt.c: deleted trailing whitespace. 29471 29472 mpfr-gmp.{c,h}: no longer use alloca() for the temporary allocations as 29473 this can make MPFR crash in some high precisions, due to limited stack. 29474 294752008-01-14 Philippe Th��veny <philippe.theveny@laposte.net> 29476 29477 add bug found by Paul Zimmermann 29478 29479 vasprintf.c: fix wrong computation of digit number with %Rf when 0 < op < 1 29480 tests/tprintf.c: simpler 10^-n case 29481 294822008-01-14 Vincent Lef��vre <vincent@vinc17.net> 29483 29484 mpfr.texi: typo. 29485 294862008-01-11 Vincent Lef��vre <vincent@vinc17.net> 29487 29488 mpfr.texi: updated month. 29489 29490 mpfr.texi: added a warning concerning huge precisions. 29491 294922008-01-10 Philippe Th��veny <philippe.theveny@laposte.net> 29493 29494 fix %f case 29495 29496 cosmetic changes 29497 294982008-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29499 29500 small changes for acos/asin/atan/atan2 rounded outside their output range 29501 295022008-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29503 29504 added note about output of acos/asin/atan/atan2 which might be outside the 29505 function domain 29506 295072008-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29508 29509 new version with improved tables, use macros from mpfr-impl.h, removed tabs 29510 295112008-01-04 Vincent Lef��vre <vincent@vinc17.net> 29512 29513 Fixed return value of mpfr_strtofr in case of invalid data (it was -1, 29514 but it should be 0 since it is a ternary value and the result is 0, 29515 which is exact). Added test of the ternary value in this case. 29516 29517 mpfr.texi: better description of mpfr_strtofr. 29518 29519 NEWS update (new functions in the trunk). 29520 29521 Changes related to mpfr_strtofr. 29522 * strtofr.c: for mpfr_strtofr, data corresponding to NaN can now have 29523 an optional sign (since the documentation said that parsing followed 29524 the standard C strtod function and this change makes invalid data 29525 now valid, so that there should be no compatibility problems). 29526 * tests/tstrtofr.c: changed the test for -42P17 in base 16 (this was 29527 eventually regarded as a documentation bug); added tests. 29528 * mpfr.texi: almost completely rewrote the specification of the 29529 mpfr_strtofr function. Changes: 29530 - the binary exponent is now accepted even without the 0b or 0x 29531 prefix; 29532 - data corresponding to NaN can now have an optional sign (this was 29533 a bit ambiguous); 29534 - many other ambiguities avoided. 29535 295362008-01-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29537 29538 the function mpfr_mpn_rec_sqrt() provides a faithful approximation of the 29539 inverse square root. Some improvements can still be made, but the interface 29540 should not change, thus we can start writing the mpfr_rec_sqrt function that 29541 calls it. 29542 295432008-01-02 Vincent Lef��vre <vincent@vinc17.net> 29544 29545 FAQ update. 29546 295472008-01-01 Vincent Lef��vre <vincent@vinc17.net> 29548 29549 tgamma.c: completed test in r5159 with another one that was failing 29550 in the default exponent range. 29551 29552 delete trailing spaces. 29553 295542008-01-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29555 29556 fixed bug in case of underflow (wrong sign) 29557 295582008-01-01 Vincent Lef��vre <vincent@vinc17.net> 29559 29560 gen_inverse.h: fixed the bug reported by Kevin Rauch a few hours ago 29561 (and that was detected by the generic tests and by mpfrlint after the 29562 latest changes). 29563 29564 mpfrlint: incorrect use of mpfr_<flag>_p is also checked in .h files. 29565 29566 Copyright notice update: added 2008 with 29567 perl -pi -e 's/2007 Free Software/2007, 2008 Free Software/' **/*(^/) 29568 under zsh. 29569 29570 tgeneric.c: in the bug detection with flags set before the function 29571 call, the erange flag was set, so that no checks were performed on 29572 the return value. Fixed that by not setting the erange flag. 29573 -> Now, 7 tests fail! 29574 295752007-12-31 Vincent Lef��vre <vincent@vinc17.net> 29576 29577 tstrtofr.c: added test of -42P17 with base = 0 and 16. This currently 29578 fails with base = 16 (-42P17 is parsed as -0x42P17 instead of -42 with 29579 the remaining characters "P17"), but we could alternatively regard the 29580 mpfr_strtofr specification (in mpfr.texi) as incorrect. 29581 295822007-12-30 Vincent Lef��vre <vincent@vinc17.net> 29583 29584 mpfr.texi: corrections in the specification of mpfr_strtofr (see FIXME). 29585 29586 strtofr.c: base arguments different from 0 and 2..36 have never been 29587 accepted. So, instead of returning the confusing -1 (it's a ternary 29588 value), let's add an assert for the moment. An alternative solution 29589 is to return 0 and set the erange flag. 29590 29591 strtofr.c: minor change (in the style); a comment was ambiguous. 29592 295932007-12-29 Vincent Lef��vre <vincent@vinc17.net> 29594 29595 TODO update (tests: generic bad cases). 29596 29597 Added #if MPFR_VERSION >= MPFR_VERSION_NUM(2,4,0) conditionals to be 29598 able to test MPFR 2.3.* with the (more complete) tests from the trunk. 29599 29600 README.dev: updated item 6 of "To make a release". 29601 296022007-12-28 Vincent Lef��vre <vincent@vinc17.net> 29603 29604 mpfr.texi: updated month. 29605 296062007-12-27 Vincent Lef��vre <vincent@vinc17.net> 29607 29608 tests: check the exponent range, in particular at the end of each test. 29609 29610 texceptions.c: GNU coding style. 29611 29612 texceptions.c: restore the exponent range. 29613 29614 exp2.c: removed incorrect comment (the overflow test was OK due to the 29615 mpfr_clear_flags above, but the new test is slightly better anyway). 29616 296172007-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29618 29619 added tuning parameters for 32-bit Core 2 29620 (thanks to Patrick Pelissier and Emmanuel Thome) 29621 296222007-12-20 Vincent Lef��vre <vincent@vinc17.net> 29623 29624 tpow.c: enable testcase bug20071218. 29625 296262007-12-19 Vincent Lef��vre <vincent@vinc17.net> 29627 29628 BUGS: possible incorrect results due to internal underflow. 29629 29630 pow.c: detect all underflow cases (some of them were leading to 29631 an infinite loop, see bug20071218 in tpow.c). 29632 29633 mpfr-impl.h: updated description of MPFR_CAN_ROUND. 29634 29635 round_p.c: in comment, "round to zero" -> "round toward zero". 29636 29637 tpow.c: formatting. 29638 29639 tpow.c: added testcase for another bug found by Kevin P. Rauch. 29640 Execute tpow with an argument to enable it. 29641 296422007-12-19 Philippe Th��veny <philippe.theveny@laposte.net> 29643 29644 vasprintf.c: add sprnt_fp_e for "%e" processing 29645 tests/tprintf.c: change tests for decimal output (but need further tests) 29646 29647 add checks for zero 29648 296492007-12-18 Vincent Lef��vre <vincent@vinc17.net> 29650 29651 Merged the feature-block branch to the trunk: 29652 * New MPFR_BLOCK* macros (see mpfr-impl.h) and mpfrlint check to test 29653 exception flags in a more reliable way and detect possible problems 29654 with mpfrlint. 29655 * Improved the generic tests (tests/tgeneric.c): for the second 29656 function call, sometimes set all the flags since risk of failures 29657 are known when some flags are already set. 29658 * Modified code to use these new MPFR_BLOCK* macros. This fixed bugs 29659 related to exceptions (where flags are set before the call); in 29660 particular, tcot and ty1 failed with the improved generic tests. 29661 29662 [Added during the Subversion to Git conversion] 29663 A merge commit could not be generated for Git. 29664 Branch in Git: refs/deleted/r5131/heads/feature-block 29665 296662007-12-18 Philippe Th��veny <philippe.theveny@laposte.net> 29667 29668 printf.c: each mpfr_printf-like function return -1 and set erange flag in error case 29669 vasprintf.c: change types in struct char_fp 29670 vasprintf.c: add many size checking 29671 29672 simplify code, improve comments 29673 296742007-12-18 Vincent Lef��vre <vincent@vinc17.net> 29675 29676 Fixed bug in mpfr_pow_z: if x = y (same mpfr_t argument), the input 29677 argument is negative and not a power of two, z is positive and odd, 29678 an overflow or underflow occurs, and the temporary result res is 29679 positive, then the result gets a wrong sign (positive instead of 29680 negative). Testcase. 29681 29682 Fixed bug in mpfr_pow_ui (introduced in r3214): if x = y (same mpfr_t 29683 argument), the input argument is negative, n is odd, an overflow or 29684 underflow occurs, and the temporary result res is positive, then the 29685 result gets a wrong sign (positive instead of negative). Testcase. 29686 29687 pow_ui.c: fixed an assertion. 29688 29689 BUGS: update concerning overflow/underflow exceptions. 29690 296912007-12-18 Philippe Th��veny <philippe.theveny@laposte.net> 29692 29693 exponent continuity with one hexadecimal digit output 29694 296952007-12-17 Philippe Th��veny <philippe.theveny@laposte.net> 29696 29697 #define CASE_INT_MAX_ARG to nil when HAVE_STDINT_H is not defined 29698 29699 vasprintf.c: add sprnt_fp_b for "%b" processing 29700 tests/tprintf.c: add tests for binary output 29701 29702 fix count of characters in exponent part 29703 29704 simplify code, remove trailing spaces and improve comment 29705 297062007-12-17 Vincent Lef��vre <vincent@vinc17.net> 29707 29708 TODO: added note about the successive calls to strcat in vasprintf.c. 29709 297102007-12-17 Philippe Th��veny <philippe.theveny@laposte.net> 29711 29712 add tests for 1 hexa digit output 29713 297142007-12-16 Vincent Lef��vre <vincent@vinc17.net> 29715 29716 tests/tpow.c: fixed indentation. 29717 297182007-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29719 29720 fixed typo 29721 29722 fixed bug reported by Kevin Rauch 29723 297242007-12-14 Philippe Th��veny <philippe.theveny@laposte.net> 29725 29726 change display with just one hexadecimal digit 29727 297282007-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29729 29730 simplified MPFR_FAST_COMPUTE_IF_SMALL_INPUT part (in case of overlap) 29731 297322007-12-14 Philippe Th��veny <philippe.theveny@laposte.net> 29733 29734 fix wrong call 29735 297362007-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29737 29738 added comments, got rid of compiler warnings 29739 29740 added warning 29741 297422007-12-14 Vincent Lef��vre <vincent@vinc17.net> 29743 29744 sin_cos.c: improved changeset 5084; in particular, added a missing cast. 29745 297462007-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29747 29748 sin_cos.c, tsin_cos.c: fixed bug occurring when arguments overlap and 29749 MPFR_FAST_COMPUTE_IF_SMALL_INPUT fails 29750 reuse.c: improved output in case of error 29751 297522007-12-14 Philippe Th��veny <philippe.theveny@laposte.net> 29753 29754 improve one digit case, add comment 29755 297562007-12-14 Vincent Lef��vre <vincent@vinc17.net> 29757 29758 vasprintf.c: added a FIXME comment. Bug? 29759 29760 Minor changes concerning num_to_text. The ending \0 isn't needed. 29761 297622007-12-14 Philippe Th��veny <philippe.theveny@laposte.net> 29763 29764 simplify error output code 29765 29766 add num_to_text array for hexadecimal digits 29767 29768 output errors to stdout 29769 297702007-12-13 Philippe Th��veny <philippe.theveny@laposte.net> 29771 29772 vasprintf.c: group hexadecimal output processing in a new sprnt_fp_a function. 29773 tests/tprintf.c: add tests for %a case 29774 tests/tprintf.c: factorize error message output 29775 297762007-12-13 Vincent Lef��vre <vincent@vinc17.net> 29777 29778 get_d64.c: fixed comment. 29779 29780 vasprintf.c: added missing #include <string.h> (useful if MPFR is built 29781 with the GMP build directory, as mpfr-gmp.h isn't used in this case). 29782 297832007-12-13 Philippe Th��veny <philippe.theveny@laposte.net> 29784 29785 Fix typos. 29786 29787 Add handle for null size case in mpfr_snprintf 29788 29789 Add some comments and assertions. 29790 29791 #define's for nan and inf strings 29792 29793 short documentation of printf-like functions. 29794 297952007-12-12 Vincent Lef��vre <vincent@vinc17.net> 29796 29797 README.dev: added information about my tool "eet" to be able to see the 29798 warnings more easily. 29799 29800 vasprintf.c: updated comment concerning the case nbchar > INT_MAX. 29801 298022007-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29803 29804 changed default return value in mpfr_jn_k0 29805 29806 fixed underflow problem in mpfr_exp_3 29807 29808 tests/tset_str.c: added command-line argument for output base 29809 jn.c: replaced double-precision LOG2 constant by binary string (more portable) 29810 29811 fixed underflow problem 29812 29813 experimental code to distinguish Core2 from AMD64 29814 29815 removed manual change to __gmpfr_emin outside the allowed range 29816 29817 added suggestion from Patrick Pelissier 29818 298192007-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29820 29821 Fixed another bug reported by Kevin Rauch (__gmpfr_emin was set smaller 29822 than the minimum allowed value, which produced an exponent wrap-around 29823 and a wrong result in mpfr_mul). Not sure if all problems are solved, 29824 nevertheless __gmpfr_emin is now in the allowed range. 29825 298262007-11-29 Vincent Lef��vre <vincent@vinc17.net> 29827 29828 Fixed indentation. 29829 29830 tests.c: in test4rm, initialize rndnext with an invalid value (meaning 29831 that rndnext will really be initialized later), and added an assert to 29832 check that this value isn't propagated to rnd. 29833 29834 tests.c: added a comment about rndnext in test4rm. 29835 29836 tests.c: added an assertion. 29837 298382007-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29839 29840 fixed bug reported by Kevin Rauch (wrong sign in case of underflow for 29841 large negative x and large odd negative y) 29842 298432007-11-29 Philippe Th��veny <philippe.theveny@laposte.net> 29844 29845 untabify and remove trailing spaces 29846 29847 fix padding error in sprnt_inf 29848 29849 factorization of special numbers output in sprnt_nan and sprnt_inf functions 29850 29851 fix comment about the size of format string buffer 29852 29853 replace memory management functions mpfr_default_* by __gmp_*_func 29854 298552007-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29856 29857 updated Core 2 thresholds (obtained with gmp-4.2.2 and Gaudry's patch) 29858 298592007-11-29 Vincent Lef��vre <vincent@vinc17.net> 29860 29861 Typo in comment. 29862 298632007-11-29 Philippe Th��veny <philippe.theveny@laposte.net> 29864 29865 fix typo pointed out in revision 5044 29866 298672007-11-28 Vincent Lef��vre <vincent@vinc17.net> 29868 29869 printf.c: more comments about snprintf. 29870 29871 printf.c: added a comment concerning a warning (a bug, IMHO). 29872 29873 vasprintf.c: added FIXME comment concerning the case nbchar > INT_MAX, 29874 with a reference to POSIX. 29875 298762007-11-28 Philippe Th��veny <philippe.theveny@laposte.net> 29877 29878 add explanations about buffer size 29879 29880 change __gmp_const into const 29881 298822007-11-28 Vincent Lef��vre <vincent@vinc17.net> 29883 29884 vasprintf.c: added an assert. 29885 298862007-11-28 Philippe Th��veny <philippe.theveny@laposte.net> 29887 29888 fix output with space flag 29889 29890 add MPFR_ASSERTD to prevent buffer overflow 29891 29892 replace use of ptrdiff_t by size_t where possible 29893 298942007-11-27 Philippe Th��veny <philippe.theveny@laposte.net> 29895 29896 factorisation of temp string alloc in buffer_pad function 29897 29898 cosmetic changes 29899 29900 compatibility of types between nbc fields and mp_exp_t 29901 fix wrong size of buffer string exp_fmt 29902 299032007-11-27 Vincent Lef��vre <vincent@vinc17.net> 29904 29905 Added initial mpfrlint sh script to check possible problems in 29906 the MPFR source. 29907 299082007-11-27 Philippe Th��veny <philippe.theveny@laposte.net> 29909 29910 change 'g'/'G' to 'e'/'E' or 'f'/'F' according to C99 rules 29911 299122007-11-26 Philippe Th��veny <philippe.theveny@laposte.net> 29913 29914 replace mpfr_default_(re)allocate by __gmp_(re)allocate for the returned string (freed by mpfr_free_str) 29915 29916 tprintf.c: replace __gmp_const by const 29917 299182007-11-26 Vincent Lef��vre <vincent@vinc17.net> 29919 29920 printf.c: added FIXME comment: snprintf is new in C99. It must be 29921 checked with a configure test. 29922 29923 tests: updated svn:ignore property. 29924 29925 vasprintf.c: reformat. 29926 29927 MPFR_DECIMAL_POINT now needs to have type char (because of vasprintf.c). 29928 29929 tests/tprintf.c: changeset 4996 was incorrect. Fixed. 29930 29931 README.dev: Avoid variable names "l", "I" and "O". 29932 29933 README.dev: added a note about the locales. 29934 299352007-11-26 Philippe Th��veny <philippe.theveny@laposte.net> 29936 29937 printf.c: fix use of pointer of string 29938 vasprintf.c: add conditional compilation directives for wchar and wint_t 29939 vasprintf.c: add padding for special values 29940 vasprintf.c: fix output for value 1.0 and format "%Rf" 29941 vasprintf.c: replace __gmp_const by const 29942 299432007-11-26 Vincent Lef��vre <vincent@vinc17.net> 29944 29945 acinclude.m4: check wchar.h header (see below). 29946 vasprintf.c: 29947 * No longer depend on toupper (which returns locale-dependent results) 29948 to generate 'A'..'F' (see C standard). 29949 * Removed #include <ctype.h> which was hiding a bug (see below). 29950 * Added missing #include <wchar.h> if HAVE_WCHAR_H is defined. But 29951 the compilation fails if <wchar.h> doesn't exist due to the use of 29952 wchar_t and wint_t. 29953 29954 vasprintf.c: updated comments. 29955 29956 vasprintf.c: 29957 * Removed #include <stdlib.h> now useless. 29958 * Added FIXME comment. 29959 * Replaced _MP_EXP_FORMAT_SPEC (reserved) by MPFR_EXP_FORMAT_SPEC. 29960 29961 vasprintf.c: added FIXME comments. 29962 29963 vasprintf.c: fixed a typo in a comment and improved another comment. 29964 299652007-11-24 Vincent Lef��vre <vincent@vinc17.net> 29966 29967 mpfr.h: moved function declarations out of "#ifdef _MPFR_H_HAVE_VA_LIST" 29968 and/or "#ifdef _MPFR_H_HAVE_FILE" when this makes sense. 29969 29970 tests/tprintf.c: added missing "void" in function declarations. 29971 29972 Untabified and removed trailing spaces. 29973 29974 mpfr.texi: corrections (English usage and texinfo). Added corresponding 29975 notes at the end of the README.dev file. 29976 29977 mpfr.texi: s/rounding to the nearest mode/rounding to nearest mode/ 29978 29979 mpfr.texi consistency changes: "towards" -> "toward" (because this 29980 is what the IEEE-754 standard uses, and we have mpfr_nexttoward). 29981 29982 mpfr.texi: English typography corrections (no space before ":"). 29983 29984 vasprintf.c: the use of the abs function was incorrect as its argument 29985 has type int, which may be smaller than an mp_exp_t. Fixed that and 29986 replaced uceil_log10 by uceil_log10_exp_p2. 29987 29988 vasprintf.c: fixed uceil_log10 for x close to ULONG_MAX. 29989 299902007-11-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29991 29992 got rid of math.h 29993 299942007-11-23 Vincent Lef��vre <vincent@vinc17.net> 29995 29996 tests/tprintf.c: include <stdarg.h>. 29997 29998 stdarg-related corrections, as HAVE_STDARG is not standard thus must not 29999 be tested in mpfr.h! 30000 30001 tests/tprintf.c: enable the tests only if HAVE_STDARG is defined, 30002 i.e. if the printf-like functions are defined. 30003 30004 tests/tprintf.c: 30005 * Non-standard headers should be included after the standard headers 30006 (when possible). 30007 * The setlocale function is used only if <locale.h> has been included. 30008 * Use tests_start_mpfr / tests_end_mpfr; this shows a bug: 30009 tests_free(): attempt to free bad pointer 0x1801200 30010 30011 tests/tests.c: setlocale is used only if <locale.h> has been included. 30012 30013 out_str.c: remove other occurrence of <locale.h>. 30014 300152007-11-23 Philippe Th��veny <philippe.theveny@laposte.net> 30016 30017 Makefile.am: add mpfr_printf-like functions 30018 mpfr.h: add mpfr_printf-like functions 30019 printf.c: printf, sprintf, snprintf, asprintf and 'v' variants 30020 vasprintf.c: vasprintf functions used by its likes 30021 mpfr.texi: add description for printf family functions 30022 tests/Makefile.am: add test for printf 30023 tests/tprintf.c: tests for printf-like functions 30024 acinclude.m4: define HAVE_LOCALE_H 30025 mpfr-impl.h: define MPFR_DECIMAL_POINT even if no locale.h 30026 strtofr.c: remove locale.h inclusion (done by mpfr-impl.h ) 30027 tests/tests.c: use HAVE_LOCALE_H 30028 300292007-11-23 Vincent Lef��vre <vincent@vinc17.net> 30030 30031 tests/tisqrt.c: test the 32-bit __gmpfr_cuberoot bound cases (9 per 30032 value) exhaustively (running tisqrt is still immediate on a recent 30033 machine). 30034 30035 tests/tisqrt.c: test the 32-bit __gmpfr_isqrt bound cases exhaustively. 30036 30037 acinclude.m4: test the availability of <string.h>. 30038 30039 acinclude.m4: test the availability of <locale.h>. 30040 30041 acinclude.m4: updated comment concerning the checked functions. 30042 30043 acinclude.m4: added memmove to the checked functions (though this test 30044 is currently useless, except for the corresponding information). 30045 30046 acinclude.m4: updated a comment concerning the function checking. 30047 30048 gmp_op.c: removed old "#include <stddef.h>" line (seems to be useless 30049 now, and note that <stdio.h> is included by default in mpfr-impl.h). 30050 30051 tests/tj0.c: fixed test. 30052 30053 jn.c: added integer overflow checking. 30054 30055 tests/memory.c: fixed copyright notice. 30056 300572007-11-21 Vincent Lef��vre <vincent@vinc17.net> 30058 30059 tests/tzeta.c: completed test of mpfr_zeta bug fixed in r4920 (the value 30060 of zeta(large negative) was also wrong in GMP_RNDU: -Inf instead of the 30061 largest negative MPFR number). 30062 300632007-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30064 30065 reverted back to rev. 4951 (otherwise we would have to free memory for all 30066 exit calls) 30067 300682007-11-20 Philippe Th��veny <philippe.theveny@laposte.net> 30069 30070 use of RANDS instead of __gmp_rands 30071 tset_f.c add checking with random values 30072 300732007-11-19 Philippe Th��veny <philippe.theveny@laposte.net> 30074 30075 tli2.c: fix wrong assertion in copyright motice 30076 test.c: fixed seed for reproducible errors 30077 trandom.c tpow_z.c tset_f.c: integration with GMP_CHECK_RANDOMIZE process 30078 300792007-11-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30080 30081 added missing call to tests_end_mpfr 30082 30083 got rid of mpfr_init_gmp_rand/MPFR_TEST_USE_RANDS and not-reentrant gmp 30084 random functions (mpn_random*, mpz_random*, mpf_random*). Now all tests use 30085 either RANDS (which is cleared by tests_rand_end called by tests_end_mpfr), 30086 or the gmp_randstate_t mechanism. 30087 300882007-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30089 30090 added missing mpfr_clear and tests_end_mpfr (thanks Michael Abshoff) 30091 30092 fixed problem reported by valgrind (thanks to Michael Abshoff) 30093 300942007-11-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30095 30096 fixed bug in div_ui for x=0 and u<>0 (sign of result was not set) 30097 300982007-11-06 Philippe Th��veny <philippe.theveny@laposte.net> 30099 30100 algorithms.tex: fix bibtex references for dilogarithm function 30101 algorithms.bib: add references for dilogarithm function 30102 301032007-11-05 Vincent Lef��vre <vincent@vinc17.net> 30104 30105 mpfr-impl.h: removed trailing spaces. 30106 301072007-11-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30108 30109 added new macro MPFR_ALIAS 30110 301112007-11-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30112 30113 removed unused label 30114 301152007-11-04 Vincent Lef��vre <vincent@vinc17.net> 30116 30117 pow_z.c: fixed bug that occurs when x is a power of 2 and the result 30118 overflows (wrong sign); this bug has always been present (from r3215). 30119 30120 tpow.c, tpow_z.c: removed a printf that was left by mistake. 30121 30122 tpow_z.c: added testcase for the latest mpfr_pow bug (rev 4942), 30123 which is in fact a bug in mpfr_pow_z. 30124 30125 tpow.c: added testcase for new bug found by Kevin P. Rauch; removed a 30126 mpfr_dump that was left by mistake. 30127 301282007-11-03 Vincent Lef��vre <vincent@vinc17.net> 30129 30130 pow.c: removed FIXME comment. 30131 301322007-11-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30133 30134 fixed case x < 0, y large integer 30135 301362007-11-03 Vincent Lef��vre <vincent@vinc17.net> 30137 30138 pow.c: added FIXME comment. 30139 30140 tpow.c: added testcase for new bug found by Kevin P. Rauch. The problem 30141 occurs on x^y with x negative and y an integer whose exponent is > 256 30142 (so that mpfr_pow_z isn't used, and the generic code is used instead and 30143 fails because x is negative). 30144 301452007-11-02 Vincent Lef��vre <vincent@vinc17.net> 30146 30147 Fixed several bugs in mpfr_pow (from rev 3592 and 4932); added testcase. 30148 30149 tpow.c: added an overflow test in reduced exponent range 30150 (-> assertion failure in the current pow.c code). 30151 30152 mpfr-impl.h: added a comment concerning __gmpfr_one, __gmpfr_two and 30153 __gmpfr_four. 30154 30155 Bug fix: in cmp_abs.c, changed MPFR_GET_EXP into MPFR_EXP to allow 30156 exponents outside the current exponent range (needed for mpfr_pow). 30157 301582007-10-31 Vincent Lef��vre <vincent@vinc17.net> 30159 30160 Untabified and removed trailing spaces. 30161 301622007-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30163 30164 pow.c, tpow.c: fixed bugs reported by Kevin Rauch 30165 mpfr-impl.h: fixed typo 30166 30167 cosmetic changes 30168 30169 added missing \Li2 30170 301712007-10-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30172 30173 added more test cases for mpfr_li2 30174 improved MPFR_FAST_COMPUTE_IF_SMALL_INPUT case for x > 0 30175 30176 fixed bug mentioned by Kevin Rauch: mpfr_lgamma was hanging for tiny input 30177 (had to implement a complete loop in that case) 30178 30179 fixed bug reported by Kevin Rauch: wrong sign for jn(n even, large negative x) 30180 30181 removed item on mpfr_sinh_cosh (done) 30182 added more info on item on efficiency of mpfr_sin 30183 30184 added comment about function/macro in custom interface 30185 30186 jn.c: improved choice of initial precision in Taylor series (takes into 30187 account cancellation) 30188 tests/tjn.c: now "tjn p n z" evaluates j(n,z) to precision p 30189 301902007-10-27 Vincent Lef��vre <vincent@vinc17.net> 30191 30192 factorial.c: added FIXME comment. 30193 30194 gamma.c: attempt to fix wrong fix in 4918 (the maximum exponent can 30195 be > 2^30 on 64-bit machines). There may still be problems in huge 30196 precisions. 30197 301982007-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30199 30200 added note about efficiency of special functions 30201 corrected typo 30202 30203 fixed bug in zeta(large negative) reported by Kevin Rauch [wrong inexact flag] 30204 30205 fixed inefficiency reported by Kevin Rauch when x large negative (erfc -> 2) 30206 302072007-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30208 30209 fixed another bug found by Kevin Rauch: gamma(huge integer) failed on 64-bit 30210 30211 fixed bug found by Kevin Rauch (emin/emax not restored for x=1,2) 30212 30213 added test for reference values 30214 30215 reference values for li2 30216 302172007-10-26 Philippe Th��veny <philippe.theveny@laposte.net> 30218 30219 algorithms.tex: description of dilogarithm algorithm 30220 li2.c: conformity with description in algorithm.tex 30221 302222007-10-23 Vincent Lef��vre <vincent@vinc17.net> 30223 30224 mpfr.texi: small change in the description of mpfr_subnormalize. 30225 302262007-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30227 30228 added more details in the description of subnormalize 30229 302302007-10-23 Vincent Lef��vre <vincent@vinc17.net> 30231 30232 subnormal.c: fixed the bugs when old_inex is INT_MIN or INT_MAX. 30233 30234 tsubnormal.c: added some tests showing bugs when old_inex is INT_MIN 30235 or INT_MAX. 30236 30237 subnormal.c: corrected comment. 30238 30239 Changeset r4904 introduced an assertion failure, but the assertion 30240 emax - emin >= PREC(x) wasn't necessary: the value of emax doesn't 30241 matter, except when the exponent is increased due to the rounding. 30242 So, we just document that if the result cannot be represented in the 30243 current exponent range, the behavior is undefined (updated mpfr.texi 30244 accordingly). Removed the assertion from subnormal.c and added a new 30245 one to have an abort if such an undefined behavior occurs. 30246 302472007-10-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30248 30249 fixed 2 bugs reported by Kevin Rauch 30250 302512007-10-22 Vincent Lef��vre <vincent@vinc17.net> 30252 30253 subnormal.c: replaced incorrect comment. 30254 30255 tests: updated svn:ignore property. 30256 302572007-10-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30258 30259 added new references 30260 302612007-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30262 30263 added asymptotic expansions 30264 302652007-10-19 Philippe Th��veny <philippe.theveny@laposte.net> 30266 30267 li2.c: add Ziv's loop in li2_series 30268 tli2.c: add a function for fixed value checking 30269 302702007-10-17 Philippe Th��veny <philippe.theveny@laposte.net> 30271 30272 li2.c: fix a typo and fix use of taylor series 30273 tests/tli2.c: use default random function 30274 302752007-10-16 Philippe Th��veny <philippe.theveny@laposte.net> 30276 30277 add dilogarithm function 30278 302792007-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30280 30281 added item in Efficiency section 30282 30283 added table of contents 30284 removed last section (mpf/mpfr integration) 30285 302862007-10-15 Vincent Lef��vre <vincent@vinc17.net> 30287 30288 Fixed acosh(x) with x slightly larger than 1, using sqrt(2(x-1)) and 30289 a complete error analysis. 30290 30291 tests/tacosh.c: added another test with x a bit larger than 1 and 30292 prec(y) << prec(x). 30293 302942007-10-12 Vincent Lef��vre <vincent@vinc17.net> 30295 30296 acosh.c: added a comment about the fix I did in r4814. 30297 302982007-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30299 30300 added extra reference for slowness of mpfr_root 30301 303022007-10-09 Vincent Lef��vre <vincent@vinc17.net> 30303 30304 FAQ update (added Question 8). 30305 30306 mpfr.texi: another small change in Contributors section. 30307 30308 mpfr.texi: small change in Contributors section. 30309 30310 mpfr.texi: mention Fiable and AOC actions in the Contributors section. 30311 303122007-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30313 30314 added reference to ACM TOMS paper 30315 updated other references, and Contributors section 30316 30317 fixed typo in sectioning 30318 303192007-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30320 30321 removed mpfr_get_d1 from documented functions 30322 removed old commented functions 30323 30324 renamed "Rounding Mode Related Functions" to "Rounding Related Functions" 30325 put mpfr_can_round in "Rounding Related Functions" (now exported) 30326 exchanged order of sections "Miscellaneous Functions" and "Rounding Related Functions" 30327 30328 added hint for mpfr_can_round to get ternary value 30329 30330 changed mpfr_can_round() call into MPFR_CAN_ROUND() call 30331 303322007-10-05 Vincent Lef��vre <vincent@vinc17.net> 30333 30334 Updated update-version to make patches easier to produce. 30335 303362007-10-04 Vincent Lef��vre <vincent@vinc17.net> 30337 30338 Fixed a bug (found by Robert Bajema) in mpfr_atan2, which can occur if 30339 the underflow flag is set before the call and x > 0; added testcase. 30340 303412007-10-03 Vincent Lef��vre <vincent@vinc17.net> 30342 30343 mpfr.texi: improved mpfr_set_exp description too. 30344 30345 mpfr.texi: improved mpfr_get_exp documentation. 30346 30347 mpfr.texi: mantissa -> significand (to use the terminology from IEEE 754 30348 and ISO C99). 30349 30350 configure.in: better error message if libgmp is not found. 30351 303522007-10-02 Philippe Th��veny <philippe.theveny@laposte.net> 30353 30354 fix some typos 30355 303562007-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30357 30358 added references 30359 303602007-09-28 Philippe Th��veny <philippe.theveny@laposte.net> 30361 30362 merge fmod, remaider and remquo into a single file rem1.c. 30363 merge code into a single internal function mpfr_rem1. 30364 fix false statement in mpfr.texi: rop and op1 have the same sign for mpfr_fmod 30365 but not for mpfr_remainder and mpfr_remquo. 30366 303672007-09-26 Vincent Lef��vre <vincent@vinc17.net> 30368 30369 tests/tfmod.c: added static. 30370 303712007-09-26 Philippe Th��veny <philippe.theveny@laposte.net> 30372 30373 new fmod function 30374 303752007-09-22 Vincent Lef��vre <vincent@vinc17.net> 30376 30377 tests: updated svn:ignore property. 30378 30379 GNU coding style, reformatting, exit (-1) -> exit (1). 30380 303812007-09-21 Philippe Th��veny <philippe.theveny@laposte.net> 30382 30383 new mpfr_sinh_cosh function 30384 303852007-09-19 Vincent Lef��vre <vincent@vinc17.net> 30386 30387 BUGS: removed __gmpfr_isqrt bug. 30388 30389 isqrt.c: quick fix of __gmpfr_cuberoot (a full proof is needed). 30390 tests/tisqrt.c: added much more tests for __gmpfr_cuberoot. 30391 30392 tisqrt.c: improved tests. When doing 30393 touch tests.c tisqrt.c 30394 make tisqrt CFLAGS="-g -O2 -ffloat-store -DMPFR_FPU_PREC=_FPU_SINGLE" 30395 ./tisqrt 30396 with gcc 4.2.1 on a Linux/x86 machine, on gets: 30397 Error in __gmpfr_cuberoot (4251527999): got 1620 instead of 1619 30398 30399 tisqrt.c: added __gmpfr_cuberoot() tests. 30400 30401 isqrt.c: corrected the explanation. 30402 30403 isqrt.c: fixed __gmpfr_isqrt. 30404 304052007-09-18 Vincent Lef��vre <vincent@vinc17.net> 30406 30407 tests: updated svn:ignore property. 30408 30409 tests: added tisqrt.c (test file for __gmpfr_isqrt internal function). 30410 30411 BUGS: added __gmpfr_isqrt bug. 30412 30413 isqrt.c: fixed a cast and added a FIXME comment. 30414 30415 isqrt.c: GNU coding style. 30416 30417 sin.c: extend the exponent range. 30418 30419 sqr.c: set the global inexact flag. 30420 30421 sqrt.c: avoid the exponent range extension. 30422 30423 tsqr.c: added generic tests (shows that the inexact flag isn't set). 30424 30425 sqrt.c: extend exponent range (this also fixes the fact that the global 30426 inexact flag wasn't set). 30427 30428 tsqrt.c: added generic tests (shows that the inexact flag isn't set, 30429 which is a bug reported by Guillaume Revy). 30430 304312007-09-17 Philippe Th��veny <philippe.theveny@laposte.net> 30432 30433 modf.c: take care of user exponent range (possible underflow/overflow) 30434 304352007-09-16 Vincent Lef��vre <vincent@vinc17.net> 30436 30437 tsin_cos.c: fixed the tiny() test. 30438 30439 sin_cos.c: fixed the overflow and cancellation problems by using 30440 MPFR_FAST_COMPUTE_IF_SMALL_INPUT from the mpfr_sin and mpfr_cos 30441 functions (I'll fix the test later). 30442 30443 tsin_cos.c: added test on tiny values. 30444 304452007-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30446 30447 Put back previous patch, now avoids overflow, and added more explanations. 30448 This is still not a definitive solution, but more efficient than 2.3.0 30449 in the case x is small. 30450 304512007-09-15 Vincent Lef��vre <vincent@vinc17.net> 30452 30453 Efficiency regression wasn't fixed correctly -> commented out the code. 30454 304552007-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30456 30457 fixed efficiency regression pointed out by Andreas Enge 30458 304592007-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30460 30461 fixed bug in mpfr_sin_cos found by Philippe: z (to save the cosine) was not 30462 allowed to be identical to the input x 30463 304642007-09-13 Philippe Th��veny <philippe.theveny@laposte.net> 30465 30466 new function mpfr_modf and add restrictions on mpfr_sin_cos' variables 30467 304682007-09-11 Philippe Th��veny <philippe.theveny@laposte.net> 30469 30470 add some simple test cases in tadd_d.c and friends 30471 304722007-09-10 Vincent Lef��vre <vincent@vinc17.net> 30473 30474 prepare: output a message saying that this script is obsolete. 30475 304762007-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30477 30478 added restrictions to mpfr_add_d and friends 30479 304802007-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30481 30482 removed functions mpfr_add_d ... which are done 30483 304842007-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30485 30486 added Philippe Theveny 30487 304882007-09-07 Philippe Th��veny <philippe.theveny@laposte.net> 30489 30490 new arithmetic functions with a double argument 30491 304922007-09-07 Vincent Lef��vre <vincent@vinc17.net> 30493 30494 tacosh.c: added generic tests for the overflow case. 30495 30496 acosh.c: reduce the precision for ln(2); smaller error bound. 30497 30498 tgeneric.c: undefine some macros at the end. 30499 30500 acosh.c: fixed overflow bug. 30501 30502 acosh.c: mentioned bug due to overflow in mpfr_mul. 30503 tests/tacosh.c: added corresponding testcase (for 32-bit machines). 30504 30505 tacosh.c: use tests_default_random(). 30506 30507 tests.c: improved tests_default_random(). 30508 305092007-09-02 Vincent Lef��vre <vincent@vinc17.net> 30510 30511 Makefile.am: fixed get_patches rule. 30512 30513 Makefile.am: cd $(srcdir) before executing get_patches.sh (thanks to 30514 Daniel Jacobowitz for noticing this); for more information, see the 30515 note just before the get_patches.c rule. 30516 305172007-08-31 Vincent Lef��vre <vincent@vinc17.net> 30518 30519 acosh.c: added MPFR_UNLIKELY. 30520 30521 Added generic bad case tests. 30522 30523 algorithms.tex: deleted trailing spaces. 30524 30525 algorithms.tex: correction in section on mpfr_asinh: acosh -> asinh. 30526 30527 Fixed bug in mpfr_acosh for arguments slightly larger than 1; 30528 updated algorithms.tex; fixed testcase. 30529 30530 tacosh.c: added testcase for bug in mpfr_acosh (assertion failure). 30531 30532 tasin.c: increased the number of generic tests. 30533 30534 Improved generic tests by limiting the exponent range of the random 30535 numbers for some functions. 30536 305372007-08-30 Vincent Lef��vre <vincent@vinc17.net> 30538 30539 Generic tests: adjust the proportion of negative numbers returned 30540 by the random function in order to get fewer NaN cases. 30541 30542 tgeneric.c: output a warning when too few normal cases are tested 30543 (so that the random function can be improved...). 30544 30545 tests.c: function split (for future addition). 30546 30547 configure.in: updated copyright notice (for consistency). 30548 30549 Bug fix: added missing _MPFR_PROTO in mpfr-test.h. 30550 30551 tgeneric.c: updated description line. 30552 305532007-08-29 Vincent Lef��vre <vincent@vinc17.net> 30554 30555 Updated copyright notice (for an unknown reason, some files were missing 30556 from the change done in r4350). 30557 305582007-08-28 Vincent Lef��vre <vincent@vinc17.net> 30559 30560 atan2.c: as we supposed some property, let's add an assertion (which 30561 can be evaluated at compile time). 30562 30563 atan2.c: improved comment. 30564 30565 atan2.c: completed the underflow case. 30566 30567 atan2.c: fixed the underflow case except in GMP_RNDN with 30568 2^(-emin-2) < |y/x| < 2^(-emin-1). 30569 30570 tatan.c: added small-value tests in the other rounding modes. 30571 30572 atan2.c: implemented the special case where x is positive and y/x is 30573 computed exactly (solving the underflow problems in this case). 30574 30575 tatan.c: added a similar test, but with an exact division result. 30576 30577 tatan.c: fixed test. 30578 30579 README.dev: added a paragraph concerning Ziv loops. 30580 30581 tatan.c: updated comment. 30582 30583 tatan.c: extended the latest testcase to any platform (e.g. 64 bits). 30584 30585 tatan.c: added testcase from a bug reported by Christopher Creutzig. 30586 305872007-08-27 Vincent Lef��vre <vincent@vinc17.net> 30588 30589 Updated svn:ignore properties. 30590 30591 FAQ update: 30592 * The question numbers are now hardcoded instead of being generated 30593 with CSS rules. 30594 * Added the list of questions at the top. 30595 * CSS styles: a grey bar is displayed on the left of the target answer 30596 (if the browser supports the ":target" pseudo-class from CSS3). 30597 30598 faq.xsl: added a comment. 30599 30600 FAQ update. 30601 306022007-08-22 Vincent Lef��vre <vincent@vinc17.net> 30603 30604 INSTALL: added another warning concerning the --with-gmp options. 30605 For instance, under Linux, "cpp -I/usr/include -v < /dev/null" says: 30606 ignoring duplicate directory "/usr/include" 30607 as it is a non-system directory that duplicates a system directory 30608 and does not modify the include search path as wanted. 30609 306102007-08-15 Vincent Lef��vre <vincent@vinc17.net> 30611 30612 mpfr.texi: improved description of mpfr_setsign. 30613 306142007-08-14 Vincent Lef��vre <vincent@vinc17.net> 30615 30616 Added to NEWS: Thread-safe support with Microsoft Visual compiler. 30617 30618 mpfr-impl.h: if MPFR_USE_THREAD_SAFE is defined (--enable-thread-safe): 30619 * Added support for MSC (thanks to Brian Gladman). 30620 * Define MPFR_THREAD_ATTR even after #error to make the error more 30621 visible (see comment in the source). 30622 306232007-08-13 Vincent Lef��vre <vincent@vinc17.net> 30624 30625 tstckintc.c: fixed bus error on Solaris (the address of Buffer was not 30626 a multiple of 4). 30627 30628 NEWS: new functions mpfr_signbit, mpfr_setsign, mpfr_copysign. 30629 30630 Implemented changes suggested in 30631 <https://sympa.inria.fr/sympa/arc/mpfr/2007-07/msg00123.html>. 30632 * Made mpfr_copysign() like the corresponding function in IEEE 754 30633 (was an internal function until now). 30634 * Added mpfr_signbit() and mpfr_setsign(). 30635 * Documented these three functions. 30636 * Updated TODO. 30637 306382007-08-11 Vincent Lef��vre <vincent@vinc17.net> 30639 30640 Fixed mpfr_inits and mpfr_clears calls in tests/tatan.c. 30641 30642 Added check_inits_clears Perl script to check that a cast is performed 30643 for the last argument of mpfr_inits, mpfr_inits2 and mpfr_clears. 30644 306452007-08-10 Vincent Lef��vre <vincent@vinc17.net> 30646 30647 Updated version to 2.4.0-dev. 30648 30649 NEWS update. 30650 30651 ChangeLog update with "TZ=UTC svn log -v". 30652 30653 asinh.c: fixed assertion failure (see test 4 in tasinh.c, added 30654 in r4740), that was due to an exception. 30655 30656 tasinh.c: fixed test. 30657 30658 tasinh.c: added worst case that yields an assertion failure. 30659 306602007-08-09 Vincent Lef��vre <vincent@vinc17.net> 30661 30662 Added data_check support to cbrt. 30663 30664 log.c: fixed assertion failure (see test x_near_one in tlog.c, added 30665 in r4736), that was due to an exception. 30666 30667 pow.c: added MPFR_SMALL_INPUT_AFTER_SAVE_EXPO for the case where 30668 |y * log(x)| is very small (I can't really test because this code 30669 currently fails due to a bug in mpfr_log: see test x_near_one 30670 added to tlog.c as changeset 4736; this bug is also present in 30671 the 2.2 branch). 30672 30673 tlog.c: added a test leading to an assertion failure in mpfr_log. 30674 30675 tpow.c: added a test where x is close to 1. 30676 30677 Added empty file tests/data/exp10 to avoid an error with -dev versions. 30678 30679 Added a TODO concerning the description of mpfr_round_near_x. 30680 30681 Added empty files in tests/data to avoid errors with -dev versions. 30682 30683 mpfr_ui_pow fix: added a MPFR_SAVE_EXPO_UPDATE_FLAGS. 30684 30685 Added texp10.c (texp10 currently fails). 30686 30687 texp2.c: reformat and added some tests which were missing. 30688 306892007-08-08 Vincent Lef��vre <vincent@vinc17.net> 30690 30691 Added data_check calls to texpm1, tlog1p and tlog2. 30692 30693 tests/tests.c: in data_check(), mode 'Z', do not test GMP_RNDN if 30694 the precision for the directed rounding modes is MPFR_PREC_MIN. 30695 306962007-08-04 Vincent Lef��vre <vincent@vinc17.net> 30697 30698 TODO: more on mpfr_sin (and mpfr_cos). 30699 30700 TODO: update concerning sin/cos/tan. 30701 307022007-08-03 Vincent Lef��vre <vincent@vinc17.net> 30703 30704 tests/tests.c: in data_check(), check the 4 rounding modes if rnd is 'Z' 30705 (in order to test the worst cases). 30706 30707 Fixed coding style (for ansi2knr in particular). 30708 307092007-08-02 Vincent Lef��vre <vincent@vinc17.net> 30710 30711 Makefile.am: added a comment about "get_patches.c". 30712 30713 No longer set "CLEANFILES = get_patches.c" in Makefile.am so that a 30714 "make clean" doesn't remove the get_patches.c file, as rebuilding it 30715 needs a Unix shell (and some standard utilities). Anyway the update 30716 of this file should be regarded as part of the patch process, then 30717 this file is just like any other .c files. Note: "make dist" includes 30718 this file in the archives, so that concerning the build, everything 30719 is like before as long as no patches are applied. 30720 307212007-08-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30722 30723 added item about sNaN/qNaN 30724 307252007-07-31 Vincent Lef��vre <vincent@vinc17.net> 30726 30727 copysign.c: reformat, updated comment (but this function is still not 30728 documented in mpfr.texi). 30729 30730 Updated version back to 2.3.0-dev since the 2.3 branch will be recreated 30731 from the trunk (too many changes!). 30732 30733 tl2b.c: enable output even when the constants are correct. 30734 30735 Added get_patches.c to the svn:ignore property, as this file is 30736 generated. 30737 30738 Replaced l2b cache by constants, as suggested by Patrick Pelissier, 30739 to avoid efficiency problems with the stack interface and heavily 30740 threaded applications. 30741 * Added tests/tl2b.c to generate / check the constants. 30742 * tests/Makefile.am: added tl2b to check_PROGRAMS. 30743 * tests directory: added tl2b to the svn:ignore property. 30744 * mpfr-impl.h: updated the __gmpfr_l2b declaration. 30745 * free_cache.c: disabled free_l2b (since there's no longer a cache). 30746 * get_str.c: added the code generated by tl2b; for the bootstrap, one 30747 can just write: 30748 const __mpfr_struct __gmpfr_l2b[BASE_MAX-1][2] = { { { 0 } } }; 30749 Removed the code (in ceil_mul) that computed these constants. 30750 307512007-07-30 Vincent Lef��vre <vincent@vinc17.net> 30752 30753 mpfr.texi: updated the documentation of the mpfr_get_d function family. 30754 30755 Patch tracking: updated README.dev and TODO files. 30756 30757 Added support for tracking applied patches with new function 30758 mpfr_get_patches(). 30759 30760 mpfr.texi: updated the example concerning mpfr_get_version() vs 30761 MPFR_VERSION_STRING ("Warning" instead of "Error", make sure that 30762 the example fits on 80 columns in the info file). 30763 30764 mpfr.texi: updated description of mpfr_get_version(). 30765 30766 mpfr.texi: updated description of mpfr_get_version(). 30767 307682007-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30769 30770 added files that are not 100% covered by tests 30771 307722007-07-27 Vincent Lef��vre <vincent@vinc17.net> 30773 30774 coverage: added --disable-shared --enable-static to configure. 30775 30776 mpfr-impl.h: added more casts for g++. 30777 30778 Reformat. 30779 30780 Applied patch from Patrick to be able to build MPFR with g++. 30781 307822007-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30783 30784 added default thresholds for Core 2 30785 307862007-07-25 Vincent Lef��vre <vincent@vinc17.net> 30787 30788 No longer use MPFR_CHECK_ALL in tests. In '-dev' versions, assume 30789 that the data files exist and return an error whenever a file cannot 30790 be opened. In the other versions, return silently if the file cannot 30791 be opened. 30792 30793 Moved mpfr-test.h into the tests directory. 30794 307952007-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30796 30797 fixed "efficiency bug" (argument reduction was broken) 30798 307992007-07-25 Vincent Lef��vre <vincent@vinc17.net> 30800 30801 tests.c: in data_check(), made whitespace skipping consistent and 30802 check that the result value is immediately followed by a \n. 30803 30804 [tests.c] Fixed some types (the result of getc() is not necessarily 30805 representable in a char). 30806 30807 tests.c: changes in the error messages (BTW, we decided to output 30808 everything to stdout for consistency, even though messages for 30809 assertion failure are written to stderr) and replaced an abort () 30810 by an exit (1). 30811 30812 Delete trailing spaces. 30813 308142007-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30815 30816 jyn_asympt.c: new common file for asymptotic expansion in jn/yn 30817 tests/tests.c: print precisions in case of failure 30818 jn.c: now use jyn_asympt.c 30819 yn.c: now implement asymptotic expansion (jyn_asympt.c) 30820 30821 fixed more wrong entries in Gonnet's test suite 30822 308232007-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30824 30825 contribution of first neglected term to error was wrong 30826 30827 fixed wrong entry (not enough precision was used in Maple) 30828 30829 implemented asymptotic expansion for large argument in j0/j1/jn 30830 308312007-07-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30832 30833 define MPFR_CHECK_ALL for nightly tests 30834 30835 Added code to check mpfr against Gonnet's tables when the environment variable 30836 MPFR_CHECK_ALL is defined (some table entries were checked by MuPAD) 30837 30838 added comment 30839 30840 test data files mpfr mpfr_y0 and mpfr_y1, ***not*** checked with MuPAD 30841 30842 added auxiliary MuPAD functions 30843 improved Ziv's strategy: add half of DIGITS each time 30844 30845 test data file for mpfr_tanh, checked by MuPAD 30846 30847 test data file for mpfr_tan, checked with MuPAD (except 3 indicated entries) 30848 30849 test data file for mpfr_sqrt, checked with MuPAD 30850 30851 test data file for mpfr_sinh, checked by MuPAD (except indicated lines) 30852 30853 test data file for mpfr_sin, checked by MuPAD (except tiny inputs indicated 30854 in file) 30855 30856 test data file for x^(11/4), checked with MuPAD 30857 30858 finally, I was able to check it with MuPAD 30859 30860 test data file for 2^x, checked with MuPAD 30861 30862 test data file for Pi*x, checked with MuPAD 30863 30864 test data file for mpfr_log, checked with MuPAD 30865 30866 test data files for mpfr_j0, mpfr_j1, mpfr_lgamma, mpfr_log10, 30867 ***not*** tested with MuPAD (not Dom::Interval interface) 30868 30869 test data file for 1/x, i.e., mpfr_ui_div(1,x), checked with MuPAD 30870 30871 test data file for mpfr_gamma, ***not*** checked by MuPAD 30872 30873 test data file for mpfr_exp, checked with MuPAD 30874 30875 test data files for erf and erfc (not checked by MuPAD, since Dom::Interval 30876 does not have an interface for those functions in MuPAD 3.2.0) 30877 30878 test data file for mpfr_cosh, checked with MuPAD 30879 30880 test data file for mpfr_cos, checked by MuPAD 30881 30882 test data file for mpfr_atanh, checked with MuPAD 30883 30884 test data file for atan, checked with MuPAD 30885 30886 test file for mpfr_asinh, checked with MuPAD 30887 30888 data file for mpfr_asin, checked with MuPAD using CheckData.mu 30889 30890 data file for mpfr_acosh, checked with MuPAD using CheckData.mu 30891 30892 improved output 30893 30894 MuPAD file to check a data file 30895 308962007-07-20 Vincent Lef��vre <vincent@vinc17.net> 30897 30898 Renamed mpfr_l2b as __gmpfr_l2b for consistency. 30899 309002007-07-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30901 30902 patch from Brian Gladman to build mpfr.dll 30903 30904 added copyright information about Gonnet's package 30905 30906 modified data_check() to allow comment lines starting with # 30907 30908 new (experimental) mechanism to check data files (see example in tacos.c) 30909 30910 new directory for test data 30911 30912 added test for inexact flag (bug fixed in r4630) 30913 309142007-07-18 Vincent Lef��vre <vincent@vinc17.net> 30915 30916 erfc.c, atan2.c: added missing "MPFR_SAVE_EXPO_FREE (expo);" before 30917 "return mpfr_underflow (...);". 30918 erfc.c: replaced a goto by an else. 30919 309202007-07-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30921 30922 now deal with underflow in y/x (remains to deal with overflow) 30923 30924 now can specify output base when argc > 1 30925 30926 MPFR_EQUAL -> mpfr_equal_p 30927 30928 fixed problem with erfc() near underflow region 30929 30930 atan2.c: quick-and-dirty fix for atan2(y,1) 30931 tests/tatan.c: fix tests from Christopher [x and y were interchanged] 30932 30933 added test from Ch. Creutzig 30934 30935 apply patch suggested in bug #3604 30936 309372007-07-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30938 30939 previous bug fix for tiny negative inputs in mpfr_lgamma was incorrect: 30940 result was NaN, but this was not detected by the tests since mpfr_cmp (y, NaN) 30941 is always true! 30942 309432007-07-17 Vincent Lef��vre <vincent@vinc17.net> 30944 30945 Added comments and fixed an indentation bug. 30946 309472007-07-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30948 30949 in reconstruction after computation of cos(x/2^k) for reduced argument, 30950 it may be that cos(x) is zero to the working precision. Then restart Ziv's 30951 algorithm with a larger precision. 30952 309532007-07-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30954 30955 lngamma.c: fix for small inputs 30956 tlgamma.c: added more tests from Kaveh Ghazi 30957 30958 sin_cos.c: 2nd arg of 1st mpfr_can_round call was wrong 30959 ttan.c: fixed wrong reference value 30960 30961 added comment about sinpi, etc. 30962 309632007-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30964 30965 added new test, and re-enabled test that was too slow 30966 309672007-07-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30968 30969 removed MPFR_CHECK_TINY, added MPFR_CHECK_MAX 30970 309712007-07-10 Vincent Lef��vre <vincent@vinc17.net> 30972 30973 terf.c: added testcase for bug reported by Christopher Creutzig. 30974 309752007-07-09 Vincent Lef��vre <vincent@vinc17.net> 30976 30977 Removed a #include that was probably added by mistake in r2590. 30978 30979 <stdio.h> and <limits.h> are now included unconditionally in mpfr-impl.h 30980 (removed their inclusion from the C files for consistency). 30981 309822007-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30983 30984 ternary flag was wrong in case s=1 or -1 and rounding up/nearest 30985 30986 updated algorithms.tex with new additive argument reduction for sin/cos/tan 30987 309882007-07-03 Vincent Lef��vre <vincent@vinc17.net> 30989 30990 lngamma.c: reformat and replaced mpfr_cmp(...) == 0 by mpfr_equal_p. 30991 309922007-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30993 30994 changed stdlib to stdio for NULL (see README.dev) 30995 30996 fixed bug in tlgamma and added test (need to implement Ziv's strategy in 30997 tiny case) 30998 30999 added missing include 31000 310012007-07-03 Vincent Lef��vre <vincent@vinc17.net> 31002 31003 Fixed the bug reported by David Billinghurst to the MPFR mailing-list 31004 on 2007-07-03 (memory leaks under some conditions): 31005 * moved the free_l2b() function from tests/tests.c to free_cache.c; 31006 * mpfr_free_cache() (from free_cache.c) now calls free_l2b(); 31007 * as a consequence, no longer call free_l2b() in tests_end_mpfr(); 31008 * documented the behavior in mpfr.texi (under mpfr_free_cache). 31009 31010 tj0.c: added testcase from Sisyphus (assertion failed). 31011 31012 README.dev: explain how to test the library interface compatibility. 31013 310142007-07-02 Vincent Lef��vre <vincent@vinc17.net> 31015 31016 README.dev: mentions patch-libtool and how to apply it. 31017 31018 Added patch-libtool (patch for aclocal.m4 and configure that comes from 31019 <https://lists.gnu.org/archive/html/bug-libtool/2007-07/msg00007.html> 31020 or gmane.comp.gnu.libtool.bugs:5776). 31021 31022 NEWS: mention that the shared library is now enabled by default on 2.3. 31023 31024 README.dev: updated item 2 of "To make a release". 31025 31026 Reformat. 31027 31028 Updated version to 2.4.0-dev. 31029 31030 ChangeLog update. 31031 31032 NEWS: update. 31033 310342007-07-01 Vincent Lef��vre <vincent@vinc17.net> 31035 31036 Makefile.am: updated comment concerning -version-info. 31037 31038 Added mpfr_fms based on mpfr_fma. 31039 31040 tfma.c: added a space. 31041 31042 tfma.c: typo. 31043 31044 Reformat. 31045 31046 fma.c: minor changes for consistency with the future fms. 31047 31048 Completed the implementation of mpfr_fma (except in some corner cases 31049 where overflows/underflows and huge precisions are involved at the 31050 same time). Added underflow tests. Removed item from the BUGS file 31051 (the remaining problems more or less correspond to the first item). 31052 31053 Untabified. 31054 31055 tfma.c: added overflow test to test_underflow. 31056 31057 fma.c: implemented the main cases where x * y underflows. 31058 tests/tfma.c: fixed overflow tests and added underflow tests. 31059 310602007-06-30 Vincent Lef��vre <vincent@vinc17.net> 31061 31062 NEWS: update. 31063 310642007-06-29 Vincent Lef��vre <vincent@vinc17.net> 31065 31066 BUGS: updated item on mpfr_fma. 31067 31068 fma.c: completed the cases where x*y/4 needs to be used, except the very 31069 particular cases where an underflow occurs, that remain to be done. 31070 31071 tfma.c: fixed a printf. 31072 31073 fma.c: added an assertion. 31074 31075 tfma.c: fixed overflow tests. 31076 31077 tfma.c: check NaN in test_overflow2. 31078 31079 fma.c: updated a comment. 31080 31081 tfma.c: added more overflow tests (needed to distinguish the cases 31082 where z/4 underflows or not -- see fma.c). 31083 31084 tfma.c: added tests (-> assertion failed because mpfr_fma implementation 31085 isn't complete). 31086 310872007-06-28 Vincent Lef��vre <vincent@vinc17.net> 31088 31089 acos.c: disabled change from r3145 ("Optimize mpfr_acos by choosing 31090 a better initial precision.") that was buggy. 31091 BUGS: removed mpfr_acos bug. 31092 31093 BUGS: updated item on the mpfr_acos bug. 31094 31095 BUGS: updated item on the mpfr_acos test (the bug wasn't visible on 31096 32-bit machines due to an integer overflow, but the result should 31097 have been correct anyway). 31098 31099 acos.c: fixed integer overflows; to avoid undefined behavior, I had 31100 to add an assertion that is not always satisfied (the code needs to 31101 be rewritten to take tiny arguments into account). 31102 31103 BUGS: update (mpfr_cot has just been fixed). 31104 31105 cot.c: implemented the case |x| = 2^emin. 31106 tests/tcot.c: added tests for this case, in 3 exponent ranges 31107 (as this is an overflow limit). 31108 31109 Fixed bug in div.c: rnd_mode could be modified (MPFR_INVERT_RND), but 31110 the original value was assumed in case of underflow or overflow. 31111 31112 tdiv.c: added a test showing another bug in mpfr_div. 31113 31114 cot.c: use MPFR_SAVE_EXPO_UPDATE_FLAGS, but the case +/- 2^emin could 31115 still be buggy with the current code; added a MPFR_ASSERTN (0) until 31116 it is implemented. 31117 BUGS: updated item on mpfr_cot. 31118 311192007-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31120 31121 fixed several problems with huge arguments in periodic functions 31122 mpfr_sin: complete rewrite, using mpfr_remainder for argument reduction 31123 mpfr_sin_cos: ditto 31124 311252007-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31126 31127 fixed stupid bug (subtraction of unsigned longs) 31128 31129 cos.c: implemented argument reduction by 2Pi 31130 tcos.c/tgeneric.c: reduce large exponent used when MPFR_CHECK_MAX is defined 31131 311322007-06-22 Vincent Lef��vre <vincent@vinc17.net> 31133 31134 BUGS: added bugs. 31135 31136 coth.c, sech.c: a rounding mode was incorrect. 31137 tests/tcoth.c: added underflowed_cothinf test. 31138 tests/tsech.c: added overflowed_sech0 test. 31139 31140 * gen_inverse.h: ACTION_TINY must be called after MPFR_SAVE_EXPO_MARK 31141 (this is necessary for some functions). Moved MPFR_SAVE_EXPO_FREE 31142 after the "end:" label. 31143 * coth.c, csc.c, csch.c: as a consequence, MPFR_SAVE_EXPO_UPDATE_FLAGS 31144 had to be added before "goto end;". 31145 * sec.c: a rounding mode was incorrect. 31146 * tests/tsec.c: added overflowed_sec0 test. 31147 311482007-06-21 Vincent Lef��vre <vincent@vinc17.net> 31149 31150 sin_cos.c: fixed a bug for x = 0 in reduced exponent range. 31151 tests/tsin_cos.c: added overflowed_sin_cos0 test. 31152 31153 BUGS: Some functions do not use MPFR_SAVE_EXPO_* macros, thus do not 31154 behave correctly in a reduced exponent range. 31155 31156 factorial.c: a rounding mode was incorrect. 31157 tests/tfactorial.c: added overflowed_fac0 test. 31158 31159 exp2.c: use MPFR_SMALL_INPUT_AFTER_SAVE_EXPO instead of 31160 MPFR_FAST_COMPUTE_IF_SMALL_INPUT since 1 (__gmpfr_one) isn't 31161 necessarily representable. 31162 tests/texp2.c: added overflowed_exp2_0 test. 31163 31164 exp.c: fixed problems in reduced exponent range. 31165 tests/texp.c: added overflowed_exp0 test. 31166 31167 exp.c bug fix: a rounding mode was incorrect. 31168 31169 tcos.c: fixed error message in overflowed_cos0 test. 31170 31171 tcos.c: removed an obsolete comment from the overflowed_cos0 test. 31172 31173 tcos.c: improved overflowed_cos0 test. 31174 31175 get_str.c: use MPFR_SAVE_EXPO. 31176 tests/tget_str.c: enabled the test with a reduced exponent range. 31177 31178 tget_str.c: added a test (disabled by default) with emax = 0. 31179 31180 Corrected mpfr_inits, mpfr_inits2 and mpfr_clears calls with NULL 31181 argument (-> (void *) 0). 31182 31183 tget_str.c: reformatted/corrected a function. 31184 31185 Tests: when restoring the exponent range, save emin/emax first instead 31186 of using MPFR_EMIN_MIN/MPFR_EMAX_MAX (which have no longer corresponded 31187 to the default exponent range since quite a long time). 31188 31189 BUGS: update. 31190 311912007-06-20 Vincent Lef��vre <vincent@vinc17.net> 31192 31193 Untabified and removed trailing spaces. 31194 31195 Bug fix: preprocessor # must be in the first column. 31196 31197 remquo.c bug fix: preprocessor # must be in the first column. 31198 31199 tcos.c: fixed and improved the overflowed_cos0 test. 31200 31201 cos.c bug fix: a rounding mode was incorrect. 31202 31203 cos.c: use MPFR_SMALL_INPUT_AFTER_SAVE_EXPO instead of 31204 MPFR_FAST_COMPUTE_IF_SMALL_INPUT. 31205 31206 cos.c: untabified. 31207 31208 tcos.c: added tests for x very small and emax = 0 (some of them 31209 currently fail). 31210 31211 Added a comment concerning the MPFR_SMALL_INPUT_AFTER_SAVE_EXPO macro. 31212 31213 Added MPFR_SMALL_INPUT_AFTER_SAVE_EXPO macro; updated expm1.c to use 31214 this variant (and moved MPFR_SAVE_EXPO_MARK after the test ex < 0). 31215 312162007-06-19 Vincent Lef��vre <vincent@vinc17.net> 31217 31218 Documented log(-0). 31219 31220 Added a few tests of log functions. 31221 312222007-06-18 Vincent Lef��vre <vincent@vinc17.net> 31223 31224 mpfr.texi: updated Section "Floating-Point Values on Special Numbers". 31225 312262007-06-12 Vincent Lef��vre <vincent@vinc17.net> 31227 31228 TODO: allow generic tests to run with a restricted exponent range. 31229 31230 expm1.c: fixed bug for x = -max_value due to an intermediate overflow 31231 (flags were incorrect); at the same time, potential problems due to a 31232 restricted exponent range are also fixed. 31233 31234 tgeneric.c: check the function on large arguments (��maximum_value) 31235 when the MPFR_CHECK_MAX environment variable is defined. 31236 312372007-06-11 Vincent Lef��vre <vincent@vinc17.net> 31238 31239 tests/tlgamma.c: re-enabled sign checking. 31240 312412007-06-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31242 31243 fixed problem with mpfr_lgamma for tiny negative input (and fixed use of 31244 generic test) 31245 312462007-06-05 Vincent Lef��vre <vincent@vinc17.net> 31247 31248 [mpfr.texi] Small change in new Section "Floating-Point Values on 31249 Special Numbers" (suggested by Paul). 31250 312512007-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31252 31253 fixed bug for tiny negative input (and added corresponding test) 31254 312552007-06-05 Vincent Lef��vre <vincent@vinc17.net> 31256 31257 algorithms.tex: Mulder -> Mulders. 31258 312592007-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31260 31261 added test for "Witty's bug" on 64-bit machines 31262 312632007-06-04 Vincent Lef��vre <vincent@vinc17.net> 31264 31265 div.c: GNU coding style. 31266 312672007-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31268 31269 tdiv.c: added missing mpfr_clear's, and spaces before function calls 31270 div.c: fixed bug found by Carl Witty, and added more comments 31271 312722007-06-04 Vincent Lef��vre <vincent@vinc17.net> 31273 31274 tdiv.c: oops... the result should be 1. 31275 31276 tdiv.c: added test from Carl Witty's bug report on 2007-06-03. 31277 312782007-06-01 Vincent Lef��vre <vincent@vinc17.net> 31279 31280 mpfr.texi: updated Section "Floating-Point Values on Special Numbers". 31281 31282 mpfr.texi: updated Section "Floating-Point Values on Special Numbers". 31283 31284 mpfr.texi: updated month. 31285 31286 mpfr.texi: added @: after "resp." (when it was missing). 31287 312882007-05-31 Vincent Lef��vre <vincent@vinc17.net> 31289 31290 Started a new section "Floating-Point Values on Special Numbers". 31291 31292 mpfr.texi: inf -> Inf for consistency. 31293 31294 mpfr.texi @deftypefun correction: void * -> {void *} (for the PDF). 31295 31296 mpfr.texi: consistency changes in section titles; made titles unique. 31297 31298 set_d64.c: replaced an "if" by a "#if" to avoid a gcc warning. 31299 31300 get_d64.c: use BITS_PER_MP_LIMB instead of GMP_BITS_PER_LIMB (which 31301 does not seem to exist). 31302 set_d64.c: use BITS_PER_MP_LIMB instead of mp_bits_per_limb. 31303 31304 get_d64.c, set_d64.c: improved code to avoid some warnings. 31305 31306 Untabified get_d64.c and set_d64.c. 31307 31308 get_d64.c: added missing #include. 31309 31310 BUGS: update. 31311 31312 mpfr-impl.h: improved error message when thread safe is not supported. 31313 313142007-05-30 Vincent Lef��vre <vincent@vinc17.net> 31315 31316 INSTALL: say that relative paths in configure options are not supported 31317 (autoconf doesn't seem to have support for them). 31318 31319 Documented the new behavior of mpfr_sgn (in fact, it was already partly 31320 required by the tsgn.c tests!) and added new mpfr_sgn tests. 31321 31322 TODO: added an item about the behavior of mpfr_sgn on NaN. 31323 31324 tgeneric.c: no longer check the MPFR_CHECK_TINY environment variable 31325 as all the bugs related to tiny arguments have been fixed. 31326 31327 mpfr.texi: corrections following the remarks by Nathalie Revol. 31328 313292007-05-29 Vincent Lef��vre <vincent@vinc17.net> 31330 31331 yn.c: untabify. 31332 313332007-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31334 31335 fix for small inputs in y1 31336 313372007-05-29 Vincent Lef��vre <vincent@vinc17.net> 31338 31339 Defined new macros SIGN and SAME_SIGN in mpfr-impl.h to canonicalize 31340 the ternary value and to compare such values. Use SAME_SIGN in erf.c 31341 and lngamma.c. 31342 313432007-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31344 31345 fixed problem of tiny arguments for y0 31346 31347 lngamma.c: fixed problem of tiny inputs in lngamma (still remains lgamma 31348 to deal with) 31349 erf.c: small correction (inexact flags might have been inexact :-) 31350 31351 fixed tiny input problem with csch, j0, j1 31352 31353 added special code for tiny inputs 31354 313552007-05-29 Vincent Lef��vre <vincent@vinc17.net> 31356 31357 tgeneric_ui.c: no longer check the MPFR_CHECK_TINY environment variable. 31358 31359 erf.c: removed workaround to mpfr_div_ui bug, as the bug is now fixed. 31360 31361 div_ui.c: 31362 * Cleaned up the use of the sh variable (there was a useless sh = 0, 31363 so I'm not sure that there isn't a bug...). 31364 * Added underflow check. 31365 31366 Added check of tiny arguments to tgeneric_ui.c (if MPFR_CHECK_TINY is 31367 defined, like in tgeneric.c); mpfr_div_ui currently fails due to the 31368 lack of underflow checking. 31369 313702007-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31371 31372 README.dev: fixed typo 31373 erf.c: implemented special case for tiny x, and partially get rid of double 31374 usage 31375 implemented 31376 313772007-05-28 Vincent Lef��vre <vincent@vinc17.net> 31378 31379 MPFR_RET (mpfr_check_range (...)) -> return mpfr_check_range (...) 31380 as mpfr_check_range already handles the inexact flag. 31381 Reformatting (removed trailing spaces, untabified). 31382 313832007-05-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31384 31385 fixed problem of tiny input 31386 31387 fixed problem of tiny input for coth (and new fix again for csc, which 31388 takes into account the sign of the input) 31389 31390 fixed problem of tiny inputs in mpfr_sec and mpfr_csc, 31391 by adding a SPECIAL_TINY macro in gen_inverse.h 31392 31393 the test for the tiny input case was too optimistic: fixed and added test. 31394 31395 fixed case of tiny input 31396 31397 fixed problem for tiny arguments 31398 31399 added MPFR_FAST_COMPUTE_IF_SMALL_INPUT call 31400 31401 changed 1st-order Taylor term from x to v to avoid confusion with the 31402 argument x of the function f(x), and fixed some typos 31403 31404 fixed direction of rounding for MPFR_FAST_COMPUTE_IF_SMALL_INPUT 31405 (was wrong for x < 0) 31406 31407 fixed typo 31408 31409 added call to MPFR_FAST_COMPUTE_IF_SMALL_INPUT in exp2 31410 31411 re-enabled MPFR_CHECK_TINY 31412 31413 improved documentation of mpfr_set/get_decimal64 functions 31414 fixed problem in configure.in (_Decimal64 was tested too early) 31415 314162007-05-28 Vincent Lef��vre <vincent@vinc17.net> 31417 31418 tests/tests.c: fixed two bugs concerning the timeout (including an 31419 old one: we need to call getrlimit to initialize rlim_max). 31420 314212007-05-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31422 31423 new syntax for timeouts 31424 31425 fixed typo 31426 314272007-05-28 Vincent Lef��vre <vincent@vinc17.net> 31428 31429 Added mkinstalldirs to svn:ignore property. 31430 31431 Changed --with-tests-timeout into --enable-tests-timeout as documented 31432 in the autoconf manual (--with-* are for external packages only). When 31433 this is enabled, environment variable MPFR_TESTS_TIMEOUT allows to 31434 override the default timeout (use the value 0 to disable timeouts). 31435 31436 Updated NEWS file. 31437 31438 mpfr.texi: small improvement. 31439 31440 Fixed a bug in the mpfr_cmp_ui macro occurring on NaN and the constant 0 31441 by specifying the behavior of mpfr_sgn on NaN. 31442 31443 mpfr.texi: typography corrections concerning "i.e.". 31444 31445 mpfr.texi: consistency changes. 31446 31447 mpfr.texi: more details in Section "Exceptions". 31448 31449 tgeneric.c: check the function on tiny arguments (��2^(emin-1)) when 31450 the MPFR_CHECK_TINY environment variable is defined. 31451 31452 Typo. 31453 31454 Avoid integer overflow in MPFR_FAST_COMPUTE_IF_SMALL_INPUT. 31455 314562007-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31457 31458 completed implementation of Vincent's algorithm for mpfr_remquo 31459 all tests now pass again 31460 314612007-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31462 31463 new version of mpfr_remainder, using Vincent's algorithm 31464 (still remains to deal with special arguments, and make mpfr_remquo call it) 31465 314662007-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31467 31468 added note about fms 31469 31470 fixed typo 31471 31472 fixed problem for x integer and rounding to nearest 31473 31474 workaround for bug when x is very small (check_tiny in tsin) 31475 314762007-05-22 Vincent Lef��vre <vincent@vinc17.net> 31477 31478 Updated BUGS (again). 31479 31480 Updated BUGS and TODO (mpfr_lgamma has been implemented, but see BUGS, 31481 and gamma(-integer) with integer >= 1 is defined as NaN). 31482 31483 tsin.c: check sin on +/- 2^(emin-1) (test by Christopher Creutzig). 31484 31485 tgamma.c: added test of gamma on some integral values (from Christopher 31486 Creutzig); this test is enabled only when an argument is provided. 31487 31488 fma.c: improved comments and simplified the code. 31489 31490 fma.c: implemented exponent range expansion and the main part when the 31491 multiplication overflows. The following remains to do: 31492 * when the multiplication overflows: some corner cases; 31493 * when the multiplication underflows: everything. 31494 314952007-05-21 Vincent Lef��vre <vincent@vinc17.net> 31496 31497 tlgamma.c: I re-enable the generic tests of mpfr_lgamma now, to make 31498 sure that it is fixed before the 2.3.0 release candidate. 31499 31500 tfma.c: added an overflow test (currently fails). 31501 31502 tfma.c: whitespace change. 31503 31504 tfma.c: added tests on special and exact values. 31505 315062007-05-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31507 31508 fixed error analysis in mpfr_lngamma 31509 added mpfr_inp_raw/mpfr_out_raw in TODO 31510 315112007-05-16 Vincent Lef��vre <vincent@vinc17.net> 31512 31513 TODO: fixed mpfr_fms formula to match the one on Itanium and PowerPC. 31514 315152007-05-07 Vincent Lef��vre <vincent@vinc17.net> 31516 31517 algorithms.tex: improved the description of mpfr_remquo. 31518 315192007-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31520 31521 improved description of remainder and remquo 31522 315232007-05-06 Vincent Lef��vre <vincent@vinc17.net> 31524 31525 My latest change was not completely correct... 31526 31527 Updated description of algorithm for mpfr_remainder. 31528 315292007-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31530 31531 added description of algorithm for mpfr_remainder 31532 315332007-05-04 Vincent Lef��vre <vincent@vinc17.net> 31534 31535 remquo.c: suggest to use mpz_powm. 31536 31537 remquo.c: added a comment (idea to compute the remainder much more 31538 efficiently in the case x much larger than y). 31539 315402007-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31541 31542 added assert and ideas for native implementation 31543 31544 put back test (disabled for test) 31545 31546 fixed problem when rem and x are the same variable 31547 315482007-05-04 Vincent Lef��vre <vincent@vinc17.net> 31549 31550 tremquo.c: added a test that leads to a segmentation fault. 31551 31552 tremquo.c: fixed tests (= -> ==). 31553 315542007-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31555 31556 fixed two issues found by Kaveh Ghazi: 31557 * remainder was wrong for |x/y| < 1 31558 * remainder had wrong sign when zero 31559 31560 more details of error analysis 31561 315622007-05-03 Vincent Lef��vre <vincent@vinc17.net> 31563 31564 Updated svn:ignore property. 31565 31566 Updated svn:ignore property. 31567 315682007-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31569 31570 fixed precision for command-line usage 31571 315722007-05-03 Vincent Lef��vre <vincent@vinc17.net> 31573 31574 mpfr.texi: added mpfr_lgamma. 31575 315762007-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31577 31578 added code to use tremquo with command-line arguments (tremquo x y) 31579 315802007-05-02 Vincent Lef��vre <vincent@vinc17.net> 31581 31582 configure.in: improved comment. 31583 31584 configure.in: added a comment on the AC_ARG_ENABLE(decimal-float...) 31585 part. The addition of this code was the cause of the test_CFLAGS problem 31586 (see r4425 log), but this code is still wrong. 31587 315882007-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31589 31590 modified test (2147483648 is not representable as 32-bit long in C90) 31591 315922007-05-02 Vincent Lef��vre <vincent@vinc17.net> 31593 31594 Removed unused variables. 31595 31596 get_str.c: 31597 * Removed useless prototype declaration (function no longer defined). 31598 * Fixed initializer. 31599 31600 configure.in: moved the definition of test_CFLAGS upward (it was 31601 always set to "set", either because of things added to configure.in 31602 or because of new autoconf). 31603 31604 mpfr.h: added mpfr_lgamma prototype. 31605 316062007-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31607 31608 argument quo of remquo is now a pointer to long instead of int 31609 added new functions in NEWS 31610 31611 changed order of arguments: now mpfr_remquo (r, q, x, y, rnd). 31612 316132007-05-02 Vincent Lef��vre <vincent@vinc17.net> 31614 31615 remquo.c: fixed variable name for MPFR_LOG_FUNC. 31616 316172007-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31618 31619 added mpfr_remquo and mpfr_remainder 31620 316212007-04-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31622 31623 fixed error analysis (error was over-estimated) 31624 316252007-04-26 Vincent Lef��vre <vincent@vinc17.net> 31626 31627 lngamma.c: a bit more details in the error analysis for z0 < 1. 31628 31629 lngamma.c: a bit more details in the error analysis for z0 < 1. 31630 316312007-04-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31632 31633 u was used for two different meanings in the error analysis for z0 < 1 31634 316352007-04-25 Vincent Lef��vre <vincent@vinc17.net> 31636 31637 Updated svn:ignore property. 31638 31639 Added preliminary support for mpfr_lngamma and tests. 31640 TODO: add support for negative numbers with small exponent. 31641 Re-enable the generic tests when this is done. 31642 31643 lngamma.c: There was an assertion failed, probably because the error 31644 was too large; fixed that by restarting with a larger precision. 31645 31646 lngamma.c: fixed -2k-1 <= x <= -2k test. 31647 31648 tests/tlngamma.c: added a test showing a bug in lngamma (due to the 31649 use of mpfr_get_si even when the number doesn't fit in a long). 31650 316512007-04-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31652 31653 fixed bug for negative even index in mpfr_jn (wrong sign) 31654 316552007-04-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31656 31657 added warning 31658 31659 added Bit Twiddling Hacks 31660 316612007-04-05 Vincent Lef��vre <vincent@vinc17.net> 31662 31663 MPFR manual: added a brief description of mpfr_t (this may be needed 31664 to write correct code) and mpfr_ptr (used by mpfr_sum). 31665 316662007-04-02 Vincent Lef��vre <vincent@vinc17.net> 31667 31668 Changed mpfr_{jn,yn}_si (mpfr_t res, mpfr_t x, long n, ...) into 31669 mpfr_{jn,yn} (mpfr_t res, long n, mpfr_t x, ...), as discussed by 31670 mail; fixed a typo in mpfr.texi in mpfr_{y0,y1,yn} description. 31671 316722007-03-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31673 31674 added url of GSL manual 31675 31676 fixed misunderstanding about definition of Bessel functions 31677 31678 removed Bessel functions J_n and Y_n 31679 31680 added Bessel functions of second kind (y0, y1, yn_si) 31681 31682 now test_generic calls respectively j0 and j1, not zeta! 31683 316842007-03-30 Vincent Lef��vre <vincent@vinc17.net> 31685 31686 mpfr.texi: INF -> Inf for consistency. 31687 31688 mpfr.texi: PI -> Pi for consistency. 31689 316902007-03-29 Vincent Lef��vre <vincent@vinc17.net> 31691 31692 mpfr.texi: -0 -> @minus{}0. 31693 31694 mpfr.texi: fixed bug introduced in rev 4377, which made TeX fail. 31695 31696 Added tj0, tj1 and tjn to svn:ignore property of "tests" directory. 31697 316982007-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31699 31700 mpfr_jn -> mpfr_jn_si 31701 317022007-03-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31703 31704 now check underflow for large n in mpfr_jn_si 31705 added more tests 31706 31707 added more tests (large values of n) 31708 31709 fixed another stupid bug 31710 31711 mpfr_jn -> mpfr_jn_si, with 'int' argument changed to 'long' 31712 fixed bug in mpfr_jn_si (forgot to increase working precision) 31713 317142007-03-23 Vincent Lef��vre <vincent@vinc17.net> 31715 31716 README.dev: added a warning about the meaning of the output "inexact" 31717 value in the function logging code. 31718 31719 Added log support for mpfr_add and mpfr_sub. 31720 317212007-03-23 Laurent Fousse <laurent@komite.net> 31722 31723 Correction: added missing $b_n$. 31724 317252007-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31726 31727 added Bessel functions of first kind: j0, j1, jn 31728 317292007-03-19 Vincent Lef��vre <vincent@vinc17.net> 31730 31731 MPFR manual: improved description of mpfr_get_str. 31732 317332007-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31734 31735 fixed typos in comments 31736 317372007-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31738 31739 documented restriction to n in mpfr_get_str 31740 317412007-03-13 Vincent Lef��vre <vincent@vinc17.net> 31742 31743 Updated INSTALL based on AIX/PowerPC tests and results from Julie Kurpa 31744 and information on <http://www.ess.uci.edu/esmf/FAQ.html#gcc-errors>. 31745 317462007-03-03 Vincent Lef��vre <vincent@vinc17.net> 31747 31748 README.dev: updated "To make a release" section. 31749 317502007-03-02 Vincent Lef��vre <vincent@vinc17.net> 31751 31752 Made modified paragraph on mpfr_get_str more correct from a logical 31753 point of view. 31754 317552007-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31756 31757 modified paragraph on mpfr_get_str (size of allocated string) 31758 317592007-02-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31760 31761 added tentative implementation of fmod 31762 317632007-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31764 31765 added suggestion about remquo 31766 317672007-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31768 31769 added comment 31770 31771 added C99 rationale for remquo 31772 31773 fixed error in generic error for the logarithm, and propagated new bound 31774 in algorithms.tex and source files 31775 317762007-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31777 31778 added new item 31779 317802007-02-15 Vincent Lef��vre <vincent@vinc17.net> 31781 31782 Added update-patchv script to update some files before a patch is built 31783 (script from 2.2 branch). 31784 317852007-02-14 Vincent Lef��vre <vincent@vinc17.net> 31786 31787 mpfr.texi: updated paragraph on the underflow before/after rounding. 31788 317892007-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31790 31791 added reference 31792 317932007-02-12 Vincent Lef��vre <vincent@vinc17.net> 31794 31795 mpfr.texi: added Exceptions section. 31796 31797 mpfr.texi: updated month. 31798 31799 Note that the mpfr.info file is now installed in the share subdirectory. 31800 318012007-02-10 Vincent Lef��vre <vincent@vinc17.net> 31802 31803 tests/tpow.c: removed comment since there are other <limits.h> macros 31804 in the file (and this is an old bug: the first one was introduced in 31805 rev 2783). 31806 318072007-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31808 31809 added missing include 31810 318112007-02-09 Vincent Lef��vre <vincent@vinc17.net> 31812 31813 Fixed an integer overflow in pow_si.c (detected with -ftrapv) and 31814 added a corresponding testcase in tests/tpow.c. 31815 31816 pow_si.c: another comment about the overflow detection. 31817 31818 pow_si.c: added the proof of overflow checking. 31819 31820 mpfr-impl.h: added a comment about the exponent limits for MPFR numbers. 31821 318222007-02-08 Vincent Lef��vre <vincent@vinc17.net> 31823 31824 Reimplemented mpfr_set_si_2exp and mpfr_set_ui_2exp, and mpfr_set_si 31825 and mpfr_set_ui using the 2exp versions with e = 0. This fixes a bug 31826 in corner cases (emin >= 4 and some other constraints) in mpfr_set_si 31827 and mpfr_set_ui that incorrectly lead to an underflow flag set, and 31828 fixes mpfr_set_si_2exp and mpfr_set_ui_2exp in case of overflow or 31829 underflow (replacing the r4346 fix). Added corresponding testcases. 31830 318312007-02-07 Vincent Lef��vre <vincent@vinc17.net> 31832 31833 Added "Contributed by the Arenaire and Cacao projects, INRIA." to the 31834 copyright notices and removed a few old things. 31835 318362007-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31837 31838 added missing macro (thanks to Izhar Wallach <izharw@keddem.com>) 31839 318402007-01-20 Vincent Lef��vre <vincent@vinc17.net> 31841 31842 Fixed mpfr_set_si_2exp in case of overflow or underflow. 31843 318442007-01-19 Vincent Lef��vre <vincent@vinc17.net> 31845 31846 pow_si.c: fixed the overflow detection for x power of 2 and n negative. 31847 31848 tests/tget_f.c: fixed a test that had an integer overflow (detected 31849 with -ftrapv). 31850 31851 pow_si.c: Before fixing the bug corresponding to the testcase added in 31852 rev 4342, let's fix another one that can be detected with -ftrapv when 31853 n = LONG_MIN (since -n is not representable in this case). 31854 With wrapping, we always got the correct result because mp_exp_t is 31855 currently at most a long *and* because of side effects! 31856 31857 tests/tpow.c: added a test which fails (undetected integer overflow). 31858 31859 tests/tpow.c: new test was wrong; fixed. 31860 31861 tests/tpow.c: corrected tests and added another test. 31862 31863 tests/tpow.c: added tests. 31864 31865 pow_si.c: added an assertion. 31866 318672007-01-18 Vincent Lef��vre <vincent@vinc17.net> 31868 31869 TODO: merged both requests for mpfr_sinh_cosh. 31870 318712007-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31872 31873 added documentation for mpfr_dim (was missing) 31874 31875 added item 31876 318772007-01-17 Vincent Lef��vre <vincent@vinc17.net> 31878 31879 Replaced some computations using the type double by computations using 31880 MPFR, for mpfr_get_str, allowing it to work with an x86 processor set 31881 up in single-precision mode. 31882 318832007-01-16 Vincent Lef��vre <vincent@vinc17.net> 31884 31885 Updated comment concerning LONG_MIN / 1. 31886 318872007-01-15 Vincent Lef��vre <vincent@vinc17.net> 31888 31889 README.dev: updated "To make a release" section. 31890 318912007-01-10 Vincent Lef��vre <vincent@vinc17.net> 31892 31893 Removed mpzroot.c and rootrem.c from the repository. 31894 31895 Removed log_b2.h (has never been used) from the repository and from 31896 libmpfr_la_SOURCES in Makefile.am. 31897 31898 FAQ.html: Added details to MPF-related Q&A's. 31899 31900 Copyright notice update: added 2007. 31901 31902 * tests/tests.c: under Linux/x86, the FPU precision can be set before 31903 doing the tests (see MPFR_FPU_PREC), so that MPFR can be tested under 31904 various FP environments (2 tests currently fail with _FPU_SINGLE). 31905 * README.dev: updated "To make a release" section. 31906 * BUGS: mentioned the above bug. 31907 319082007-01-08 Vincent Lef��vre <vincent@vinc17.net> 31909 31910 mpfr.texi -> January 2007. 31911 319122007-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31913 31914 added support from LIP, and different INRIA project-teams 31915 319162007-01-03 Vincent Lef��vre <vincent@vinc17.net> 31917 31918 Minor change. 31919 319202006-12-29 Vincent Lef��vre <vincent@vinc17.net> 31921 31922 TODO: macros/functions to get/set the sign of a MPFR number. 31923 319242006-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31925 31926 remove new rootrem implementation (unclear copyright status) 31927 319282006-12-19 Vincent Lef��vre <vincent@vinc17.net> 31929 31930 Replaced mpfr_mul_2exp and mpfr_div_2exp by mpfr_mul_2ui and 31931 mpfr_div_2ui respectively (when this makes sense, of course). 31932 319332006-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31934 31935 mpfr_div_2exp -> mpfr_div_2ui 31936 31937 improved efficiency of zeta_ui(s) for 3^(-s) < 1/2*ulp(1) 31938 319392006-12-18 Vincent Lef��vre <vincent@vinc17.net> 31940 31941 mpfr.texi: update concerning MPFR_USE_EXTENSION. 31942 319432006-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31944 31945 added copyright header 31946 31947 added item 31948 319492006-12-15 Vincent Lef��vre <vincent@vinc17.net> 31950 31951 Implemented MPFR_USE_EXTENSION support. 31952 319532006-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31954 31955 improved efficiency for zeta(m) in precision p when m is large 31956 but still smaller than p, for example m=1024 and p=2048 gives a 31957 speedup of about 23 (thanks to Jim White for reporting the problem) 31958 319592006-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31960 31961 added MPFR_ZIV_INIT stuff 31962 319632006-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31964 31965 fixed typo 31966 319672006-12-05 Vincent Lef��vre <vincent@vinc17.net> 31968 31969 TODO: to be added: MPFR_USE_EXTENSION macro. 31970 319712006-11-29 Vincent Lef��vre <vincent@vinc17.net> 31972 31973 README.dev: update. 31974 31975 INSTALL: update of the "Notes on Windows 32" section. 31976 319772006-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31978 31979 added comment about last change 31980 31981 fixed warning on 64-bit machines 31982 319832006-11-26 Vincent Lef��vre <vincent@vinc17.net> 31984 31985 tests/tpow.c: added worst cases. 31986 31987 tests/troot.c: two more worst cases. 31988 319892006-11-25 Vincent Lef��vre <vincent@vinc17.net> 31990 31991 tests/troot.c: added a worst case. 31992 31993 BUGS: removed obsolete "compiler bugs" section. 31994 319952006-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31996 31997 added worst case 31998 319992006-11-25 Vincent Lef��vre <vincent@vinc17.net> 32000 32001 Partially rewrote the INSTALL file. 32002 320032006-11-24 Vincent Lef��vre <vincent@vinc17.net> 32004 32005 Makefile.am: fixed libtool's -version-info flag (and comment). 32006 32007 configure.in: check for gmp.h a bit earlier. 32008 320092006-11-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32010 32011 added --with-tests-timeout=60 for nightly tests 32012 32013 test timeout is now a configure option (e.g. --with-tests-timeout=60) 32014 32015 replaced set_d by set_str_binary (more portable) 32016 320172006-11-23 Vincent Lef��vre <vincent@vinc17.net> 32018 32019 INSTALL: several additions. 32020 320212006-11-22 Vincent Lef��vre <vincent@vinc17.net> 32022 32023 INSTALL: small update. 32024 32025 FAQ update (added a CSS counter). 32026 32027 update-faq: added a workaround for the libxslt bug 377440. 32028 32029 TODO: update concerning the patches information. 32030 320312006-11-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32032 32033 set GMP_CHECK_RANDOMIZE to get random tests 32034 320352006-11-21 Vincent Lef��vre <vincent@vinc17.net> 32036 32037 Updated README file. 32038 320392006-11-20 Vincent Lef��vre <vincent@vinc17.net> 32040 32041 README.dev: mention the version suffix. 32042 32043 Updated version to 2.3.0-dev. 32044 32045 Added version suffix support (useful for dev and rc versions). 32046 32047 Rewrote nightly-test in sh and fixed a security hole. 32048 320492006-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32050 32051 added cpu time limit of 60 seconds in tests 32052 320532006-11-20 Vincent Lef��vre <vincent@vinc17.net> 32054 32055 TODO: update. 32056 320572006-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32058 32059 added an argument to give the branch (use trunk or branches/2.2 for example) 32060 320612006-11-20 Vincent Lef��vre <vincent@vinc17.net> 32062 32063 tests/tgamma.c: restore emin and emax to their default values. 32064 320652006-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32066 32067 fixed bug in overflow test 32068 32069 fixed bug in mpfr_gamma for exact result 32070 32071 added two configure options 32072 32073 simplified test :-) 32074 320752006-11-20 Vincent Lef��vre <vincent@vinc17.net> 32076 32077 configure.in: unset GMP_CFLAGS and GMP_CC in case the user has set such 32078 environment variables for another use. 32079 32080 tests/texp2.c: fixed a problem with a value that is not necessarily 32081 representable (on platforms without long long). 32082 32083 BUGS: removed item on mpfr_eint (now fixed). 32084 32085 Untabify. 32086 320872006-11-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32088 32089 replaced double by mpfr_t (problem on 64-bit machines) 32090 32091 added more tests 32092 32093 script for nightly tests 32094 32095 fixed bug in pow (isodd -> assertion failed) 32096 fixed problem in erfc for large input 32097 reduced tests that took too much time 32098 320992006-11-19 Vincent Lef��vre <vincent@vinc17.net> 32100 32101 mpfr.texi: updated description of mpfr_eint, as the whole input domain 32102 is now supported. 32103 32104 Untabify. 32105 32106 mpfr-impl.h: added a comment about MPFR_WARNING. 32107 321082006-11-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32109 32110 fixed bug in erfc (forgot to compare result of cmp_si) 32111 fixed infinite loop in eint (test for use of asympt was not tight enough) 32112 32113 added asymptotic expansion for mpfr_eint (don't need MPFR_WARNING any more) 32114 321152006-11-18 Vincent Lef��vre <vincent@vinc17.net> 32116 32117 Added a mpfr_erfc test that shows a bug and updated BUGS file. 32118 321192006-11-17 Vincent Lef��vre <vincent@vinc17.net> 32120 32121 configure.in: Added a comment concerning GMP version checking. 32122 32123 configure.in: Before testing GMP header and library versions, set 32124 LD_RUN_PATH locally if a --with-gmp* option is used, so that the 32125 right version of the GMP library is used. There is no need to do 32126 something similar for "make check" as libtool does the job. 32127 32128 Updated mpfr_erfc documentation (now supported in whole domain). 32129 32130 BUGS: removed mpfr_pow_z bug. 32131 321322006-11-17 Vincent Lef��vre <vincent@vinc17.net> 32133 32134 Merged the new generic tests. 32135 32136 [Added during the Subversion to Git conversion] 32137 A merge commit could not be generated for Git. 32138 Branch in Git: refs/deleted/r4290/heads/new-generic-tests 32139 321402006-11-17 Vincent Lef��vre <vincent@vinc17.net> 32141 32142 Partially fixed a bug in mpfr_pow_si (overflow/underflow detection for 32143 n < 0). 32144 32145 tests/tpow_z.c: various corrections. 32146 32147 Partially fixed another bug in mpfr_pow_z (overflow/underflow detection 32148 for z < 0) and added corresponding testcases. 32149 32150 Fixed a bug in mpfr_pow_z concerning the underflow flag and added the 32151 corresponding testcase (but the case z < 0 is still buggy concerning 32152 the flags). 32153 321542006-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32155 32156 implemented asymptotic formula for erfc (fixed both slowness for large 32157 arguments, and call to MPFR_WARNING with return value NaN for huge arguments) 32158 32159 added new test 32160 321612006-11-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32162 32163 fixed problem for large negative input 32164 321652006-11-14 Vincent Lef��vre <vincent@vinc17.net> 32166 32167 TODO: slight change in the proposed mpfr_lgamma prototype (arg order). 32168 321692006-11-13 Vincent Lef��vre <vincent@vinc17.net> 32170 32171 About mpfr_lngamma/mpfr_lgamma: added mpfr_lgamma to TODO and updated 32172 mpfr_lngamma description in mpfr.texi. 32173 32174 BUGS: update. 32175 32176 tests/terf.c: added a test that yields a segfault (execute "terf 1"). 32177 321782006-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32179 32180 moved the [gs]et_decimal64 functions after the [gs]et_ld functions 32181 321822006-11-10 Vincent Lef��vre <vincent@vinc17.net> 32183 32184 mpfr.texi: changed @code{--enable-decimal-float} into @samp{...} 32185 for consistency with the other configure options. 32186 32187 mpfr.texi: updated the note concerning mpfr_eint and mpfr_erfc. 32188 321892006-11-10 Vincent Lef��vre <vincent@vinc17.net> 32190 32191 Added warnings support. 32192 * configure.in: added --enable-warnings configure option. 32193 * mpfr-impl.h: defined MPFR_WARNING(W) macro. 32194 * eint.c, erfc.c: use MPFR_WARNING instead of fprintf. 32195 * tests/Makefile.am (new-generic-tests branch): run the tests with 32196 MPFR_QUIET=1 to avoid output of useless warnings, as some tests 32197 (with large arguments) can generate such warnings, which are all 32198 expected. 32199 32200 [[Split portion of a mixed commit.]] 32201 322022006-11-10 Vincent Lef��vre <vincent@vinc17.net> 32203 32204 Added tget_set_d64 to svn:ignore property of "tests" directory. 32205 32206 TODO: "add a configure test for --enable-logging..." 32207 32208 More information for --enable-logging configure option. 32209 32210 Fixed test of logging support. 32211 32212 Removed --with-irix64 configure option and "case $OS_TYPE" code from 32213 configure.in; see 32214 https://sympa.inria.fr/sympa/arc/mpfr/2006-11/msg00009.html 32215 for the reasons. 32216 322172006-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32218 32219 added more checks with native format 32220 32221 added detection of decimal format in configure (DPD or BID) 32222 322232006-11-09 Vincent Lef��vre <vincent@vinc17.net> 32224 32225 strtofr.c: removed a useless cast (ISO C99 standard 6.2.5#3) and updated 32226 a comment as isdigit is no longer used. 32227 32228 strtofr.c fix: no longer use isdigit, as MPFR requires non-localized 32229 digits. 32230 322312006-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32232 32233 modified to work on 64-bit machines too 32234 322352006-11-09 Vincent Lef��vre <vincent@vinc17.net> 32236 32237 get_d64.c: fixed problems related to signed/unsigned values. 32238 32239 strtofr.c: fixed a bug that could occur on platforms with signed chars, 32240 when the user provides a string with negative characters (e.g. accented 32241 characters, in practice). 32242 322432006-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32244 32245 complete rewrite of mpfr_set_decimal64 and mpfr_get_decimal64: now use 32246 internal string <-> _Decimal64 conversion functions, which perform native 32247 conversion from/to BID or DPD 32248 322492006-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32250 32251 added mpfr_set_decimal64 and mpfr_get_decimal64 32252 322532006-11-08 Vincent Lef��vre <vincent@vinc17.net> 32254 32255 mpfr-impl.h: fixed a compile error if _Decimal64 is unknown. 32256 322572006-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32258 32259 added new configure option --enable-decimal-float to build mpfr_set_decimal64 32260 and mpfr_get_decimal64 (checks _Decimal64, and _GMP_IEEE_FLOATS is defined) 32261 322622006-11-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32263 32264 added --enable-decimal-float in configure, and corresponding macro 32265 WANT_DECIMAL_FLOATS 32266 322672006-11-07 Vincent Lef��vre <vincent@vinc17.net> 32268 32269 tests/tversion.c: improved error message and added gmp.h/libgmp test. 32270 32271 Fixed a small bug in tests/tversion.c (should never occur anyway). 32272 322732006-11-06 Vincent Lef��vre <vincent@vinc17.net> 32274 32275 logging.c: clean-up. 32276 322772006-11-05 Vincent Lef��vre <vincent@vinc17.net> 32278 32279 README.dev: updated things to do before a release. 32280 322812006-11-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32282 32283 added new (preliminary) conversions functions to/from decimal64 32284 32285 changed header file: stdlib.h -> stdio.h 32286 322872006-11-03 Vincent Lef��vre <vincent@vinc17.net> 32288 32289 Fixed a bug related to signed/unsigned types. 32290 32291 tgamma.c: avoid useless mpfr_get_d. 32292 32293 tpow.c: replaced a mpfr_cmp_d by a mpfr_cmp_str1. 32294 32295 lngamma.c: added a comment. 32296 32297 tlngamma.c: avoid useless mpfr_get_d. 32298 322992006-10-27 Vincent Lef��vre <vincent@vinc17.net> 32300 32301 eint.c: better overflow checking; fix: all allocated memory now freed. 32302 32303 eint.c: forgot 2 mpfr_clear's. 32304 32305 eint.c fix: and changed the #if into if. 32306 32307 eint.c fix: replaced BITS_PER_MP_LIMB by sizeof(mp_exp_t) * CHAR_BIT. 32308 32309 The current implementation of mpfr_erfc cannot compute the result for 32310 large inputs. Return NaN with the erange flag set instead of aborting. 32311 Documented this behavior in mpfr.texi. 32312 323132006-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32314 32315 improved bound for x with BITS_PER_MP_LIMB=32 32316 added bound for BITS_PER_MP_LIMB=64 32317 323182006-10-27 Vincent Lef��vre <vincent@vinc17.net> 32319 32320 The current implementation of mpfr_eint cannot compute the result for 32321 large inputs. Return NaN with the erange flag set instead of aborting. 32322 Documented this behavior in mpfr.texi. 32323 32324 tzeta.c patch 4166 should have been committed to the trunk. Fixing... 32325 323262006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32327 32328 added tests for overflows or underflows 32329 323302006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32331 32332 fixed problem for large negative s (return +Inf or -Inf) 32333 32334 [[Split portion of a mixed commit.]] 32335 323362006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32337 32338 fixed dummy error in last commit 32339 323402006-10-26 Vincent Lef��vre <vincent@vinc17.net> 32341 32342 In latest change, replaced exit(1) by abort(). 32343 323442006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32345 32346 added test for eint() 32347 added error message when input is too large in eint(), waiting for asymptotic 32348 expansion 32349 323502006-10-26 Vincent Lef��vre <vincent@vinc17.net> 32351 32352 Untabified and added a FIXME. 32353 323542006-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32355 32356 fixed overflow/underflow problems in csch and sech 32357 fixed problem for huge argument in coth 32358 323592006-10-25 Vincent Lef��vre <vincent@vinc17.net> 32360 32361 FAQ-related updates: 32362 * faq.xsl: Include styles from http://www.mpfr.org/styles/visual.css 32363 by using a system entity (but GNOME libxslt bug 345147 is still 32364 present in Debian, so don't use /*<![CDATA[*/ and /*]]>*/ yet). 32365 * update-faq: add /*<![CDATA[*/ and /*]]>*/ after calling xsltproc. 32366 * FAQ.html: update from the MPFR web site: various changes, including: 32367 + added id attributes on dt elements (FAQ items) to allow anchors; 32368 + updated FAQ for undefined references. 32369 32370 INSTALL: mention the MPFR FAQ. 32371 323722006-10-23 Vincent Lef��vre <vincent@vinc17.net> 32373 32374 Added a comment about a warning (this confused a user). 32375 323762006-10-11 Vincent Lef��vre <vincent@vinc17.net> 32377 32378 TODO: added an item about version information. 32379 323802006-10-05 Vincent Lef��vre <vincent@vinc17.net> 32381 32382 TODO: updated item. 32383 323842006-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32385 32386 added item 32387 323882006-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32389 32390 fixed wrong emax in example for mpfr_subnormalize 32391 323922006-09-07 Vincent Lef��vre <vincent@vinc17.net> 32393 32394 MPFR manual: say that errno may be set to non-zero. 32395 323962006-08-31 Vincent Lef��vre <vincent@vinc17.net> 32397 32398 tests/tests.c: typo. 32399 324002006-08-28 Vincent Lef��vre <vincent@vinc17.net> 32401 32402 Fixed texp2 overflow tests on 64-bit machines. 32403 32404 tests/reuse.c: avoid a warning; code reformatted (GNU style). 32405 324062006-08-23 Vincent Lef��vre <vincent@vinc17.net> 32407 32408 BUGS: minor update. 32409 324102006-08-21 Vincent Lef��vre <vincent@vinc17.net> 32411 32412 BUGS: updated "known bugs" section. 32413 32414 Fixed an exponent/flags-related bug in lngamma.c. 32415 32416 Updated svn:ignore property. 32417 324182006-08-20 Vincent Lef��vre <vincent@vinc17.net> 32419 32420 Fixed several problems in pow.c concerning underflows, overflows and 32421 flags (including the inexact flag, which could be incorrectly set in 32422 case of NaN), and added some testcases. Problems in pow_z.c have not 32423 been fixed yet. 32424 32425 Partial fix: The inexact flag was not always set in some functions. 32426 In particular, it is now set by mpfr_check_range (if t is not zero) 32427 since mpfr_check_range usually comes just after MPFR_SAVE_EXPO_FREE 32428 (which restores the previous flags). 32429 324302006-08-19 Vincent Lef��vre <vincent@vinc17.net> 32431 32432 Added an assertion for mpfr_exp2 and a test. 32433 324342006-08-16 Vincent Lef��vre <vincent@vinc17.net> 32435 32436 Optimized mpfr_expm1 for large (in absolute value) negative values in 32437 order to avoid the TMD (the result is very close to -1). Without this 32438 patch, mpfr_expm1 could take dozens of MBs and the new generic tests 32439 for texpm1 could take several hours instead of less than 1 second. 32440 32441 Fixed a bug in expm1 for very small negative arguments (and perhaps 32442 some very small positive arguments too); this bug is similar to the 32443 one in log1p that was recently found and fixed. It was detected by 32444 the new generic tests (not committed yet), therefore no testcases 32445 are provided. Note: the mpfr_expm1 function is still buggy (freezes 32446 on -0.10E18, prec 2 -> prec 13); this is a different bug. 32447 32448 In mpfr_exp2, the overflow flag was not set if mpfr_exp2 overflowed 32449 with x < emax. Added testcase. 32450 324512006-08-15 Vincent Lef��vre <vincent@vinc17.net> 32452 32453 The latest mpfr_exp2 fix contained a bug. Partially rewrote mpfr_exp2 32454 to fix this bug and another one (and added a corresponding testcase: 32455 exp2(10000000000.5), which was freezing). 32456 32457 Better fix for exp2 exponent range bug. 32458 32459 Fixed bug in mpfr_exp2 when the argument is an integer and emin > 1. 32460 Added a testcase to texp2. 32461 324622006-08-14 Vincent Lef��vre <vincent@vinc17.net> 32463 32464 Added tget_ld_2exp to svn:ignore property of "tests" directory 32465 (should have been done in rev 4028). 32466 32467 Fixed bug in log1p for small negative values of x and added testcase. 32468 32469 Code style correction for ansi2knr. 32470 324712006-07-25 Vincent Lef��vre <vincent@vinc17.net> 32472 32473 INSTALL: more information. 32474 32475 INSTALL: added a note about include/library paths. 32476 324772006-07-21 Vincent Lef��vre <vincent@vinc17.net> 32478 32479 INSTALL: added information about setup after the library installation. 32480 324812006-07-20 Vincent Lef��vre <vincent@vinc17.net> 32482 32483 Improved linker flag settings on darwin. 32484 324852006-07-18 Vincent Lef��vre <vincent@vinc17.net> 32486 32487 configure.in: fixed a linking problem on darwin. 32488 324892006-07-16 Vincent Lef��vre <vincent@vinc17.net> 32490 32491 One needs automake 1.6; autoreconf fails with automake 1.4. Adding 32492 the 1.6 automake option will make the error message less obfuscated, 32493 but unfortunately, one won't have the necessary automake version 32494 automatically called, even if it is installed. 32495 324962006-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32497 32498 added item 32499 32500 fixed wrong comment (thanks Keith Briggs) 32501 32502 new mpn_rootrem is still not in gmp-4.2 32503 325042006-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32505 32506 replaced <= by = 32507 325082006-06-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32509 32510 changed <= into = 32511 32512 comments from Keith Briggs 32513 325142006-06-09 Vincent Lef��vre <vincent@vinc17.net> 32515 32516 algorithms.tex: corrected several English mistakes and typography. 32517 325182006-06-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32519 32520 fixed typo 32521 32522 replaced error() by \error() 32523 325242006-06-09 Vincent Lef��vre <vincent@vinc17.net> 32525 32526 algorithms.tex: another fixed notation for roundings. 32527 325282006-06-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32529 32530 added section on Notations 32531 fixed notations for roundings 32532 325332006-06-09 Vincent Lef��vre <vincent@vinc17.net> 32534 32535 algorithms.tex: changed the page style to plain (for page numbers). 32536 325372006-06-07 Vincent Lef��vre <vincent@vinc17.net> 32538 32539 FAQ update. 32540 325412006-05-29 Vincent Lef��vre <vincent@vinc17.net> 32542 32543 Define HAVE_ATTRIBUTE_MODE if supported; useful for s390, but incomplete 32544 and will fail on platforms with gcc and CHAR_BIT != 8. 32545 325462006-05-19 Vincent Lef��vre <vincent@vinc17.net> 32547 32548 Add compiler flags (CPPFLAGS, LDFLAGS) in a consistent order. 32549 325502006-05-18 Vincent Lef��vre <vincent@vinc17.net> 32551 32552 MPFR manual consistency: Custom interface -> Custom Interface. 32553 325542006-05-17 Vincent Lef��vre <vincent@vinc17.net> 32555 32556 TODO: added a note about the change 4049 in div.c. 32557 325582006-04-18 Vincent Lef��vre <vincent@vinc17.net> 32559 32560 Removed the #ifndef __hpux from mul.c (after a test on a HP-UX machine, 32561 I got no failures, even with the old mpfr-longlong.h). 32562 32563 README.dev: added a point on mpfr-longlong.h in "To make a release". 32564 32565 Updated mpfr-longlong.h from the GMP 4.2 longlong.h file. 32566 32567 mpfr.texi: removed dot from a section title. 32568 325692006-04-11 Vincent Lef��vre <vincent@vinc17.net> 32570 32571 FAQ update. 32572 325732006-04-06 Vincent Lef��vre <vincent@vinc17.net> 32574 32575 div.c: removed the bad use of MPFR_LIMB_ZERO. 32576 32577 In get_f.c, updated the case precy + sh > precx: this one was correct, 32578 but added a comment, assertions and simplified a MPN_ZERO. 32579 325802006-04-05 Vincent Lef��vre <vincent@vinc17.net> 32581 32582 tget_f.c: test that there is no lost of accuracy when converting 32583 a mpfr_t number into a mpf_t number (test with various precisions 32584 and exponents). 32585 32586 The fix of get_f.c was wrong. This should be now OK for the case 32587 precy + sh <= precx. 32588 32589 Fixed bug in mpfr_get_f (reported by Yury Lukach) and added test. 32590 325912006-03-31 Vincent Lef��vre <vincent@vinc17.net> 32592 32593 Updated FDL to version 1.2. 32594 32595 Updated FSF address. 32596 32597 Fixed FSF address. 32598 325992006-03-30 Vincent Lef��vre <vincent@vinc17.net> 32600 32601 Another FAQ update (taking GMP 4.2 into account). 32602 32603 FAQ update. 32604 326052006-03-24 Vincent Lef��vre <vincent@vinc17.net> 32606 32607 Removed all code related to mpn_sub_nc (no longer used). 32608 32609 div.c: fixed a bug and no longer use mpn_sub_nc. 32610 32611 Some clean-up in div.c; do not steal GMP's namespace (could lead to 32612 clashes if future GMP versions define the corresponding macros). 32613 32614 Build shared libraries by default. 32615 326162006-03-23 Vincent Lef��vre <vincent@vinc17.net> 32617 32618 random2.c: minor change suggested by Patrick. 32619 32620 configure.in: typography consistency. 32621 32622 Mention --enable-thread-safe and --enable-shared in the INSTALL file 32623 since users may need them and could be confused otherwise (just seen 32624 that). Untabified the file. 32625 326262006-03-16 Vincent Lef��vre <vincent@vinc17.net> 32627 32628 TODO: new exception "division by zero" / "pole". 32629 32630 README.dev: added "Do not use C99-only features, such as...". 32631 326322006-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32633 32634 replaced 6th empty argument of MPFR_FAST_COMPUTE_IF_SMALL_INPUT by {} 32635 326362006-03-14 Vincent Lef��vre <vincent@vinc17.net> 32637 32638 In random2.c, replaced NULL by 0 (more general) and removed the 32639 now unnecessary #include <stdio.h>. 32640 326412006-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32642 32643 added missing include file 32644 326452006-03-14 Vincent Lef��vre <vincent@vinc17.net> 32646 32647 Tests: added new worst case for x^(3/2). 32648 326492006-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32650 32651 added reference to INRIA report for Zeta 32652 32653 added another reference 32654 32655 added reference 32656 326572006-02-28 Vincent Lef��vre <vincent@vinc17.net> 32658 32659 More details concerning mpfr_eq. 32660 326612006-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32662 32663 removed "but does not make much sense" 32664 32665 added contribution from Damien 32666 32667 new test file for mpfr_get_ld_2exp 32668 326692006-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32670 32671 added mpfr_get_ld_2exp (contributed by Damien Stehle) 32672 326732006-02-20 Vincent Lef��vre <vincent@vinc17.net> 32674 32675 Updated mpfr_random2 user documentation. 32676 32677 Fixed bug in mpfr_random2 when size == 0 and added testcase. 32678 32679 trandom.c: reformat. 32680 32681 trandom.c: use calloc instead of malloc and check return value. 32682 32683 mpfr_random2_raw -> static. 32684 326852006-02-17 Vincent Lef��vre <vincent@vinc17.net> 32686 32687 Added mpfr_remainder to TODO. 32688 326892006-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32690 32691 fixed wrong url 32692 326932006-02-15 Vincent Lef��vre <vincent@vinc17.net> 32694 32695 Fixed various spelling mistakes, typos... in algorithms.tex. 32696 32697 In algorithms.tex, \em -> \emph. 32698 32699 Typography corrections in algorithms.tex. 32700 32701 In algorithms.tex, added a missing blackslash. 32702 32703 In algorithms.tex, removed \date (was incorrectly used) and added the 32704 web site as a footnote. 32705 327062006-02-13 Vincent Lef��vre <vincent@vinc17.net> 32707 32708 Code reformatted. C99 comment replaced by traditional comment. 32709 327102006-02-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 32711 32712 * Added comments on all random number generator functions ; 32713 * Inlined the mpn_random2 code in mpfr_random2, to avoid the use of the 32714 same internal randstate ; added a mpfr_random2_raw (not exported at the 32715 time) to allow specification of a randstate ; 32716 * Checked normalization of the result of random2 in trandom.c 32717 327182006-01-31 Vincent Lef��vre <vincent@vinc17.net> 32719 32720 Changed a part of the documentation of mpfr_get_d_2exp, introduced in 32721 rev 4008, to specify a behavior very similar to the ISO C standard. 32722 327232006-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32724 32725 fixed documentation bug 32726 327272006-01-19 Vincent Lef��vre <vincent@vinc17.net> 32728 32729 Reverted comments on <float.h> (that were added in r3976). 32730 32731 Replaced -0.0 by a new macro DBL_NEG_ZERO. With MSVC, the negative zero 32732 no longer depends on the non-standard _chgsign function, as 32733 static double double_zero = 0.0; 32734 # define DBL_NEG_ZERO (-double_zero) 32735 has been reported to work. 32736 327372006-01-17 Vincent Lef��vre <vincent@vinc17.net> 32738 32739 Added comments. 32740 327412006-01-13 Vincent Lef��vre <vincent@vinc17.net> 32742 32743 Type clean-up. 32744 32745 The problem with the conversion was not completely fixed... Now OK. 32746 32747 Fixed conversion with a non-representable value. 32748 32749 Untabify. 32750 327512006-01-12 Vincent Lef��vre <vincent@vinc17.net> 32752 32753 More reliable tests for mpfr_set_f (x, y, GMP_RNDN) for 32754 y = 2^emax and y = 2^(emax-1). 32755 32756 Use mpfr_get_emax() instead of obsolete __mpfr_emax. 32757 32758 More reliable test for mpfr_set_f (x, y, GMP_RNDN) for y=2^ULONG_MAX. 32759 32760 Untabified. 32761 32762 Fixed a bug related to exponent range. 32763 32764 Replaced obsolete __mpfr_emax by __gmpfr_emax. 32765 327662006-01-11 Vincent Lef��vre <vincent@vinc17.net> 32767 32768 Removed add_one_ulp.c and sub_one_ulp.c (no longer used). 32769 327702006-01-10 Vincent Lef��vre <vincent@vinc17.net> 32771 32772 MPFR manual: changes from Paul concerning the ulps. 32773 32774 In the manual, replaced "exact rounding" by "correct rounding", 32775 and added a sentence on the consequence of correct rounding (as 32776 suggested by Paul). 32777 327782006-01-05 Vincent Lef��vre <vincent@vinc17.net> 32779 32780 Added ', Inc.' when missing after 'Free Software Foundation'. 32781 32782 README.dev: Added a note about copyright notices. 32783 32784 Updated the copyright notices according to the new GNU rules on: 32785 https://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices 32786 i.e. added 2006 to every MPFR file. 32787 Note: the copyright notices (currently 336) should match the regexp 32788 Copyright.* 2006 Free Software 32789 so that it will be easier to update them for the next year... 32790 327912006-01-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32792 32793 added suggestion from K. Briggs 32794 327952006-01-01 Vincent Lef��vre <vincent@vinc17.net> 32796 32797 Updated copyright line (we are now in 2006!). 32798 327992006-01-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32800 32801 use mpfr_overflow 32802 328032005-12-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32804 32805 fixed bug in mpfr_set_f for huge argument 32806 328072005-12-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32808 32809 bug fix in mpfr_get_f 32810 328112005-12-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32812 32813 updated comment for float.h (_chgsign) 32814 32815 fixed bug found by Vincent (worst-case) 32816 32817 patch for Visual C (does not compile -0.0 properly) 32818 32819 patch for Visual C (-0.0) 32820 328212005-12-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32822 32823 fixed typo 32824 328252005-12-16 Vincent Lef��vre <vincent@vinc17.net> 32826 32827 Better definition for mpf_set_prec_raw (so that the value is kept). 32828 328292005-12-08 Vincent Lef��vre <vincent@vinc17.net> 32830 32831 Updated a comment. 32832 32833 Added test cases for a bug introduced on 2005-01-29 in sin.c rev 3248. 32834 32835 README.dev: remember to test MPFR on the worst cases. 32836 328372005-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32838 32839 added lemma + reference 32840 328412005-11-25 Vincent Lef��vre <vincent@vinc17.net> 32842 32843 Removed mpfr_div bug from BUGS (as it has been fixed). 32844 32845 Added consistency tests for mpfr_div (e.g. to test small-size divisors). 32846 328472005-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32848 32849 fixed efficiency bug for small divisor (division had same cost than for 32850 divisor of the same size than the result) 32851 328522005-11-23 Vincent Lef��vre <vincent@vinc17.net> 32853 32854 Updated FAQ. 32855 32856 faq.xsl: add copyright information to the downloaded FAQ. 32857 32858 Added information about the patches to the INSTALL file. 32859 32860 BUGS: Noted the slow division when the precision of the divisor 32861 is small compared to the precision of the target. 32862 328632005-11-21 Vincent Lef��vre <vincent@vinc17.net> 32864 32865 Fixed a bug preventing the compilation of MPFR with GMP 4.1.90 32866 (non-public development version) without the build directory. 32867 32868 Fixed memory leak in mpfr_mpn_rootrem(). 32869 328702005-11-09 Vincent Lef��vre <vincent@vinc17.net> 32871 32872 Added a note about running the trunk tests in a branch. 32873 32874 Make trunk tests work with MPFR 2.2 (branch), by testing the version. 32875 32876 Removed .cvsignore file (useless after the switch to Subversion). 32877 32878 Added a MPFR_UNLIKELY. 32879 32880 In mpfr_round_near_x, use the new MPFR_RNDRAW_GEN with a correct middle 32881 handler instead of MPFR_RNDRAW_EVEN so that the correction of the wrong 32882 rounding is no longer necessary (BTW, the wrong rounding could have lead 32883 to problems in case of intermediate underflow/overflow -- not checked). 32884 32885 mpfr_round_near_x test completed. 32886 32887 Added a test for mpfr_cbrt, from the following failure with MPFR 2.2 32888 and gcc 4.0.2 under Linux/m68k: 32889 Seed GMP_CHECK_RANDOMIZE=1131612275 (include this in bug reports) 32890 results differ for x=1.1000e-2 prec=5 rnd_mode=GMP_RNDN 32891 got 1.1000e-1 32892 expected 1.0111e-1 32893 approx 0.101110001001100E0 32894 FAIL: tcbrt 32895 328962005-11-04 Vincent Lef��vre <vincent@vinc17.net> 32897 32898 Improved note r3493 concerning mpfr_set_d/ld. 32899 32900 More information in the "Reporting Bugs" section. 32901 32902 Added a comment about the macros MPFR_RNDRAW* and the labels. 32903 32904 Moved definitions of struct __gmpfr_cache_s and mpfr_cache_t, and 32905 declarations of mpfr_init_cache, mpfr_clear_cache and mpfr_cache 32906 from mpfr.h to mpfr-impl.h as they are internal (not documented). 32907 329082005-11-03 Vincent Lef��vre <vincent@vinc17.net> 32909 32910 Eliminated the case inex == 0. 32911 32912 Started to write code to test mpfr_round_near_x. 32913 32914 Typos & English usage. 32915 32916 Fixed typos. 32917 329182005-11-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32919 32920 added hint on forbidden variable name 32921 32922 added "tune" item for new releases 32923 32924 done make tune for amd64 with gmp-4.1.4 32925 329262005-11-02 Vincent Lef��vre <vincent@vinc17.net> 32927 32928 Merged the changes from branch vlefevre: 32929 * mpfr-impl.h: Added MPFR_RNDRAW_GEN based on MPFR_RNDRAW and 32930 MPFR_RNDRAW_EVEN codes, but taking an additional argument: a 32931 handler executed in rounding to nearest mode when the value 32932 is the middle of two consecutive numbers in dest precision. 32933 MPFR_RNDRAW and MPFR_RNDRAW_EVEN are now defined by a "call" 32934 to MPFR_RNDRAW_GEN. 32935 * cache.c: Clean-up and use MPFR_RNDRAW_GEN instead of 32936 MPFR_RNDRAW_EVEN to avoid an unnecessary correction in the 32937 halfway case. 32938 * hypot.c: Fixed mpfr_hypot when the rounding mode is to nearest, 32939 x is "much larger" than y, and x is the middle of two consecutive 32940 numbers in the target precision. 32941 * tests/thypot.c: Added the corresponding testcase. 32942 32943 [Added during the Subversion to Git conversion] 32944 A merge commit could not be generated for Git. 32945 Branch in Git: refs/deleted/r3930/heads/vlefevre 32946 329472005-11-02 Vincent Lef��vre <vincent@vinc17.net> 32948 32949 Updated svn:ignore property. 32950 329512005-11-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32952 32953 fixed remaining problems 32954 32955 declared variables as mp_prec_t instead of int 32956 use MPFR_MPZ_SIZEINBASE2 instead of mpz_sizeinbase 32957 329582005-11-02 Vincent Lef��vre <vincent@vinc17.net> 32959 32960 Reverted the latest change to constant.c: removed MPFR_THREAD_ATTR as 32961 these constants can be shared. Removed MPFR_THREAD_ATTR from mpfr-impl.h 32962 too (this should have been the right correction for rev 3838 concerning 32963 the type mismatch). Thanks to Patrick for noticing this. 32964 329652005-10-31 Vincent Lef��vre <vincent@vinc17.net> 32966 32967 Added an MPFR_UNLIKELY (suggested by Patrick) and an MPFR_ASSERTN. 32968 329692005-10-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32970 32971 factored calls to gmp_alloc 32972 removed unused variables 32973 32974 improved atan (now can cut series before 2^m) 32975 revised error analysis and code of tanh 32976 329772005-10-31 Vincent Lef��vre <vincent@vinc17.net> 32978 32979 Reformat (GNU coding style). 32980 32981 Fixed MPFR_INT_CEIL_LOG2 (in mpfr-impl.h) and __gmpfr_int_ceil_log2 32982 (in int_ceil_log2.c) when the argument is a power of 2, and added a 32983 test (new test file tests/tinternals.c). This made a bug appear in 32984 div_ui.c and mul_ui.c; fixed that too. 32985 32986 Added a test that fails after fixing MPFR_INT_CEIL_LOG2. 32987 329882005-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32989 32990 improved exp_3 (binary-splitting algorithm) 32991 329922005-10-30 Vincent Lef��vre <vincent@vinc17.net> 32993 32994 Fixed padding-bit test. 32995 32996 3 corrections in cos.c concerning maxi: 32997 * corrected a comment; 32998 * failed if sizeof(int) <= sizeof(long) / 2; 32999 * now take possible padding bits into account. 33000 330012005-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33002 33003 patched root.c to use rootrem.c with gmp-4.1.90 33004 added comment in exp3.c 33005 added more initial guard bits in agm 33006 33007 now tune Mulders short square (not yet used) 33008 improved mpfr_cos 33009 330102005-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33011 33012 updated code for gmp-dev 33013 330142005-10-26 Vincent Lef��vre <vincent@vinc17.net> 33015 33016 Removed .cvsignore file (useless after the switch to Subversion). 33017 330182005-10-25 Vincent Lef��vre <vincent@vinc17.net> 33019 33020 More portable update-version script (use perl instead of sed). 33021 330222005-10-24 Vincent Lef��vre <vincent@vinc17.net> 33023 33024 First revision after the switch to Subversion: 33025 * Removed fixperm as it is now useless. 33026 * Updated README and README.dev files. 33027 33028 Update. 33029 330302005-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33031 33032 documented algorithm used in mpfr_agm and fixed code accordingly 33033 330342005-10-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33035 33036 added efficiency item 33037 33038 now mpzroot/rootrem compile without gmp internal headers 33039 330402005-10-07 Vincent Lef��vre <vincent@vinc17.net> 33041 33042 Disabled new rootrem/mpz_root as compilation fails (headers can't 33043 be found). 33044 33045 Temporary optimization (patch from Patrick Pelissier). 33046 330472005-10-06 Vincent Lef��vre <vincent@vinc17.net> 33048 33049 One of the tests was using the fabs function, but -lm isn't given when 33050 generating the executable, making the linking fail under HP-UX. Fixed 33051 by not using this fabs function. 33052 330532005-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33054 33055 small improvement in sign detection 33056 33057 improved mpfr_root, using the new mpn_rootrem code written with Torbjo"rn 33058 330592005-09-29 Vincent Lef��vre <vincent@vinc17.net> 33060 33061 Update. 33062 33063 Fixed bug in mpfr_set_ui macro when parameters are expressions 33064 with side effects. 33065 330662005-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33067 33068 fixed missing accent 33069 330702005-09-28 Vincent Lef��vre <vincent@vinc17.net> 33071 33072 Small optimization. 33073 33074 Test the sign of 0. 33075 330762005-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33077 33078 fixed infinite loop for lngamma(2) 33079 330802005-09-28 Vincent Lef��vre <vincent@vinc17.net> 33081 33082 Updated libmpfr_la_LDFLAGS (note: it shouldn't be incremented again 33083 before the 2.3.0 release). 33084 330852005-09-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33086 33087 new function: Zeta with integer argument 33088 330892005-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33090 33091 new function mpfr_zeta_ui for integer argument 33092 330932005-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33094 33095 added brief description of algorithm for mpfr_zeta 33096 330972005-09-18 Vincent Lef��vre <vincent@vinc17.net> 33098 33099 Mentioned problems with the Tru64 make and other minor changes. 33100 331012005-09-17 Vincent Lef��vre <vincent@vinc17.net> 33102 33103 Fixed the GMP linking test: replaced __gmp_version, which corresponds 33104 to a variable, by __gmpz_init (suggested by the GMP documentation), 33105 which corresponds to a function, as the auto tools assume the symbol 33106 corresponds to a function. It was failing with the AIX linker. 33107 331082005-09-16 Vincent Lef��vre <vincent@vinc17.net> 33109 33110 Untabify. 33111 33112 Update. 33113 33114 Untabify. 33115 331162005-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33117 33118 added missing documentation for mpfr_get_f and mpfr_pow_z 33119 331202005-09-16 Vincent Lef��vre <vincent@vinc17.net> 33121 33122 Fixed typos found by Tomonori Kouya. 33123 331242005-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33125 33126 fixed stupid bug (coth was computing 1/tan instead of 1/tanh) 33127 331282005-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33129 33130 fixed overflow problem for large precision 33131 33132 added log(precz) in initial precision 33133 331342005-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33135 33136 fixed bug in exp(-eps) for rounding toward zero (test was also wrong...) 33137 331382005-09-13 Vincent Lef��vre <vincent@vinc17.net> 33139 33140 Updated "To make a release". 33141 33142 Minor update. 33143 33144 Added missing MPFR_THREAD_ATTR. 33145 331462005-09-11 Vincent Lef��vre <vincent@vinc17.net> 33147 33148 Avoid a conflict with GMP. 33149 33150 Reverted to previous mparam_h.in and mul.c, and applied Patrick's 33151 patch instead. 33152 33153 Update. 33154 33155 Added #include <string.h> for memmove (see ISO C99 standard). 33156 33157 Minor change. 33158 33159 Fixed uninitialized variable (with gcc -std=c99). 33160 33161 Fixed a #ifdef (when --enable-assert isn't used). 33162 33163 Update. 33164 33165 Changed the MPFR_ASSERTD into a MPFR_ASSERTN for MPFR_INT_CEIL_LOG2 33166 since the assertion cannot be guaranteed for every C implementation. 33167 331682005-09-10 Patrick P��lissier <patrick.pelissier@gmail.com> 33169 33170 Fix spelling mistake. 33171 33172 Add new note about MPFR_TMP_DECL 33173 331742005-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33175 33176 reduced default of MPFR_MUL_THRESHOLD by 1, since now MPFR_MUL_THRESHOLD+1 33177 is considered in mul.c 33178 331792005-09-09 Vincent Lef��vre <vincent@vinc17.net> 33180 33181 Fixed another LaTeX error. 33182 33183 Update. 33184 33185 Updated "To make a release". 33186 33187 Use (mpz_t *) 0 instead of NULL (this is not less clear and this 33188 works with the native SunOS 4 C compiler). 33189 331902005-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33191 33192 avoid . in mpf_set_str (locale-sensitive) 33193 33194 cleanup of gamma and lngamma 33195 331962005-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33197 33198 MUL_THRESHOLD -> MUL_THRESHOLD+1 (to allow MUL_THRESHOLD=0, needed for 33199 tuneup.c) 33200 33201 fixed LaTeX error 33202 332032005-09-08 Vincent Lef��vre <vincent@vinc17.net> 33204 33205 Fix. 33206 33207 Update. 33208 33209 Added fixperm script to fix the file permissions broken by CVS. 33210 33211 Update. 33212 332132005-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33214 33215 added one item 33216 332172005-09-08 Vincent Lef��vre <vincent@vinc17.net> 33218 33219 Update. 33220 33221 Fix: readded dependencies. 33222 332232005-09-06 Vincent Lef��vre <vincent@vinc17.net> 33224 33225 More detailed error message. 33226 33227 Change for ansi2knr. 33228 33229 Code clean-up (again). 33230 33231 Use GMP's allocate functions instead of C's. Code clean-up. 33232 33233 Reformat. 33234 332352005-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33236 33237 missing set_emin 33238 33239 added missing call to MPFR_TEST_USE_RANDS() [3 blocks non-freed] 33240 332412005-09-06 Vincent Lef��vre <vincent@vinc17.net> 33242 33243 Fixed a bug (detected after mpfr_set_str_binary has been fixed) 33244 in tests/tsub.c introduced in 1.6 (2001-10-19). 33245 33246 mpfr_set_str_binary was buggy and inefficient. Let's use mpfr_strtofr. 33247 33248 Replaced unsigned long bit-fields (GCC extension) by insigned int 33249 bit-fields. 33250 332512005-09-05 Vincent Lef��vre <vincent@vinc17.net> 33252 33253 MPN_COPY now calls memcpy only if dst != src (otherwise this is an 33254 undefined behavior), and if WANT_ASSERT is defined, it checks that 33255 there is no overlap. 33256 332572005-09-02 Vincent Lef��vre <vincent@vinc17.net> 33258 33259 Avoid MIPSpro / IRIX64 (incorrect) optimizations for DOUBLE_ISNAN. 33260 33261 More portable DOUBLE_ISNAN (useful for MIPSpro under IRIX64). 33262 332632005-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33264 33265 improved trade-off between fac_ui and gamma when argument is integer 33266 332672005-09-02 Vincent Lef��vre <vincent@vinc17.net> 33268 33269 Reformat. 33270 332712005-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33272 33273 fixed remaining problem in gamma 33274 removed LogGamma from TODO 33275 332762005-09-02 Vincent Lef��vre <vincent@vinc17.net> 33277 33278 Do not put expressions with side effects in MPFR_ASSERTN. 33279 332802005-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33281 33282 now uses lngamma code for x < 1 too 33283 added new tests from Kenneth Wilder 33284 33285 added another test 33286 33287 removed useless prototype 33288 332892005-08-31 Vincent Lef��vre <vincent@vinc17.net> 33290 33291 Fixed memory leak (missing MPFR_TMP_FREE in a particular case). 33292 33293 Fixed the code formatting. 33294 33295 Updated Point 6 of "To make a release". 33296 33297 Fixed memory leak (missing MPFR_TMP_FREE in a particular case). 33298 332992005-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33300 33301 added lngamma 33302 33303 added new test (emax) 33304 33305 now random tests also use x >= 1 33306 33307 added SAVE_EXPO stuff 33308 33309 new function lngamma 33310 33311 now uses lngamma code for x > 1 33312 33313 added lngamma 33314 333152005-08-31 Vincent Lef��vre <vincent@vinc17.net> 33316 33317 Updated version to 2.3.0. 33318 33319 Fix for the following problem: #error is not sufficient with cc 33320 on IRIX64, and autoconf 2.59 doesn't cope with that. 33321 333222005-08-30 Vincent Lef��vre <vincent@vinc17.net> 33323 33324 Added .cvsignore files. 33325 33326 Unobfuscated 2 assertions. 33327 33328 Fixed indentation and some comments. 33329 33330 Recommitted the patch (without discarding previous modifications). 33331 33332 Reverted to the previous version, as the patch discarded previous 33333 modifications. 33334 333352005-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33336 33337 added two new tests 33338 33339 patch from Patrick to solve efficiency problem when one operand is sparse 33340 (e.g. from ui_pow_ui) 33341 333422005-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33343 33344 check for overflow/underflow in pow and gamma 33345 333462005-08-24 Vincent Lef��vre <vincent@vinc17.net> 33347 33348 When WANT_ASSERT >= 2: the corresponding messages are now output 33349 to stderr instead of stdout. 33350 33351 Update. 33352 33353 Improved C compliance when mp_limb_t and uintmax_t have the same size 33354 (concerning >> BITS_PER_MP_LIMB); some other small improvements. 33355 33356 No longer assume that a mp_limb_t fits in an unsigned long (this 33357 is not true under IRIX, where a mp_limb_t has 64 bits and a long 33358 has 32 bits by default). In round_p.c, error messages are output 33359 to stderr instead of stdout. 33360 333612005-08-23 Vincent Lef��vre <vincent@vinc17.net> 33362 33363 Update. 33364 33365 This was wrong. Let's do it even more like the 2.1 branch. 33366 33367 Update. 33368 33369 Patch 1.25 didn't work under OSF1 with cc. Let's do it like 33370 the 2.1 branch (it now does work under OSF1 with cc). 33371 333722005-08-21 Vincent Lef��vre <vincent@vinc17.net> 33373 33374 Better locale support (for the decimal point in string conversions 33375 and input/output). 33376 333772005-08-18 Vincent Lef��vre <vincent@vinc17.net> 33378 33379 Update. 33380 33381 Misc changes (spelling, typography...). 33382 33383 Removed trailing spaces (better for future patches, as such spaces 33384 are sometimes stripped). 33385 33386 Converted tabs to spaces with expand. 33387 33388 Updated copyright line. 33389 33390 Support C implementations giving an incorrect value for the precision 33391 of long double or where long doubles are implemented with FP expansions 33392 (like under Mac OS X), as in the 2.1 branch. 33393 33394 Updated mpfr_get_ld: removed useless and non-portable hacks, fixed 33395 bugs, and slightly changed the behavior for the x87 extended format 33396 (we shouldn't return long double's with more precision than really 33397 supported, e.g. on FreeBSD and NetBSD). 33398 33399 Added an assertion. 33400 334012005-08-17 Vincent Lef��vre <vincent@vinc17.net> 33402 33403 Reformatted (GNU style). 33404 334052005-08-17 Patrick P��lissier <patrick.pelissier@gmail.com> 33406 33407 Improve the warning message by adding the lines: 33408 "we cannot run a program linked with GMP (if you cannot 33409 see the version numbers above)." 33410 334112005-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33412 33413 added pointer for gamma 33414 33415 fixed comments (code did not change) 33416 33417 added formula for gamma function 33418 33419 fixed last test (expected result was wrong) 33420 33421 fixed bug for tiny input 33422 33423 added test case 33424 334252005-08-12 Patrick P��lissier <patrick.pelissier@gmail.com> 33426 33427 Reintroduce the computing of the dependencies. 33428 334292005-08-11 Vincent Lef��vre <vincent@vinc17.net> 33430 33431 Added MPFR_DOUBLE_SPEC (not used yet, except for warning messages). 33432 334332005-08-10 Vincent Lef��vre <vincent@vinc17.net> 33434 33435 Completed the documentation of mpfr_strtofr (concerning the exponent). 33436 33437 Removed double spaces in mpfr_strtofr description (this matters 33438 for the info format). 33439 33440 Added a temporary test for non-IEEE-754 double's. 33441 334422005-08-09 Patrick P��lissier <patrick.pelissier@gmail.com> 33443 33444 Fix bug for pre-ansi compiler. 33445 33446 Remove redundant entries. 33447 334482005-08-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33449 33450 fixed bug in mpfr_sin (possible wrong inexact flag for rounding to nearest) 33451 added items in NEWS and TODO 33452 334532005-08-05 Patrick P��lissier <patrick.pelissier@gmail.com> 33454 33455 Update information 33456 33457 Rename mpfr_stack to mpfr_custom_ 33458 334592005-08-03 Vincent Lef��vre <vincent@vinc17.net> 33460 33461 Added/updated copyright information. 33462 334632005-08-03 Vincent Lef��vre <vincent@vinc17.net> 33464 33465 Update. 33466 33467 [[Split portion of a mixed commit.]] 33468 334692005-08-02 Patrick P��lissier <patrick.pelissier@gmail.com> 33470 33471 Remove "Stack Interface" from TODO. 33472 334732005-08-01 Patrick P��lissier <patrick.pelissier@gmail.com> 33474 33475 Add test file for mpfr_subnormalize 33476 33477 Add documentation for MPFR stack interface 33478 33479 Add a new test to avoid potential problems if mp_limb_t != long. 33480 334812005-08-01 Vincent Lef��vre <vincent@vinc17.net> 33482 33483 Update. 33484 334852005-07-26 Patrick P��lissier <patrick.pelissier@gmail.com> 33486 33487 Add first version of MPFR stack interface. 33488 Need to check if everything is ok, specially the test. 33489 33490 Fix and clean up logging for GCC 4.0.x 33491 33492 Clean up code. 33493 33494 Improve logging: 33495 + The file is not created if there is nothing to log. 33496 + Add new ENVIRONMENT variables: MPFR_LOG_ALL and MPFR_LOG_STAT. 33497 33498 Add experimental code (Disabled). 33499 33500 Fix comment 33501 33502 Add a new regression test (to fix). 33503 335042005-07-22 Patrick P��lissier <patrick.pelissier@gmail.com> 33505 33506 Fix bug for high values of input (assertion failed) 33507 because erf(x) ~ 1, so 1-erf(x) ~ 0, and we can't 33508 get the EXP of tmp. 33509 335102005-07-18 Patrick P��lissier <patrick.pelissier@gmail.com> 33511 33512 Fix bug (AC_INIT version wasn't updated). 33513 Display a note about libtool version before quitting. 33514 33515 Clean up. 33516 Add comment. 33517 Add a new test: check if the charset has consecutive values. 33518 335192005-07-12 Vincent Lef��vre <vincent@vinc17.net> 33520 33521 Updated documentation of mpfr_strtofr. 33522 335232005-07-12 Patrick P��lissier <patrick.pelissier@gmail.com> 33524 33525 Fix an overflow bug (use of int instead of unsigned long). 33526 Optimize code (5% faster). 33527 335282005-07-11 Vincent Lef��vre <vincent@vinc17.net> 33529 33530 Fixed locale bug. Function strncasecmp is no longer used. 33531 335322005-07-09 Vincent Lef��vre <vincent@vinc17.net> 33533 33534 In the tests, set the locale to the current one. This allows to test 33535 MPFR under various locales, showing a bug in the parse_string function 33536 due to the use of the strncasecmp function ('i' and 'I' don't match 33537 with LC_ALL="tr_TR.ISO8859-9"). 33538 335392005-07-07 Patrick P��lissier <patrick.pelissier@gmail.com> 33540 33541 Improve displayed warning if GMP versions differ. 33542 335432005-07-06 Patrick P��lissier <patrick.pelissier@gmail.com> 33544 33545 Add a solution for a problem. 33546 335472005-07-05 Vincent Lef��vre <vincent@vinc17.net> 33548 33549 Added in-place tests for atan(+/-0). 33550 335512005-07-05 Patrick P��lissier <patrick.pelissier@gmail.com> 33552 33553 Fix bug of signed 0. 33554 Optimize code. (20% for 53 bits). 33555 33556 Improve test for signed 0. 33557 335582005-06-28 Patrick P��lissier <patrick.pelissier@gmail.com> 33559 33560 Simplify a condition which was always true. 33561 (p is always negative). 33562 33563 Add assertion. 33564 33565 Simplify code for final step (when i== n0): 33566 since we do n0-i=0 steps, atan(Ak/2^k) ~= Ak/2^k. 33567 So we could speed up the final computation (9% faster). 33568 33569 Optimize: when computing arctan(p/2^r) simplify 33570 p/2^r if p is even. 33571 Clean up and remove tabi table. It was useless. 33572 335732005-06-22 Patrick P��lissier <patrick.pelissier@gmail.com> 33574 33575 Clean up configure and acinclude: 33576 + Remove useless test in MPFR_CONFIGS (Check for valid NAN). 33577 Its result is not use by MPFR. 33578 + Remove useless macros (AC_CHECK_OS, AC_CHECK_MACH and AC_MY_HEADERS). 33579 + Move detection of math/rint,round,floor,ceil to MPFR_CONFIGS. 33580 335812005-06-20 Vincent Lef��vre <vincent@vinc17.net> 33582 33583 GNU coding style. 33584 335852005-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33586 33587 improved m=0 case when b is a power of 2 33588 335892005-06-15 Patrick P��lissier <patrick.pelissier@gmail.com> 33590 33591 Replace mpfr_div_2ui call by SET_EXP/GET_EXP 33592 since it can't overflow. 33593 33594 Speed up a few (from 10822 to 10600). 33595 33596 Update 33597 335982005-06-14 Patrick P��lissier <patrick.pelissier@gmail.com> 33599 33600 Replace check for a power of 2 for the high limb by a check 33601 for "high bit limb" for the high limb. 33602 33603 Fix bug in mul_ui (always alloc buffer instead of trying to reuse it). 33604 33605 Add new test (failed). 33606 33607 Add Fast case for u==1 33608 Add Fast case for u a power of 2 (Call mul/div_2si). 33609 33610 Fix bug (use of GCC specific attribute). 33611 336122005-06-13 Patrick P��lissier <patrick.pelissier@gmail.com> 33613 33614 Rechnage the meaning of root for k=0. 33615 33616 Fix bug with x<0 and k even 33617 33618 Add special case for k==0 33619 Add test for special case k==0 33620 336212005-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33622 33623 added assertion 33624 336252005-06-13 Patrick P��lissier <patrick.pelissier@gmail.com> 33626 33627 Improve efficiency of initial call to mpfr_cache. 33628 33629 Add new check (+INF -INF --> NAN). 33630 336312005-06-10 Patrick P��lissier <patrick.pelissier@gmail.com> 33632 33633 Fix bug of NAN and INF. 33634 Fix bug in documentation (mpfr_sum wasn't exactly what is described). 33635 Improve test. 33636 Change internal names. 33637 Clean up. 33638 33639 Fix bug: check if mpfr_log returns 0. 33640 336412005-06-08 Patrick P��lissier <patrick.pelissier@gmail.com> 33642 33643 Replace MPFR_EXP to MPFR_GET_EXP 33644 Use GROUP function 33645 Use MPFR_MPZ_SIZEINBASE2 33646 Factorize the mpfr_mul_2exp chain. 33647 33648 Replace int to mp_prec_t for precision... 33649 33650 Fix warning due to comparison of unsigned and signed integers. 33651 33652 Fix warnings due to comparison between signed and unsigned. 33653 Reinclude string.h for strtofr. 33654 336552005-06-08 Vincent Lef��vre <vincent@vinc17.net> 33656 33657 Fixed bug introduced with the new internal format on 2003-10-27. 33658 33659 Updated comments. 33660 336612005-06-08 Patrick P��lissier <patrick.pelissier@gmail.com> 33662 33663 Fix introduced bug due to missing NULL. 33664 33665 Fix introduced bug (NULL not defined). 33666 33667 Clean up use of stdio.h: 33668 it is now included by mpfr-impl iff DEBUG is defined or WANT_ASSERT is 33669 defined. 33670 33671 Fix warnings. 33672 33673 Clean up code. 33674 33675 Improve checking if WANT_ASSERT >= 2 33676 336772005-06-07 Patrick P��lissier <patrick.pelissier@gmail.com> 33678 33679 Fix wrong assertion. 33680 33681 Improve test by adding special cases. 33682 33683 MPFR_GET_EXP was wrongly defined and does nothing due to recursive 33684 macro (mpfr_get_exp is also defined to be a fast macro). Fix this 33685 by removing the macro call in MPFR_GET_EXP in case of ASSERT >= 1. 33686 2 tests failed now! 33687 33688 Clean up and improve check. 33689 33690 Handle case n==0 and n==1 as special cases. 33691 33692 Simplify test to use tgeneric. 33693 Add note about Worst Case of const_catalan up to 100,000,000 33694 33695 Use GROUP functions. 33696 33697 Improve coverage. 33698 33699 Fix bug in MPFR_GROUP_REPREC_3. 33700 337012005-06-06 Patrick P��lissier <patrick.pelissier@gmail.com> 33702 33703 Improve coverage 33704 33705 Improve coverage test 33706 33707 Remove mpfr_sub_one_ulp from MPFR library. 33708 Keep the C file until we are sure it not needed anymore. 33709 33710 Improve coverage. 33711 33712 Remove mpfr_add_one_ulp from MPFR library. 33713 The function is still in the CVS. 33714 33715 Add experimental code (disabled). 33716 For 5000 bits, gamma(12.5) takes 4s instead of 18s. 33717 But it changes the error analysis... 33718 33719 Reduce use of intermediary variables. 33720 33721 Improve comment of previous change. 33722 33723 Use FastCompute if x is positive and big, ie it uses 33724 Zeta(x)=1+1/2^X+O(1/3^x) 33725 337262005-06-03 Patrick P��lissier <patrick.pelissier@gmail.com> 33727 33728 Add new and faster trivial case for y <= 1 and n <= 1 33729 337302005-06-02 Patrick P��lissier <patrick.pelissier@gmail.com> 33731 33732 Forget those two. Update from FSF site. 33733 33734 Finish updating files. 33735 33736 Change the address of the FSF. 33737 33738 Optimize it a few by avoiding calling fac_ui for each iteration 33739 of the main loop. 33740 33741 Reduce # of vars inside the main loop. 33742 Use GROUP function. 33743 Improve overflow problems (Use of int instead of mp_prec_t). 33744 33745 Improve efficiency by removing 2 variables (Loop uses only 4 vars). 33746 Use GROUP. 33747 33748 Add support for MPFR_GROUP functions. 33749 33750 Add attribute const and noreturn for function (via macros). 33751 Add new macros GROUP_INIT_6 and GROUP_REPREC_6 for zeta and gamma. 33752 337532005-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33754 33755 added missing functions from gnumeric 33756 337572005-06-02 Patrick P��lissier <patrick.pelissier@gmail.com> 33758 33759 Update stack-interface. 33760 Remove round_near_x item. 33761 Add new functions to implement. 33762 Reformat file. 33763 33764 Fix input precision of mp_prec_t. 33765 May be outside 'int' range. So it uses 'long' instead and 33766 a proper check. 33767 337682005-05-25 Vincent Lef��vre <vincent@vinc17.net> 33769 33770 Added coding recommendations concerning C++ compilers. 33771 337722005-05-23 Patrick P��lissier <patrick.pelissier@gmail.com> 33773 33774 Final version of MPFR_GROUP macros. 33775 33776 Improve coverage test. 33777 337782005-05-20 Patrick P��lissier <patrick.pelissier@gmail.com> 33779 33780 Remove variable t which wasn't used! 33781 337822005-05-18 Patrick P��lissier <patrick.pelissier@gmail.com> 33783 33784 Replace TMP_ALLOC by MPFR_TMP_ALLOC 33785 Replace TMP_DECL by MPFR_TMP_DECL 33786 Replace TMP_MARK by MPFR_TMP_MARK 33787 Replace TMP_FREE by MPFR_TMP_FREE 33788 Add support for GMP's TMP_SALLOC. 33789 33790 New way of handling exact value. 33791 Fix bug of wrong rounding and wrong ternary value if the power 33792 is exact, but at an upper precision than the working precision. 33793 Now it computes the power exactly if it detects it is exact. 33794 33795 Precise that 1 is not the only value. 33796 337972005-05-18 Vincent Lef��vre <vincent@vinc17.net> 33798 33799 an 1 -> a 1. 33800 338012005-05-18 Patrick P��lissier <patrick.pelissier@gmail.com> 33802 33803 Add a note about special case 1 33804 33805 Add assertions 33806 Remove useless function is_odd_even. 33807 33808 Fix bug: returning 1 didn't take the rounding mode into account. 33809 Simplify dependencies of mpfr_pow. 33810 33811 Fix bug of overflow 33812 Fix bug of wrong ternary value in case of overflow 33813 Add test cases. 33814 33815 Fix bug of overflow. 33816 Fix bug of ternary value in case of overflow. 33817 33818 Clean up previous patch. 33819 33820 Fix bug of overflow. 33821 Fix bug of ternary value in case of overflow. 33822 Still some bugs... 33823 338242005-05-17 Patrick P��lissier <patrick.pelissier@gmail.com> 33825 33826 Rewrite the way of handling overflow. 33827 Fix bug due to overflow. 33828 Fix bug due to wrong ternary value. 33829 33830 Typo. 33831 33832 Fix bug of overflow. 33833 Still a problem if exp(x) is near the limit of EMAX_MAX. 33834 33835 Add new macro MPFR_SAVE_DECL_UPDATE_FLAGS 33836 33837 Improve way of handling overflow (still not perfect but far better). 33838 Improve coverage test. 33839 33840 Improve coverage test. 33841 338422005-05-17 Vincent Lef��vre <vincent@vinc17.net> 33843 33844 hypot(��oo, NaN) now returns +oo, as in ISO C99 (wasn't documented). 33845 338462005-05-17 Patrick P��lissier <patrick.pelissier@gmail.com> 33847 33848 Improve coverage test. 33849 33850 Remove useless test. 33851 33852 Improve coverage test. 33853 33854 Improve coverage 33855 33856 Improve coverage test. 33857 33858 Add CFLAGS -g. 33859 33860 Clean up 33861 33862 Improve coverage tests. 33863 33864 Improve coverage test. 33865 33866 Special a condition by the simplified one. 33867 33868 Improve coverage test (Forget to test tiny functions). 33869 33870 Typo 33871 33872 Add 'coverage' script. 33873 33874 Add 'static' 33875 33876 Reformating code. 33877 Fix potential (?) overflow for very large precision. 33878 Various tiny optimizations 33879 Improve the initial estimation of the needed precision. 33880 33881 Extract constants (__gmpfr_one, two and four) from log.c to constant.c 33882 Fix bug in MPFR_SET_ONE. 33883 33884 Remove a space. 33885 338862005-05-16 Vincent Lef��vre <vincent@vinc17.net> 33887 33888 Typography + spelling. 33889 33890 Note that mpfr_out_str has slightly changed. 33891 338922005-05-16 Patrick P��lissier <patrick.pelissier@gmail.com> 33893 33894 asin, atan, atanh are not slow anymore for small input. 33895 Remove it in the TODO. 33896 338972005-05-14 Vincent Lef��vre <vincent@vinc17.net> 33898 33899 Fixed a bug due to a typo on a variable name. It produced a 33900 segmentation fault in the tests on Linux/ppc (uninitialized data were 33901 read), not always reproducible when stepping with gdb. 33902 339032005-05-13 Patrick P��lissier <patrick.pelissier@gmail.com> 33904 33905 Add support for MPFR_FAST_COMPUTE_IS_SMALL_INPUT 33906 33907 Add support for FAST_COMPUTE_IS_SMALL_INPUT. 33908 33909 Add round_near_x support for small arguments. 33910 33911 Add new internal function mpfr_round_near_x. 33912 339132005-05-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33914 33915 added missing documentation for mpfr_hypot 33916 339172005-05-13 Patrick P��lissier <patrick.pelissier@gmail.com> 33918 33919 Add a \n for all error strings. 33920 33921 Fix copyright date. 33922 33923 Fix some problems when you define mpfr_prec_t to be an unsigned short. 33924 Now all tests passed when mpfr_prec_t is defined to be an unsigned short 33925 on a 32 bit CPU! 33926 339272005-05-12 Vincent Lef��vre <vincent@vinc17.net> 33928 33929 Detect/avoid potential integer overflows. 33930 339312005-05-12 Patrick P��lissier <patrick.pelissier@gmail.com> 33932 33933 Fix typos. 33934 339352005-05-11 Patrick P��lissier <patrick.pelissier@gmail.com> 33936 33937 Same patch for exp_3. 33938 33939 Fix bug when exp(x) is near the limit of an overflow or an 33940 underflow (mpfr_exp_2 didn't allow an overflow/underflow in its 33941 internal loop). 33942 Add corresponding test case. exp_3 may need similar patchs. 33943 339442005-05-11 Vincent Lef��vre <vincent@vinc17.net> 33945 33946 Update (with reformatting so that the logs are readable on 80 columns). 33947 339482005-05-11 Patrick P��lissier <patrick.pelissier@gmail.com> 33949 33950 Fix bug due to wrong assertion. 33951 339522005-05-10 Patrick P��lissier <patrick.pelissier@gmail.com> 33953 33954 1. Change the prototype of mpfr_can_round to use const. 33955 2. Change the prototype of mpfr_round_raw_2 (remove first argument since it is 33956 useless). 33957 3. Change round_raw_generic to use preprocessor if rather than compiler 33958 to detect if flag == 1 or 0 33959 4. mpfr_round_raw_xxx use const attribute too. 33960 5. Remove mpfr_round_raw_3 since it is unused by MPFR. 33961 6. Add first prototype of MPFR_FAST_COMPUTE_IF_SMALL. 33962 33963 Update. 33964 33965 Fix a bug in the product of 2limbs per 2 limbs. 33966 Add new regression test. 33967 33968 Fix problem with mingw: if the configure detects MS-Windows, it skips the 33969 tests which try to link against GMP within the configure, hoping the Makefile 33970 works. The main problem is that we need libtool inside the configure to link 33971 against GMP. 33972 339732005-05-09 Patrick P��lissier <patrick.pelissier@gmail.com> 33974 33975 Improve random tests. 33976 339772005-05-04 Patrick P��lissier <patrick.pelissier@gmail.com> 33978 33979 Replace initial estimation of K0 from sqrt (p/2) 33980 to sqrt(p/16). It seems to be 30% faster for 5000 bits, and 5% faster 33981 for 50 bits. 33982 339832005-05-04 Vincent Lef��vre <vincent@vinc17.net> 33984 33985 Reformatted the code. 33986 339872005-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33988 33989 fixed dummy init2 followed by set_prec 33990 339912005-05-04 Vincent Lef��vre <vincent@vinc17.net> 33992 33993 Added LIA-2 functions to implement. 33994 339952005-05-04 Patrick P��lissier <patrick.pelissier@gmail.com> 33996 33997 Add functions mpfr_sech, mpfr_coth and mpfr_csch. 33998 33999 init2 alloc what is needed, not 2 (more efficient). 34000 340012005-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34002 34003 improved const_euler and eint 34004 removed dependency from input precision in several functions 34005 fixed two bugs in pow (detection of exact cases) 34006 340072005-05-04 Patrick P��lissier <patrick.pelissier@gmail.com> 34008 34009 Update to reflect the current state. 34010 340112005-05-03 Patrick P��lissier <patrick.pelissier@gmail.com> 34012 34013 Fix computing of `sup` to reflect what is described in algorithms.tex. 34014 34015 Tiny optimization of mpfr_atan. 34016 On opteron with p=53, from 9231 / 18049.89 / 81758 to 9004 / 17522.76 / 78601. 34017 340182005-05-03 Vincent Lef��vre <vincent@vinc17.net> 34019 34020 Fixed a problem in test_small (already done in the 2.1 branch) 34021 when long double = double. 34022 340232005-05-03 Patrick P��lissier <patrick.pelissier@gmail.com> 34024 34025 Improve detection again (use callback). 34026 34027 Improve previous change. 34028 34029 Add detection of function round, rint, ceil, floor and nearbyint at configure 34030 time so that spe206 which defines itself as C99 compliant can build the 34031 trint test. 34032 34033 Update (Move bugs to potential). 34034 340352005-05-03 Vincent Lef��vre <vincent@vinc17.net> 34036 34037 Fixed the mpfr_hypot bug, and re-enabled the test_large_small test. 34038 340392005-05-02 Vincent Lef��vre <vincent@vinc17.net> 34040 34041 Update. 34042 34043 Mention the mpfr_hypot bug. 34044 34045 Added a test showing a bug, enabled when TEST_LARGE_SMALL is defined 34046 (to avoid a freeze with make check). 34047 340482005-05-02 Patrick P��lissier <patrick.pelissier@gmail.com> 34049 34050 Fix bug. 34051 34052 Remove useless function f. 34053 34054 Fix a bug: the test to detect EVEN_rounding was wrong. 34055 34056 Update example of use of mpfr_subnormalize. 34057 34058 mpfr_cmp_str checks for NAN. 34059 Add macro mpfr_cmp0 in mpfr-test. 34060 34061 Undo previous change for tgeneric. 34062 troot uses tgeneric_ui instead. 34063 340642005-05-01 Patrick P��lissier <patrick.pelissier@gmail.com> 34065 34066 Add new functions in reuse test. 34067 340682005-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34069 34070 added efficiency item 34071 34072 added mpfr_eint 34073 340742005-04-29 Patrick P��lissier <patrick.pelissier@gmail.com> 34075 34076 Add something to do :) 34077 340782005-04-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34079 34080 added comment about efficiency of atan 34081 340822005-04-29 Vincent Lef��vre <vincent@vinc17.net> 34083 34084 The FAQ is now distributed with MPFR. Use update-faq to update it 34085 from the MPFR web site. 34086 340872005-04-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34088 34089 commented out argument reduction analysis for arctan (was wrong) 34090 340912005-04-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34092 34093 wrong commit, put revision 1.37 back 34094 34095 wrong commit, put back revision 1.47 34096 34097 added error analysis for Geoff's argument reduction for arctan 34098 340992005-04-27 Vincent Lef��vre <vincent@vinc17.net> 34100 34101 Added a note about mpfr_set_d and mpfr_set_ld. 34102 34103 Define MPFR_VERSION_STRING using the update-version script 34104 (works with any compiler). 34105 341062005-04-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34107 34108 added internal interface 34109 34110 added suggestion from Geoff 34111 34112 added MPFR_VERSION_STRING 34113 341142005-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34115 34116 added new item 34117 34118 improved expm1/log1p for small argument 34119 34120 improved to taken account of case |x| small (reported by Keith Briggs) 34121 341222005-04-25 Vincent Lef��vre <vincent@vinc17.net> 34123 34124 Added a missing "-" and replaced a few "-" by @minus{}. 34125 34126 Added a note for mpfr_cmp functions. 34127 341282005-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34129 34130 fixed bug with tiny number 34131 341322005-04-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34133 34134 removed done item 34135 341362005-04-22 Patrick P��lissier <patrick.pelissier@gmail.com> 34137 34138 Add a macro for mpfr_const_catalan for internal use. 34139 34140 Fix typos. 34141 341422005-04-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34143 34144 removed Root, updated eint* 34145 34146 added sec, csc, cot 34147 34148 proposal for exponential integral definition 34149 34150 added mpfr_root, removed from TODO 34151 34152 added mpfr_root 34153 341542005-04-21 Vincent Lef��vre <vincent@vinc17.net> 34155 34156 Update. 34157 34158 Added the ability to change the control word when compiling tset_ld 34159 with -DWITH_FPU_CONTROL=1 and executing tset_ld with an argument 34160 (not used in the automatical tests yet). 34161 34162 Added test_small (the same as in the 2.1 branch). 34163 34164 Updated a comment and reformatted the code. 34165 341662005-04-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34167 34168 added explanation 34169 341702005-04-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34171 34172 adjusted initial guard digits for const_catalan to avoid failure for prec<=10^4 34173 34174 updated documentation and improved tests for mpfr_const_catalan 34175 34176 removed Catalan's constant (done) 34177 34178 added Catalan's constant 34179 34180 added efficiency items suggested by Geoff Bailey 34181 34182 fixed minor problem (wrong rounding mode for x=0, y<0), thanks Geoff Bailey 34183 341842005-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34185 34186 added one efficiency item 34187 34188 completely rewritten algorithm and error analysis for acosh 34189 (did not match those in acosh.c) 34190 34191 algorithm and error bound did not match those of algorithm.tex!!! 34192 34193 added missing functions for Magma 34194 34195 changed semantics of mpfr_get_str for ndigits=0 34196 341972005-04-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34198 34199 added one item (efficiency) 34200 342012005-04-14 Patrick P��lissier <patrick.pelissier@gmail.com> 34202 34203 Fix atan2 to fit C99 semantic. 34204 34205 Fix typos. 34206 34207 Add TODO. 34208 34209 Add documentation for mpfr_subnormalize. 34210 34211 Fix bugs. 34212 342132005-04-13 Patrick P��lissier <patrick.pelissier@gmail.com> 34214 34215 Apply Guillaume's patch about mpfr_div_ui. 34216 Fix a bug in tsi_op (forget to clean memory). 34217 34218 Add function mpfr_subnormalize (To Test!!!!!) 34219 34220 Add TODO. 34221 34222 Fix wrong comment. 34223 342242005-04-07 Patrick P��lissier <patrick.pelissier@gmail.com> 34225 34226 Reenable tests. 34227 34228 Add documentation about mpfr_atan2. 34229 34230 Improve test suite by adding new random values. 34231 34232 Add random tests (tgeneric + random2). 34233 342342005-04-05 Vincent Lef��vre <vincent@vinc17.net> 34235 34236 Test with -ansi when making a release. 34237 34238 Typo. 34239 342402005-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34241 34242 replaced // comments by /* ... */ 34243 342442005-04-04 Patrick P��lissier <patrick.pelissier@gmail.com> 34245 34246 Add note about mpfr_neg 34247 34248 Add function mpfr_atan2 34249 342502005-03-31 Patrick P��lissier <patrick.pelissier@gmail.com> 34251 34252 Change to add future function mpfr_sqrhigh_n. 34253 34254 Add documentation for mpfr_erfc. 34255 34256 Add items. 34257 34258 Add function mpfr_erfc. 34259 Add a note about auto-checking correctness of MPFR. 34260 342612005-03-30 Vincent Lef��vre <vincent@vinc17.net> 34262 34263 Added a testcase (the one added to the 2.1 branch). 34264 342652005-03-30 Patrick P��lissier <patrick.pelissier@gmail.com> 34266 34267 Use random2 instead of random. 34268 342692005-03-30 Vincent Lef��vre <vincent@vinc17.net> 34270 34271 Weaker conditions for return 0 in mpfr_round_p. 34272 342732005-03-30 Patrick P��lissier <patrick.pelissier@gmail.com> 34274 34275 Add generic test for functions which looks 34276 inexact = MPFR_TOTO (rop, op, INTEGER, RND); 34277 34278 Add ceil(log2(size)) bits to initial precision to avoid 34279 committing in error for huge operands. 34280 342812005-03-30 Vincent Lef��vre <vincent@vinc17.net> 34282 34283 Added a test (corresp. to the one added on 2005-03-25 in tpow_z.c). 34284 342852005-03-29 Vincent Lef��vre <vincent@vinc17.net> 34286 34287 Reformatted code (GNU style, untabify...). 34288 342892005-03-29 Patrick P��lissier <patrick.pelissier@gmail.com> 34290 34291 Tiny update. 34292 Add group functions macros. 34293 34294 Replace test ('p <= i') by assertion ('p > i). 34295 342962005-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34297 34298 fixed bug in pow_ui (and pow_z): missing factor 2 in error bound 34299 fixed bug in gamma of negative integer 34300 343012005-03-25 Patrick P��lissier <patrick.pelissier@gmail.com> 34302 34303 Add info. 34304 34305 Add new internal function for debugging reasons. 34306 34307 Forget to free x and y 34308 34309 Add failed regression test. 34310 34311 Improved version. 34312 34313 Undo previous change (I was wrong). 34314 Add new regression test. 34315 343162005-03-24 Patrick P��lissier <patrick.pelissier@gmail.com> 34317 34318 Fix wrong extimated precision. 34319 It is log2(n+2) ulps so that log2(log2(n+2)) bits! 34320 34321 Add checking. 34322 343232005-03-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34324 34325 added new test 34326 343272005-03-23 Patrick P��lissier <patrick.pelissier@gmail.com> 34328 34329 Remove an signed integer trap overflow (GCC 4 + '-ftrapv'). 34330 34331 Don't use Mulder at n+1 for MPFR_MUL_THRESHOLD+1 34332 34333 Reduce the threshold for AMD64. 34334 343352005-03-22 Patrick P��lissier <patrick.pelissier@gmail.com> 34336 34337 Initial version of Short Division. 34338 34339 Fix bug on HP-UX. 34340 longlong's umul_ppmm seems to be buggy on such a system. 34341 Don't use it under HP-UX. 34342 343432005-03-21 Patrick P��lissier <patrick.pelissier@gmail.com> 34344 34345 Add case where bn == 1 and bn == 2 by using longlong.h. 34346 Modify tuneup to start with prec=2*BITS_PER_MP_LIMB+1 34347 Fix bug in computing the estimated precision when you switch from N limbs to N+1 limbs. 34348 Add regression tests. 34349 343502005-03-19 Vincent Lef��vre <vincent@vinc17.net> 34351 34352 Typo. 34353 343542005-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34355 34356 added one efficiency item 34357 343582005-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34359 34360 added two property-tests 34361 343622005-03-17 Vincent Lef��vre <vincent@vinc17.net> 34363 34364 Fixed a bug for mpfr_atanh(x) with 1 < |x| < 2 (found by Matt Reddick). 34365 343662005-03-14 Patrick P��lissier <patrick.pelissier@gmail.com> 34367 34368 Update 34369 34370 Improve test: compare between mpfr_round_p and mpfr_can_round. 34371 34372 Replace mpfr_can_round (..., GMP_RNDN, GMP_RNDZ, ...) to fast replacement 34373 mpfr_round_p. 34374 34375 Remove a FIXME. 34376 34377 Add new internal function mpfr_round_p which is a fast replacement 34378 to mpfr_can_round (x, y, GMP_RNDN, GMP_RNDZ, ...) 34379 34380 Improve an error message. 34381 343822005-03-10 Patrick P��lissier <patrick.pelissier@gmail.com> 34383 34384 Fix bug: tmp may have changed in mulhigh code. 34385 Restore it before calling mpn_mul. 34386 343872005-03-09 Patrick P��lissier <patrick.pelissier@gmail.com> 34388 34389 Better defaults threshold. 34390 34391 Handle case where Prec(a) ~ estimated prec of mulhigh. 34392 Add one extra limb, and still uses mulhigh. 34393 34394 Fix bug: compute Mulder Threshold from n/2+1 instead of (n+1)/2 34395 34396 Forget ';;' in switch. 34397 34398 Add '-v' for tuneup. 34399 34400 Add assertion. 34401 34402 Improve checking 34403 Add test. Short Mulder product failed for this. 34404 34405 Improve full assertion mode (Check mpfr_mul). 34406 344072005-03-08 Patrick P��lissier <patrick.pelissier@gmail.com> 34408 34409 Move GLIBC detection from mpfr-impl to logging.c 34410 34411 Add log info. 34412 34413 Improve default threshold. 34414 34415 Add Mulder Short product for mpfr_mul. 34416 Update algorithm.tex to describe the estimated error. 34417 34418 Add an assert. 34419 Cosmetic change. 34420 34421 Update default values. 34422 34423 Clean up macro namespace. 34424 34425 Cosmetics change. 34426 344272005-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34428 34429 new function mpfr_get_f 34430 344312005-03-08 Patrick P��lissier <patrick.pelissier@gmail.com> 34432 34433 Fix bug in case of reuse of variable (a,b,a) with Exp(b)=Exp(a)+Prec(b). 34434 Move copy of mantissa after test. 34435 344362005-03-07 Patrick P��lissier <patrick.pelissier@gmail.com> 34437 34438 Add tune for mpfr_mulhigh 34439 Add --with-mulhigh-size option at configure time. 34440 344412005-03-04 Patrick P��lissier <patrick.pelissier@gmail.com> 34442 34443 Fix bug due to wrong estimation of (get_d (x) / LOG2). 34444 TODO: Rexamine the algorithm of mpfr_exp_2! 34445 34446 Transform DEBUG message to LOG message. 34447 34448 Improve it. 34449 34450 Tune mpfr_exp_2 now! 34451 344522005-03-03 Patrick P��lissier <patrick.pelissier@gmail.com> 34453 34454 Fix bugs. 34455 34456 Update it. 34457 New code for mpfr_mul. 34458 344592005-03-02 Patrick P��lissier <patrick.pelissier@gmail.com> 34460 34461 Add new default threshold for different CPU. 34462 34463 Update for tune. 34464 34465 Fix bug in estimated error (See previous ChangeLog). 34466 344672005-02-24 Patrick P��lissier <patrick.pelissier@gmail.com> 34468 34469 Add tune program for MPFR. 34470 Do make tune instead of make. 34471 BUT you need to have configure MPFR with --with-gmp-build=... 34472 (It uses internal libspeed.la of GMP). 34473 Tuning is slow... 34474 34475 Add note. 34476 344772005-02-22 Patrick P��lissier <patrick.pelissier@gmail.com> 34478 34479 Tiny optimization 34480 34481 Update 34482 34483 Add logging. 34484 34485 Reduce InterObject dependency by moving mul_si, div_si and si_div 34486 to the unique function they used. 34487 Improve mul_ui by inlining the rounding. 34488 344892005-02-21 Patrick P��lissier <patrick.pelissier@gmail.com> 34490 34491 Improve test to 1. 34492 344932005-02-21 Vincent Lef��vre <vincent@vinc17.net> 34494 34495 Updated copyright lines. 34496 34497 Code reindented / reformatted. 34498 34499 Fixed a bug for u == 0 and x == +0 introduced in ui_sub.c 1.23, 34500 when 0 was taken into account as a special case: the sign of the 34501 result 0 was incorrect. -> Consider the case u == 0 first. 34502 345032005-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34504 34505 added generic tests in tpow 34506 345072005-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34508 34509 fixed bug (variable used twice for different things) 34510 34511 more changes for interface with NTL 34512 345132005-02-18 Patrick P��lissier <patrick.pelissier@gmail.com> 34514 34515 Likely a test. 34516 34517 Update 34518 345192005-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34520 34521 added interface for NTL 34522 345232005-02-16 Vincent Lef��vre <vincent@vinc17.net> 34524 34525 Update. 34526 34527 Suppress some spaces. 34528 345292005-02-16 Patrick P��lissier <patrick.pelissier@gmail.com> 34530 34531 Reenable underflow tests. 34532 34533 Update 34534 345352005-02-16 Vincent Lef��vre <vincent@vinc17.net> 34536 34537 Removed texinfo.tex, as it can be installed by autoreconf -i. 34538 345392005-02-16 Patrick P��lissier <patrick.pelissier@gmail.com> 34540 34541 Fix LOADLIBES so that it works (it doesn't due to libtool change). But it 34542 still needs to have s static version of MPFR. 34543 345442005-02-16 Vincent Lef��vre <vincent@vinc17.net> 34545 34546 autoreconf -> autoreconf -i 34547 345482005-02-16 Patrick P��lissier <patrick.pelissier@gmail.com> 34549 34550 Fix wrong integer types. 34551 345522005-02-16 Vincent Lef��vre <vincent@vinc17.net> 34553 34554 Spelling mistakes & reformatted code. 34555 345562005-02-15 Vincent Lef��vre <vincent@vinc17.net> 34557 34558 Reformatted code. 34559 345602005-02-15 Patrick P��lissier <patrick.pelissier@gmail.com> 34561 34562 Improve initial prec. 34563 34564 Remove code. 34565 Add special case if t=1. 34566 34567 mpfr_set doesn't produce an EVEN inexact flag. 34568 Fix this. 34569 34570 USe of mpfr_nexttozero. 34571 34572 Fix bug: use x instead of xf in LOG. 34573 34574 Log input and output of functions. 34575 34576 Fix bug of overflow in tan. 34577 34578 Use of MPFR_LOG_FUNC. 34579 34580 Do not print final log message if there was no call. 34581 34582 Add ZivLoop for sign 34583 345842005-02-14 Patrick P��lissier <patrick.pelissier@gmail.com> 34585 34586 Fix bug: during the display of a logged var, logging is turn off. 34587 34588 Add MPFR_LOG_FUNC 34589 Use mpfr_cos as testing example. 34590 34591 Add ZivLoop controller for constantes. 34592 Augment exponent range in the cache. 34593 Remove it in const_pi. 34594 34595 Add generic ZivLoop controller. 34596 345972005-02-14 Laurent Fousse <laurent@komite.net> 34598 34599 Document mpfr_sum returned int value. 34600 346012005-02-14 Patrick P��lissier <patrick.pelissier@gmail.com> 34602 34603 Clean up code. 34604 Add generic ZivLoop controller. 34605 346062005-02-14 Laurent Fousse <laurent@komite.net> 34607 34608 Consider return value's precision for rounding in mpfr_sum. 34609 346102005-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34611 34612 removed garbage 34613 346142005-02-14 Patrick P��lissier <patrick.pelissier@gmail.com> 34615 34616 Clean up 34617 Add ZivLoop 34618 34619 Remove malloc/free. 34620 Use of MPFR_INT_CEIL_LOG2 34621 Add ZivLoop controller. 34622 34623 Clean up code. 34624 Fix bug with Exponent range. 34625 Add ZivLoop controller. 34626 34627 Cleanup code. 34628 346292005-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34630 34631 further efficiency improvement (avoid mpz_init/mpz_clear) 34632 346332005-02-14 Patrick P��lissier <patrick.pelissier@gmail.com> 34634 34635 Add ZivLoop controller. 34636 Clean up code. 34637 Optimize it by removing the # of used vars. 34638 34639 Add ZivLoop controller. 34640 346412005-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34642 34643 new faster algorithm for log(2) 34644 346452005-02-11 Patrick P��lissier <patrick.pelissier@gmail.com> 34646 34647 Remove detection of C++ and Fortran due to libtool. 34648 ---- 34649 Note (VL, 2010-02-08): this removal by an always false test was working 34650 with libtool 1.5.26, but doesn't work with libtool 2.2 to 2.2.6b (used 34651 by the MPFR 2.4.{0,1,2} tarballs). 34652 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=568520 34653 34654 Clean up configure (simpler). 34655 Still a bug with CXXCPP to solve. 34656 34657 Clean up const_log2 code. 34658 346592005-02-10 Patrick P��lissier <patrick.pelissier@gmail.com> 34660 34661 Add log for other functions. 34662 Add ZivLoop too. 34663 Cleanup exp3. 34664 346652005-02-09 Patrick P��lissier <patrick.pelissier@gmail.com> 34666 34667 Update for ICC (disable shared since it doesn't work). 34668 34669 The previous fixs don't work. New one which works but is VERY ugly. 34670 34671 Fix again to avoid fail on laurent5... 34672 34673 Set CXXCPP to "g++ -E" to avoid detection (which may fail on some systems). 34674 34675 Reduce the tested compiler for C++ and Fortran to the minimum. 34676 34677 Update GMP detection to be much more libtool compatible. 34678 As a consequence some tests using AC_RUN_IFELSE may fail due to ugly things 34679 like LD_LIBRARY_PATH no set or wrong selection of libgmp. 34680 So they just produce a warning, not a fatal error. 34681 TODO: Check if we can avoid those problems... 34682 346832005-02-08 Patrick P��lissier <patrick.pelissier@gmail.com> 34684 34685 Remove automake and libtool files. 34686 Use `automake --add-missing --copy -i` to generate them. 34687 34688 Add support for ansi2knr 34689 34690 Add support for Shared Library in MPFR (both Unix and Windows) by using libtool. 34691 Improve configure (remove unused macros, make dist produce .zip and .bz2) 34692 Update update-version to modify configure.in too. 34693 34694 Update NEWS. 34695 346962005-02-04 Vincent Lef��vre <vincent@vinc17.net> 34697 34698 Update. 34699 347002005-02-04 Patrick P��lissier <patrick.pelissier@gmail.com> 34701 34702 Add forgotten functions to reuse test. 34703 34704 Improve reuse tests (Include 1, -1, 1/2, 2, PI and PI/2 now). 34705 34706 Fix bug of atan(-1) (wrong sign). 34707 347082005-02-03 Patrick P��lissier <patrick.pelissier@gmail.com> 34709 34710 Remove unused option --disable-cache. 34711 34712 Add option "thread-safe" to configure. 34713 Limited to use with GCC and ICC (using extension __thread). 34714 34715 Add description of added functions. 34716 34717 mpfr.h doesn't export anymore any globals. 34718 It doesn't define MPFR_FLAGS too. 34719 34720 Change user interface for mpfr_const_pi, mpfr_const_log2 and 34721 mpfr_const_euler. No more access to the cache itself. 34722 Create dummy functions which call the cache, and rename old 34723 functions to "_internal". 34724 Internally, it doesn't change at all (You still call directly 34725 the cache instead of the dummy function which calls the cache). 34726 34727 Add functions mpfr_set_overflow, mpfr_set_underflow, mpfr_set_erangeflag, 34728 mpfr_set_inexflag, mpfr_set_nanflag 34729 34730 Rename internal functions mpfr_set_overflow in mpfr_overflow and 34731 mpfr_set_underflow in mpfr_underflow so that we can add new functions 34732 mpfr_set_underflow and mpfr_set_overflow (which set the global flags). 34733 34734 Add support for logging. 34735 Add support for ZivLoop. 34736 Improve efficiency if prec(op) >> prec(rop), and rop ~= 0 34737 34738 Fix wrong place for MPFR_LOG_BEGIN. 34739 34740 Rename MPFR_LOG_BADCASE in MPFR_LOG_ZIV 34741 34742 Reduce the size of some lines (more than 80 chars). 34743 347442005-02-02 Patrick P��lissier <patrick.pelissier@gmail.com> 34745 34746 Fix again. My previous fix was incorrect. 34747 34748 Fix wrong order of include system files. 34749 (printf.h is not available everywhere). 34750 347512005-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34752 34753 inexact flag was inexact :-) 34754 347552005-02-02 Patrick P��lissier <patrick.pelissier@gmail.com> 34756 34757 Move mpfr_nexttozero and mpfr_nexttoinf from static to mpfr-impl. 34758 Use them in sub1 and sin. 34759 34760 Add forgotten logging file. 34761 Add description of new macros in README.dev 34762 34763 Add support for ZivLoop controller and logging. 34764 34765 Add experimental logging feature. 34766 Add ZivLoop controller. 34767 34768 Forget that mpf doesn't have mpf_free_str. 34769 Fix this. 34770 34771 Fix bug of sub1 if dest=src2 and src1 >> src2 34772 => Fix problem of mpfr_sin 34773 347742005-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34775 34776 added two tests 34777 347782005-02-01 Patrick P��lissier <patrick.pelissier@gmail.com> 34779 34780 Now MPFR tries to get GMP's CC and CFLAGS from its build directory. 34781 34782 Add AC_COPYRIGHT 34783 Clean up AC_ARG_ENABLE handling 34784 Add `--enable-logging` option. 34785 347862005-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34787 34788 added item 34789 347902005-01-31 Patrick P��lissier <patrick.pelissier@gmail.com> 34791 34792 Fix a wrong assertion when double == long double. 34793 34794 Add loop counter 34795 Check if the result is 0 (Due to new algorithm, it may be 0) 34796 and in that case, increase a lot the precision. 34797 347982005-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34799 34800 changed algorithm for mpfr_sin (to get inexact flag) 34801 348022005-01-29 Vincent Lef��vre <vincent@vinc17.net> 34803 34804 Fixed a sign bug in mpfr_exp (found by Mark J Watkins). 34805 348062005-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34807 34808 solved efficiency problem in mpfr_sin_sign for x near Pi 34809 348102005-01-28 Vincent Lef��vre <vincent@vinc17.net> 34811 34812 Removed tests/tdump.c (was no longer used and mpfr_dump is already 34813 tested in toutimpl.c). 34814 34815 Updated copyright line. 34816 348172005-01-28 Patrick P��lissier <patrick.pelissier@gmail.com> 34818 34819 Clean up code (due to mix with Paul changes). 34820 34821 Improve inexact code since sin & cos can't be exact if x != 0 34822 348232005-01-28 Vincent Lef��vre <vincent@vinc17.net> 34824 34825 Removed a useless test in macro MPFR_UNSIGNED_MINUS_MODULO. 34826 348272005-01-28 Patrick P��lissier <patrick.pelissier@gmail.com> 34828 34829 Much faster worst case (ie result near 0 or 1). 34830 348312005-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34832 34833 speed-up special case where approximation is 1 or -1 34834 348352005-01-28 Vincent Lef��vre <vincent@vinc17.net> 34836 34837 Updated comments about the rounding modes. 34838 348392005-01-28 Patrick P��lissier <patrick.pelissier@gmail.com> 34840 34841 Fix bug and optimize code. 34842 34843 FIx a warning (Wrong proto between declaration and implementation : 34844 forget some const). 34845 348462005-01-28 Vincent Lef��vre <vincent@vinc17.net> 34847 34848 Updated copyright line. 34849 34850 Updated copyright lines. 34851 348522005-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34853 34854 fixed efficiency problem in case of cos(Pi) 34855 348562005-01-28 Patrick P��lissier <patrick.pelissier@gmail.com> 34857 34858 Fix bug if dest==src. 34859 Transform some MPFR_ASSERTN to MPFR_ASSERTD. 34860 348612005-01-27 Patrick P��lissier <patrick.pelissier@gmail.com> 34862 34863 Fix a buffer overflow. 34864 34865 New version of mpfr_set_ld and mpfr_get_ld for IEEE Extended Little Endian. 34866 (Due to problem on x86 with extended precision). 34867 348682005-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34869 34870 partially fixed memory leak 34871 34872 test for huge cancellation was misplaced 34873 34874 fixed memory leak 34875 34876 fixed inefficiency problem for x near from Pi 34877 34878 casts to allow compilation with g++ 34879 34880 added missing cast 34881 34882 added missing casts 34883 348842005-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34885 34886 fixed bug (overlap in mpn_divrem) 34887 348882005-01-24 Vincent Lef��vre <vincent@vinc17.net> 34889 34890 Removed tests/Makefile.in from CVS. 34891 348922005-01-24 Patrick P��lissier <patrick.pelissier@gmail.com> 34893 34894 Fix bug reported by Eric Buchlin by using new function 34895 mpfr_pow_z. 34896 34897 Add new function mpfr_pow_z and its test file. 34898 34899 Fix overflows problems. 34900 Clean up overflow handling. 34901 Maybe some bugs remain... 34902 349032005-01-24 Vincent Lef��vre <vincent@vinc17.net> 34904 34905 Update. 34906 349072005-01-24 Patrick P��lissier <patrick.pelissier@gmail.com> 34908 34909 Add an explicit reference to mpfr_dump so that 34910 you can use this function inside the tests with GDB, even if 34911 you don't use it in the tests. 34912 349132005-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34914 34915 added check before mpz_get_si() call 34916 349172005-01-24 Vincent Lef��vre <vincent@vinc17.net> 34918 34919 Update. 34920 34921 Corrections on the typography. 34922 34923 Corrected English usage. 34924 34925 Typos. 34926 349272005-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34928 34929 added LOADLIBES=... 34930 349312005-01-21 Vincent Lef��vre <vincent@vinc17.net> 34932 34933 Updated Copyright line. 34934 349352005-01-20 Patrick P��lissier <patrick.pelissier@gmail.com> 34936 34937 Fix again this previous patch! 34938 349392005-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34940 34941 fixed problems in get_str for huge exponent 34942 349432005-01-20 Patrick P��lissier <patrick.pelissier@gmail.com> 34944 34945 Update longlong from GMP 4.1.4 (problem with opteron). 34946 349472005-01-18 Patrick P��lissier <patrick.pelissier@gmail.com> 34948 34949 Fix bug in case n==0 or n==1 (Reported and fixed by Laurent Fousse). 34950 349512005-01-14 Patrick P��lissier <patrick.pelissier@gmail.com> 34952 34953 Add comments 34954 Fix bug in my patch (Need tests). 34955 34956 Optimize mpfr_atan_aux by removing all power of 2 in the sum to 34957 reduce the size of the multiplication, normalize the input to extract 34958 as many zeros as possible and add a special case if the input is 1 34959 (after normalisation). But it doesn't optimize too much... 34960 I need to invertigate a few more too understand what is still costly. 34961 It seems that mpz_mul is the most called function. 34962 34963 Improve and fix tanh for big floats. 34964 34965 Fix bug in some corner case (Just hope it doesn't add new bugs). 34966 It should be much faster in these cases too. 34967 34968 Remove warning 34969 34970 Tiny update 34971 34972 Fix bug (Forget a debug line). 34973 349742005-01-13 Patrick P��lissier <patrick.pelissier@gmail.com> 34975 34976 Fix overflow bug 34977 Optimize code 34978 34979 Fix bug in mpn_sub_nc in case the compiler optimize too much. 34980 349812005-01-12 Patrick P��lissier <patrick.pelissier@gmail.com> 34982 34983 Add forgotten 2005 copyright line. 34984 34985 Fix problem of `mpn_sub_nc' which may or may not be defined in libgmp.a 34986 (Add a test in the configure and a new macro MPFR_HAVE_MPN_SUB_NC) 34987 Add MPFR_LOG2_BIT_PER_MP_LIMB macro 34988 34989 Massive optimization of mpfr_atan (20x faster than 2.1.0 at 53 bits!) 34990 Minor optimization of mpfr_acos 34991 349922005-01-11 Patrick P��lissier <patrick.pelissier@gmail.com> 34993 34994 Fix typo 34995 34996 Reduce size of code 34997 Optimize a few too. 34998 34999 Forget 2005 ! 35000 35001 Improve and fix detection of NAN and GCC bug. 35002 350032005-01-04 Patrick P��lissier <patrick.pelissier@gmail.com> 35004 35005 new version (completely rewritten) by Paul Zimmermann. 35006 35007 Fix forgotten '2005' Line. 35008 35009 Fix wrong inexact value (regression). 35010 FIXME: It seems that adding MPFR_GET_EXP (xp) bits is too much 35011 (since previously it always add 0, but the results were quite 35012 always exact - this bug was only discovered under rare case). 35013 350142005-01-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35015 35016 added item (mpfr_printf) 35017 350182005-01-04 Patrick P��lissier <patrick.pelissier@gmail.com> 35019 35020 Optimize mpfr_exp2 by inlining some code, and by avoiding using 35021 mpz_sizeinbase. 35022 35023 Remove unused code. 35024 Remove _MPFR_PROTO for static functions. 35025 Other cosmetic change. 35026 35027 Remove _MPFR_PROTO for static functions. 35028 35029 Remove unused code. 35030 35031 Optimize mpfr_get_d. 35032 35033 Add a new configuration to check before releasing MPFR. 35034 35035 Fix problem of tab with ncurses. 35036 35037 Likely some tests 35038 35039 Fix bug if not gmp-impl.h (mpn_sub_nc is internal). 35040 Move MPFR_SET_EXP after checking the exponent range. 35041 Minor change in the way to return the ternary value. 35042 350432005-01-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35044 35045 changed tab[] into *tab (and removed 'tab' in mpfr.h) 35046 350472004-12-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35048 35049 new version (completely rewritten) 35050 35051 improved coverage (and fixed bug) 35052 350532004-12-21 Patrick P��lissier <patrick.pelissier@gmail.com> 35054 35055 Fixed errors reported by Nelson H. F. Beebe 35056 (forget to include sys/fpu.h if defined and math.h if std=c99). 35057 350582004-12-20 Patrick P��lissier <patrick.pelissier@gmail.com> 35059 35060 Fix wrong integer type and a test. 35061 35062 Add some assertion. 35063 35064 Unlikely one test. 35065 Fix wrong integer type 35066 35067 Reindent the code. 35068 350692004-12-17 Patrick P��lissier <patrick.pelissier@gmail.com> 35070 35071 Optimize mpfr_tan 35072 35073 Optimize the computing of the sign of sinus if GET_EXP(x) < 0 35074 35075 Optimize mpfr_cos. 35076 From 3363 / 21663.99 / 79727 to 3139 / 18920.58 / 69624 (opteron). 35077 35078 Fix precision used to test long double. 35079 Now it is sizeof(long_double)*CHAR_BIT instead of fixed 113. 35080 35081 FIx wrong integer types 35082 Add an assertion. 35083 35084 Likely / Unlikely some code. 35085 35086 Fix problem with long double with ICC (Wrong x86 processor flag). 35087 350882004-12-16 Patrick P��lissier <patrick.pelissier@gmail.com> 35089 35090 Fix wrong integer types. 35091 35092 Fix bug. 35093 35094 Optimize mpfr_acos by choosing a better initial precision. 35095 35096 Optimize mpfr_asin by improving the choice of the initial precision. 35097 35098 Optimize mpfr_atan. 35099 351002004-12-15 Patrick P��lissier <patrick.pelissier@gmail.com> 35101 35102 Fix problem with GCC 4.0 20041212. 35103 35104 Remove thread attribute until I found a good way to use it. 35105 35106 Test 35107 35108 Add 'const' attribute to table. 35109 35110 Remove unused file. 35111 35112 New way of detecting GMP libraray, which should be more portable. 35113 351142004-12-14 Patrick P��lissier <patrick.pelissier@gmail.com> 35115 35116 Remove useless assembly code. 35117 35118 Add "MPFR_USE_NO_MACRO" user macro: it allows the user to link 35119 directly with MPFR functions rather than using Macros to access 35120 them. It doesn't define MPFR variable inside mpfr.h too. 35121 Fix set.c and cmp.c in consequences. 35122 Fix mpf2mpfr.h to use mpfr_get_default_rounding_mode () if needed. 35123 351242004-12-13 Patrick P��lissier <patrick.pelissier@gmail.com> 35125 35126 Improved prototype. 35127 35128 Fix bug of overflow (I hope). 35129 35130 Update mpfr_set_q overflow problem. 35131 35132 Fix wrong integer types. 35133 351342004-12-10 Patrick P��lissier <patrick.pelissier@gmail.com> 35135 35136 Optimize by increasing with BITS_PER_MP_LIMB instead of log2(prec) 35137 35138 Clean up code (Fix integer types + rewrite some code). 35139 Optimize the code by reducing the number of used variables inside the loop. 35140 35141 Replace mpfr_neg to MPFR_CHANGE_SIGN. 35142 35143 Cosmetic changes. 35144 35145 Clean the code. 35146 Avoid mixing integer types. 35147 Fix bug of overflow if Pi is in the range but not Pi/2. 35148 35149 Clean up the code (Removing useless variables and avoid mixing wrong integer types). 35150 Optimize the code by improving memory allocation scheme and by incrementating by 35151 BITS_PER_MP_LIMB in case of an error instead of MPFR_INT_CEIL_LOG2 (prec). 35152 Fix an overflow bug for X=+/-1 (If PI is inside the exponent range, but not PI/2). 35153 351542004-12-09 Patrick P��lissier <patrick.pelissier@gmail.com> 35155 35156 Simplify MPFR_SIGN by removing unnecessary ( ). 35157 35158 Add support for new attribute sentinel in incoming GCC 4.0 35159 35160 Optimize initial precision in case of EXP(x) < 0. 35161 35162 Optimize mpfr_set4. 35163 Inline rounding in mpfr_set4 and mpfr_cache 35164 mpfr_set4 doesn't return MPFR_EVEN_INEX (It was undocumented before). 35165 Fix problems with tests (Avoid mixing MPFR_EVEN_INEX and 1). 35166 Add MPFR_RNDRAW_EVEN for rounding with MPFR_EVEN_INEX inexact support 35167 351682004-12-08 Patrick P��lissier <patrick.pelissier@gmail.com> 35169 35170 Optimize mpfr_mul by inlining and rewriting the rounding. 35171 It seems that GCC option `-frename-registers` for mpfr_mul / Athlon XP 35172 improves its performance (But it decreases it on Pentium4)... 35173 351742004-12-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35175 35176 first try to implement Mulders' algorithm 35177 351782004-11-29 Patrick P��lissier <patrick.pelissier@gmail.com> 35179 35180 Update TODO. 35181 351822004-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35183 35184 added new tests for corner cases 35185 35186 added algo for pi 35187 351882004-11-25 Patrick P��lissier <patrick.pelissier@gmail.com> 35189 35190 Change initial term if exp(a)<0. 35191 35192 Simplify the inner loop. 35193 35194 Change initial precision if EXP(op) < 0. 35195 351962004-11-23 Patrick P��lissier <patrick.pelissier@gmail.com> 35197 35198 Optimize code and rewrite the rounding part. 35199 FIXME: It seems that the previous rounding code was buggy. Still I am not sure. 35200 35201 Improve tests. 35202 352032004-11-19 Patrick P��lissier <patrick.pelissier@gmail.com> 35204 35205 Improve the initial value of prec: 10% improvement (?) on average. 35206 35207 Improve coverage test. 35208 35209 Fix bug for mpfr_ui_pow_ui (Wrong inexact flag). 35210 35211 Improve coverage tests. 35212 35213 Fix typos in INSTALL. 35214 Sort README.dev, and add a new section about How to write a MPFR function. 35215 Add a link to README.dev in mpfr-impl.h. 35216 35217 Fix a bug on some compilators: 35218 First MPFR_SAVE_EXPO_DECL, then TMP_DECL. 35219 352202004-11-18 Patrick P��lissier <patrick.pelissier@gmail.com> 35221 35222 Fix an overflow bug. 35223 35224 Fix bug with inexact flag. 35225 FIXME: Maybe still a bug with inexact flag if overflow in mpfr_mul_2exp ? 35226 35227 Remove mpfr_save_emin_emax and mpfr_restore_emin_emax 35228 from MPFR library since they are useless. 35229 35230 Forget to remove rndraw.c test. 35231 35232 Replace use of mpfr_save_emin_emax () / mpfr_restore_emin_emax() 35233 by MPFR_SAVE_EXPO macros (DECL, MARK and FREE) which are faster 35234 and thread safe. 35235 35236 Enable fast computing. 35237 352382004-11-18 Vincent Lef��vre <vincent@vinc17.net> 35239 35240 Fix: GMP -> MPFR Copying Conditions (noted by Patrick). 35241 352422004-11-18 Patrick P��lissier <patrick.pelissier@gmail.com> 35243 35244 Reorder the file and put sections to make it cleaner and more readable. 35245 35246 Reduce number of used variables. 35247 Optimize code and clean it. 35248 352492004-11-18 Vincent Lef��vre <vincent@vinc17.net> 35250 35251 In HTML, suppress the non-existing link to GMP. 35252 352532004-11-18 Patrick P��lissier <patrick.pelissier@gmail.com> 35254 35255 Add a prototype of own TMP_ALLOC. Don't know if it is a good idea. 35256 To enable it, just build MPFR with MPFR_USE_OWN_TMP_ALLOC. 35257 352582004-11-17 Patrick P��lissier <patrick.pelissier@gmail.com> 35259 35260 Fix bug with TMP_MARK. 35261 352622004-11-16 Patrick P��lissier <patrick.pelissier@gmail.com> 35263 35264 Optimize the code: 35265 + Special case for n == 2 35266 + The first squaring is done using the original input. 35267 35268 Add new assertion to check. 35269 35270 Likely / Unlikely some tests. 35271 352722004-11-15 Patrick P��lissier <patrick.pelissier@gmail.com> 35273 35274 Add unused code (Still needs a proof). 35275 35276 Add macro version for small functions: 35277 mpfr_get_prec, mpfr_get_exp, mpfr_get_default_rounding_mode, 35278 mpfr_get_default_prec and mpfr_set_ui 35279 35280 Refix another bug (The same). 35281 35282 Fix a bug (Use __gmpfr_ceil_log2 instead of MPFR_INT_CEIL_LOG2). 35283 352842004-11-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35285 35286 added algorithm for mpfr_sqrt 35287 improved algorithm for mpfr_div 35288 35289 use MPFR_SET_EXP/MPFR_GET_EXP instead of MPFR_EXP(r)++ 35290 352912004-11-12 Vincent Lef��vre <vincent@vinc17.net> 35292 35293 Bug fix: delayed all the initializations after the singular test. 35294 352952004-11-11 Vincent Lef��vre <vincent@vinc17.net> 35296 35297 Untabified the source. 35298 35299 The test MPFR_GET_EXP(u) != MPFR_EMAX_MAX is no longer necessary 35300 since we decided to lower MPFR_EMAX_MAX to avoid such tests. 35301 353022004-11-10 Patrick P��lissier <patrick.pelissier@gmail.com> 35303 35304 Remove use of CNST_LIMB and TMP_ALLOC_LIMB which are GMP internal. 35305 Add MPFR_LIMB_ZERO. 35306 353072004-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35308 35309 new simpler and faster code 35310 353112004-11-10 Patrick P��lissier <patrick.pelissier@gmail.com> 35312 35313 Replace __gmpfr_ceil_log2 by MPFR_INT_CEIL_LOG2 when possible. 35314 35315 Add __extension__ to avoid warning useless in GCC. 35316 353172004-11-03 Vincent Lef��vre <vincent@vinc17.net> 35318 35319 Update. 35320 353212004-11-03 Patrick P��lissier <patrick.pelissier@gmail.com> 35322 35323 Fix wrong Visual C++ code. 35324 353252004-11-02 Vincent Lef��vre <vincent@vinc17.net> 35326 35327 Code checking for GMP library wasn't working (always returning "yes"?). 35328 353292004-10-27 Vincent Lef��vre <vincent@vinc17.net> 35330 35331 Updated copyright line. 35332 35333 Added a bug and updated copyright line. 35334 35335 Update. 35336 35337 Removed the definitions of DBL_POS_INF/DBL_NEG_INF/DBL_NAN for 35338 Visual C++ as they were incorrect. Modified DOUBLE_ISINF(x) so 35339 that infinities are no longer used (this should fix a part of 35340 the problem for Visual C++). If IEEE 754 is not supported, one 35341 should probably use the standard INFINITY macro instead of 35342 (1.0/0.0), since (1.0/0.0) is specific to IEEE 754. 35343 35344 Applied patch by Steve M. Robbins for non-IRIX MIPS systems 35345 (originally for MPFR 2.0.3). 35346 353472004-10-26 Vincent Lef��vre <vincent@vinc17.net> 35348 35349 Reformatted the code. 35350 35351 Replaced mpfr_set_emin/emax by set_emin/emax in tests to check 35352 the return value; defined set_emin/emax in "tests/tests.c". 35353 Fix: added missing #include <string.h> in "tests/tests.c". 35354 Removed variable names in prototypes in "mpfr-test.h". 35355 353562004-10-22 Vincent Lef��vre <vincent@vinc17.net> 35357 35358 Reformatted the code -> GNU style. 35359 35360 Update. 35361 353622004-10-22 Patrick P��lissier <patrick.pelissier@gmail.com> 35363 35364 Declaration of "tests_rand_start" and "tests_rand_end" with the same storage class specifier 35365 in tests.c (static missing line 65 and 109). 35366 353672004-10-21 Vincent Lef��vre <vincent@vinc17.net> 35368 35369 Bug fixed: cast to unsigned char instead of int for isspace (no, 35370 these are not "psycho" systems, just systems with signed chars). 35371 Untabified the source. 35372 353732004-10-20 Patrick P��lissier <patrick.pelissier@gmail.com> 35374 35375 Improve ICC CFLAGS by removins meaningless warnings. 35376 35377 Remove some warnings on some "psycho" systems. 35378 35379 Update the chapter "Make a release". 35380 35381 Fix bug when you build MPFR outside source directory. 35382 Add function src_fopen to open a file in the source directory, which 35383 may be different from the current directory. 35384 35385 Fix a typo. 35386 353872004-10-19 Vincent Lef��vre <vincent@vinc17.net> 35388 35389 Another correction (English). 35390 35391 Minor correction. 35392 353932004-10-19 Patrick P��lissier <patrick.pelissier@gmail.com> 35394 35395 Update NEWS to reflect the change in mpfr_set_str. 35396 35397 Update mpfr_set_str to be much more like strtofr. 35398 Update the documentation to reflect the changes. 35399 354002004-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35401 35402 changed contributors section 35403 354042004-10-19 Patrick P��lissier <patrick.pelissier@gmail.com> 35405 35406 Add a line about binary compatibility. 35407 354082004-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35409 35410 changed "contributors" section 35411 35412 changed rights (remove executable permission) 35413 354142004-10-18 Vincent Lef��vre <vincent@vinc17.net> 35415 35416 Misc corrections: 35417 + spelling mistakes 35418 + consistency: in direction @var{rnd} -> in the direction @var{rnd} 35419 + @code{NULL} pointer -> null pointer (as in the C standard) 35420 + in the example for mpfr_inits2 / mpfr_clears: NULL -> (void *) 0 35421 as NULL isn't necessarily a pointer. 35422 354232004-10-18 Patrick P��lissier <patrick.pelissier@gmail.com> 35424 35425 Update 35426 35427 Change "unsigned int" to "int" for base in proto of strtofr. 35428 Change set_str to use strtofr (Fix a bug too). 35429 Limit base to 36 in strtofr (since get_str is limited to 36). 35430 Update documentation to reflect the changes. 35431 mpfr_get_d1 is moved to section internal in the documentation. 35432 Update the tests. 35433 35434 Hard code NAN, +INF and -INF values for MVC. 35435 35436 Fix problem on systems where "/dev/null" doesn't exist. 35437 354382004-10-16 Vincent Lef��vre <vincent@vinc17.net> 35439 35440 Misc corrections. 35441 354422004-10-15 Vincent Lef��vre <vincent@vinc17.net> 35443 35444 Updated the section "To make a release". 35445 35446 Updated the version on the trunk. 35447 35448 Update. 35449 35450 Update for 2.1.0. 35451 354522004-10-13 Vincent Lef��vre <vincent@vinc17.net> 35453 35454 Added a comment about autoreconf and a bug in Debian (now fixed). 35455 354562004-10-12 Patrick P��lissier <patrick.pelissier@gmail.com> 35457 35458 Add a note about Windows 64. 35459 354602004-10-11 Patrick P��lissier <patrick.pelissier@gmail.com> 35461 35462 Update documentation. 35463 35464 Improve Windows installation. 35465 35466 Add a line about "near" and "far". 35467 354682004-10-07 Patrick P��lissier <patrick.pelissier@gmail.com> 35469 35470 Add support for ".lib" since it seems to work. 35471 Display GMP version inside the configure. 35472 354732004-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35474 35475 added one new test 35476 354772004-10-04 Vincent Lef��vre <vincent@vinc17.net> 35478 35479 Added worst cases. 35480 354812004-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35482 35483 added new tests (worst-case) 35484 354852004-10-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35486 35487 added new worst-cases (directed rounding) 35488 35489 added new function to implement (dilog) 35490 354912004-09-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35492 35493 fixed bug in get_str_aux when one extra digit 35494 354952004-09-30 Vincent Lef��vre <vincent@vinc17.net> 35496 35497 Added functions mpfr_rint_round, mpfr_rint_trunc, mpfr_rint_ceil, 35498 mpfr_rint_floor. 35499 355002004-09-30 Patrick P��lissier <patrick.pelissier@gmail.com> 35501 35502 Add new test (One failed). 35503 355042004-09-30 Vincent Lef��vre <vincent@vinc17.net> 35505 35506 The cast to uintmax_t wasn't really useful, so I removed it. 35507 Added a comment. 35508 35509 The real fix for sizeof(intmax_t) == sizeof(mp_limb_t). 35510 355112004-09-30 Patrick P��lissier <patrick.pelissier@gmail.com> 35512 35513 Fix a bug if sizeof(intmax_t) == sizeof(mp_limb_t) 35514 355152004-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35516 35517 added worst-case 35518 355192004-09-29 Patrick P��lissier <patrick.pelissier@gmail.com> 35520 35521 cmp(x,y) if x=NAN or y=NAN returns 0 and erange flag. 35522 35523 Update documentation and NEWS to reflect new functions 35524 and functionality. 35525 35526 Improve assertion. 35527 35528 Add mpfr_clear_erangeflag and mpfr_erangeflag_p. 35529 Add test for theses two functions. 35530 mpfr_get_[s/u][i/j] have a deterministic behavior in case of OVERFLOW. 35531 (Return the MINIMUM or the MAXIMUM in the current type, and set 35532 ERANGE_flag). 35533 35534 Add mpfr_uintmax_p and mpfr_intmax_p. 35535 35536 Update INSTALL about C++ 35537 Update TODO and VERSION. 35538 35539 Move mpfr_inits from mpfr-impl to mpfr.h. 35540 Add doc too. 35541 355422004-09-28 Patrick P��lissier <patrick.pelissier@gmail.com> 35543 35544 Reindent the sources (again). 35545 35546 Fix how to detect overflow so that it can be build with GCC -ftrapv 35547 option without any bugs (In the previous code, the overflow was 35548 detected afterwards, whereas, now, it is detected before). 35549 Fix also another real problem of overflow (Addition of two signed integers). 35550 35551 Rename this variable again. 35552 35553 Replace variable 'near' to 'the_real_near' since MSVC incorrectly 35554 recognize "far" and "near" as obsolete keywords (100% incorrect, and 35555 clearly MSVC fault but it doesn't cost many things to change the name). 35556 355572004-09-27 Patrick P��lissier <patrick.pelissier@gmail.com> 35558 35559 Fix typo in the documentation about get_ functions. 35560 35561 Retab the sources. 35562 355632004-09-27 Vincent Lef��vre <vincent@vinc17.net> 35564 35565 Added mpfr_get_uj and mpfr_get_sj in the changes 2.0.3 -> 2.1.0. 35566 35567 Added an item about the future MPFR_FLAGS_ERANGE flag. 35568 35569 New functions mpfr_get_sj and mpfr_get_uj, with tests. 35570 355712004-09-27 Patrick P��lissier <patrick.pelissier@gmail.com> 35572 35573 Remove MPFR_NEED_LONGLONG_H macro. 35574 355752004-09-26 Vincent Lef��vre <vincent@vinc17.net> 35576 35577 Added a cast to avoid an integer overflow. 35578 355792004-09-24 Vincent Lef��vre <vincent@vinc17.net> 35580 35581 Fixed integer overflow. 35582 35583 Fixed bugs (like those in mpfr_get_ui). 35584 35585 The standard autoreconf script should now be used instead of prepare. 35586 355872004-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35588 35589 forgot to check for 0 35590 35591 now use mpfr_rint() 35592 355932004-09-24 Patrick P��lissier <patrick.pelissier@gmail.com> 35594 35595 Update doc of mpfr_get_str (Minimum space is 7). 35596 355972004-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35598 35599 fixed double-rounding bug in get_ui 35600 356012004-09-23 Patrick P��lissier <patrick.pelissier@gmail.com> 35602 35603 Prevent from multiple inclusion. 35604 mpf_init inits to 0 rather than NAN. 35605 35606 Fix some tiny problems. 35607 356082004-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35609 35610 added item on rounding to odd 35611 356122004-09-21 Patrick P��lissier <patrick.pelissier@gmail.com> 35613 35614 Fix a bug in FreeBsd 5.20 / Alpha / Gcc 3.3.3. 35615 Not a MPFR bug, but add some code to avoid it. 35616 Reference: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=72024 35617 35618 Add a new test and clarify a comment. 35619 35620 Update Assertion for pow2. 35621 356222004-09-20 Patrick P��lissier <patrick.pelissier@gmail.com> 35623 35624 Update NEWS. 35625 35626 Update TODO due to new function mpfr_strtofr 35627 35628 Add ICC detection && support. 35629 Remove some potential warnings in the test files. 35630 35631 Add mpfr_strtofr function. 35632 Add mpfr_strtofr test file. 35633 Add mpfr_strtofr documentation. 35634 35635 Improve GMP.h vs libgmp.a version checking. 35636 356372004-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35638 35639 added one entry (new function 1/sqrt(x)) 35640 356412004-09-17 Patrick P��lissier <patrick.pelissier@gmail.com> 35642 35643 Use LIBS instead of LDADD for libraries (GMP). 35644 35645 Min GMP version is 4.1.0 now. 35646 356472004-09-16 Patrick P��lissier <patrick.pelissier@gmail.com> 35648 35649 Add a check if both gmp.h and libgmp.a have the same version. 35650 35651 Fix a typo. 35652 356532004-09-15 Patrick P��lissier <patrick.pelissier@gmail.com> 35654 35655 Add a forgotten regression test "1.2.3" 35656 356572004-09-15 Vincent Lef��vre <vincent@vinc17.net> 35658 35659 Update from the autotools-dev Debian package. 35660 35661 Update. 35662 356632004-09-14 Patrick P��lissier <patrick.pelissier@gmail.com> 35664 35665 Add 2 new macros for handling correctly overflow. 35666 356672004-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35668 35669 fixed bug (several '.' allowed in mantissa) 35670 356712004-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35672 35673 added notes for Windows 35674 356752004-09-02 Patrick P��lissier <patrick.pelissier@gmail.com> 35676 35677 Add a line about Dynamic Version of MPFR. 35678 356792004-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35680 35681 added warnings about init functions (mpf wrt mpfr) 35682 356832004-08-31 Patrick P��lissier <patrick.pelissier@gmail.com> 35684 35685 Update documentations. 35686 35687 Rename mpz_set_fr to mpfr_get_z. 35688 Provide a conditionnal macro for mpz_set_fr. 35689 35690 Add doc for mpfr_sqr. 35691 35692 Fix month. 35693 356942004-08-26 Patrick P��lissier <patrick.pelissier@gmail.com> 35695 35696 Add a new test to check overflow. 35697 356982004-08-24 Patrick P��lissier <patrick.pelissier@gmail.com> 35699 35700 Try to retype correctly the functions (replace int by the correct type). 35701 Still some works to do. 35702 357032004-08-23 Patrick P��lissier <patrick.pelissier@gmail.com> 35704 35705 Add description of what does MPFR_INT_CEIL_LOG2. 35706 35707 Move __gmpfr_isqrt and __gmpfr_cuberoot to another file. 35708 Clean up the code of mpfr_exp_2: remove DEBUG condition to use TRACE, ASSERT and DUMP. 35709 Use MPFR_INT_CEIL_LOG2 instead of __gmpfr_ceil_log2. 35710 35711 Improve a comment. 35712 35713 Add MPFR_INT_CEIL_LOG2 macro and __gmpfr_int_ceil_log2 function 35714 (don't use function but macro). 35715 35716 Fix 2 typos. 35717 357182004-08-19 Patrick P��lissier <patrick.pelissier@gmail.com> 35719 35720 Fix a bug on 64-bits introduced due to huger MPFR_EMAX_MAX. 35721 35722 Add new functions: mpfr_get_emin_min, mpfr_get_emax_max, mpfr_get_emin_max and 35723 mpfr_get_emax_min. 35724 Add documentation and explanation about potential portability problem when 35725 you mpfr_set_emin and mpfr_set_emax. 35726 357272004-07-28 Vincent Lef��vre <vincent@vinc17.net> 35728 35729 Added mpfr-longlong.h to libmpfr_a_SOURCES so that it is distributed 35730 with make dist. 35731 35732 Added mpfr-gmp.h to libmpfr_a_SOURCES so that it is distributed 35733 with make dist. 35734 357352004-07-26 Patrick P��lissier <patrick.pelissier@gmail.com> 35736 35737 Add a new section. 35738 357392004-07-20 Patrick P��lissier <patrick.pelissier@gmail.com> 35740 35741 Add function mpfr_sqr (TODO: Make doc) 35742 357432004-07-19 Patrick P��lissier <patrick.pelissier@gmail.com> 35744 35745 Fix an unsigned/signed comparison. 35746 35747 Improve the emulation of mpn_sqr_n and fix some typos. 35748 357492004-07-16 Patrick P��lissier <patrick.pelissier@gmail.com> 35750 35751 Remove unused item "rnd_mode" in cache struct. 35752 35753 Renamme mpfr_version to mpfr_get_version to be more GMP compatible. 35754 Add macro mpfr_version. 35755 35756 Likely some tests. 35757 357582004-07-15 Patrick P��lissier <patrick.pelissier@gmail.com> 35759 35760 Add a speciliation for set_si for GCC. 35761 357622004-07-09 Patrick P��lissier <patrick.pelissier@gmail.com> 35763 35764 Try to optimize a few agm by rewriting a few the loop. 35765 35766 Likely / Unlikely some tests using gcov. 35767 357682004-07-06 Patrick P��lissier <patrick.pelissier@gmail.com> 35769 35770 Remove some unused code. 35771 Add MPFR_LMIB_PER_DOUBLE 35772 Add MPFR_DUMP 35773 Add MPFR_TRACE 35774 35775 Likely some tests. 35776 35777 Used static precision for the array of limb for double. 35778 35779 Likely some tests / Other minor optimisations. 35780 35781 Minor modifications. 35782 35783 Unlikely a test so that it is faster when you call theses functions 35784 with the same dest and source which is the common case in MPFR. 35785 35786 Likely a test to optimize when dest and src are the same 35787 (which is very likely inside MPFR). 35788 35789 Likely a test (since cache should always work fine). 35790 357912004-06-28 Patrick P��lissier <patrick.pelissier@gmail.com> 35792 35793 Add some likely, and use a static table instead of a dynamic one. 35794 357952004-06-16 Patrick P��lissier <patrick.pelissier@gmail.com> 35796 35797 Unlikely some tests. 35798 357992004-06-10 Patrick P��lissier <patrick.pelissier@gmail.com> 35800 35801 Likely / Unlikely the code. 35802 35803 Respace some macro. 35804 35805 Retab some lines. 35806 35807 Optimize a bit. 35808 35809 Fix an overflow bug. 35810 358112004-06-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35812 35813 fixed bug in mpfr_exp_3 (wrong assert) 35814 358152004-05-27 Patrick P��lissier <patrick.pelissier@gmail.com> 35816 35817 Fix typos. 35818 35819 Update doc. 35820 358212004-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35822 35823 fixed problem for x near from Pi/2 (the internal precision should take 35824 into account the cancellation) 35825 358262004-05-18 Patrick P��lissier <patrick.pelissier@gmail.com> 35827 35828 Improve tests for sin. 35829 358302004-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35831 35832 mpfr_sin_sign() should use at least MPFR_GET_EXP() bits 35833 358342004-05-17 Patrick P��lissier <patrick.pelissier@gmail.com> 35835 35836 Remove an item. 35837 358382004-05-12 Patrick P��lissier <patrick.pelissier@gmail.com> 35839 35840 Add a potential test (Too slow). 35841 35842 Simplify the code. 35843 358442004-05-11 Patrick P��lissier <patrick.pelissier@gmail.com> 35845 35846 Remove a C++ comment. 35847 358482004-05-10 Patrick P��lissier <patrick.pelissier@gmail.com> 35849 35850 Remove a forgotten "assertd" which isn't useful anymore. 35851 358522004-05-07 Patrick P��lissier <patrick.pelissier@gmail.com> 35853 35854 Optimize cos. 35855 358562004-05-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35857 35858 improved initial value of working precision (did not take into account 35859 2K lost bits for large arguments) 35860 358612004-05-06 Patrick P��lissier <patrick.pelissier@gmail.com> 35862 35863 Fix overflow and add corresponding tests. 35864 35865 Fix a bug in a formula. 35866 35867 Optimize it a bit. 35868 35869 Fix overflow problems. 35870 35871 Fix overflow bug. 35872 358732004-05-05 Patrick P��lissier <patrick.pelissier@gmail.com> 35874 35875 Remove the double vars. (Use fixed instead). 35876 35877 Add a note about tanh. 35878 35879 Fix a bug in cas of overflow in tanh. 35880 35881 Optimize a few by reducing the # of used vars. 35882 35883 Fix critical bugs due to different kind of overflow in cosh. 35884 35885 Add MPFR_TMP_INIT_ABS macro. 35886 35887 Optimize cosh a few by removing an unused intermedary var. 35888 35889 Fix a critical bug in case of overflow. 35890 358912004-05-04 Patrick P��lissier <patrick.pelissier@gmail.com> 35892 35893 Fix a critical bug in cos in case you have set the float range for the exponents. 35894 35895 Optimize a few cos. 35896 35897 Optimize the way of computing initial precision. 35898 35899 Add a test to check an overflow in const_pi (called by log in case of emulation of the float type). 35900 35901 Move to ASSERT mode some code. 35902 35903 Push/Pop emin/emax so that an overflow can't occur in mpfr_set_z(x,pi,r) 35904 Add test too. 35905 35906 Add some UNLIKELY to the while. 35907 35908 Add some UNLIKELY to the tests. 35909 35910 Fix an overflow bug in add1sp. 35911 359122004-04-29 Patrick P��lissier <patrick.pelissier@gmail.com> 35913 35914 Fix a typo in AC_MY_LIBS. 35915 359162004-04-28 Patrick P��lissier <patrick.pelissier@gmail.com> 35917 35918 Add mpfr_cmp as a real function, not only a macro. 35919 35920 Add mpfr_set and mpfr_abs as real functions. 35921 359222004-04-27 Patrick P��lissier <patrick.pelissier@gmail.com> 35923 35924 When using GCC, optimize certain common comparisons. 35925 359262004-04-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35927 35928 added one item 35929 359302004-04-27 Patrick P��lissier <patrick.pelissier@gmail.com> 35931 35932 Minor Optimizations. 35933 35934 Fix a bug (Use nextbeloz instead of sub_one_ulp). 35935 359362004-04-21 Patrick P��lissier <patrick.pelissier@gmail.com> 35937 35938 Add option in configure: --disable-cache 35939 to disable the use of the cache for the const. 35940 35941 Fix a typo. 35942 35943 Add preliminary generic code to handle cached const. 35944 Move const_pi, const_log2 to use this generic cache, 35945 which fix bugs of the previous implementation. 35946 const_euler is now cached too. 35947 35948 Fix a bug (If x = Nan, the new new precision wasn't set). 35949 35950 Fix a typo bug. 35951 359522004-04-20 Patrick P��lissier <patrick.pelissier@gmail.com> 35953 35954 Add new test about the cache: new bug to fix. 35955 35956 Add forgotten file for mpfr_zero_p. 35957 35958 Add mpfr_zero_p. 35959 Add macros for mpfr_inf_p, mpfr_nan_p and mpfr_zero_p. 35960 Add macro for mpfr_sgn. 35961 Update doc. 35962 Add new tests. 35963 35964 Fix a bug in a proto. 35965 35966 Fix a bug when both op are < 0 (It seems it was my fault). 35967 Add a test to check it. 35968 359692004-04-09 Patrick P��lissier <patrick.pelissier@gmail.com> 35970 35971 Fix a bug (Remove useless function). 35972 359732004-04-08 Patrick P��lissier <patrick.pelissier@gmail.com> 35974 35975 Fix another bug (Maybe the last?). 35976 35977 Fix a tiny bug. 35978 35979 Update memory allocations scheme without gmp-impl.h. 35980 Now the semantic of the memory allocation scheme is the same 35981 with and without gmp-impl, as it should be. 35982 359832004-04-07 Patrick P��lissier <patrick.pelissier@gmail.com> 35984 35985 For add/sub_type functions where type is a type without signed zeros, 35986 specify the expected result when both operands are 0. 35987 35988 Modify a few the allocation scheme without gmp-impl.h 35989 Add pseudo-constants __MPFR_EXP_NAN, __MPFR_EXP_ZERO and __MPFR_EXP_INF 35990 for future (?) inlining of some functions. 35991 359922004-04-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35993 35994 fixed problem when overflow in destination exponent happens 35995 359962004-04-07 Patrick P��lissier <patrick.pelissier@gmail.com> 35997 35998 Fix a bug in case a mpz_t == 0 (mpz_sizeinbase(0Z,2)==0 and MPFR_PREC_MIN=2). 35999 36000 Fix a bug in case of pow(2E1000000,-10); 36001 360022004-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36003 36004 fixed problem (cmpabs doesn't work for x=0) 36005 360062004-03-26 Patrick P��lissier <patrick.pelissier@gmail.com> 36007 36008 Change from MP_LIMB_T_ONE to MPFR_LIMB_ONE and/or MPFR_LIMB_MASK. 36009 36010 Improve comments. 36011 36012 Fix a bug. 36013 36014 Move detecting macros (__MPFR_GCC, __MPFR_STDC, __MPFR_GLIBC and __MPFR_GMP) from mpfr to mpfr-impl 36015 360162004-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36017 36018 removed blank 36019 360202004-03-22 Vincent Lef��vre <vincent@vinc17.net> 36021 36022 Test write access to CVS. 36023 360242004-03-18 Patrick P��lissier <patrick.pelissier@gmail.com> 36025 36026 Fix a bug in a string. 36027 360282004-03-17 Patrick P��lissier <patrick.pelissier@gmail.com> 36029 36030 Add documentation of 'j' functions. 36031 36032 Fix (?) definition of MPFR_PREC_MAX. 36033 36034 Change the order of the tests. 36035 36036 Rename mpfr_exp3 in mpfr_exp_3. 36037 Update THRESHOLD for mpfr_exp. 36038 Add MPFR_EXP_THRESHOLD. 36039 360402004-03-16 Patrick P��lissier <patrick.pelissier@gmail.com> 36041 36042 Add new option "--with-gmp-build=" 36043 36044 Update INSTALL 36045 36046 Fix a bug (Forget to cast to mp_exp_t). 36047 36048 Update comment 36049 36050 Add mpz_set_fr function and its test. 36051 360522004-03-15 Patrick P��lissier <patrick.pelissier@gmail.com> 36053 36054 Add new functions: 36055 mpfr_set_sj_2exp, mpfr_set_sj 36056 mpfr_set_uj_2exp, mpfr_set_uj 36057 36058 Fix a compiler bug (limb !=0 instead of limb). 36059 36060 Fix a cast problem on some systems (sizeof(mp_limb_t) > sizeof(unsigned long)). 36061 360622004-03-12 Patrick P��lissier <patrick.pelissier@gmail.com> 36063 36064 Remove use of abort (They can create core dump on some systems). 36065 36066 Fix bug of inexact flag for acos(0). 36067 36068 Update. 36069 360702004-03-11 Patrick P��lissier <patrick.pelissier@gmail.com> 36071 36072 Fix bug about forgotten MPFR_INVERT_RND. 36073 Add test too. 36074 36075 Add doc about HAVE_STDINT_H 36076 360772004-03-10 Patrick P��lissier <patrick.pelissier@gmail.com> 36078 36079 Fix doc about MPFR_DECL_INIT. 36080 36081 Fix the declaration of 'MPFR_DECL_INIT' 36082 36083 Add 'MPFR_DECL_INIT' macro. 36084 36085 Rename NEAREST_AWAY in GMP_RNDNA. 36086 36087 Add the description of mpfr_set_ui_2exp and mpfr_set_si_2exp. 36088 360892004-03-09 Patrick P��lissier <patrick.pelissier@gmail.com> 36090 36091 Add mpfr_set_si_2exp and mpfr_set_ui_2exp and their tests. 36092 36093 Add doc about mpfr_cmp_f function 36094 36095 Add mpfr_cmp_f and its test. 36096 36097 Add mpfr_cmp_ld and its test 36098 36099 Add doc of 2 macros. 36100 36101 Add mpfr_cmp_ui and mpfr_cmp_si as real functions 36102 (The macros are still defined and used). 36103 36104 Add mpfr_add_si, mpfr_sub_si, mpfr_si_sub, mpfr_mul_si, mpfr_div_si and 36105 mpfr_si_div. 36106 Add the corresponding test. 36107 36108 Add `mpfr_cmp_q` and `mpfr_cmp_z`. 36109 36110 Clean up configure 36111 36112 Add ASSERT for NAN. 36113 361142004-02-27 Patrick P��lissier <patrick.pelissier@gmail.com> 36115 36116 Add documentation for MPFR_VERSION 36117 361182004-02-26 Patrick P��lissier <patrick.pelissier@gmail.com> 36119 36120 Optimize a few mpfr_mul. 36121 36122 Add Laurent Fousse in the AUTHORS file. 36123 361242004-02-26 Vincent Lef��vre <vincent@vinc17.net> 36125 36126 Fixed a bug in check2b and added a test; add1.c coverage is now 36127 complete. 36128 361292004-02-25 Vincent Lef��vre <vincent@vinc17.net> 36130 36131 Improved coverage. 36132 36133 Improved coverage. 36134 36135 Bugs fixed in a test function -> improved coverage. 36136 361372004-02-25 Patrick P��lissier <patrick.pelissier@gmail.com> 36138 36139 Optimize mpfr_round_raw_? 36140 36141 Simplify the code. 36142 361432004-02-24 Vincent Lef��vre <vincent@vinc17.net> 36144 36145 Avoid integer overflow. 36146 36147 Ported code clean-up to trunk. 36148 361492004-02-24 Patrick P��lissier <patrick.pelissier@gmail.com> 36150 36151 Remove some warnings. 36152 MPFR can be compiled (but not checked!) with a C++ compiler. 36153 36154 Improve test coverage. 36155 361562004-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36157 36158 further simplification of the code (replaced one in-place shift and copy 36159 by out-of-place shift or copy) 36160 361612004-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36162 36163 use GMP_RND_MAX instead of hard-coded constant 36164 36165 simplified the code of div.c and improved coverage 36166 361672004-02-23 Patrick P��lissier <patrick.pelissier@gmail.com> 36168 36169 Rename 'longlong.h' in 'mpfr-longlong.h' so that when MPFR is built 36170 within GMP it uses GMP's 'longlong.h' rather than MPFR's copy. 36171 361722004-02-23 Vincent Lef��vre <vincent@vinc17.net> 36173 36174 Update. 36175 361762004-02-23 Patrick P��lissier <patrick.pelissier@gmail.com> 36177 36178 Add mpfr_free_cache (2). 36179 36180 Add mpfr_free_cache. 36181 36182 Add mpfr_free_str function. 36183 36184 Remove a warning. 36185 36186 Reorder the declarations of the functions. 36187 Remove duplicate declarations. 36188 Remove mpfr_factorial. 36189 361902004-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36191 36192 patch from Guillaume Hanrot 36193 361942004-02-23 Patrick P��lissier <patrick.pelissier@gmail.com> 36195 36196 Improve coverage tests. 36197 Fix 2 underflow bugs. 36198 36199 Update comment 36200 36201 Improve comments. 36202 36203 Add a comment. 36204 362052004-02-22 Vincent Lef��vre <vincent@vinc17.net> 36206 36207 Added tests. 36208 362092004-02-20 Laurent Fousse <laurent@komite.net> 36210 36211 Changed mpfr_sum to use unsigned long instead of unsigned int. More tests. 36212 362132004-02-20 Patrick P��lissier <patrick.pelissier@gmail.com> 36214 36215 mpfr_neg (b, b, r) for b=NAN didn't set NAN flag. 36216 36217 mpfr_sgn is no longer a macro. 36218 362192004-02-19 Patrick P��lissier <patrick.pelissier@gmail.com> 36220 36221 Fix bug with exact rationnal arguments (0.5+3/2 freezes). 36222 362232004-02-18 Vincent Lef��vre <vincent@vinc17.net> 36224 36225 Update from the autotools-dev Debian package (2004-01-05). 36226 36227 Fixed a bug in mpfr_set_f for 0 (wrong sign) and added the test. 36228 362292004-02-18 Patrick P��lissier <patrick.pelissier@gmail.com> 36230 36231 Fix bug if you build MPFR with ASSERT. 36232 362332004-02-17 Patrick P��lissier <patrick.pelissier@gmail.com> 36234 36235 Reduce the number of used variables. 36236 362372004-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36238 36239 improved again documentation 36240 36241 simplified rounding 36242 36243 improved documentation of *inexp 36244 362452004-02-17 Patrick P��lissier <patrick.pelissier@gmail.com> 36246 36247 Simplify the random code. 36248 36249 Optimize it a few. 36250 36251 Add 2004 in copyright line. 36252 36253 Add a section which describes the needed macros for building MPFR. 36254 362552004-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36256 36257 added comment about probability of normalized product 36258 362592004-02-17 Vincent Lef��vre <vincent@vinc17.net> 36260 36261 Added a note about the ternary value, important in practice. 36262 362632004-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36264 36265 fixed 2 bugs and added test 36266 36267 added comment about return value 36268 362692004-02-17 Patrick P��lissier <patrick.pelissier@gmail.com> 36270 36271 Try so support GMP as a Shared Library. 36272 362732004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36274 36275 improved error message 36276 362772004-02-16 Patrick P��lissier <patrick.pelissier@gmail.com> 36278 36279 Fix the computing of the error for mpq_add and mpq_sub. 36280 362812004-02-16 Vincent Lef��vre <vincent@vinc17.net> 36282 36283 Added more tests (improved tadd1.c coverage). 36284 362852004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36286 36287 added cancellation test for add_q 36288 362892004-02-16 Vincent Lef��vre <vincent@vinc17.net> 36290 36291 Added tests (improved tadd1.c coverage). 36292 362932004-02-16 Patrick P��lissier <patrick.pelissier@gmail.com> 36294 36295 Fix bug of add_q and sub_q with special values (NAN, INF and ZERO). 36296 362972004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36298 36299 deal with overflow/underflow in mpfr_div 36300 36301 added hard-coded tests 36302 363032004-02-16 Vincent Lef��vre <vincent@vinc17.net> 36304 36305 When the precisions are the same, test both mpfr_add1sp and mpfr_add1. 36306 36307 Added overflow check. 36308 363092004-02-16 Patrick P��lissier <patrick.pelissier@gmail.com> 36310 36311 Optimize add1sp, sub1sp and div. 36312 Improve coverage test for sub1sp. 36313 363142004-02-16 Vincent Lef��vre <vincent@vinc17.net> 36315 36316 Removed unused label. 36317 36318 Really reverted to rev. 1.54 + kept optimization + commented out 36319 is_odd_even. 36320 363212004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36322 36323 take into account possible out-of-range exponent 36324 36325 revert to rev 1.54 code for case x infinite 36326 (was less efficient but simpler) 36327 36328 fixed bug with in-place computation 36329 363302004-02-16 Vincent Lef��vre <vincent@vinc17.net> 36331 36332 Code clean-up and fix to avoid warnings. 36333 363342004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36335 36336 changed back to C99 standard for special values of x^y 36337 36338 added test for *function* mpfr_round 36339 36340 check return value of fopen 36341 363422004-02-16 Vincent Lef��vre <vincent@vinc17.net> 36343 36344 Removed the no longer used label "fin" and fixed the indentation. 36345 36346 Fix: MPFR_NOT_ZERO -> MPFR_NOTZERO. 36347 36348 Commented out the now useless "double uo, vo;". 36349 363502004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36351 36352 improved coverage tests 36353 363542004-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36355 36356 new coverage tests 36357 36358 improved coverage test 36359 363602004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36361 36362 improved coverage test 36363 36364 improved test coverage 36365 36366 improved test coverage 36367 36368 improved test coverage 36369 363702004-02-13 Patrick P��lissier <patrick.pelissier@gmail.com> 36371 36372 Fix a bug in taddsp (Forget to check if random does not generate zero). 36373 363742004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36375 36376 improved editing style 36377 36378 improved test coverage 36379 36380 partly rewritten, and improved test coverage 36381 363822004-02-13 Vincent Lef��vre <vincent@vinc17.net> 36383 36384 Added tests for mpfr_mul_2si and mpfr_div_2si + corrections. 36385 36386 Replaced mpfr_mul_2exp and mpfr_div_2exp by mpfr_mul_2ui and 36387 mpfr_div_2ui as the 2exp form is obsolete. 36388 363892004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36390 36391 removed warnings 36392 363932004-02-13 Patrick P��lissier <patrick.pelissier@gmail.com> 36394 36395 Add test for mpfr_cmpabs 36396 Add test for mpfr_fits_ 36397 Add test for internal dumping functions. 36398 Improve coverage test for exceptions / set / check. 36399 364002004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36401 36402 improved coverage 36403 36404 removed Kevin, added missing accent 36405 36406 improved coverage test 36407 364082004-02-12 Patrick P��lissier <patrick.pelissier@gmail.com> 36409 36410 Rewrite (simplify) mpfr_dump. 36411 Change its proto. 36412 Fix mpf_dump macro in mpf2mpfr. 36413 36414 Remove MPFR_ASSERTN(0) and add MPFR_ASSERTD(last condition) instead. 36415 364162004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36417 36418 improved coverage 36419 36420 improved coverage 36421 36422 improved cov. test 36423 36424 improved cov. test 36425 36426 improved coverage test 36427 36428 improved coverage test 36429 36430 improved test coverage 36431 364322004-02-12 Patrick P��lissier <patrick.pelissier@gmail.com> 36433 36434 Improve coverage of const_pi and const_log2 (Test for prec > 20000). 36435 364362004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36437 36438 fixed tiny bugs for corner cases 36439 improved test coverage 36440 364412004-02-12 Patrick P��lissier <patrick.pelissier@gmail.com> 36442 36443 + Add mpfr_add1sp which provides addition when all the operands have the same precision. 36444 + Add new test files for mpfr_copysign and mpfr_min and mpfr_max. 36445 + Add test for mpfr_exp10 in tests/texp.c 36446 + Improve coverage of div_2ui.c and mul_2ui.c 36447 + Add a forgotten ASSERT in mpfr_sqrt 36448 364492004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36450 36451 improved test coverage 36452 replaced mpfr_get_d1 by mpfr_get_si 36453 36454 improved coverage test 36455 36456 added new coverage test 36457 364582004-02-12 Patrick P��lissier <patrick.pelissier@gmail.com> 36459 36460 Fix some mistakes. 36461 36462 Add a description of the gcov tool. 36463 364642004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36465 36466 now 100% of coverage of sub1.c 36467 36468 new test file for mpfr_dim 36469 364702004-02-06 Patrick P��lissier <patrick.pelissier@gmail.com> 36471 36472 Replace AS_HELP_STRING to AC_HELP_STRING (obsolete) 36473 36474 Add forgotten copyright 2004 line. 36475 Add a small documentation about mpfr_sum. 36476 36477 Added mpfr_sum function. 36478 36479 + Better support of non IEEE doubles. 36480 + You can compile MPFR without gmp internal files (ie gmp-impl.h, gmp-mparam.h, and config.h). You only need gmp.h and libgmp.a. But you can still compile with GMP internal files (configure detects them). 36481 364822004-02-06 Vincent Lef��vre <vincent@vinc17.net> 36483 36484 Update. 36485 36486 Updated MPFR URL. 36487 36488 Added the changes from version 2.0.1 to version 2.0.2. 36489 36490 Added: "3) Update the NEWS file.". 36491 364922004-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36493 36494 fixed bug in get_str (case pow2, rnd=up or down) 36495 364962004-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36497 36498 fixed problem (s1 = s-1 inexact) 36499 36500 fixed problem in gamma/factorial 36501 36502 added new tests for agm and hypot (+ fixed bugs) 36503 365042004-01-29 Patrick P��lissier <patrick.pelissier@gmail.com> 36505 36506 Add GMP_RND_MAX so that a for loop of the rounding modes looks like: 36507 for(int r = 0 ; r < GMP_RND_MAX ; r++) 36508 365092004-01-28 Patrick P��lissier <patrick.pelissier@gmail.com> 36510 36511 Better supports of non IEEE-754 floats (don't use anymore ieee_double_extract if _GMP_IEEE is not set). 36512 365132004-01-28 Vincent Lef��vre <vincent@vinc17.net> 36514 36515 Added comments and a temporary fix. 36516 365172004-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36518 36519 fixed bugs in atan cbrt erf 36520 added new hard-coded tests 36521 365222004-01-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36523 36524 removed argument reduction in sin(Pi*s/2) [delegated to mpfr_sin] 36525 36526 print inputs of test2 in binary form 36527 commented out test for 0.8 (input is not exactly representable) 36528 365292004-01-26 Patrick P��lissier <patrick.pelissier@gmail.com> 36530 36531 + Internal functions of zeta are now declared as static. 36532 + Add new tests which fail. 36533 365342004-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36535 36536 added several hard-coded tests (and fixed bugs found) 36537 365382004-01-20 Patrick P��lissier <patrick.pelissier@gmail.com> 36539 36540 Fix tiny bug of Concept Index / Rounding Modes. 36541 36542 Update minor things. 36543 365442004-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36545 36546 minor change in contributions 36547 36548 added Patrick in the main contributors 36549 365502004-01-20 Vincent Lef��vre <vincent@vinc17.net> 36551 36552 Fixed spelling mistake. 36553 365542004-01-20 Patrick P��lissier <patrick.pelissier@gmail.com> 36555 36556 Reorder the documentation. 36557 365582004-01-19 Kevin Ryde <user42@zip.com.au> 36559 36560 # Add a remark to mpf_strto. 36561 36562 # Drop my thought about addmul instead of fma. The latter takes a 36563 # separate destination and is hence not the same as what mpn and mpz 36564 # addmul do. 36565 365662004-01-19 Patrick P��lissier <patrick.pelissier@gmail.com> 36567 36568 Update tests to remove the use of double when possible. 36569 36570 Reenable the cmp between inexact flags. 36571 36572 Add mpfr_get_default_rounding_mode. 36573 Add the tests for mpfr_get/set_default_rounding_mode. 36574 Fix mpfr_set_default_rounding_mode. 36575 365762004-01-19 Vincent Lef��vre <vincent@vinc17.net> 36577 36578 _mpfr_ceil -> mpfr_ceil_double + check for overflow. 36579 36580 Moved the mpfr_mpn_exp function to a new file "mpn_exp.c" as it is 36581 used by both "get_str.c" and "set_str.c". 36582 365832004-01-16 Patrick P��lissier <patrick.pelissier@gmail.com> 36584 36585 Update it to remove the use of float/double. 36586 365872004-01-15 Patrick P��lissier <patrick.pelissier@gmail.com> 36588 36589 Add a new check in tget_str.c. 36590 36591 Add new macros. 36592 36593 Readd stdio.h in case of DEBUG mode. 36594 36595 Optimize a few sub1sp by removing the normalisation in case of exact rounding and by removing the calcul of the rounding mode in case of exact rounding. 36596 365972004-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36598 36599 fixed problem in case m=0 and b=2^k (lost bits from 1st digit were not taken 36600 into account) 36601 36602 mpn_exp -> mpfr_mpn_exp 36603 366042004-01-15 Vincent Lef��vre <vincent@vinc17.net> 36605 36606 Removed gammaPiAGMformula.c (old version, no longer used). 36607 366082004-01-14 Vincent Lef��vre <vincent@vinc17.net> 36609 36610 Changed some error messages into assertions. 36611 Removed some useless #include's. 36612 366132004-01-14 Patrick P��lissier <patrick.pelissier@gmail.com> 36614 36615 Continue to port tests so that they don't use double. 36616 366172004-01-09 Patrick P��lissier <patrick.pelissier@gmail.com> 36618 36619 Update the tests to reduce the use of floats. 36620 36621 Remove unused files mpfi.c and mpfi.h 36622 36623 Update test. 36624 Don't use floats anymore. 36625 36626 Add RND_RAND 36627 Add SIGN_RAND 36628 36629 + Simplify the singular code. 36630 + Fix potential type errors. (Used mpfr_prec_t instead of mpfr_uexp_t). 36631 366322004-01-08 Patrick P��lissier <patrick.pelissier@gmail.com> 36633 36634 + Add a new test file for checking functions mpfr_add/sub/mul/div_q/z (from gmp_op.c). 36635 + Fix bugs of mpfr_add/sub/mul/div_q/z. 36636 366372004-01-07 Vincent Lef��vre <vincent@vinc17.net> 36638 36639 -0 -> @minus{}0. 36640 36641 Specifications for mpfr_min and mpfr_max. 36642 36643 Updated MPFR_INTPREC_MAX definition, as mpfr_prec_t has changed. 36644 366452004-01-07 Patrick P��lissier <patrick.pelissier@gmail.com> 36646 36647 Add a new test between sub1 and sub1sp. 36648 36649 Fix copyright line. 36650 366512004-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36652 36653 fixed wrong sign of inexact flag 36654 366552004-01-07 Vincent Lef��vre <vincent@vinc17.net> 36656 36657 Added casts to size_t so that integers representing a size get 36658 this type as soon as possible. 36659 366602004-01-07 Patrick P��lissier <patrick.pelissier@gmail.com> 36661 36662 Use MPFR_ASSERTN(0) instead of abort. 36663 36664 Fix the definition of MPFR_PREC_MAX 36665 366662004-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36667 36668 added new test to check bug repair 36669 36670 fixed bug (wrong inexact flag) for rounding to nearest when sh=0 and 36671 first trailing limbs coincide 36672 366732004-01-07 Patrick P��lissier <patrick.pelissier@gmail.com> 36674 36675 Fix copyright lines (2004). 36676 36677 Fix bug of sub1sp.c on sparck. 36678 Add new tests for sub1sp. 36679 Reenable sub1sp for mpfr_add / mpfr_sub. 36680 36681 Change output format of mpfr_print_mant_binary. 36682 366832004-01-07 Vincent Lef��vre <vincent@vinc17.net> 36684 36685 Clarified comment. 36686 366872004-01-06 Vincent Lef��vre <vincent@vinc17.net> 36688 36689 Updated copyright line. 36690 36691 Added mpfr_version function and test. 36692 36693 The mpfr_print_rnd_mode return type is const char *, not char *. 36694 366952004-01-06 Patrick P��lissier <patrick.pelissier@gmail.com> 36696 36697 Update the copyright line of the source files to 2004. 36698 36699 Add the tests to check if 0 for signed class with unsigned 0 is set to 0+. 36700 367012004-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36702 36703 specified sign of zero in mpfr_set_* 36704 36705 removed test using denorms 36706 367072003-12-22 Patrick P��lissier <patrick.pelissier@gmail.com> 36708 36709 Disable sub1sp in add.c and in sub.c since it provides some bugs on spark (Log/acos/asin and atan tests failed but not tsub or tsub1sp). 36710 36711 Change comment. 36712 36713 + Rearrange the code to be more "compatible" with broken systems. 36714 + Preprocessing checks are done in init2.c since GMP constants can't be used in preprocessing #if. 36715 36716 Use MPFR_UNSIGNED_MINUS_MODULO when needed. 36717 36718 Explicit support for K&R C since ansi2knr can't be used. 36719 367202003-12-20 Kevin Ryde <user42@zip.com.au> 36721 36722 (tests_rand_start): Use gmp_randinit_default not the 36723 RANDS macro, to cope with new non-seeding MT setup by RANDS. 36724 367252003-12-19 Patrick P��lissier <patrick.pelissier@gmail.com> 36726 36727 Support of MPFR_PREC_FORMAT. 36728 Fix a bug in case mp_prec_t = unsigned short. 36729 367302003-12-19 Vincent Lef��vre <vincent@vinc17.net> 36731 36732 Update due to a change in mpfr.h. 36733 367342003-12-19 Patrick P��lissier <patrick.pelissier@gmail.com> 36735 36736 + Modify Version to 2.1.0. 36737 + Add MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR and MPFR_VERSION_PATCHLEVEL in mpfr.h 36738 + Add MPFR_VERSION_NUM and MPFR_VERSION to check Mpfr version. 36739 36740 Remove one warning in mpf_compat.h 36741 Create a new macro: MPFR_RET_NEVER_GO_HERE 36742 Modify ui_sub/div to use it to make Insure++ happy. 36743 367442003-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36745 36746 updated mpfr_root entry 36747 367482003-12-19 Vincent Lef��vre <vincent@vinc17.net> 36749 36750 Added update-version script to update the MPFR version. 36751 367522003-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36753 36754 removed one item, added one 36755 367562003-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36757 36758 removed unused target "tests" 36759 36760 removed AC_DEFINE(hpux) [not used any more] 36761 367622003-12-15 Kevin Ryde <user42@zip.com.au> 36763 36764 (EXTRA_DIST): Add round_raw_generic.c. 36765 367662003-12-15 Patrick P��lissier <patrick.pelissier@gmail.com> 36767 36768 + Optimize a few div.c 36769 + Remove some warnings in asin.c, atan.c. 36770 + Include limits.h before gmp-impl.h in mpfr-impl.h 36771 + mpfr-tests.h doesn't include anumore standard include files. 36772 + Test files include only standard includes and mpfr-tests.h. 36773 + Add some forgotten mpfr_clear in mpf[r]_compat. 36774 + Remove some warnings in the tests. 36775 367762003-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36777 36778 removed unused arguments 36779 36780 removed AC_DEFINE(__STDC__) for OSF 36781 36782 removed MISCFLAGS (not used any more) 36783 367842003-12-14 Kevin Ryde <user42@zip.com.au> 36785 36786 Quote AC_DEFUN names, for automake 1.8. 36787 367882003-12-10 Patrick P��lissier <patrick.pelissier@gmail.com> 36789 36790 + Add a new test in case of underflow. 36791 + Fix bug in case of underflow for sub1 / sub1sp (mpfr_powerof2 could be called with invalid numbers). 36792 367932003-12-09 Patrick P��lissier <patrick.pelissier@gmail.com> 36794 36795 + Fixed bugs of mpfr_print_mant_binary on 64 bits CPU (1L instead of 1). 36796 + Fixed bugs of mpfr_sub1sp on 64-bits CPU (mp_limb_t instead of int). 36797 36798 + Add function mpfr_print_mantissa_binary, for debugging reason. 36799 + Rename MPFR_ALLOC_SIZE in MPFR_MALLOC_SIZE. 36800 + Add conditionnal -DSMALL directive in mpfr-impl.h. 36801 + Add new function: sub1sp. 36802 Subtraction in case of all the ops have the same prec. 36803 + Add its test (tsub1sp). 36804 + Modify a few the tests to avoid comparing mpfr results with double, for portability reason. 36805 368062003-12-05 Vincent Lef��vre <vincent@vinc17.net> 36807 36808 Added mpfr_exp10 function. 36809 368102003-12-01 Patrick P��lissier <patrick.pelissier@gmail.com> 36811 36812 Port all the IEEE dependent remaining functions so that it uses a generic way to compute the result if it detects that the double is not in IEEE format ( _GMP_IEEE_FLOATS == 0). 36813 MPFR now should work well on non-IEEE machines. 36814 368152003-12-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36816 36817 added suggestion for 2 new functions 36818 36819 added entry (portability) 36820 368212003-11-25 Patrick P��lissier <patrick.pelissier@gmail.com> 36822 36823 Optimize a few add1.c/sub1.c by using MPFR_LIKELY / MPFR_UNLIKELY. 36824 368252003-11-21 Patrick P��lissier <patrick.pelissier@gmail.com> 36826 36827 Remove some warnings and potential errors (Comparison between signed and unsigned). 36828 36829 + Add new internal function: mpfr_check. 36830 + Add the corresponding test file. 36831 + Translate mpfr_set_d to mpfr_set_str / mpfr_set_ui in the tests for portability reasons. 36832 368332003-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36834 36835 use integers instead of double's 36836 368372003-11-21 Vincent Lef��vre <vincent@vinc17.net> 36838 36839 Notes about not using mpfr_set_d in the tests. 36840 368412003-11-19 Patrick P��lissier <patrick.pelissier@gmail.com> 36842 36843 Optimization of mpfr_mul. 36844 Tiny optimization of mpfr_pow (The case y=0 has been put inside the MPFR_ARE_SINGULAR block). 36845 Tiny optimisation of mpfr_set_ui. 36846 368472003-11-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36848 36849 fixed bug in case exact result 36850 36851 added new tests 36852 368532003-11-18 Patrick P��lissier <patrick.pelissier@gmail.com> 36854 36855 Optimize round_raw_generic by reducing the number of redundant tests. 36856 368572003-11-17 Patrick P��lissier <patrick.pelissier@gmail.com> 36858 36859 * Optimize a few div.c and mul.c. 36860 * Reorder the tests. 36861 * Remove mpfr_round_raw_generic and create 4 new functions which replace it, for efficiency reasons. 36862 * Add round_raw_generic.c which is the generic file to create the 4 new functions. 36863 * Add new MACRO: MPFR_RNDUTEST_OR_RNDDNOTTEST which is a faster way to check if (rnd_mode==GMP_RNDU && test) || (rnd_mode==GMP_RNDD && !test). 36864 * Add new MACRO: MPFR_UNSIGNED_MINUS_MODULO. 36865 * Optimize mpfr_can_round_raw. 36866 * Some new defines in mpfr.h to increase compatibility with MPFR v2.0.1 and above. 36867 368682003-11-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36869 36870 fixed bug in pow_si (exact result, case z = x) 36871 36872 added test to check bug fix (bug was in mpfr_pow) 36873 36874 added new test to check for bug fix (output precision > input precisions) 36875 36876 just improved editing style 36877 36878 fixed bug for output precision > max(input precisions) 36879 368802003-11-14 Vincent Lef��vre <vincent@vinc17.net> 36881 36882 Ported the gcc-3.3 bug detection patch to the trunk. 36883 368842003-11-07 Patrick P��lissier <patrick.pelissier@gmail.com> 36885 36886 Fix a stupid bug (diff_exp is not equal to the difference of prec) 36887 368882003-11-07 Vincent Lef��vre <vincent@vinc17.net> 36889 36890 Initialize the exp field. 36891 368922003-11-07 Patrick P��lissier <patrick.pelissier@gmail.com> 36893 36894 Some minor optimizations. 36895 Optimization of mul.c / sub1.c. 36896 Some clean up in the header files. 36897 368982003-11-05 Patrick P��lissier <patrick.pelissier@gmail.com> 36899 36900 Fix some bugs (Use MPFR_ASSERT(1) instead of MPFR_ASSERT(0)) 36901 Optimize swap.c and copysign.c. 36902 36903 Optimize mpfr_prec_round. 36904 Optimize mpfr_set (Case of both src & dest have the same precision). 36905 Start optimizing mpfr_sub1. 36906 36907 Add a real function for mpfr_sgn (not a call to mpfr_cmp_ui_2exp). 36908 Add a test for mpfr_sgn. 36909 Change the proto of mpfr_add1 and mpfr_sub1 by removing the last arg. 36910 Simplify the logic of the sign in mpfr_sub1. 36911 Tiny speed up for cmp/set/sqrt. 36912 mpfr-impl auto include all the needed local header files (gmp, gmp-impl, mpfr). 36913 369142003-11-04 Vincent Lef��vre <vincent@vinc17.net> 36915 36916 Merged the mpfr-2-0-2-branch pow_ui.c changes to the trunk. 36917 36918 The check_inf test wasn't called. Added 2 missing mpfr_clear and \n. 36919 369202003-11-04 Patrick P��lissier <patrick.pelissier@gmail.com> 36921 36922 + Remove MPFR_CLEAR_NAN and MPFR_CLEAR_INF. Only use MPFR_CLEAR_FLAGS. 36923 MPFR_SET_INF, MPFR_SET_ZERO and MPFR_SET_ZERO must clear the flags before setting them. 36924 + Add a new test in tacosh.c : check Inf / Nan flags. 36925 + Use MPFR_IS_SINGULAR in all the remaining files. 36926 + Fix the use of MPFR_CLEAR_FLAGS. 36927 + mpfr-impl.h auto include gmp.h, gmp-impl.h, mpfr.h and limits.h. 36928 + Rename _PROTO to _MPFR_PROTO, and remove _GMP_PROTO. 36929 + Add MPFR_INT_SIGN macro. 36930 + Encapsulate a few more the sign. 36931 369322003-10-30 Vincent Lef��vre <vincent@vinc17.net> 36933 36934 MPFR_RET_NAN -> MPFR_RET(0). 36935 369362003-10-28 Patrick P��lissier <patrick.pelissier@gmail.com> 36937 36938 Use of MPFR_UNLIKELY and MPFR_IS_SINGULAR for fast detection of special values (Nan, Inf or Zero). 36939 Start to encapsulate the sign to be independent of the representation (Must be 1 or -1). 36940 369412003-10-27 Patrick P��lissier <patrick.pelissier@gmail.com> 36942 36943 Change the internal format of MPFR: ZERO, INF and NAN have special values of exp. 36944 Rename MPFR_ESIZE in MPFR_LIMB_SIZE. 36945 Rename MPFR_ABSZISE in MPFR_ALLOC_SIZE. 36946 Rename MPFR_INIT in MPFR_TMP_INIT (INIT1 too). 36947 "mpfr.h" includes <gmp.h> if GMP isn't detected. 36948 Change the way of detecting stdio.h (To check). 36949 Use mpfr namespace for new definitions in "mpfr.h". 36950 369512003-10-27 Vincent Lef��vre <vincent@vinc17.net> 36952 36953 Another fix, for acosh(-INF). 36954 36955 Fixed exit status. 36956 369572003-10-21 Vincent Lef��vre <vincent@vinc17.net> 36958 36959 Merged the mpfr-2-0-2-branch changes to the trunk. 36960 369612003-10-20 Vincent Lef��vre <vincent@vinc17.net> 36962 36963 Merged the mpfr-2-0-2-branch changes to the trunk. 36964 369652003-10-17 Vincent Lef��vre <vincent@vinc17.net> 36966 36967 Merged the mpfr-2-0-2-branch changes to the trunk. 36968 369692003-10-16 Vincent Lef��vre <vincent@vinc17.net> 36970 36971 Update. 36972 36973 Updated version on trunk. 36974 36975 Update. 36976 36977 Fixed several bugs. 36978 36979 Added XDEBUG support (like in set_d.c). 36980 369812003-10-15 Vincent Lef��vre <vincent@vinc17.net> 36982 36983 Replaced all non-ASCII characters by an equivalent 7-bit sequence 36984 to support unpatched texinfo.tex files. 36985 369862003-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36987 36988 removed #define DEBUG (turned on accidentally) 36989 369902003-10-15 Vincent Lef��vre <vincent@vinc17.net> 36991 36992 Bug on the ternary value was fixed by Paul Zimmermann on 2003-10-14. 36993 369942003-10-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36995 36996 added preamble about ternary flag for special functions 36997 36998 now uses #include "tgeneric.c" everywhere 36999 (and modified test_generic to check also the inexact flag) 37000 37001 check_nan() is back 37002 37003 removed old unused code 37004 37005 fixed tests for x=0 37006 removed composition tests (were already in-between #if 0 ... #endif) 37007 37008 replaced mpfr_can_round (approx, err, rnd1, GMP_RNDN, prec) 37009 by mpfr_can_round (approx, err, rnd1, GMP_RNDZ, prec + 1) 37010 which in addition guarantees a correct inexact flag 37011 37012 added new items (version number, rounding modes) 37013 37014 added comment about --enable-alloca=debug 37015 370162003-10-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37017 37018 added section "Problems due to compiler bugs" 37019 37020 change in can_round calls to get correct inexact flag for rounding to nearest 37021 370222003-10-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37023 37024 fixed bug in mpfr_pow found by Ming J. Tsai (overflow) 37025 370262003-10-08 Vincent Lef��vre <vincent@vinc17.net> 37027 37028 Removed useless inclusion of standard headers and some #ifdef DEBUG 37029 code. Partial reindentation. 37030 37031 Added a #include <stddef.h> because size_t is used. 37032 370332003-10-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37034 37035 reduced test time 37036 37037 reduced test time 37038 37039 reduced test time 37040 370412003-10-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37042 37043 fixed comment of mpfr_round_raw_generic 37044 37045 replaced ABSSIZE by ESIZE (ABSSIZE is the allocated size, and should be 37046 used only in functions init, set_prec, round_prec) 37047 37048 fixed bug in allocation for in-place operation 37049 37050 inexact flag should now be correct for directed rounding 37051 fixed a bug for mpfr_atan(-Inf) [gave +Pi/2 instead of -Pi/2] 37052 37053 added test for atan(-Inf) 37054 37055 use macros to avoid possible problem with float input 37056 37057 new proposal for mpfr_can_round 37058 37059 mpfr_mul_2exp/mpfr_div_2exp are not obsolete 37060 370612003-10-05 Vincent Lef��vre <vincent@vinc17.net> 37062 37063 Clearer mpfr_eq documentation (thanks to Kevin Ryde for the remark). 37064 370652003-10-03 Vincent Lef��vre <vincent@vinc17.net> 37066 37067 MPFR_ASSERTN rewritten to avoid "statement with no effect" warnings 37068 with gcc when the assertion is always true. 37069 37070 Optimization (thanks to Patrick Pelissier), as the allocated size 37071 may be larger than the size used by the significant bits. 37072 37073 Updated installation notes. 37074 37075 Infinities are now accepted in mpfr_cmpabs. Updated its definition 37076 in the source (no longer sign(abs(b) - abs(c))). 37077 370782003-10-02 Vincent Lef��vre <vincent@vinc17.net> 37079 37080 Use @url{} for URLs. 37081 37082 As suggested by PZ: 37083 o documentation of mpfr_fits_* functions moved to the section 37084 on conversions; 37085 o grouped some mpfr_pow special cases; 37086 o explanation concerning the meaning of rnd in mpfr_frac. 37087 37088 Updated documentation. In particular, mpfr_set_str_raw renamed 37089 as mpfr_set_str_binary. This function and mpfr_print_binary are 37090 now internal functions. mpfr_print_binary no longer prints the 37091 non-significant 0 bits. Updated the source to match the manual. 37092 mpfr_print_binary has been completely rewritten (now directly 37093 prints to stdout, without using an intermediate string). In 37094 mpfr_set_str_binary, replaced atol by strtol + error checking. 37095 370962003-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37097 37098 added paragraph on support/grants 37099 added help for mpfr_erf 37100 371012003-10-02 Vincent Lef��vre <vincent@vinc17.net> 37102 37103 Make node titles match section titles, and updated menus and xrefs. 37104 Added a line break after @samp{uninstall}. 37105 371062003-10-01 Vincent Lef��vre <vincent@vinc17.net> 37107 37108 Corrections in the MPFR manual (PZ & VL). Functions mpfr_const_pi, 37109 mpfr_const_log2 and mpfr_zeta now return a ternary value. Updated 37110 TODO file. 37111 371122003-09-30 Vincent Lef��vre <vincent@vinc17.net> 37113 37114 Added a bug related to the ternary value and worst cases. 37115 37116 Added exponent range support. 37117 37118 Corrections up to Section 5.6 (PZ & VL). 37119 37120 Re-added the assert on the exponent, but replacing MPFR_EMIN_MIN by 37121 MP_EXP_T_MIN (this makes more sense): an assertion failed would mean 37122 that the exponent is not representable (an undefined behavior in the 37123 ISO C standard). If need be, we could choose to return MP_EXP_T_MIN 37124 in such a case, or perhaps MP_EXP_T_MAX to signal an error. The 37125 mantissa would still be meaningful. 37126 371272003-09-30 Patrick P��lissier <patrick.pelissier@gmail.com> 37128 37129 Update TODO & mpfr_set_prec. 37130 371312003-09-29 Vincent Lef��vre <vincent@vinc17.net> 37132 37133 Corrections up to Section 4. 37134 37135 Added authors Kevin Ryde and Patrick Pelissier. 37136 37137 Removed "known problems" that are no longer problems. 37138 371392003-09-26 Vincent Lef��vre <vincent@vinc17.net> 37140 37141 Removed bugs related to the tests and to the exponents 37142 as they no longer occur. Updated some potentials bugs. 37143 371442003-09-25 Vincent Lef��vre <vincent@vinc17.net> 37145 37146 Removed mpfr_inits, mpfr_inits2, mpfr_clears from the documentation. 37147 Moved their prototypes to mpfr-impl.h (internal functions until 37148 decided otherwise). 37149 371502003-09-25 Patrick P��lissier <patrick.pelissier@gmail.com> 37151 37152 Modify 'r' arg of GENERIC from int to long (min 32 bits). 37153 371542003-09-25 Vincent Lef��vre <vincent@vinc17.net> 37155 37156 8-bit ISO-8859-1 characters + consistent spelling. 37157 37158 Update. 37159 37160 Changed the remaining stderr to stdout. 37161 371622003-09-24 Vincent Lef��vre <vincent@vinc17.net> 37163 37164 Changed some stderr to stdout. 37165 37166 Added documentation for mpfr_greater_p, mpfr_greaterequal_p, 37167 mpfr_less_p, mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p 37168 and mpfr_unordered_p. 37169 37170 Added tests for mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p, 37171 mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p. 37172 37173 Added a few more tests (involving mpfr_nexttoward). The tests for 37174 the mpfr_nextabove, mpfr_nextbelow and mpfr_nexttoward functions 37175 should now be sufficient. 37176 37177 Added generic tests for mpfr_nextabove and mpfr_nextbelow. 37178 Fixed a bug in next.c related to assertion checks. 37179 37180 Accept (case-insensitive) NaN and Inf in input for bases <= 16 for 37181 backward compatibility in these bases (for bases > 16, we cannot 37182 guaranty backward compatibility with the current wanted behavior). 37183 Added tests. 37184 371852003-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37186 37187 added one item from Kevin 37188 371892003-09-24 Vincent Lef��vre <vincent@vinc17.net> 37190 37191 Added support for some top-bit-set characters in the .texi source. 37192 37193 Added information on special values for mpfr_pow. 37194 371952003-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37196 37197 added MAKEINFOFLAGS = --enable-encoding to get 8-bit characters in mpfr.info 37198 37199 used ISO-8859-1 in AUTHORS 37200 and @`e, @"o in mpfr.texi (waiting for code for ISO-8859-1 compatibility) 37201 372022003-09-24 Kevin Ryde <user42@zip.com.au> 37203 37204 (MPFR_C_LONG_DOUBLE_FORMAT): Remove conftest* temporary 37205 files. 37206 372072003-09-24 Vincent Lef��vre <vincent@vinc17.net> 37208 37209 Fixed comparisons (cases @NaN@ and @Inf@). 37210 372112003-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37212 37213 two updates 37214 372152003-09-22 Vincent Lef��vre <vincent@vinc17.net> 37216 37217 Updated mpfr_pow description. 37218 372192003-09-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37220 37221 changed __gmp_const into const in *.c 37222 [Torbjo"rn: Please use __gmp_const just in user header files, plain C const in other files.] 37223 372242003-09-22 Vincent Lef��vre <vincent@vinc17.net> 37225 37226 Removed 37227 37228 - allow the ISO C "P" exponent separator for base 16 in input functions 37229 37230 (already done). 37231 372322003-09-22 Vincent Lef��vre <vincent@vinc17.net> 37233 37234 Implemented the following: 37235 - use (LDBL_MAX/2)+(LDBL_MAX/4*LDBL_EPSILON) instead of loop in tset_ld 37236 to get largest power of 2 that fits in a long double 37237 37238 Added some MPFR_ASSERTN and improved a comment. 37239 37240 Avoid string literals longer than 509 characters (ISO C89 limit). 37241 37242 (test_set_underflow, test_set_overflow): Cleaner fix (for pre-C99 37243 compilers). 37244 372452003-09-22 Kevin Ryde <user42@zip.com.au> 37246 37247 (test_set_underflow, test_set_overflow): Use 37248 "static" on "r" to allow non-constant initializers. 37249 372502003-09-21 Kevin Ryde <user42@zip.com.au> 37251 37252 (Converting Floats): In mpfr_get_d_2exp, the rounding mode 37253 is given, it doesn't use the default mode. 37254 37255 (Assigning Floats): In mpfr_set_str and mpfr_set_str_raw, 37256 show "const" not "__gmp_const". 37257 (Simultaneous Float Init & Assign): In mpfr_init_set_str, ditto. 37258 37259 (Rounding Modes): Add blank line around @itemize. 37260 37261 (Miscellaneous Float Functions): In mpfr_urandomb and 37262 mpfr_random, use @math and @le. 37263 372642003-09-20 Kevin Ryde <user42@zip.com.au> 37265 37266 (Assigning Floats): In mpfr_set_*, remove remarks about 37267 long being rounded (this should be clear already), about rounding of 37268 decimal double constants like 0.1 (too basic to appear here), 37269 (Converting Floats): In mpfr_get_d_2exp, remove remark about exp 37270 exceeding IEEE exponent range (should be clear already). 37271 372722003-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37273 37274 updated items: removed conversion from/to float (obsolete) 37275 37276 got rid of <math.h> dependency in mpfr_zeta 37277 37278 mpfr_round_prec is now obsolete 37279 new function mpfr_prec_round replaces it 37280 372812003-09-18 Vincent Lef��vre <vincent@vinc17.net> 37282 37283 Fix for C implementations with 16-bit int. 37284 372852003-09-18 Patrick P��lissier <patrick.pelissier@gmail.com> 37286 37287 Optimization of macros MPFR_IS_INF, MPFR_IS_NAN and MPFR_IS_FP 37288 372892003-09-18 Vincent Lef��vre <vincent@vinc17.net> 37290 37291 Removed a comment that should have been removed in revision 1.8. 37292 372932003-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37294 37295 No longer perform the pre-check for exactness when first division step was 37296 actually a complete division. This introduced way too much overhead. 37297 37298 replaced test stream==0 by stream==NULL 37299 373002003-09-15 Vincent Lef��vre <vincent@vinc17.net> 37301 37302 Fixed a bug in mpfr_can_round_raw and added other mpfr_can_round 37303 tests. 37304 37305 Added a test to tests/tcan_round.c and assertions to round_prec.c. 37306 373072003-09-14 Vincent Lef��vre <vincent@vinc17.net> 37308 37309 Fixed mpfr_set_overflow, added tests for mpfr_set_underflow 37310 and mpfr_set_overflow, and reverted exp.c. 37311 373122003-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37313 37314 overflow with round to zero was incorrect 37315 373162003-09-11 Vincent Lef��vre <vincent@vinc17.net> 37317 37318 New functions mpfr_inits, mpfr_inits2 and mpfr_clears to initialize or 37319 free several floating-point numbers (written by Patrick P��lissier). 37320 373212003-09-09 Vincent Lef��vre <vincent@vinc17.net> 37322 37323 Replaced malloc/free by __gmp_allocate_func/__gmp_free_func in 37324 mpfr_zeta_pos. zeta.c still uses math (libm) functions -> TODO: 37325 remove this dependence. 37326 37327 Added a test that makes MPFR crash (coming from the mpfr_zeta crash). 37328 37329 Case that crashes MPFR (coming from test_generic) -> function test1. 37330 37331 Ended up by simplifying mpfr_ui_pow to fix it completely (with a 37332 call to mpfr_pow, in a way similar to other ui functions). There 37333 isn't significant differences with the old code anyway, and the 37334 case integer^integer wasn't optimized like in mpfr_pow. 37335 The test tui_pow now passes, but the test tzeta now fails! 37336 37337 Code clean-up and reindented. Replaced a 8 by CHAR_BIT, 37338 as CHAR_BIT isn't necessarily equal to 8. The bug seems 37339 to occur on all machines. 37340 373412003-09-08 Vincent Lef��vre <vincent@vinc17.net> 37342 37343 Added a test to reproduce a bug (to be fixed later) on all 64-bit 37344 machines. 37345 37346 Added a cast (useful under Linux/alpha). 37347 373482003-09-01 Vincent Lef��vre <vincent@vinc17.net> 37349 37350 Changes (Patrick Pelissier's suggestions): 37351 _ mpfr_print_rnd_mode now has __gmp_const char * return type; 37352 _ some corrections in mpfr.texi, documentencoding set. 37353 373542003-08-30 Kevin Ryde <user42@zip.com.au> 37355 37356 #Corrections to initial checkin. 37357 37358 (EXTRA_libfrtests_a_SOURCES): Add amd64.asm. 37359 37360 New file. 37361 37362 Correction to: 37363 (MPFR_CONFIGS): Add amd64-*-* to x86 test objects. 37364 37365 (tests_machine_prec_long_double): Add amd64 to the 37366 comments. 37367 37368 (MPFR_CONFIGS): Add amd64-*-* to x86 test objects. 37369 37370 (check_set_get): Improve error messages. 37371 37372 (ld_trace): New function. 37373 37374 (ldbl_max_struct): Use octal character constants, since hex 37375 is an ANSI-ism. 37376 373772003-08-07 Vincent Lef��vre <vincent@vinc17.net> 37378 37379 Avoid a potential overflow. 37380 373812003-08-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37382 37383 fixed pb found by Damien Fisher 37384 373852003-07-24 Vincent Lef��vre <vincent@vinc17.net> 37386 37387 If the exponent of the number is meaningless (src = NaN, inf or 0), 37388 0 is stored in expptr (behavior similar to the ISO C frexp function). 37389 373902003-07-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37391 37392 added one item 37393 373942003-07-19 Kevin Ryde <user42@zip.com.au> 37395 37396 (check_PROGRAMS): Add tget_d_2exp.c. 37397 37398 New file, partly derived from tget_d.c. 37399 37400 (mpfr_get_d_2exp): Ensure 0.5 <= abs(ret) < 1.0 is respected 37401 when rounding away from zero. 37402 37403 (d_trace): New function. 37404 37405 (Converting Floats): mpfr_get_d_2exp stores to a long. 37406 37407 (mpfr_get_d_2exp): Store exp in a long, same as 37408 mpz_get_d_2exp and mpf_get_d_2exp. 37409 374102003-07-15 Vincent Lef��vre <vincent@vinc17.net> 37411 37412 Updated comment. 37413 374142003-07-08 Vincent Lef��vre <vincent@vinc17.net> 37415 37416 Correction in a comment (patch by Torbjorn). 37417 374182003-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37419 37420 can_round returns 0 for NaN/Inf 37421 37422 fixed Uninitialized memory read in mpfr_can_round 37423 (when b is NaN or Inf) 37424 374252003-06-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37426 37427 fixed array bound write (need 6+1 characters in s1 to represent -@inf@ + \0) 37428 374292003-06-28 Kevin Ryde <user42@zip.com.au> 37430 37431 Add "const" to IEEE byte sequence data. 37432 37433 (tests_rand_end): Remove explicit __gmp_rands 37434 clearing, it's what RANDS_CLEAR does already. 37435 374362003-06-26 Kevin Ryde <user42@zip.com.au> 37437 37438 # Clarify nan/inf bits under efficiency. 37439 # Add mpfr_get_d3 ieee portability. 37440 # Add mpfr_random not wanted in mpf integration. 37441 374422003-06-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37443 37444 moved macros for [L]DBL_MANT_DIG in mpfr-impl.h 37445 374462003-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37447 37448 fixed several problems noticed by Kevin 37449 37450 changed test for 2^1024, using LDBL_MAX_EXP 37451 374522003-06-25 Kevin Ryde <user42@zip.com.au> 37453 37454 # Add efficiency of separate flag bit operations. 37455 374562003-06-24 Kevin Ryde <user42@zip.com.au> 37457 37458 Remove file, no longer used. 37459 37460 (libmpfr_a_SOURCES): Remove mpfr-math.h. 37461 37462 (MPFR_DBL_INFP, MPFR_DBL_INFM, MPFR_DBL_NAN): Make private 37463 definitions based on IEEE byte sequences, in particular avoid HUGE_VAL 37464 from mpfr-math.h since that's not infinity on hppa1.1-hp-hpux10. 37465 Remove includes of mpfr-math.h, math.h and stddef.h. 37466 37467 (check_inf_nan): New test. 37468 37469 (MPFR_C_LONG_DOUBLE_FORMAT): Use octal char constants, 37470 '\xHH' is an ANSI-ism. 37471 374722003-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37473 37474 check 2^1024 only when sizeof(long double) > sizeof(double) 37475 37476 correction to previous patch 37477 37478 correction to previous patch: problem was that x and u can be 0, 37479 then MPFR_PREC() undefined 37480 374812003-06-24 Kevin Ryde <user42@zip.com.au> 37482 37483 (tests_start_mpfr): Make stdout and stderr unbuffered. 37484 37485 (check_inexact): For pz, use at least MPFR_PREC_MIN 37486 since this is required by mpfr_set_prec. 37487 37488 # Correction to: 37489 # (check_inexact): For pz, use at least MPFR_PREC_MIN 37490 # since this is required by mpfr_set_prec. 37491 37492 (check_inexact): For pz, use at least MPFR_PREC_MIN 37493 since this is required by mpfr_set_prec. 37494 374952003-06-23 Kevin Ryde <user42@zip.com.au> 37496 37497 Remove mingw portability of random/rand48, no longer used. 37498 37499 Remove __setfpucw, no longer used. 37500 Remove mpfr_integer_p, done. 37501 Remove gmp rand functions in test programs, done. 37502 Remove MPFR_CHECK_RANDOMIZE, done (as GMP_CHECK_RANDOMIZE). 37503 375042003-06-21 Vincent Lef��vre <vincent@vinc17.net> 37505 37506 mpfr_random is deprecated. 37507 375082003-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37509 37510 changed since mpfr_random now can return 0 37511 375122003-06-20 Vincent Lef��vre <vincent@vinc17.net> 37513 37514 The distribution should now be uniform (mpfr_random implemented 37515 by calling mpfr_urandomb). 37516 37517 Take the current exponent range into account in mpfr_urandomb 37518 (which now returns an int). 37519 37520 Bug fix. 37521 375222003-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37523 37524 moved _gmp_rands_initialized stuff from tests_end_mpfr() to tests_rand_end() 37525 37526 reduced default number of tests 37527 improved style 37528 37529 reduced default number of tests 37530 improved style 37531 375322003-06-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37533 37534 fixed bug in mpfr_exp2_aux2 (spe175.testdrive.hp.com) 37535 37536 improved style 37537 37538 added more information in case of failure 37539 37540 removed randseed() stuff [obsolete now we use the GMP mechanism] 37541 37542 added memory test mechanism 37543 37544 added new test from Parks 37545 37546 fixed allocation problem (forgot to clear) 37547 375482003-06-19 Vincent Lef��vre <vincent@vinc17.net> 37549 37550 Removed drand48/lrand48/srand48 prototypes. 37551 375522003-06-18 Kevin Ryde <user42@zip.com.au> 37553 37554 Don't use mpz_get_d1, since a 53-bit double is not 37555 enough when long is 64-bits. 37556 37557 Don't use mpz_get_d1, since a 53-bit double is not 37558 enough when long is 64-bits. 37559 375602003-06-13 Kevin Ryde <user42@zip.com.au> 37561 37562 Use autoconf recommended style for time.h with 37563 sys/time.h. 37564 37565 (MPFR_CONFIGS): Require AC_HEADER_TIME, add 37566 AC_CHECK_HEADERS of sys/time.h. 37567 37568 (MPFR_CONFIGS): Add AC_CHECK_FUNCS of gettimeofday. 37569 375702003-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37571 37572 moved disabled test to "special" code 37573 37574 added reference to Higham 37575 37576 improved error analysis on erf 37577 37578 improved indentation 37579 375802003-06-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37581 37582 added support for random see 37583 (when env. variable GMP_CHECK_RANDOMIZE set) 37584 375852003-06-12 Vincent Lef��vre <vincent@vinc17.net> 37586 37587 Replaced misc random functions by GMP ones. 37588 37589 Added function randlimb(). 37590 37591 Fixed a few bugs concerning special values, code simplified. 37592 375932003-06-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37594 37595 added error function 37596 375972003-06-11 Vincent Lef��vre <vincent@vinc17.net> 37598 37599 Make x positive + some minor changes. 37600 37601 New version written by Torbjorn Granlund. 37602 376032003-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37604 37605 updated formular for erf 37606 added url for Abramowitz & Stegun 37607 376082003-06-10 Vincent Lef��vre <vincent@vinc17.net> 37609 37610 Added a comment concerning NO_MATH_DEFS. 37611 376122003-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37613 37614 made test faster 37615 37616 reduced test time 37617 37618 reduced time of test 37619 37620 reduced time 37621 376222003-06-09 Kevin Ryde <user42@zip.com.au> 37623 37624 Patch by Torbjorn: use puts not putchar, to avoid GNUPro compiler bug. 37625 376262003-06-08 Kevin Ryde <user42@zip.com.au> 37627 37628 Disable "8093416094703476*2^(-1075)" because mips64 37629 SGI cc doesn't seem to like the value (a denorm). 37630 37631 Include <stddef.h> before <math.h>, to avoid problems with 37632 gcc 3.2 on hppa2.0w-hp-hpux11.11. 37633 37634 (random): Remove prototype, since it conflicts with 37635 stdlib.h on osf4. 37636 376372003-05-28 Vincent Lef��vre <vincent@vinc17.net> 37638 37639 Added prototypes of non-standard functions that weren't always defined. 37640 37641 MPFR_EXP_CHECK is now defined when WANT_ASSERT is defined. 37642 376432003-05-26 Vincent Lef��vre <vincent@vinc17.net> 37644 37645 The special case s = 1 is taken into account (the previous code 37646 seemed to work, but perhaps not for rigorous reasons). 37647 37648 Added test for case s = 1. 37649 37650 (mpfr_round_prec): Bug fixed (case zero wasn't taken into account) 37651 and 'assertion failed' avoided. 37652 37653 Update related to MPFR_GET_EXP and MPFR_SET_EXP. 37654 37655 MPFR_GET_EXP (r) -> exp. 37656 37657 Function mpfr_swap rewritten using memcpy. 37658 37659 Updates/optimizations related to MPFR_GET_EXP and MPFR_SET_EXP. 37660 37661 Updates/optimizations related to MPFR_GET_EXP and MPFR_SET_EXP. 37662 376632003-05-23 Vincent Lef��vre <vincent@vinc17.net> 37664 37665 Code clean-up. Assertion failed avoided. 37666 376672003-05-22 Vincent Lef��vre <vincent@vinc17.net> 37668 37669 Update. 37670 37671 Macros MPFR_EXP_INVALID (invalid exponent value) and MPFR_EXP_CHECK 37672 added. Code update to use MPFR_GET_EXP and MPFR_SET_EXP instead of 37673 MPFR_EXP to allow more bug detection related to special values. 37674 Macros MPFR_SET_NAN, MPFR_SET_INF, MPFR_SET_ZERO and MPFR_INIT set 37675 the exponent of the number to MPFR_EXP_INVALID if MPFR_EXP_CHECK 37676 is defined. Compile with -DMPFR_EXP_CHECK and make check to see 37677 the potential problems; currently, 40 of 76 tests fail. 37678 376792003-05-21 Vincent Lef��vre <vincent@vinc17.net> 37680 37681 #include "gmp-impl.h" added. 37682 37683 MPFR_ASSERTD: use MPFR_ASSERTN instead of ASSERT_ALWAYS so that 37684 it can be used as an expression. 37685 New macros MPFR_GET_EXP and MPFR_SET_EXP (they should almost 37686 completely replace MPFR_EXP). 37687 376882003-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37689 37690 added test 'special' 37691 37692 fixed bug when n_bits larger than size*BITS_PER_MP_LIMB 37693 376942003-05-18 Vincent Lef��vre <vincent@vinc17.net> 37695 37696 Bugs fixed (special cases). 37697 376982003-05-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37699 37700 removed dummy test tdump 37701 37702 compatibility with mpf is done 37703 37704 updated mpfr_cmp_d 37705 added mpfr_cmp_d in mpf2mpfr.h and mpfr.texi 37706 377072003-05-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 37708 37709 Added cmp_d.c, tcmp_d.c. 37710 37711 Added cmp_d/tcmp_d. 37712 377132003-04-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37714 37715 moved test for NaN/Inf 37716 37717 added Riemann Zeta function (contribution from Jean-Luc Re'my) 37718 377192003-04-08 Kevin Ryde <user42@zip.com.au> 37720 37721 Move macros down below @copying. 37722 37723 Add @: after various abbreviations. 37724 377252003-04-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37726 37727 fixed pb with count_leading_zeros (n=0) 37728 37729 added test for bug found by Franky Backeljauw 37730 37731 fixed bug found by Franky 37732 377332003-03-28 Vincent Lef��vre <vincent@vinc17.net> 37734 37735 Added some asserts. 37736 377372003-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37738 37739 fixed pb found by Will Galway <galway@pims.math.ca> (continued) 37740 377412003-03-28 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 37742 37743 Patches from W. Galway. 37744 377452003-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37746 37747 fixed reference to Plouffe/Bailey/Borwein formula 37748 377492003-03-27 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 37750 37751 Credits for the pi formula modified. 37752 377532003-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37754 37755 changed back "unsigned char *" to "char *" 37756 377572003-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37758 37759 char * -> const unsigned char * for mpfr_set_str, mpfr_set_str_raw, 37760 and mpfr_init_set_str 37761 377622003-03-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37763 37764 removed unused variable 37765 377662003-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37767 37768 fixed documentation bug in mpfr_log2 (exact results) 37769 37770 changed new test in 'check4' style 37771 377722003-03-17 Vincent Lef��vre <vincent@vinc17.net> 37773 37774 Update concerning underflow problems. 37775 377762003-03-17 Kevin Ryde <user42@zip.com.au> 37777 37778 (main): Comment out underflows(), until it works. 37779 37780 Comment out an assert tickled for an f with exponent 37781 near MPFR_EMIN_MIN. 37782 377832003-03-16 Kevin Ryde <user42@zip.com.au> 37784 37785 (LONGDOUBLE_NAN_ACTION): New version for IEEE quad big 37786 endian, fixing HP cc. 37787 (WANT_LONGDOUBLE_VOLATILE): New define for when LONGDOUBLE_VOLATILE is 37788 wanted. 37789 (WANT_GMPFR_LONGDOUBLE_VOLATILE): New define for when 37790 __gmpfr_longdouble_volatile is wanted. 37791 37792 Use WANT_GMPFR_LONGDOUBLE_VOLATILE. 37793 37794 (MPFR_C_LONG_DOUBLE_FORMAT): Add IEEE quad big endian, 37795 check long double exists before testing. 37796 377972003-03-14 Vincent Lef��vre <vincent@vinc17.net> 37798 37799 Added underflow test showing a bug in mpfr_pow. 37800 378012003-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37802 37803 fixed bug for x=1 37804 378052003-03-14 Vincent Lef��vre <vincent@vinc17.net> 37806 37807 This wasn't a compiler bug; mpfr_pow is really buggy. 37808 Added some asserts to show that. 37809 37810 The infinite loop concerning 1^0.5 was probably due to a bug in the 37811 compiler [cc (GCC) 3.2.3 20030309 (Debian prerelease)]: adding some 37812 printf's changes the values of the variables and the correct result 37813 is returned. 37814 378152003-03-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37816 37817 fixed sign problem in particular_cases() 37818 37819 declared mpfr_ui_pow_is_exact as static 37820 37821 gnu-style 37822 378232003-03-13 Vincent Lef��vre <vincent@vinc17.net> 37824 37825 Removed some useless and inaccurate tests on NaN, infinities, zeros 37826 (as the behavior of mpfr_pow on such particular cases has changed); 37827 similar tests were added to "tests/tpow.c". 37828 37829 Test of mpfr_pow: particular cases. Bugs. 37830 378312003-03-12 Vincent Lef��vre <vincent@vinc17.net> 37832 37833 Special cases for mpfr_pow(). 37834 378352003-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37836 37837 when stream=NULL, use stdout (as indicated in the documentation) 37838 378392003-03-03 Vincent Lef��vre <vincent@vinc17.net> 37840 37841 mpfr_sin_sign -> static. 37842 37843 Useless declaration removed. 37844 37845 Special cases for mpfr_pow: like Section F.9.4.4 of the 37846 ISO C99 standard. 37847 37848 Prototype fixed. 37849 378502003-02-27 Vincent Lef��vre <vincent@vinc17.net> 37851 37852 mpfr_set_str now accepts a binary exponent for base 16 37853 (as defined by the ISO C99 standard). 37854 37855 Comment concerning the installation of MPFR: done. 37856 37857 New recommendation to install MPFR. 37858 378592003-02-24 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 37860 37861 Replaced NaN, Inf by @NaN@, @Inf@ [for bases > 24]. 37862 378632003-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37864 37865 added one test 37866 378672003-02-21 Vincent Lef��vre <vincent@vinc17.net> 37868 37869 Fixed cast (though unnecessary). 37870 378712003-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37872 37873 added one test 37874 378752003-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37876 37877 added mpf_compat, mpfr_compat 37878 37879 test files for mpf-mpfr compatibility 37880 37881 added mpfr_init_set_str 37882 37883 added "const" to char* arg. of mpfr_init_set_str 37884 37885 added macros for new mpfr functions 37886 changed some old macros 37887 37888 mpfr_isinteger -> mpfr_integer_p 37889 37890 document new functions (fits_*, get_ui, get_si, get_d_2exp) 37891 added integer_p that was not documented 37892 37893 mpfr_isinteger -> mpfr_integer_p 37894 new functions: mpfr_fits_*, mpfr_get_ui, mpfr_get_si, mpfr_get_d_2exp 37895 37896 added mpfr_get_d_2exp 37897 37898 new functions mpfr_fits_* and mpfr_get_ui/si 37899 37900 new functions mpfr_fits_* and mpfr_get_[us]i 37901 379022003-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37903 37904 check for +/-0.0 after variable set to NaN 37905 379062003-01-25 Vincent Lef��vre <vincent@vinc17.net> 37907 37908 Suppressed the underscores of AC_CHECK_LIBM in comments, otherwise 37909 aclocal 1.4-p6 includes libtool code in aclocal.m4 and this leads 37910 to compilation problems. 37911 379122003-01-25 Kevin Ryde <user42@zip.com.au> 37913 37914 (_MPFR_H_HAVE_FILE): Copy FILE define tests from gmp.h, adds 37915 Borland, Microsoft and Apple MPW. 37916 37917 (libmpfr_a_SOURCES): Add volatile.c. 37918 37919 New file. 37920 37921 (Isnan_ld): New function based on LONGDOUBLE_NAN_ACTION, use it 37922 instead of LONGDOUBLE_ISNAN. 37923 37924 (LONGDOUBLE_ISNAN): Remove. 37925 37926 (LONGDOUBLE_ISNAN): Remove this, use LONGDOUBLE_NAN_ACTION instead. 37927 37928 (LONGDOUBLE_NAN_ACTION): New macro. 37929 379302003-01-24 Kevin Ryde <user42@zip.com.au> 37931 37932 Allow "e" exponent in base<=10 not <10. Restrict "E" 37933 exponent to base<=10 too, since digits are not case sensitive. 37934 379352003-01-24 Vincent Lef��vre <vincent@vinc17.net> 37936 37937 Prototypes: use static. Some code reformatting. 37938 37939 The sign wasn't set when the result was zero. 37940 379412003-01-24 Kevin Ryde <user42@zip.com.au> 37942 37943 Reject "", "+" and "-", also fixing an attempt to allocate a 0 length 37944 block in these cases. 37945 37946 Clear NAN and INF flags when setting result to zero. 37947 379482003-01-24 Vincent Lef��vre <vincent@vinc17.net> 37949 37950 Fixed prototypes (use static...). 37951 37952 Missing #include. 37953 379542003-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37955 37956 workaround for gcc bug on m68040-unknown-netbsd1.4.1 37957 37958 added cast to double 37959 379602003-01-23 Kevin Ryde <user42@zip.com.au> 37961 37962 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37963 not "double" nans and infs. 37964 379652003-01-22 Kevin Ryde <user42@zip.com.au> 37966 37967 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37968 not "double" nans and infs. 37969 37970 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37971 not "double" nans and infs. 37972 37973 Use tests_start_mpfr / tests_end_mpfr. 37974 37975 Use tests_start_mpfr / tests_end_mpfr. 37976 37977 Use tests_start_mpfr / tests_end_mpfr. 37978 (check_large): Use __gmp_free_func to free mpfr_get_str result. 37979 37980 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37981 not "double" nans and infs. Use tests_start_mpfr / tests_end_mpfr. 37982 37983 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37984 not "double" nans and infs. 37985 37986 Remove tests involving "double" nans and infs, covered by check_nan. 37987 37988 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37989 not "double" nans and infs. 37990 379912003-01-18 Kevin Ryde <user42@zip.com.au> 37992 37993 Move log_b2.h from include_HEADERS to libmpfr_a_SOURCES, it doesn't 37994 want to be installed. 37995 37996 Correction to memory leak fix, need "result" for final rounding. 37997 379982003-01-17 Kevin Ryde <user42@zip.com.au> 37999 38000 Fix two memory leaks. 38001 38002 (LDADD): Add $(MPFR_LIBM). 38003 38004 Remove -lm setups, now handled by MPFR_CHECK_LIBM. 38005 38006 (MPFR_CHECK_LIBM): New macro. 38007 (MPFR_CONFIGS): Use it. 38008 380092003-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38010 38011 added copyright notices and license statements 38012 38013 now use __gmpfr_floor_log2 instead of floor/log to get rid of math.h 38014 38015 removed unused function dagm(), and get rid of math.h 38016 added tests for NaN, Inf's 38017 380182003-01-17 Vincent Lef��vre <vincent@vinc17.net> 38019 38020 Re-added $OBJEXT, using AC_REQUIRE([AC_OBJEXT]) for old autoconf. 38021 380222003-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38023 38024 put back math.h 38025 38026 added back math.h (for sqrt) 38027 38028 added log_b2.h in include_HEADERS 38029 38030 added tsin_cos 38031 38032 added #ifdef HAVE_DENORMS for denormalized test 38033 38034 removed math.h 38035 38036 added year 2003 in copyright line 38037 removed math.h 38038 38039 added 2003, removed math.h 38040 38041 added 2003 38042 38043 removed math.h 38044 38045 added year 2003 38046 removed math.h 38047 38048 patch for compiler bug on hppa2.0w-hp-hpux11.11 38049 380502003-01-16 Vincent Lef��vre <vincent@vinc17.net> 38051 38052 Macro LONGDOUBLE_ISNAN wasn't defined. 38053 380542003-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38055 38056 now always define Isnan 38057 38058 moved LONGDOUBLE_ISNAN to mpfr-test.h 38059 38060 removed check from isnan 38061 38062 replaced isnan() by Isnan() 38063 380642003-01-16 Vincent Lef��vre <vincent@vinc17.net> 38065 38066 AC_PREREQ(2.50) added (useful when both autoconf 2.13 and autoconf 38067 2.50 are installed, with a wrapper to select the required version). 38068 38069 Comment in mpfr_test_init: s/preprocessor/compiler/. 38070 380712003-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38072 38073 fixed pb in mpfr_test_init with the compiler optimizing too much 38074 (this happened on Alpha with -O1 or higher) 38075 380762003-01-15 Vincent Lef��vre <vincent@vinc17.net> 38077 38078 Standard prototype only. Particular cases added. 38079 380802003-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38081 38082 moved common prototype for mpn_exp in mpfr-impl.h 38083 38084 removed spurious ; after MPFR_ESIZE 38085 added prototype for mpn_exp 38086 38087 removed items done 38088 38089 new tests from Alain Delplanque 38090 38091 new version using mpn_set_str 38092 [written by Alain Delplanque, edited by Paul Zimmermann] 38093 380942003-01-15 Vincent Lef��vre <vincent@vinc17.net> 38095 38096 Replace $OBJEXT by o (as $OBJEXT isn't defined everywhere). 38097 38098 A ` must be quoted to avoid an error with Autoconf 2.13. 38099 38100 Use type mp_prec_t for precisions. 38101 38102 Source re-indented. 38103 38104 Several bugs fixed concerning the particular cases. 38105 <stdio.h> and <stdlib.h> not included by default. 38106 int mpfr_gamma _PROTO ... removed (was useless). 38107 381082003-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38109 38110 get rid of ceil() call, that requires -lm 38111 381122003-01-14 Kevin Ryde <user42@zip.com.au> 38113 38114 Force LDBL_MANT_DIG on IEEE extended, to avoid problems with 38115 some i386 gcc. 38116 38117 Avoid problems with bad LDBL_MAX and LDBL_MANT_DIG on some i386 gcc. 38118 38119 (MPFR_C_LONG_DOUBLE_FORMAT): New macro. 38120 (MPFR_CONFIGS): Use it. 38121 381222003-01-11 Vincent Lef��vre <vincent@vinc17.net> 38123 38124 Required casts added (and switch from uint to ulong); 38125 in particular, useful on Alpha. 38126 381272003-01-10 Kevin Ryde <user42@zip.com.au> 38128 38129 # Add a copyright year. 38130 38131 Tolerate empty argv[1], which can arise from ancient bash executing 38132 the libtool shared library wrapper script. 38133 38134 Tolerate empty argv[1], which can arise from ancient bash executing 38135 the libtool shared library wrapper script. 38136 38137 Avoid unnecessary extra power of 2 squaring, so as not to provoke an 38138 overflow exception when result is in range. 38139 381402003-01-10 Vincent Lef��vre <vincent@vinc17.net> 38141 38142 Extended precision detection fixed. 38143 381442003-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38145 38146 fixed possible overflow when EXP=1024 38147 38148 rewritten to avoid overflows 38149 38150 added one test 38151 381522003-01-08 Kevin Ryde <user42@zip.com.au> 38153 38154 # Add a copyright year. 38155 38156 #Add a copyright year. 38157 38158 (mpn_exp): Don't store -1 in a uint then return it as a long. 38159 Fixes systems such as alpha where sizeof(uint)!=sizeof(long). 38160 38161 (AC_CHECK_HEADERS): Remove fpu_control.h, no longer required. 38162 38163 Use tests_machine_prec_long_double. 38164 Use LDBL_MAX for largest value and to find largest power of 2. 38165 38166 (__setfpucw, _FPU_EXTENDED, etc): Remove these setups. 38167 (tests_machine_prec_double, tests_machine_prec_long_double, 38168 x86_fstcw, x86_fldcw): Add prototypes. 38169 38170 (tests_machine_prec_double, tests_machine_prec_long_double): New functions. 38171 (mpfr_test_init): Replace __setfpucw with tests_machine_prec_double. 38172 38173 (MPFR_CONFIGS): Add tests/x86.asm support. 38174 38175 (X86_PATTERN): New define, supporting acinclude.m4. 38176 38177 Add x86.asm support. 38178 38179 New file. 38180 381812003-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38182 38183 fixed pb for underflow and rounding to nearest 38184 38185 added macro LONGDOUBLE_ISNAN 38186 use LONGDOUBLE_ISNAN in set_ld instead of cast to double and DOUBLE_ISNAN 38187 (did raise exception under freebsd) 38188 381892003-01-07 Vincent Lef��vre <vincent@vinc17.net> 38190 38191 Added assertions that can be resolved at compile time: the exponents 38192 must be representable in a long int (IMHO, this limitation should be 38193 avoided in a clean way). 38194 381952003-01-06 Kevin Ryde <user42@zip.com.au> 38196 38197 Remove mpfr_get_ld, done. 38198 38199 Remove mpfr_set_machine_rnd_mode, done. 38200 382012003-01-06 Vincent Lef��vre <vincent@vinc17.net> 38202 38203 Bug fix: __mpfr_emax -> __gmpfr_emax. 38204 382052003-01-06 Kevin Ryde <user42@zip.com.au> 38206 38207 Use separate function calls to second strncasecmp and strncmp 38208 for consistency and to avoid gcc warnings. 38209 382102003-01-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38211 38212 fixed infinite loop for 2^integer 38213 382142003-01-06 Vincent Lef��vre <vincent@vinc17.net> 38215 38216 Use digit_value_in_base for the part after the '.'. 38217 38218 Static function digit_value_in_base is now compatible with any locale. 38219 382202003-01-03 Kevin Ryde <user42@zip.com.au> 38221 38222 (<sys/fpu.h>) [__mips]: Move from mpfr-test.h to tests/tests.c, 38223 and conditionalize with HAVE_SYS_FPU_H. 38224 38225 (AC_CHECK_HEADERS): Add sys/fpu.h. 38226 38227 (HAVE_DENORMS) [__mips]: Remove this, let the configure test decide. 38228 38229 Use separate function calls to strncasecmp and strncmp, rather than 38230 ?: on function pointers, since the latter demands declarations not 38231 present on SunOS. Both forms are optimized the same by gcc. 38232 382332003-01-03 Vincent Lef��vre <vincent@vinc17.net> 38234 38235 Added some potential bugs (mpfr_exp2 is known to have such a bug). 38236 382372003-01-02 Kevin Ryde <user42@zip.com.au> 38238 38239 Add gmp-impl.h for __gmp_free_func. 38240 382412002-12-16 Vincent Lef��vre <vincent@vinc17.net> 38242 38243 Suppress some #define and fix symbol names (makes code cleaner): 38244 perl -pi -e 's/__mpfr_flags/__gmpfr_flags/g' **/*.{c,h} 38245 perl -pi -e 's/__mpfr_emin/__gmpfr_emin/g' **/*.{c,h} 38246 perl -pi -e 's/__mpfr_emax/__gmpfr_emax/g' **/*.{c,h} 38247 perl -pi -e 's/__mpfr_default_fp_bit_precision/__gmpfr_default_fp_bit_precision/g' **/*.{c,h} 38248 perl -pi -e 's/__gmp_default_rounding_mode/__gmpfr_default_rounding_mode/g' **/*.{c,h} 38249 perl -pi -e 's/__mpfr_const_log2_prec/__gmpfr_const_log2_prec/g' **/*.{c,h} 38250 perl -pi -e 's/__mpfr_const_pi_prec/__gmpfr_const_pi_prec/g' **/*.{c,h} 38251 perl -pi -e 's/_mpfr_ceil_log2/__gmpfr_ceil_log2/g' **/*.{c,h} 38252 perl -pi -e 's/_mpfr_floor_log2/__gmpfr_floor_log2/g' **/*.{c,h} 38253 perl -pi -e 's/_mpfr_ceil_exp2/__gmpfr_ceil_exp2/g' **/*.{c,h} 38254 perl -pi -e 's/_mpfr_isqrt/__gmpfr_isqrt/g' **/*.{c,h} 38255 perl -pi -e 's/_mpfr_cuberoot/__gmpfr_cuberoot/g' **/*.{c,h} 38256 perl -pi -e 's/^#define __gmpfr_.*\n//' *.h 38257 382582002-12-13 Vincent Lef��vre <vincent@vinc17.net> 38259 38260 Update. 38261 38262 IEEE 754 / IEEE P754 -> IEEE 754-1985. 38263 38264 Correction. 38265 38266 Added a note about the signed zero. 38267 38268 Assertion re-added. 38269 38270 Update for new version of automake/autoconf. 38271 38272 depcomp script added for new version of automake. 38273 382742002-12-12 Kevin Ryde <user42@zip.com.au> 38275 38276 Don't -D define PACKAGE_VERSION etc, to avoid conflict with gmp config.h. 38277 382782002-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38279 38280 added paragraph about accuracy 38281 38282 rewritten unclear paragraph about precision 38283 38284 added one item 38285 38286 use MPN_NORMALIZE_NOT_ZERO instead of loop 38287 382882002-12-11 Vincent Lef��vre <vincent@vinc17.net> 38289 38290 Added #include "mpfr.h" (needed by mpfr-test.h as it uses 38291 mp_rnd_t in one of the prototypes). 38292 382932002-12-10 Vincent Lef��vre <vincent@vinc17.net> 38294 38295 Patch by Torbjorn Granlund <tege@swox.com>: Don't use TMP_ allocation 38296 mechanism for fixed size objects. Resulting streamlining. Misc 38297 addressing changes to work around GNUPro bugs. 38298 Patch by VL: Some other changes in mpfr_set_d. 38299 383002002-12-07 Vincent Lef��vre <vincent@vinc17.net> 38301 38302 (mpfr_const_euler_S, mpfr_const_euler_R) 38303 Make declaration match prototype (patch by Torbjorn Granlund). 38304 383052002-12-04 Vincent Lef��vre <vincent@vinc17.net> 38306 38307 Update from ftp://ftp.gnu.org/pub/gnu/config/ 38308 383092002-12-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38310 38311 Use @ifnottex/@end iffnotex instead of @ifinfo/@end ifinfo 38312 383132002-12-02 Vincent Lef��vre <vincent@vinc17.net> 38314 38315 Fix rnd_mode.c (again). 38316 383172002-12-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38318 38319 put redefinitions of external symbols just before prototypes 38320 38321 updated 38322 38323 added new known bugs 38324 383252002-11-29 Kevin Ryde <user42@zip.com.au> 38326 38327 Add notes on mpf_t maintaining actual size for efficiency. 38328 38329 Remove mpfr_set_machine_rnd_mode task. 38330 38331 Tweak some math formatting for tex. 38332 38333 (mpfr_set_machine_rnd_mode): Move prototype to mpfr-test.h. 38334 38335 (libfrtests_a_SOURCES): Add rnd_mode.c. 38336 38337 (libmpfr_a_SOURCES): Remove rnd_mode.c. 38338 38339 Remove file, moved to tests directory. 38340 38341 New file, moved from top-level directory. 38342 38343 (Rounding Modes): Remove mpfr_set_machine_rnd_mode. 38344 38345 Use GNU style code layout. 38346 38347 Use GNU style code layout. 38348 383492002-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38350 38351 redefined external symbols in the __gmpfr namespace 38352 383532002-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38354 38355 added one fprintf in case of error 38356 383572002-11-25 Vincent Lef��vre <vincent@vinc17.net> 38358 38359 mpfr_set_machine_rnd_mode fixed to compile on some architectures 38360 (e.g. ARM). Now returns an int. 38361 38362 Bug fixed. 38363 383642002-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38365 38366 removed all tests that compare to libm 38367 38368 changed to distinguish mpfr failures from libm failures 38369 38370 added 3 tests that make libm fail under HP-PA 38371 383722002-11-23 Vincent Lef��vre <vincent@vinc17.net> 38373 38374 Update. 38375 383762002-11-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38377 38378 forgot to remove debug statement 38379 38380 fixed bug (infinite loop) for exact powers 38381 383822002-11-21 Kevin Ryde <user42@zip.com.au> 38383 38384 More on tuned thresholds, more on config.h etc, new section on mpf/mpfr 38385 integration. 38386 383872002-11-20 Vincent Lef��vre <vincent@vinc17.net> 38388 38389 Code clean-up. 38390 383912002-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38392 38393 fixed some problems found by insure 38394 38395 forgotten fclose() call 38396 38397 fixed array bound write 38398 383992002-11-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38400 38401 fixed non-ansi features 38402 38403 added explicit cast 38404 384052002-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38406 38407 added mpfr_cbrt 38408 384092002-10-20 Vincent Lef��vre <vincent@vinc17.net> 38410 38411 Update. 38412 384132002-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38414 38415 fixed bug with wrong sign detection 38416 384172002-10-19 Vincent Lef��vre <vincent@vinc17.net> 38418 38419 Some fixes to avoid overflows. 38420 384212002-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38422 38423 fixed bug for large arguments 38424 38425 improved code for rounding to nearest 38426 38427 fixed bug for EXP(x) > EMAX/2 38428 38429 modified description of hypot and cbrt 38430 384312002-10-18 Vincent Lef��vre <vincent@vinc17.net> 38432 38433 Update. 38434 38435 Added test showing bug in sign detection. 38436 38437 Added newline. 38438 38439 Bug in mpfr_hypot. 38440 38441 Added test that makes mpfr_hypot fail. 38442 38443 Precision Nt: int -> mp_prec_t. 38444 38445 Added some tests. 38446 38447 main () -> main (void). 38448 384492002-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38450 38451 added tcbrt.c, test file for mpfr_cbrt 38452 38453 fixed overflow problem 38454 38455 completely rewritten using mpz_root 38456 38457 added cbrt 38458 384592002-10-17 Vincent Lef��vre <vincent@vinc17.net> 38460 38461 C9X -> ISO/IEC 9899:1999 (ISO C99). 38462 38463 Cases NaN and -0.0 taken into account. 38464 384652002-10-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38466 38467 added check for +0 and -0 38468 38469 added one test (2^1024) 38470 38471 fixed bug when overflow for double type 38472 38473 added mpfr_set_ld and mpfr_get_ld 38474 384752002-10-16 Vincent Lef��vre <vincent@vinc17.net> 38476 38477 Fix for -0.0. 38478 384792002-10-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38480 38481 constants for mpfr_get_str and mpfr_set_str 38482 384832002-10-16 Vincent Lef��vre <vincent@vinc17.net> 38484 38485 Obsolete comment removed. 38486 38487 Removed log_b2.h as it doesn't seem to be necessary. 38488 384892002-10-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38490 38491 added prototype for mpfr_get_ld 38492 38493 added mpfr_get_ld and tests for set_ld/get_ld 38494 38495 added cast to long double 38496 384972002-10-16 Vincent Lef��vre <vincent@vinc17.net> 38498 38499 Update (tset_ld). 38500 38501 Test removed as the minimal precision for a long double is something 38502 like 10 decimal digits. Anyway, there are implementations for which 38503 long double = double = IEEE double precision. 38504 38505 DBL_MANT_DIG and LDBL_MANT_DIG are normally defined by <float.h>. 38506 385072002-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38508 38509 added mpfr_set_ld and test file 38510 385112002-10-13 Vincent Lef��vre <vincent@vinc17.net> 38512 38513 Bug in mpfr_sin (and perhaps other functions): error analysis. 38514 38515 Bug fixed (found by Dmitrii Baksheyev): atan(1) cannot be exact. 38516 385172002-10-08 Kevin Ryde <user42@zip.com.au> 38518 38519 Remove mpfr_get_str using mpn_get_str (done). 38520 Remove no grepping for __setfpucw, done (near enough). 38521 New thread-safety section, add const_pi and const_log2 caching. 38522 New portability section, add mingw random and _mpfr_ceil_log2 IEEE-ism. 38523 38524 (AC_MY_LIBS): Show the filename in the error message. 38525 385262002-10-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38527 38528 mpfr_get_default_prec was missing (thanks to F. Morain) 38529 385302002-09-30 Vincent Lef��vre <vincent@vinc17.net> 38531 38532 Removed get_str.c bug, as the mpfr_get_str function has 38533 completely been rewritten. 38534 385352002-09-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38536 38537 fixed wrong inexact flag for a - b where a and b are of different signs 38538 and EXP(a) < EXP(b) 38539 38540 added test for inexact flag (bug found by Andreas Enge) 38541 385422002-09-23 Kevin Ryde <user42@zip.com.au> 38543 38544 (mpfr_init, mpfr_init2, mpfr_set_prec): Make void return, these always 38545 succeed. 38546 385472002-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38548 38549 fixed various tiny problems 38550 38551 added more tests for mpfr_urandomb, and for small precision 38552 38553 fixed bugs in mpfr_random2 (wrong exponent, invalid numbers) 38554 38555 added checks for mpfr_random2 38556 38557 cmp_abs -> cmpabs (for compatibility with mpz) 38558 385592002-09-21 Kevin Ryde <user42@zip.com.au> 38560 38561 (Converting Floats): Don't refer to the internal _mp_free_func with 38562 mpfr_get_str. 38563 38564 (Special Functions, Internals): Make these into nodes. 38565 385662002-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38567 38568 now accept uppercase letters too 38569 38570 added test for uppercase letters 38571 385722002-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38573 38574 now mpfr_agm returns an int (inexact flag) 38575 385762002-09-13 Vincent Lef��vre <vincent@vinc17.net> 38577 38578 Some more information. 38579 385802002-09-12 Vincent Lef��vre <vincent@vinc17.net> 38581 38582 On HP-UX, use the +allowunsats switch for ld, otherwise ld complains 38583 that some GMP symbols are unsatisfied. 38584 385852002-09-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38586 38587 fixed bug in reflection formula for x<1 38588 385892002-08-23 Vincent Lef��vre <vincent@vinc17.net> 38590 38591 MPFR now needs GMP 4.1 or higher. 38592 385932002-08-22 Kevin Ryde <user42@zip.com.au> 38594 38595 (__mpfr_nan): Clarify comments about HP C and alpha. 38596 38597 (_MPFR_NAN_BYTES, _MPFR_INFP_BYTES, _MPFR_INFM_BYTES): 38598 Use HAVE_DOUBLE_IEEE_LITTLE_ENDIAN etc to select endianness, not a big 38599 block of #ifdefs. 38600 386012002-08-12 Vincent Lef��vre <vincent@vinc17.net> 38602 38603 strcasecmp.c -> strcasecmp.c & strncasecmp.c 38604 386052002-08-07 Kevin Ryde <user42@zip.com.au> 38606 38607 Use $(top_builddir) consistently with libmpfr.a, for the benefit of 38608 srcdir!=builddir. 38609 386102002-08-02 Vincent Lef��vre <vincent@vinc17.net> 38611 38612 Don't touch user specified flags (CFLAGS). [patch by Kevin Ryde] 38613 386142002-07-30 Vincent Lef��vre <vincent@vinc17.net> 38615 38616 Better check for strcasecmp and strncasecmp. Bug fixed. 38617 386182002-07-28 Vincent Lef��vre <vincent@vinc17.net> 38619 38620 Functions mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p, 38621 mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p. 38622 38623 Use AUTOMAKE_OPTIONS = gnu [suggested by Kevin Ryde] 38624 38625 check target -> TESTS = $(check_PROGRAMS) [suggested by Kevin Ryde] 38626 38627 strcasecmp and strncasecmp -> mpfr_strcasecmp and mpfr_strncasecmp 38628 if they are provided by MPFR. 38629 38630 TMP_MARK missing (patch by Kevin Ryde). 38631 386322002-07-26 Vincent Lef��vre <vincent@vinc17.net> 38633 38634 Update. 38635 38636 Update (mainly concerning CVS use). 38637 38638 Prototype of mpfr_setmax and mpfr_setmin changed (exponent given). 38639 In mpfr_exp for x ~= 0, add_one_ulp and sub_one_ulp are no longer 38640 used (sub_one_ulp was incorrect). These cases should now be faster. 38641 Small fix in mpfr_nextabove, mpfr_nextbelow and mpfr_nexttoward. 38642 38643 New internal functions mpfr_setmin and mpfr_setmax. 38644 New functions mpfr_nextabove, mpfr_nextbelow, mpfr_nexttoward. 38645 Small fix in mpfr_sub_one_ulp. 38646 386472002-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38648 38649 improved the computation of g = ceil((e-1)/log_2(beta)), using two tables 38650 386512002-07-25 Vincent Lef��vre <vincent@vinc17.net> 38652 38653 Function mpfr_check_range now propagates the inexact ternary value. 38654 Function mpfr_restore_emin_emax OR's the saved flags with the current 38655 flags, as this is more useful in general. 38656 Macro MPFR_RESTORE_RET removed (no longer useful). 38657 386582002-07-24 Vincent Lef��vre <vincent@vinc17.net> 38659 38660 Change concerning an assertion, due to GMP limitation. 38661 386622002-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38663 38664 gnu indentation 38665 38666 reduce range of tests (did take too much time) 38667 38668 added plenty of new cases, now covers all lines of get_str.c 38669 38670 updated documentation of mpfr_get_str 38671 38672 completely new version, written by Alain Delplanque and Paul Zimmermann. 38673 It now directly uses mpn_get_str, with subquadratic complexity. 38674 About 3 times faster than previous version in most cases. 38675 386762002-07-24 Vincent Lef��vre <vincent@vinc17.net> 38677 38678 Bug fixed: unsigned int variables changed to int to avoid operations 38679 with mixed signed/unsigned variables and unwanted casts. 38680 38681 Function mpfr_frac and tests added. 38682 38683 Bug fixed (0 was forgotten). 38684 38685 Optimization: mpfr_trunc no longer used! 38686 38687 mpfr_isinteger extended to non-fp numbers and to zero. 38688 38689 Simpler test. 38690 386912002-07-23 Vincent Lef��vre <vincent@vinc17.net> 38692 38693 Re-adding mul.c with fixed permissions. 38694 38695 Temporarily removing mul.c in order to try to fix its permissions. 38696 38697 Function mpfr_check_range improved in the underflow case. 38698 386992002-07-22 Vincent Lef��vre <vincent@vinc17.net> 38700 38701 Update. 38702 387032002-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38704 38705 now dump in base 2 38706 38707 forgot one free() call 38708 387092002-07-22 Vincent Lef��vre <vincent@vinc17.net> 38710 38711 mpfr_pow bug removed. 38712 38713 Reindentation. 38714 38715 pow.c: bug fixed (in the call to mpfr_can_round). 38716 tpow.c: mpfr_clear added. 38717 38718 Modified the two tests to make the bug appear. 38719 387202002-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38721 38722 added two tests 38723 387242002-07-19 Vincent Lef��vre <vincent@vinc17.net> 38725 38726 Updated note concerning rcs2log. 38727 38728 Line mpfr_get_exp / mpfr_set_exp removed. 38729 387302002-07-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38731 38732 added function check_large 38733 387342002-07-15 Vincent Lef��vre <vincent@vinc17.net> 38735 38736 Update from ftp://ftp.gnu.org/pub/gnu/config/ 38737 387382002-07-14 Vincent Lef��vre <vincent@vinc17.net> 38739 38740 Add __sparc__ (patch by Nix <nix@esperi.demon.co.uk>). 38741 38742 Note about randomized tests. 38743 387442002-07-04 Vincent Lef��vre <vincent@vinc17.net> 38745 38746 Bug concerning the rounding of pow(). 38747 38748 mpfr_pow() didn't work when the exponent was a negative integer. 38749 38750 mpfr_get_z_exp() didn't work when the MPFR number was negative. 38751 38752 New functions mpfr_get_exp and mpfr_set_exp. 38753 387542002-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38755 38756 removed duplicated entry (thread-safe) 38757 38758 added new items 38759 38760 added special cases 38761 38762 added one reference (nocite) 38763 38764 added one reference 38765 38766 fixed bug in return value 38767 38768 new additions 38769 38770 added pointer to mpfr_inp_str in mpfr_set_str 38771 387722002-06-26 Vincent Lef��vre <vincent@vinc17.net> 38773 38774 Update. 38775 38776 MP_LIMB_T_HIGHBIT -> MPFR_LIMB_HIGHBIT. 38777 MPFR is now compatible with GMP 4.1. 38778 387792002-06-15 Vincent Lef��vre <vincent@vinc17.net> 38780 38781 Added: make MPFR thread-safe. 38782 387832002-06-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38784 38785 fixed bug found by Gerardo Ballabio 38786 38787 added one test (bug in mpfr-2.0.1 found by Gerardo Ballabio) 38788 387892002-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38790 38791 added mpfr_modf 38792 387932002-06-12 Vincent Lef��vre <vincent@vinc17.net> 38794 38795 Added modf (to implement). 38796 387972002-06-08 Vincent Lef��vre <vincent@vinc17.net> 38798 38799 check: Apply a hack to the parameter order to make sparc gcc 2.95.2 38800 happy (patch by Kevin Ryde) + static added. 38801 38802 Patch by Kevin Ryde. 38803 38804 Suppress tests if sqrt is not affected by mpfr_set_machine_rnd_mode 38805 (patch by Kevin Ryde). 38806 38807 Update. 38808 38809 fdl.texi added. 38810 38811 Patch by Kevin Ryde (and Vincent Lefevre). 38812 mpfr.texi: Change license to FDL, use @copying per texinfo 4.2. 38813 Use @dircategory, @direntry, @documentdescription. 38814 Move @contents to start of file. 38815 (VERSION, UPDATED): New variables. 38816 (m, GMPtimes, times): New macros. 38817 (Float Arithmetic): Fix html output. Reported by Richard Dawe. 38818 (GNU Free Documentation License): New appendix. 38819 388202002-06-06 Vincent Lef��vre <vincent@vinc17.net> 38821 38822 Use gmp-impl.h to get MPFR_HAVE_FESETROUND (reported by Kevin Ryde). 38823 388242002-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38825 38826 patch for mpfr.texi 38827 38828 patch from Richard Dawe <richdawe@bigfoot.com> to generate HTML 38829 38830 added mpfr_gamma in libmpfr 38831 388322002-06-05 Vincent Lef��vre <vincent@vinc17.net> 38833 38834 Check for isnan. 38835 388362002-05-29 Vincent Lef��vre <vincent@vinc17.net> 38837 38838 Bug fixed (possible integer overflow). 38839 38840 Bug fixed (possible integer overflow). 38841 38842 Bug fixed (possible integer overflow). 38843 38844 Note added for mpfr_check_range. Bug fixed. 38845 38846 Sign wasn't set (reported by Dmitrii Baksheyev). 38847 Types fixed and code clean-up. 38848 38849 Types fixed and code clean-up. 38850 388512002-05-27 Vincent Lef��vre <vincent@vinc17.net> 38852 38853 Patch by Kevin Ryde for memory leak checking + misc declaration fixes. 38854 Code moved from mpfr-test.h to tests.c. 38855 388562002-05-14 Vincent Lef��vre <vincent@vinc17.net> 38857 38858 Ternary flag for mpfr_agm. 38859 38860 Copyright line updated. 38861 388622002-05-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38863 38864 ternary flag for mpfr_agm? 38865 38866 update wrt mpfr_set_machine_rnd_mode 38867 38868 added mathematical description of arithmetico-geometric mean 38869 388702002-05-08 Vincent Lef��vre <vincent@vinc17.net> 38871 38872 The problem on a G4 PowerPC was a bug in gcc; this is now tested 38873 in configure (float-conversion bug) and -ffloat-store is used if 38874 need be. 38875 388762002-05-06 Vincent Lef��vre <vincent@vinc17.net> 38877 38878 Problem on the G4 PowerPC. 38879 388802002-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38881 38882 fixed problem (infinite loop) in mpfr_pow for exact powers 38883 38884 fixed errors found by Sylvain Pion 38885 388862002-04-27 Vincent Lef��vre <vincent@vinc17.net> 38887 38888 not relevant -> undefined. 38889 38890 Some changes concerning the internals and zeros 38891 (including remarks by Kevin Ryde). 38892 388932002-04-25 Vincent Lef��vre <vincent@vinc17.net> 38894 38895 Check if HUGE_VAL is supported. 38896 38897 Changes in mpfr_set_str. 38898 388992002-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38900 38901 update 38902 38903 mpfr_set_str doesn't require any more a final '\0' 38904 and return the number of characters read 38905 38906 modified tests for special values 38907 389082002-04-24 Vincent Lef��vre <vincent@vinc17.net> 38909 38910 Description updated. 38911 38912 mpfr_cmp_abs no longer an internal function and described in mpfr.texi. 38913 In mpfr.texi, a @var{} was forgotten. 38914 38915 mpfr_cmp_abs can now be called on zero numbers. 38916 38917 Structures are used to get correct alignment. 38918 389192002-04-23 Vincent Lef��vre <vincent@vinc17.net> 38920 38921 _MPFR_INF*_BYTES fix. On alpha, use a "double" for the bytes, 38922 to avoid a mis-conversion on alpha gcc 3.0.2. (Kevin Ryde) 38923 38924 Underflow semantics changed (not tested). 38925 38926 Code simplified due to change in the maximum exponent range. 38927 389282002-04-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38929 38930 modifs from Andreas 38931 389322002-04-22 Vincent Lef��vre <vincent@vinc17.net> 38933 38934 Union -> array + cast because of the HP compiler. 38935 389362002-04-20 Vincent Lef��vre <vincent@vinc17.net> 38937 38938 Avoid constant floating expression, as this doesn't give the correct 38939 result with gcc on some Alpha machines. (patch by Paul Zimmermann) 38940 389412002-04-19 Vincent Lef��vre <vincent@vinc17.net> 38942 38943 RAND_MAX defined if not already defined (as it should be). 38944 38945 Include config.h, for the benefit of test programs not using 38946 gmp-impl.h (Kevin Ryde). 38947 389482002-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38949 38950 added tests in mpfr_test_init for denorms and extended precision 38951 38952 mpfr_init and mpfr_init2 now return an int 38953 389542002-04-19 Vincent Lef��vre <vincent@vinc17.net> 38955 38956 Exponent range saved/restored. Returns NaN when the numerator 38957 or the denominator is too large for MPFR. 38958 38959 Added some assertions (any unsigned long must be representable 38960 in a mp_limb_t). 38961 38962 SAFE_ABS changed so that it can be used for any unsigned type. 38963 389642002-04-18 Vincent Lef��vre <vincent@vinc17.net> 38965 38966 Added code to prevent possible integer overflow when the input number 38967 is very large. 38968 38969 New values for exponent range. 38970 389712002-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38972 38973 call get_d with rounding mode in check2, to avoid problems near +Inf 38974 38975 2147483647 -> INT_MAX 38976 38977 improved ulp() to deal with infinities 38978 and fixed tadd/check2 to deal with infinities 38979 389802002-04-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38981 38982 improved documentation of mpfr_set_precset_prec. 38983 389842002-04-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38985 38986 fixed documentation of cosh/sinh/tanh 38987 389882002-04-16 Vincent Lef��vre <vincent@vinc17.net> 38989 38990 mpfr_cmp_ui_2exp and mpfr_cmp_si_2exp rewritten. 38991 Prototype changed. 38992 38993 Use AC_CANONICAL_HOST and $host instead of $OS_TYPE and $MACHTYPE 38994 (patch suggested by Kevin Ryde). 38995 38996 Added files from ftp.gnu.org for automake and AC_CANONICAL_HOST. 38997 389982002-04-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38999 39000 replaced 2.2e-307 by DBL_MIN 39001 390022002-04-15 Vincent Lef��vre <vincent@vinc17.net> 39003 39004 Typo: Gnu -> GNU. 39005 39006 Update for future 2.0.2. 39007 39008 Update for mpfr 2.0.1. 39009 39010 Back to version 2.0.1, updated documentation. 39011 39012 Post-release commit. 39013 39014 Update for mpfr 2.0.1. 39015 39016 mpfr_cmp_ui_2exp and mpfr_cmp_si_2exp can no longer be called with a NaN. 39017 Misc bugs fixed. 39018 390192002-04-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39020 39021 added main changes in version 2.0.1 39022 390232002-04-15 Vincent Lef��vre <vincent@vinc17.net> 39024 39025 Update for "make dist". 39026 39027 COPYING -> COPYING.LIB and GPL re-added. 39028 39029 Update. 39030 39031 Removed switches -g -O2 as already done by configure. 39032 390332002-04-14 Vincent Lef��vre <vincent@vinc17.net> 39034 39035 Update. 39036 39037 Removed useless @iftex... 39038 39039 Update. 39040 39041 When q = 0, +0 is returned. 39042 390432002-04-13 Vincent Lef��vre <vincent@vinc17.net> 39044 39045 Update for the next pre-release. 39046 39047 Support for NaN and Inf (case insensitive) in mpfr_set_str. Tests. 39048 39049 Bug fixed. 39050 39051 Update for the next pre-release. 39052 39053 Misc changes. Use of AC_CACHE_CHECK. 39054 390552002-04-12 Vincent Lef��vre <vincent@vinc17.net> 39056 39057 Code clean-up. 39058 39059 Update for the next pre-release. 39060 39061 New tests. 39062 39063 mpfr_get_d* fixed. 39064 39065 Types fixed in const_log2.c (this fixes the tconst_log2 crash). 39066 39067 Added a note about the native SunOS 4 C compiler. 39068 390692002-04-11 Vincent Lef��vre <vincent@vinc17.net> 39070 39071 Type fixed. 39072 39073 mpfr_set_d bug fixed, but other bugs still remain... 39074 39075 NULL was undeclared on some architectures (reported by Torbjorn Granlund). 39076 39077 #include ordering changed for Windows + Cygwin 32. 39078 39079 LDFLAGS changed on HP-UX. 39080 39081 Update for the next pre-release. 39082 39083 Subnormal test in different rounding modes + fix. 39084 39085 Function MPFR_CONFIGS. 39086 39087 Tests added. 39088 39089 get_d.c partly rewritten (Paul Zimmermann). 39090 39091 #include ordering fixed. 39092 39093 Check for gcc float-conversion bug. 39094 390952002-04-10 Vincent Lef��vre <vincent@vinc17.net> 39096 39097 Added comment for mpfr_round_raw_generic (about using 1-bit precision). 39098 39099 Update (thanks to Nathalie Revol). 39100 39101 Update for the next pre-release. 39102 39103 HAVE_FESETROUND renamed to MPFR_HAVE_FESETROUND to avoid possible 39104 name conflict. 39105 39106 Added missing headers in libmpfr_a_SOURCES. 39107 391082002-04-09 Vincent Lef��vre <vincent@vinc17.net> 39109 39110 Update for the next pre-release. 39111 39112 Possible tconst_log2 crash under Solaris. 39113 39114 Under OSF, use option -ffloat-store only when the compiler is gcc. 39115 39116 include_HEADERS should contain only mpfr.h and mpf2mpfr.h. 39117 39118 Added code to support fesetround under Solaris. 39119 39120 "In case of problem" update. 39121 39122 Old URL removed. 39123 39124 Renaming: DIR -> GMPINSTALL, GMPDIR -> GMPBUILD. Bug on IRIX updated. 39125 39126 Removed note about stack-alloc.h. 39127 39128 Check for fenv.h -> check for fesetround. 39129 39130 Added note concerning patch submission. 39131 391322002-04-08 Vincent Lef��vre <vincent@vinc17.net> 39133 39134 Note about overflows. Functions mpfr_{div,mul}_{si,ui} described. 39135 391362002-04-07 Vincent Lef��vre <vincent@vinc17.net> 39137 39138 Update for the next (and last?) pre-release. 39139 39140 Stricter test for HAVE_INFS. 39141 39142 Update. 39143 39144 Added note about IRIX. 39145 39146 Update for the next pre-release. 39147 39148 mpfr_get_d -> mpfr_get_d1 and mpfr_get_d2 -> mpfr_get_d. 39149 391502002-04-06 Vincent Lef��vre <vincent@vinc17.net> 39151 39152 Update for the next pre-release. 39153 39154 Update. 39155 391562002-04-05 Vincent Lef��vre <vincent@vinc17.net> 39157 39158 New file from Paul. 39159 39160 COPYING.LIB removed. 39161 39162 COPYING.LIB -> COPYING. 39163 39164 README.dev added. 39165 391662002-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39167 39168 put back label removed by error 39169 39170 removed _FPU_RC_NEAREST ... for x86 (not used any more, now use fenv.h) 39171 39172 removed nested TMP_MARK's (problems when configuring gmp with --disable-alloca) 39173 39174 fixed pb with two markers (with --disable-alloca) 39175 391762002-04-05 Vincent Lef��vre <vincent@vinc17.net> 39177 39178 Removed (not used). 39179 391802002-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39181 39182 use AC_CHECK_HEADERS to check for fenv.h 39183 and AC_CHECK_FUNCS to check for lrand48 39184 391852002-04-04 Vincent Lef��vre <vincent@vinc17.net> 39186 39187 Added "VERSION" and "prepare" descriptions. 39188 391892002-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39190 39191 fixed bugs found by Nathalie 39192 391932002-04-04 Vincent Lef��vre <vincent@vinc17.net> 39194 39195 Update for the next pre-release. 39196 39197 Removed check for extended precision, as no longer used. 39198 391992002-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39200 39201 added check for denormalized numbers 39202 39203 added new functions to implement 39204 392052002-04-03 Vincent Lef��vre <vincent@vinc17.net> 39206 39207 Update for the next pre-release. 39208 39209 -ffloat-store is a gcc option. 39210 39211 Added 4th argument to AC_TRY_RUN. 39212 39213 Re-fix. 39214 392152002-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39216 39217 added check for fpu_control.h 39218 39219 added missing cast to double 39220 392212002-04-02 Vincent Lef��vre <vincent@vinc17.net> 39222 39223 [ ] used around error message. 39224 39225 Update. 39226 39227 Check BITS_PER_MP_LIMB and BYTES_PER_MP_LIMB. 39228 39229 sqrtrem.c removed. 39230 39231 New ChangeLog file (generated by rcs2log). 39232 39233 Suppress PACKAGE and VERSION definitions for the compiler. 39234 392352002-04-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39236 39237 old file 39238 392392002-03-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39240 39241 more "internal" changes suggested by Vincent 39242 39243 added suggestions from Kevin in "internals" 39244 392452002-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39246 39247 added test for denorms 39248 39249 on a 32-bit machine, denormalized numbers with high 32 bits to 0 39250 were flushed to zero 39251 392522002-03-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39253 39254 sign of sin(-1) was not set 39255 39256 added check for asin(-1) 39257 39258 added one test 39259 39260 previous fix was completely wrong 39261 39262 fixed pb in cmp_si when i = -2^31 (then beware that -1 * i < 0 !!!) 39263 39264 added check for underflow 39265 392662002-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39267 39268 - use mpfr_test_init to initialize hardware floats 39269 - use #ifdef HAVE_INFS when using DBL_NAN, ... 39270 - fixed some problems with wrongly converted f-p values (esp. under IRIX) 39271 39272 use AC_TRY_CPP instead of AC_TRY_RUN for fenv.h 39273 (otherwise fails on Itanium) 39274 39275 added function mpfr_test_init to initialize full IEEE behaviour 39276 39277 put back simple algorithm that computes x*y exactly and then 39278 directly calls mpfr_add, to avoid wrong inexact flags 39279 39280 added 2002 in copyright line 39281 39282 fixed problem on x86 (set precision to double to avoid double rounding) 39283 39284 added check for valid 1/0, denormalized, and extended precision 39285 392862002-03-26 Vincent Lef��vre <vincent@vinc17.net> 39287 39288 New-style comment removed. 39289 392902002-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39291 39292 added a description of the mpfr_t type in "Internals" 39293 392942002-03-26 Vincent Lef��vre <vincent@vinc17.net> 39295 39296 #include <unistd.h> removed. Redefined macros ABS removed. 39297 39298 Patch by Kevin Ryde + misc fixes. 39299 393002002-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39301 39302 replaced getpid() by time(NULL) 39303 39304 MPFR_SIZE and sign were incorrectly set [thanks Kevin] 39305 39306 added check_nan (from Kevin) 39307 39308 fixed bug for sqrt(-0) found by Kevin [NaN flag not cleared] 39309 393102002-03-22 Vincent Lef��vre <vincent@vinc17.net> 39311 39312 Error message now copes with extended precision. 39313 393142002-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39315 39316 added test in configure for checking rand48 functions (HAVE_RAND48) 39317 and fenv.h (HAVE_FENV) 39318 added mpfr_set_machine_rnd_mode (if fenv.h exists) 39319 replaced TEST by HAVE_FENV 39320 393212002-03-22 Vincent Lef��vre <vincent@vinc17.net> 39322 39323 Missing #include. 39324 39325 MPFR_RETNAN shouldn't be used as no value is returned. 39326 39327 Regarde 0 as positive rather than negative (though it's better not to use it). 39328 39329 Memory leak (patch by Kevin Ryde). 39330 393312002-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39332 39333 replaced rand/lrand48, drand48, srand/srand48 by macros 39334 LONG_RAND, DBL_RAND, SEED_RAND 39335 and time(NULL) by getpid() 39336 39337 added macros LONG_RAND, DBL_RAND, SEED_RAND 39338 39339 added VERSION and mpfr-math.h for "make dist" 39340 393412002-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39342 39343 new functions 39344 39345 now use macros DBL_NAN, DBL_POS_INF, DBL_NEG_INF, 39346 and functions mpfr_set_nan, mpfr_set_inf 39347 39348 defined macros for 0/0, 1/0, -1/0 39349 39350 added new functions mpfr_set_nan and mpfr_set_inf 39351 393522002-03-19 Vincent Lef��vre <vincent@vinc17.net> 39353 39354 File VERSION added. Contains the next version (currently 2.0.1). 39355 configure.in updated accordingly. 39356 39357 Macros MPFR_DBL_NAN, MPFR_DBL_INFP and MPFR_DBL_INFM. 39358 393592002-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39360 39361 MP_LIMB_T_HIGHBIT -> ULONG_HIGHBIT 39362 39363 moved code under #ifdef 39364 39365 moved code under #ifdef TEST 39366 39367 remove variable sizer (not used) 39368 39369 Library GPL -> Lesser GPL 39370 39371 updated 39372 393732002-03-17 Vincent Lef��vre <vincent@vinc17.net> 39374 39375 Some changes in the types. 39376 393772002-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39378 39379 changed Nt variable to signed 39380 393812002-03-17 Vincent Lef��vre <vincent@vinc17.net> 39382 39383 Bugs fixed. 39384 393852002-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39386 39387 added back mpfr_sin_cos 39388 39389 new version (adapted from sin.c) 39390 39391 added tests for tan(3*Pi/4) and tan(7*Pi/4) 39392 39393 fixed bug for tan(3*Pi/4) [wrong sign] 39394 39395 added test for log(10^n) 39396 39397 fixed infinite loop problem for log(10^n) 39398 393992002-03-13 Vincent Lef��vre <vincent@vinc17.net> 39400 39401 Fix (patch by Kevin Ryde). 39402 39403 Do not read the exponent if it has no meaning. 39404 394052002-03-12 Vincent Lef��vre <vincent@vinc17.net> 39406 39407 mpfr_random update (patch by Kevin Ryde). 39408 39409 2 more known bugs. 39410 39411 mpfr_a{cos,sin,tan} documentation at a better place. 39412 39413 Some mpfr_clear added (patch by Kevin Ryde). 39414 394152002-03-11 Vincent Lef��vre <vincent@vinc17.net> 39416 39417 mpfr_get_d3 partially rewritten (to follow the new specifications). 39418 tget_d.c updated because of changes in get_d.c. 39419 39420 Return a null pointer if rnd_mode is an invalid rounding mode. 39421 394222002-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39423 39424 set sign before calling mpfr_check_range 39425 39426 stupid typo in previous commit 39427 39428 removed expx (not used) 39429 39430 fixed typo (ai [potentially unsigned] replaced by i) 39431 394322002-03-11 Vincent Lef��vre <vincent@vinc17.net> 39433 39434 New mpfr_get_d, mpfr_get_d2, mpfr_get_d3. 39435 394362002-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39437 39438 added return 39439 394402002-03-11 Vincent Lef��vre <vincent@vinc17.net> 39441 39442 set_d.c split into get_d.c and set_d.c 39443 394442002-03-11 David Daney <david.daney@inria.fr> 39445 39446 add cbrt in fonctionnality 39447 394482002-03-11 Vincent Lef��vre <vincent@vinc17.net> 39449 39450 Bug removed. 39451 39452 #include changes. 39453 394542002-03-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39455 39456 fixed problem when te=ti=1 (i.e. t=0) found by Kevin Ryde 39457 39458 simplified test4() 39459 394602002-03-06 Vincent Lef��vre <vincent@vinc17.net> 39461 39462 Update. 39463 39464 Update. 39465 39466 Patch by Kevin Ryde concerning nodes/menus. 39467 394682002-03-05 Vincent Lef��vre <vincent@vinc17.net> 39469 39470 Casts fixed. 39471 394722002-03-04 Vincent Lef��vre <vincent@vinc17.net> 39473 39474 File renaming. 39475 39476 Copyright line changed. 39477 394782002-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39479 39480 updated 39481 39482 changed name of mpz_set_fr to mpfr_get_z_exp 39483 394842002-02-28 Vincent Lef��vre <vincent@vinc17.net> 39485 39486 Removed some <math.h> dependencies. 39487 39488 Fixed. 39489 39490 mpfr_get_d rewritten (still needs to be fixed when the result is a subnormal). 39491 394922002-02-27 Vincent Lef��vre <vincent@vinc17.net> 39493 39494 mpfr_get_d2 tested. 39495 39496 Update. 39497 39498 New tests. 39499 39500 Additional flags for gcc + minor changes. 39501 39502 Minor update. 39503 395042002-02-25 Vincent Lef��vre <vincent@vinc17.net> 39505 39506 mpfr_get_d2 prototype changed (mp_exp_t instead of long). 39507 __mpfr_scale2 fixes: checks for integer overflows, signed zeros, exact 39508 rounding for subnormals in the rounding to the nearest mode (problems 39509 due to multiple roundings avoided). 39510 mpfr_get_d2: signed zeros taken into account. This function still needs 39511 to be rewritten (because of multiple roundings). 39512 395132002-02-21 Vincent Lef��vre <vincent@vinc17.net> 39514 39515 _mpfr_ceil_log2, _mpfr_floor_log2, _mpfr_ceil_exp2 in separate files. 39516 395172002-02-19 Vincent Lef��vre <vincent@vinc17.net> 39518 39519 Fixes, code clean-up and some asserts against integer overflows. 39520 Code need to be checked. 39521 395222002-02-14 Vincent Lef��vre <vincent@vinc17.net> 39523 39524 mpfr_{div,mul}_2exp -> mpfr_{div,mul}_2ui. 39525 39526 Partial code clean-up and some asserts against integer overflows (2). 39527 395282002-02-13 Vincent Lef��vre <vincent@vinc17.net> 39529 39530 Partial code clean-up and some asserts against integer overflows. 39531 39532 MP_EXP_T_MAX and MP_EXP_T_MIN defined. 39533 39534 Macros IS_POW2 and NOT_POW2. 39535 395362002-02-12 Vincent Lef��vre <vincent@vinc17.net> 39537 39538 Use mpfr_save_emin_emax and MPFR_RESTORE_RET. 39539 39540 Update due to changes in mpfr_get_str. 39541 39542 mpfr_get_str: the returned exponent for 0 is 0 (like in frexp()). 39543 mpz_set_fr.c: comment added. 39544 out_str.c: minor changes. 39545 39546 Update. 39547 39548 Bug fixed and other changes. 39549 39550 NULL -> null pointer and other small changes. 39551 39552 mpfr_get_str: null pointer returned in case of error, NaN taken into account. 39553 395542002-02-11 Vincent Lef��vre <vincent@vinc17.net> 39555 39556 mpfr_set_str partially rewritten to cope with integer overflows. 39557 The rounding code hasn't been fixed yet. 39558 395592002-02-08 Vincent Lef��vre <vincent@vinc17.net> 39560 39561 Typo. 39562 39563 mpfr_set_str: base must be between 2 and 36. 39564 395652002-02-06 David Daney <david.daney@inria.fr> 39566 39567 change the return values 39568 39569 Change the test return values 39570 395712002-02-06 Vincent Lef��vre <vincent@vinc17.net> 39572 39573 Some optimizations. 39574 395752002-02-04 Vincent Lef��vre <vincent@vinc17.net> 39576 39577 Misc bug fixes and code clean-up. 39578 39579 Misc bug fixes and code clean-up. 39580 395812002-02-03 Vincent Lef��vre <vincent@vinc17.net> 39582 39583 For the value 0, return __mpfr_emin instead of 0. 39584 395852002-02-01 Vincent Lef��vre <vincent@vinc17.net> 39586 39587 Misc bug fixes and code clean-up. 39588 395892002-02-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39590 39591 Patch. 39592 395932002-01-30 Vincent Lef��vre <vincent@vinc17.net> 39594 39595 Bux fixed. 39596 39597 mpfr_set_z rewritten. 39598 39599 Update concerning mpfr_round_prec, mpfr_rint, mpfr_ceil, mpfr_floor, 39600 mpfr_round and mpfr_trunc. 39601 39602 Tests added (mpfr_trunc, mpfr_floor, mpfr_ceil, mpfr_round). 39603 39604 mpfr_rint, mpfr_trunc, mpfr_floor, mpfr_ceil, mpfr_round rewritten. 39605 396062002-01-25 Vincent Lef��vre <vincent@vinc17.net> 39607 39608 mpfr_round -> mpfr_round_prec. 39609 39610 Code reformatted. 39611 396122002-01-23 Vincent Lef��vre <vincent@vinc17.net> 39613 39614 MAX, MIN, ABS macros undefined before being redefined. 39615 Fix in ABS macro. 39616 396172002-01-22 Vincent Lef��vre <vincent@vinc17.net> 39618 39619 Example with high bit set. 39620 39621 Fix (Kevin Ryde). 39622 39623 MPFR_PREC_MAX redefined. 39624 MPFR_INTPREC_MAX defined (internal maximum precision). 39625 Some integer overflow detection. 39626 396272002-01-21 Vincent Lef��vre <vincent@vinc17.net> 39628 39629 Set sign of sqrt(0). 39630 Support for exponent range. 39631 39632 can_round type changed: char -> int. 39633 Case sqrt(0) improved. 39634 39635 Bug fixes: 39636 * return 1 -> MPFR_RET_NAN 39637 * a MPFR_CLEAR_INF was missing. 39638 396392002-01-20 Vincent Lef��vre <vincent@vinc17.net> 39640 39641 New macro MPFR_RESTORE_RET. 39642 396432002-01-18 Vincent Lef��vre <vincent@vinc17.net> 39644 39645 Code clean-up (goto suppressed). 39646 39647 Cases 0 * 0 + 0. 39648 39649 Nt: int -> mp_prec_t 39650 39651 <> changed back to "". 39652 396532002-01-18 David Daney <david.daney@inria.fr> 39654 39655 change "" -> <> in headers 39656 39657 Change indentation + replace "" -> <> in header 39658 396592002-01-17 Vincent Lef��vre <vincent@vinc17.net> 39660 39661 Particular cases rewritten. 39662 39663 Test "__hpux", not "hpux". Mask off mrand48 return value to 31 bits 39664 to work around sloppy mpfr #include practices. (Torbjorn Granlund) 39665 39666 #include fixes (Torbjorn Granlund). 39667 396682002-01-16 Vincent Lef��vre <vincent@vinc17.net> 39669 39670 Comments were incorrect. 39671 396722002-01-15 Vincent Lef��vre <vincent@vinc17.net> 39673 39674 Note concerning mpfr_trunc, mpfr_floor and mpfr_ceil. 39675 396762002-01-14 Vincent Lef��vre <vincent@vinc17.net> 39677 39678 Special cases. 39679 396802002-01-12 Vincent Lef��vre <vincent@vinc17.net> 39681 39682 Patches by Kevin Ryde for K&R compilers 39683 and other fixes in prototypes. 39684 396852002-01-10 Vincent Lef��vre <vincent@vinc17.net> 39686 39687 Test check_min added. 39688 39689 Test check_max added. 39690 39691 Spelling: "canceled" 39692 396932002-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39694 39695 GMP_PROTO change was already done by Vincent 39696 39697 prepare change PROTO -> GMP_PROTO 39698 396992002-01-04 Vincent Lef��vre <vincent@vinc17.net> 39700 39701 The precision can no longer be 1. 39702 39703 __GMP_PROTO defined if not already defined. 39704 39705 Optimization: mpfr_cmp2 now accepts any combination of real arguments 39706 and computes the sign of |b| - |c| (in addition to the number of 39707 cancelled bits); mpfr_add, mpfr_sub, mpfr_sub1, mpfr_agm and some 39708 tests updated to take this change into account. 39709 397102001-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39711 39712 added check for sin(3*Pi/2) 39713 39714 fixed bug for sin(3*Pi/2) 39715 397162001-12-19 Vincent Lef��vre <vincent@vinc17.net> 39717 39718 Global NaN flag set when result is NaN. 39719 397202001-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39721 39722 forgot to clear nan flag for Inf 39723 39724 changed description of mpfr_cmp to correspond to the implementation: 39725 NaNs are not allowed 39726 39727 fixed mpfr_cmp2 : there was a bug noticed by Nicolas Magaud and Didier 39728 Bondyfalat for inputs: 39729 100 011 111 39730 100 010 110 39731 where it gave 8 instead of 5. 39732 397332001-12-19 Vincent Lef��vre <vincent@vinc17.net> 39734 39735 Better comments. 39736 397372001-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39738 39739 added "PI and the AGM" 39740 397412001-12-06 Vincent Lef��vre <vincent@vinc17.net> 39742 39743 Files renamed (log in base 2 and 10). 39744 39745 Files renamed (constants). 39746 39747 File aclocal.m4 removed, as generated by aclocal (called by prepare). 39748 39749 Files log_base_*.c renamed. 39750 39751 Functions (constants) renamed. 39752 39753 Files configure, Makefile.in, tests/Makefile.in removed. 39754 Use the `prepare' script to generate them. 39755 39756 Removed 2 bugs. 39757 39758 Initial release. 39759 397602001-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39761 39762 added arc-tangent (from Mathieu) 39763 39764 added paragraph on asin and acos from Mathieu Dutour 39765 39766 added tacos 39767 39768 in check5, test NaNs before calling mpfr_cmp 39769 39770 added acos 39771 39772 added acos.c 39773 39774 added acos (from Mathieu Dutour) 39775 39776 use now new sqrtrem from gmp-4.0 39777 39778 improved test (avoid mpfr_get_d) 39779 39780 removed isnan prototype 39781 39782 added stdlib.h for exit 39783 397842001-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39785 39786 test NaN before Inf 39787 changed precision to 2 for test 39788 397892001-11-30 Vincent Lef��vre <vincent@vinc17.net> 39790 39791 Cast added. 39792 397932001-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39794 39795 added a new test (worst case) 39796 39797 nouvelle version de Mathieu Dutour, 39798 corrigeant certains bugs avec les pires cas de Vincent 39799 398002001-11-30 Vincent Lef��vre <vincent@vinc17.net> 39801 39802 #include order changed. 39803 39804 Misc fixes. 39805 39806 Unused variables. 39807 398082001-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39809 39810 start tests with precision 2 instead of 1 39811 39812 start from precision 2 39813 39814 big rewrite to fix problems when the estimate base exponent is too small 39815 39816 fixed detection of exact cases (in particular 0) 39817 39818 now use MPFR_PREC_MIN 39819 39820 exptol is now of type mp_exp_t 39821 39822 rewritten part with Taylor series 39823 39824 changed MPFR_PREC_MIN to 2 39825 39826 updated wrt MPFR_PREC_MIN/MPFR_PREC_MAX 39827 39828 case x=0 was forgotten 39829 39830 now use MPFR_PREC_MIN 39831 39832 added comment 39833 398342001-11-30 Vincent Lef��vre <vincent@vinc17.net> 39835 39836 mpfr_set_z rewritten to support overflows/underflows and ternary value. 39837 39838 0 -> set to +0. 39839 39840 Better sign comparison. 39841 398422001-11-29 Vincent Lef��vre <vincent@vinc17.net> 39843 39844 Use MPFR_SET_POS. 39845 39846 Bug fixed concerning integer overflows. 39847 398482001-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39849 39850 added comment 39851 39852 fixed bug for small precision, where r can be >= 1 39853 398542001-11-29 Vincent Lef��vre <vincent@vinc17.net> 39855 39856 Functions mpfr_{mul,div}_2{si,ui} added. 39857 Functions mpfr_{mul,div}_2exp still exist for backward compatibility; 39858 they are obsolete and should not be used any longer. 39859 398602001-11-28 Vincent Lef��vre <vincent@vinc17.net> 39861 39862 Particular cases (NaN and signed zeros). 39863 39864 Init variables to NaN instead of 0. 39865 39866 Possible integer overflow fixed. 39867 39868 Particular cases fixed. 39869 398702001-11-25 Vincent Lef��vre <vincent@vinc17.net> 39871 39872 Overflow support. 39873 39874 K&R -> ISO C prototype. 39875 39876 mpfr_div_2exp rewritten. 39877 39878 mpfr_mul_2exp rewritten. 39879 39880 Overflow support. 39881 39882 Casts to size_t added (safer and could be required in the future). 39883 398842001-11-23 Vincent Lef��vre <vincent@vinc17.net> 39885 39886 Minor change. 39887 39888 mpfr_mul partially rewritten: 39889 * Integer overflows almost completely avoided. 39890 * Now supports signed zeros and overflows. 39891 Not tested yet. 39892 398932001-11-22 Vincent Lef��vre <vincent@vinc17.net> 39894 39895 mpfr_can_round_raw: integer overflows checked and code duplication avoided. 39896 39897 More bugs. 39898 39899 mpfr_can_round and mpfr_can_round_raw: prototypes changed. 39900 399012001-11-21 Vincent Lef��vre <vincent@vinc17.net> 39902 39903 Bug fixed. 39904 39905 mpfr_add_one_ulp and mpfr_sub_one_ulp changed. 39906 39907 Added MPFR_PREC_MIN and MPFR_PREC_MAX. 39908 39909 Error test -> assert. 39910 mp_prec_t -> mp_size_t. 39911 399122001-11-20 Vincent Lef��vre <vincent@vinc17.net> 39913 39914 Test added. 39915 39916 mpfr_round rewritten. 39917 mpfr_round_raw_generic: NULL changed to 0 as not necessarily defined. 39918 39919 Added macro MPFR_SET_ABSSIZE. 39920 39921 mpfr_round: Check for overflow. 39922 399232001-11-17 Vincent Lef��vre <vincent@vinc17.net> 39924 39925 Some type changes. 39926 399272001-11-16 Vincent Lef��vre <vincent@vinc17.net> 39928 39929 Integer overflows checked. 39930 39931 MPFR_ASSERTN instead of fprintf + exit. 39932 39933 GMP assert mechanism: macros changed until GMP is fixed. 39934 399352001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39936 39937 version -> 2002 39938 removed executable flag 39939 39940 mpfr_print_raw -> mpfr_print_binary 39941 39942 split from init.c 39943 399442001-11-16 David Daney <david.daney@inria.fr> 39945 39946 remove math.h 39947 39948 remve math.h 39949 399502001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39951 39952 added one test 39953 399542001-11-16 David Daney <david.daney@inria.fr> 39955 39956 remove math.h 39957 399582001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39959 39960 init -> init + init2. 39961 399622001-11-16 David Daney <david.daney@inria.fr> 39963 39964 remove math.h 39965 399662001-11-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39967 39968 Ajoute retours chariots dans div.c, etc. 39969 39970 if () remplace par if ( ==0) ou if ( != 0) 39971 399722001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39973 39974 removed K&R function headers 39975 399762001-11-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39977 39978 Beuh ? 39979 39980 return -> MPFR_RET, patch d'un leak dans inp_str.c 39981 399822001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39983 39984 changed to use GMP assert mechanism 39985 399862001-11-16 David Daney <david.daney@inria.fr> 39987 39988 remove stdio.h math.h 39989 399902001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39991 39992 assert -> MPFR_ASSERT 39993 399942001-11-16 David Daney <david.daney@inria.fr> 39995 39996 remove stdio math .h 39997 39998 remove stdio.h math.h 39999 400002001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40001 40002 ASSERT_ALWAYS -> MPFR_ASSERTN 40003 40004 added COPYING.LIB 40005 40006 replaced by GPL 40007 400082001-11-16 David Daney <david.daney@inria.fr> 40009 40010 remove limits.h 40011 400122001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40013 40014 changed Library GPL to Lesser GPL 40015 40016 GNU Lesser General Public License, version 2.1 40017 400182001-11-16 David Daney <david.daney@inria.fr> 40019 40020 remove limits.h math.h 40021 400222001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40023 40024 now treats all *.h 40025 400262001-11-16 David Daney <david.daney@inria.fr> 40027 40028 remove the proto, remove math.h 40029 400302001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40031 40032 removed DEBUG's 40033 40034 removed old patch for GMP 2.xx 40035 40036 GNU MP -> MPFR 40037 40038 added year 2001 in copyright line 40039 40040 added year 2001 in copyright line 40041 40042 added year 2001 in copyright line 40043 removed #if __STDC__ 40044 40045 now two separate files cos.c and sin.c 40046 40047 added year 2001 in copyright line 40048 40049 updated 40050 40051 old version, removed 40052 40053 added isinf and isnum (split from isnan) 40054 40055 new files (split from isnan.c) 40056 40057 removed prototype already in mpfr.h 40058 40059 translated french comments to english 40060 40061 added mpfr_sub 40062 40063 added static to local functions 40064 40065 1 -> MP_LIMB_T_ONE 40066 40067 1 -> BITS_PER_MP_LIMB 40068 40069 added static to local functions 40070 removed prototype already in mpfr.h 40071 40072 removed mpfr_exp2_si (not used) 40073 40074 added static to local functions 40075 translated french comments to english 40076 40077 translated french comments to english 40078 removed prototype already in mpfr.h 40079 40080 initialized inexact to 0 40081 40082 used TMP_ALLOC 40083 translated french comments to english 40084 40085 simplified test 40086 40087 moved inf_p and number_p to different files 40088 40089 added static to local functions 40090 explained threshold 40091 40092 removed prototypes already in mpfr.h 40093 40094 does not include stdio.h any more 40095 40096 added stdio.h 40097 40098 1 -> BITS_PER_MP_LIMB 40099 1 << (BITS_PER_MP_LIMB - 1) -> MP_LIMB_T_HIGHBIT 40100 40101 removed french comment 40102 40103 added static to local functions 40104 40105 removed prototype already in mpfr.h 40106 40107 1 -> BITS_PER_MP_LIMB 40108 translated french comments to english 40109 added static to local functions 40110 40111 1 -> BITS_PER_MP_LIMB 40112 40113 1 -> BITS_PER_MP_LIMB 40114 translated french comments to english 40115 40116 1 -> BITS_PER_MP_LIMB 40117 added static to local functions 40118 40119 removed proto already in mpfr.h 40120 40121 1 -> MP_LIMB_T_ONE 40122 40123 added stdio.h 40124 401252001-11-15 Vincent Lef��vre <vincent@vinc17.net> 40126 40127 add.c -> add.c & add1.c 40128 sub.c -> sub.c & sub1.c + some changes. 40129 401302001-11-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40131 40132 iff the results are exact -> iff the result is exact 40133 401342001-11-10 Vincent Lef��vre <vincent@vinc17.net> 40135 40136 GNU coding style. K&R function headers removed. 40137 40138 MP_LIMB_T_ONE defined. 40139 mp_size_unsigned_t defined. 40140 Important bugs fixed (in particular when int has fewer than 32 bits). 40141 Still unavoidable possible bugs due to the fact that mp_size_t is signed. 40142 401432001-11-09 David Daney <david.daney@inria.fr> 40144 40145 add tests file for gamma 40146 40147 add gamma function an other version 40148 40149 add gamma function 40150 401512001-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40152 40153 mis a` jour valeur de retour de mpfr_tan 40154 401552001-11-09 Vincent Lef��vre <vincent@vinc17.net> 40156 40157 Some -'s missing in floating-point. 40158 401592001-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40160 40161 modifs suite aux remarques de Nathalie 40162 401632001-11-08 David Daney <david.daney@inria.fr> 40164 40165 remove some name of variables 40166 401672001-11-08 Vincent Lef��vre <vincent@vinc17.net> 40168 40169 cmp2.c: Integer overflows checked. 40170 40171 Update. 40172 40173 Fix. 40174 401752001-11-08 David Daney <david.daney@inria.fr> 40176 40177 suppress variable name in dim min max 40178 40179 export isinteger in the file isinteger.c 40180 40181 exporte pow_si from pow2.c to pow_si.c 40182 40183 rename pow2.c in pow.c (source for mpfr_pow) 40184 40185 add ui_pow_ui.c (initially in pow.c) 40186 40187 add pow_ui.c file (initially in pow.c) 40188 401892001-11-08 Vincent Lef��vre <vincent@vinc17.net> 40190 40191 mpfr_cmp2: return type changed to mp_prec_t. 40192 401932001-11-08 David Daney <david.daney@inria.fr> 40194 40195 add function test4 for 3 input test + fma tests 40196 401972001-11-08 Vincent Lef��vre <vincent@vinc17.net> 40198 40199 Macros added. 40200 40201 MP_LIMB_T_MAX instead of (mp_limb_t) -1 (a little nicer...). 40202 402032001-11-06 Vincent Lef��vre <vincent@vinc17.net> 40204 40205 Code clean-up. 40206 402072001-11-05 Vincent Lef��vre <vincent@vinc17.net> 40208 40209 Prototypes for K&R C. 40210 40211 mpfr_round_raw_generic prototype fixed. 40212 402132001-11-01 David Daney <david.daney@inria.fr> 40214 40215 clear xp for Nan Inf or 0 are returned 40216 40217 clear variable if an error is return 40218 40219 clear x for Nan inf 0 return 40220 40221 clear x for Nan Inf 0 return 40222 40223 clear te 40224 402252001-11-01 Vincent Lef��vre <vincent@vinc17.net> 40226 40227 Added prototype. 40228 40229 Bug fixed. 40230 402312001-11-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40232 40233 fixed MLK's 40234 40235 fixed MLK's in mpfr_isinteger 40236 40237 fixed MLK's 40238 40239 fixed missing mpfr_clear's 40240 40241 added missing mpfr_clear 40242 40243 added clear's in bug_ddefour 40244 40245 added mpfr_clear's 40246 40247 fixed MLK's 40248 402492001-10-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40250 40251 fixed MLK for Inf or Nan 40252 40253 fixed MLK in check_case_2 40254 402552001-10-31 David Daney <david.daney@inria.fr> 40256 40257 rename factorial -> fac_ui 40258 402592001-10-30 Fabrice Rouillier <Fabrice.Rouillier@inria.fr> 40260 40261 Change mpfr_<op>_mpz to mpfr_<op>_z 40262 Change mpfr_<op>_mpq to mpfr_<op>_q 40263 where <op> is mul,div,add,sub 40264 402652001-10-30 David Daney <david.daney@inria.fr> 40266 40267 correct factorial -> fac_ui in comments 40268 40269 rename tfactorial -> fac_ui 40270 40271 rename factorial -> fac_ui 40272 402732001-10-27 Vincent Lef��vre <vincent@vinc17.net> 40274 40275 Bug fixed. 40276 402772001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40278 40279 drand -> drand48 40280 40281 put MAX_PREC back to 100 40282 40283 added test for inexact flag 40284 40285 use MPFR_RET_NAN and MPFR_RET 40286 40287 removed MPFR_DEBUG_LEVEL definition 40288 40289 mpfr_set_q and mpfr_abs now return an int 40290 mpfr_pow_ui and mpfr_ui_pow_ui now implement exact rounding 40291 updated the documentation of the mpfr_*pow* functions 40292 removed some internal functions 40293 40294 implemented exact rounding (but no ternary flag) 40295 402962001-10-26 David Daney <david.daney@inria.fr> 40297 40298 add some flags 40299 40300 mixed version between DD and Pau => (gestion des flag inexacte dirige) 40301 40302 rien 40303 403042001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40305 40306 MAX_PREC included 40307 40308 implemented inexact flag 40309 403102001-10-26 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40311 40312 Clearing high part of rem2. 40313 403142001-10-26 Fabrice Rouillier <Fabrice.Rouillier@inria.fr> 40315 40316 adds gmp_op.c 40317 403182001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40319 40320 mpfr_set_q now returns an int 40321 40322 added test for inexact flag 40323 403242001-10-26 Fabrice Rouillier <Fabrice.Rouillier@inria.fr> 40325 40326 Adds the file gmp_op.c containing the implementations of operations between 40327 mpfr and mpz/mpq data 40328 403292001-10-26 David Daney <david.daney@inria.fr> 40330 40331 err <0 => is now tester 40332 403332001-10-26 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40334 40335 Patch for bits shifted out when the high word of the quotient is nonzero. 40336 Induced error on inexact flag (and hence on rounding in some cases). 40337 403382001-10-26 David Daney <david.daney@inria.fr> 40339 40340 add copysign.c 40341 403422001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40343 40344 added one test 40345 403462001-10-26 David Daney <david.daney@inria.fr> 40347 40348 simplify dim 40349 40350 add exact flag 40351 40352 err => long int 40353 403542001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40355 40356 added one test 40357 40358 cosmetic changes 40359 40360 can_round return 0 for b=0 40361 403622001-10-26 David Daney <david.daney@inria.fr> 40363 40364 add thypot 40365 40366 add coopysign 40367 40368 add copysign 40369 40370 correct mp_prec_t err => long int 40371 40372 correst mp_prec_t err => long int 40373 403742001-10-26 Fabrice Rouillier <Fabrice.Rouillier@inria.fr> 40375 40376 Add multiplication/division/addition/subtraction by mpz and mpq 40377 403782001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40379 40380 added two tests 40381 fixed bug in generic tests (one more bit is needed to get an exact result) 40382 40383 fixed pb with exact results not detected (ck was < 0) 40384 403852001-10-26 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40386 40387 Rien. 40388 40389 Patch for the computation of the u_lo + r part of the remainder when u_lo = 0. 40390 403912001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40392 40393 added test for inexact flag 40394 40395 fixed pbs with inexact flag 40396 40397 now mpfr_div and mpfr_ui_div return an int 40398 40399 implemented ternary flag in mpfr_ui_div 40400 40401 removed unnecessary CLEAR_FLAGS 40402 used MPFR_RET_NAN 40403 40404 reduced number of tests 40405 40406 removed unnecessary CLEAR_FLAGS 40407 40408 improved mpfr_compare 40409 fixed wrong function name for mpfr_log2 40410 40411 rewritten to implement ternary inexact flag 40412 40413 fixed generic test (pb with double rounding) 40414 40415 increased MAX_PREC 40416 404172001-10-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40418 40419 Changed the type of err from mp_prec_t (unsigned) to int. 40420 40421 Added tests for inexact flag. 40422 40423 Patch for even rounding. 40424 404252001-10-25 David Daney <david.daney@inria.fr> 40426 40427 rien 40428 40429 rien 40430 404312001-10-25 Vincent Lef��vre <vincent@vinc17.net> 40432 40433 Warning avoided. 40434 404352001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40436 40437 added tfma 40438 40439 slong -> t 40440 40441 nouvelew version (without loop) 40442 404432001-10-25 David Daney <david.daney@inria.fr> 40444 40445 rien 40446 40447 rien 40448 40449 change 40450 404512001-10-25 Vincent Lef��vre <vincent@vinc17.net> 40452 40453 Bug fixed. 40454 404552001-10-25 David Daney <david.daney@inria.fr> 40456 40457 correct bugs with reuse 40458 40459 test for log2 log10 pow 40460 404612001-10-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40462 40463 La division nouvelle est arrivee. 40464 404652001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40466 40467 ajoute' nouveau test 40468 404692001-10-25 Vincent Lef��vre <vincent@vinc17.net> 40470 40471 Bug fixed. 40472 404732001-10-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40474 40475 round_raw, round_raw2 -> round_raw_generic. Macros to simulate previous 40476 behaviour. Even rounding returns +- MPFR_EVEN_INEX. 40477 404782001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40479 40480 fixed pb with mpfr_log10(a, a) with a=-Inf 40481 40482 added two tests 40483 40484 added one test 40485 404862001-10-25 David Daney <david.daney@inria.fr> 40487 40488 add log2 and log10 40489 40490 correction for reuse 40491 40492 coorection for reuse 40493 404942001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40495 40496 test file for testing exceptions 40497 404982001-10-25 Vincent Lef��vre <vincent@vinc17.net> 40499 40500 mpfr_add1 completely rewritten. Overflows are checked. 40501 The ternary value should now be supported (but it hasn't been tested yet). 40502 405032001-10-25 David Daney <david.daney@inria.fr> 40504 40505 new version 40506 405072001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40508 40509 added one test 40510 40511 add possibility to define a random function (default is mpfr_random) 40512 to get random variables in specific ranges 40513 40514 now use tgeneric.c 40515 40516 added texceptions 40517 40518 documented exception mechanism (with Vincent Lefe`vre) 40519 40520 changed stupid test (was computing only 200!) 40521 40522 implemented inexact flag 40523 40524 1999 -> 2001 40525 40526 check overflow 40527 40528 added two tests 40529 40530 implemented overflow/underflow 40531 405322001-10-25 David Daney <david.daney@inria.fr> 40533 40534 correct atanh(INF)=INF exact 40535 40536 correct test inf for atanh 40537 405382001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40539 40540 added warning for mpfr_set_d 40541 405422001-10-25 David Daney <david.daney@inria.fr> 40543 40544 correct bug in tests file (test of atanh for + or - Inf) 40545 405462001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40547 40548 added tadd_ui (forgotten?) 40549 40550 added special test 40551 40552 fixed bug in rounding part when rounding towards 0 (infinite loop due to bn<an) 40553 40554 added one special test 40555 405562001-10-24 David Daney <david.daney@inria.fr> 40557 40558 correct the Nan case 40559 40560 add the function mpfr_dim 40561 40562 add function mpfr_min and mpfr_max 40563 40564 correct these tesats files 40565 40566 correct some bugs 40567 405682001-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40569 40570 added EXTRA_DIST= tgeneric.c 40571 405722001-10-24 David Daney <david.daney@inria.fr> 40573 40574 remove tfma 40575 40576 add tfma 40577 40578 acosh revue et corrige...+beau 40579 405802001-10-23 David Daney <david.daney@inria.fr> 40581 40582 add mpfr_log10 40583 40584 add log_base_10 40585 40586 add tlog_base_10 40587 40588 add test file for log_base_10 function 40589 40590 correct a bug in mpfr_log10 section 40591 40592 add help of log10 + fma 40593 40594 correct particular cases 40595 40596 improve the clear flags 40597 40598 correction dans l'entete 40599 406002001-10-21 Vincent Lef��vre <vincent@vinc17.net> 40601 40602 Some changes to avoid warnings. 40603 40604 Bug fixed (char -> int). 40605 406062001-10-19 Vincent Lef��vre <vincent@vinc17.net> 40607 40608 Update. 40609 40610 Bugs fixed concerning the "inexact" ternary value. 40611 406122001-10-19 David Daney <david.daney@inria.fr> 40613 40614 suppress thypot tgeneric 40615 40616 suppress sample 40617 406182001-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40619 40620 void -> int as return value for mpfr_add_ui 40621 40622 added ternary flag 40623 40624 void -> int for mpfr_add and mpfr_add_ui 40625 406262001-10-19 David Daney <david.daney@inria.fr> 40627 40628 add test for hypot 40629 40630 add some test 40631 40632 add some functions 40633 40634 add some proto 40635 40636 add test file for pow 40637 40638 add the help for pow and pow_si 40639 40640 add the function pow and pow_si 40641 406422001-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40643 40644 added two tests for 0-c and c-0 with prec(c) > prec(a) 40645 406462001-10-19 Vincent Lef��vre <vincent@vinc17.net> 40647 40648 Removed #include <stdio.h>, "return 0;" replaced by "MPFR_RET(0);". 40649 40650 mpfr_add1 and mpfr_sub1 prototypes moved to mpfr-impl.h (to detect clashes). 40651 Bug fix concerning the inexact ternary value in mpfr_sub. 40652 mpfr_add now returns an int (inexact ternary value unsupported if true add). 40653 40654 Update. 40655 40656 Underflow/overflow check. 40657 40658 Documentation updated. 40659 40660 Comment added. 40661 40662 MPFR_RET(0) replaced by MPFR_RET_NAN. 40663 40664 Macro MPFR_RET_NAN. 40665 406662001-10-18 Vincent Lef��vre <vincent@vinc17.net> 40667 40668 Code clean-up in mpfr_round_raw (well... IMHO). 40669 406702001-10-18 David Daney <david.daney@inria.fr> 40671 40672 take in account of CHAR_BIT in ui_pow 40673 406742001-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40675 40676 cast to mp_limb_t was missing 40677 406782001-10-18 Vincent Lef��vre <vincent@vinc17.net> 40679 40680 BITS_PER_CHAR replaced by the standard CHAR_BIT. 40681 406822001-10-18 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40683 40684 *** empty log message *** 40685 406862001-10-18 David Daney <david.daney@inria.fr> 40687 40688 add test of ui_pow 40689 40690 add the help of ui_pow 40691 40692 add the function pow(unsign long int, mpfr_t) 40693 406942001-10-18 Vincent Lef��vre <vincent@vinc17.net> 40695 40696 Improved configure.in. 40697 configure generated by Autoconf 2.52. 40698 406992001-10-18 David Daney <david.daney@inria.fr> 40700 40701 ajout du flag inexact 40702 407032001-10-18 Vincent Lef��vre <vincent@vinc17.net> 40704 40705 fixed and improved check for gmp.h/gmp-impl.h/config.h/gmp-mparam.h/longlong.h 40706 and corresponding error message 40707 407082001-10-18 David Daney <david.daney@inria.fr> 40709 40710 add the help on log2 40711 40712 add the test file of the log2 (log in base 2) 40713 40714 ajout de log2 (log en base 2) 40715 40716 correst tanh(0) 40717 407182001-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40719 40720 added two more tests 40721 40722 wrong sign passed to mpfr_can_round (mp_limb_t may be unsigned) 40723 407242001-10-18 David Daney <david.daney@inria.fr> 40725 40726 correct a bug for sinh(Inf) 40727 407282001-10-17 David Daney <david.daney@inria.fr> 40729 40730 correct syntax of tanh.c 40731 40732 correct an error 40733 40734 correct few things 40735 40736 little patch for cosh 40737 40738 add the test function of expm1 40739 40740 add the test of the function log1p 40741 40742 add the function expm1 40743 40744 add the function log1p 40745 40746 add to mpfr.texi log1p and expm1 40747 40748 actualisation de exp2.c 40749 40750 actualisation de exp2 40751 407522001-10-17 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40753 40754 New tests in tdiv.c. 40755 40756 New division in div.c, old one renamed in mpfr_div2. Remains to implement 40757 exact/inexact flag. Should not be *that* hard. 40758 407592001-10-16 David Daney <david.daney@inria.fr> 40760 40761 ajout de functions pow, fma, hypot etc etc 40762 407632001-10-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40764 40765 added fma.c 40766 40767 added prototypes for mpfr_fma and mpfr_hypot 40768 40769 small changes for inexact flag 40770 40771 added some cases for Inf 40772 implement (partly) inexact flag 40773 407742001-10-16 David Daney <david.daney@inria.fr> 40775 40776 ajout hypot 40777 40778 ajout de fma 40779 407802001-10-16 Vincent Lef��vre <vincent@vinc17.net> 40781 40782 Comment: // --> /* ... */ 40783 407842001-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40785 40786 generic test file 40787 40788 added cast to (void*) for new functions returning an int 40789 40790 added test for inexact flag 40791 40792 now use tgeneric.c 40793 added more tests 40794 40795 now use tgeneric.c 40796 40797 fixed test of return values for infinities: foo(+/-Inf) is *exact* 40798 40799 now also try with negative numbers 40800 40801 implement ternary inexact flag 40802 40803 implement inexact flag 40804 40805 return type is now int for mpfr_mul_2exp and mpfr_div_2exp 40806 40807 return type is now int for more functions 40808 40809 sign was not set 40810 40811 rewritten completely mpfr_can_round_raw 40812 40813 documented mpfr_set4 40814 40815 return non-zero if malloc failed 40816 40817 cosmetic changes 40818 40819 implement ternary inexact flag 40820 40821 avoid one variable 40822 408232001-10-12 David Daney <david.daney@inria.fr> 40824 40825 correction d'erreurs sur les notations + correction de la regle 9 40826 408272001-10-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40828 40829 fixed MPFR_ASSERT 40830 documented MPFR_ASSERTN and MPFR_ASSERTD 40831 40832 added test for mpfr_init_set_f prototype 40833 40834 added test for inexact flag 40835 corrected a wrong test 40836 40837 cosmetic change 40838 40839 added tsub_ui (did exist but forgotten in Makefile) and tset (new file) 40840 40841 test file for mpfr_set, initial version 40842 40843 void -> int as return value for several functions 40844 and explained the ternary return value 40845 40846 implemented inexact flag 40847 40848 void -> int as return value for new functions implementing inexact flag 40849 40850 implemented inexact flag in mpfr_set_d 40851 40852 implemented inexact flag in mpfr_round 40853 40854 completely rewritten 40855 40856 computation of inexact flag now directly uses mpfr_round_raw 40857 40858 added 'if' in MPFR_ASSERT to avoid compiler warning 40859 40860 put initial value in variables which may be used without being initialized 40861 40862 updated things done, added Rounding section 40863 408642001-10-11 David Daney <david.daney@inria.fr> 40865 40866 ajout de log1p et expm1 40867 408682001-10-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40869 40870 reduced number of random tests (took too much time) 40871 40872 added random tests for inexact flag 40873 40874 implemented inexact flag 40875 40876 added random tests for inexact flag 40877 408782001-10-11 David Daney <david.daney@inria.fr> 40879 40880 ajout du log generic et de fma 40881 408822001-10-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40883 40884 inexact flag was wrong in some cases 40885 40886 added random tests for inexact flag 40887 40888 reduced number of loops per precision from 100 to 10 40889 (test was too long) 40890 40891 improved check for gmp-impl.h/config.h/gmp-mparam.h/longlong.h 40892 and corresponding error message 40893 40894 stack-alloc.h no longer needed (will be included in gmp-impl.h) 40895 40896 stack-alloc.h is no longer needed (will be included in gmp-impl.h) 40897 408982001-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40899 40900 added proof of rules 40901 40902 fixed buggy test 40903 409042001-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40905 40906 fixed bug for b + d where b=2^900+2^500+2^110, d=2^900-2^500-2^110 40907 409082001-10-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40909 40910 fixed bug in mpfr_set_d on 64-bit machines 40911 409122001-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40913 40914 fixed a few problems in mpfr_set_d for sizer < MPFR_LIMBS_PER_DOUBLE 40915 40916 added paper of Brent and McMillan 40917 40918 does not call compare_exp2_exp3 when argc=4 40919 40920 added one item 40921 40922 now mpfr_set_prec returns 1 instead of producing an error in case prec=0 40923 409242001-09-27 David Daney <david.daney@inria.fr> 40925 40926 New version with new generic function + / * etc 40927 409282001-09-20 Vincent Lef��vre <vincent@vinc17.net> 40929 40930 BUGS updated. 40931 409322001-09-13 Vincent Lef��vre <vincent@vinc17.net> 40933 40934 Prototype changes. 40935 40936 <strings.h> -> <string.h> (ISO C). 40937 40938 #include added. 40939 40940 #include added/removed. 40941 40942 GCC option -Wno-implicit removed and prototype added to mpfr-impl.h 40943 409442001-09-12 Vincent Lef��vre <vincent@vinc17.net> 40945 40946 INCLUDES in Makefile.am: -I$(top_srcdir) and @INCLUDES@ swapped. 40947 This defines the following precedence for the tests: 40948 1) MPFR directories 40949 2) User-defined directory 40950 3) GMP include directory 40951 This allows the user to override the GMP longlong.h file with the 40952 gcc-3 one, by using: INCLUDES="-I.../include" ./configure ... 40953 40954 #include order fixed. 40955 40956 Tests added (in particular, inex value). 40957 40958 Bug fixed. 40959 409602001-09-11 Vincent Lef��vre <vincent@vinc17.net> 40961 40962 MPFR_RET: definition changed to avoid warning. 40963 40964 Inexact ternary value for mpfr_set4, mpfr_set_ui and mpfr_set_si. 40965 40966 Macro SAFE_ABS. 40967 40968 Inexact ternary value and flag for mpfr_set_underflow, mpfr_set_overflow 40969 and mpfr_check_range. 40970 40971 Macro MPFR_RET added. Ternary value for mpfr_set4. 40972 40973 New flags. 40974 409752001-09-10 Vincent Lef��vre <vincent@vinc17.net> 40976 40977 Parameter added to mpfr_round_raw: pointer to inexact ternary value. 40978 409792001-09-10 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40980 40981 Zqwiuyt 40982 40983 Zorgs. 40984 40985 Gleurbs. 40986 40987 Patch grotesque. 40988 40989 Patch for the case SIZE(r) < MPFR_LIMBS_PER_DOUBLE. 40990 409912001-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40992 40993 test file for mpfr_tan 40994 40995 fixed a few typos 40996 40997 added mpfr_tan 40998 40999 added ttan 41000 41001 added the tangent 41002 41003 added tan.c 41004 41005 tangent function 41006 410072001-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41008 41009 removed mpfr_sin and mpfr_cos (now separate implementations) 41010 41011 removed sin_cos 41012 41013 added sine and cosine 41014 41015 removed sin_cos, added sin and cos 41016 41017 removed mpfr_sin_cos 41018 41019 removed sin_cos, added sin and cos 41020 41021 removed tsin_cos, added tsin and tcos 41022 41023 test files for mpfr_cos and mpfr_sin 41024 41025 new implementation of mpfr_sin, using mpfr_cos 41026 41027 new (faster) implementation of mpfr_cos 41028 410292001-09-06 Vincent Lef��vre <vincent@vinc17.net> 41030 41031 Fix: flags set in mpfr_set_{under,over}flow(). 41032 41033 Cases where the result is 0 fixed. 41034 Integer overflow checked in mpfr_sub. 41035 41036 In add.c: use mpfr_cmp_abs instead of mpfr_cmp3; x - x fixed for GMP_RNDD. 41037 41038 Compare the absolute values of two nonzero FP numbers. 41039 410402001-09-05 Vincent Lef��vre <vincent@vinc17.net> 41041 41042 mpfr_cmp3 changed and integer overflows checked. 41043 410442001-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41045 41046 added efficiency item 41047 410482001-09-03 Vincent Lef��vre <vincent@vinc17.net> 41049 41050 Cases [+-]0 + [+-]0 fixed (depending on the rounding mode). 41051 410522001-08-29 Vincent Lef��vre <vincent@vinc17.net> 41053 41054 Optimization + overflow support. 41055 41056 Case +0 + -0 fixed. 41057 410582001-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41059 41060 added one test 41061 41062 another test from Norbert 41063 41064 another fix (final copy when xsize > ysize was wrong) 41065 410662001-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41067 41068 added several tests for case (1b) 41069 41070 another fix (previous one was incomplete) 41071 41072 added one more test (from Norbert) 41073 410742001-08-28 Vincent Lef��vre <vincent@vinc17.net> 41075 41076 Bug fixed. 41077 41078 Bug fixed and update to check the exponents. 41079 410802001-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41081 41082 added test for 53 <= xprec, yprec <= 128 41083 41084 added multiple tests for 53 <= xprec, yprec <= 128 41085 41086 was completely wrong for ysize > xsize 41087 41088 added faster formula in exp(-8*n) for Euler's constant 41089 410902001-08-25 Vincent Lef��vre <vincent@vinc17.net> 41091 41092 Assertion support with debug level. 41093 41094 Some support for exponent change and exceptions. 41095 410962001-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41097 41098 added constant ALPHA (for mpfr_const_euler) 41099 41100 added euler/teuler 41101 41102 added teuler 41103 41104 added euler.c 41105 41106 fixed pb with c2 = c2old << dif with dif negative 41107 41108 fixed bug for (2^53+4) - 1 41109 41110 added new test from Norbert Mueller 41111 41112 fixed pb: sh becomes "negative" 41113 41114 included Euler's constant 41115 41116 bibtex file for algorithms.tex 41117 41118 test file for mpfr_const_euler 41119 41120 computation of Euler's constant 0.577... 41121 41122 added missing prototype 41123 41124 mpfr_const_euler returns an int 41125 41126 added mpfr_const_euler 41127 411282001-08-22 Vincent Lef��vre <vincent@vinc17.net> 41129 41130 Tests added. 41131 41132 Bugs fixed (particular cases). 41133 41134 "mant(c) != 1/2" test was broken. 41135 41136 check fixed. Check added: 2^53 + 1 --> 2^53. 41137 41138 Update. 41139 411402001-08-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41141 41142 added one test 41143 41144 fixed stupid bug when dif < 0 41145 411462001-08-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41147 41148 added mpfr_asin 41149 41150 added missing cast 41151 41152 test file for mpfr_asin 41153 41154 arc-sine, contributed by Mathieu Dutour 41155 41156 added mpfr_asin 41157 41158 new name for file tarctan.c 41159 41160 renamed to tatan.c 41161 41162 renamed tarctan.c into tatan.c 41163 added tasin.c 41164 41165 renamed arctan.c to atan.c 41166 added asin.c 41167 41168 new name for file arctan.c 41169 41170 moved to atan.c 41171 41172 low significant bit is in ap[0] and not in ap[an-1] !!! 41173 411742001-08-13 Vincent Lef��vre <vincent@vinc17.net> 41175 41176 Cleaner MPFR_SET_SAME_SIGN. 41177 41178 Macros MPFR_SET_SAME_SIGN, MPFR_INIT and MPFR_INIT1 changed to expressions. 41179 411802001-08-10 Vincent Lef��vre <vincent@vinc17.net> 41181 41182 Bugs fixed (wrong types). 41183 41184 Macros mpfr_init_set_* changed to expressions. 41185 41186 Makefile.in update. 41187 411882001-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41189 41190 edited wrt GNU style 41191 41192 fixed stupid bug: ceil(a/b) isn't (a+b-1)/a but simply a/b for a negative! 41193 41194 fixed array bound write (bn < an + cancel1 + 1) 41195 41196 macros MPFR_NOTZERO and MPFR_ISZERO did not work properly with 64-bit words 41197 411982001-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41199 41200 fixed bug for output base 2^k 41201 41202 added one test 41203 41204 added a section for the exponential 41205 41206 fixed bug when dividend is 0 41207 412082001-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41209 41210 moved TMP_FREE 41211 41212 added 2 things 41213 412142001-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41215 41216 added mpfr.info to files to remove for "make distclean" 41217 412182001-06-23 Vincent Lef��vre <vincent@vinc17.net> 41219 41220 Non-existent C source references removed. 41221 41222 Macros MPFR_INIT and MPFR_INIT1 fixed. 41223 412242001-06-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41225 41226 nested double TMP_DECL's 41227 412282001-06-14 David Daney <david.daney@inria.fr> 41229 41230 A few patches. 41231 412322001-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41233 41234 added mpfr_sin and mpfr_cos 41235 corrected in the documentation some exact values 41236 412372001-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41238 41239 removed 2 tabs 41240 41241 added change explaining the LGPL with non-free programs 41242 412432001-05-31 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41244 41245 Patch for the case b = 0 or c = 0. 41246 412472001-05-23 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41248 41249 Added DDefour's bug. 41250 412512001-05-22 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41252 41253 Patch in the case MPFR_PREC(b) > MPFR_PREC(a)+cancel. 41254 412552001-05-10 Vincent Lef��vre <vincent@vinc17.net> 41256 41257 fixed bug in mpfr.texi 41258 412592001-05-10 David Daney <david.daney@inria.fr> 41260 41261 correction du bug donne par vincent + ajout des aides des fonctions hyperbolic 41262 412632001-05-09 David Daney <david.daney@inria.fr> 41264 41265 *** empty log message *** 41266 412672001-04-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41268 41269 log(0) now returns 0 (exact infinity) 41270 412712001-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41272 41273 fixed pbs with NaN/Inf 41274 41275 fixed new bug found by Nathalie Revol (case when add_one_ulp produces a carry) 41276 41277 added new bug found by Nathalie Revol 41278 41279 fixed bug for 1.0000... - 0.000001 for rounding up or nearest 41280 412812001-04-17 Nathalie Revol <Nathalie.Revol@inria.fr> 41282 41283 Case where argument < 0 included, NR 17-04-2001 41284 412852001-04-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41286 41287 added new (special) tests 41288 41289 test file for mpfr_sub 41290 41291 added tsub 41292 412932001-04-06 David Daney <david.daney@inria.fr> 41294 41295 change old exp2 (conflict with 2^x) to exp_2 41296 412972001-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41298 41299 0 -> GMP_RNDN 41300 41301 check apart the case c=0 (otherwise some low significant limbs may be 41302 non zero, which may produce a wrong result) 41303 41304 mpfr_exp2 -> mpfr_exp_2 41305 41306 mpfr_exp2 -> mpfr_exp_2 41307 413082001-04-05 David Daney <david.daney@inria.fr> 41309 41310 reactualise .h 41311 41312 change header 41313 41314 change reuse to suppress factorial 41315 41316 suppress of timing in makefile 41317 41318 add the old exp2 function and file renamed by exp_2 41319 41320 change makefile for new functions 41321 41322 change make file test for hyperbolic function exp2 and factorial 41323 41324 add new test file for hyperbolic function 41325 41326 add test file for new function 41327 41328 add function 41329 41330 new file function 41331 41332 new function file 41333 413342001-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41335 41336 new version with cmp2.c 41337 41338 fixed pb with inexact flag when 'int' and 'mp_limb_t' has different sizes 41339 413402001-04-05 David Daney <david.daney@inria.fr> 41341 41342 fixed bug for mpfr_cmp_ui (Inf, 0) 41343 41344 fixed bug for mpfr_set_ui (x, 0) [was giving -0] 41345 413462001-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41347 41348 added algorithm for mpfr_cmp2 41349 41350 added cmp2.c 41351 41352 fixed bug when diff_exp >= BITS_PER_MP_LIMB 41353 41354 added new test for worst cases: 1 - 1/2^i and (1 + 1/2^i) - 1/2^i 41355 41356 changed return value of mpfr_cmp2 41357 41358 new file for mpfr_cmp2 41359 41360 moved mpfr_cmp2 to separate file cmp2.c 41361 41362 added several tests, and a routine that generates worst cases 41363 41364 two changes suggested by Kevin Ryde 41365 413662001-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41367 41368 new version from new Makefile.am 41369 413702001-03-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41371 41372 added new test 41373 41374 fixed new bug in mpfr_cmp2 found by Fabrice 41375 413762001-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41377 41378 added new test 41379 41380 fixed bug found by Nathalie Revol 41381 413822001-03-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41383 41384 added 2 items 41385 41386 added test for mpfr_cmp_ui (-0, 0) 41387 41388 now prints -0 for -0 41389 413902001-03-19 Nathalie Revol <Nathalie.Revol@inria.fr> 41391 41392 Comparison between 0- and 0 now returns 0, NR 19-03-2001 41393 413942001-03-16 Vincent Lef��vre <vincent@vinc17.net> 41395 41396 added cast to avoid a warning 41397 413982001-03-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41399 41400 added tests for inexact return value 41401 41402 tiny bug in inexact value determination 41403 41404 mpfr_mul now returns an int 41405 414062001-03-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41407 41408 description of algorithms 41409 41410 reorganized 41411 414122001-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41413 41414 added few things 41415 41416 added arc-tangent 41417 41418 added tarctan 41419 41420 added test to mpfr_arctan 41421 41422 added header 41423 41424 test file for mpfr_arctan 41425 41426 removed math.h 41427 41428 arctangent function (contributed by Mathieu Dutour, done slight changes) 41429 41430 added Mathieu Dutour in contributors 41431 41432 added mpfr_arctan 41433 41434 added one test 41435 41436 fixed bug in mpfr_can_round_raw, when err > bn*BITS_PER_MP_LIMB 41437 41438 now tset_str <number> <prec> is possible 41439 414402001-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41441 41442 fixed bug for Infinity (was testing zero before) 41443 414442001-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41445 41446 replaced (mp_limb_t) 4294967295 by CNST_LIMB(0xFFFFFFFF) 41447 414482001-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41449 41450 forgot to declare q in mpfr_get_d2 when BITS_PER_MP_LIMB=64 41451 414522001-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41453 41454 removed fprintf() when unexpected end of string 41455 41456 added undef's to avoid warnings at compilation 41457 414582001-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41459 41460 removed mpfr_set_machine_rnd_mode 41461 414622001-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41463 41464 changed "int main(..)" to two lines 41465 41466 now initialize str_is_null correctly 41467 41468 added more tests 41469 41470 don't change MPFR_SIZE when allocated size is enough 41471 41472 updated specification of mpfr_sgn 41473 41474 changed definition of mpfr_sgn to get rid of MPFR_NOTZERO 41475 41476 size of freed block by __gmp_free_func was wrong 41477 41478 added tisnan and tget_d 41479 41480 fixed bug for Inf (recognized as an ordinary number) 41481 41482 new test file 41483 414842001-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41485 41486 check overflow in _mpfr_ceil_exp2 41487 414882001-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41489 41490 added prototype for Ulp 41491 41492 changed _d to _p, added mpfr_number_p 41493 41494 changed MPN_COPY into MPN_COPY_INCR/MPN_COPY_DECR in mpfr_round_raw 41495 41496 added tests for one of arguments NULL 41497 41498 moved mpfr_sgn to mpfr.h (defined in manual) 41499 41500 use MPZ_REALLOC 41501 41502 added const to 2nd argument of mpfr_set_str 41503 41504 added set_ui.c 41505 41506 added cast to "unsigned long" for ai = ABS(i) 41507 moved mpfr_set_ui to separate file 41508 41509 now when str==NULL return a block which is exactly strlen(str)+1 bytes long 41510 41511 fixed problems with old K&R compilers (_PROTO missing) 41512 415132001-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41514 41515 added more items 41516 415172001-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41518 41519 fixed ulp computation 41520 415212001-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41522 41523 changed behaviour for "tlog N": prints only differences with increasing ulps 41524 41525 fixed pb in mpfr_get_d2 for 64-bit machines: in q + res/MP_BASE_AS_DOUBLE, 41526 q seems first to be cast into a double, which gives more than one ulp of 41527 error 41528 415292001-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41530 41531 added guard to prevent multiple inclusion 41532 41533 fixed bug in mpfr_cmp2 (found on the IA64) 41534 415352001-01-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41536 41537 added tests for 0 in mpfr_set_str_raw 41538 41539 fixed bug for +0000E0 41540 41541 incorporated changes from Kevin/Torbjorn for GMP 3.2 41542 41543 truncate the last uk (when the precision is not a power of 2) 41544 41545 _mp_allocate_func -> _gmp_allocate_func 41546 41547 _mp_reallocate_func -> _gmp_reallocate_func 41548 41549 __gmp_default_fp_bit_precision -> __mpfr_default_fp_bit_precision 41550 41551 _mp_xxx_func -> _gmp_xxx_func 41552 41553 removed mpfr_srandom 41554 41555 sprintf -> fprintf 41556 _mp_free_func -> _gmp_free_func 41557 41558 _mp_reallocate_func -> __gmp_reallocate_func 41559 41560 added paragraph on NaN and infinities, docu on mpfr_nan_d and mpfr_inf_d 41561 removed mpfr_srandom 41562 some renamings 41563 41564 removed srandom 41565 __gmp_default_fp_bit_precision -> __mpfr_default_fp_bit_precision 41566 added protocols for mpfr_get_default_prec, mpfr_nan_d and mpfr_inf_d 41567 41568 removed superfluous TMP_FREE(marker) 41569 41570 _mp_xxx_func -> _gmp_xxx_func 41571 41572 _mp_free_func -> _gmp_free_func 41573 41574 functions to check for NaN and infinities 41575 41576 added isnan.c, removed srandom.h 41577 41578 added two items from Kevin 41579 41580 add 2 items 41581 41582 0.4 -> 1.0 41583 415842001-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41585 41586 added one test for large operands 41587 41588 fixed bug in _mpfr_ceil_exp2 (underflow when exp < -1022) 41589 415902000-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41591 41592 remove what was done 41593 41594 added mpfr-test.h 41595 41596 added Vincent 41597 41598 1.1 -> 2001 41599 41600 cast for _mpfr_floor_log2 was on the wrong side 41601 41602 added one test 41603 41604 simplified _mpfr_floor_log2 41605 41606 code was wrong for infinity 41607 41608 only editing 41609 41610 added special() cases 41611 41612 removed #if 0 (on Alpha with cc the enclosed code was still used 41613 since the # was not in the first column) 41614 41615 changes for version 1.1 41616 41617 added one test (exp2 vs exp3) 41618 41619 changed c from mp_limb_t into unsigned long in mpfr_exp2_aux2 41620 (otherwise bugs on IRIX -n32) 41621 41622 added one test 41623 41624 fixed wrong combination of conditions for Infinity 41625 41626 added mpfr-test.h for MIPS 41627 416282000-12-22 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41629 41630 Modified macro calls 41631 416322000-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41633 41634 added cast (int) to random() to avoid warning on Solaris 41635 41636 added <string.h> 41637 41638 tiny change at the end of main routine (suggested by Guillaume) 41639 41640 added one test 41641 41642 added two more tests 41643 41644 fixed bug when c does not overlap with a, b is negative and GMP_RNDN 41645 41646 moved prototypes for mpfr_set4 and mpfr_cmp3 to mpfr.h 41647 41648 fixed bug in mpfr_cmp2 when d=0 and lots of bits match 41649 41650 updated for version 1.1 41651 416522000-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41653 41654 test file for power functions 41655 41656 test file for in-place operations 41657 41658 unsigned char (or int) -> mp_rnd_t 41659 41660 unsigned char -> mp_rnd_t 41661 41662 unsigned int -> mp_rnd_t 41663 41664 k2r -> ansi style 41665 removed #include <math.h> by defining auxiliary functions 41666 fixed several tiny remaining bugs with NaN/Inf 41667 41668 updated description of mpfr_cmp* and mpfr_sin_cos 41669 41670 added MPFR_SIGN 41671 41672 added MPFR_CLEAR_NAN 41673 MPFR_RESET_INF -> MPFR_CLEAR_INF 41674 moved MPFR_SIGN to mpfr.h 41675 added prototypes for log2/isqrt/cuberoot functions 41676 41677 added reuse, tcmp2, teq, tpow, trandom, ttrunc 41678 41679 removed isnan(), ... 41680 41681 removed gmp-impl.h, isnan(), ... 41682 41683 removed gmp-impl, isnan(), ... 41684 41685 removed cputime stuff 41686 41687 k&r -> ansi style 41688 41689 removed isnan() decl. 41690 41691 MINNORM -> mpfr-test.h 41692 41693 ulp -> mpfr-test.h 41694 41695 removed isnan() declaration 41696 41697 now use MINNORM and MAXNORM 41698 41699 max, min -> macros 41700 41701 added new tests 41702 41703 added MINNORM, MAXNORM, MIN, MAX, ABS 41704 417052000-12-20 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41706 41707 A few basic patches. 41708 41709 Added support for PPC/Linux 41710 41711 Patch for wrong prototype. 41712 41713 Added prototypes for all test files. 41714 417152000-12-18 Vincent Lef��vre <vincent@vinc17.net> 41716 41717 Warnings suppressed on Alpha/OSF1. 41718 417192000-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41720 41721 added mpfr-test.h 41722 41723 back to 1.3 41724 41725 auxiliary test files 41726 41727 moved to main directory 41728 41729 auxiliary test functions 41730 41731 changed name of mpfr struct fields: _mp_d -> _mpfr_d 41732 (to detect conflicts with mpf) 41733 fixed a few problems in non-STDC headers 41734 moved definitions of mpfr-impl.h to mpfr-test.h and created a real mpfr-impl.h 41735 417362000-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41737 41738 removed tzeta 41739 41740 explained how to enter NaN/Inf with mpfr_set_str_raw 41741 41742 removed zeta.c 41743 41744 added 'to do' for NaN/Inf flags 41745 41746 clear NaN/Inf flags of result 41747 41748 improved indentation 41749 41750 adapted to NaN/Inf 41751 41752 nothing (only better indenting) 41753 41754 adapted to NaN/Inf 41755 removed warnings 41756 41757 adapted to NaN/Inf 41758 41759 removed warnings 41760 41761 clear NaN/Inf flags in normal case 41762 41763 adapted to NaN/Inf 41764 41765 added prototype for mpfr_srandom 41766 41767 now uses directly mpn_random, to avoid all problems with include files 41768 41769 added 4 tests 41770 41771 _mp_d -> MPFR_MANT 41772 41773 added error message when memory allocation fails 41774 41775 added error message when memory allocation fails 41776 41777 _mp_d -> MPFR_MANT 41778 41779 0 -> NULL 41780 41781 added error message if memory allocation fails 41782 41783 _mp_d -> PTR 41784 41785 _mp_prec -> MPFR_PREC 41786 _mp_d -> MPFR_MANT 41787 41788 added mpfr_swap 41789 41790 removed MPFR_SET_IS_FP (not used) 41791 417922000-12-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41793 41794 A few patches. 41795 417962000-12-15 Vincent Lef��vre <vincent@vinc17.net> 41797 41798 MPFR_CHANGE_SIGN modified to avoid a possible side effect. 41799 418002000-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41801 41802 warning: x is a MPF not a MPFR! 41803 418042000-12-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41805 41806 Modification of the order of includes in random.c 41807 418082000-12-15 Vincent Lef��vre <vincent@vinc17.net> 41809 41810 Added some warning flags for GCC. 41811 418122000-12-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41813 41814 Header file for srandom() 41815 41816 Patches for compiler warnings. 41817 41818 Yet another patch for include files. 41819 41820 Permutation of includes to avoid warnings due to careless multiple definition 41821 of ULONG_MAX. 41822 418232000-12-14 Vincent Lef��vre <vincent@vinc17.net> 41824 41825 Bug fixed concerning the flags. 41826 41827 Bugs fixed (in case char is signed and accented characters are given). 41828 41829 Include "urandom.h". Old code removed. 41830 41831 Take into account Inf, Nans ; clear the flags of the return variable 41832 in most function calls. 41833 41834 Use urandom(). 41835 41836 Take into account Inf, Nans ; clear the flags of the return variable 41837 in most function calls. 41838 418392000-12-14 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41840 41841 Yet another random patch. 41842 41843 Replaced random by rand. 41844 418452000-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41846 41847 fixed pb with mp_ptr vs mp_srcptr 41848 418492000-12-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41850 41851 Take into account Inf, Nans ; clear the flags of the return variable 41852 in most function calls. Tests updated accordingly 41853 41854 Take into account Inf, Nans ; clear the flags of the return variable 41855 in most function calls. 41856 418572000-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41858 41859 check that we can round the cosine too 41860 418612000-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41862 41863 removed TIMING stuff 41864 ensures prec_x >= 0 41865 41866 we need m >= 2 in mpfr_exp2_aux2 41867 41868 forgot TMP_MARK(marker) 41869 41870 forgot TMP_MARK(marker) or free'd in wrong order 41871 41872 forgot TMP_MARK(marker) 41873 41874 fixed mpf_reldiff, mpf_urandomb and mpf_t 41875 41876 added stack-alloc.h when --disable-alloca 41877 418782000-12-11 Vincent Lef��vre <vincent@vinc17.net> 41879 41880 out_str.c: <string.h> included 41881 set_d.c: (0./0.) instead of sqrt(-1) for NaN (doesn't need <math.h>) 41882 set_d.c: () added for macros Infp and Infm 41883 418842000-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41885 41886 shortened string in mpfr_set_str_raw which was greater than precision 41887 41888 replaced isnan/isinf/math.h (not portable, for example isinf does not exist 41889 on Sparc) by new macros from mpfr.h 41890 41891 added an error message when the mantissa is larger than the precision 41892 (in mpfr_set_str_raw) 41893 41894 added macros to recognize doubles that are NaNs and infinities 41895 (isinf is not portable and requires math.h) 41896 41897 in case the destination precision is less than that of the operands, 41898 and the 1st iteration fails, increase directly the precision to the maximum 41899 of that of the operands, otherwise divisions by 1.0 may need lots of 41900 iterations 41901 41902 added 'return' after dealing with infinities 41903 41904 added wish from JC Fauge`re 41905 419062000-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41907 41908 mpfr_init/mpfr_init2 initialize to 0 (compatibility with mpf) 41909 41910 fixed bug in mpfr_cmp2 when return value is k*BITS_PER_MP_LIMB-1 41911 41912 added new test for mpfr_cmp2 41913 41914 now ABSSIZE uses only 29 bits 41915 419162000-12-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41917 41918 added some explanations how to free the memory space allocated by mpfr_get_str 41919 41920 fixed one bug found by N. Mueller (MPFR_ABSSIZE(u) was used instead of usize) 41921 41922 added one more test from N. Mueller 41923 419242000-12-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41925 41926 cleaned calls to mpfr_extract 41927 41928 added new line 41929 41930 added error message when _mp_allocate_func returns 0 41931 41932 added header for mpfr_extract 41933 41934 - documented what function does 41935 - cleaned code 41936 - added header about license... 41937 41938 replaced log(2.0) by LOG2 [first step in getting rid of math.h] 41939 41940 added extern "C" { ... } for inclusion in C++ 41941 removed old KARATSUBA threshold for gmp 2.0.2 41942 41943 fixed bug in mpfr_cmp3 (when b=0, s not taken into account) 41944 41945 added swap/tswap 41946 41947 test file for new function mpfr_swap 41948 41949 added new function mpfr_swap 41950 41951 changed copyright to Free Software Foundation 41952 41953 added possible bug in mpfr_get_str 41954 41955 now all is in mpfr.h 41956 41957 return value was wrong for input non-zero (should return 1 = inexact) 41958 41959 fixed/improved doc. of mpfr_sin_cos and mpfr_urandomb 41960 41961 removed macro for mpfr_init_set_str_raw 41962 41963 added prototype for mpfr_sin_cos 41964 41965 sign of result was not correctly (re)set 41966 41967 added test to check sign of square root 41968 419692000-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41970 41971 gained a factor of 2 in most cases (replaced initial constant factor=2 41972 for additional bits for cos(x) by log(n)) 41973 41974 added tsin_cos 41975 41976 fixed potential problem in mpfr_sub1 (k=0 and kc<0) 41977 41978 test file for sin/cos 41979 419802000-11-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41981 41982 forgot cast to int before comparison between imax (can be negative) and an 41983 41984 returned value was one too small in case d=1 41985 41986 added new test from N. Mueller 41987 41988 added return for case of infinities 41989 41990 added macro MPFR_RESET_INF 41991 41992 don't forget to reset infinity flag if set! 41993 41994 fixed bug in mpfr_cmp2: wrong limb considered after cp[cn--] when 41995 cp[cn] was not 111...111 41996 41997 fixed bug when imax>an 41998 419992000-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42000 42001 added macro MPFR_IS_ZERO 42002 420032000-11-21 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42004 42005 Infinis, premiere tentative (tests) 42006 42007 Infinis, premiere tentative. 42008 420092000-11-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42010 42011 added one remark from GH 42012 42013 removed mpfr_cmp2 42014 420152000-11-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42016 42017 Added support for Inf. Modified zeta. 42018 420192000-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42020 42021 protection of macros done 42022 42023 shell-script to replace xxx by yyy in all source files 42024 42025 protected macros: xxx -> MPFR_xxx 42026 42027 protected all macros: xxx -> MPFR_xxx 42028 420292000-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42030 42031 fichier d'include pour mpfi.c 42032 42033 interval arithmetic level (1st version) 42034 42035 added two suggestions from Ben Hinkle 42036 420372000-10-19 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42038 42039 Bof. 42040 42041 Suppression de vieilleries. 42042 42043 1 << 31 -> ((unsigned int)1) << 31. 42044 42045 Correction de prototypes faux dans le cas ou on n'est pas -D__STDC__. 42046 420472000-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42048 42049 malloc -> *_mp_allocate_func or TMP_ALLOC 42050 42051 mpfr_t -> mpfr_ptr or mpfr_srcptr 42052 420532000-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42054 42055 removed -> all is in texp.c 42056 42057 added comparison between exp2 and exp3 42058 42059 take also the target precision into account for the guard bits 42060 42061 new faster version with O(n^(1/3)*M(n)) algorithm 42062 42063 adjusted exp2-exp3 threshold for new faster version of mpfr_exp2 42064 42065 added mpz_set_fr.c 42066 42067 added tdump 42068 42069 fixed pb for op=0 (added \0 at the end of string) 42070 42071 use strlen to determine memory to free 42072 42073 test file for mpfr_dump 42074 42075 removed karasqrt.c, added sqrtrem.c 42076 42077 kara_sqrtrem -> mpn_sqrtrem_new 42078 42079 now replaced by new code in sqrtrem.c 42080 42081 now uses new code mpn_sqrtrem_new 42082 42083 new version of fast MPN square root 42084 (should be integrated in a future release of GNU MP) 42085 420862000-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42087 42088 added another example from N. Mueller 42089 42090 fixed another ABW bug 42091 42092 fixed two Array Bound Writes 42093 42094 fixed one Array Bound Read (to_nearest, bp=cp and k>=cn) 42095 42096 added 2 new tests from Norbert Mueller 42097 420982000-09-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42099 42100 added new test 42101 42102 fixed Array Bound Write 42103 421042000-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42105 42106 added some words about the inclusion of mpfr.h 42107 42108 we need to better protect macros 42109 42110 removed MPFR_OBJECTS (does not work) 42111 42112 added $(MPFR_OBJECTS) in libmpfr_a_LIBADD 42113 42114 added $(MPFR_OBJECTS) in libmpfr_a_DEPENDENCIES 42115 42116 added contributions from Emmanuel Jeandel and Thom Mulders 42117 42118 added Thom Mulders 42119 42120 routines for naive/fast short multiplication, 42121 contributed by Thom Mulders (ETH Zu"rich) 42122 421232000-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42124 42125 added new test for overlapping x, y 42126 42127 fixed problem when x=y 42128 421292000-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42130 42131 added pb from Norbert Muller 42132 42133 fixed SEGV (mpn_lshift doesn't seem to like src_size=0) 42134 42135 now prints "failed" when test file doesn't return 0 42136 421372000-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42138 42139 replaced mpn_divrem by mpn_tdiv_qr for gmp 3 or later 42140 and avoid copy of one operand when possible 42141 42142 updated (make check, make install) 42143 42144 described each file 42145 42146 News for version 1.0 42147 421482000-08-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42149 42150 fixed bug for 0.9999999999... 42151 42152 added test for 0.99999999999999999 42153 421542000-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42155 42156 added mpfr_swap 42157 42158 now store last computed value together with last rounding mode 42159 421602000-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42161 42162 target ps -> mpfr.ps 42163 42164 added $(srcdir) to trunc.c for sub-directory compilation 42165 421662000-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42167 42168 removed some memory leaks 42169 42170 solved memory leaks with T[i] and qtoj[i] 42171 42172 updated (done autoconf, faster mpfr_exp, sin/cos) 42173 42174 updated for version 1.0 42175 42176 COPYING.LIB -> COPYING 42177 42178 renamed back (wanted for "make dist") 42179 42180 renamed back to COPYING (wanted for "make dist") 42181 42182 GNU Library General Public License 42183 42184 renamed to COPYING.LIB, according to mpfr.texi 42185 42186 result was free'd twice when good=1 42187 42188 put information about authors 42189 42190 PACKAGE and VERSION are not defined any more 42191 42192 gmp-mparam.h is required too 42193 42194 IRIX make does not recognize $< (MISCFLAGS) 42195 42196 do not define PACKAGE and VERSION in AM_INIT_AUTOMAKE, 42197 this avoids conflicts with GMP 3.1 config.h 42198 [thanks to Kevin Ryde] 42199 42200 updated for GMP 3.1 42201 42202 MP_BASE_AS_DOUBLE already defined in gmp-impl.h 42203 42204 nb_terms[0] was not initialized 42205 42206 fixed some FNH (free not in heap) problems for binary splitting method 42207 (prec >= 30000) 42208 42209 gmp.info -> mpfr.info 42210 42211 set_dfl_rnd.* -> set_rnd.* (to avoid conflict with set_dfl_prec.* on DOS 8.3) 42212 42213 now automatically generated by configure 42214 42215 added if (__GNU_MP_VERSION < 3) for mpn_divrem_1-bug patch 42216 42217 set_dfl_rnd -> set_rnd 42218 42219 new name of set_dfl_rnd.c (avoids clash with set_dfl_prec.c on DOS 8.3) 42220 42221 renamed to set_rnd.c (otherwise truncates like set_dfl_prec.c on 42222 a DOS 8.3 filesystem) 42223 42224 setfilename: gmp.info -> mpfr.info 42225 42226 replaced path for libmpfr.a by $(top_builddir) 42227 test files are now in check_PROGRAMS instead of bin_PROGRAMS (they don't need 42228 to be installed) 42229 42230 replaced back BITS_PER_MP_LIMB by mp_bits_per_limb 42231 (not important in test files) 42232 422332000-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42234 42235 replaced macros for mpfr_init_set_si by "do { ... } while (0)" so 42236 they'll work in an if/else like 42237 42238 if (foo) 42239 mpfr_init_set_si (f, -123, GMP_RNDN); 42240 else 42241 bar (); 42242 42243 [thanks to Kevin Ryde] 42244 422452000-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42246 42247 replaced mp_bits_per_limb by BITS_PER_MP_LIMB (constant) 42248 422492000-08-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42250 42251 added mpf2mpfr.h 42252 42253 define check2 only with -DTEST 42254 42255 updated for new configure from Emmanuel Jeandel, to GMP 3.xxx 42256 and removed errors with texinfo 42257 42258 solaris --> __sparc__ 42259 42260 ifdef IRIX64 -> ifdef __mips 42261 42262 IRIX/make does not understand $< : expanded to trunc.c 42263 42264 use standard macro for Alpha 42265 422662000-07-13 Emmanuel Jeandel <emmanuel.jeandel@loria.fr> 42267 42268 autoconf options described 42269 42270 timestamp modified 42271 42272 timestamp changed 42273 42274 nothing to say 42275 42276 Timestamp 42277 42278 Small bug fixed 42279 42280 Timestamp modified ? 42281 42282 Timestamp modified 42283 42284 Nothing 42285 42286 New release 42287 42288 Bugs fixed 42289 42290 Bug fixed 42291 42292 sin_cos added 42293 42294 New algorithm, new wrapper 42295 422962000-07-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42297 42298 replaced 0 by GMP_RNDN 42299 42300 fixed (hopefully) bug for 1/1 in precision 32, 64, ... 42301 42302 added test for 1/1 in precision 32 or 64 42303 423042000-07-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42305 42306 use mpfr_print_rnd_mode now 42307 423082000-07-11 Emmanuel Jeandel <emmanuel.jeandel@loria.fr> 42309 42310 Bug Fixed, and installation guide made 42311 42312 Fixed bug 42313 42314 Bug Fixed with Solaris make 42315 42316 strings.h added 42317 42318 Deps included 42319 42320 Bug Fixed 42321 42322 Bug fixed 42323 42324 Bug Fixed 42325 42326 First Release 42327 42328 *** empty log message *** 42329 42330 First Release 42331 42332 First release 42333 42334 Added sin_cos 42335 42336 First Release 42337 423382000-06-29 Emmanuel Jeandel <emmanuel.jeandel@loria.fr> 42339 42340 Memory problems fixed 42341 42342 Memory Leaks Fixed 42343 423442000-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42345 42346 added prototype for mpfr_sub_ui 42347 42348 now use mpfr macros 42349 42350 be careful not to call mpn_sub_n/mpn_sub_1 with a size 0 42351 42352 fixed to free an entire number of limbs 42353 42354 test file for sub_ui 42355 423562000-06-28 Emmanuel Jeandel <emmanuel.jeandel@loria.fr> 42357 42358 mpfr_exp3 and mpfr_extract added to Makefile 42359 42360 First Release 42361 423622000-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42363 42364 distinguish between mpfr failure and difference with sqrt() 42365 42366 ensures random numbers given to sqrt() are positive 42367 42368 adapted for freebsd 42369 42370 modified drand to avoid false NaNs (makes SEGV under FreeBSD) 42371 42372 added entry for FreeBSD, removed -pedantic option 42373 42374 added one test 42375 42376 added new tests 42377 42378 added prototype for mpfr_set_prec_raw 42379 42380 removed work done 42381 42382 fixed several bugs 42383 42384 merged different roundings in case diff_exp<PREC(a), dif<=PREC(c) 42385 42386 removed printf for argc=1 42387 42388 added one test 42389 42390 make ceil.o,floor.o,trunc.o depend on trunc.c 42391 423922000-06-20 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42393 42394 Various patches for leaks, UMR and (one) BUS. 42395 423962000-06-19 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42397 42398 This patch suppresses a few mem leaks. 42399 42400 Suppressed memory leaks. 42401 42402 Patch for 1 << (BITS_PER_MP_LIMB - x) when x is 0 (produces inexact results 42403 on PPCs). 42404 424052000-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42406 42407 arguments of gmp_randinit were in wrong order 42408 424092000-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42410 42411 Patch in the case when n_bits is a multiple of 32. 42412 424132000-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42414 42415 added patch to get denorms on IRIX64 42416 42417 put instruction to get denormalized numbers on IRIX64 out of #ifdef TEST 42418 42419 fixed bug occurring on LinuxPPC (1 << 32) 42420 42421 added one test (bug on LinuxPPC) 42422 42423 added one test 42424 42425 fixed several problems 42426 42427 added more tests 42428 424292000-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42430 42431 Patches for the case where the precision is a multiple of the word size. 42432 424332000-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42434 42435 fixed another bug 42436 42437 added one test 42438 42439 added prototype for mpz_set_fr 42440 42441 improved choice of initial precision 42442 42443 added mpz_set_fr (conversion from mpfr to mpz) 42444 42445 added return type 'int' for main 42446 424472000-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42448 42449 Added TESTFLAGS to the main Makefile. Added ttrunc. 42450 42451 Minor patch (put to 0 the nonsignificant bits). 42452 42453 Added declaration of trunc, ceil, floor. 42454 42455 Tests for trunc, ceil, floor. 42456 42457 Added TESTFLAGS variable to the compile instruction, for use as 42458 make "TESTFLAGS=-DTEST" 42459 424602000-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42461 42462 1 -> (mp_limb_t) 1 [pb on 64-bit machines] 42463 reduced number of tests to 1000 42464 424652000-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42466 42467 Display of statistics is only toggled if a number of tests to be performed 42468 is given. Shameful hack, but is getopt really portable ? 42469 42470 Added trandom, teq 42471 42472 Added random2, urandomb 42473 42474 Added div_2exp to the (very rough) test. 42475 42476 Very basic statistical tests for random, random2, urandomb. 42477 42478 Patch for random (libc's random() is on 31 bits only) 42479 42480 Test for mpfr_eq. 42481 42482 Patch a few incoherences of eq.c wrt the manual + adapt to mpfr usual semantics 42483 424842000-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42485 42486 header file providing cputime() function 42487 42488 test file comparing mpfr_exp and mpfr_exp2 42489 42490 O(n^(1/3)*log(n)) algorithm using Brent's method 42491 and Brent-Kung's O(sqrt(t)) algorithm to evaluate 42492 a power series of order t [exact rounding not yet finished] 42493 424942000-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42495 42496 fixed bug in mpfr_round (wrong sign) 42497 42498 fixed bug in mpfr_round: did not check allocated space was large enough 42499 42500 main -> int main 42501 42502 added #ifdef TEST: if not defined (default), then function 42503 mpfr_set_machine_rnd_mode is not defined 42504 42505 added #ifdef TEST to disable comparison with machine arithmetic 42506 by default (i.e. calls to mpfr_set_machine_rnd_mode) 42507 42508 removed longlong.h (not needed) 42509 42510 now deals with NaN 42511 42512 RND_MODE -> rnd_mode 42513 42514 mpfr_init is now a function (no more a macro) 42515 42516 printf -> fprintf 42517 added mpfr_init as function 42518 42519 changed (x) -> x 42520 fixed several typos 42521 42522 removed printf 42523 425242000-05-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42525 42526 added ifdef TEST 42527 42528 removed debug line 42529 42530 added one test 42531 42532 added 2 new tests 42533 42534 little change 42535 42536 more changes 42537 42538 added ifdef TEST 42539 42540 does not use machine rounding mode any more 42541 42542 added 7 new tests 42543 42544 fixed typo in printf format 42545 42546 fixed several rounding problems 42547 42548 rewritten case dif<=0 and PREC(b)>PREC(a) (merged all roundings) 42549 42550 removed DEBUG, VERBOSE ifdef's 42551 42552 fixed (hopefully) the case dif<=0, PREC(b)>PREC(a), directed rounding 42553 42554 replaced (mp_limb_t)1 by macro ONE 42555 fixed bug for GMP_RNDN with overlap=1 42556 42557 removed misplaced comment 42558 42559 added one test 42560 42561 does not use rnd_mode.c by default 42562 42563 removed unused label 42564 42565 fixed more tiny bugs 42566 425672000-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42568 42569 use mpfr_print_rnd_mode now 42570 42571 added one test 42572 42573 added more tests 42574 42575 removed TMP_ALLOC stuff 42576 42577 fixed new bug when a <- b - c with tiny c 42578 42579 fixed bug in a <- b-c when c very small but does not overlap with a 42580 42581 removed 'inline' (does not compile on Alpha with gcc 2.8.1) 42582 42583 added include file unistd.h 42584 42585 fixed warning with long arguments 42586 42587 initial version 42588 42589 added tests for mpfr_set_str 42590 42591 now returns 0 if all works 42592 42593 changed to return the error in ulps 42594 42595 added new functions mpfr_set_str and mpfr_inp_str 42596 42597 added prototypes for set_str, inp_str 42598 changed return value for mpfr*pow* 42599 42600 separated functions with/without rounding argument 42601 42602 added tabs 42603 42604 added set_str.o and inp_str.o 42605 426062000-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42607 42608 initial version 42609 42610 added rule for sub_ui.o 42611 42612 use only one file (trunc.c) for ceil, floor, trunc 42613 42614 now use trunc.c for all 3 functions (ceil, floor, trunc) 42615 42616 added ifdef to avoid warning at compilation 42617 42618 removed unused variable 42619 42620 fixed output type for mpfr_ui_div 42621 42622 removed 3rd argument (use PREC(rop) instead) 42623 added include longlong.h 42624 42625 stupid typo: ABSSIZE -> ABSSIZE(x) 42626 42627 change due to new semantics of mpfr_init_set* macros 42628 42629 now makes an error when precision too large wrt allocated space 42630 42631 added new implemented functions 42632 42633 - added macro for mpfr_sgn 42634 - removed argument 'p' in mpfr_init_set* macros for compatibility with mpf 42635 42636 updated wrt new functions 42637 42638 added sub_ui 42639 42640 added new test files 42641 42642 new test files 42643 42644 added new tests 42645 42646 improved tests 42647 42648 new functions (compatibility with mpf) 42649 42650 added 4th arg (was missing in non-stdc def) 42651 42652 added new functions (compatibility with mpf) 42653 42654 added several prototypes 42655 42656 fixed remaining bug (case overlap=5, dif>0) 42657 42658 added add_ui, sqrt_ui, ui_div, ui_sub, reldiff 42659 426602000-05-21 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42661 42662 Compatibility mpf/mpfr, second part. Ceil, floor, trunc. Yet untested. 42663 42664 Include file for compatibility module mpf -> mpfr. 42665 42666 Compatibility with mpf. WARNING: THESE FUNCTIONS ARE UNTESTED IN THEIR PRESENT 42667 FORM. THEY *DO* COMPILE HOWEVER. 42668 426692000-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42670 42671 removed unused variables 42672 42673 removed ';' 42674 42675 added return 42676 42677 added calls to mpf[r]_clear, and rewrote to avoid memory leaks 42678 42679 added calls to free 42680 42681 corrected comment about field mp_size 42682 426832000-05-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42684 42685 added tests for negative numbers 42686 42687 added one test 42688 42689 fixed pb with rounding of negative numbers 42690 426912000-05-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42692 42693 added mpfr_abs 42694 42695 test file for mpfr_abs 42696 42697 added mpfr_abs (macro using mpfr_set4) 42698 42699 updated wrt done/new tasks 42700 427012000-05-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42702 42703 added two tests 42704 42705 split mpfr_init2 into mpfr_init and mpfr_set_prec 42706 42707 removed karadiv.o 42708 42709 replaced mpn_divrem_n by mpn_divrem (efficient in GMP 3.0) 42710 42711 not needed any more with GMP 3.0 42712 42713 removed mpn_divrem_n stuff, now that Burnikel/Ziegler algorithm is in GMP 3.0 42714 42715 added one test 42716 427172000-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42718 42719 completely rewritten (changed semantics) 42720 42721 initialized variable bh to avoid warning at compilation 42722 42723 added prototype for mpfr_set_default_rounding_mode 42724 42725 fixed pb in mpfr_cmp_ui_2exp for i=0 42726 42727 updated according to meeting from May 4, 2000 42728 42729 updated for AIX 42730 42731 updated for AIX (thanks to Gerardo Ballabio) 42732 427332000-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42734 42735 added one test 42736 42737 fixed bug found by G. Ballabio for b=0 and 0<c<1 42738 42739 added info for GMP2 vs GMP3 42740 427412000-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42742 42743 added -ffloat-store for Alpha/OSF 42744 42745 added cast to mp_limb_t (bug on Alpha in tadd with -O2) 42746 42747 added one test 42748 42749 removed #if 0 42750 42751 swapped gmp-impl.h and longlong.h for GMP 3.0 42752 427532000-04-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42754 42755 added more tests 42756 42757 fixed pb when target precision is less than integer length 42758 42759 fixed problem not solved so far, i.e. when adding round bit 42760 produces a change of exponent 42761 427622000-04-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42763 42764 fixed computation of ulps 42765 42766 removed variable xrw in mpfr_round_raw (not used) 42767 42768 replaced 1st my by my+sh in mpfr_round_raw call 42769 42770 added 2 more tests 42771 427722000-04-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42773 42774 Correction d'un bug quand le carry contient tous les bits significatifs. 42775 427762000-02-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42777 42778 improved indentation 42779 mpfr_pi -> mpfr_const_pi 42780 42781 added one test 42782 42783 mpfr_pi -> mpfr_const_pi 42784 42785 use mpfr_cmp_ui instead of SIGN 42786 42787 mpfr_log2 -> mpfr_const_log2 42788 42789 added -O2 compilation flag 42790 added set_q 42791 42792 convert rational (mpz_q) to floating-point (mpfr_t) 42793 42794 removed things which were done 42795 42796 unsigned char -> mp_rnd_t 42797 SIGN -> MPFR_SIGN 42798 42799 use PREC() macro instead of _mp_prec, and corrected size to free 42800 42801 SIGN -> MPFR_SIGN 42802 42803 unsigned char -> mp_rnd_t 42804 SIGN -> MPFR_SIGN 42805 added non standard C header 42806 42807 unsigned char -> mp_rnd_t 42808 42809 unsigned long int -> mp_prec_t 42810 42811 renamed to mpfr_const_log2 42812 unsigned char -> mp_rnd_t 42813 42814 unsigned char -> mp_rnd_t 42815 SIGN -> MPFR_SIGN 42816 unsigned long int -> mp_prec_t 42817 42818 unsigned char -> mp_rnd_t 42819 unsigned long int -> mp_prec_t 42820 42821 unsigned char -> mp_rnd_t 42822 42823 renamed to mpfr_const_pi 42824 unsigned char -> mp_rnd_t 42825 42826 unsigned char -> mp_rnd_t 42827 added non standard C header 42828 42829 SIGN -> MPFR_SIGN 42830 42831 added non standard C header 42832 42833 unsigned char -> mp_rnd_t 42834 SIGN -> MPFR_SIGN 42835 unsigned long int -> mp_prec_t 42836 42837 unsigned char -> mp_rnd_t 42838 SIGN -> MPFR_SIGN 42839 42840 unsigned long int -> mp_prec_t 42841 42842 har -> mp_rnd_t 42843 42844 changed rounding mode to mp_rnd_t 42845 428462000-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42847 42848 now distinguish between true mpfr errors and possible errors from libm.a 42849 42850 now use print_rnd_mode 42851 42852 added suggestion from JP Merlet 42853 42854 added print_rnd_mode.c 42855 42856 added more tests 42857 42858 fixed bug(s) found by Jean-Pierre Merlet 42859 42860 changed prototype of mpfr_set_f (takes now only 3 arguments) 42861 428622000-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42863 42864 added karasqrt.o 42865 42866 added prototype for kara_sqrtrem 42867 added redefinition of KARATSUBA_MUL_THRESHOLD (if not defined) 42868 removed definition of LOG_MP_BITS_PER_LIMB (was not used) 42869 42870 changed return type to mp_size_t and included mpfr.h 42871 42872 moved definition of KARATSUBA_MUL_THRESHOLD (if not defined) to mpfr.h 42873 42874 implements Katatsuba square root 42875 42876 now use kara_sqrtrem instead of mpn_sqrtrem 42877 42878 fixed bug when high limb of quotient is zero 42879 428802000-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42881 42882 added one test [did fail on alpha] 42883 42884 added cast to mp_limb_t in front of 1<<sh 42885 42886 modified to be compatible with gmp-2.0.2 42887 42888 added further sqrt pb on alpha 42889 42890 swapped longlong.h and gmp-impl.h (pb on alpha) 42891 42892 added test for bug in sub.c found by JP Merlet on Solaris 42893 42894 fixed mpn_rshift which could have 0 as shift argument 42895 (caused bug in exp on Solaris found by JP Merlet) 42896 42897 moved debug messages to stdout 42898 428992000-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42900 42901 added prototype for mpn_divrem_n (Burnikel-Ziegler algorithm) 42902 42903 use mpn_divrem_n (Burnikel-Ziegler algorithm) instead of mpn_divrem 42904 when rsize=rrsize 42905 42906 added karadiv.c (to be removed when incorporated in GMP) 42907 42908 Burnikel-Ziegler division 42909 429102000-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42911 42912 added further examples from V. Lefe`vre 42913 429141999-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42915 42916 added macri VERSION for target dist 42917 42918 added new tests from V. Lefe`vre 42919 42920 improved interface: tdiv N for doing N random tests 42921 42922 added one test 42923 42924 DEBUG2 -> DEBUG 42925 42926 added debug instructions 42927 42928 fixed nasty bug in mpfr_cmp2 (case cc=1) 42929 42930 replaced printf by fprintf for error 42931 429321999-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42933 42934 added new tests for large input 42935 42936 fixed bug for large input 42937 42938 rewritten the error analysis: 42939 - now analyzes the cancellation a posteriori 42940 - takes into account errors from rounding and initial approximation 42941 42942 added tests from Vincent Lefe`vre 42943 42944 no warning any more for negative exponent (thanks to V. Lefe`vre) 42945 429461999-12-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42947 42948 fixed bug found by V. Lefe`vre (when n<0, we have to compute 42949 an upper bound of log(2) instead of a lower bound) 42950 42951 added new test (bug found by V. Lefe`vre) 42952 429531999-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42954 42955 added suggestion from V. Lefe`vre 42956 42957 added several remarks from Vincent Lefe`vre 42958 42959 corrected many typos found by Vincent Lefe`vre 42960 429611999-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42962 42963 removed executable rights 42964 42965 improved GMP link (thanks to Vincent Lefe`vre) 42966 added pointer to Alpha-Linux f-p problems 42967 42968 removed executable right on file 42969 429701999-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42971 42972 put back test for x=y 42973 42974 modified to avoid y=-0.0 42975 42976 modified test procedure to return 53 when x=y 42977 42978 mpfr_cmp2(b,c) now returns PREC(b) if b=c, even if c=0 42979 42980 added one test 42981 42982 added test under Cygwin 42983 42984 $make -> $MAKE 42985 42986 removed *rand48 prototypes (pb under Cygwin) 42987 42988 removed *rand48 prototypes 42989 42990 removed lrand48 prototype (pb under Cygwin) 42991 42992 added rounding instructions for Cygnus compiler under Windows 42993 42994 added dummy *rand48 functions for CYGWIN 42995 42996 added info about gmp-mparam.h 42997 42998 incorporated data for CYGWIN 42999 430001999-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43001 43002 added one test 43003 43004 added boundary cases from paper from Michael Parks 43005 430061999-10-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43007 43008 now set sign correctly 43009 43010 added test to check sign is correctly set 43011 43012 added worst case for arg. reduction 43013 43014 fixed bug when initial approx. floor(x/log(2)) is too large 43015 430161999-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43017 43018 now use macros for Linux case, and added ifdef for _ISOC9X_SOURCE 43019 43020 changed target dist to create archive in a directory 43021 430221999-10-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43023 43024 added targets doc and dist 43025 43026 added documentation and contact for problems 43027 43028 file for installation of mpfr 43029 43030 added more tests 43031 43032 now deal with 0 and fixed bug on 64-bit machine 43033 43034 moved to sqrt.c 43035 43036 now use directly mpn_sqrtrem (previously sqrt3.c) 43037 43038 updated prototypes of mpfr_div/mpfr_sqrt 43039 43040 removed div3 and sqrt3 43041 43042 div3 -> div 43043 43044 moved to div.c 43045 43046 replaced implementation using Goldschmidt's algorithm 43047 by that using directly mpn_divrem (previously div3.c) 43048 43049 sqrt3 -> sqrt 43050 43051 GNU Library Public License 43052 430531999-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43054 43055 removed printf statement 43056 43057 added ABS for SIZ(z) when z<0 43058 43059 removed special 'exact' stuff for n=0 43060 43061 fixed prototype of random 43062 430631999-07-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43064 43065 replaced GNU MPFR by MPFR (not yet the GNU label) 43066 43067 added copyright notice 43068 430691999-07-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43070 43071 added one test with prec=160 43072 43073 error term is N+1 and not N 43074 43075 fixed bug in case sh=0 43076 430771999-07-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43078 43079 completely rewritten mpfr_can_round_raw, which costs now O(1) 43080 --- or more probably O(log n) --- instead of O(n) 43081 430821999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43083 43084 changed mpfr_init2 to mpfr_set_prec 43085 43086 added one test 43087 43088 added prototype for mpfr_add1 43089 43090 added mpfr_clear 43091 430921999-07-07 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43093 43094 sqrt3 now returns an exact / inexact flag. 43095 43096 sqrt3 now returns an exact/inexact flag. 43097 430981999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43099 43100 fix UMR (missing 0 terminating string) 43101 43102 put initialization of exponent back (avoids some UMRs) 43103 43104 fixed array bound write bug 43105 43106 added one test 43107 43108 added several tests, and does not print on stdout when no argument 43109 43110 fixed several bugs 43111 431121999-07-07 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43113 43114 Added an example which causes an ABW in mpz_get_str. 43115 431161999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43117 43118 moved drand to mpfr-impl.h and added test in large precision 43119 43120 added tout_str 43121 431221999-07-07 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43123 43124 Problem with the exponents in the destructive case. 43125 431261999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43127 43128 more changes from G. Hanrot 43129 43130 use now drand48 instead of drand 43131 43132 simply set to zero the non-significant bits, don't call mpfr_round_raw 43133 43134 upgrade from bug fixes from Guillaume Hanrot 43135 43136 stores now last computed value together with its rounding mode 43137 43138 checks now destructive version 43139 431401999-07-07 Sylvie Boldo <sylvie.boldo@inria.fr> 43141 43142 changes on random 43143 43144 using div3 43145 43146 using sqrt3 43147 431481999-07-06 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43149 43150 HPUX support, 2nd try. 43151 43152 Patch for the (very seldom encountered) case of even rounding. 43153 431541999-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43155 43156 added def. for random/srandom, which do not exist under HPUX 43157 43158 store now computed values 43159 43160 _mpfr_log2_* -> __mpfr_log2_* 43161 43162 merged machine rounding instructions for Sun and HP 43163 43164 patch for HPUX (no random function) 43165 43166 added print_rnd_mode 43167 43168 fixed prototype of mpfr_print_rnd_mode 43169 43170 improved ulp to deal with case a=0.0 43171 43172 added return 0 to main 43173 431741999-07-06 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43175 43176 Forgotten casts. 43177 43178 Added sqrt3 + tentative support for Alpha linux. 43179 43180 The word added when the exponent is odd was sometimes uninitialized. 43181 43182 Initial version. 43183 43184 Added mpfr_sqrt3. 43185 431861999-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43187 43188 added several functions, and updated others 43189 43190 changed prototype of mpfr_log 43191 43192 returns now an int instead of void 43193 43194 removed initialization of exponent 43195 43196 special case for exp(0) 43197 43198 added test for exp(0) 43199 432001999-07-06 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43201 43202 config.in -> ./config.in 43203 432041999-07-05 Sylvie Boldo <sylvie.boldo@inria.fr> 43205 43206 new, quick & clean 43207 432081999-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43209 43210 added two tests and converted to double's 43211 432121999-07-05 Sylvie Boldo <sylvie.boldo@inria.fr> 43213 43214 more checking ways 43215 432161999-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43217 43218 distinguishes now between true errors and differences with libm.a 43219 (which may fail too) 43220 43221 removed mpf stuff in check 43222 43223 added some mpfr_clear's 43224 43225 changed defs of random/srandom to work on Alpha 43226 43227 mpfr_init2 -> mpfr_set_prec in check64 43228 43229 added function dbl 43230 43231 added prototypes for mpfr_cmp3 and mpfr_set4 43232 43233 use mpfr_set4 now (no modification of const parameters any more) 43234 43235 return 0 in mpfr_can_round_raw 43236 43237 introduced auxiliary function mpfr_set4 43238 43239 fixed possible bug (testing sign of unsigned long) in mpfr_mul_ui 43240 43241 replaced PREC(r) by prec (which was defined but not used) 43242 43243 moved drand and ulp to mpfr-impl 43244 43245 moved ulp to mpfr-impl.h 43246 and used input routine 'dbl' in some tests 43247 43248 modified one test to avoid rounding from double input routines 43249 43250 introduced auxiliary function mpfr_cmp3(x,y,sign) to compare x and sign*y 43251 43252 moved drand and ulp to mpfr-impl.h 43253 43254 mpfr_sub now calls directly mpfr_add1/mpfr_sub1 (no modification of 43255 const parameters any more) 43256 43257 moved drand to mpfr-implh.h 43258 43259 use mpfr_cmp3 instead of mpfr_cmp (avoids warning due to modification of 43260 const parameters) 43261 43262 moved drand to mpfr-impl.h and removed warnings 43263 43264 use the result of mpfr_can_round 43265 43266 moved drand and ulp to mpfr-impl.h 43267 43268 moved drand to mpfr-impl.h 43269 43270 moved drand to mpfr-impl and removed warnings 43271 43272 added include of math.h 43273 43274 moved drand and ulp to mpfr-impl.h 43275 43276 include file for mpfr developers only 43277 43278 long -> int in drand 43279 43280 adapted drand to sizeof(long)=64 43281 43282 config.in -> ./config.in (otherwise don't work under IRIX) 43283 43284 removed warnings 43285 43286 patch for GMP bug when UDIV_NEEDS_NORMALIZATION=1 43287 432881999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43289 43290 Correction of a typo. 43291 432921999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43293 43294 fixed horrible hack yp[-1] 43295 432961999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43297 43298 Support of IRIX64 (n32/64 modes) plus cosmetic modifications. 43299 433001999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43301 43302 added one test, and adapted to ANSI C 43303 433041999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43305 43306 Yet Another Backslash Forgotten... 43307 43308 Bug le plus stupide de tous les temps corrige. Ca marchait sous Solaris... 43309 433101999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43311 43312 added one test and removed warnings 43313 433141999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43315 43316 Added mpfr_div3. 43317 43318 Added div3.c 43319 433201999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43321 43322 fixed bug when sizeof(long) <> sizeof(mp_limb_t) 43323 and removed DEBUG2 stuff 43324 43325 added one test, and removed warnings 43326 433271999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43328 43329 Added div3.c, initial release. 43330 43331 Patch of the patch :) 43332 43333 Pattern matching rules in tests Makefile for non-GNU make (eg Solaris) 43334 433351999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43336 43337 adapted to enable denormalized numbers on IRIX64, added one test and 43338 removed warnings 43339 43340 changed type of 3rd arg. 'neg' of mpfr_can_round_raw from char to int 43341 (pb with signed char's on some machines, e.g. IRIX64) 43342 43343 adapted to IRIX64 (enable denorm. numbers) and removed warnings 43344 43345 adapted to IRIX64 (enable denormalized numbers) and removed warnings 43346 43347 adapted to IRIX64 (no denormalized by default) and removed warnings 43348 43349 unsigned long -> mp_limb_t 43350 433511999-07-02 Sylvie Boldo <sylvie.boldo@inria.fr> 43352 43353 unused variables 43354 43355 unused variable 43356 433571999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43358 43359 added ifdef to avoid warning "unused variable" on 64-bit machine 43360 43361 added def. of swapRM to avoid warning on IRIX64 43362 43363 1UL -> ((mp_limb_t) 1) 43364 43365 changed type of mask to mp_limb_t in mpfr_round_raw2 43366 43367 adapted for denormalized on IRIX64 43368 now test NaNs too 43369 433701999-07-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43371 43372 Due to the representation of 0 it might have happened that 0 != 0. 43373 43374 Patch mpfr_set -> MPN_COPY 43375 43376 Patch when prec < 32. 43377 433781999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43379 43380 fixed bugs for 64-bit machines 43381 43382 added casts to mp_limb_t 43383 43384 added cast to mp_limb_t for shifts 43385 433861999-07-01 Sylvie Boldo <sylvie.boldo@inria.fr> 43387 43388 prints nothing is everything is allright 43389 43390 memory gestion 43391 43392 one single bug 43393 43394 more bad cases 43395 433961999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43397 43398 added some certified tests 43399 43400 added one test to check that 1*y = y 43401 434021999-07-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43403 43404 Patch of an MLK due to multiple initialization of the same variables without 43405 freeing them in-between. 43406 43407 Same as in sqrt (allocation problem). 43408 434091999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43410 43411 fixed bug due to shift=0 in mpn_rshift 43412 434131999-07-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43414 43415 (Temporary) patch for memory gestion in sqrt.c 43416 434171999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43418 43419 mpfr_init -> mpfr_init2 43420 43421 initialize temporary variables with current precision 43422 434231999-06-30 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43424 43425 Unbelievably stupid bug fixed. 43426 43427 Two patches : one for an UMR which actually had no effect, one for an FNH in 43428 old code.. 43429 434301999-06-30 Sylvie Boldo <sylvie.boldo@inria.fr> 43431 43432 new bug 43433 43434 there were some conflicts 43435 43436 there were some conflicts 43437 43438 memory gestion 43439 434401999-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43441 43442 replaced outputs by direct comparison when no argument 43443 43444 modified to do only certified test when no argument 43445 43446 modified to do only tests with precomputed values when no argument 43447 43448 does exact rounding only for n=0 43449 434501999-06-29 Jean-Luc R��my <Jean-Luc.Remy@loria.fr> 43451 43452 added zeta/tzeta 43453 43454 added prototypes for mpfr_exp and mpfr_zeta 43455 43456 computes Riemann function Zeta(s) 43457 first version: only works for s=2 with PREC(result)=53 and rnd_mode=nearest 43458 43459 test file for mpfr_zeta 43460 43461 added prototype for mpfr_set_default_prec 43462 43463 file renamed zeta.c 43464 43465 first version: computes Zeta(2) with fixed precision 53 bits and round 43466 to nearest 43467 434681999-06-29 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43469 43470 Patch in the case when the number of bits is a multiple of the word size. 43471 43472 Patch in the case when the low words of the product are zero. 43473 434741999-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43475 43476 changed arguments of mpfr_round_raw (continued) 43477 43478 changed arguments of mpfr_round_raw (now uses precision instead of size) 43479 43480 modified wrt warnings at compilation 43481 43482 modified description of mpfr_get_str for n_digits=0 43483 43484 now performs an exact output when n_digits=0 43485 434861999-06-28 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43487 43488 Yet another corrected prototype. 43489 434901999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43491 43492 Prototypes et quelques causes de warnings corriges. 43493 43494 Modifs cosmetiques. 43495 43496 Fichier vide. 43497 434981999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43499 43500 do not print anything when no argument 43501 43502 use GMP allocate/free functions instead of malloc/free 43503 43504 do not print anything on stdout 43505 43506 put correctly sign with macro CHANGE_SIGN 43507 435081999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43509 43510 Ajoute la d��pendance de libmpfr.a pour le Makefile des tests. 43511 435121999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43513 43514 correctly handle case sizer=1 in mpfr_set_d 43515 43516 corrected allocated size in mpfr_round 43517 43518 make clean does not remove config.in any more 43519 435201999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43521 43522 Correction d'un UMR en inversant le while (sans incidence tres probablement). 43523 435241999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43525 43526 added four tests 43527 43528 adapted mpfr_set_d to case where allocated limbs > significant limbs 43529 43530 fixed bug for b=2^n and c very small 43531 435321999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43533 43534 Some limbs of the result where not set to zero as they should. 43535 435361999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43537 43538 added prototypes, and errors to stderr 43539 43540 binary file -> remove it 43541 43542 use PREC(x) instead of ABSSIZE(x) to get number of significant limbs 43543 adapted to different numbers of significant limbs for x and y 43544 43545 fixed pbs with ABSSIZE(x) wrt PREC(x) in mpfr_round 43546 43547 added pointer to exponent, removed test with sprintf 43548 43549 removed DEBUG stuff 43550 43551 use PREC(x) instead of ABSSIZE(x) to get the number of significant limbs 43552 43553 do 10^6 tests if no argument 43554 435551999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43556 43557 J'avais oublie -g... 43558 43559 Ajoute des flags de paranoiaque schizophrene. 43560 435611999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43562 43563 now prints nothing with no argument 43564 43565 added texp and tdiv_ui 43566 43567 test file for div_ui, initial revision 43568 43569 commented out "avant arrondi..." 43570 43571 clear res1/res2 43572 435731999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43574 43575 Patches an ABR. 43576 43577 Patch of an ABR. 43578 43579 Patch in the case n = 0. 43580 43581 Patch for a memory leak. 43582 435831999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43584 43585 added two tests for exact roots 43586 43587 removed DEBUG stuff and fixed pb with exact root and GMP_RNDZ 43588 435891999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43590 43591 Correction d'un ABR. 43592 435931999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43594 43595 added test for prec=53 bits, removed output for argc==1 43596 435971999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43598 43599 Initial revision. 43600 436011999-06-24 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43602 43603 Patched an Array Bound Read. 43604 43605 Corrected an Array Bound Read when all the bits are significative. 43606 436071999-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43608 43609 i -> s in tests on mpfr_cmp_si 43610 43611 fixed pb in mpfr_cmp_si_2exp (case b=0 or i=0) 43612 43613 & -> && 43614 43615 removed 3rd arg. of mpfr_set_prec 43616 43617 treats case b=c in mpfr_sub(a,b,c) 43618 43619 removed 3rd argument in mpfr_set_prec 43620 reallocates only when more limbs are needed 43621 43622 removed 3rd arg. of mpfr_set_prec 43623 43624 added some mpfr_clear's that were missing 43625 43626 removed 3rd argument from mpfr_set_prec 43627 43628 removed 3rd argument of mpfr_set_prec 43629 43630 changed prototype of mpfr_set_prec (no rounding mode needed any more) 43631 43632 added test for case of missing exponent 43633 and if one argument, print it as a double 43634 43635 fixed bug when exponent was missing (wrong result when part before 43636 binary point is not zero) 43637 43638 added tests from JM Muller and V Lefevre 43639 436401999-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43641 43642 corrected bad case in mpfr_can_round_raw where rnd1=GMP_RNDN 43643 and err is a multiple of BITS_PER_MP_LIMB (was modifying an 43644 extra limb perhaps not allocated) 43645 436461999-06-23 Sylvie Boldo <sylvie.boldo@inria.fr> 43647 43648 qq bugs d'arrondis 43649 436501999-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43651 43652 added exp and div_ui 43653 43654 added test of exp(Pi*sqrt(163)/3)-640320 [texp 0.0 prec] 43655 43656 test file for mpfr_exp, initial revision 43657 43658 added two tests 43659 43660 removed printf's and added one test for leading '+' 43661 43662 now allows leading '+' 43663 436641999-06-23 Sylvie Boldo <sylvie.boldo@inria.fr> 43665 43666 nettoye 43667 436681999-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43669 43670 removed printf 43671 43672 removed printf's 43673 43674 added tests for large precision (tlog x prec rnd) 43675 43676 added test for exact division 43677 43678 mpfr_cmp -> mpfr_cmp2 43679 43680 removed printf, added exit on error 43681 43682 initial revision 43683 43684 cleaned local variables 43685 43686 changed prototype of mpfr_div (now returns int) 43687 43688 now deals correctly with exact division 43689 removed DEBUG stuff 43690 returns 0/1 according to exact division 43691 436921999-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43693 43694 fixed bug found by F. Rouillier: x * Z(2/x) -> 0 [carry from mpfr_round_raw] 43695 436961999-06-22 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43697 43698 Fill with 0 the part added in case of a larger reallocation. 43699 43700 Rajoute le bug report de Fabrice. 43701 437021999-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43703 43704 fixed bug in mpfr_can_round when prec or err are multiples of BITS_PER_MP_LIMB 43705 43706 added test to check sign of result 43707 43708 fixed bug: wrong sign when SIGN(a)<0 at beginning 43709 437101999-06-22 Sylvie Boldo <sylvie.boldo@inria.fr> 43711 43712 avec plein de cas d'erreurs 43713 43714 marche bien 43715 43716 Marche bien 43717 437181999-06-21 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43719 43720 Corrected prototype of mpfr_can_round_raw. 43721 43722 Various patches. 43723 43724 Added prototype for mpfr_can_round_raw 43725 43726 Added mpfr_can_round_raw ; mpfr_can_round just calls it. 43727 43728 Declaration mpfr_print_rnd_mode.c 43729 43730 print_rnd_mode.c -> mpfr_print_rnd_mode.c 43731 43732 Print the rounding mode. 43733 43734 Changement de semantique (plus d'arrondi) et alloc + free -> realloc. 43735 437361999-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43737 43738 initial revision 43739 43740 added one test 43741 43742 now deal with carry from mpfr_round_raw 43743 43744 fixed problem with count_leading_zeros undefined for 0 43745 43746 store computed value and try to reuse it for next calls 43747 43748 added test cn>= in mpfr_cmp2 43749 43750 added mpfr_sub_one_ulp 43751 437521999-06-18 Sylvie Boldo <sylvie.boldo@inria.fr> 43753 43754 tests par rapport aux doubles 43755 43756 pour decouvrir les erreurs 43757 43758 version qui marche 43759 437601999-06-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43761 43762 special cases NaN and 0 43763 43764 fixed a few errors 43765 437661999-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43767 43768 added tests for n=0 and d=0 43769 43770 added test for 0.0/1.0 43771 43772 SET_NAN(q) -> SET_NAN(Q) 43773 43774 added one exact root with rounding towards zero 43775 43776 added one test 43777 43778 added two tests 43779 43780 patch to detect exact roots (otherwise problem with rounding to zero) 43781 43782 changed way zero is represented : most sign. limb is zero 43783 43784 added special case for zero 43785 43786 special case for zero 43787 43788 special cases for NaN and zero 43789 43790 special case when one of the arguments is zero 43791 43792 added bug found by S. Boldo and fixed (pb in mpfr_round_raw2) 43793 43794 fixed bug in mpfr_round_raw2 which was returning other values than 0 or 1 43795 437961999-06-17 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43797 43798 Corrected a potential problem in add(a, a, a); 43799 43800 Corrected a potential problem in sub(a, a, a); 43801 438021999-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43803 43804 SET_NAN(x) -> SET_NAN(X) 43805 438061999-06-17 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43807 43808 Patch in cmp2 for some dirty cases (2^a + 2^b <-> 2^a + z, z << 2^a, b << a) 43809 438101999-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43811 43812 added test to check bug found by JL Remy 43813 43814 added TMP_DECL/TMP_MARK/TMP_FREE in mpfr_sub1 to deal with case 43815 where destination=source 43816 438171999-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43818 43819 Bug dans set_d(0) ; la mantisse n'est pas initialisee a 0 correctement. 43820 43821 Gere differemment les problemes d'egalite entre destinations et arguments. 43822 43823 Rajoute log.o et tlog 43824 43825 Vire fichier inutile. 43826 438271999-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43828 43829 added new tests 43830 43831 fixed bug for overlap=k*mp_bits_per_limb, k>=1 43832 438331999-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43834 43835 Vire Makefile de CVS. 43836 43837 Vire les Makefile de CVS. 43838 438391999-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43840 43841 added one test and random init. 43842 43843 added one test 43844 43845 added tests for cases where destination = source 43846 43847 cases NaN and destination=source 43848 43849 now iterates if one cannot round after 1st try, 43850 and deals with case destination = source 43851 43852 mpfr_can_round again and again 43853 43854 added case of NaN 43855 43856 added macro SET_ZERO 43857 43858 now allows destination = source 43859 438601999-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43861 43862 Vire les tests de cvs. 43863 438641999-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43865 43866 printf -> fprintf 43867 43868 error message when destination equals source (case not yet treated) 43869 43870 now uses the given rounding mode internally instead of always GMP_RNDZ 43871 43872 now rounding to nearest should be correct 43873 438741999-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43875 43876 Encore et toujours mpfr_can_round... 43877 43878 Nettoyage. 43879 43880 Patch pour mpfr_can_round. 43881 438821999-06-15 Sylvie Boldo <sylvie.boldo@inria.fr> 43883 43884 sans instructions de debuggage 43885 43886 rajout de log.o et tlog 43887 43888 rajout de tlog 43889 43890 ajout du log 43891 43892 *** empty log message *** 43893 43894 premiere version du log 43895 438961999-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43897 43898 now recognizes division by exact power of 2 43899 43900 added mpfr_cmp_[us]i_2exp 43901 43902 added mpfr_[us]i_2exp 43903 43904 added mpfr_cmp_[us]i_2exp 43905 439061999-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43907 43908 Correction de bug (pas msb normalise). 43909 439101999-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43911 43912 fixed mistake in error analysis (does not change code) 43913 439141999-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43915 43916 Ajout de random.o dans les objets. 43917 43918 random.c : engendre un mpfr_t dans [0, 1[. GH, 15/06 43919 TODO : un random qui engendre un mpfr_t avec exposant gaussien centre. 43920 439211999-06-15 Jean-Luc R��my <Jean-Luc.Remy@loria.fr> 43922 43923 changed return value to void 43924 439251999-06-14 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43926 43927 Ajoute les modes d'arrondi RNDN et RNDD. 43928 43929 Correction du prototype de mpfr_mul_ui 43930 43931 Correction du prototype de mpfr_mul_ui 43932 439331999-06-14 Sylvie Boldo <sylvie.boldo@inria.fr> 43934 43935 *** empty log message *** 43936 439371999-06-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43938 43939 added several files 43940 43941 added several prototypes 43942 43943 added set_z, add_one_ulp 43944 43945 added mpfr_get_d2 which only considers the mantissa 43946 43947 now uses mpfr_get_d2 (no side effect on arguments) 43948 43949 test file for mpfr_log2 43950 43951 test file for mpfr_set_z 43952 43953 test file for mpfr_pi 43954 43955 computes log(2) 43956 43957 add one ulp 43958 43959 set a mpfr from an integer 43960 43961 computes Pi to n bits 43962 439631999-06-14 Sylvie Boldo <sylvie.boldo@inria.fr> 43964 43965 *** empty log message *** 43966 439671999-06-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43968 43969 Initial revision of mpfr documentation 43970 439711999-06-10 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43972 43973 Patch d'un mpfr_set_d dans tsqrt.c ; GH, 100699 43974 43975 Patch d'un mpfr_set_d dans get_str.c ; GH, 100699 43976 43977 Tentative de configuration automatique, v. initiale. GH, 100699 43978 439791999-06-10 Sylvie Boldo <sylvie.boldo@inria.fr> 43980 43981 *** empty log message *** 43982 439831999-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43984 43985 added tout_str 43986 43987 Initial revision. 43988 43989 added out_str.c and pow.c 43990 43991 added proto for mpfr_pow_ui and mpfr_ui_pow_ui 43992 43993 Initial revision. 43994 43995 added include <stdio.h> (needed for FILE in mpfr.h) 43996 43997 added proto for mpfr_out_str 43998 43999 function to print a mpfr to a stream. Initial revision. 44000 44001 changed proto of mpfr_get_str: 2nd arg is mp_exp_t*, not char* 44002 44003 now conforms to the specification 44004 440051999-06-09 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 44006 44007 tset_i -> tset_si dans le Makefile de tests. 44008 44009 Version corrigee de mmpfr. 44010 44011 Makefile qui devrait fonctionner pour tous. 44012 44013 Correction de warnings dans tmul_2exp.c 44014 44015 Initial revision 44016