12023-01-06 Vincent Lefevre <vincent@vinc17.net> 2 3 Updated version to 4.2.0. 4 52023-01-05 Vincent Lefevre <vincent@vinc17.net> 6 7 [src/zeta.c] For s < 1/2, use mpfr_sinpi now that it is available. 8 9 This replaces the use of mpfr_sin with a multiplication by π and 10 resolves a potential (but very unlikely) underflow issue; a comment 11 is updated, with an explanation about that. 12 132023-01-05 Vincent Lefevre <vincent@vinc17.net> 14 15 Updated copyright notice for all the Makefile.am files. 16 17 To be similar to the other files, added: 18 * Contributed by the AriC and Caramba projects, INRIA. 19 * This file is part of the GNU MPFR Library. 20 21 (These Makefile.am files still have their special license.) 22 232023-01-05 Vincent Lefevre <vincent@vinc17.net> 24 25 Copyright notice update: added 2023. 26 27 Command used: 28 perl -pi -e 's/ (\d{4}-)?(2022)(?= Free Software)/ 29 " ".($1||"$2-").($2+1)/e' **/*(^/) 30 under zsh, reverting doc/texinfo.tex (copied from GNU Texinfo) 31 and the tools/mbench directory (not distributed with MPFR). 32 Removed 2022 from the example in the doc/README.dev file. 33 342023-01-04 Vincent Lefevre <vincent@vinc17.net> 35 36 [src/zeta.c] Updated a comment about mpfr_sinpi. 37 38 [doc/mpfr.texi] Updated the month. 39 402022-12-17 Vincent Lefevre <vincent@vinc17.net> 41 42 [tools/mpfrlint] Updated the __gmp_ test. 43 44 * No longer exclude '^tests/tabort_defalloc': this is no longer needed 45 since commit 41bed90365fd1296cd05f49c813ab0a0b151a62e in 2017. 46 * Exclude a new comment. 47 482022-12-15 Vincent Lefevre <vincent@vinc17.net> 49 50 [tests/tsprintf.c] Added a comment about a possible test failure. 51 52 In short, if the error is like 53 repl-vsnprintf.c:389: GNU MP assertion failed: len < total_width 54 this is a GMP (or MPIR) issue in __gmp_replacement_vsnprintf. 55 56 References: 57 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00001.html 58 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00027.html 59 https://gmplib.org/list-archives/gmp-bugs/2022-October/005200.html 60 612022-12-15 Vincent Lefevre <vincent@vinc17.net> 62 63 Documentation: update about requirements for building MPFR. 64 65 * doc/mpfr.texi: mentioned C++ compilers and the potential issue 66 with type punning via union. 67 * INSTALL: completed (0) to be similar to what doc/mpfr.texi says. 68 692022-12-15 Vincent Lefevre <vincent@vinc17.net> 70 71 [tools/update-version] Fixed replacements in "INSTALL". 72 73 Due to commit 4885b57add174f390eff29abe14d12fb5ebd6a61, only the first 74 of the 4 replacements in INSTALL was done. 75 762022-12-14 Vincent Lefevre <vincent@vinc17.net> 77 78 [configure.ac] Added a comment about a possible AM_PROG_AR failure. 79 80 The reason is that on some platforms, GMP chooses a non-default mode 81 (a.k.a. ABI). MPFR has some workaround thanks to GMP_CC and GMP_CFLAGS 82 provided by GMP, but this may not be sufficient, e.g. on power-aix. In 83 such a case, the user needs to either force GMP to use the default mode 84 or provide an AR variable for MPFR's configure; see INSTALL file. 85 862022-12-13 Vincent Lefevre <vincent@vinc17.net> 87 88 ChangeLog update with tools/update-changelog 89 90 [doc/README.dev] "To make a release": update. 91 92 [NEWS] Update for the 4.2.0 release: binary compatibility. 93 94 [doc/README.dev] "To make a release": update about <branch>-root tag. 95 96 [README] Updated URL of the README.dev file (for the 4.2 branch). 97 98 Updated version to 4.2.0-rc1. 99 100 ChangeLog update with tools/update-changelog 101 102 [src/Makefile.am] Updated -version-info to 8:0:2 for MPFR 4.2.0. 103 104 [manual] Section "API Compatibility": lexicographic order. 105 1062022-12-13 Vincent Lefevre <vincent@vinc17.net> 107 108 [NEWS,doc/mpfr.texi] Clarification for mpfr_pown. 109 110 Note: Though implemented as a macro, it is mainly documented as a 111 function (not as a macro) because it cannot be distinguished from 112 a function (for instance, one can take the function pointer). 113 1142022-12-13 Vincent Lefevre <vincent@vinc17.net> 115 116 [tests/tget_flt.c] Added a comment. 117 1182022-12-13 Vincent Lefevre <vincent@vinc17.net> 119 120 [doc/README.dev] Updated a pathname. 121 122 This should have been done with the source reorganization on 2010-08-17 123 (see commit a6c9580d75b967e0d121d606edf03515ada45a7a). 124 1252022-12-12 Vincent Lefevre <vincent@vinc17.net> 126 127 Updated doc/texinfo.tex to 2022-12-10.11 128 129 The only change concerning MPFR is that in the PDF manual, the 130 section titles in the table of contents are now clickable. 131 1322022-12-12 Vincent Lefevre <vincent@vinc17.net> 133 134 [tests/tstdint.c] Added missing conditional config.h inclusion. 135 136 The consequence of the missing inclusion is that on build systems that 137 need config.h (some MS Windows ones?), this test would be skipped. 138 1392022-12-12 Vincent Lefevre <vincent@vinc17.net> 140 141 [doc/README.dev] Clarification about the need of config.h inclusion. 142 143 [tests/tstdint.c] Updated comment. 144 1452022-12-12 Vincent Lefevre <vincent@vinc17.net> 146 147 [tests/tstdint.c] Added a comment. 148 149 In short, this test allows one to detect that mpfr.h can be included 150 without any other inclusion before. For instance, it can detect any 151 unprotected use of FILE in the mpfr.h header file. 152 1532022-12-12 Vincent Lefevre <vincent@vinc17.net> 154 155 [doc/mpfr.texi] Added comment about the update of the version string. 156 1572022-12-12 Vincent Lefevre <vincent@vinc17.net> 158 159 Revert "changed %.8e into %a to avoid potential decimal output bug" 160 161 This reverts commit e18ebe062042c01ad44b238df212f229bd251cd6. 162 163 We currently still support C90 (in particular, here this concerns 164 the C library of the platform). 165 1662022-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 167 168 changed %.8e into %a to avoid potential decimal output bug 169 170 (cf https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00015.html) 171 1722022-12-12 Vincent Lefevre <vincent@vinc17.net> 173 174 [src/mpfr-cvers.h] Added a comment about (major,minor) tests. 175 1762022-12-12 Vincent Lefevre <vincent@vinc17.net> 177 178 [tests/mpfr-test.h] Improved the change done a few hours earlier. 179 180 The code introduced by commit 558a246e612fa230623fb0dfa0570b1c626a103c 181 was changing the conditions under which IGNORE_CPP_COMPAT is defined 182 (to ignore -Wc++-compat with a GCC pragma). Let's simplify it by using 183 our __MPFR_GNUC() macro. The only possible change of behavior is that 184 this excludes Intel's compiler (which is probably better as testing 185 the GCC version on Intel's compiler doesn't make sense). 186 187 Note concerning the behavior of Intel icx 2021.3.0 under Linux: Before 188 the above commit, it was not excluded; but after this above commit, it 189 was excluded as it identifies itself as GCC 4.2.1 (like Clang). With 190 this new change, it is still excluded. Anyway, it ignores -Wc++-compat 191 and doesn't complain on the GCC pragmas, so the above choice currently 192 doesn't matter. 193 1942022-12-11 Vincent Lefevre <vincent@vinc17.net> 195 196 Avoid a testsuite build failure with GCC older than 4.6. 197 198 In tests/mpfr-test.h, we must not define IGNORE_CPP_COMPAT for 199 GCC < 4.6 as it does not allow "#pragma GCC diagnostic" inside 200 functions. Moreover, let's define it for all Clang versions, 201 including MS Windows (where __GNUC__ is not defined). 202 203 Changes based on information and a patch by Bruno Haible: 204 https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00007.html 205 2062022-12-09 Vincent Lefevre <vincent@vinc17.net> 207 208 [autogen.sh] Improved comment about the INSTALL file. 209 210 [autogen.sh] Updated comment about the INSTALL file. 211 2122022-12-07 Vincent Lefevre <vincent@vinc17.net> 213 214 [Makefile.am] Corrected a note about version-ext.sh in EXTRA_DIST. 215 216 In short, since commit a6e9d69047a358bfd1aaa1418d9999b8abe0bb62, 217 version-ext.sh should no longer be needed in EXTRA_DIST because 218 it will no longer be executed. But since this script is small, 219 we distribute it just in case it would be used. 220 2212022-12-06 Vincent Lefevre <vincent@vinc17.net> 222 223 Fixed version-ext.sh usage, avoiding "make check" failure and incorrect 224 version information. 225 226 The use of version-ext.sh could be incorrect when the MPFR source tree 227 was in a Git working tree: 228 * "make check" could fail in some cases, see the bug report by 229 Trevor Spiteri: 230 https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00000.html 231 * Version information output by "make check" could be incorrect. 232 233 Changes: 234 * tests/Makefile.am: For output_info, we now also check whether 235 $(top_srcdir)/.git is readable in order to avoid escaping the 236 MPFR source tree. In particular, if one extracts an MPFR tarball 237 within a Git working tree (e.g. after "make dist"), then running 238 "make check" in this extracted source tree will work as expected, 239 giving correct version information. 240 * tests/Makefile.am, version-ext.sh: Updated comments. In particular, 241 moved a comment from tests/Makefile.am to version-ext.sh; this should 242 have been done in commit 0d3abf10458ca4fdd26daa77a02f7f1f4e361deb, 243 i.e. when version-ext.sh was created. 244 2452022-12-06 Vincent Lefevre <vincent@vinc17.net> 246 247 [doc/mpfr.texi] Removed useless leading spaces in examples. 248 249 All examples should have at least one line that does not have 250 leading spaces. Texinfo already indents examples in all cases. 251 2522022-12-06 Vincent Lefevre <vincent@vinc17.net> 253 254 [doc/mpfr.texi] Removed useless single quotes in an example. 255 256 Texinfo changes these quotes to U+2019 RIGHT SINGLE QUOTATION MARK 257 with TeX output (PDF), and it is no part of ASCII, which might yield 258 issues in case of reuse in actual code. The subsequent example does 259 not use quotes, so let's do the same. 260 2612022-12-06 Vincent Lefevre <vincent@vinc17.net> 262 263 [doc/mpfr.texi] Updated the month. 264 2652022-12-06 Vincent Lefevre <vincent@vinc17.net> 266 267 [doc/mpfr.texi] Added a FIXME about the @need issue. 268 269 Context: 270 https://lists.gnu.org/archive/html/bug-texinfo/2022-11/msg00228.html 271 2722022-11-30 Vincent Lefevre <vincent@vinc17.net> 273 274 [doc/mpfr.texi] 2 replacements of ASCII "-" by @minus{}. 275 276 Note: these should be the last remaining issues with the minus sign. 277 2782022-11-30 Vincent Lefevre <vincent@vinc17.net> 279 280 [doc/mpfr.texi] 3 replacements of ASCII "-" by @minus{}. 281 2822022-11-28 Vincent Lefevre <vincent@vinc17.net> 283 284 [src/mpfr-impl.h] Added a comment for the umul_hi(h, x, y) macro. 285 286 Say that MPFR_NEED_LONGLONG_H needs to be defined to use it. 287 288 This macro is defined unconditionally (this is not an issue) because 289 MPFR_NEED_LONGLONG_H has been undefined earlier in mpfr-impl.h (why?), 290 so we can no longer test MPFR_NEED_LONGLONG_H. 291 2922022-11-28 Vincent Lefevre <vincent@vinc17.net> 293 294 Get rid of the _mulx_u64 intrinsic. 295 296 It was found that this intrinsic has issues with ICC, Cygwin, and more 297 generally, the Microsoft toolchain; even MPFR's strong detection at 298 configure time (an AC_RUN_IFELSE test) was not sufficient. Moreover, 299 _mulx_u64 is useless as umul_ppmm from mpfr-longlong.h does the same 300 thing from the spec point of view (and thus was used as the fallback). 301 So, if there is a reliable way to use the mulx instruction whenever 302 possible (including via compiler optimization and the use of __int128 303 when available, as done by GCC's _mulx_u64 implementation), this 304 should be done in the umul_ppmm definition. Alternatively, we could 305 redefine umul_ppmm for the use of __int128 when possible. 306 307 Context and references: 308 https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00008.html 309 https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00027.html 310 https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00030.html 311 https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00031.html 312 https://stackoverflow.com/a/54815033/3782797 313 314 * src: corrected the umul_hi(h, x, y) macro (the only code that was 315 using _mulx_u64) and moved it from invert_limb.h and invsqrt_limb.h 316 to mpfr-impl.h. 317 * tests/tversion.c: removed the output info about _mulx_u64. 318 * acinclude.m4: removed the check for _mulx_u64. 319 3202022-11-25 Vincent Lefevre <vincent@vinc17.net> 321 322 [NEWS] Added release name for 4.2.0: "fondue savoyarde". 323 324 mpfr-longlong.h update from the current GMP development code. 325 3262022-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 327 328 [doc/mini-gmp] updated svn revision to git revision 329 [tools/bench/README] likewise 330 3312022-11-23 Vincent Lefevre <vincent@vinc17.net> 332 333 [tools/build-patch] Update for patches generated by git. 334 335 Such patches are of the form 336 --- a/path/name 337 +++ b/path/name 338 so with need to use the -p1 patch option if the --- line 339 starts with "--- a/". 340 3412022-11-23 Vincent Lefevre <vincent@vinc17.net> 342 343 [tools/build-patch] Updated a comment for Git. 344 3452022-11-22 Vincent Lefevre <vincent@vinc17.net> 346 347 Fix mpfr_custom_get_kind() macro bug. 348 349 * src/mpfr.h: in the mpfr_custom_get_kind() macro, changed mpfr_ptr to 350 mpfr_srcptr for _x to agree with the function prototype, in order to 351 avoid a compilation failure of user code in some cases. This bug was 352 introduced by commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e, which 353 introduced the temporary variable _x to avoid an incorrect number of 354 evaluations of the x argument. 355 * tests/tstckintc.c: improved the tests to detect this bug. 356 357 This should fix mpfr bug #1. 358 359 Bug initially reported by FX Coudert: 360 https://github.com/CGAL/cgal/issues/7064 361 362 It affects Fedora Linux: 363 https://bugzilla.redhat.com/show_bug.cgi?id=2144197 364 3652022-11-17 Vincent Lefevre <vincent@vinc17.net> 366 367 ChangeLog update with tools/update-changelog 368 3692022-11-17 Vincent Lefevre <vincent@vinc17.net> 370 371 [doc/mpfr.texi] Changed a @need command due to a bug in @need. 372 373 A page break was introduced for "@need 800" while there was the 374 space for 12 lines of text + 3 paragraph skips, as seen after the 375 change. That's much more than the 8/10 in needed by "@need 800". 376 So the page break was incorrect! 377 3782022-11-17 Vincent Lefevre <vincent@vinc17.net> 379 380 [doc/mpfr.texi] Added @need commands to prevent page breaks. 381 3822022-11-17 Vincent Lefevre <vincent@vinc17.net> 383 384 [doc/mpfr.texi] Hack to improve TeX output (PDF). 385 386 Define a @fptt macro to fix the TeX output (PDF) issue mentioned 387 in commit 1877cf9aef96c2280aab60f67e5e7302676d199a (if the style 388 of HTML output is fixed to be more like TeX output, this code will 389 need an update). 390 3912022-11-17 Vincent Lefevre <vincent@vinc17.net> 392 393 [doc/mpfr.texi] Added a note about a TeX output (PDF) issue. 394 395 This affects "[]", which appears in the mpfr_sum and mpfr_dot 396 function prototypes. 397 3982022-11-16 Vincent Lefevre <vincent@vinc17.net> 399 400 Consistency: s/non(zero|positive|negative)/non-$1/ 401 402 Changed non(zero|positive|negative) to non-zero, etc. for consistency 403 (target files: src & tests directory, doc/README.dev, doc/mpfr.texi). 404 Did it this way because the former was in minority (21 vs 165) and 405 the IEEE 754-2019 standard uses a hyphen. 406 4072022-11-16 Vincent Lefevre <vincent@vinc17.net> 408 409 [doc/mpfr.texi] Final typographic and style corrections. 410 411 Actually a bit more than that, since this affected the textual part 412 of the PDF file (used for searching and copy-paste): the underscore 413 character needs to be in something like @code or @samp to be present 414 in this textual part. 415 4162022-11-16 Vincent Lefevre <vincent@vinc17.net> 417 418 Updated version to 4.2.0-dev with the new tools/update-version. 419 420 All the expected replacements have now *really* been done thanks to 421 commit a4dec8938b85afbca2d448ae2dd4e0d3ab72b00c. 422 4232022-11-16 Vincent Lefevre <vincent@vinc17.net> 424 425 [tools/update-version] Fixed replacements in "doc/mpfr.texi". 426 427 The change done in commits 4885b57add174f390eff29abe14d12fb5ebd6a61 428 and 7eda345244f503359d14cd5bae1ed42865d39ee8 was incorrect as there 429 are 2 identical replacements to do in "doc/mpfr.texi", not just one. 430 The previous code changed lines separately. But for the check of 431 failing replacements, a global change on the full file is needed; 432 thus the 2 identical replacements were expected to be done at the 433 same time, so that the "g" modifier is needed on the regexp. 434 4352022-11-15 Vincent Lefevre <vincent@vinc17.net> 436 437 Updated doc/texinfo.tex to 2022-11-13.08 438 439 [TODO] Added URL for the Clang multiprecision arithmetic builtins. 440 4412022-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 442 443 [TODO] add reference to __builtin_addcll 444 4452022-11-11 Vincent Lefevre <vincent@vinc17.net> 446 447 [doc/README.dev] "To make a release": mention the README file. 448 4492022-11-10 Vincent Lefevre <vincent@vinc17.net> 450 451 Updated version to 4.2.0-dev with the new tools/update-version. 452 453 All the expected replacements have now been done in doc/mpfr.texi, 454 thanks to commit 7eda345244f503359d14cd5bae1ed42865d39ee8. 455 4562022-11-10 Vincent Lefevre <vincent@vinc17.net> 457 458 [tools/update-version] Updated a replacement. 459 460 This was needed due to a change done on 2018-09-07 in doc/mpfr.texi 461 (commit 84796030c7c732e8e66e5e650ec929c541dd207f / SVN r13153), as 462 said in the previous commit. 463 4642022-11-10 Vincent Lefevre <vincent@vinc17.net> 465 466 [tools/update-version] Check for failing replacements. 467 468 This script currently fails due to a change done on 2018-09-07 in 469 doc/mpfr.texi (commit 84796030c7c732e8e66e5e650ec929c541dd207f / 470 SVN r13153), and this issue remained unnoticed until now, 471 in particular due to the absence of checking for failing 472 replacements. 473 474 The penultimate non-patchlevel release was done on 2017-12-25, i.e. 475 before this change, and no patchlevel releases have been done yet 476 for the latest release, so that no current releases are affected by 477 this issue, but the 4.1.1 release candidate is affected. 478 4792022-11-09 Vincent Lefevre <vincent@vinc17.net> 480 481 Updated doc/texinfo.tex to 2022-11-07.17 (from GNU Texinfo 7.0). 482 4832022-11-08 Vincent Lefevre <vincent@vinc17.net> 484 485 [doc/mpfr.texi] Updated comment about an issue with math operators. 486 487 [doc/mpfr.texi] Added a comment about an issue with math operators. 488 489 [doc/mpfr.texi] Another typographic improvement. 490 4912022-11-08 Vincent Lefevre <vincent@vinc17.net> 492 493 [doc/mpfr.texi] Added a comment for \mathop with a single character. 494 495 Workaround to avoid an alignment issue described at 496 https://tex.stackexchange.com/questions/41261/mathop-shifts-the-baseline-declaremathoperator-doesnt 497 when the math operator @EXP{} was just "E". 498 4992022-11-08 Vincent Lefevre <vincent@vinc17.net> 500 501 [doc/mpfr.texi] More typographic corrections and improvements. 502 503 Also did some changes to improve the consistency. 504 5052022-11-07 Vincent Lefevre <vincent@vinc17.net> 506 507 [doc/mpfr.texi] Added a comment (ref to the GNU Texinfo spacing bug). 508 5092022-11-07 Vincent Lefevre <vincent@vinc17.net> 510 511 [doc/mpfr.texi] More typographic corrections for math expressions. 512 513 * Note a spacing bug in texi2dvi from GNU Texinfo 6.8 with macros 514 (found while testing). 515 * Define macro @EXP (and \EXP in TeX). 516 * Typographic corrections for math expressions. 517 5182022-11-07 Vincent Lefevre <vincent@vinc17.net> 519 520 [doc/mpfr.texi] Added a comment. 521 522 [doc/mpfr.texi] Improved typography and English usage. 523 524 [doc/mpfr.texi] More documentation for the @m{T,N} macro. 525 5262022-11-04 Vincent Lefevre <vincent@vinc17.net> 527 528 [src/set_zero.c] IEEE 754 terminology in a comment. 529 5302022-11-04 Vincent Lefevre <vincent@vinc17.net> 531 532 [doc/mpfr.texi] Improved consistency about infinity and zero. 533 534 Note: one writes "+0", but "positive zero", not "plus zero", etc. 535 See the IEEE 754 standard. 536 5372022-11-03 Vincent Lefevre <vincent@vinc17.net> 538 539 [doc/mpfr.texi] Minor corrections related to infinity. 540 541 This completes commit 75041697429ba467c448195b4f0863d0eb92e20c 542 done in 2021-02. 543 5442022-11-03 Vincent Lefevre <vincent@vinc17.net> 545 546 [doc/mpfr.texi] Style corrections. 547 5482022-11-03 Vincent Lefevre <vincent@vinc17.net> 549 550 [doc/mpfr.texi] Style improvement for TeX (PDF) output. 551 552 For mpfr_acosu, mpfr_asinu, mpfr_atanu and mpfr_atan2u, make the style 553 similar to the one for mpfr_cosu, mpfr_sinu and mpfr_tanu. 554 5552022-11-03 Vincent Lefevre <vincent@vinc17.net> 556 557 [doc/mpfr.texi] More use of @tm (typographic corrections). 558 5592022-11-01 Vincent Lefevre <vincent@vinc17.net> 560 561 [doc/mpfr.texi] Updated the month. 562 563 [doc/mpfr.texi] Completed the description of the @mm macro. 564 5652022-11-01 Vincent Lefevre <vincent@vinc17.net> 566 567 [doc/mpfr.texi] Improved typography for the formatted output functions. 568 569 For what is displayed (or output text), @samp{...} should be used, 570 as already done in some cases (note: never enclose @samp{...} with 571 quotes as this is already done in the Texinfo processing). 572 5732022-11-01 Vincent Lefevre <vincent@vinc17.net> 574 575 [doc/mpfr.texi] Improved the readability of an example. 576 5772022-11-01 Vincent Lefevre <vincent@vinc17.net> 578 579 [doc/mpfr.texi] More typographic corrections for TeX (PDF) output. 580 581 * Define a @mm{T} macro to be used for math symbols outside of @m, 582 @tm, @code or similar (but not for the "+" in "C++"). 583 * Use this macro when applicable. 584 * Add missing @tm for some simple math expressions. 585 5862022-10-28 Vincent Lefevre <vincent@vinc17.net> 587 588 [doc/mpfr.texi] Added tm macro and improved math typography. 589 5902022-10-27 Vincent Lefevre <vincent@vinc17.net> 591 592 [tools/nightly-test] Corrections and cleanup. 593 594 In particular, reverted most changes done in SVN r9832 595 (commit 1ca64e34907c5a968ca7fcc3d22cdca2ede7f28b): 596 * switch back to /bin/sh (bash is not needed by this script); 597 * do not use --enable-decimal-float and --enable-float128 with 598 a C++ compiler as they are not supported (configure fails). 599 600 And for the "git clone" command: 601 * take the BRANCH argument into account; 602 * use --depth 1 to avoid an unnecessary full clone. 603 604 Better g++ detection (e.g. g++-12 or /usr/bin/g++, not just g++). 605 6062022-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 607 608 [tools/nightly-test] change to git 609 6102022-10-26 Vincent Lefevre <vincent@vinc17.net> 611 612 [doc/mpfr.texi] Cosmetic consistency change in the .texi source. 613 614 Let's use the same code for "start of header" and "end of header". 615 6162022-10-25 Vincent Lefevre <vincent@vinc17.net> 617 618 [doc/mpfr.texi] Updated @m{T,N} macro, with comments. 619 620 The @m{T,N} macro is used for math formatting and textual equivalent 621 (human-readable text). However, it was generating emphasis in HTML, 622 which was unexpected. This commit removes the use of @math for the 623 Info and HTML output (for Info, this does not change anything, and 624 for HTML, this removes the incorrect emphasis). It also updates the 625 documentation and adds a comment about the history of this macro and 626 various issues related to it. 627 6282022-10-24 Vincent Lefevre <vincent@vinc17.net> 629 630 Updated doc/texinfo.tex to 2022-10-18.18 631 632 Update from the texinfo Git repository. 633 * The generated mpfr.html and mpfr.info files remain the same. 634 * For mpfr.pdf, there are some spacing improvements. 635 6362022-10-11 Vincent Lefevre <vincent@vinc17.net> 637 638 [doc/mpfr.texi] Updated the month. 639 6402022-10-11 Vincent Lefevre <vincent@vinc17.net> 641 642 [doc/mpfr.texi] Fix formatting for mpfr_can_round. 643 644 Consistency changes and use of no-break space (@tie{}). 645 646 Note: Once @math{...} has been clarified/fixed, apply the suggestions 647 by Ivan Panchenko: 648 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html 649 6502022-10-11 Vincent Lefevre <vincent@vinc17.net> 651 652 [doc/mpfr.texi] Consistency correction for mpfr_get_str_ndigits. 653 654 Use @math{m} (instead of just m) as already used a bit earlier. 655 656 But the use of @math may need to be revised. See 657 https://lists.gnu.org/archive/html/bug-texinfo/2022-10/msg00045.html 658 6592022-10-11 Vincent Lefevre <vincent@vinc17.net> 660 661 [doc/mpfr.texi] Improved spacing. 662 663 2 changes suggested by Ivan Panchenko at 664 665 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html 666 667 but do not use @math{...} as with HTML output, it puts everything 668 in italics with <em class='math'>...</em>, which is incorrect for 669 things like digits. 670 671 However, this behavior of @math{...} is not what is documented in 672 the GNU Texinfo 6.8 manual, which says: 673 674 The '@math' command has no special effect on the Info output or (by 675 default) the HTML output, merely outputting the contents verbatim. 676 6772022-10-11 Vincent Lefevre <vincent@vinc17.net> 678 679 [doc/mpfr.texi] Added a comment about the use of @math{...}. 680 6812022-10-11 Vincent Lefevre <vincent@vinc17.net> 682 683 [doc/mpfr.texi] Fixed italicization for mpfr_eint. 684 685 An issue reported by Ivan Panchenko: 686 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html 687 688 I also had to fix the occurrences of k in @ifnottex for HTML. 689 6902022-10-11 Vincent Lefevre <vincent@vinc17.net> 691 692 Fixed some minor mistakes. 693 694 * Minor mistakes in doc/mpfr.texi reported by Ivan Panchenko: 695 https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html 696 (spacing and italicization not fixed yet). 697 * Fixed similar mistakes in the other files. 698 6992022-10-11 Vincent Lefevre <vincent@vinc17.net> 700 701 mpfrlint: updated text checking (spelling...) 702 7032022-10-05 Vincent Lefevre <vincent@vinc17.net> 704 705 ChangeLog update with tools/update-changelog 706 707 [tools/update-changelog] Use UTC to generate the ChangeLog file. 708 7092022-10-05 Vincent Lefevre <vincent@vinc17.net> 710 711 [tools/gitlog-to-changelog] Improve --strip-cherry-pick for this repository. 712 713 Remove all the cherry-pick information from what can be found in 714 the 4.1 branch. 715 7162022-10-05 Vincent Lefevre <vincent@vinc17.net> 717 718 [doc/README.dev] "To make a release": precision about the tag. 719 720 [doc/README.dev] "To make a release": correction about the tag. 721 722 [tests/tnrandom.c] Fixed compilation failure with mini-gmp. 723 7242022-10-05 Vincent Lefevre <vincent@vinc17.net> 725 726 [tools] Improvement for the ChangeLog generation. 727 728 * tools/gitlog-to-changelog: modified regexp for --strip-cherry-pick 729 to support some log message in the MPFR Git repository (currently, 730 only commit 4c5973c2f0153a3a4708cab79ed142e72c4a50eb, but similar 731 ones could occur in the future). 732 * tools/update-changelog: use this --strip-cherry-pick option. 733 7342022-10-05 Vincent Lefevre <vincent@vinc17.net> 735 736 [doc/README.dev] "To make a release": update for the ChangeLog file. 737 738 See commit 1dc281851408fc7d330576327545857c93392521 for the reason. 739 7402022-10-05 Vincent Lefevre <vincent@vinc17.net> 741 742 [doc/README.dev] "To make a release": update for abi-compliance-checker. 743 744 Added an example of use of build-multi and abi-compliance-checker 745 for the 4.1.1 release candidate. 746 7472022-10-05 Vincent Lefevre <vincent@vinc17.net> 748 749 Fix for "make dist" / "make distcheck" about ChangeLog regeneration. 750 751 The "ChangeLog: FORCE" rule in Makefile.am was incompatible with 752 GNU Automake's "make dist" / "make distcheck" because GNU Automake 753 creates a "distdir-am: $(DISTFILES)" rule, which was regenerating 754 the ChangeLog file in "make dist"; such a change is not allowed 755 (it fails with "make distcheck") and not wanted anyway. 756 Issue introduced by commit 52652c41978089be57aca658bacf19b758c73be4. 757 758 * Added tools/update-changelog sh script to update the ChangeLog file. 759 * Makefile.am: replaced the incorrect rule mentioned above by a rule 760 update-changelog to run tools/update-changelog; added a comment. 761 7622022-10-05 Vincent Lefevre <vincent@vinc17.net> 763 764 [doc/README.dev] "To make a release": update for abi-compliance-checker. 765 7662022-10-05 Vincent Lefevre <vincent@vinc17.net> 767 768 [doc/README.dev] "To make a release": update about build-multi. 769 770 Needed due to the switch from InriaForge to Inria GitLab. 771 7722022-10-04 Vincent Lefevre <vincent@vinc17.net> 773 774 [tests/tnrandom.c] Improved the support non-default seed. 775 776 As suggested by mpfrlint, use a different randstate rather than 777 re-seeding mpfr_rands (with a fixed seed). So the corresponding 778 test no longer needs to be at the end. 779 7802022-10-04 Vincent Lefevre <vincent@vinc17.net> 781 782 [tests/tnrandom.c] Added a comment for tnrandom with an argument. 783 784 This concerns a slowness of mpfr_clear() in the MPFR tests due to 785 the O(n) search in tests_memory_find(), used to detect memory leaks. 786 7872022-10-04 Vincent Lefevre <vincent@vinc17.net> 788 789 [tests/tnrandom.c] Support non-default seed (GMP_CHECK_RANDOMIZE). 790 791 This fixes a failure due to 4c5973c2f0153a3a4708cab79ed142e72c4a50eb 792 when GMP_CHECK_RANDOMIZE is set. 793 7942022-10-04 Vincent Lefevre <vincent@vinc17.net> 795 796 [doc/README.dev] "To make a release": added note about GMP_CHECK_RANDOMIZE. 797 7982022-10-03 Vincent Lefevre <vincent@vinc17.net> 799 800 [doc/update-faq] Ensure that the code is run from the doc directory. 801 802 [tools/coverage] Typo. 803 804 [doc/README.dev] Updated "To make a release". 805 806 Updated URLs. 807 808 Updated URLs. 809 810 Updated URLs. 811 8122022-10-03 Vincent Lefevre <vincent@vinc17.net> 813 814 [doc/README.dev] Corrected "To make a release". 815 816 The addition of the <branch>-root tag applies only after a branch 817 is created, i.e. for non-patchlevel releases (item 0). 818 8192022-09-14 Vincent Lefevre <vincent@vinc17.net> 820 821 Updated doc/texinfo.tex to 2022-09-14.01 822 823 Update from the texinfo Git repository. 824 * The generated mpfr.html and mpfr.info files remain the same. 825 * For mpfr.pdf, this version fixes all the issues I've reported. 826 8272022-09-09 Vincent Lefevre <vincent@vinc17.net> 828 829 [doc/README.dev] Updated "To make a release". 830 831 [src/mpfr-impl.h] Added TODO for MPFR_MAYBE_UNUSED. 832 8332022-09-07 Vincent Lefevre <vincent@vinc17.net> 834 835 [doc/README.dev] New C2x draft (N3054). 836 8372022-09-05 Vincent Lefevre <vincent@vinc17.net> 838 839 [doc/README.dev] Updated "To make a release" (about texinfo.tex). 840 841 [autogen.sh] Added a comment about files we handle in the repository. 842 8432022-09-05 Vincent Lefevre <vincent@vinc17.net> 844 845 [doc/.gitignore] Removed /texinfo.tex since it is in the repository. 846 847 doc/texinfo.tex was added to the Subversion repository on 2017-11-27 848 and the svn:ignore property should have been updated at this time, 849 but I forgot. 850 8512022-09-03 Vincent Lefevre <vincent@vinc17.net> 852 853 [tests/RRTest.c] Replaced "egrep" by "grep -E" in comment. 854 855 In the GNU grep 3.8 release notes: 856 The egrep and fgrep commands, which have been deprecated since 857 release 2.5.3 (2007), now warn that they are obsolescent and should 858 be replaced by grep -E and grep -F. 859 8602022-08-27 Vincent Lefevre <vincent@vinc17.net> 861 862 [doc/README.dev] Changed "trunk" (Subversion) to "master" (Git). 863 864 [doc/README.dev] New C2x draft (N3047). 865 8662022-08-26 Vincent Lefevre <vincent@vinc17.net> 867 868 [tools/announce-text] Updated key ID for the future releases. 869 8702022-08-19 Vincent Lefevre <vincent@vinc17.net> 871 872 [codespell.ignore] Ignore RO and SIZ (codespell 2.2.0). 873 874 Corrected spelling mistake found by codespell 2.2.0 875 8762022-08-16 Vincent Lefevre <vincent@vinc17.net> 877 878 Cleanup about decimal floating constants matching ".0d". 879 880 In general, the trailing 0 is not needed, and even not wanted 881 (this has the effect to decrease the quantum by 1 compared to the 882 "natural value"), though the quantum is not yet specified in MPFR. 883 884 In tests/tget_set_d64.c, kept this trailing 0 in mpfr_set_decimal64, 885 but added similar tests without this trailing 0. 886 8872022-08-08 Vincent Lefevre <vincent@vinc17.net> 888 889 version-ext.sh: replaced a remaining "sed" by "$SED". 890 891 Thanks to Trevor Spiteri for noticing that. 892 8932022-08-08 Vincent Lefevre <vincent@vinc17.net> 894 895 version-ext.sh: handle the case where no Git branches are found. 896 897 This should solve the issue reported on 2022-08-08 by Trevor Spiteri: 898 https://sympa.inria.fr/sympa/arc/mpfr/2022-08/msg00002.html 899 9002022-07-08 Vincent Lefevre <vincent@vinc17.net> 901 902 doc/mpfr.texi: Updated the month. 903 9042022-07-08 Vincent Lefevre <vincent@vinc17.net> 905 906 [manual] Added a note for mpfr_nexttoward (exceptions, sign of 0). 907 908 Also applies to mpfr_nextabove and mpfr_nextbelow, whose description 909 refers to mpfr_nexttoward. 910 911 See additional details in the comment in the src/next.c source. 912 9132022-07-08 Vincent Lefevre <vincent@vinc17.net> 914 915 [src/next.c] Updated comment (exceptions and sign of 0). 916 917 Concerned functions: mpfr_nexttoward, mpfr_nextabove, mpfr_nextbelow. 918 919 Clarification was needed due to the differences between the 920 IEEE 754-1985, IEEE 754-2008/2019 and ISO C99+ standards on 921 similar functions (nextafter, nextUp, nextDown). 922 9232022-07-06 Vincent Lefevre <vincent@vinc17.net> 924 925 [configure.ac] Update about GNU gold ld and LD_RUN_PATH. 926 927 * Comment update: added URL of the upstream bug report. 928 * Mention the GNU gold linker in the warning. 929 9302022-06-13 Vincent Lefevre <vincent@vinc17.net> 931 932 [README] Replaced "Subversion" by "Git". 933 934 [doc/README.dev] Completed the update for Git. 935 936 [doc/README.dev] Moved and clarified a paragraph about the tests. 937 9382022-06-11 Vincent Lefevre <vincent@vinc17.net> 939 940 Fixed tsprintf %a tests when GMP and libc produce different outputs. 941 942 With some 32-bit mingw-w64 implementations, the GMP and libc 943 formatted output functions produce different outputs for %a (this 944 is not completely specified by the C standard). In the MPFR tests 945 introduced by commit 22db634294c27eabbc0c55b04267d3ab5bc9a648 on 946 2022-05-19, the comparison is done between the MPFR result, which 947 is based on GMP, and the libc result; hence a failure. 948 949 So, changed the 4 concerned tests of tests/tsprintf.c to compare 950 the MPFR result with the GMP result (for the other tests on the 951 C native types, it is still better to compare MPFR with libc). 952 953 Bug report: 954 https://sympa.inria.fr/sympa/arc/mpfr/2022-06/msg00004.html 955 9562022-06-10 Vincent Lefevre <vincent@vinc17.net> 957 958 [tools/announce-text] Completed the update for Git. 959 960 [tools/announce-text] Check that one has an annotated tag at origin. 961 962 [tools/announce-text] Update. 963 964 [tools/announce-text] Minor git-related simplification. 965 966 [tools/announce-text] Started the update for Git. 967 968 [tools/announce-text] Removed code and text related to InriaForge (obsolete). 969 9702022-06-08 Vincent Lefevre <vincent@vinc17.net> 971 972 Updated www.open-std.org URLs: http → https. 973 9742022-06-07 Vincent Lefevre <vincent@vinc17.net> 975 976 [doc/README.dev] New C2x draft (N2912). 977 9782022-06-02 Vincent Lefevre <vincent@vinc17.net> 979 980 [doc/README.dev] Updated "To make a release". 981 982 This completes the update for Git and Inria GitLab. But the 983 tools/announce-text script has not been updated yet. 984 9852022-06-02 Vincent Lefevre <vincent@vinc17.net> 986 987 [tools/export-release] Completed the script. 988 989 Fix the timestamps so that each file or directory has a timestamp 990 corresponding to its last change. 991 9922022-06-02 Vincent Lefevre <vincent@vinc17.net> 993 994 Added tools/export-release sh script. 995 996 Export some release identified by a Git tag in order to get a tarball. 997 9982022-06-02 Vincent Lefevre <vincent@vinc17.net> 999 1000 [mbench] Updated Copyright lines. 1001 1002 Added tools/mbench/.gitignore file. 1003 1004 [mbench/Makefile] Added missing dependencies on timp.h 1005 10062022-06-02 Vincent Lefevre <vincent@vinc17.net> 1007 1008 [mbench/timp.h] Bug fix for "make rt" on 32-bit machines. Reindent. 1009 1010 For the code used when USE_CLOCK_MONOTONIC is defined ("make rt"): 1011 If both time_t (type of tv_sec) and long are 32-bit types, there was 1012 an overflow in the timp_rdtsc() macro, due to the multiplication of 1013 the tv_sec (coming from CLOCK_MONOTONIC, thus typically larger than 5) 1014 by the value 1000000000 (≈ 2^32 / 4.3) of type unsigned long, because 1015 this multiplication would be done on 32 bits. Changed the type of the 1016 constant to unsigned long long so that the operations are done with 1017 the target type unsigned long long (at least). 1018 10192022-06-02 Vincent Lefevre <vincent@vinc17.net> 1020 1021 [mbench] Removed trailing whitespace. 1022 10232022-06-01 Vincent Lefevre <vincent@vinc17.net> 1024 1025 [doc/README.dev] Updated "To make a release" (about ChangeLog). 1026 1027 ChangeLog update with "make ChangeLog" 1028 1029 [tools/ck-copyright-notice] Better indentation. 1030 1031 [tools/ck-copyright-notice] Support the future ChangeLog format. 1032 10332022-06-01 Vincent Lefevre <vincent@vinc17.net> 1034 1035 [tools/ck-copyright-notice] Better error handling. 1036 1037 Note: One currently gets a failure with the future ChangeLog format, 1038 obtained with gitlog-to-changelog (via "make ChangeLog"). 1039 10402022-06-01 Vincent Lefevre <vincent@vinc17.net> 1041 1042 Support ChangeLog regeneration from a Git working tree. 1043 1044 * Added tools/gitlog-to-changelog file from Gnulib. 1045 * Makefile.am: added a rule for the Changelog file. 1046 1047 Needed as the GNU MPFR repository has been converted to Git. 1048 1049 The '%B%n' format string is used rather than the default '%s%n%b%n' 1050 because Git's commit message convention is not always followed 1051 (in particular before the conversion of the repository to Git). 1052 1053 Note: In the future, if there is any change to do to a Git commit 1054 message (typo, etc.), the --amend option could be used. 1055 10562022-05-30 Vincent Lefevre <vincent@vinc17.net> 1057 1058 Started to update doc/README.dev for Git. 1059 10602022-05-19 Vincent Lefevre <vincent@vinc17.net> 1061 1062 [manual] Clarify the description of the formatted output functions. 1063 1064 Emphasize the fact that the conv specifier F is not supported, except 1065 for the type specifier R (for mpfr_t arguments). 1066 10672022-05-19 Vincent Lefevre <vincent@vinc17.net> 1068 1069 [src/vasprintf.c] Consistency with the non-support of %F by GMP. 1070 1071 The F conversion specifier as defined by the C standard is not 1072 supported by the GMP formatted output functions because it is 1073 already used as the type specifier for mpf_t (which comes before 1074 the conversion specifier). Let's take this fact into account. 1075 1076 Note: this conversion specifier is still allowed with MPFR numbers 1077 (e.g., "%RF") to avoid breaking the compatibility (it has never 1078 been an issue). 1079 10802022-05-19 Vincent Lefevre <vincent@vinc17.net> 1081 1082 [tests/tsprintf.c] native_types: added tests to differentiate %G from %g. 1083 1084 The tested value -1.25 had the same output -1.25 with %g and %G. 1085 Added 7.62939453125e-6 (= 2^(-17)), whose output by %g and %G has 1086 an exponent introduced by 'e' and 'E' respectively. 1087 10882022-05-19 Vincent Lefevre <vincent@vinc17.net> 1089 1090 [tests/tsprintf.c] native_types: added tests for %a, %A, %la, %lA 1091 10922022-05-19 Vincent Lefevre <vincent@vinc17.net> 1093 1094 [tests/tsprintf.c] Added/fixed native_types tests. 1095 1096 * Added tests of %E and %G. 1097 * Removed the test of %lF, which is not supported by GMP (and yields 1098 a heap buffer overflow, detected by AddressSanitizer): even though 1099 there would be no ambiguity in this particular case, it is not 1100 supported because the standard F conversion specifier isn't due to 1101 the use of the F type specifier for mpf_t. 1102 11032022-05-19 Vincent Lefevre <vincent@vinc17.net> 1104 1105 [tests/tsprintf.c] Correction for %la, %lA, %le, %lE, %lf, %lF, %lg, %lG 1106 1107 Reverted commit 2b60707d22717e0f582be5de680d7fa7004e2512 and added 1108 tests for the missing %lE, %lF, %lG in native_types, protected by 1109 a #if (see commit ecd3279f3dfd281fc8e51aac7509b76b27497a6c) as they 1110 may need an ISO C99 compiler. 1111 1112 Note: The test of %la and %lA was incorrect because the first digit 1113 is unspecified (and really depends on the C library). A test could 1114 be added in the future, perhaps also with a configure test, because 1115 the compiler may support ISO C99 but not the C library (there was 1116 an issue like that at least with old versions of Solaris). 1117 11182022-05-19 Vincent Lefevre <vincent@vinc17.net> 1119 1120 [tests/tsprintf.c] native_types: test %le, %lf, %lg only with C99+ 1121 1122 … since the l length modifier for the FP types (a, A, e, E, f, F, g, G 1123 conversion specifiers) has been added in ISO C99. 1124 11252022-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1126 1127 [tests/tsprintf.c] added tests for %la, %lA, %le, %lE, %lf, %lF, %lg, %lG 1128 11292022-05-19 Vincent Lefevre <vincent@vinc17.net> 1130 1131 [src/vasprintf.c] Bug fix for the l length modifier with FP type. 1132 1133 The l length modifier is now supported with the a, A, e, E, f, F, g, G 1134 conversion specifiers, as required by the ISO C standard on printf and 1135 other formatted output functions. As specified, it is just ignored. 1136 1137 For that, to improve code maintainability, the CASE_LONG_ARG() macro 1138 was simplified: 1139 * The c and s conversion specifiers are always supported by this 1140 macro (this is a potential fix for implementations with incomplete 1141 wide-character handling, without any guarantee to work). 1142 * A MPFR_RET_NEVER_GO_HERE() for unsupported conversion specifiers 1143 has been added (if specinfo_is_valid() is consistent with this 1144 macro, one should effectively never reach this case). 1145 11462022-05-19 Vincent Lefevre <vincent@vinc17.net> 1147 1148 [src/vasprintf.c] Made case ordering consistent (no change of behavior). 1149 1150 The "case" ordering in specinfo_is_valid() and in CONSUME_VA_ARG() for 1151 integer specifiers and for floating-point specifiers was not the same. 1152 Improved code readability by using the same order across the code 1153 (also OK with CASE_LONG_ARG()). 1154 11552022-05-19 Vincent Lefevre <vincent@vinc17.net> 1156 1157 [tests/tsprintf.c] native_types: test %le, %lf, %lg. 1158 1159 These tests are currently failing. Bug reported by Paul Zimmermann 1160 for %la (but %a and %la are not currently tested, because of their 1161 possible lack of support in the C library). 1162 11632022-05-19 Vincent Lefevre <vincent@vinc17.net> 1164 1165 [tests/tsprintf.c] native_types: same tests for i as for d. 1166 1167 [tests/tnrandom.c] With mini-gmp, disable the tests that check the values. 1168 1169 [acinclude.m4] Added a comment about the unreliable NAN != NAN check. 1170 11712022-05-19 Vincent Lefevre <vincent@vinc17.net> 1172 1173 [tests/cmp_str.c] In mpfr_cmp_str, check that s is a valid number. 1174 1175 In the tests, the string provided to mpfr_cmp_str is normally a 1176 valid number (the common use is to check that a result is equal to 1177 some hardcoded value given by a string). A string s that does not 1178 represent a valid number probably has a typo, and the consequence 1179 was that in such a case, any non-NaN result was regarded as correct. 1180 11812022-05-19 Vincent Lefevre <vincent@vinc17.net> 1182 1183 [tests/tsubnormal.c] Removed invalid testcase bug20220518. 1184 1185 The testcase bug20220518 added in 1186 commit 7640a832fbf0b7f9057889e076cf7f42fe4f8e58 1187 was invalid as the mpfr_subnormalize input was not in the current 1188 exponent range (it had exponent -1074 while emin = -1073). 1189 1190 As usual, inputs outside the current exponent range are not supported 1191 (the mpfr_subnormalize description in the manual is explicit: 1192 "The subnormal exponent range is from ‘emin’ to ‘emin+PREC(X)-1’."). 1193 Supporting values outside the current exponent range is not needed 1194 in practice (see examples in the manual). 1195 11962022-05-19 Vincent Lefevre <vincent@vinc17.net> 1197 1198 [tests/tsubnormal.c] Code style in coverage(). 1199 1200 [tests/tsubnormal.c] Added missing cleanup at the end of bug20220518. 1201 1202 [tests/tsubnormal.c] Simplified bug20220518. 1203 1204 [tests/tsubnormal.c] C90 compatibility. 1205 12062022-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1207 1208 [tests/tsubnormal.c] added test case that exhibits a bug in mpfr_subnormalize 1209 [src/subnormal.c] fixed typo 1210 12112022-05-18 Vincent Lefevre <vincent@vinc17.net> 1212 1213 [tests/tnrandom.c] Check some mpfr_nrandom values to detect changes. 1214 1215 The values should be the same on different machines and with 1216 different MPFR versions (or this would be an ABI change). 1217 12182022-05-17 Vincent Lefevre <vincent@vinc17.net> 1219 1220 For version-ext.sh, use "$SED" instead of "sed". 1221 1222 * tests/Makefile.am: pass $SED to version-ext.sh. 1223 * version-ext.sh: use $SED (default to "sed"). 1224 12252022-05-17 Vincent Lefevre <vincent@vinc17.net> 1226 1227 Fixed version-ext.sh when in an origin/* remote branch. 1228 12292022-05-13 Vincent Lefevre <vincent@vinc17.net> 1230 1231 Tests: the check of subnormal support is done when running the tests. 1232 1233 The check of support for double and float subnormals was done at 1234 configure time, but it could not be done when cross-compiling. 1235 Since it is useful only for the tests, it is better to do it when 1236 running the tests. 1237 1238 * tests/tests.c: added have_subnorm_dbl() and have_subnorm_flt() 1239 functions to check support for double and float subnormals; 1240 removed such a check from mpfr_test_init(). 1241 * tests/mpfr-test.h: declare these functions. 1242 * tests/tget_flt.c: use have_subnorm_flt() instead of HAVE_SUBNORM_FLT. 1243 * tests/tset_d.c, tests/tsprintf.c: removed the useless test of 1244 HAVE_SUBNORM_DBL (this was a minor optimization). 1245 * acinclude.m4: updated comment about the check of subnormal support; 1246 minor improvement in the check for float subnormals. 1247 Note: keep the check just for build information (it might be useful 1248 for debugging or in case of a related bug report). 1249 * tools/mpfrlint: check that the HAVE_SUBNORM_* macros are not used. 1250 12512022-05-13 Vincent Lefevre <vincent@vinc17.net> 1252 1253 [acinclude.m4] Updated comment about the check of subnormal numbers. 1254 1255 * Removed text about DBL_HAS_SUBNORM and FLT_HAS_SUBNORM (which 1256 was added in commit 3ee30bcf34bfb5d042e5a1aa9b7cf8a42b51cb91 1257 on 2019-10-01) since these macros should be made obsolescent: 1258 https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2981.htm 1259 And their use would be incorrect in C++ (different meaning): 1260 https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2988.pdf 1261 * A bit more details. 1262 * Added a FIXME for better cross-compiling support. 1263 12642022-05-10 Vincent Lefevre <vincent@vinc17.net> 1265 1266 doc/mpfr.texi: Updated the month. 1267 1268 [NEWS] Mention the fixes of the macros of the custom interface. 1269 12702022-05-10 Vincent Lefevre <vincent@vinc17.net> 1271 1272 Improved 2 macros of the custom interface and updated manual. 1273 1274 * src/mpfr.h: The mpfr_custom_init() and mpfr_custom_move() macros 1275 could not be used in contexts where an expression was expected. 1276 This limitation was not necessary and is now removed. 1277 * doc/mpfr.texi: In commit 743a63c480318f60ac2a953007bac08f37b7d71d, 1278 the manual was clarified about the macros of the custom interface, 1279 i.e. behaving like macros, which may evaluate arguments multiple 1280 times or none. This was incomplete and error prone, in addition 1281 to being undocumented in the current MPFR versions. Almost all 1282 issues have now been fixed (the only minor limitation is that the 1283 mpfr_custom_init_set() macro is not usable in contexts where an 1284 expression is expected, but this cannot yield unnoticed bugs). 1285 So, changed the manual to reflect these fixes and added an item 1286 in Section "API Compatibility" (also removed an obsolete comment 1287 about that from src/mpfr.h). 1288 12892022-05-08 Vincent Lefevre <vincent@vinc17.net> 1290 1291 Improved a comment. 1292 12932022-05-06 Vincent Lefevre <vincent@vinc17.net> 1294 1295 [doc/README.dev] Added text about tests of function-like macros. 1296 12972022-05-06 Vincent Lefevre <vincent@vinc17.net> 1298 1299 In comments, changed "stack interface" to "custom interface". 1300 1301 * src/mpfr.h: changed "stack interface" and "mpfr_stack interface" 1302 to "(the) custom interface". 1303 * src/stack_interface.c: changed "mpfr_stack" to "custom interface". 1304 1305 The mpfr_stack_ prefix was changed to mpfr_custom_ in 2005 1306 (see commit 0a010e55364d1cc3681273eee70c91dab0a61946) and 1307 the MPFR manual says "Custom Interface". 1308 13092022-05-06 Vincent Lefevre <vincent@vinc17.net> 1310 1311 Other corrections about the custom interface. 1312 1313 This time, the build of tstckintc was failing with "gcc -Wc++-compat" 1314 because __cplusplus is not defined. 1315 1316 * tests/tstckintc.c: use the same solution as already done in 1317 tcopysign.c (commit 3dbf3387669030b264317202806fc3d938704618), 1318 i.e. ignore -Wc++-compat with "GCC diagnostic" pragmas when 1319 testing with void * arguments. 1320 Also simplified the code thanks to the VOIDP_CAST macro that 1321 was introduced at that time (cast to void * except in C++): 1322 commit 9076e47ceb41c60cab526870757f2098ced5c26d. 1323 1324 Everything should now be OK. 1325 13262022-05-06 Vincent Lefevre <vincent@vinc17.net> 1327 1328 Other corrections about the custom interface. 1329 1330 In C++, implicit pointer conversions are forbidden. This made the 1331 build of tstckintc fail with g++ and -DMPFR_USE_NO_MACRO in CFLAGS. 1332 1333 * src/mpfr.h: do not attempt to support implicit pointer conversions 1334 with a C++ compiler in the macros, since this is not supported by 1335 the functions, i.e. removed 2 useless casts; this is a bit like the 1336 code like before commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e. 1337 * tests/tstckintc.c: test a "void *" argument instead of mpfr_ptr only 1338 in C, not C++ (which cannot work if -DMPFR_USE_NO_MACRO is used). 1339 Note: for newx and newx2, revert to the code that was before the 1340 commit mentioned above. 1341 13422022-05-06 Vincent Lefevre <vincent@vinc17.net> 1343 1344 Testsuite: C++11 compatibility (GCC's -Wliteral-suffix). 1345 1346 With "g++ -Werror", several .c files in the "tests" directory were 1347 yielding 1348 1349 error: invalid suffix on literal; C++11 requires a space between 1350 literal and string macro [-Werror=literal-suffix] 1351 13522022-05-06 Vincent Lefevre <vincent@vinc17.net> 1353 1354 Fixed build failure of user code using mpfr_custom_get_kind() / g++. 1355 1356 * src/mpfr.h: added missing cast in the mpfr_custom_get_kind() macro 1357 (invalid C++ code, but this is in a GNU __extension__ block, thus 1358 unfortunately, it was not detected by "gcc -Werror=c++-compat"; 1359 see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105499>). 1360 1361 Bug introduced in commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e. 1362 13632022-05-05 Vincent Lefevre <vincent@vinc17.net> 1364 1365 Fixed issues with the macro versions of the custom interface. 1366 1367 * src/mpfr.h: fixed issues with the mpfr_custom_* macros: 1368 - a "void *" argument instead of mpfr_ptr could make the 1369 compilation fail (with the function, the conversion is 1370 implicit, thus this should be accepted by the macro); 1371 - some arguments could be evaluated 0 times, which is wrong 1372 if their evaluation has side effects. 1373 * tests/tstckintc.c: added various tests to check these kinds 1374 of issues. 1375 13762022-05-05 Vincent Lefevre <vincent@vinc17.net> 1377 1378 Avoid a -Wsign-conversion warning that could occur in user code. 1379 1380 Issue reported by Andreas Enge concerning PariTwine. 1381 1382 * src/mpfr.h: added a cast in the mpfr_custom_get_size() macro so that 1383 a size_t * size_t product is done instead of mpfr_prec_t * size_t 1384 (where mpfr_prec_t is signed and size_t is unsigned, triggering a 1385 warning when GCC's -Wsign-conversion is used). 1386 13872022-05-05 Vincent Lefevre <vincent@vinc17.net> 1388 1389 Fixed mpfr_custom_get_size() macro and added non-regression test. 1390 1391 * src/mpfr.h: added missing cast in mpfr_custom_get_size() macro. 1392 * tests/tstckintc.c: added testcases (would fail on LP64 platforms). 1393 13942022-04-22 Vincent Lefevre <vincent@vinc17.net> 1395 1396 [mpfr-impl.h] Rounding mode macros: added assertion; updated comments. 1397 13982022-04-22 Vincent Lefevre <vincent@vinc17.net> 1399 1400 Updated TODO to improve mpfr_pow_si/sj for negative n. 1401 1402 I thought that there would be some drawbacks with the underflow 1403 by computing the power before the division, but this actually 1404 seems to be more or less equivalent (mpfr_pow_general is already 1405 used for MPFR_RNDN). 1406 1407 Also, removed the suggestion with rescaling as this may not be 1408 possible for large values of n compared to the maximum exponent. 1409 14102022-04-17 Vincent Lefevre <vincent@vinc17.net> 1411 1412 Corrected comment about the ".POSIX" line in all Makefile.am files. 1413 14142022-04-08 Vincent Lefevre <vincent@vinc17.net> 1415 1416 [TODO] Added idea of implementation for to_chars. 1417 14182022-04-07 Vincent Lefevre <vincent@vinc17.net> 1419 1420 [manual] For sqrt and rec_sqrt, mention the relation with rootn. 1421 1422 Updated TODO about rootn (now that mpfr_rootn_si is implemented). 1423 14242022-04-06 Vincent Lefevre <vincent@vinc17.net> 1425 1426 [src/pow_si.c] Added a static assertion and comments about code improvement. 1427 14282022-04-06 Vincent Lefevre <vincent@vinc17.net> 1429 1430 [src/log_ui.c] Updated comments to better understand that the code is correct. 1431 1432 Note: these are the same as in the 4.1 branch (commit 8f357dd48). 1433 So the ULONG2LONG macro was not necessary, but let's keep it for 1434 maintainability. This does not change for GCC and Clang. But tcc 1435 even generates shorter x86_64 code with this macro. 1436 14372022-04-06 Vincent Lefevre <vincent@vinc17.net> 1438 1439 [tests/tpow.c] Improved/added bad_cases tests of mpfr_pow_ui/si (x^n). 1440 1441 * For n odd, generate negative values y (thus x) with a probability 1442 1/2 (instead of a very low probability), as there is no reason to 1443 favor positive values in this case. 1444 * Added bad_cases tests of mpfr_pow_si with n negative (with the help 1445 of mpfr_rootn_si). This was the TODO from commit 58fc9fb0e. 1446 14472022-04-06 Vincent Lefevre <vincent@vinc17.net> 1448 1449 [tests] In some bad_cases messages, output the name of the function. 1450 1451 This is useful for tests with several bad_cases invocations, 1452 such as tpow, troot and trootn_si. 1453 14542022-04-06 Vincent Lefevre <vincent@vinc17.net> 1455 1456 [tests/{troot,trootn_si}.c] Added a comment about bad_cases. 1457 14582022-04-05 Vincent Lefevre <vincent@vinc17.net> 1459 1460 Added /trootn_si to tests/.gitignore 1461 14622022-04-05 Vincent Lefevre <vincent@vinc17.net> 1463 1464 src/root.c: for mpfr_rootn_si with k = -2, use mpfr_rec_sqrt. 1465 1466 The mpfr_rec_sqrt code is faster than the generic mpfr_rootn_si code 1467 for k = -2. 1468 1469 Also added a TODO: if MPFR_WANT_ASSERT >= 2, do both computations 1470 and compare the results. 1471 14722022-04-05 Vincent Lefevre <vincent@vinc17.net> 1473 1474 tests/trootn_si.c: fixed typo in error messages. 1475 14762022-04-05 Vincent Lefevre <vincent@vinc17.net> 1477 1478 src/pow_ui.c: bug fix with mini-gmp and limb < unsigned long. 1479 1480 The initial precision was too small for large values of n. 1481 → tpow and trootn_si no longer fail. 1482 14832022-04-05 Vincent Lefevre <vincent@vinc17.net> 1484 1485 tests/tpow.c: better generic tests for mpfr_pow_ui and mpfr_pow_si. 1486 1487 Changed INT_RAND_FUNCTION, in particular to use randulong / randlong 1488 for mini-gmp, yielding an assertion failure when MINI_GMP_LIMB_TYPE 1489 is shorter than "long". 1490 14912022-04-05 Vincent Lefevre <vincent@vinc17.net> 1492 1493 mpfrlint: ignore mini-gmp in some test. 1494 14952022-04-05 Vincent Lefevre <vincent@vinc17.net> 1496 1497 mpfr_rootn_si(): bug fix for n = LONG_MIN; added generic tests. 1498 1499 * src/root.c: bug fix in mpfr_rootn_si() for n = LONG_MIN 1500 (integer overflow on -n, triggered by the generic tests). 1501 * tests/trootn_si.c: added generic tests. 1502 Note: they currently yield an assertion failure in pow_ui.c with 1503 mini-gmp when MINI_GMP_LIMB_TYPE is shorter than "long". 1504 15052022-04-05 Vincent Lefevre <vincent@vinc17.net> 1506 1507 [tests] Add randulong and randlong functions (useful with mini-gmp). 1508 1509 To get a random unsigned long, randlimb() is currently used, but with 1510 mini-gmp, a limb may be shorter than an unsigned long, so that one 1511 does not get all the possible "unsigned long" values. So these new 1512 randulong() and randlong() functions should now be used instead. 1513 15142022-04-05 Vincent Lefevre <vincent@vinc17.net> 1515 1516 Define a ULONG2LONG() macro to convert from unsigned long to long. 1517 1518 The conversion is done with the two's complement rule 1519 (i.e. modular arithmetic) in a portable way. 1520 * doc/README.dev: mention this macro (the technique was already 1521 described). 1522 * src/log_ui.c: use this macro instead of non-portable code due to 1523 the case n = LONG_MAX + 1. 1524 * src/mpfr-impl.h: define this macro. 1525 15262022-04-05 Vincent Lefevre <vincent@vinc17.net> 1527 1528 trootn_si.c: more mpfr_rootn_si tests on special values 1529 1530 doc/mpfr.texi: Updated the month. 1531 1532 New function mpfr_rootn_si 1533 15342022-04-04 Vincent Lefevre <vincent@vinc17.net> 1535 1536 [src/root.c] Updated a comment for mpfr_rootn_ui. 1537 1538 This comment was correct for mpfr_root, but I forgot to update it when 1539 changing this function to mpfr_rootn_ui (where this case differs) in 1540 commit 117c726a863e243634c8e5fbaae0265cac90a4a1. 1541 15422022-04-04 Vincent Lefevre <vincent@vinc17.net> 1543 1544 [tests/troot.c] Added a comment. 1545 1546 [tests/tpow.c] Added a TODO about tests with bad_cases. 1547 1548 [tests/tpow.c] Corrected messages. 1549 1550 [tests/tpow.c] For rootN, use mpfr_root and mpfr_rootn_ui randomly. 1551 15522022-04-04 Vincent Lefevre <vincent@vinc17.net> 1553 1554 [tests] Define RAND_BOOL() macro (random boolean) and use it. 1555 1556 In the tests directory: 1557 * mpfr-test.h: define RAND_BOOL() macro, with type int. 1558 * mpfr-test.h and various .c files: replace "randlimb () & 1" and 1559 "randlimb () % 2" by "RAND_BOOL ()". 1560 * tfprintf.c, tsprintf.c: use the same code as tprintf.c. 1561 15622022-04-04 Vincent Lefevre <vincent@vinc17.net> 1563 1564 In the tests, fixed "randlimb () % 1", mistaken for "randlimb () & 1". 1565 1566 This occurred only in tests/tfmma.c (5 occurrences), with the 1567 consequence of fewer cases of different kinds in the tests. 1568 1569 Such a kind of mistake is now detected by mpfrlint (commit 2a90f0c91). 1570 15712022-04-04 Vincent Lefevre <vincent@vinc17.net> 1572 1573 mpfrlint: detect "% 1" (modulo 1), which always gives 0. 1574 1575 This is probably mistaken for "& 1" or "% 2", as currently in 1576 "tests/tfmma.c". 1577 15782022-03-30 Vincent Lefevre <vincent@vinc17.net> 1579 1580 [TODO] Moved and updated item. 1581 1582 Since this is about functions in IEEE 754-2019, it makes more sense 1583 to have this item after the new functions of IEEE 754-2008. 1584 15852022-03-30 Vincent Lefevre <vincent@vinc17.net> 1586 1587 [TODO] Updated item (with non-public URL removed). 1588 15892022-03-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1590 1591 [TODO] added item 1592 15932022-03-29 Vincent Lefevre <vincent@vinc17.net> 1594 1595 Fixed version-ext.sh, in particular when used after "./autogen.sh". 1596 1597 After running autogen.sh, version-ext.sh incorrectly detected files 1598 as modified. Solution: refresh the git index before git diff-index. 1599 16002022-03-28 Vincent Lefevre <vincent@vinc17.net> 1601 1602 [acinclude.m4] Fix/improve MPFR_CHECK_LIBM and MPFR_CHECK_LIBQUADMATH. 1603 1604 With a GCC snapshot, -Werror=infinite-recursion was yielding an 1605 error in AC_CHECK_LIB for function "main". So, define MPFR_HAVE_LIB 1606 to be used instead of AC_CHECK_LIB when it is not needed to test any 1607 function. So, use it in MPFR_CHECK_LIBM and MPFR_CHECK_LIBQUADMATH. 1608 Also updated MPFR_CHECK_LIBM from the current libtool.m4 code, as 1609 done in the past. 1610 16112022-03-24 Vincent Lefevre <vincent@vinc17.net> 1612 1613 [get_d128.c] Updated FIXME comment. 1614 16152022-03-24 Vincent Lefevre <vincent@vinc17.net> 1616 1617 Added a TODO efficiency item about the size of the MPFR library. 1618 1619 Reduce the size of the MPFR library generated by GCC by avoiding 1620 operations on _Decimal128 in get_d128.c when its encoding is BID. 1621 16222022-02-18 Vincent Lefevre <vincent@vinc17.net> 1623 1624 [algorithms.tex] Cleanup: ^\infty → ^{\infty} 1625 1626 Using a command after _ (subscript) or ^ (superscript) is discouraged 1627 as it might break with future TeX versions, as already seen. 1628 Discussion: 1629 https://tug.org/pipermail/tex-live/2022-February/047780.html 1630 16312022-02-18 Vincent Lefevre <vincent@vinc17.net> 1632 1633 [algorithms.tex] Updated 2 URLs in comments (http → https). 1634 16352022-02-03 Vincent Lefevre <vincent@vinc17.net> 1636 1637 Updated a comment: added a ref to WG14/N2921 about large bit-fields. 1638 16392022-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1640 1641 [src/nrandom.c] added reference 1642 16432022-01-18 Vincent Lefevre <vincent@vinc17.net> 1644 1645 Updated the FIXME in acinclude.m4 for MPFR_CHECK_LIBM. 1646 16472022-01-18 Vincent Lefevre <vincent@vinc17.net> 1648 1649 Added FIXME in acinclude.m4 for MPFR_CHECK_LIBM. 1650 1651 With a GCC snapshot: 1652 error: infinite recursion detected [-Werror=infinite-recursion] 1653 16542022-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1655 1656 [TODO] removed an item (done in the web page for each release) 1657 16582022-01-14 Vincent Lefevre <vincent@vinc17.net> 1659 1660 doc/mpfr.texi: Updated the month. 1661 16622022-01-12 Vincent Lefevre <vincent@vinc17.net> 1663 1664 [tests] Added a comment about the output of pointer values. 1665 16662022-01-10 Vincent Lefevre <vincent@vinc17.net> 1667 1668 [doc/README.dev] Updated "To make a release". 1669 1670 Added a paragraph about config.guess and config.sub. 1671 16722022-01-06 Vincent Lefevre <vincent@vinc17.net> 1673 1674 Added a TODO to improve mpfr_pow_si/sj. 1675 1676 Computing POW_U before the division (instead of after) would reduce 1677 the error in the intermediate result. 1678 16792022-01-06 Vincent Lefevre <vincent@vinc17.net> 1680 1681 Updated a comment about a clang bug. 1682 1683 Updated a comment about a clang bug. 1684 16852022-01-06 Vincent Lefevre <vincent@vinc17.net> 1686 1687 Copyright notice update: added 2022. 1688 1689 Command used: 1690 perl -pi -e 's/ (\d{4}-)?(2021)(?= Free Software)/ 1691 " ".($1||"$2-").($2+1)/e' **/*(^/) 1692 under zsh. 1693 Removed 2021 from the example in the doc/README.dev file. 1694 16952021-12-26 Vincent Lefevre <vincent@vinc17.net> 1696 1697 README.dev: added C2x draft URL (N2731). 1698 1699 Corrected style (spurious space before comma). 1700 17012021-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1702 1703 gnu style 1704 17052021-11-25 Vincent Lefevre <vincent@vinc17.net> 1706 1707 Move code for git info to its own shell script "version-ext.sh". 1708 1709 * New version-ext.sh file: sh script to output MPFR version information 1710 for a Git working tree (old code from tests/Makefile.am). 1711 * tests/Makefile.am: replace some output_info code by the use of this 1712 script. 1713 * Makefile.am: add version-ext.sh to EXTRA_DIST as a consequence 1714 (a comment explains why). 1715 * README: list this new version-ext.sh file as a consequence. 1716 17172021-11-25 Vincent Lefevre <vincent@vinc17.net> 1718 1719 Another fix in the code for git info output by "make check". 1720 1721 tests/Makefile.am: in output_info, replaced "grep" by "$(GREP)". 1722 17232021-11-25 Vincent Lefevre <vincent@vinc17.net> 1724 1725 Fixed git info output by "make check". 1726 1727 tests/Makefile.am: when discarding excluded branches, the match should 1728 be done on the full branch name, not a subword; so, added the -x grep 1729 option (specified by POSIX). 1730 17312021-11-25 Vincent Lefevre <vincent@vinc17.net> 1732 1733 Updated tests_run_within_valgrind() comment in "tests/tests.c". 1734 17352021-11-23 Vincent Lefevre <vincent@vinc17.net> 1736 1737 README.dev: added note about the formally proven code and requirements. 1738 1739 Update of INSTALL file about CompCert. 1740 17412021-11-22 Vincent Lefevre <vincent@vinc17.net> 1742 1743 doc/mpfr.texi: Updated the month. 1744 17452021-11-22 Vincent Lefevre <vincent@vinc17.net> 1746 1747 For git info output by "make check", check for modifications. 1748 1749 tests/Makefile.am: updated output_info code to add " (modified)" 1750 when the working tree has been modified (compared to HEAD). 1751 17522021-11-22 Vincent Lefevre <vincent@vinc17.net> 1753 1754 Added info to doc/README.dev about <branch>-root tags. 1755 17562021-11-22 Vincent Lefevre <vincent@vinc17.net> 1757 1758 Removed a usless comment about git info output by "make check". 1759 1760 tests/Makefile.am: removed the comment about the unimplemented 1761 solution with possible *-branch tags (I think that it would not 1762 work well with merges). 1763 17642021-11-22 Vincent Lefevre <vincent@vinc17.net> 1765 1766 Improved code to output git info from "make check". 1767 1768 tests/Makefile.am: updated output_info code and comment. 1769 We now use <branch>-root tags to find to correct branch, by excluding 1770 branches created after the current HEAD. 1771 17722021-11-22 Vincent Lefevre <vincent@vinc17.net> 1773 1774 Fixed git info output by "make check". 1775 1776 tests/Makefile.am: in output_info, added a "|| true" on a shell command 1777 that may fail (grep with no matches). 1778 17792021-11-22 Vincent Lefevre <vincent@vinc17.net> 1780 1781 Added a FIXME for git info output by "make check". 1782 1783 The recent additions to tests/Makefile.am work well for master (and 1784 detached HEAD state), but not for the 4.1 branch, where $gitb gets 1785 empty, even though testing from an interactive shell (/bin/sh = dash) 1786 does not show any issue. 1787 17882021-11-22 Vincent Lefevre <vincent@vinc17.net> 1789 1790 Improved git info output by "make check". 1791 1792 tests/Makefile.am: modified output_info to output: 1793 * the detected branch, which also works in detached HEAD state 1794 (for old commits that can be found in multiple branches, 1795 "master" is prefered over the other branches); 1796 * the total commit count; 1797 * the commit id (hash). 1798 17992021-11-22 Vincent Lefevre <vincent@vinc17.net> 1800 1801 Add git info with "git describe" for "make check" (to be improved). 1802 1803 tests/Makefile.am: in output_info, add git info, but this does not 1804 output the branch. For instance, on master, one gets something like 1805 "4.1-root-491-g2933fad3a", and something similar on the 4.1 branch. 1806 As the solution needs to work in detached HEAD state, we may want to 1807 add *-branch tags to identify the first commit of a branch, and use 1808 git describe --match '*-branch' 1809 instead of 1810 git describe --match '*-root' 1811 18122021-11-15 Vincent Lefevre <vincent@vinc17.net> 1813 1814 Documentation: some improvements about the "decimal-point character". 1815 1816 * doc/README.dev: update about the use in the MPFR manual (mpfr.texi). 1817 * doc/mpfr.texi: minor correction. 1818 18192021-11-05 Vincent Lefevre <vincent@vinc17.net> 1820 1821 [doc/algorithms.tex] Add \pdfglyphtounicode{lscript}{2113} for \ell. 1822 1823 Otherwise one gets a grave accent (thus "s − l" cannot be found). 1824 If the "ℓ" is still an issue, one could alternatively use 1825 \pdfglyphtounicode{lscript}{006C} 1826 to get an "l" (but "l" also matches "ℓ" in xpdf and atril). 1827 18282021-11-05 Vincent Lefevre <vincent@vinc17.net> 1829 1830 [doc/algorithms.tex] Add some ToUnicode mappings. 1831 1832 This fixes some regressions compared to old LaTeX versions (in 2009). 1833 18342021-10-24 Vincent Lefevre <vincent@vinc17.net> 1835 1836 doc/mpfr.texi: Updated the month. 1837 18382021-10-24 Vincent Lefevre <vincent@vinc17.net> 1839 1840 mpfrlint: fixed git usage. 1841 1842 The change done in 52138701d9b920d608871b20d4bee30f59adede6 wasn't 1843 working when the latest commit wasn't on "doc/mpfr.texi". 1844 18452021-10-24 Vincent Lefevre <vincent@vinc17.net> 1846 1847 mpfrlint: update for git. 1848 1849 This is used to check that the doc/mpfr.texi UPDATED-MONTH value is 1850 up-to-date by comparing it with the date of the latest commit. 1851 18522021-10-24 Vincent Lefevre <vincent@vinc17.net> 1853 1854 In mpfr.texi, added a "@." to avoid a warning from mpfrlint. 1855 1856 Note: This is not needed at the end of a paragraph like here, but 1857 this is a general warning, just in case text is added or moved. 1858 18592021-10-24 Vincent Lefevre <vincent@vinc17.net> 1860 1861 mpfr.texi cleanup: removed the obsolete @refill command. 1862 1863 This command was needed in the past, but it now generates a warning 1864 "@refill is obsolete" (as of Texinfo 6.8 - 2021-07-03). 1865 It is no longer needed, as least since Texinfo 4.2: 1866 https://ftp.gnu.org/old-gnu/Manuals/texinfo-4.2/html_node/Refilling-Paragraphs.html 1867 18682021-10-19 Vincent Lefevre <vincent@vinc17.net> 1869 1870 Added .mailmap file. 1871 18722021-10-17 Vincent Lefevre <vincent@vinc17.net> 1873 1874 Added a TODO/FIXME to add Git information to "make check". 1875 1876 Partial update of doc/README.dev due to the migration to Inria GitLab. 1877 1878 Updated README due to the migration to Inria GitLab. 1879 18802021-09-27 Vincent Lefèvre <vincent@vinc17.net> 1881 1882 [src/mparam_h.in] Updated comment about GCC. 1883 18842021-09-24 Vincent Lefèvre <vincent@vinc17.net> 1885 1886 [INSTALL] Update about MinGW: the old mingw.org website no longer 1887 exists, and MinGW has actually been replaced by Mingw-w64, which 1888 is for both 32-bit and 64-bit Windows. 1889 1890 [README] Updated URLs. 1891 18922021-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1893 1894 missing url 1895 1896 added new preprint 1897 18982021-09-16 Vincent Lefèvre <vincent@vinc17.net> 1899 1900 [doc/mpfr.texi] Updated the month. 1901 19022021-09-16 Vincent Lefèvre <vincent@vinc17.net> 1903 1904 [doc/mpfr.texi] Corrected garbled mpfr_set* description. 1905 1906 Thanks to Rob for noticing: 1907 https://sympa.inria.fr/sympa/arc/mpfr/2021-09/msg00003.html 1908 1909 The cause is a sentence that was inserted at the wrong place in r8225 1910 (2012-06-25). 1911 19122021-09-14 Vincent Lefèvre <vincent@vinc17.net> 1913 1914 [src/inp_str.c] Added a FIXME on a deprecated use of ungetc. 1915 19162021-09-13 Vincent Lefèvre <vincent@vinc17.net> 1917 1918 Autoconf / AX_PTHREAD related update and cleanup. 1919 1920 * m4/ax_pthread.m4: update to AX_PTHREAD 31, fixing a change 1921 from AX_PTHREAD 29, which has eventually been regarded as 1922 a bug (workaround in r14481). 1923 * configure.ac: removed the now unneeded AC_CANONICAL_TARGET; 1924 updated the corresponding comment. 1925 19262021-09-09 Vincent Lefèvre <vincent@vinc17.net> 1927 1928 [TODO] More about intrinsics (e.g. _addcarry_u64). 1929 1930 [TODO] + use intrinsics when available (needs a configure test). 1931 19322021-09-07 Vincent Lefèvre <vincent@vinc17.net> 1933 1934 [tests/tests.c] In a comment with a GMP_CHECK_RANDOMIZE value, mention 1935 the SVN revision and date, as this value may no longer be valid in the 1936 future (when tests are added or changed). 1937 1938 [tests/tests.c] Fixed bad_cases when y is ±0 (rare case). 1939 19402021-08-23 Vincent Lefèvre <vincent@vinc17.net> 1941 1942 [doc/README.dev] Updated/reduced note about MinGW and stdio. 1943 19442021-08-23 Vincent Lefèvre <vincent@vinc17.net> 1945 1946 [INSTALL] Updated information about MinGW and the formatted output 1947 functions (printf, etc.). 1948 1949 Thanks to Pali Rohár for the information about -std=c89. 1950 19512021-08-23 Vincent Lefèvre <vincent@vinc17.net> 1952 1953 [tests/tget_set_d128.c] Removed a useless C99 comment, which makes 1954 the MPFR build fail with "i686-w64-mingw32-gcc -std=c89" (e.g. via 1955 ./configure --host=i686-w64-mingw32, and -std=c89 in CFLAGS). 1956 1957 [tests/tsprintf.c] In locale_da_DK(), also try da_DK.utf8 (preferably): 1958 in Debian/unstable, da_DK no longer exists. 1959 19602021-08-20 Vincent Lefèvre <vincent@vinc17.net> 1961 1962 [doc/mpfr.texi] Updated the month. 1963 1964 [doc/mpfr.texi] Corrected latest change (typography). 1965 1966 [doc/mpfr.texi] Detail the mpfr_min and mpfr_max description. 1967 19682021-08-03 Vincent Lefèvre <vincent@vinc17.net> 1969 1970 [tests/tget_flt.c] Avoid a warning about unused function equal_flt 1971 when HAVE_SUBNORM_FLT is not defined. 1972 1973 [tests/tget_flt.c] Code style: replaced "… == 0" by "! …" on 1974 the Boolean _p functions. 1975 19762021-08-03 Vincent Lefèvre <vincent@vinc17.net> 1977 1978 [tests/tget_flt.c] Removed bug_icx (duplicate test). 1979 1980 What was tested was just mpfr_get_flt on a NaN mpfr_t. But this was 1981 already tested in main(). And one gets the same result and error with 1982 icx (without -fp-model=strict). Moreover, the old test was correctly 1983 protected by "#if !defined(MPFR_ERRDIVZERO)", needed because NaN is 1984 defined by 0.0 / 0.0. 1985 19862021-08-03 Vincent Lefèvre <vincent@vinc17.net> 1987 1988 [tests/tget_flt.c] In bug_icx: replaced mpfr_set_flt, whose float 1989 argument was yielding an underflow (not portable), by mpfr_set_si_2exp 1990 (it is mpfr_get_flt that is tested, not mpfr_set_flt). 1991 1992 [tests/tget_flt.c] Added FIXME for test added in r14552. 1993 1994 [tests/tget_flt.c] Portability correction. 1995 19962021-08-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 1997 1998 need -fp-model=strict for icx 1999 20002021-07-27 Vincent Lefèvre <vincent@vinc17.net> 2001 2002 [TODO] Mention "[[noreturn]]". 2003 20042021-07-15 Vincent Lefèvre <vincent@vinc17.net> 2005 2006 [src/ieee_floats.h] URL update (http → https). 2007 20082021-07-01 Vincent Lefèvre <vincent@vinc17.net> 2009 2010 [tools/mpfrlint] Detect when the return value of fclose() or fflush() 2011 is compared with -1 instead of EOF. 2012 20132021-06-30 Vincent Lefèvre <vincent@vinc17.net> 2014 2015 [tests/tprintf.c] Portability correction (EOF is not necessarily -1). 2016 20172021-06-21 Vincent Lefèvre <vincent@vinc17.net> 2018 2019 Punctuation (missing comma after "however"). 2020 2021 [doc/README.dev] No longer use /tmp in examples so that the reader is 2022 not encouraged to use it. Punctuation. 2023 20242021-06-08 Vincent Lefèvre <vincent@vinc17.net> 2025 2026 [acinclude.m4] Fixed subnormal detection (issue found with icx). 2027 20282021-06-03 Vincent Lefèvre <vincent@vinc17.net> 2029 2030 [tests/tget_d.c] Improved error messages. 2031 20322021-06-03 Vincent Lefèvre <vincent@vinc17.net> 2033 2034 [tests/tget_d.c] Error message when check_inf_nan() fails for NaN. 2035 2036 Note: With "icx -O2" (at least), 8 tests are now failing with 2037 Intel(R) oneAPI DPC++ Compiler 2021.2.0 (2021.2.0.20210317). 2038 But no failures when the compiler is invoked as "clang". 2039 20402021-06-02 Vincent Lefèvre <vincent@vinc17.net> 2041 2042 [doc/mpfr.texi] Updated the month. 2043 20442021-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2045 2046 [doc/mpfr.texi] some figures about slowdown with C++ interface 2047 20482021-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2049 2050 [tests/data/j1] added more tests 2051 2052 [tests/tests.c] fixed bug introduced in r13787, which invalidated data_check 2053 in some cases 2054 20552021-05-20 Vincent Lefèvre <vincent@vinc17.net> 2056 2057 [doc/mpfr.texi] Completed mpfr_fmodquo and mpfr_remquo description. 2058 2059 [src/rem1.c] Improved comments. 2060 20612021-05-17 Vincent Lefèvre <vincent@vinc17.net> 2062 2063 [tests/tsprintf.c] Cosmetic revert of blank line removal in r14519. 2064 20652021-05-17 Vincent Lefèvre <vincent@vinc17.net> 2066 2067 [src/vasprintf.c] Fixed buffer_cat: replaced incorrect assertion len > 0 2068 by a test. 2069 2070 Note that len == 0 is possible when outputting an integer 0 (either a 2071 native one or mpfr_prec_t) with precision field = 0. The consequence 2072 of this bug: 2073 * In debug mode (MPFR_ASSERTD assertion checking), one would get an 2074 assertion failure. 2075 * Otherwise, there should be no side effects since the code was valid 2076 for len == 0, possibly except with LTO (very unlikely, though). 2077 2078 This incorrect assertion was added on 2009-03-13 in r6099. 2079 20802021-05-17 Vincent Lefèvre <vincent@vinc17.net> 2081 2082 [tests/tsprintf.c] Similarly to r14514, added tests of native integer 0 2083 with precision field 0 (also yields a call to buffer_cat with len = 0). 2084 2085 [tests/tsprintf.c] For various test functions, changed the return type 2086 from int to void (when the value is never used). 2087 20882021-05-16 Vincent Lefèvre <vincent@vinc17.net> 2089 2090 [src/vasprintf.c] Updated comment about the output for the 'a'/'A' 2091 conversion specifier. 2092 2093 [doc/mpfr.texi] Formatted output functions (mpfr_*printf): completed 2094 the specification concerning the precision (this was needed because 2095 the conversion specifier 'b' does not exist in C). 2096 20972021-05-12 Vincent Lefèvre <vincent@vinc17.net> 2098 2099 [src/vasprintf.c] Added a comment about the output for the 'a'/'A' 2100 conversion specifier, which is completely unintuitive. FIXME? 2101 2102 [doc/mpfr.texi] Punctuation. 2103 2104 [tests/tsprintf.c] Added tests of specifier 'P' with precision field 0. 2105 21062021-05-11 Vincent Lefèvre <vincent@vinc17.net> 2107 2108 [TODO] More about mpfr_fda / mpfr_fds. 2109 2110 [TODO] + Fused divide-add and fused divide-subtract (mpfr_fda, mpfr_fds). 2111 21122021-05-03 Vincent Lefèvre <vincent@vinc17.net> 2113 2114 [doc/mpfr.texi,src/mpfr.h] Detail about the mpfr_pown implementation. 2115 21162021-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2117 2118 [NEWS] added missing mpfr_pown (alias for mpfr_pow_sj) 2119 2120 [manual] added mpfr_powm in NEWS 2121 (https://sympa.inria.fr/sympa/arc/mpfr/2021-05/msg00000.html) 2122 21232021-05-03 Vincent Lefèvre <vincent@vinc17.net> 2124 2125 [doc/mpfr.texi] Updated the month (due to r14505). 2126 21272021-04-30 Vincent Lefèvre <vincent@vinc17.net> 2128 2129 [src/sin.c] Added a TODO about range reduction. 2130 21312021-04-26 Vincent Lefèvre <vincent@vinc17.net> 2132 2133 [tests/tstrtofr.c] Check more infinity strings. 2134 21352021-04-26 Vincent Lefèvre <vincent@vinc17.net> 2136 2137 [doc] Update about "case insensitive" and issue with Turkish locales 2138 for "I" / "i". 2139 2140 * mpfr.texi: added "with the rules of the C locale" in the 2141 mpfr_strtofr description. 2142 * README.dev: completed information about Turkish locales. 2143 21442021-04-24 Vincent Lefèvre <vincent@vinc17.net> 2145 2146 [tests/tpowr.c] Added generic tests. 2147 2148 [src/exceptions.c] Corrected latest comment. 2149 21502021-04-23 Vincent Lefèvre <vincent@vinc17.net> 2151 2152 [src/exceptions.c] Replaced comment about logging (the issue was due to 2153 the mpfr_check_range macro). 2154 2155 [src/exceptions.c] Completed comment about a logging issue. 2156 2157 [src/exceptions.c] Added a comment about a logging issue. 2158 2159 [src/mpfr-impl.h] Logging: output the flags at "IN" and "OUT". 2160 2161 [tests/tsgn.c] Also test in a very reduced exponent range. 2162 2163 [tests/tsgn.c] Also test the flags. 2164 21652021-04-23 Vincent Lefèvre <vincent@vinc17.net> 2166 2167 [src/get_str.c] Fixed bug in mpfr_get_str_ndigits introduced in r14494. 2168 2169 Note: the issue (an uninitialized variable) was detected by GCC 6.5.0; 2170 recent GCC versions miss the -Wmaybe-uninitialized warning. 2171 21722021-04-23 Vincent Lefèvre <vincent@vinc17.net> 2173 2174 mpfr_get_str_ndigits: added an assertion / exploitable compiler hint. 2175 2176 [src/get_str.c] Improved mpfr_get_str_ndigits code structure. 2177 21782021-04-23 Vincent Lefèvre <vincent@vinc17.net> 2179 2180 In various functions, use mpfr_equal_p() instead of mpfr_cmp() == 0. 2181 2182 Note: In these cases, the test should be false if one of the arguments 2183 is NaN (it is not always clear whether NaN is impossible, but just in 2184 case, mpfr_equal_p is safer, in particular if the code around changes; 2185 and this is more readable too). 2186 21872021-04-23 Vincent Lefèvre <vincent@vinc17.net> 2188 2189 [src/get_str.c] Use mpfr_equal_p() instead of mpfr_cmp() == 0. 2190 2191 [tests] Added tpowr to svn:ignore property. 2192 21932021-04-23 Vincent Lefèvre <vincent@vinc17.net> 2194 2195 Fixed bug in mpfr_get_str_ndigits. 2196 2197 * src/get_str.c: use MPFR_SAVE_EXPO_MARK / MPFR_SAVE_EXPO_FREE to fix 2198 2 issues in mpfr_get_str_ndigits: the inexact flag could be raised 2199 (bug reported by Pierre Chatelier[*]); undefined behavior in a very 2200 reduced exponent range. 2201 * tests/tget_str.c: check the above issues in the tests. 2202 2203 [*] https://sympa.inria.fr/sympa/arc/mpfr/2021-04/msg00000.html 2204 22052021-04-16 Vincent Lefèvre <vincent@vinc17.net> 2206 2207 [src/mpfr-impl.h] Added cast to int for __LINE__ in formatted output. 2208 2209 The standard just says that __LINE__ in an integer constant. So its 2210 type might be larger than int, even though the value is representable 2211 in an int (like in MPFR). This concerns logging code, only available 2212 for GCC compatible compilers, so that there should not be any issue 2213 without the cast, but just in case... 2214 22152021-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2216 2217 [tests/thypot.c] added one test 2218 22192021-03-19 Vincent Lefèvre <vincent@vinc17.net> 2220 2221 Added m4/ax_pthread.m4 file, and related updates. 2222 2223 Added m4/ax_pthread.m4 from 2224 https://github.com/autoconf-archive/autoconf-archive 2225 and updated: 2226 * acinclude.m4 (in particular, set CXX and CXXFLAGS) 2227 * doc/README.dev 2228 22292021-03-19 Vincent Lefèvre <vincent@vinc17.net> 2230 2231 [configure.ac] Avoid an issue with ordering of macros we don't use 2232 explicitly, which appears with ax_pthread.m4 29, i.e. with 2233 https://github.com/autoconf-archive/autoconf-archive/commit/2567e0ce0f3a11b535c6b527386197fb49ff172b 2234 22352021-03-18 Vincent Lefèvre <vincent@vinc17.net> 2236 2237 [acinclude.m4] Added a comment about AX_PTHREAD. 2238 22392021-03-18 Vincent Lefèvre <vincent@vinc17.net> 2240 2241 Get rid of obsolescent AC_HEADER_TIME. Cleanup about sys/time.h usage. 2242 2243 The AC_HEADER_TIME macro is obsolescent in autoconf 2.69 (2012), 2244 and autoconf 2.71 (2021) outputs a warning, which makes autogen.sh 2245 fail due to "--warnings=all,error", so let's avoid the warnings. 2246 This macro defines TIME_WITH_SYS_TIME, used only in tests/tests.c 2247 (but actually not needed). We actually have two cases: 2248 1. HAVE_GETTIMEOFDAY is defined: we use gettimeofday(), which 2249 needs <sys/time.h>. 2250 2. Otherwise: we use time(), which needs <time.h>. 2251 2252 Based on that, we can simplify the condition in tests/tests.c for 2253 the inclusion of time-related headers, and we no longer need to 2254 check the <sys/time.h> availability. If gettimeofday() is defined 2255 but <sys/time.h> is not available (which shouldn't occur), then 2256 the current gettimeofday() usage may be incorrect anyway. 2257 2258 Changes: 2259 * acinclude.m4: 2260 - no longer use AC_HEADER_TIME; 2261 - no longer check the sys/time.h header. 2262 * tests/tests.c: simplify the inclusion of time-related headers. 2263 22642021-03-18 Vincent Lefèvre <vincent@vinc17.net> 2265 2266 [tools/mpfrlint] Detect mpn_mul_n with identical 2nd and 3rd arguments, 2267 which can be replaced by the faster mpn_sqr. 2268 22692021-03-16 Vincent Lefèvre <vincent@vinc17.net> 2270 2271 Replaced "intensional" by "intentional" in comments. 2272 2273 Untabify and remove trailing spaces. 2274 22752021-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2276 2277 [src/rec_sqrt.c] replace a call to mpn_mul_n with identical arguments by 2278 a call to mpn_sqr + similar changes in other files 2279 (thanks Fredrik Johansson) 2280 2281 [tests/trec_sqrt.c] added timing test 2282 22832021-03-09 Vincent Lefèvre <vincent@vinc17.net> 2284 2285 [doc/mpfr.texi] Updated the month. 2286 2287 [src/mpfr.h] Comment: no need to write "user" with uppercase letters. 2288 22892021-03-08 Vincent Lefèvre <vincent@vinc17.net> 2290 2291 [tests/{tset_si.c,tset_sj.c}] Fix when -DMPFR_USE_NO_MACRO is used. 2292 2293 The mpfr_get_exp() function checks that the argument is a regular 2294 number, but the corresponding macro doesn't. The test code was 2295 calling mpfr_get_exp() on 0, thus failed with MPFR_USE_NO_MACRO 2296 defined. Here, the code was correct with the macro, because the 2297 value was not used for the particular case 0. 2298 2299 This is fixed by testing 0 earlier (and doing a goto, but the code 2300 has fewer tests and should be simpler to understand). Moreover, 2301 mpfr_get_exp has been replaced by MPFR_GET_EXP, so that the argument 2302 is checked with --enable-assert. 2303 23042021-03-08 Vincent Lefèvre <vincent@vinc17.net> 2305 2306 [tests/{texceptions.c,tset_exp.c}] Forgot to protect the tests with 2307 casts to "void *", invalid in C++ (completing r14460 and r14461). 2308 23092021-03-08 Vincent Lefèvre <vincent@vinc17.net> 2310 2311 Clarification about the custom interface and macros. 2312 2313 * doc/mpfr.texi: added some text in Section "Custom Interface". 2314 * src/mpfr.h: replaced the remaining FIXME by another comment. 2315 23162021-03-08 Vincent Lefèvre <vincent@vinc17.net> 2317 2318 [tests] Ignore GCC's -Wc++-compat in the tests that are invalid in C++ 2319 (these tests are enabled only if __cplusplus is not defined). 2320 23212021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2322 2323 [tests] In C++, do not cast to "void *" in the tests of macros. 2324 2325 These casts make the build of these tests fail with a C++ compiler. 2326 But this means that the use of macros will not introduce any issue 2327 concerning the type of the arguments, i.e. with a C++ compiler, the 2328 tests are still complete after this change. 2329 2330 However, GCC's -Werror=c++-compat still cannot be used. 2331 To avoid this issue, diagnostic pragmas will be needed. 2332 23332021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2334 2335 [src/mpfr.h] Fixed mpfr_set macro (now only available with __GNUC__). 2336 23372021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2338 2339 [tests/tset.c] Added tests of the mpfr_set macro. 2340 2341 Without MPFR_USE_NO_MACRO, the compilation currently fails because 2342 the second argument is not converted to mpfr_srcptr when MPFR_SIGN 2343 is applied. 2344 23452021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2346 2347 [src/mpfr.h] Fixed mpfr_copysign and mpfr_signbit macros. 2348 23492021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2350 2351 Added tests of mpfr_copysign, mpfr_setsign and mpfr_signbit macros. 2352 2353 Without MPFR_USE_NO_MACRO, the compilation of these tests in tcopysign.c 2354 currently fails because some arguments are not converted to mpfr_srcptr. 2355 23562021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2357 2358 [src/ubf.c] Forgot a cast from UBF pointer to mpfr_t pointer. 2359 2360 This became visible with the fix of the mpfr_get_prec macro in r14454. 2361 23622021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2363 2364 [src/mpfr.h] Fixed mpfr_get_prec and mpfr_get_exp macros. 2365 23662021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2367 2368 Added tests of mpfr_get_prec and mpfr_get_exp macros. 2369 2370 Without MPFR_USE_NO_MACRO, the compilation of these tests 2371 in texceptions.c and tset_exp.c currently fails because 2372 the argument is not converted to mpfr_srcptr. 2373 23742021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2375 2376 [src/mpfr.h] Better implementation of macros changed in r14451. 2377 __GNUC__ is no longer needed. 2378 23792021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2380 2381 [src/mpfr.h] Fixed some macros implementing functions. 2382 2383 Macros mpfr_nan_p, mpfr_inf_p, mpfr_zero_p and mpfr_regular_p were 2384 incorrect since they yielded a compilation error when the argument 2385 was of type void *, for instance. Their definition as macros is now 2386 available only with __GNUC__. 2387 The tisnan test r14448 should no longer fail. 2388 2389 Also added a comment for mpfr_sgn, which is correct since documented 2390 as a macro. 2391 23922021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2393 2394 [tests/tisnan.c] Added commented code for testing compilation errors. 2395 23962021-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2397 2398 [src/mpfr.h] fixed typo 2399 24002021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2401 2402 [tests/tisnan.c] Check that when mpfr_nan_p, mpfr_inf_p, mpfr_number_p, 2403 mpfr_zero_p and mpfr_regular_p is implemented as a macro, it behaves 2404 like a function. 2405 2406 [src/mpfr.h] Added a comment and a FIXME for functions implemented 2407 as macros. 2408 24092021-03-06 Vincent Lefèvre <vincent@vinc17.net> 2410 2411 Reverted r14445: This is about functions implemented as macros, and 2412 in this case, a macro must behave like a function. 2413 2414 In particular, each argument must be evaluated one time exactly. 2415 Macros that behave differently will need to be fixed. 2416 2417 Tests should also be added like the one in tests/tset_si.c with the 2418 comment: 2419 2420 /* Note: the ++'s below allow one to check that the corresponding 2421 arguments are evaluated only once by the macros. */ 2422 24232021-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2424 2425 [doc/mpfr.texi] document that functions defined as macros might evaluate 2426 their arguments several times 2427 (see https://sympa.inria.fr/sympa/arc/mpfr/2021-03/msg00007.html) 2428 2429 [src/mpfr.h] fixed typo 2430 24312021-03-04 Vincent Lefèvre <vincent@vinc17.net> 2432 2433 [TODO] Clarification. 2434 2435 [TODO] Updated item on pkg-config due to a bug in pkg-config. 2436 2437 [TODO] Added "add some option to use pkg-config...". 2438 24392021-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2440 2441 [src/invsqrt_limb.h] use "unsigned short" for table T[] instead of mp_limb_t. 2442 On araignee.loria.fr, this saves about 1 cycle, when GMP 6.2.1 and MPFR are 2443 configured with --disable-shared, using mbench. 2444 2445 Before this change (medium of 5 runs, with turbo-boost disabled): 2446 $ numactl --physcpubind=0 ./mfv5 -i0 -p53 mpfr_sqrt mpfr_sqrt mpfr_sqrt 2447 mpfr_sqrt: 48 / 53.39 / 60 2448 $ numactl --physcpubind=0 ./mfv5 -i0 -p113 mpfr_sqrt mpfr_sqrt mpfr_sqrt 2449 mpfr_sqrt: 75 / 81.44 / 89 2450 2451 After this change: 2452 $ numactl --physcpubind=0 ./mfv5 -i0 -p53 mpfr_sqrt mpfr_sqrt mpfr_sqrt 2453 mpfr_sqrt: 48 / 52.37 / 60 2454 $ numactl --physcpubind=0 ./mfv5 -i0 -p113 mpfr_sqrt mpfr_sqrt mpfr_sqrt 2455 mpfr_sqrt: 75 / 80.27 / 88 2456 24572021-02-15 Vincent Lefèvre <vincent@vinc17.net> 2458 2459 [tests/mpfr-test.h] Added mpfr_cmp_si_2exp0 macro (check NaN). 2460 [tests/tj1.c] Replaced mpfr_cmp_si_2exp by mpfr_cmp_si_2exp0. 2461 2462 [tests/tdigamma.c] Use mpfr_cmp_ui0 to detect NaN. 2463 2464 [src/digamma.c] Use MPFR_NOTZERO instead of !MPFR_IS_ZERO. 2465 24662021-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2467 2468 [src/jyn_asympt.c] fixed bug when s=0 at the end of the for loop 2469 [tests/tj1.c] added corresponding non-regression test 2470 2471 [src/digamma.c] fixed a bug in mpfr_digamma_reflection when the approximations 2472 of Digamma(1-x) and Pi*cot(Pi*x) cancel exactly 2473 [tests/tdigamma.c] added corresponding non-regression test 2474 2475 renamed mpfr_compound to mpfr_compound_si, since in C2X, compoundn takes 2476 an intmax_t and not a long, thus we can later implement mpfr_compoundn 2477 taking as input an intmax_t 2478 24792021-02-10 Vincent Lefèvre <vincent@vinc17.net> 2480 2481 [tests/texpm1.c] Improved special tests. 2482 24832021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2484 2485 [src/pow_sj.c] removed spurious comment 2486 24872021-02-09 Vincent Lefèvre <vincent@vinc17.net> 2488 2489 [src/{pow_sj.c,pow_uj.c}] Added missing "#ifdef _MPFR_H_HAVE_INTMAX_T". 2490 2491 [doc/mpfr.texi] General cleanup, in particular related to the IEEE 754 2492 standard. Added IEEE Standard 754-2019 to the references. 2493 2494 [src/pow_{si,sj,ui,uj}.c] Fixed logging for mpfr_pow_{sj,uj}. 2495 2496 [src/pow_uj.c] untabify 2497 2498 [tests/tpow.c] Replaced mpfr_cmp_ui by versions that can detect NaN. 2499 Note: this is particularly important to check that pow(NaN,0) returns 1, 2500 not NaN. 2501 2502 [src/pow_uj.c] Some corrections in the mpfr_mpz_set_uj helper function, 2503 still with limitations (which could be avoided by sharing code with 2504 mpfr_set_uj_2exp). 2505 25062021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2507 2508 forgot to commit those files 2509 2510 added mpfr_powr 2511 25122021-02-09 Vincent Lefèvre <vincent@vinc17.net> 2513 2514 [src/{pow_si.c,pow_ui.c}] untabify 2515 25162021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2517 2518 added mpfr_pow_uj and mpfr_pow_sj 2519 now mpfr_pown is an alias for mpfr_pow_sj 2520 25212021-02-09 Vincent Lefèvre <vincent@vinc17.net> 2522 2523 [doc/mpfr.texi,src/mpfr.h] Added a FIXME for mpfr_pown, which should 2524 be an alias of mpfr_pow_sj (not implemented yet) to follow ISO C2x, 2525 where pown is defined with intmax_t n. 2526 25272021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2528 2529 added mpfr_pown (alias for mpfr_pow_si) 2530 25312021-02-08 Vincent Lefèvre <vincent@vinc17.net> 2532 2533 [src/mpfr.h] Updated comments on the types for mpfr_prec_t/mpfr_exp_t. 2534 2535 * For mpfr_prec_t, removed the comment saying that under Windows 64, 2536 "long long" could be used (this would imply that mpfr_prec_t and 2537 mpfr_exp_t will not fit in a long, and this is not supported yet, 2538 see below). 2539 2540 * For mpfr_exp_t and _MPFR_EXP_FORMAT == 4, changed an unclear note 2541 and added other information; in particular, this value is currently 2542 not supported since the MPFR code assumes that mpfr_exp_t fits in a 2543 long. 2544 25452021-02-08 Vincent Lefèvre <vincent@vinc17.net> 2546 2547 [tests] Added texp2m1 and texp10m1 to svn:ignore property. 2548 2549 [src/jyn_asympt.c] Use mpfr_set4 instead of mpfr_set or mpfr_neg. 2550 2551 [tests/tj0.c] Latest test: also check the flags. 2552 2553 [src/digamma.c] Added a comment about the bug fixed in r14399. 2554 2555 [tests/tdigamma.c] Latest test: also check the flags. 2556 2557 [tests/tdigamma.c] Moved the r14399 test to its own test function. 2558 Note: for this one, there is no need to use the maximum exponent range. 2559 2560 [src/digamma.c] Use MPFR_NOTZERO instead of !MPFR_IS_ZERO. 2561 25622021-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2563 2564 [src/jyn_asympt.c] fixed bug when sin(z)+cos(z) or sin(z)-cos(z) round to 0 2565 [tests/tj0.c] added corresponding non-regression test 2566 2567 [src/digamma.c] fixed bug in mpfr_digamma_positive when t-u is zero 2568 [tests/tdigamma.c] added corresponding non-regression test 2569 25702021-02-08 Vincent Lefèvre <vincent@vinc17.net> 2571 2572 [src/digamma.c] Fix: increased GUARD from 20 to 30. 2573 [tests/tdigamma.c] Added 2 precisions for which GUARD=20 is not 2574 sufficient, yielding a "too much memory" error. 2575 25762021-02-07 Vincent Lefèvre <vincent@vinc17.net> 2577 2578 [src/digamma.c] Punctuation in a comment. 2579 25802021-02-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2581 2582 [src/digamma.c] fixed bug20210206 2583 25842021-02-06 Vincent Lefèvre <vincent@vinc17.net> 2585 2586 [src/digamma.c] Added a FIXME for mpfr_digamma_positive: q can be 2587 too large, e.g. equal to the maximum exponent! 2588 2589 [src/digamma.c] In mpfr_digamma_positive, log the value of q. 2590 2591 [src/digamma.c] In mpfr_digamma_positive, do not compute the precision q 2592 until we are certain that it will be used. 2593 2594 [src/digamma.c] In mpfr_digamma_positive, added an assertion, as a 2595 precision is set from the exponent of x, and I suppose that it may 2596 be larger than MPFR_PREC_MAX when mpfr_exp_t > mpfr_prec_t. 2597 2598 [tests/tdigamma.c] Added testcase for a bug found by test_generic. 2599 2600 [tests/tgeneric.c] Added debug info. 2601 26022021-02-05 Vincent Lefèvre <vincent@vinc17.net> 2603 2604 [src/exp2m1.c] Use block-level flags. 2605 26062021-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2607 2608 added new function mpfr_exp10m1 2609 2610 [tests/texp2m1.c] added a test for exact values 2611 26122021-02-05 Vincent Lefèvre <vincent@vinc17.net> 2613 2614 [TODO] Added mpfr_mul_uj and mpfr_mul_sj. 2615 2616 [src/log.c] Optimization: avoid a temporary variable for a*2^m; 2617 use an alias to a instead. In corner cases, this could yield a 2618 new internal TMD for the mpfr_div when the precision of a is 2619 very large, but this is avoided by changing the RNDN to RNDF. 2620 The error bound of 2 ulp on the mpfr_div should still be valid 2621 (it should now actually be 1 ulp). 2622 26232021-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2624 2625 added new function mpfr_exp2m1 for 2^x-1 2626 26272021-02-05 Vincent Lefèvre <vincent@vinc17.net> 2628 2629 [tests/tversion.c] Fixed length modifier in error messages. 2630 2631 [src/log10p1.c] In mpfr_log10p1_small: an "else" case is better than 2632 a "goto"; do not initialize inex to an arbitrary value. 2633 2634 [src/compound.c] Exact cases: additional detail in the comment. 2635 2636 [src/compound.c] Exact cases: this is simpler without a separate 2637 function (the t = 0 was artificial). Added full explanations. 2638 26392021-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2640 2641 [src/compound.c] removed FIXME corresponding to previous commit 2642 2643 [src/compound.c] fixed infinite loop for exact results like compound(0.5,2) 2644 which are not powers of 2 2645 26462021-02-05 Vincent Lefèvre <vincent@vinc17.net> 2647 2648 [src/compound.c] Fixed 2 issues with mpfr_compound_near_one: 2649 * this function must be called in the extended exponent range, 2650 to be sure that 1 is representable; 2651 * it wasn't setting the inexact flag, and this is now done via 2652 mpfr_check_range. 2653 2654 [src/compound.c] Added missing MPFR_ZIV_FREE before the "return" in 2655 the Ziv loop. 2656 2657 [tests/tcompound.c] Added generic tests with n = 2 and n = 3. 2658 They trigger a failure: bad inexact flag for mpfr_compound2. 2659 2660 [src/compound.c] Added a FIXME: possible infinite loop when the result 2661 is exact. 2662 2663 [src/compound.c] Optimize the easy case n = 1. 2664 2665 [src/compound.c] Special cases: fixed compound(-Inf,0) and improved 2666 comments. 2667 2668 [tests/tcompound.c] More tests of compound(x,n) for x < -1, showing 2669 a failure on compound(-Inf,0). 2670 2671 [doc/README.dev] Note that the logging feature (--enable-logging) 2672 needs GCC to build MPFR, and it is not available with mini-gmp, 2673 since mpfr_fprintf cannot be defined with mini-gmp. 2674 26752021-02-04 Vincent Lefèvre <vincent@vinc17.net> 2676 2677 [tests/tcompound.c] Fixed a test in the case mpfr_exp_t < long. 2678 2679 [tests/tcompound.c] Corrected an error message. 2680 2681 [src/compound.c] Fixed bug found by clang: 2682 compound.c:32:29: error: use of logical '||' with constant operand [-Werror,-Wconstant-logical-operand] 2683 if (rnd_mode == MPFR_RNDN || MPFR_RNDF 2684 ^ ~~~~~~~~~ 2685 2686 [tests/tatan2u.c] Fixed a bug (as of C99, for *decimal* constants, one 2687 must use a suffix that contains "U" if the constant cannot be signed). 2688 2689 [tests/tcompound.c] Corrected the conditions of a test for machines 2690 with 32-bit long. Added comments. 2691 2692 [tests] Added tlog10p1 to svn:ignore property. 2693 2694 [tests/tatan2u.c] Improved comment in bug20210203 about type sizes. 2695 2696 [tests/tatan2u.c] Make sure that the bug20210203 test is run only 2697 when the value for u is representable. 2698 26992021-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2700 2701 [TODO] added section number 2702 2703 [src/compound.c] fixed case n < 0 and underflow 2704 [tests/tcompound.c] added corresponding non-regression tests 2705 2706 compound(NaN,0) is 1 2707 27082021-02-04 Vincent Lefèvre <vincent@vinc17.net> 2709 2710 [src/compound.c] Correction for n = LONG_MIN. Added FIXMEs. 2711 27122021-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2713 2714 [tests/tcompound.c] fixed comment 2715 27162021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2717 2718 [src/atan2u.c] fixed error analysis 2719 27202021-02-03 Vincent Lefèvre <vincent@vinc17.net> 2721 2722 [src/compound.c] Portability. 2723 2724 [tests/tatan2u.c] Make sure that 64-bit constants are supported before 2725 using one. 2726 2727 [src/log10p1.c] Improved checking / debugging support. 2728 27292021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2730 2731 [tests/tatan2u.c] added a test which currently fails 2732 2733 [src/log2p1.c] added note about underflow 2734 2735 added a new function mpfr_log10p1 to compute log10(1+x) 2736 2737 [tests/tlog2p1.c] set the precision locally to one test 2738 2739 [doc/mpfr.texi] document atan2u and atan2pi 2740 27412021-02-03 Vincent Lefèvre <vincent@vinc17.net> 2742 2743 [doc/mpfr.texi] Typography. 2744 2745 [doc/mpfr.texi] In Section "Added Functions", do not put the patchlevel 2746 in MPFR versions (changed "4.2.0" to "4.2"). 2747 2748 [src/log2p1.c] Bug fix: memory accessed after it is cleared. 2749 2750 [src/log2p1.c] More logging. 2751 27522021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2753 2754 [doc/mpfr.texi] document mpfr_compound 2755 27562021-02-03 Vincent Lefèvre <vincent@vinc17.net> 2757 2758 [src/set_prec.c] Log the precision. 2759 27602021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2761 2762 [src/compound.c] completed the general case 2763 [tests/tcompound.c] added one hard-coded test 2764 27652021-02-03 Vincent Lefèvre <vincent@vinc17.net> 2766 2767 [tests] Added tcompound and tlog2p1 to svn:ignore property. 2768 2769 [tests/tlog2p1.c] Use mpfr_cmp_si0 to detect NaN. 2770 2771 [tests/tcompound.c] Do not use mpfr_printf in the tests. 2772 27732021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2774 2775 [src/log2p1.c] use ULSIZE as in atan2u.c 2776 2777 [src/atan2u.c] better explain the choice of prec in mpfr_atan2u_aux3 2778 27792021-02-03 Vincent Lefèvre <vincent@vinc17.net> 2780 2781 [src/compound.c] Fixed logging. 2782 27832021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2784 2785 [src/atan2u.c] simplified code 2786 27872021-02-03 Vincent Lefèvre <vincent@vinc17.net> 2788 2789 [src/atan2u.c] Support unsigned long != 64-bit type. Avoid a warning. 2790 27912021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2792 2793 [tests/tlog2p1.c] added tests for exact cases 2794 2795 added log2p1 and compound (mpfr_compound is not finished yet) 2796 2797 [src/log1p.c] fixed comment 2798 2799 [src/atan2u.c] deal with underflow and overflow in y/x 2800 28012021-02-03 Vincent Lefèvre <vincent@vinc17.net> 2802 2803 [src/atan2u.c] Added a FIXME: the code is incorrect if y/x yields 2804 an overflow or an underflow. 2805 2806 [src/atan2u.c] Fixed 2 bugs in mpfr_atan2u_aux2. Minor changes. 2807 2808 [src/atan2u.c] Minor corrections in comments. 2809 28102021-02-02 Vincent Lefèvre <vincent@vinc17.net> 2811 2812 [tests] Added tatan2u and tatanu to svn:ignore property. 2813 2814 [tests/tatan2u.c] Do not use mpfr_printf in the tests. 2815 2816 [src/atan2u.c] Use MPFR_RET_NEVER_GO_HERE. 2817 2818 [tests] 2819 * tgeneric.c: cleanup about the type of the arguments; added support 2820 for functions with 3 arguments (x1,x2,u), such as mpfr_atan2u. 2821 * tatan2u.c: enabled the generic tests (test_generic). 2822 28232021-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2824 2825 [src/atan2u.c] fixed atan2u with respect to the four quadrants 2826 [tests/tatan2u.c] added corresponding non-regression tests 2827 2828 added mpfr_atan2u (work in progress) 2829 2830 [src/atanu.c] fixed bug for u=0 2831 [tests/tatanu.c] added non-regression test case 2832 28332021-02-02 Vincent Lefèvre <vincent@vinc17.net> 2834 2835 Changed "plus/minus infinity" to "positive/negative infinity". 2836 2837 [tools/mpfrlint] In the "+/- infinity" test (just added), also check 2838 the doc/algorithms.tex file. 2839 2840 [tools/mpfrlint] Added a test for the use of "plus/minus infinity" 2841 instead of "positive/negative infinity". 2842 2843 [doc/mpfr.texi] Minor corrections related to infinity. The IEEE 754-2019 2844 standard says "positive/negative infinity", not "plus/minus infinity". 2845 28462021-02-01 Vincent Lefèvre <vincent@vinc17.net> 2847 2848 [doc/mpfr.texi] Typos. 2849 2850 [{src,tests}/Makefile.am] Untabified values of variables to avoid 2851 wrapping in diffs on 80 columns. 2852 28532021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2854 2855 [TODO] asinpi, acospi and atanpi are done (and their *u variants) 2856 2857 [src/atanu.c] added comment 2858 2859 [src/acosu.c] simplified the code when x is tiny 2860 2861 added mpfr_atanu and mpfr_atanpi 2862 28632021-02-01 Vincent Lefèvre <vincent@vinc17.net> 2864 2865 [doc/mpfr.texi] Correction about mpfr_get_* and NaN. 2866 28672021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2868 2869 [src/asinu.c] improved a comment 2870 2871 [src/asinu.c] fixed typo 2872 2873 [src/asinu.c] resolved FIXME 2874 [tests/tasinu.c] added more underflow tests 2875 28762021-02-01 Vincent Lefèvre <vincent@vinc17.net> 2877 2878 [src/set_ld.c] Replaced a useless goto. 2879 2880 Code readability. 2881 28822021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2883 2884 [src/set_ld.c] added comment about LONGDOUBLE_NAN_ACTION 2885 28862021-02-01 Vincent Lefèvre <vincent@vinc17.net> 2887 2888 [doc/mpfr.texi] Typography. 2889 2890 [doc/mpfr.texi] Updated the month. 2891 28922021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2893 2894 [src/get_ld.c] forgot get_ld in previous commit 2895 2896 make it clear that we don't propagate the sign bit in mpfr_get_d and mpfr_set_d 2897 and similar functions for binary32, decimal64 and binary128 2898 2899 added asinu and asinpi 2900 2901 [src/asinu.c] return NaN for u=0 and |x| > 1 2902 [tests/tasinu.c] added more tests 2903 2904 [src/acosu.c] for u=0 and |x| > 1, return NaN 2905 [tests/tacosu.c] added corresponding test 2906 29072021-01-31 Vincent Lefèvre <vincent@vinc17.net> 2908 2909 [tests] Use RND_LOOP. 2910 Changes with: 2911 perl -pi -e 's/^( *)for *\((\w+) *= *0 *; *\2 *< *MPFR_RND_MAX *; *\2 *\+\+\) *$/\1RND_LOOP (\2)/' *.c 2912 2913 [tests] Added tacosu and tasinu to svn:ignore property. 2914 2915 [tests/mpfr-test.h] Added mpfr_cmp_si0 macro (check NaN). 2916 [tests/tasinu.c] Replaced mpfr_cmp_ui / mpfr_cmp_si by the ...0 version. 2917 2918 [tests/tasinu.c] Replaced mpfr_cmp by !mpfr_equal_p. 2919 2920 [tests/tacosu.c] Replaced mpfr_cmp by !mpfr_equal_p. 2921 2922 [tests/tacosu.c] Fixed failing test with --with-mini-gmp 2923 and -DMINI_GMP_LIMB_TYPE=int under Linux/x86_64. 2924 2925 [tools/mpfrlint] Detect the use of mpfr_set_emin / mpfr_set_emax 2926 when set_emin / set_emax could be used (checking failures). 2927 2928 [tests/tdiv.c] Use set_emax rather than mpfr_set_emax with a test. 2929 2930 [tests/*.c] When not in a test, use set_emin and set_emax rather than 2931 mpfr_set_emin and mpfr_set_emax, in order to check failures. 2932 Done with: perl -pi -e 's/^ *\Kmpfr_(set_e(min|max) *\()/\1/' *.c 2933 2934 [tests/tests.c] Improved error message in set_emin / set_emax to 2935 better support platforms where mpfr_exp_t > long int. 2936 2937 [tests/tcot.c] Use set_emin and set_emax rather than mpfr_set_emin and 2938 mpfr_set_emax with a test (test done in set_emin / set_emax). 2939 2940 [src/{acosu.c,asinu.c,cosu.c,sinu.c,tanu.c}] Typos in comments. 2941 2942 [tests/tasinu.c] Use set_emin rather than mpfr_set_emin. 2943 29442021-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2945 2946 [src/acosu.c] fixed case x=-1/2 which was wrong 2947 [tests/tacosu.c] added test cases 2948 29492021-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2950 2951 [tests/tacosu.c] reduced number of generic tests 2952 [tests/tasinu.c] likewise 2953 2954 [src/asinu.c] fixed case x=-1 and underflow case 2955 [tests/tasinu.c] added test for underflow 2956 29572021-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2958 2959 added asinu (work in progress, not yet usable) 2960 2961 [doc/mpfr.texi] improve description of mpfr_acosu 2962 2963 [src/acosu.c] fixed another typo 2964 2965 [src/acosu.c] fixed typo 2966 29672021-01-29 Vincent Lefèvre <vincent@vinc17.net> 2968 2969 [src/acosu.c] Simplified code. 2970 2971 [tests/tgeneric.c] Added a cast for printf. 2972 2973 [tests/tgeneric.c] Corrected indentation. 2974 2975 [tests/tgeneric.c] Corrected indentation. 2976 29772021-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2978 2979 added cosu and cospi in the manual and NEWS 2980 2981 new function mpfr_acosu (still to be added in NEWS and mpfr.texi) 2982 29832021-01-29 Vincent Lefèvre <vincent@vinc17.net> 2984 2985 [src/{cosu.c,sinu.c,tanu.c}] Function logging: added missing u. 2986 2987 [TODO] LIA-2 URL after redirection (i.e. https). 2988 29892021-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 2990 2991 [TODO] added pointer to LIA-2 2992 29932021-01-26 Vincent Lefèvre <vincent@vinc17.net> 2994 2995 [INSTALL,doc/update-faq,tools/announce-text] With wget, use 2996 the --no-config option as the user's .wgetrc file may significantly 2997 change the behavior and possibly yield errors. See discussion at 2998 <https://lists.debian.org/debian-user/2021/01/msg01021.html>. 2999 30002021-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3001 3002 [TODO] update about powr, rootn and rsqrt 3003 3004 [TODO] update about reserved cr_xxx names from C standard 3005 30062021-01-14 Vincent Lefèvre <vincent@vinc17.net> 3007 3008 [src/{cosu.c,sinu.c,tanu.c}] Range reduction: improved a test, renamed 3009 a variable (e to p, as this is more like a precision), and updated 3010 comments, making the code and comments similar for these 3 functions. 3011 3012 Added function logging for mpfr_fmod_ui and mpfr_sqrt_ui. 3013 30142021-01-14 Vincent Lefèvre <vincent@vinc17.net> 3015 3016 [tests/memory.c] Call "fflush (NULL)" before abort() in order to flush 3017 all the output streams, in particular the log file (when there is one), 3018 so that setting MPFR_LOG_FLUSH (which may be inefficient) is not needed 3019 to debug tests that end with a memory error. 3020 3021 This fixes a regression with glibc 2.27+: the streams are no longer 3022 flushed by abort(), as permitted by POSIX; see the abort(3) man page. 3023 30242021-01-14 Vincent Lefèvre <vincent@vinc17.net> 3025 3026 [src] Fixed typo in mpfr_printf format from MPFR_LOG_FUNC for several 3027 functions. 3028 3029 [doc/mpfr.texi] Completed mpfr_fmod_ui description. 3030 3031 [src/cosu.c] Fixed bug when the reduced argument is 0. 3032 3033 [tests/tcosu.c] Added tests that give a reduced argument equal to 0. 3034 3035 [src/cosu.c] Fixed memory leak with very small reduced arguments. 3036 30372021-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3038 3039 [tests/tcosu.c] increase nmax in test_generic call 3040 [tests/tsinu.c] likewise 3041 [tests/ttanu.c] likewise 3042 30432021-01-13 Vincent Lefèvre <vincent@vinc17.net> 3044 3045 [tests/{tcosu.c,tsinu.c,ttanu.c}] For the generic tests, no need 3046 to reduce emax any longer, now that the fast range reduction has 3047 been implemented. 3048 3049 [src/tanu.c] Implemented range reduction for mpfr_tanu. 3050 3051 [src/{cosu.c,sinu.c}] Corrected the position of a comment. 3052 3053 [src/cosu.c] Implemented range reduction for mpfr_cosu. 3054 30552021-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3056 3057 [src/sinu.c] removed FIXME (done) 3058 30592021-01-13 Vincent Lefèvre <vincent@vinc17.net> 3060 3061 [NEWS,doc/mpfr.texi] For the new trigonometric functions mpfr_cosu, 3062 mpfr_sinu, mpfr_tanu, mpfr_cospi, mpfr_sinpi, mpfr_tanpi, removed the 3063 "experimental" mention. In mpfr.texi, also added missing functions to 3064 Section "Added Functions" (API Compatibility). 3065 3066 [doc/mpfr.texi] Style consistency: more "[unsigned] long int" 3067 instead of just "[unsigned] long". 3068 3069 [doc/mpfr.texi] Style: use always "[unsigned] long int" in prototypes 3070 rather than sometimes just "[unsigned] long". 3071 3072 [NEWS,doc/mpfr.texi] New function mpfr_fmod_ui. 3073 30742021-01-13 Vincent Lefèvre <vincent@vinc17.net> 3075 3076 Implemented range reduction for mpfr_sinu (and defined mpfr_fmod_ui). 3077 3078 This is done by computing x mod u; and a new function mpfr_fmod_ui 3079 has been defined for this purpose. As mpfr_fmod_ui could be useful 3080 to the user, its declaration is put in src/mpfr.h, with the intent 3081 to document this new function later. 3082 3083 In the src directory: 3084 * Added fmod_ui.c file (mpfr_fmod_ui function) based on sqrt_ui.c 3085 (hence the same copyright line). 3086 * Makefile.am: added fmod_ui.c to libmpfr_la_SOURCES. 3087 * mpfr.h: added mpfr_fmod_ui. 3088 * sinu.c: implemented range reduction for mpfr_sinu. 3089 30902021-01-13 Vincent Lefèvre <vincent@vinc17.net> 3091 3092 [tests/tsinu.c] Added tests where x/u is a "big" integer, so that 3093 the reduced argument is 0 (exactly). 3094 3095 [tests/tsinu.c] Added a test on a large input such that x mod u may need 3096 more precision than x. This will be important to test range reduction. 3097 3098 [src/sqrt_ui.c] Coding style. 3099 3100 [src/{cosu.c,sinu.c,tanu.c}] Changed MPFR_PREC to MPFR_GET_PREC. 3101 31022021-01-12 Vincent Lefèvre <vincent@vinc17.net> 3103 3104 [tests/{tcosu.c,tsinu.c,ttanu.c}] C90 compatibility for the tests with 3105 large inputs (added in r14236). Also avoid the hardcoded size by using 3106 the numberof() macro. 3107 31082021-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3109 3110 [tests/tcosu.c] added hard-coded tests with large inputs 3111 [tests/tsinu.c] likewise 3112 [tests/ttanu.c] likewise 3113 31142021-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3115 3116 [src/set_ld.c] added pointer to "double double" format 3117 31182021-01-04 Vincent Lefèvre <vincent@vinc17.net> 3119 3120 [doc] Updated FAQ.html with update-faq. 3121 31222021-01-03 Vincent Lefèvre <vincent@vinc17.net> 3123 3124 [doc/mpfr.texi] Updated the month. 3125 3126 Copyright notice update: added 2021 with 3127 perl -pi -e 's/ (\d{4}-)?(2020)(?= Free Software)/ 3128 " ".($1||"$2-").($2+1)/e' **/*(^/) 3129 under zsh. Removed 2020 from the example in the doc/README.dev file. 3130 3131 [src/mpfr-impl.h] Removed a now useless test on __clang__, corresponding 3132 to a bug fixed in Clang 3.4 (see <https://bugs.debian.org/705583>). 3133 31342020-12-20 Vincent Lefèvre <vincent@vinc17.net> 3135 3136 Optimize mpfr_abs, mpfr_copysign and mpfr_setsign in the case of reused 3137 argument, like what was already done for mpfr_neg: one can just set the 3138 sign and handle NaN instead of calling mpfr_set4. 3139 Completed tests/tcopysign.c to test with a reused argument. 3140 3141 [src/cosu.c] Avoid a possible integer overflow (triggered by the tests 3142 with UBsan) from r14225. 3143 31442020-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3145 3146 fixed initial precision in sinu, cosu and tanu 3147 also in cosu, treat special case when 2*pi*x/u is small 3148 31492020-12-17 Vincent Lefèvre <vincent@vinc17.net> 3150 3151 [tests/tgeneric.c] Removed the use of __func__ as it is not supported 3152 by ISO C90 (it was not really useful here, though). 3153 3154 [tests/tcosu.c] Increased the maximum precision for test_generic and 3155 added a comment about this. 3156 3157 [tests] Added tcosu, tsinu and ttanu to svn:ignore property. 3158 3159 For the generic tests, output the number of normal cases and the total 3160 if the MPFR_TGENERIC_STAT environment variable is defined. 3161 Added description to the README.dev file. 3162 3163 [tests/tcosu.c] Increased the number of generic tests. This should make 3164 the warning "Too few normal cases in generic tests" much less common. 3165 3166 [tests] 3167 * Added data/tan2pi: hardest-to-round cases of tanu with u = 1 3168 in double precision, interval [0,1/4]. 3169 * ttanu.c: test tan2pi values with u = 1. 3170 3171 [tests/ttanu.c] C89 compatibility. 3172 31732020-12-16 Vincent Lefèvre <vincent@vinc17.net> 3174 3175 [doc/mpfr.texi] Removed spurious blank line; .texi source reformat. 3176 3177 [doc/mpfr.texi] Typography: "resp." must be followed by "@:". 3178 3179 [doc/check-typography] Also check "resp.". 3180 3181 [doc/mpfr.texi] Removed misplaced @tie{}. 3182 31832020-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3184 3185 [doc/mpfr.texi] fixed another typo 3186 3187 [doc/mpfr.texi] fixed typos 3188 3189 added sinpi, cospi, tanpi 3190 3191 added new function mpfr_tanu 3192 3193 [src/sinu.c] improved comment 3194 31952020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3196 3197 [src/sinu.c] added reference 3198 3199 [src/sinu.c] fixed compiler warning 3200 [src/cosu.c] deal with other exact cases 3201 [tests/tcosu.c] added tests for other exact cases 3202 3203 [src/sinu.c] fixed bug in detection of pi/6 and friends 3204 32052020-12-15 Vincent Lefèvre <vincent@vinc17.net> 3206 3207 [NEWS] mpfr_cosu and mpfr_sinu: improved item. 3208 32092020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3210 3211 [tests/tsinu.c] added more tests 3212 3213 [src/sinu.c] fixed case where 2xpi/u is +/-pi/6 mod pi 3214 [tests/tsinu.c] added corresponding test case 3215 32162020-12-15 Vincent Lefèvre <vincent@vinc17.net> 3217 3218 [tests] 3219 * Added data/{cos2pi,sin2pi}: hardest-to-round cases of cosu and sinu 3220 with u = 1 in double precision, interval [0,1/2]. 3221 * tcosu.c, tsinu.c: test cos2pi and sin2pi values with u = 1. 3222 3223 [tests/tests.c] test5rm(): mention test5rm in the error message. 3224 3225 [src/{cosu.c,sinu.c}] Added function logging. 3226 32272020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3228 3229 added new function mpfr_cosu 3230 3231 [src/sinu.c] fixed typo in comment 3232 3233 [tests/tsinu.c] fixed typos in comments 3234 32352020-12-15 Vincent Lefèvre <vincent@vinc17.net> 3236 3237 [src/sin_cos.c] Code improvement: 3238 * replaced a MPFR_PREC(c) by m since the precision of c was set to m; 3239 * as a consequence, the initial precision of xr in the Ziv loop will 3240 always be m (whether expx >= 2 or not), so that one can use this 3241 precision for the mpfr_init2. 3242 32432020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3244 3245 [src/sinu.c] forgot to count the rounding error in mpfr_sin (t, t, MPFR_RNDA) 3246 3247 [src/sinu.c] fixed issue with case t=0 3248 32492020-12-15 Vincent Lefèvre <vincent@vinc17.net> 3250 3251 [src/{sin.c,sin_cos.c}] 3252 * Do not initialize variables with the default precision, which 3253 could have been set to a large value by the user; this would 3254 be a waste of memory. 3255 * In sin.c, do not initialize xr in the case where this variable 3256 will not be used (in sin_cos.c, let's initialize it with the 3257 minimum precision as it is used with different purposes). 3258 3259 [src/{ai.c,yn.c}] Do not initialize variables with the default 3260 precision, which could have been set to a large value by the 3261 user; this would be a waste of memory. 3262 3263 [tools/mpfrlint] Added a test to detect when mpfr_init or mpfr_inits is 3264 used, i.e. when a variable is initialized with the default precision. 3265 This should not be done as the default precision could have been set to 3266 a large value by the user, so that this is a waste of memory. 3267 3268 [src/sinu.c] Correction: variables must not be initialized with the 3269 default precision, which could have been set to a large value by the 3270 user, and this would be a waste of memory. 3271 32722020-12-14 Vincent Lefèvre <vincent@vinc17.net> 3273 3274 [src/sinu.c] Fixed 2 bugs: 3275 * in case of underflow, the flags were not set; 3276 * mpfr_odd_p(t) could be called with t = 0, which is unsupported. 3277 32782020-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3279 3280 [src/sinu.c] fixed typo (thanks Jeffrey Sarnoff) 3281 32822020-12-14 Vincent Lefèvre <vincent@vinc17.net> 3283 3284 [src/sinu.c] Added a FIXME: the range reduction should be done in this 3285 function (that's the whole point of sinu compared to sin, besides a 3286 smaller rounding error). 3287 3288 [tests/tsinu.c] Added a FIXME concerning the size of the exponent. 3289 3290 [doc/mpfr.texi] Typographic correction of math formulas. 3291 3292 [doc/mpfr.texi] mpfr_sinu: corrections and improvements. 3293 3294 [doc/mpfr.texi] Updated the month. 3295 32962020-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3297 3298 [NEWS] added mpfr_sinu 3299 [doc/mpfr.texi] improve documentation of mpfr_sinu, and say it is experimental 3300 3301 added mpfr_sinu (work in progress) 3302 33032020-12-13 Vincent Lefèvre <vincent@vinc17.net> 3304 3305 [src/zeta.c] Minor correction of a comment. 3306 33072020-12-02 Vincent Lefèvre <vincent@vinc17.net> 3308 3309 [src/mpfr.h] Added a comment about Intel's compiler ICC and the 3310 unsupported returns_nonnull attribute. 3311 33122020-11-15 Vincent Lefèvre <vincent@vinc17.net> 3313 3314 [TODO] Added an item to add "const" in prototypes in the manual. 3315 3316 [doc/mpfr.texi] mpfr_subnormalize: define EXP(x) and PREC(x). 3317 3318 [doc/mpfr.texi] More detailed beginning of "Nomenclature and Types", 3319 which now specifies the convention for the significand and the exponent. 3320 3321 [doc/mpfr.texi] Updated the month. 3322 3323 [doc/mpfr.texi] Document the mpfr_srcptr type. 3324 33252020-10-28 Vincent Lefèvre <vincent@vinc17.net> 3326 3327 [tests/talloc-cache.c] Check that malloc() doesn't return a null pointer 3328 (in order to avoid an error with GCC's -fanalyzer, dev version). 3329 33302020-10-23 Vincent Lefèvre <vincent@vinc17.net> 3331 3332 [src/invert_limb.h] Added a comment about r14171. 3333 3334 [src/invert_limb.h] Fixed potential issues introduced in 14170. 3335 * The code isn't valid with 16-bit int (allowed by ISO C). So, 3336 make sure with MPFR_STAT_STATIC_ASSERT that unsigned int is 3337 large enough for invert_limb_table2. 3338 Note: since the code is under "#if GMP_NUMB_BITS == 64", 3339 this is unlikely to affect any system in practice, as 3340 GMP_NUMB_BITS == 32 (or 16, if supported) should be better 3341 on such a system. 3342 * Make sure that the "<< 11" shifts do not overflow. 3343 33442020-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3345 3346 [src/invert_limb.h] patch from Alexei Sibidanov, which reduces memory usage, 3347 without degrading performance 3348 33492020-10-23 Vincent Lefèvre <vincent@vinc17.net> 3350 3351 [doc/README.dev] Replaced WG14 N2405 reference by the new N2579. 3352 33532020-10-21 Vincent Lefèvre <vincent@vinc17.net> 3354 3355 [src/mpfr-impl.h] Updated UBF comment about aliasing rules. 3356 3357 [src/mpfr-impl.h] Updated UBF comment about aliasing rules. 3358 3359 [src/mpfr-impl.h] Updated UBF comment about aliasing rules. 3360 33612020-10-19 Vincent Lefèvre <vincent@vinc17.net> 3362 3363 [doc/mpfr.texi] Updated mpfr_rootn_ui description about "agree with 3364 the rootn function", now that IEEE 754-2019 is there (needed as 3365 rootn was underspecified in IEEE 754-2008, so that TS 18661-4 3366 incorrectly specified the case rootn(-inf, n even); see WG14 N2309 3367 from the C FP group for the correction). 3368 33692020-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3370 3371 fixed typo 3372 33732020-10-08 Vincent Lefèvre <vincent@vinc17.net> 3374 3375 [doc/README.dev] Added a note about _Float128 vs long double. 3376 3377 [src/mpfr-impl.h] Added a TODO for the numberof() macro: make it a 3378 constant expression and possibly change its type "long" to "ptrdiff_t". 3379 3380 [doc/mpfr.texi] Minor changes in Section "Formatted Output Functions". 3381 3382 [NEWS] Update. 3383 3384 [doc/mpfr.texi] Section "API Compatibility", formatted output functions 3385 (mpfr_printf, etc.): completed r14155. 3386 3387 [doc/mpfr.texi] Updated the month. 3388 3389 [src/vasprintf.c] Improved comment for READ_INT. 3390 33912020-10-07 Vincent Lefèvre <vincent@vinc17.net> 3392 3393 Fixed the formatted output functions (mpfr_printf, etc.) in the case 3394 the precision consists only of a period. 3395 * doc/mpfr.texi: correction and clarifications (be closer to ISO C); 3396 note the change in Section "API Compatibility". 3397 * src/vasprintf.c: fixed the bug. 3398 * tests/tsprintf.c: update. 3399 34002020-10-07 Vincent Lefèvre <vincent@vinc17.net> 3401 3402 [src] Consistency: in prototypes, changed 3403 mpz_t to mpz_ptr (mpfr-impl.h, pool.c); 3404 mpfr_random_deviate_t to mpfr_random_deviate_ptr (random_deviate.c). 3405 3406 Note: This completes the changes I had done in r14103 (2020-08-21) for 3407 mpfr_t. This time, the issue was detected by a GCC 11 snapshot, thanks 3408 to the -Warray-parameter option (included in -Wall), which was added 3409 on 2020-09-19 in GCC commit 6450f07388f9fe575a489c9309c36012b17b88b0. 3410 34112020-10-07 Vincent Lefèvre <vincent@vinc17.net> 3412 3413 [src/vasprintf.c] Updated a comment. 3414 3415 Added tests/gen-printf-dot-prec Perl script to generate a .c file 3416 showing printf and mpfr_printf output with: 3417 * a missing precision field; 3418 * a precision field with just a period ("."); 3419 * a precision field with an explicit precision 0 (".0"). 3420 34212020-09-27 Vincent Lefèvre <vincent@vinc17.net> 3422 3423 [tests/tset_z_2exp.c] Fixed typo detected by GCC. 3424 3425 [src/set_z_2exp.c] Fixed overflow/underflow detection in exponent ranges 3426 where emax < 0 or emin >= 0 (bug introduced in r14145). 3427 3428 [tests/tset_z_2exp.c] Added some tests in a reduced exponent range (and 3429 improved existing tests). 3430 Note: Due to an incorrect change in set_z_2exp.c r14145, various tests 3431 are failing with mini-gmp (for which mpfr_set_z_2exp is used more often 3432 because a long does not fit into a limb) in unusual exponent ranges. So 3433 such tests were obviously missing in tset_z_2exp.c before this commit. 3434 34352020-09-25 Vincent Lefèvre <vincent@vinc17.net> 3436 3437 [src/set_z_2exp.c] Fix: avoid possible integer overflows. 3438 3439 [tests/tset_z_2exp.c] Test a result. 3440 3441 [doc/README.dev] Added how to convert an unsigned integer to the 3442 corresponding signed integer with the two's complement rule (i.e. 3443 modular arithmetic) but in a portable way. 3444 3445 [tests] Updated svn:ignore property due to the rename in r14125. 3446 34472020-09-24 Vincent Lefèvre <vincent@vinc17.net> 3448 3449 [tests/tset_z_2exp.c] Added another test that fails with just 3450 "-m32 -fsanitize=undefined -fno-sanitize-recover". 3451 This corresponds to what is described in the FIXME in src/set_z_2exp.c 3452 (about the modified tnrandom.c test yielding an integer overflow). 3453 3454 [tests/tset_z_2exp.c] Added a test that triggers an integer overflow 3455 in set_z_2exp.c with MPFR_CHECK_LARGEMEM=1 when MPFR is compiled with 3456 "-m32 -fsanitize=undefined -fno-sanitize-recover -D_MPFR_EXP_FORMAT=4" 3457 in CFLAGS: 3458 set_z_2exp.c:71:26: runtime error: signed integer overflow: 3459 134217726 * 32 cannot be represented in type 'long int' 3460 34612020-09-23 Vincent Lefèvre <vincent@vinc17.net> 3462 3463 [src/exp2.c] Added support for -D_MPFR_EXP_FORMAT=4 in the 32-bit ABI, 3464 i.e. 32-bit long, so that the MPFR compilation no longer fails due to 3465 a static assertion in this file. Note: many tests fail (not texp2), 3466 but at least this allows some testing of various functions. 3467 34682020-09-23 Vincent Lefèvre <vincent@vinc17.net> 3469 3470 [INSTALL] Update concerning MinGW and the __USE_MINGW_ANSI_STDIO macro. 3471 3472 The change done in r13668 seems to be a bit wrong (at least unclear). 3473 This was done after finding 3474 https://fr.osdn.net/projects/mingw/lists/archive/users/2019-January/000199.html 3475 saying that __USE_MINGW_ANSI_STDIO became deprecated, during a 3476 discussion on the vsnprintf() behavior: 3477 https://gmplib.org/list-archives/gmp-bugs/2020-January/004716.html 3478 3479 However, it seems that printf() conformity issues have completely been 3480 resolved only recently, in version 8. 3481 http://mingw-w64.org/doku.php says: 3482 Version 8 has been released 3483 v8.0.0: 2020-09-18 3484 Notable changes: 3485 [...] 3486 * __USE_MINGW_ANSI_STDIO now automatically enabled in C99 and C11 3487 mode when not using UCRT by Pali Rohár 3488 [...] 3489 3490 Compiling 3491 #include <stdio.h> 3492 int main (void) { volatile double d = -1.25; printf ("%e\n", d); } 3493 gives with mingw-w64 version 7: -1.250000e+000 3494 and with mingw-w64 version 8: -1.250000e+00 3495 3496 So, when testing MPFR with mingw-w64 version 8 but with GMP still built 3497 with mingw-w64 version 7 (and static libraries), one gets a failure in 3498 tsprintf: 3499 Error in mpfr_vsprintf (s, "%e", ...); 3500 expected: "-1.250000e+00" 3501 got: "-1.250000e+000" 3502 because the expected result has changed (it comes from sprintf used in 3503 the MPFR test, which is now ISO-compliant). 3504 35052020-09-18 Vincent Lefèvre <vincent@vinc17.net> 3506 3507 [src/set_z_2exp.c] Added a FIXME: possible integer overflow, which 3508 can be reproduced with a 32-bit ABI by defining MPFR_PREC_MAX as 3509 ((mpfr_prec_t) ((((mpfr_uprec_t) -1) >> 1) - 63)) and in tnrandom.c, 3510 using "test_special (MPFR_PREC_MAX);". 3511 35122020-09-16 Vincent Lefèvre <vincent@vinc17.net> 3513 3514 [doc/mpfr.texi] Updated the month. 3515 3516 [doc/mini-gmp] Say that the build with mini-gmp may require ISO C99+ 3517 features (as "long long" is currently needed by src/get_ld.c in the 3518 case GMP_NUMB_BITS == 8). 3519 3520 For consistency, changed "C89" to "C90" in comments of *.{c,h} files. 3521 3522 [doc/mpfr.texi] Changed C89 to C90, as when mentioning ISO, one must 3523 say C90 (C89 is the ANSI version). The GCC manual uses "C90" rather 3524 than "C89", so this is probably better anyway. 3525 3526 [src/get_ld.c] Bug fix with GMP_NUMB_BITS == 8 (thus mini-gmp) and 3527 32-bit long (e.g. with -m32 on x86_64). 3528 35292020-09-15 Vincent Lefèvre <vincent@vinc17.net> 3530 3531 Renamed some .c files for consistency: 3532 src/get_z_exp.c → src/get_z_2exp.c 3533 src/set_z_exp.c → src/set_z_2exp.c 3534 tests/tset_z_exp.c → tests/tset_z_2exp.c 3535 and updated src/Makefile.am and tests/Makefile.am files. 3536 3537 [src/random_deviate.c] The latest change r14123 was actually incorrect: 3538 the real issue was non-portable code (with an incorrect comment) to 3539 convert an unsigned integer to a signed, negative integer. Incorrect 3540 behavior could occur with some C implementations and/or when mpfr_exp_t 3541 does not have the same size as long. So, fixed this portability issue, 3542 and avoid an assertion failure in a very rare case. 3543 3544 [src/random_deviate.c] Corrected an assertion. → Test failures. 3545 3546 [tests/tests.c] Added a note about tests done in "src/init2.c". 3547 3548 [src/init2.c] Check that __MPFR_EXP_MAX == MPFR_EXP_MAX too. 3549 3550 [tests/tget_z.c] Updated comment to mention that mpfr_get_z_2exp is 3551 tested by this file. 3552 3553 [src/mpfr-mini-gmp.c] Fixed bug in gmp_urandomb_ui when the parameter n 3554 is equal to the width of unsigned long. 3555 Note: This case occurs in function random_deviate_generate() from 3556 src/random_deviate.c with a 32-bit ABI (thus 32-bit unsigned long) 3557 since n = W, which is defined as 32. 3558 35592020-09-14 Vincent Lefèvre <vincent@vinc17.net> 3560 3561 [src/mpfr-mini-gmp.c] Simplified gmp_randseed_ui (note: the code in 3562 r14114 and r14115 was not the intended one due to the wrong variable 3563 in srand). 3564 3565 [src/mpfr-mini-gmp.c] Corrected latest change for gmp_randseed_ui. 3566 3567 With mini-gmp, use the standard rand() and srand() functions instead of 3568 the POSIX (thus less portable) lrand48() and srand48(). 3569 35702020-09-10 Vincent Lefèvre <vincent@vinc17.net> 3571 3572 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v". 3573 Note: this includes URL updates. 3574 3575 Updated URLs. 3576 3577 [src/sub1sp.c] Updated a URL (http → https). 3578 3579 [doc/README.dev] Updated URLs. 3580 3581 [configure.ac] Updated a URL (http → https). 3582 3583 [configure.ac] Updated a URL concerning the "Intel® C++ Compiler 9.0 3584 for Linux Release Notes" (the URL was not archived). 3585 3586 Updated a freebsd.org URL (bug tracker). 3587 35882020-08-21 Vincent Lefèvre <vincent@vinc17.net> 3589 3590 [src,tests] Consistency: in prototypes, changed 3591 const mpfr_t to mpfr_srcptr 3592 mpfr_t to mpfr_ptr 3593 (except for mpfr_t *), as this is equivalent (the array is converted 3594 to a pointer) and the mpfr_srcptr/mpfr_ptr form is the usual one. 3595 35962020-08-20 Vincent Lefèvre <vincent@vinc17.net> 3597 3598 [doc/README.dev] Added a note about "string + integer" expressions. 3599 3600 [tests/tsprintf.c] Replaced another occurrence of the code triggering 3601 the warning "adding 'int' to a string does not append to the string 3602 [-Wstring-plus-int]" with Clang (at least with 3.5 and above). 3603 36042020-08-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3605 3606 fixed a compiler warning found by Clang 10.0.1 on armv8-a (Samsung S8 3607 aarch64-unknown-linux-android): 3608 3609 tsprintf.c:1613:27: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int] 3610 strcat (buf, ",0" + (j % 3 != 0)); 3611 ~~~~~^~~~~~~~~~~~~~ 3612 36132020-08-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3614 3615 fixed a compiler warning found by Clang 10.0.1 on armv8-a (Samsung S8 3616 aarch64-unknown-linux-android): 3617 3618 ./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] 3619 (double) randlimb () / MPFR_LIMB_MAX; 3620 ~ ^~~~~~~~~~~~~ 3621 ../src/mpfr-impl.h:1277:28: note: expanded from macro 'MPFR_LIMB_MAX' 3622 #define MPFR_LIMB_MAX ((mp_limb_t) -1) 3623 ^~~~~~~~~~~~~~ 3624 36252020-08-09 Vincent Lefèvre <vincent@vinc17.net> 3626 3627 [doc/mpfr.texi] Updated the month. 3628 3629 [doc/mpfr.texi] In the paragraph about cases that are hard to round, 3630 also mention potentially exact cases. 3631 36322020-07-20 Vincent Lefèvre <vincent@vinc17.net> 3633 3634 [doc/README.dev] Added a paragraph on the issue with GCC and 3635 conversions between binary and decimal types. 3636 3637 [src/get_d128.c] Updated FIXME comment (after r14087). 3638 3639 [src/get_d128.c] Removed unused variable due to r14087. 3640 3641 [src/get_d128.c] For the special values, avoid double to _Decimal128 3642 conversions, as for such conversions, GCC generates from 2 to 3 MB in 3643 the shared library when the decimal encoding is BID, and there will be 3644 no fix in GCC: 3645 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96173 3646 We now use computations on _Decimal128 constants directly, which could 3647 thus be done at compile time. We expect no problems similar to double, 3648 as the _Decimal128 implementation should follow the IEEE 754 rules. 3649 This commit should avoid a large part of the problem reported at: 3650 https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21849&group_id=136 3651 36522020-07-15 Vincent Lefèvre <vincent@vinc17.net> 3653 3654 [tests/tset_ld.c] Improved an error message. 3655 36562020-07-13 Vincent Lefèvre <vincent@vinc17.net> 3657 3658 [tests/tests.c] Simplified the d_trace and ld_trace functions: 3659 we do not need a union (with its potentional padding) as there 3660 are no aliasing issues with unsigned char. 3661 3662 [tests/tset_ld.c] Fixed mpfr_out_str usage in error messages 3663 (see the change in r12520). 3664 3665 [tests/tget_ld_2exp.c] Corrected a function call in an error message. 3666 3667 [examples/version.c] "Compiler:" line: detect TCC (__TINYC__ macro). 3668 (merged r14078 from tests/tversion.c) 3669 3670 [tests/tversion.c] "Compiler:" line: detect TCC (__TINYC__ macro). 3671 36722020-07-12 Vincent Lefèvre <vincent@vinc17.net> 3673 3674 [src/get_d128.c] Updated the FIXME. 3675 3676 [src/get_d128.c] Added a FIXME to work around GCC bug 96173. 3677 36782020-07-10 Vincent Lefèvre <vincent@vinc17.net> 3679 3680 [src/jyn_asympt.c] Added an assertion. 3681 3682 [doc/README.dev] In the MPFR_CHECK_EXPENSIVE description, say that 3683 --enable-assert=full should not be used (too expensive, not needed). 3684 [tests/tjn.c] Added a related comment for the expensive bug20200703 3685 test (which may take more than 1 hour with --enable-assert=full). 3686 3687 [tests/tjn.c] Corrected indentation. 3688 36892020-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3690 3691 [tests/tjn.c] added another test 3692 3693 [src/jyn_asympt.c] fixed previous commit 3694 3695 [src/jyn_asympt.c] partly solved the slowness of jn(733333,733333) 3696 36972020-07-03 Vincent Lefèvre <vincent@vinc17.net> 3698 3699 [src/jyn_asympt.c] Replaced some MPFR_EXP by MPFR_GET_EXP. 3700 3701 [src/jyn_asympt.c] Added a log message. 3702 3703 [tests/tjn.c] Added testcase for bug reported by Alex Coplan: 3704 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96044 3705 mpfr_jn is very slow or doesn't terminate on (733333,733333). 3706 37072020-07-01 Vincent Lefèvre <vincent@vinc17.net> 3708 3709 [NEWS] For MPFR 4.1.0, added an item saying that TLS can safely be 3710 (re-)enabled on Sparc. 3711 37122020-06-29 Vincent Lefèvre <vincent@vinc17.net> 3713 3714 [tests/mpfr-test.h] Avoid a GCC bug on Sparc, at least when using TLS. 3715 The MPFR library itself is not affected, only a particular test. Normal 3716 code using the MPFR library should not be affected either, as the bug 3717 occurs when accessing __gmpfr_flags directly (and the public mpfr.h 3718 header file does not provide any macro that accesses an internal 3719 variable directly). So a workaround for the tests is the best solution. 3720 37212020-06-18 Vincent Lefèvre <vincent@vinc17.net> 3722 3723 [NEWS] Update for the next release. 3724 3725 [src/mpfr-longlong.h] Mention applied patch (in r14035). 3726 37272020-06-17 Vincent Lefèvre <vincent@vinc17.net> 3728 3729 [src/mpfr-longlong.h] Applied patch on 3730 https://gmplib.org/list-archives/gmp-bugs/2020-June/004807.html 3731 to fix add_ssaaaa and sub_ddmmss on arm / aarch64 (after a 3732 reverse-merge of r14032 and r13997), in order to resolve 3733 https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00017.html 3734 https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00059.html 3735 3736 [tests/tcmp_ui.c] Added a comment about a failing test with tcc if 3737 one adds tcc support for macros using __builtin_constant_p in mpfr.h 3738 by testing __TINYC__. 3739 Bug report against tcc: https://savannah.nongnu.org/bugs/?58606 3740 37412020-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3742 3743 [src/mpfr-longlong.h] disable buggy sub_ddmmss for aarch64 3744 37452020-06-15 Vincent Lefèvre <vincent@vinc17.net> 3746 3747 [doc/mpfr.texi] Corrected and detailed the description of 3748 mpfr_get_str_ndigits. 3749 3750 [src/get_str.c] Since the mpfr_get_str_ndigits function is in the 3751 public API, use MPFR_ASSERTN instead of MPFR_ASSERTD on the condition 3752 on the argument b in order to get an assertion failure (by default) 3753 if this condition is not satisfied. 3754 37552020-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3756 3757 [doc/mpfr.texi] specify the range of b for mpfr_get_str_ndigits 3758 37592020-06-14 Vincent Lefèvre <vincent@vinc17.net> 3760 3761 [tests/tdigamma.c] Increase the number of tests. 3762 37632020-06-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3764 3765 [src/digamma.c] fixed bug found while testing mpfr-4.1.0-rc1 3766 37672020-06-14 Vincent Lefèvre <vincent@vinc17.net> 3768 3769 [src/digamma.c] Added a FIXME. 3770 3771 [src/digamma.c] Replaced mpfr_get_exp by MPFR_GET_EXP. 3772 3773 [src/digamma.c] 3774 * Replaced some MPFR_EXP by MPFR_GET_EXP to check that the MPFR number 3775 has an exponent (i.e. it is not a special value). 3776 → Assertion failure in tdigamma (on x86_64). 3777 Note: this might be the cause of an unexpected loop (infinite loop?) 3778 on a Debian 10.4 POWER9 machine: 3779 https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00025.html 3780 * Added an integer overflow check on a precision. 3781 37822020-06-13 Vincent Lefèvre <vincent@vinc17.net> 3783 3784 [tests/tset_ld.c] In a test specific to x86 extended precision, in case 3785 of incorrect result, detect whether Valgrind is used and one gets the 3786 result obtained with Valgrind due to 3787 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890215 3788 https://bugs.kde.org/show_bug.cgi?id=421262 3789 (long double behaves as double); in this case, output a message without 3790 an error since Valgrind is the only cause of the miscalculation. 3791 3792 [tests/tset_ld.c] bug_20160907 (tests on subnormals): 3793 * Replaced an assertion by a test with detailed output. 3794 * Corrected a value in a test, which did not match the comment. 3795 3796 [tests] Skip tabort_defalloc1 and tabort_defalloc2 under Valgrind, as 3797 Valgrind complains due to the large allocation size. 3798 * mpfr-test.h, tests.c: added tests_run_within_valgrind() function to 3799 guess whether the test runs within Valgrind. 3800 * tabort_defalloc1.c, tabort_defalloc2.c: skip the test (exit code 77) 3801 if this function returns true. 3802 3803 [configure.ac] Improvements concerning the default CFLAGS with GCC. 3804 * Add -Wc++-compat option to CFLAGS with GCC ≥ 4.1 not in C++ mode. 3805 Changes based on Bruno Haible's patch suggested at 3806 https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00008.html 3807 (with some autoconf related fixes). 3808 * Output the $CFLAGS value that is eventually used. 3809 3810 [configure.ac] No longer add -Wc++-compat to CFLAGS when the compiler 3811 is GCC not in C++ mode (reverting the change done in r13406) since this 3812 option is not available before GCC 4.1: 3813 https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00008.html 3814 3815 [doc/mpfr.texi] ACM TOMS article: use the preferred DOI URL. 3816 3817 [tests/tfpif.c] Updated comment about the bug detected on AIX. 3818 3819 [tools/announce-text] For release candidates, automatically adapt the 3820 flow of the text. 3821 3822 [NEWS] Updated mpfr.org URLs (http → https). 3823 3824 [tools/announce-text] Better line lengths for release candidates. 3825 38262020-06-12 Vincent Lefèvre <vincent@vinc17.net> 3827 3828 [README] Added URL of the official GNU MPFR website and a note about the 3829 future migration, since InriaForge will shut down in December 2020. 3830 3831 [tests/tests.c] Removed a useless "#include <errno.h>" (added in r5252, 3832 useless since r5253). 3833 3834 [tests/tfpif.c] Fixed a bug (in the test) detected on AIX[*], where 3835 an fclose failed due to a previous read failure. At the same time, 3836 check that a read failure no longer occurs. Note: the read failure 3837 made mpfr_fpif_import fail, but this is a test where it is expected 3838 to fail, i.e. we now check that it fails for a good reason. 3839 [*] gcc119.fsffrance.org on the GCC Compile farm. 3840 3841 [tools/update-version] Improved a message. 3842 3843 [src/mpfr-longlong.h] Corrected a comment from GMP's longlong.h, which 3844 makes codespell complain in particular. 3845 3846 [tools/mpfrlint] Improved the __GMP_DECLSPEC test: 3847 * No longer exclude "src/mpfr.h". 3848 * Avoid false positives in "src/mpfr.h" and "src/mpfr-longlong.h". 3849 3850 [doc/mpfr.texi] Updated the month. 3851 3852 Updated version to 4.2.0-dev. 3853 3854 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v". 3855 38562020-06-11 Vincent Lefèvre <vincent@vinc17.net> 3857 3858 Renamed mpfr_total_order to mpfr_total_order_p for consistency with the 3859 other predicates (by convention, the function name should end with _p). 3860 3861 [NEWS] New function mpfr_total_order. Detailed mpfr_get_str_ndigits. 3862 3863 [doc/README.dev] Updated "To make a release". 3864 3865 [doc/README.dev] Updated "To make a release". 3866 3867 [src/Makefile.am] Updated -version-info to 7:0:1 for MPFR 4.1.0. 3868 3869 [NEWS] Additional details, in particular binary compatibility. 3870 3871 [NEWS] Some improvements. 3872 38732020-06-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3874 3875 [doc/mini-gmp] one more test is skipped now 3876 3877 [doc/mini-gmp] add test results with reduced limb size (int) 3878 38792020-06-11 Vincent Lefèvre <vincent@vinc17.net> 3880 3881 [doc/README.dev] Updated "To make a release". 3882 38832020-06-10 Vincent Lefèvre <vincent@vinc17.net> 3884 3885 [NEWS] Added release name for 4.1.0: "épinards à la crème". 3886 3887 [doc/mini-gmp] English usage improvement. 3888 3889 Fixed 2 issues with tests/tvalist.c: 3890 1. When building with mini-gmp (--with-mini-gmp=DIR) without 3891 optimizations (-O0), the build of tvalist was failing because 3892 the formatted output functions are not supported (this issue 3893 wasn't noticed with optimizations due to dead code elimination). 3894 Fix: this test is disabled with mini-gmp (not needed anyway). 3895 2. Dead code elimination with optimizations partly broke the goal 3896 of this test, i.e. checking that mpfr_vfprintf was available. 3897 This dead code was introduced in r7648 "Make sure that fct is 3898 used (avoid a warning)." (where fct = mpfr_vfprintf) but was 3899 actually not sufficient. 3900 Fix: call mpfr_vfprintf unconditionally, but on an empty string 3901 in order to avoid output to stdout. 3902 In addition to these changes in tests/tvalist.c, src/mpfr-impl.h could 3903 be simplified as a consequence. 3904 3905 Removed '# undef HAVE_STDARG' before '# include "config.h"' when it 3906 was used, as it was not always undefined (e.g. in tests/tsprintf.c) 3907 and there are no reasons to undefine this macro specifically. 3908 Note: this code was introduced in r2665 (2004-02-06), perhaps for 3909 the MPFR build inside GMP, which has been dropped a long time ago. 3910 3911 [tests/tvalist.c] Updated a comment. 3912 3913 [tests/tvalist.c] Correction when config.h is used (code copied from 3914 src/inits.c). 3915 39162020-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 3917 3918 [doc/mini-gmp] review 3919 39202020-06-10 Vincent Lefèvre <vincent@vinc17.net> 3921 3922 [NEWS] Typo in option name. 3923 3924 [src/mpfr-longlong.h] 3925 * Updated comment about this file and the changes against GMP 6.2.0. 3926 * Define __GMP_GNUC_PREREQ if it isn't defined (this is currently not 3927 needed since it is defined in gmp.h as used also there, but this is 3928 useful in case some future gmp.h version no longer defines it). 3929 3930 [src/mpfr-longlong.h] Update: applied the diff of GMP's longlong.h 3931 between GMP 6.1.0 and GMP 6.2.0, after reverting changesets 13251, 3932 11042, 11025, and 10727, as these changes are present in the diff. 3933 3934 [configure.ac] With mini-gmp, also check the availability of srand48. 3935 3936 [src/mpfr-mini-gmp.c] For gmp_randseed_ui, which uses srand48, use 3937 a portable version of the conversion from unsigned long to long. 3938 3939 [doc/mini-gmp] Note also that the random functions are not thread-safe. 3940 3941 [doc/mini-gmp] Major update. 3942 3943 [NEWS] Removed a FIXME (no problems found). 3944 39452020-06-09 Vincent Lefèvre <vincent@vinc17.net> 3946 3947 [tests/tversion.c] Code style: replaced (mp_limb_t) -1 by MPFR_LIMB_MAX. 3948 3949 [src/mul_ui.c] Bug fix: in the code where MPFR_LONG_WITHIN_LIMB is 3950 not defined, update the flags (needed for the possible overflow). 3951 3952 [tests/tmul_ui.c] Added an overflow check that fails in MPFR_RNDZ with 3953 mini-gmp and mp_limb_t < long (e.g. "-DMINI_GMP_LIMB_TYPE=short"). 3954 3955 [tests/tgeneric.c] In the MPFR_SUSPICIOUS_OVERFLOW case, output yprec. 3956 3957 [src/mpfr-impl.h] Changed the code that defines MPFR_LONG_WITHIN_LIMB 3958 in order to support mini-gmp with -DMINI_GMP_LIMB_TYPE=... 3959 3960 [src/get_ld.c] Fixed build failure with GMP_NUMB_BITS == 8 due to the 3961 use of uint64_t in src/get_ld.c, while <stdint.h> was not included: 3962 replaced it by "unsigned long long", which does not need a specific 3963 header (an exact 64-bit type is not needed, we just need at least a 3964 64-bit width, which unsigned long long is guaranteed to have). 3965 Note: unsigned long long may not be available with a pre-C99 compiler, 3966 but this is not worse than uint64_t. This limitation is currently OK 3967 as GMP_NUMB_BITS == 8 support is just for testing. 3968 3969 [acinclude.m4] Make MPFR_CHECK_MP_LIMB_T_VS_LONG and 3970 MPFR_CHECK_MP_LIMB_T_VS_INTMAX similar: 3971 * Use AC_LINK_IFELSE in MPFR_CHECK_MP_LIMB_T_VS_LONG too: this 3972 is safer than AC_COMPILE_IFELSE, as it will detect undefined 3973 function-like macros. 3974 * Define MPFR_USE_STATIC_ASSERT in MPFR_CHECK_MP_LIMB_T_VS_INTMAX 3975 too in order to make sure that a static assertion is used (not 3976 the MPFR_ASSERTN fallback). 3977 Note: These constitute redundant safeguards because if MPFR_ASSERTN 3978 is used, it will be regarded as a function since the macro is not 3979 defined in this context, and linking will fail as a consequence. 3980 But this redundancy will protect more against MPFR code evolution. 3981 3982 [acinclude.m4] Fixed MPFR_CHECK_MP_LIMB_T_VS_LONG macro by forcing 3983 MPFR_USE_STATIC_ASSERT to 1 before including mpfr-sassert.h, i.e. 3984 by requiring static assertions: because AC_COMPILE_IFELSE is used 3985 (i.e. just compiling, no linking), the test could incorrectly succeed 3986 when MPFR_USE_STATIC_ASSERT was not defined, i.e. whatever the value 3987 of "(mp_limb_t) -1 >= (unsigned long) -1"; indeed, in this case, 3988 MPFR_ASSERTN() was used instead of a static assertion, and since the 3989 macro was not defined here, MPFR_ASSERTN was regarded as a function 3990 (without a prototype), which was fine for compiling (except when the 3991 compiler is configured to regard warnings such as missing prototype 3992 as errors). In short, one could get "yes" while long was larger than 3993 mp_limb_t. 3994 Note: In uncommon cases (non-standard compiler...), one can still get 3995 "no" while a long fits in mp_limb_t, but this isn't much an issue as 3996 the MPFR code should work in such a case. Moreover, src/mpfr-impl.h 3997 will also have the chance to set MPFR_LONG_WITHIN_LIMB in practice. 3998 3999 Removed MPFR_DECL_STATIC_ASSERT macro as it was buggy, unused, rather 4000 useless, and it had drawbacks. Details: 4001 * In src/mpfr-sassert.h, the default definition of this macro in the 4002 MPFR_USE_STATIC_ASSERT case ended with a spurious ";". Since this 4003 macro was unused, this wasn't noticeable... except in the configure 4004 test for static assertions, which failed in some cases (e.g. with 4005 CFLAGS="-std=c99 -pedantic-errors -Wno-error=overlength-strings") 4006 for this reason, which had the effect to let MPFR_USE_STATIC_ASSERT 4007 undefined, while static assertions were actually working. 4008 * Still in src/mpfr-sassert.h, but when MPFR_USE_STATIC_ASSERT is not 4009 defined, the MPFR_DECL_STATIC_ASSERT(c) expanded to nothing, which 4010 would yield invalid code as 4011 MPFR_DECL_STATIC_ASSERT(some_assertion); 4012 would yield an extra ";" (about the same issue as above). Given 4013 the fact that the portable MPFR_USE_STATIC_ASSERT code does not 4014 work with this compiler, it is not clear whether this is fixable 4015 in a completely reliable way. 4016 * MPFR_DECL_STATIC_ASSERT can be replaced by MPFR_STAT_STATIC_ASSERT 4017 after moving it to the statement section of a function, with almost 4018 no drawbacks (just a bit readability in some cases?). 4019 * When MPFR_USE_STATIC_ASSERT is not defined, MPFR_STAT_STATIC_ASSERT 4020 will check the assertion at run time (for free, since the result is 4021 known at compile time), while MPFR_DECL_STATIC_ASSERT would not be 4022 able to do anything useful. 4023 Changes: 4024 * acinclude.m4: removed the test of MPFR_DECL_STATIC_ASSERT. 4025 * src/mpfr-sassert.h: removed MPFR_DECL_STATIC_ASSERT definitions. 4026 * tune/tuneup.c: removed MPFR_DECL_STATIC_ASSERT redefinition. 4027 40282020-06-08 Vincent Lefèvre <vincent@vinc17.net> 4029 4030 [acinclude.m4] MPFR_CHECK_MP_LIMB_T_VS_LONG: updated comment to say 4031 that using MPFR_ASSERTN (as the code tries to do if static assertions 4032 are not supported, but currently fails) would be incorrect. 4033 4034 [acinclude.m4] In MPFR_CHECK_MP_LIMB_T_VS_INTMAX, do the test only if 4035 intmax_t is defined (assuming that it is iff uintmax_t is defined). 4036 4037 [tests/tversion.c] Also output the results of the detection of 4038 "long within limb" and "intmax_t within limb". 4039 40402020-06-04 Vincent Lefèvre <vincent@vinc17.net> 4041 4042 [configure.ac] Removed an obsolete FIXME, which is probably wrong. 4043 4044 [configure.ac] Updated a comment, replacing a resolved FIXME. 4045 4046 [acinclude.m4] MPFR_CHECK_DBL2INT_BUG test: avoid potentially reserved 4047 exit status. 4048 4049 [acinclude.m4] Fixed r13938: the new MPFR_C_REALFP_FORMAT macro also 4050 needs to take the printf length modifier in argument. 4051 4052 [acinclude.m4] Improved the code to determine the format of double, 4053 resolving the FIXME. The issue was that it used an AC_RUN_IFELSE, 4054 so that the format could not be determined when cross-compiling. 4055 The code to determine the format of long double did not have such 4056 an issue: the object file was analyzed by an awk script. Since a 4057 long double can have the same format as a double, this code was 4058 already able to recognize a double, in particular. So the change 4059 consisted in slightly adapting this code to accept the tested type 4060 as an argument ("double" or "long double", the mpfr_cv_… variable 4061 name being obtained thanks to AS_VAR_PUSHDEF) and reusing it for 4062 the detection of the format of double. 4063 4064 [acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT cleanup: 4065 * Removed an unused AH_VERBATIM. 4066 * Removed "not available" condition, no longer possible since r13936. 4067 4068 [acinclude.m4] Fix concerning r13935: also removed code that tested 4069 the availability of long double. This code was useless since it was 4070 just outputting "not available" if long double was missing, and one 4071 would get an error later since MPFR requires long double. But since 4072 long double is in ISO C89, it is useless to add a test just to return 4073 an error for pre-C89 compilers. 4074 4075 [acinclude.m4] Removed "AC_CHECK_TYPES([long double])", whose only 4076 purpose is to define a HAVE_LONG_DOUBLE macro. 4077 [configure.ac] Removed HAVE_LONG_DOUBLE from the cleanup: no longer 4078 needed with the change in acinclude.m4. 4079 40802020-06-03 Vincent Lefèvre <vincent@vinc17.net> 4081 4082 [configure.ac] Minor change in a comment. 4083 4084 Cleanup about the function detection by autoconf. 4085 * acinclude.m4: removed the detection of memmove, memset and strtol, 4086 which was not used (a macro "HAVE_..." was defined... to be removed 4087 in configure.ac!); for AC_CHECK_FUNCS, remove options starting with 4088 "-Werror" as they can yield a spurious failure due to the way this 4089 test is done (this occurred on memmove and memset with GCC due to 4090 builtins, and similar issues could still occur in practice with the 4091 remaining functions in the AC_CHECK_FUNCS list). 4092 * configure.ac: removed HAVE_STRTOL from the macro cleanup: no longer 4093 needed since strtol has been removed from the AC_CHECK_FUNCS list. 4094 4095 [acinclude.m4] Minor improvement: in the MPFR_CHECK_GMP test, changed 4096 the exit status values 1..3 to 81..83 in order to avoid confusion, as 4097 low values can typically be returned in case of compile or link error. 4098 40992020-06-02 Vincent Lefèvre <vincent@vinc17.net> 4100 4101 [tests/memory.c] Updated a comment. 4102 4103 [src/mpfr-longlong.h] Added code to check that mpfr-longlong.h is not 4104 included directly; MPFR_NEED_LONGLONG_H must be defined instead. 4105 4106 [acinclude.m4] To complete r13928, one also needs to define 4107 MPFR_NEED_INTMAX_H here when mpfr-intmax.h is used. 4108 4109 [src/{mpfr-impl.h,mpfr-intmax.h}] Added code to check that mpfr-intmax.h 4110 is not included directly; MPFR_NEED_INTMAX_H must be defined instead. 4111 41122020-06-01 Vincent Lefèvre <vincent@vinc17.net> 4113 4114 Bug fixes and cleanup related to "src/mpfr-intmax.h" by introducing 4115 a new macro MPFR_NEED_INTMAX_H, which should be defined instead of 4116 using: #include "mpfr-intmax.h" 4117 4118 Details on the bugs fixed: 4119 * The code added in r13916 forgot a #include <limits.h> since this 4120 code does a test on ULLONG_MAX. With the cleanup, <limits.h> is 4121 already always included by mpfr-impl.h (early enough). 4122 * In src/get_str.c and tests/memory.c, a #include "config.h" was 4123 missing before #include "mpfr-intmax.h"; this issue would affect 4124 platforms where "config.h" is needed and where <inttypes.h> or 4125 <stdint.h> does not exist or does not work. 4126 41272020-06-01 Vincent Lefèvre <vincent@vinc17.net> 4128 4129 [tests/tgamma.c] For the non-regression test added in r13907, one 4130 also needs to temporarily increase the memory limit, thus require 4131 MPFR_CHECK_LARGEMEM too. 4132 41332020-05-26 Vincent Lefèvre <vincent@vinc17.net> 4134 4135 [acinclude.m4] If decimal floats are explicitly disabled, do not do 4136 the check of the bit-field ordering for _Decimal128. 4137 4138 [acinclude.m4] Fixed detection of bit-field ordering for _Decimal128: 4139 a compiler error with exit status 1 was mixed up with little endian. 4140 41412020-05-24 Vincent Lefèvre <vincent@vinc17.net> 4142 4143 [src/mpfr-intmax.h] Added support for Silicon Graphics IRIX 6.5 (1998) 4144 with native /usr/bin/cc, which knows the long long type but defines 4145 ULONGLONG_MAX, etc. instead of ULLONG_MAX, etc. 4146 4147 [tests/tget_ld_2exp.c] Reverted r13914 as we still need to support 4148 pre-C99 compilers (and this change was useless). 4149 If C99 syntax is needed, there should be a configure test, and the 4150 code should be conditional. 4151 41522020-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4153 4154 [tests/tget_ld_2exp.c] put expected value in hex in bug20180904() 4155 41562020-05-20 Vincent Lefèvre <vincent@vinc17.net> 4157 4158 [doc/README.dev] "To make a release": mention MPFR_CHECK_EXPENSIVE. 4159 41602020-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4161 4162 [tests/tgamma.c] added comment about bug fix 4163 4164 [src/bernoulli.c] improve initial precision in mpfr_bernoulli_internal() 4165 (avoid failures for n <= 10000) 4166 4167 [src/bernoulli.c] fix bug with non-regression test added in r13907 4168 4169 [src/bernoulli.c] temporary fix for the bug in mpfr_gamma, something must be 4170 wrong in the error analysis of mpfr_bernoulli_internal() 4171 4172 [doc/README.dev] added MPFR_CHECK_EXPENSIVE 4173 [tests/tgamma.c] use MPFR_CHECK_EXPENSIVE 4174 4175 added non-regression test for bug reported by Frithjof Blomquist 4176 41772020-05-04 Vincent Lefèvre <vincent@vinc17.net> 4178 4179 [tools/mpfrlint] Use of codespell: better workaround to python ugliness. 4180 41812020-04-27 Vincent Lefèvre <vincent@vinc17.net> 4182 4183 [doc/mpfr.texi] Section "Rounding" / even-rounding rule: the odd 4184 radices β are actually not concerned since in such radices, β^k 4185 is always odd, so that the exponent does not matter. 4186 4187 [doc/mpfr.texi] In Section "Rounding", for MPFR_RNDN, added a note 4188 about the even-rounding rule in particular cases: 1-digit precision 4189 and odd radices. 4190 Note: A short explanation was already in the mpfr_get_str description, 4191 which is where the issue could occur at the time the minimum precision 4192 of MPFR numbers was 2. Now that the minimum precision is 1, this rule 4193 in such special cases is more general. 4194 4195 [doc/mpfr.texi] + "than": also in a comment. 4196 4197 [doc/mpfr.texi] Corrected a typo. Changed "{less,greater} or equal to" 4198 to the more common "{less,greater} than or equal to". 4199 42002020-04-26 Vincent Lefèvre <vincent@vinc17.net> 4201 4202 [doc/mpfr.texi] In the paragraph on mpfr_rnd_t, give a reference 4203 to Section "Rounding". 4204 4205 [doc/mpfr.texi] s/can not/cannot/ 4206 4207 [doc/mpfr.texi] Improved Section "Rounding" even more: 4208 * Added a note about the sign of the result (important for 0). 4209 * Described the directed rounding modes (BTW, this notion of 4210 "directed rounding modes" was used but never defined). 4211 4212 [doc/mpfr.texi] Improved the description of the rounding modes: 4213 * Be more clear that MPFR_RNDN uses the even rounding rule. 4214 * In "two representable numbers", add "consecutive". 4215 * Be more general than radix 2 (due to conversions to a string). 4216 * Consistent typography. 4217 42182020-04-25 Vincent Lefèvre <vincent@vinc17.net> 4219 4220 [doc/mpfr.texi] 4221 * mpfr_init2: mention mpfr_prec_round; added a note about 4222 memory allocation. 4223 * mpfr_prec_round: clarification ("new allocation" could be 4224 surprising since one needs less memory). 4225 42262020-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4227 4228 [doc/mpfr.texi] document that mpfr_prec_round does no new allocation 4229 in case the allocated memory is enough 4230 42312020-04-22 Vincent Lefèvre <vincent@vinc17.net> 4232 4233 [src/atan.c] Removing the FIXME: I can't see anything wrong in the 4234 MPFR code. This could be a bug in GCC's analyzer (which is currently 4235 experimental). And GCC bug 94713 in the analyzer prevents debugging 4236 as it makes impossible to track uninitialized values: warnings do not 4237 occur the first time an uninitialized value occurs. 4238 4239 [src/atan.c] Added an assertion. 4240 4241 [src/atan.c] Reduce the number of mpz_get_ui calls with assertions. 4242 4243 [src/atan.c] Added a FIXME. 4244 42452020-04-14 Vincent Lefèvre <vincent@vinc17.net> 4246 4247 [doc/texinfo.tex] Update to 2020-02-11.09 with "autoreconf -i -f" 4248 under Debian/unstable. 4249 Note: The generated mpfr.html and mpfr.info files remain the same. 4250 In mpfr.pdf, there are minor changes concerning horizontal spacing 4251 in paragraphs with a URL. 4252 42532020-04-11 Vincent Lefèvre <vincent@vinc17.net> 4254 4255 [tests/tget_set_d64.c] Fixed missing "#if _MPFR_IEEE_FLOATS" that 4256 became visible with r13878 now that the encoding of decimal floats 4257 can be detected at compile time. But by fixing the defined macros 4258 manually, this issue could be visible before r13878. 4259 42602020-04-10 Vincent Lefèvre <vincent@vinc17.net> 4261 4262 Reworked decimal support and detection, resolving FIXMEs. 4263 * INSTALL, acinclude.m4, configure.ac: --enable-decimal-float can 4264 take new values. Change of macro DPD_FORMAT (DPD was assumed in 4265 case of cross-compilation, which could be wrong) to 3 new macros: 4266 DECIMAL_DPD_FORMAT, DECIMAL_BID_FORMAT, DECIMAL_GENERIC_CODE. 4267 * doc/README.dev: documented these 3 new macros. 4268 * src/mpfr-impl.h: the detection of the BID encoding can now be 4269 done at compile time when GCC defines __DECIMAL_BID_FORMAT__ 4270 (as on x86); support of the 3 new macros. 4271 * src/{get_d64.c,set_d64.c,set_d128.c}: update. 4272 * tests/{tget_set_d64.c,tget_set_d128.c,tversion.c}: update. 4273 42742020-04-08 Vincent Lefèvre <vincent@vinc17.net> 4275 4276 Updated URLs of the GCC mailing-list archives. 4277 42782020-04-06 Vincent Lefèvre <vincent@vinc17.net> 4279 4280 [src/mpfr-gmp.h] Updated FIXME about AC_FUNC_ALLOCA (in 2019-01, I 4281 already noticed a probable bug in the AC_FUNC_ALLOCA description, 4282 but forgot about it). 4283 4284 [doc/mpfr.texi] Updated the month. 4285 4286 [doc/mpfr.texi] Formatted output functions: added a comment with the URL 4287 of the bug report. 4288 4289 [NEWS,doc/mpfr.texi] Documented the improvement in the formatted output 4290 functions (mpfr_printf, etc.) with an empty precision field, about 4291 trailing zeros. 4292 42932020-04-03 Vincent Lefèvre <vincent@vinc17.net> 4294 4295 [tests/tsub.c] Corrected MPFR_ASSERTD to MPFR_ASSERTN. 4296 4297 [tests/tsub.c] Reverted r13862 and fixed the test_ubf test: A random 4298 precision was too small, so that an input for the test was not computed 4299 exactly (I had modified the values of the inputs for better tests, but 4300 forgot to change the minimum precision). Also check that the inputs are 4301 computed exactly (which is what I often do, but here, I had forgotten), 4302 in order to make errors like the above one easier to understand in case 4303 the test will have to be modified later. 4304 Note: With the incorrect input, the mpfr_sub1 result and flags were 4305 actually correct, so that this was only a bug in the test. 4306 43072020-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4308 4309 [INSTALL] update CompCert instructions 4310 43112020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4312 4313 [INSTALL] fixed CompCert instructions 4314 43152020-04-02 Vincent Lefèvre <vincent@vinc17.net> 4316 4317 [tests/tset_ld.c] Reverted r13858: the check_overflow test was already 4318 in MPFR 4.0.1 and was succeeding on armv5tejl-unknown-linux-gnueabi, 4319 which had mpfr_cv_c_long_double_format='IEEE double, little endian'. 4320 The issue should be investigated. 4321 Note: MPFR_LDBL_MANT_DIG may be larger than the actual number of bits, 4322 but this should not cause a failure in the tests. 4323 4324 [tests/tget_ld_2exp.c] Proper fix: the bug20180904 test was designed 4325 for the x87 extended precision, so enable it only in this case. 4326 43272020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4328 4329 [tests/tsub.c] modify test_ubf() to always hit a current failing test 4330 43312020-04-02 Vincent Lefèvre <vincent@vinc17.net> 4332 4333 [configure.ac] Fixed the change done in r13853 (about removed macros), 4334 making the code simpler and more maintainable at the same time. 4335 43362020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4337 4338 [INSTALL] added configuration for CompCert test 4339 43402020-04-02 Vincent Lefèvre <vincent@vinc17.net> 4341 4342 [src/set_ld.c] Removed obsolete workaround due to LDBL_MAX being buggy 4343 on old i386 systems (the tests were not using this workaround). 4344 43452020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4346 4347 [tests/tget_ld_2exp.c] fixed for case where long double = double 4348 [tests/tset_ld.c] likewise 4349 43502020-04-02 Vincent Lefèvre <vincent@vinc17.net> 4351 4352 [configure.ac] Moved MPFR_CONFIGS invocation: MPFR_CONFIGS uses LDFLAGS, 4353 thus must be invoked after LDFLAGS has been determined completely. 4354 43552020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4356 4357 [INSTALL] now all tests pass with compcert 4358 4359 [acinclude.m4] added missing LDFLAGS for long double test 4360 43612020-04-02 Vincent Lefèvre <vincent@vinc17.net> 4362 4363 [doc/README.dev] Added HAVE_ALLOCA description. 4364 4365 [configure.ac] Do not remove the HAVE_ALLOCA macro, which is now used 4366 by MPFR to determine the default MPFR_ALLOCA_MAX value. 4367 43682020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4369 4370 [INSTALL] update CompCert instructions 4371 43722020-04-02 Vincent Lefèvre <vincent@vinc17.net> 4373 4374 [tests/tversion.c] Output whether MPFR is built with the GMP build, 4375 and the MPFR_ALLOCA_MAX value if not. 4376 4377 [src/mpfr-gmp.h] If HAVE_ALLOCA is not defined, i.e. if alloca() is 4378 not available (as detected by the configure script), then set the 4379 default MPFR_ALLOCA_MAX value to 0 so that alloca() is not used. 4380 43812020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4382 4383 [INSTALL] added instructions for CompCert 4384 43852020-04-02 Vincent Lefèvre <vincent@vinc17.net> 4386 4387 [doc/README.dev] Updated MPFR_ALLOCA_MAX description. 4388 4389 [src/mpfr-gmp.h] When MPFR_ALLOCA_MAX = 0 (set at configure time), 4390 do not reference alloca() since we don't need it. 4391 43922020-03-31 Vincent Lefèvre <vincent@vinc17.net> 4393 4394 [doc/mpfr.texi] About mpfr_printf with %Re and empty precision field, 4395 added a comment with URLs of the discussion and the bug report. 4396 43972020-03-30 Vincent Lefèvre <vincent@vinc17.net> 4398 4399 [src/sub1.c] Typo in a comment. 4400 4401 [configure.ac] Updated message output when the gmp.h vs libgmp test 4402 fails: another cause may be that LD_RUN_PATH is not honored (problem 4403 seen under OpenBSD 6.6 / gcc302.fsffrance.org). 4404 44052020-03-27 Vincent Lefèvre <vincent@vinc17.net> 4406 4407 [tests/tset_sj.c] Forgot a "#ifndef NPRINTF_J" for printf("%jd",...). 4408 4409 [src/set_uj.c] Fixed underflow detection. 4410 4411 [src/set_uj.c] Added early overflow detection to avoid a possible 4412 integer overflow. Added a FIXME (incorrect underflow detection). 4413 4414 [tests/tset_sj.c] Added tests of mpfr_set_sj_2exp and mpfr_set_uj_2exp 4415 in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN, 4416 MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX, 4417 MPFR_EXP_MAX-7 to MPFR_EXP_MAX (like in tset_si.c, see r13808), but 4418 also exponents INTMAX_MIN and INTMAX_MAX. This shows bugs in set_uj.c, 4419 to be fixed... 4420 4421 [src/set_sj.c] Coding style. 4422 4423 [src] Moved the definition of the numberof() macro from mpfr-gmp.h to 4424 mpfr-impl.h in order to always use our own. Also make sure that the 4425 type is signed, so that the value can be used in arbitrary expressions 4426 without the risk of silently switching to unsigned arithmetic. 4427 44282020-03-26 Vincent Lefèvre <vincent@vinc17.net> 4429 4430 [tests/texpm1.c] Updated the bad_cases() parameters to increase the 4431 proportion of generated bad cases. 4432 4433 [tests/tset_si.c] Forgot a cast for MPFR_EXP_FSPEC argument. 4434 4435 [doc/mpfr.texi] Updated the month. 4436 4437 Consistency: "a UBF" → "an UBF" since UBF stands for "unbounded float". 4438 4439 [src/mpfr-impl.h] Updated UBF comment about aliasing rules. 4440 4441 [src/mpfr-impl.h] Updated UBF comment about aliasing rules. 4442 4443 [src/mpfr-impl.h] Bug fix (MPFR_ZEXP(x) as used for an assignment 4444 could yield undefined behavior on platforms where mpfr_exp_t has 4445 trap representations); this is also a general improvement. 4446 4447 [tests/tsub.c] Avoid the build failure with -Werror=strict-aliasing by 4448 replacing x[…] by p[…] (but this doesn't eliminate the problem itself). 4449 4450 [src/mpfr-impl.h] UBF: updated comment: this breaks aliasing rules, but 4451 there isn't any other acceptable solution. 4452 Note: when trying to build MPFR without --enable-assert, with GCC and 4453 CFLAGS="-O2 -Werror=strict-aliasing", the compilation of tests/tsub.c 4454 currently fails because of that. 4455 44562020-03-25 Vincent Lefèvre <vincent@vinc17.net> 4457 4458 [tests/tsub.c] Fixed tests on UBF. 4459 4460 [src/sub1.c] Fixed underflow handling in case c small (can occur only 4461 with UBF). 4462 4463 [tests/tfma.c] Minor correction. 4464 4465 [tests/tfma.c] Changed a RND_LOOP to RND_LOOP_NO_RNDF as the behavior 4466 with RNDF changed after a bug fix. 4467 4468 [tests/tsub.c] Completed tests for UBF (currently fail). 4469 4470 [src/sub1.c] Bug fix for UBF and MPFR_RNDF. 4471 4472 [src/set_{si,ui}_2exp.c] Bug fix in MPFR_LONG_WITHIN_LIMB defined case: 4473 added early underflow/overflow checking to avoid integer overflow or 4474 errors due to special exponent values. 4475 4476 [tests/tset_si.c] Added tests of mpfr_set_si_2exp and mpfr_set_ui_2exp 4477 in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN, 4478 MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX, 4479 MPFR_EXP_MAX-7 to MPFR_EXP_MAX, showing bugs in these functions when 4480 MPFR_LONG_WITHIN_LIMB is defined. 4481 44822020-03-24 Vincent Lefèvre <vincent@vinc17.net> 4483 4484 [tests/tsub.c] More tests on UBF. The results are not checked yet, 4485 but running the tests with UBsan could allow one to trigger bugs 4486 (such as the one fixed in r13806). 4487 4488 [src/sub1.c] If exp_b = MPFR_EXP_MIN, an integer overflow may occur in 4489 the "MAX (aq, bq) + 2 <= diff_exp" branch. This is possible only with 4490 UBF. Fixed this bug with an early underflow detection in the UBF case. 4491 4492 [tests/tfmma.c] Added extreme_underflow test: before the r13798 bug fix, 4493 this was triggering an integer overflow. 4494 4495 [tests/tsub.c] Corrected a function name. 4496 4497 [tests/tsub.c] More tests on UBF, in particular with an exponent change 4498 (including subnormal → normal and normal → overflow due to that). 4499 4500 [tests/tsub.c] Tests on UBF: underflow/overflow cases done. 4501 45022020-03-23 Vincent Lefèvre <vincent@vinc17.net> 4503 4504 [tests/tsub.c] More tests on UBF. 4505 4506 [src/mpfr-impl.h] UBF: reordered macro definitions. 4507 4508 [src] 4509 * mpfr-impl.h: define MPFR_UBF_GET_EXP macro. 4510 * add1.c, sub1.c: use this macro. 4511 4512 [src/sub1.c] Detect an underflow case (before the main detection) to 4513 avoid a possible integer overflow with UBF. 4514 4515 [tests/tsub.c] Added comments. 4516 4517 [tests/tsub.c] First tests on UBF. 4518 4519 [src/agm.c] Avoid a potential integer overflow with huge precisions. 4520 45212020-03-16 Vincent Lefèvre <vincent@vinc17.net> 4522 4523 [src/root.c] Removed useless cast in a comparison, as both operands are 4524 non-negative. 4525 4526 [src/rem1.c] 4527 * Portability fix: when mpfr_exp_t <= long (which is the default), 4528 an addition was done in unsigned integer arithmetic instead of 4529 signed integer arithmetic, with a conversion back to a signed 4530 type, i.e. with potentially implementation-defined behavior. 4531 There could also be an integer overflow on huge-precision values 4532 if mp_bitcnt_t > unsigned long. 4533 * Updated a comment. 4534 4535 [src/pow.c] 4536 * Portability fix: when mpfr_exp_t <= long (which is the default), 4537 an addition with a negative result was done in unsigned integer 4538 arithmetic instead of signed integer arithmetic, with a conversion 4539 back to a signed type, i.e. with implementation-defined behavior. 4540 There could also be an integer overflow on huge-precision values 4541 if mp_bitcnt_t > unsigned long. 4542 * Updated comments. 4543 4544 [src/cos.c] Updated a comment. 4545 4546 [src/cos.c] Updated a comment. 4547 4548 [src/const_log2.c] Corrected type for the return value of mpz_scan1. 4549 45502020-03-13 Vincent Lefèvre <vincent@vinc17.net> 4551 4552 [tests/tests.c] Revert a change done in r13783 for function bad_cases(): 4553 no longer fail if a generated value does not correspond to a bad case. 4554 But fail if the MPFR_CHECK_BADCASES environment variable is defined 4555 and too few bad cases are generated (less than 90%). 4556 [doc/README.dev] Document MPFR_CHECK_BADCASES. 4557 4558 [tests] Update to test the ternary value in test5rm() when possible, 4559 and support the exact cases. 4560 * tests.c: 4561 - test5rm(): modified the prototype again and the behavior. 4562 Now, either only one test is done and the ternary value is 4563 not checked, or the test is done in the 5 rounding modes and 4564 the ternary value is checked. 4565 - data_check(): corresponding update; updated description. 4566 - bad_cases(): test the exact cases too. 4567 * tatanh.c: for the bad_cases() call, reduce emax to avoid errors in 4568 the generation of bad cases due to the rounding of tanh(y) to 1, 4569 which does not correspond to a bad case for atanh, but to an exact 4570 case. 4571 * tlog1p.c: for the bad_cases() call, reduce emax to avoid errors in 4572 the generation of bad cases due to the rounding of expm1(y) to -1, 4573 which does not correspond to a bad case for log1p, but to an exact 4574 case. 4575 * trec_sqrt.c: corrected the bad_cases() call to avoid negative 4576 numbers. 4577 Note: the following tests 4578 GMP_CHECK_RANDOMIZE=5 ./tacos 4579 GMP_CHECK_RANDOMIZE=6 ./tatan 4580 GMP_CHECK_RANDOMIZE=4 ./tcos 4581 currently fail, but because of a change in r13783 (see associated log 4582 for the reason). To be fixed later. 4583 4584 [tests/tests.c] Modified the prototype of test5rm() to support a 4585 parameter "exact". Therefore the parameter "test_one" is now a boolean 4586 (the value 2 is no longer supported, as redundant with "exact"), and 4587 about data_check() with rnd = '*', the loop is now done in test5rm(), 4588 i.e. test5rm() is called with test_one being false. 4589 45902020-03-12 Vincent Lefèvre <vincent@vinc17.net> 4591 4592 [tests/tsqrt.c] For bad_cases(), use the same pos and psup parameters 4593 as in troot.c for "rootn[2]", allowing inexact cases. 4594 4595 [tests/tcbrt.c] For bad_cases(), use the same pos and psup parameters 4596 as in troot.c for "rootn[3]", allowing inexact cases. 4597 4598 [tests] 4599 * tests.c, function bad_cases(): updated/added debug messages; 4600 assume that the parameters are chosen in such a way that this 4601 test always generates hard-to-round cases (including exact cases), 4602 i.e. exit with an error if one does not get a bad case, otherwise 4603 this can leave unexpected failures unnoticed (either due to a bug 4604 in the MPFR library or due to poorly chosen parameters such as in 4605 troot.c until now). 4606 Note: ideally, this would require a proof, but it is better to get 4607 (unlikely) spurious failures with a non-default GMP_CHECK_RANDOMIZE 4608 value than missing important tests. 4609 * troot.c, bad_cases() invocation: 4610 - corrected the pos parameter: when n is even, it is useless to 4611 generate a negative number as the function is not defined (the 4612 inverse function generates a positive number, and the mismatch 4613 now yields a failure due to the change in bad_cases); when n is 4614 odd, generate as many negative numbers as positive ones. 4615 - for n ≤ 5, reduce the psup parameter in order to also generate 4616 inexact cases, instead of always exact cases. 4617 4618 [tests/tests.c] Added a TODO for bad_cases, as the exact cases are not 4619 tested yet. As a consequence, the bad_cases test added in tcbrt.c r13776 4620 is not really useful yet, as the cbrt bad cases are only exact cases. 4621 4622 [tests/tests.c] 4623 * test5rm: removed additional useless tests added in r6037 in the 4624 case test_one true and rnd = MPFR_RNDZ or MPFR_RNDA, since the 4625 description was a bit incorrect and this was used only by 4626 - data/digamma, where this yielded only duplicate tests (mode *); 4627 - data/li2, where mode z is used on a few tests and could be 4628 replaced by mode Z (i.e. test_one false) if need be; 4629 updated description and added details. 4630 * data_check: corrected/updated description. 4631 4632 [tests/tests.c] Minor change in an initialization. 4633 4634 [tests/tget_set_{d64,d128}.c] Added a FIXME and improved a message. 4635 4636 [acinclude.m4] Added a FIXME: in case of cross-compiling, the guess 4637 "DPD" can be wrong, e.g. for the build with MinGW under Linux. One 4638 does not get a failure just because of other issues in the code, 4639 forcing the portable implementation of the decimal functions. 4640 46412020-03-11 Vincent Lefèvre <vincent@vinc17.net> 4642 4643 Added bad_cases tests for mpfr_cbrt. 4644 4645 [src/cbrt.c] Improved the algorithm in the case the precision of the 4646 input is larger than 3n, where n is the precision of the output, + 1 4647 if the rounding mode is MPFR_RNDN: instead of truncating the output, 4648 call mpz_root on the truncated input. 4649 4650 [tests/tcbrt.c] Test the ternary value on other exact cases. 4651 4652 [tests/tcbrt.c] Test the ternary value on special cases. 4653 4654 [src/cbrt.c] Description of the algorithm: improvement; corrected the 4655 end, which was incorrect and did not match the code (the comment was 4656 introduced in r2057 and was already incorrect in the round-down case; 4657 then the round-to-nearest case was improved in r2070, but the comment 4658 was not updated). 4659 4660 [src/cbrt.c] Description of the algorithm: correction; added a TODO. 4661 46622020-03-10 Vincent Lefèvre <vincent@vinc17.net> 4663 4664 [src/cbrt.c] Description of the algorithm: corrected indentation; 4665 renamed variable r to t in order to avoid confusion with the code 4666 (where r has a different meaning). 4667 4668 [src/cbrt.c] Clarified a comment. 4669 4670 [src/cbrt.c] Resolved the second FIXME and simplified the code 4671 (basically by removing duplicate code). 4672 4673 [src/cbrt.c] Description of the algorithm: 4674 * Since there was no upper bound on s, let's remove the upper bound 4675 on m (this now matches the code). 4676 * Replaced the FIXME by one due to the lack of upper bound on s. 4677 4678 [src/cbrt.c] Added another FIXME as the code does not match the 4679 algorithm described in a comment. 4680 4681 [src/cbrt.c] Improved a condition to avoid operations that correspond 4682 to a no-op. 4683 4684 [src/cbrt.c] Added an assertion. 4685 4686 [src/cbrt.c] Code cleanup and simplification. Added logging messages and 4687 a FIXME about a comment (coming from r2057 with its associated code). 4688 4689 [src/cbrt.c] Removed a useless cast on a comparison operand, since 4690 both operands are non-negative. 4691 4692 [src/atan.c] Added assertions. 4693 4694 [tools/mpfrlint] Workaround to Debian bug 953369 in libpython3.8-minimal 4695 for the codespell invocation. 4696 46972020-03-09 Vincent Lefèvre <vincent@vinc17.net> 4698 4699 [src/eint.c] Bug fix: possible integer overflow with some 4700 C implementations (or some _MPFR_PREC_FORMAT / _MPFR_EXP_FORMAT values) 4701 due to the use of incorrect integer types. 4702 4703 [src/eint.c] Added other logging messages. 4704 4705 [src/eint.c] Added some logging messages. 4706 47072020-03-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4708 4709 [tests/tsin.c] added one test 4710 47112020-03-04 Vincent Lefèvre <vincent@vinc17.net> 4712 4713 [src/sub1.c] cancel: also log its value; range checking/tracking. 4714 4715 [src/cmp2.c] Added a comment giving the range of the value returned 4716 in "cancel" and explaining why there is no integer overflow in the 4717 computation of this value. 4718 4719 [src/cmp2.c] Comment: some absolute values are not needed (again). 4720 4721 [src/cmp2.c] Minor correction for |EXP(b) - EXP(c)| >= MPFR_EXP_MAX. 4722 4723 [src/cmp2.c] Better explanation when |EXP(b) - EXP(c)| >= MPFR_EXP_MAX. 4724 47252020-03-03 Vincent Lefèvre <vincent@vinc17.net> 4726 4727 [src/cmp2.c] Finished the review of mpfr_cmp2: simplified the code even 4728 more; corrected/updated comments (in the case high_dif = 0, one can have 4729 dif = 1 if c has entirely been taken into account, so that the comment 4730 "dif > 1 here" was incorrect; only dif >= 1 is needed anyway). 4731 4732 [src/cmp2.c] Changed high_dif to type int since it is manipulated like 4733 a boolean. Updated comments. 4734 47352020-03-02 Vincent Lefèvre <vincent@vinc17.net> 4736 4737 [src/cmp2.c] Simplified the mpfr_cmp2 code and updated comments. 4738 4739 [src/cmp2.c] Updated comments. 4740 47412020-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4742 4743 [src/mpfr.h] added comment 4744 47452020-03-02 Vincent Lefèvre <vincent@vinc17.net> 4746 4747 [src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: improved comment. 4748 4749 [src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: added a detailed 4750 comment (the previous comment was not obsolete, but misleading). 4751 47522020-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4753 4754 [src/mpfr.h] removed obsolete comment (_MPFR_PREC_FORMAT=3 is the default 4755 under Linux x86_64) 4756 47572020-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4758 4759 [src/sin.c] increase initial precision even more 4760 47612020-03-01 Vincent Lefèvre <vincent@vinc17.net> 4762 4763 [tests/tpow.c] Replaced mpfr_cmp by !mpfr_equal_p for NaN detection. 4764 4765 [tests/tsin.c] Replaced obsolete function mpfr_mul_2exp by mpfr_mul_2ui. 4766 47672020-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4768 4769 [src/sin.c] increase initial precision when x is large 4770 47712020-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4772 4773 [src/rem1.c] workaround for efficiency bug in mpz_powm_ui, which was making 4774 argument reduction in mpfr_sin for huge x very slow. 4775 4776 Before: 4777 $ ./mfv5 -p113 -e16384 -d-2 mpfr_sin 4778 mpfr_sin: 3289620 / 3576511.59 / 6841956 4779 4780 After this commit: 4781 mpfr_sin: 166868 / 182661.01 / 343224 4782 47832020-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4784 4785 [tests/tpow.c] added one test 4786 4787 added value -2 for option -d to generate random number with exponent 4788 exactly e. Example: 4789 $ mfv5 -p113 -e16384 -d-2 -v mpfr_sin 4790 47912020-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4792 4793 [tests/tpow.c] added a test 4794 4795 [tests/tsin.c] fixed and completed check_binary128() 4796 47972020-02-28 Vincent Lefèvre <vincent@vinc17.net> 4798 4799 [src/cmp2.c] Started to review mpfr_cmp2. Minor changes. 4800 4801 [src/cmp2.c] Detailed a comment concerning UBF. 4802 48032020-02-27 Vincent Lefèvre <vincent@vinc17.net> 4804 4805 [tests/tsin.c] Cleanup of the latest test (note: mpfr_equal_p is better 4806 than mpfr_cmp as it makes the test fail on a NaN result). 4807 48082020-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4809 4810 [tests/tsin.c] added one test with precision 128 4811 48122020-02-27 Vincent Lefèvre <vincent@vinc17.net> 4813 4814 [src/mpfr.h] Updated a comment (underscore version of attribute name). 4815 4816 [tools/mpfrlint] Detect the use of the non-underscore version of the 4817 attribute names in mpfr.h (see README.dev). 4818 48192020-02-25 Vincent Lefèvre <vincent@vinc17.net> 4820 4821 [src/mpfr.h] Use the underscore version of the attribute names. 4822 [doc/README.dev] Added information on this subject. 4823 4824 [TODO] Added item on GNU Automake and -I options. 4825 48262020-02-14 Vincent Lefèvre <vincent@vinc17.net> 4827 4828 [src/mpfr-impl.h] Removed an incorrect comment before MPFR_TMP_INIT1 4829 (this macro does not allocate anything, and MPFR_TMP_INIT just after 4830 can allocate more than 1 limb). 4831 4832 [TODO] About the use of MPFR_MANT(x). 4833 48342020-02-13 Vincent Lefèvre <vincent@vinc17.net> 4835 4836 [TODO] Typo. 4837 48382020-02-12 Vincent Lefèvre <vincent@vinc17.net> 4839 4840 [tests/tcmpabs.c] Added missing tests of mpfr_cmpabs with NaN. 4841 4842 [tests/tcmpabs.c] For mpfr_cmpabs: like mpfr_cmpabs_ui, do each test 4843 in 4 different contexts, combinations of: 4844 * flags all unset or flags all set; 4845 * usual exponent range or reduced exponent range. 4846 Minor corrections in the old tests. 4847 4848 [tests/tcmpabs.c] For mpfr_cmpabs_ui: do each test in 4 different 4849 contexts, combinations of: 4850 * flags all unset or flags all set; 4851 * usual exponent range or reduced exponent range. 4852 48532020-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4854 4855 [tests/tcmpabs.c] added tests for mpfr_cmpabs_ui 4856 48572020-02-12 Vincent Lefèvre <vincent@vinc17.net> 4858 4859 [src/mpfr-impl.h] 4860 * MPFR_ALIAS: use the comma operator instead of "do ... while (0)" 4861 so that this macro can be used in an expression context. 4862 * MPFR_TMP_INIT_ABS, MPFR_TMP_INIT_NEG: use MPFR_ALIAS. 4863 4864 [src/mpfr.h] Added prototype for mpfr_cmpabs_ui. 4865 4866 [doc/mpfr.texi] Added mpfr_cmpabs_ui to Section "Added Functions" 4867 (API Compatibility). 4868 4869 [tests/trint.c] Replaced obsolete mpfr_cmp_abs by mpfr_cmpabs. 4870 4871 [doc/mpfr.texi] Typo from r13708. 4872 48732020-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4874 4875 [NEWS] mention new mpfr_cmpabs_ui 4876 4877 added new function mpfr_cmpabs_ui 4878 4879 renamed cmp_abs.c to cmpabs.c 4880 48812020-02-12 Vincent Lefèvre <vincent@vinc17.net> 4882 4883 [TODO] Typo. 4884 4885 [TODO] + Serialization / Deserialization (suggested by Frédéric Pétrot). 4886 I've also added an idea of implementation to reuse most of the code and 4887 change very little. 4888 4889 [src/ubf.c] 4890 * Optimized mpfr_init_get_zexp() for _MPFR_EXP_FORMAT <= 3 4891 (as in the default configuration). 4892 * Updated comments. 4893 4894 [src/mpfr-impl.h] Added UBF-related comments. 4895 4896 [src/mpfr-impl.h] Added UBF-related comments. 4897 4898 [src/mpfr-impl.h] Added a comment for UBF and types. 4899 49002020-02-11 Vincent Lefèvre <vincent@vinc17.net> 4901 4902 [src/mpfr-impl.h] Added a comment for INEXPOS. 4903 4904 [src/mpfr-impl.h] INEXPOS and VSIGN code improvement. 4905 4906 Removed duplicate macro definitions. 4907 4908 [tests/tfmma.c] Use mpfr_set_str instead of mpfr_set_d. 4909 4910 [src/sub1.c] Got rid of some goto's. Added log messages. 4911 49122020-02-10 Vincent Lefèvre <vincent@vinc17.net> 4913 4914 [src/sub1.c] Bug fix: the underflow case (possible with UBF, e.g. via 4915 mpfr_fmma or mpfr_fmms) was not tested in the case c small. 4916 Note: this completes r11418 and r12752 for underflow detection. 4917 4918 [src/sub1.c] Added log messages and checked the UBF cases yielding 4919 exp_b == MPFR_EXP_MAX and/or diff_exp == MPFR_EXP_MAX. 4920 49212020-02-08 Vincent Lefèvre <vincent@vinc17.net> 4922 4923 [src/vasprintf.c] Added log messages for MPFR_PREC_ARG ('P' specifier). 4924 4925 [tests/tsprintf.c] Fixed some tests: the 'P' specifier was missing. 4926 49272020-02-06 Vincent Lefèvre <vincent@vinc17.net> 4928 4929 [src/fmma.c] Reverted the mpfr_check_range from r13688. 4930 The exponent range has not been extended by mpfr_fmma_aux, and the 4931 result comes from mpfr_add, mpfr_sub, or mpfr_set_1_2, which return 4932 results in the current range. If the result of mpfr_fmma_aux is not 4933 in the current range, this is due to a bug in one of these functions. 4934 Note: mpfr_add and mpfr_sub accept UBF inputs. 4935 49362020-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4937 4938 [src/fmma.c] fixed bug (result might be out of exponent range) 4939 [tests/tfmma.c] added non-regression test 4940 49412020-02-03 Vincent Lefèvre <vincent@vinc17.net> 4942 4943 [doc/mpfr.texi] Updated the month. 4944 4945 [doc/mpfr.texi] In the paragraph "MPFR internal data such as flags", 4946 no longer mention caches as caches may now also be global when MPFR 4947 has been compiled as thread safe (locking is used). Caches have been 4948 discussed earlier in the section anyway. 4949 49502020-01-23 Vincent Lefèvre <vincent@vinc17.net> 4951 4952 [INSTALL] URL update. 4953 49542020-01-20 Vincent Lefèvre <vincent@vinc17.net> 4955 4956 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 4957 4958 [tests/Makefile.am] Updated a comment; in particular, replaced the two 4959 obsolete gmane.org URLs by lists.gnu.org/archive/html/bug-gnulib ones. 4960 4961 [INSTALL] Removed reference to a gmane.org URL, which no longer exists. 4962 49632020-01-16 Vincent Lefèvre <vincent@vinc17.net> 4964 4965 [src/beta.c,tests/ttanh.c] towards → toward (for consistency). 4966 49672020-01-10 Vincent Lefèvre <vincent@vinc17.net> 4968 4969 [tests/{tfprintf.c,tprintf.c}] Updated an error message about MinGW, 4970 now output only if MinGW is used. 4971 4972 [doc/README.dev] Concerning MinGW, added a sentence about the use of 4973 the __USE_MINGW_ANSI_STDIO macro, confirming the existing note. 4974 4975 [TODO] Removed obsolete item on MinGW and -D__USE_MINGW_ANSI_STDIO. 4976 4977 [INSTALL] Update concerning MinGW and the __USE_MINGW_ANSI_STDIO macro. 4978 4979 [doc/mpfr.texi] Updated mpfr_get_str documentation, correcting r13666 4980 (we still need the extra two bytes and to take -@Inf@ into account). 4981 49822020-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 4983 4984 [mpfr.texi] fixed out-dated documentation for mpfr_get_str 4985 49862020-01-09 Vincent Lefèvre <vincent@vinc17.net> 4987 4988 [doc/README.dev] In the latest update, forgot to remove the CC=... 4989 4990 [doc/README.dev] Update about the test under Wine. 4991 4992 [acinclude.m4,configure.ac] 4993 * Moved the code that tries to determine the format of double from 4994 configure.ac to acinclude.m4 in MPFR_CONFIGS (as required), just 4995 before the one for long double. 4996 * Added a FIXME comment: This code uses AC_RUN_IFELSE, which cannot 4997 run the test when cross-compiling; use a test like for long double 4998 instead. 4999 5000 [acinclude.m4] English usage. 5001 5002 [acinclude.m4] Updated messages about the format of "long double". 5003 [configure.ac] Ditto for "double". Added missing AC_MSG_RESULT. 5004 5005 [tests/tversion.c] Updated/fixed an output line to match the other ones. 5006 5007 [tests/tsprintf.c] Added tests for %Ra and %Rb on the value 0 with an 5008 empty precision field. 5009 5010 [src/vasprintf.c] Fixed output precision bug with decimal output 5011 (i.e. e, f and g conversion specifiers) and an empty precision field 5012 on the value 0. 5013 5014 [tests/tsprintf.c] Also added tests with %Rf, %Rg and %#Rg on 0. 5015 5016 [tests/tsprintf.c] Added a test with %Re and an empty precision field 5017 on the value 0; it currently fails. 5018 50192020-01-08 Vincent Lefèvre <vincent@vinc17.net> 5020 5021 [tools/ck-copyright-notice] Added a note about the mpfr.pc.in file. 5022 5023 Copyright notice update: added 2020 with 5024 perl -pi -e 's/ (\d{4}-)?(2019)(?= Free Software)/ 5025 " ".($1||"$2-").($2+1)/e' **/*(^/) 5026 under zsh. Removed 2019 from the example in the doc/README.dev file. 5027 5028 [TODO] + base conversion with the round-trip property using a minimal 5029 precision, such as the to_chars functions from the C++ standard. 5030 5031 [doc/mpfr.texi] Updated the month. 5032 5033 [doc/mpfr.texi] Formatted output: improved the text concerning the 5034 empty precision field, i.e. focus on the chosen precision rather 5035 than the round-trip property (as the rounding mode is not necessarily 5036 to nearest). 5037 5038 [doc/mpfr.texi] Formatted output with %Re (empty precision field): 5039 added a reference to mpfr_get_str_ndigits. 5040 5041 [src/vasprintf.c] Simplified the conditions under which trailing zeros 5042 are kept (the spec_g variable is no longer needed as a consequence). 5043 5044 [tests/tsprintf.c] Re-added tests changed by r13644 and r13645, but 5045 with a variable of smaller precision in order to get the same output 5046 as before. 5047 5048 [tests/tsprintf.c] Updated other two tests (in da_DK locale). 5049 50502020-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5051 5052 fixed tests for new more precise semantics for mpfr_printf ("%Re", x), 5053 and documented it 5054 5055 [src/vasprintf.c] tentative fix so that mpfr_printf ("%.Re", x) prints a number 5056 of decimal digits independent from x 5057 50582019-12-24 Vincent Lefèvre <vincent@vinc17.net> 5059 5060 [INSTALL,doc/mpfr.texi] Typography. 5061 50622019-10-10 Vincent Lefèvre <vincent@vinc17.net> 5063 5064 [doc/algorithms.tex] Ulp calculus: put the old Rule 8 just after Rule 2, 5065 as the old Rule 3 (now Rule 4) uses it directly (proof updated). 5066 5067 [doc/algorithms.tex] Ulp calculus: simplified the proof of Rule 8. 5068 5069 [doc/algorithms.tex] Ulp calculus Rule 3: missing absolute values in 5070 the proof. 5071 5072 [doc/algorithms.tex] Actually assume that no underflows nor overflows 5073 occur for the whole section "Error calculus". 5074 5075 [doc/algorithms.tex] Ulp calculus Rule 6: corrected it (we need to 5076 assume no underflows nor overflows) and its proof, and generalized 5077 it with absolute values (like in the previous rules). 5078 50792019-10-07 Vincent Lefèvre <vincent@vinc17.net> 5080 5081 [doc/algorithms.tex] Ulp calculus Rule 3: more powerful result and 5082 much simpler proof. 5083 5084 [doc/algorithms.tex] Section 2 (Error calculus): When n was a precision, 5085 replaced it by p as this is the usual notation (see Section 1) and n 5086 sometimes had a double meaning. 5087 50882019-10-04 Vincent Lefèvre <vincent@vinc17.net> 5089 5090 [tests/tcmp_ui.c] Updated comment: this is a bug in Clang 9. 5091 5092 [tests/tcmp_ui.c] Added a comment: failure of a test with the 5093 clang-9 1:9-1 Debian package. 5094 50952019-10-01 Vincent Lefèvre <vincent@vinc17.net> 5096 5097 Clean-up concerning the tests of subnormals for double and float. 5098 * acinclude.m4: renamed variables 5099 mpfr_cv_have_denorms_flt to mpfr_cv_have_subnorm_flt 5100 mpfr_cv_have_denorms to mpfr_cv_have_subnorm_dbl 5101 and improved messages. 5102 * acinclude.m4, tests/tget_flt.c: renamed macro 5103 HAVE_DENORMS_FLT to HAVE_SUBNORM_FLT 5104 * acinclude.m4, tests/{tests.c,tset_d.c,tsprintf.c}: renamed macro 5105 HAVE_DENORMS to HAVE_SUBNORM_DBL 5106 * doc/README.dev: updated / completed the corresponding documentation. 5107 * tests/tget_d.c: renamed function check_denorms to check_subnorm. 5108 5109 [acinclude.m4] Updated comment about the tests for subnormal numbers. 5110 5111 [acinclude.m4] Added a comment about the tests for subnormal numbers. 5112 51132019-09-24 Vincent Lefèvre <vincent@vinc17.net> 5114 5115 [doc/Makefile.am] Added missing texinfo.tex prerequisite. 5116 51172019-09-16 Vincent Lefèvre <vincent@vinc17.net> 5118 5119 [tests] Added FIXME comment in tfprintf.c, tout_str.c and tprintf.c: 5120 The output is not tested (thus coverage data are meaningless). 5121 51222019-09-10 Vincent Lefèvre <vincent@vinc17.net> 5123 5124 [src/{add1sp.c,sub1sp.c}] Get rid of useless goto's. 5125 51262019-09-06 Vincent Lefèvre <vincent@vinc17.net> 5127 5128 [doc/mpfr.texi] Updated the month. 5129 5130 [src/hypot.c] Replaced a TODO by a FIXME. 5131 5132 The mpfr_out_str function now accepts bases from -2 to -36, in order to 5133 follow mpfr_get_str and GMP's mpf_out_str functions. 5134 5135 [doc/mpfr.texi] Changed an incorrect use of @xref, which must always 5136 occur at the beginning of a sentence (use "see @ref{...}" instead). 5137 5138 [doc/mpfr.texi] At the end of "Arithmetic Functions", added a sentence 5139 referencing the power functions (since x^n is an arithmetic function). 5140 51412019-09-05 Vincent Lefèvre <vincent@vinc17.net> 5142 5143 [doc/mpfr.texi] Removed the useless "Float ..." index entries. 5144 5145 [doc/mpfr.texi] Moved the mpfr_pow class of functions from 5146 "Arithmetic Functions" to "Transcendental Functions". 5147 5148 [doc/mpfr.texi] Added "Float transcendental functions" to the index 5149 for consistency ("transcendental functions" implies floating point, 5150 but the user should expect to find it with the other index terms 5151 starting with "Float"). 5152 5153 [doc/mpfr.texi] Renamed "Basic Arithmetic Functions" to just 5154 "Arithmetic Functions". 5155 5156 [doc/mpfr.texi] Transcendental functions: added a sentence to the 5157 important note (about cases theoretically very hard to round). 5158 5159 [doc/mpfr.texi] Renamed Section "Special Functions" to 5160 "Transcendental Functions" (as after changes in r13605 and r13606, 5161 it now contains only the transcendental functions), and slightly 5162 rewrote its important note. 5163 5164 [doc/mpfr.texi] Moved mpfr_free_cache, mpfr_free_cache2, mpfr_free_pool 5165 and mpfr_mp_memory_cleanup from "Special Functions" to a new section 5166 "Memory Handling Functions". 5167 5168 [doc/mpfr.texi] 5169 * Moved mpfr_fac_ui, mpfr_fma, mpfr_fms, mpfr_fmma, mpfr_fmms, 5170 mpfr_hypot, mpfr_sum and mpfr_dot from "Special Functions" to 5171 "Basic Arithmetic Functions" (as these are functions based on 5172 +, -, *, / and roots). 5173 * Added a FIXME for mpfr_pow: does this function really belong 5174 to "Basic Arithmetic Functions"? 5175 5176 [doc/mpfr.texi] Improved warning about huge precisions. 5177 5178 [src/mul.c] For the --enable-assert=full test, also test the flags 5179 (like what has been done for mpfr_add1sp and mpfr_sub1sp). 5180 5181 [src/sub1sp.c] For the --enable-assert=full test, improved output of 5182 ternary value and flags, like in r13582 for mpfr_add1sp. 5183 5184 [src/add1sp.c] Cosmetic change (consistent ordering). 5185 51862019-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5187 5188 [tests/tsub1sp.c] added non-regression test for bug in mpfr_sub1sp2n 5189 [src/sub1sp.c] fixed that bug 5190 51912019-09-04 Vincent Lefèvre <vincent@vinc17.net> 5192 5193 [acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro for MS-Windows. 5194 5195 [NEWS] More details about mpfr_add and mpfr_sub. 5196 51972019-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5198 5199 [NEWS] mention that mpfr_sub was also improved for 128 bits 5200 5201 [NEWS] coverage improved to 98.6% on x86_64 5202 5203 [tests/tadd1sp.c] improve coverage 5204 52052019-09-04 Vincent Lefèvre <vincent@vinc17.net> 5206 5207 [acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro: the patch had 5208 a spurious ";" at the end of conftest.c, which made its compilation 5209 fail with -pedantic -Werror (using gcc or clang). 5210 52112019-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5212 5213 [src/sub1sp.c] rewrote mpfr_sub1sp2n (inspired from mpfr_sub1sp1n) 5214 52152019-09-04 Vincent Lefèvre <vincent@vinc17.net> 5216 5217 [acinclude.m4] Updated MPFR_C_LONG_DOUBLE_FORMAT to support compilation 5218 with GCC's and clang's LTO (-flto). This new test is inspired by the one 5219 used by GMP for the double type. 5220 Thanks to Paul Mulders for a preliminary version of the patch for MPFR. 5221 52222019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5223 5224 [src/sub1sp.c] added new function mpfr_sub1sp2n for p = 2*GMP_NUMB_BITS 5225 (still to be tested) 5226 52272019-09-03 Vincent Lefèvre <vincent@vinc17.net> 5228 5229 [tests/tadd1sp.c] bug20190903: 5230 * Fixed the second test for GMP_NUMB_BITS != 64. 5231 * Updated comments. 5232 52332019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5234 5235 [src/add1sp.c] improved comment 5236 52372019-09-03 Vincent Lefèvre <vincent@vinc17.net> 5238 5239 [src/add1sp.c] mpfr_add1sp2n: improved a comment. 5240 5241 [src/add1sp.c] Fixed the bug. 5242 5243 [tests/tadd1sp.c] bug20190903: do the second test in MPFR_RNDU too. 5244 5245 [tests/tadd1sp.c] bug20190903: in the second test, check the mpfr_t 5246 value, the ternary value and the flags, in order to get a failure 5247 even without "--enable-assert=full". 5248 5249 [tests/tadd1sp.c] When testing mpfr_add, use a wrapper mpfr_add_cf 5250 that calls mpfr_clear_flags first, so that if --enable-assert=full 5251 is used, the flags can be better checked too (and automatically). 5252 Now tadd1sp outputs with --enable-assert=full, as wanted: 5253 add1 : ternary = -1, flags = inexact (8) 5254 add1sp: ternary = 0, flags = none (0) 5255 5256 [src] 5257 * exceptions.c: define flags_fout if MPFR_WANT_ASSERT >= 2, i.e. with 5258 --enable-assert=full (for better flags output in add1sp.c, etc.). 5259 * mpfr-impl.h: declare flags_fout if MPFR_WANT_ASSERT >= 2. 5260 * add1sp.c: improve output of ternary value and flags. 5261 5262 [tests/tadd1sp.c] Updated comments of bug20190903. 5263 5264 [tests/tadd1sp.c] Added a test that triggers a bug in mpfr_add1sp2n 5265 (corresponding to the FIXME), yielding a failure with 5266 "--enable-assert=full". 5267 Note 1: The computed values are equal (with MPFR_RNDN), but one gets 5268 Inexact sp = 0 | Inexact = -1 5269 Flags sp = 10 | Flags = 10 5270 Note 2: The fact that the flags do not match the ternary value in the 5271 error message is due to a missing mpfr_clear_flags in the test. 5272 5273 [src/add1sp.c] mpfr_add1sp2n: 5274 * Code refactoring, eliminating the unnecessary goto's. 5275 * In the d >= 2 * GMP_NUMB_BITS case, use a single test for rb and sb. 5276 * Improved code consistency. 5277 * Added a FIXME about suspicious code. → Find a failing test and fix 5278 the code, or explain the code if it is correct. 5279 52802019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5281 5282 [src/add1sp.c] fix for bug20190903 5283 52842019-09-03 Vincent Lefèvre <vincent@vinc17.net> 5285 5286 [src/add1sp.c] Corrected a comment. 5287 5288 [tests/tadd1sp.c] More random tests in the special precisions 5289 GMP_NUMB_BITS and 2 * GMP_NUMB_BITS (but they don't trigger 5290 the bug due to r13574). 5291 5292 [tests/tadd1sp.c] Added testcase for bug due to r13574 (found with 5293 the other test programs, using --enable-assert=full). 5294 52952019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5296 5297 [src/add1sp.c] added mpfr_add1sp2n for 128-bit precision (with 64-bit limb) 5298 52992019-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5300 5301 [src/sub1sp1_extracted.c] replace hard-coded bounds by emin/emax 5302 5303 added sub1sp1_extracted.c (not ready yet) 5304 53052019-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5306 5307 added github source for Jianyang Pan formal proof 5308 53092019-08-21 Vincent Lefèvre <vincent@vinc17.net> 5310 5311 [tests/mpfr-test.h] At the end, with GCC, undef volatile if defined. 5312 Explanations: 5313 With GCC, a macro "volatile" can be defined to test some special code 5314 in mpfr-impl.h (code for compilers that define such a macro), but the 5315 volatile keyword is necessary in some tests to avoid some GCC bugs. 5316 Thus we need to undef this macro (if defined). We do that at the end, 5317 so that mpfr-impl.h (included earlier) is not affected by this undef. 5318 5319 [tests/tget_set_d128.c] Updated a test with a non-canonical encoding: 5320 * More meaningful name ("noncanonical" instead of "coverage"). 5321 * Output details in case of failure. 5322 * Avoid GCC bug 91226: wrong propagation of non-canonical _Decimal64 5323 and _Decimal128 constant (BID only). 5324 53252019-08-20 Vincent Lefèvre <vincent@vinc17.net> 5326 5327 [doc/README.dev] Update concerning the "decimal-point character". 5328 5329 [doc/mpfr.texi] Changed "decimal point" to "decimal-point character", 5330 which is the term used in the ISO C standard. This is better as this 5331 character is also used with non-decimal bases: "decimal-point" is 5332 just the name of this character (as initially defined for base 10) 5333 and does not imply a number written in decimal. 5334 5335 [doc/mpfr.texi] Compatibility With MPF: added an item on the difference 5336 of the output format between mpf_out_str and mpfr_out_str. 5337 5338 [doc/mpfr.texi] Rewrote and completed the mpfr_out_str description. 5339 53402019-08-20 Vincent Lefèvre <vincent@vinc17.net> 5341 5342 [src/out_str.c] Fixed bug in mpfr_out_str: When the exponent of the 5343 converted value is 0, it was not output, contrary to what is described 5344 in the MPFR manual. Note that this does not change the value of the 5345 printed string, so that this has no effect on applications that just 5346 re-read the value (with MPFR or another code). 5347 This was regarded as a bug rather than an error in the documentation, 5348 thus the output now looks more similar to what printf with %e yields; 5349 the GMP function mpf_out_str also outputs the exponent 0. 5350 Short discussion: 5351 https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00012.html 5352 5353 Note: The tests still pass, as this function is currently not really 5354 tested. 5355 53562019-08-14 Vincent Lefèvre <vincent@vinc17.net> 5357 5358 [INSTALL] Update/corrections about MinGW and __USE_MINGW_ANSI_STDIO. 5359 5360 [tests/tversion.c] When building with MinGW, output a line about it: 5361 MinGW32 / MinGW64, and the __USE_MINGW_ANSI_STDIO definition. 5362 5363 [src/set_d128.c] Moved a definition under the #if where it is used. 5364 53652019-08-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5366 5367 improve INSTALL (feedback from sisyphus <sisyphus359@gmail.com>) 5368 53692019-08-12 Vincent Lefèvre <vincent@vinc17.net> 5370 5371 [doc/mpfr.texi] Added a FIXME for mpfr_out_str about the exponent 0. 5372 5373 [doc/mpfr.texi] About mpfr_get_str / mpfr_out_str: 5374 * In the mpfr_get_str description, changed argument "b" to "base" for 5375 consistency with similar functions (now, only mpfr_get_str_ndigits 5376 has b as this looks better in the formula). Also added a link to 5377 mpfr_get_str_ndigits. 5378 * In the mpfr_out_str description, replaced the ambiguous and even 5379 incorrect sentence "enough digits so that op can be read back 5380 exactly" (issues with trailing zeros and with the directed rounding 5381 modes) by text similar to the one in the mpfr_get_str description 5382 (keeping the reference to mpfr_get_str). 5383 5384 [src/out_str.c] Coding style (e is not a boolean). 5385 53862019-08-09 Vincent Lefèvre <vincent@vinc17.net> 5387 5388 [tests/tout_str.c] Use mpfr_print_rnd_mode in a message. 5389 5390 [tests/tout_str.c] Code simplification: a test from r1888 on a 5391 random value was unnecessary (the log message of r1888 did not 5392 even correspond to the change). 5393 5394 [tests/tout_str.c] GNU coding style. 5395 5396 [tests/tout_str.c] Added missing newline characters in the output 5397 after calls to mpfr_out_str. 5398 5399 [tests/tout_str.c] By default, output the results to a file instead of 5400 /dev/null (this was already done only if opening /dev/null failed), so 5401 that they can be checked later. Fixed 2 issues at the same time: 5402 * Do not close stdout (when an argument was provided). 5403 * Remove the file at the end. 5404 5405 [tests/tfpif.c] GNU coding style. 5406 5407 [tests/tfpif.c] Added a comment about the use of perror. 5408 5409 [tests/tfpif.c] Also check fclose failure when the file has been opened 5410 for writing (typically an error in case the buffer cannot be written to 5411 the file). Call perror after all fopen/src_fopen/fclose failures to get 5412 the reason of the failure. 5413 5414 [tests/tfpif.c] In case of failure of fopen or src_fopen, write the 5415 error message on stderr (as one should do for errors not directly 5416 related to the tests, such as memory allocation and I/O errors). 5417 Also improved the error messages and made them consistent. 5418 54192019-08-06 Vincent Lefèvre <vincent@vinc17.net> 5420 5421 [doc/mpfr.texi] Updated the month. 5422 54232019-08-05 Vincent Lefèvre <vincent@vinc17.net> 5424 5425 [doc/mpfr.texi] Improved consistency with @item. 5426 54272019-08-02 Vincent Lefèvre <vincent@vinc17.net> 5428 5429 For Makefile.am and each one in SUBDIRS, added the .POSIX target to 5430 select the POSIX behavior (since we do not require GNU "make"). 5431 See: https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00005.html 5432 5433 [tools/get_patches.sh] Fixed change in r13543 (the contents of PATCHES 5434 should still be written as a list of words separated by a space). 5435 5436 Fixed src/get_patches.c generation that was changed in r13542. 5437 * src/Makefile.am, tools/get_patches.sh: since get_patches.sh is 5438 no longer run from $(top_srcdir), the PATCHES absolute pathname 5439 now needs to be passed in argument. 5440 * src/Makefile.am: fixed the get_patches.c rule (the automatic 5441 variable $< was used with the meaning "first prerequisite" of 5442 GNU Make; an "exit 1" was missing, so that a failure did not 5443 abort "make" immediately). 5444 * tools/get_patches.sh: detect errors with "set -e". 5445 54462019-07-31 Vincent Lefèvre <vincent@vinc17.net> 5447 5448 [src/Makefile.am] Define get_patches.c as a built source to avoid a 5449 non-portable make rule ("/" character in target), causing an error 5450 in FreeBSD with its "make" command. This change should be OK as the 5451 get_patches.sh script that generates get_patches.c is very simple 5452 and portable. As a consequence, put get_patches.c in CLEANFILES. 5453 See: 5454 https://sympa.inria.fr/sympa/arc/mpfr/2019-07/msg00003.html 5455 5456 [Makefile.am] Fixed dist-hook for ck-mparam, which was run from a 5457 read-only directory with "make distcheck" while a temporary file 5458 is created in the current directory, yielding a failure (ck-mparam 5459 has been run in dist-hook since r12533 on 2018-04-03). 5460 5461 [tools/ck-mparam] Updated comment to warn that the source tree that is 5462 checked is the one that contains this script, not the one corresponding 5463 to the current working directory (the rule for the other scripts in the 5464 tools directory is currently different). 5465 5466 [tools/ck-mparam] This script can now be run from any directory (which 5467 must still be writable). This change has been done to be able to run 5468 it from the build directory, as if it is run via "make distcheck" and 5469 a dist-hook rule, then neither the top-level directory nor the tools 5470 directory is writable. 5471 54722019-07-23 Vincent Lefèvre <vincent@vinc17.net> 5473 5474 [tests/tget_set_d64.c] Updated comment (only the x86 and x86_64 targets 5475 are affected). 5476 5477 [tests/tget_set_d64.c] Improved a comment. 5478 54792019-07-22 Vincent Lefèvre <vincent@vinc17.net> 5480 5481 [tests/tget_set_d64.c] Avoid GCC bug 91226: wrong propagation of 5482 non-canonical _Decimal64 constant. 5483 5484 [src/set_d64.c] In decimal64_to_string, log the memory representation 5485 of the _Decimal64 argument. 5486 5487 [src/set_d64.c] In decimal64_to_string, log the various fields of the 5488 _Decimal64 argument whose memory data is regarded as a double (as this 5489 is the current implementation of this function). 5490 5491 [tests/tget_set_d64.c] More output details in the noncanonical test. 5492 5493 [tests/tget_set_d64.c] Improved the noncanonical test, but this does not 5494 solve the failure with gcc-snapshot. 5495 5496 [tests/tget_set_d64.c] More meaningful name of a test with a 5497 non-canonical encoding and more details (fails with Debian's 5498 gcc-snapshot 10.0.0 20190718, trunk revision 273586). 5499 55002019-07-12 Vincent Lefèvre <vincent@vinc17.net> 5501 5502 [doc/README.dev] "To make a release": mention -Wsuggest-attribute=... 5503 options (but mpfr.h first needs some macros like __MPFR_SENTINEL_ATTR). 5504 5505 Renamed MPFR_CONST_ATTR macro to MPFR_CONST_FUNCTION_ATTR in order to be 5506 similar to the MPFR_{PURE,HOT,COLD}_FUNCTION_ATTR macro names. 5507 55082019-07-10 Vincent Lefèvre <vincent@vinc17.net> 5509 5510 [doc/README.dev] Update concerning the MPFR manual: 5511 * Updated information about the papersize issues (should be fixed, 5512 but manual checking is recommended). 5513 * Detailed English typography. 5514 * Removed mention of the old texinfo bug 33329 (Debian bug 583558). 5515 55162019-07-08 Vincent Lefèvre <vincent@vinc17.net> 5517 5518 [codespell.*] Update for codespell 1.15.0. 5519 5520 Fixed spelling mistakes found by codespell 1.15.0. 5521 55222019-07-06 Vincent Lefèvre <vincent@vinc17.net> 5523 5524 [acinclude.m4] Added missing "const" qualifier to "char *" in a test; 5525 needed with GCC's "-Wwrite-strings -Werror". 5526 55272019-07-02 Vincent Lefèvre <vincent@vinc17.net> 5528 5529 [src/mpfr-impl.h] MPFR_GROUP_* macros / mpfr_group_t structure: when 5530 MPFR_GROUP_STATIC_SIZE is 0 (for testing), use a flexible array member 5531 (ISO C99) instead of a zero-length array (GNU extension, forbidden in 5532 ISO C). 5533 5534 [tests/*.c] Added missing "const" qualifier to "char *" when this 5535 involves string literals (detected by using GCC's -Wwrite-strings 5536 option, via the default -Wdiscarded-qualifiers warning). 5537 55382019-07-01 Vincent Lefèvre <vincent@vinc17.net> 5539 5540 [acinclude.m4,configure.ac] MPFR_C_LONG_DOUBLE_FORMAT: also detect 5541 clang's LTO. 5542 Note: no longer use $FGREP (see r13513) as its status is unclear on 5543 non-POSIX systems (though very probably available when $EGREP is). 5544 5545 [acinclude.m4,configure.ac] For MPFR_C_LONG_DOUBLE_FORMAT, when the 5546 format is unknown and it is detected that LTO has been used, output 5547 "recognition prevented by LTO". 5548 Note: at the same time, since AC_PROG_FGREP was needed, replaced 5549 $EGREP by $FGREP when applicable. 5550 5551 [acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT: improved comment and added a 5552 warning saying that this does not work with GCC's LTO (gcc -flto ...). 5553 55542019-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5555 5556 [src/sub1sp.c] simplified code of sub1sp1 for bx = cx 5557 55582019-06-06 Vincent Lefèvre <vincent@vinc17.net> 5559 5560 [src/sub1sp.c] About r13506-13509 and optimization: added a comment 5561 about Clang after some tests (without giving details, as in practice, 5562 this is more complex... but this is the general idea). 5563 55642019-06-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5565 5566 [src/sub1sp.c] fixed typo 5567 55682019-06-06 Vincent Lefèvre <vincent@vinc17.net> 5569 5570 [src/sub1sp.c] Added reference to GCC PR30315 about a misoptimization 5571 on x86/x86_64 (see r13506 and r13507). 5572 5573 [src/sub1sp.c] Completed r13506: added MPFR_ASSERTD to justify the 5574 new code and give more information to the compiler; added comments 5575 about this optimization issue. 5576 55772019-06-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5578 5579 [src/sub1sp.c] small speedup (following discussion with Félix Breton) 5580 55812019-06-01 Vincent Lefèvre <vincent@vinc17.net> 5582 5583 [doc/README.dev] Added a note about MPFR_DISABLE_IEEE_FLOATS. 5584 5585 [doc/README.dev] Updated MPFR_DISABLE_IEEE_FLOATS description. 5586 5587 [src/mpfr-impl.h] Undefine HAVE_LDOUBLE_IS_DOUBLE & HAVE_LDOUBLE_IEEE_* 5588 macros if MPFR_DISABLE_IEEE_FLOATS is defined, as the goal is to test 5589 code not relying on IEEE floats. 5590 55912019-05-24 Vincent Lefèvre <vincent@vinc17.net> 5592 5593 [src/mpfr-impl.h] Code simplification with the generic 5594 LONGDOUBLE_NAN_ACTION macro (the WANT_LONGDOUBLE_VOLATILE macro is not 5595 needed as used only once, thus removed). Improved the related comment. 5596 5597 [src] Instead of including <float.h> in volatile.c (r13493), do that 5598 unconditionally in mpfr-impl.h to make sure that macro definitions 5599 in this header file are always correct: some definitions depend on 5600 various macros from <float.h>, such as FLT_RADIX and DBL_MANT_DIG. 5601 56022019-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5603 5604 applied patch from #21762 5605 (https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21762&group_id=136) 5606 56072019-05-15 Vincent Lefèvre <vincent@vinc17.net> 5608 5609 [doc/README.dev] Added another URL on undefined behavior. 5610 56112019-04-30 Vincent Lefèvre <vincent@vinc17.net> 5612 5613 [doc/README.dev] Note that -static-libasan does not work with MPFR. 5614 5615 [doc/README.dev] Update about the use of GCC's "-fsanitize=address". 5616 56172019-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5618 5619 [src/zeta.c] fixed out-of-bound read reported by Thomas Bailleux 5620 5621 Note: This bug was introduced in r12066. 5622 56232019-04-29 Vincent Lefèvre <vincent@vinc17.net> 5624 5625 [tools/ck-version-info] Minor corrections in a comment. 5626 5627 [doc/README.dev] Update about the VERSION file: 5628 * Added a paragraph on the meaning of the "-dev" suffix. 5629 * Removed a confusing and useless "-dev" in an example. 5630 5631 [tools/ck-news] Changed the condition of the test for FIXME or TODO: 5632 Previously it was disabled only for -dev versions. Now it is enabled 5633 only for releases and release candidates. This will allow snapshots, 5634 for which the NEWS file may still contain a FIXME or TODO. 5635 5636 [tools/ck-version-info] Corrected check. Added explanations in comments. 5637 5638 [tools/ck-version-info] Better error message if $vinfo is not defined. 5639 5640 [src/Makefile.am] Added a comment. 5641 56422019-04-25 Vincent Lefèvre <vincent@vinc17.net> 5643 5644 [doc/mpfr.texi] Updated the month. 5645 5646 [doc/mpfr.texi] Updated the list of rounding modes in the description 5647 of the mpfr_print_rnd_mode function. Choose the same order as in the 5648 "Rounding Modes" section in "MPFR Basics". 5649 5650 [tools/mpfrlint] Lists of rounding modes: also check with the 5651 "Rounding Modes" section in "MPFR Basics". 5652 5653 [src/print_rnd_mode.c] Added a comment to remember to update the manual. 5654 5655 [tools/mpfrlint] Check that the lists of rounding modes in 5656 src/print_rnd_mode.c and doc/mpfr.texi are identical. 5657 5658 [src/mpfr.h] Added a blank line (grouping of function declarations). 5659 5660 Added support for GCC's returns_nonnull attribute (with GCC 4.9+). 5661 5662 [TODO] Update about GCC's nonnull and returns_nonnull attributes. 5663 56642019-04-16 Vincent Lefèvre <vincent@vinc17.net> 5665 5666 New macro MPFR_FALLTHROUGH to avoid -Wimplicit-fallthrough warnings 5667 with GCC 7+. This macro also makes the code more readable by bringing 5668 the attention on an unusual fallthrough in a switch case. 5669 * src/mpfr-impl.h: define this macro. 5670 * src/vasprintf.c: use this macro in a case of fallthrough. 5671 56722019-04-15 Vincent Lefèvre <vincent@vinc17.net> 5673 5674 [src/vasprintf.c] Minor bug fix: when an integer is to be read for 5675 the field width or precision, regard strings like "17*" as invalid 5676 instead of regarding it as "*" (ignoring the integer that precedes, 5677 except in case of overflow). In C's printf, such an invalid string 5678 yields undefined behavior, but in MPFR, we normally print the 5679 invalid format specifier as a literal string in such a case. 5680 Bug detected with -Wimplicit-fallthrough from GCC 7+. 5681 [tests/tsprintf.c] Added non-regression test. 5682 56832019-04-02 Vincent Lefèvre <vincent@vinc17.net> 5684 5685 [configure.ac] Updated --enable-logging description. 5686 5687 [acinclude.m4] When logging support is requested, run a test to check 5688 that code with nested functions and the 'cleanup' attribute can be 5689 compiled, as these features are needed. 5690 5691 [configure.ac] AC_ARG_ENABLE(float128,...): updated comment and 5692 description. 5693 5694 [configure.ac] Updated comment for AC_ARG_ENABLE(decimal-float,...). 5695 * Removed information about very old GCC versions. 5696 * _Decimal128 is considered too, in addition to _Decimal64. 5697 * No longer just a GCC extension, but part of ISO/IEC TS 18661. 5698 * Added a FIXME for new options about _Decimal64 and _Decimal128. 5699 5700 [configure.ac] Cleanup: moved some AC_ARG_ENABLE's where they should be. 5701 57022019-03-29 Vincent Lefèvre <vincent@vinc17.net> 5703 5704 [src/vasprintf.c] 5705 * Corrected FIXME by modifying the assertion. The failure could occur 5706 only when mpfr_intmax_t has the same size as int (which is the case 5707 when long = int and either intmax_t and long long are not available 5708 or intmax_t = long = int), and only when INT_MIN is provided as a 5709 field width argument. 5710 * Related to that, updated a test to improve optimization. 5711 * Added comments. 5712 5713 [src/vasprintf.c] Added a FIXME: tsprintf yields an assertion failure 5714 with sizeof(mpfr_intmax_t) = 4 (which was not tested until now). 5715 57162019-03-29 Vincent Lefèvre <vincent@vinc17.net> 5717 5718 Cleanup / fixes related to intmax_t, mpfr_intmax_t, etc. 5719 5720 The issues were: 5721 * The build of the tests (make check) could fail with CFLAGS implying 5722 "-std=c90 -Werror=format", i.e. if intmax_t was available but the 5723 use of the "j" printf length modifier made the compilation fail 5724 (its unconditional use was incorrect anyway). 5725 * MPFR_INTMAX_MAX had definitions in both mpfr-impl.h & mpfr-intmax.h, 5726 with inconsistent usage. 5727 5728 Detailed changes: 5729 * acinclude.m4: removed the definition of MPFR_PRINTF_MAXLM, which 5730 could be incorrect (large numbers were not tested to select its 5731 value); in the MPFR_FUNC_GMP_PRINTF_SPEC macro, check sprintf() 5732 in addition to gmp_sprintf() as it is now also used in the tests; 5733 updated some comments and messages. 5734 * src/mpfr-impl.h: removed the MPFR_*INTMAX* definitions; they had 5735 been added due to 5736 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=582698 5737 with -ansi -pedantic-errors, but this issue was fixed in GCC 4.8 5738 (released 6 years ago), so that they are no longer needed. 5739 * src/mpfr-intmax.h: completed the definitions; mpfr_intmax_t is now 5740 the largest integer type available and fully working (in particular 5741 with printf), thus it may be smaller than intmax_t. 5742 * doc/README.dev: updated the description of mpfr_intmax_t, etc. 5743 * tests/tversion.c: output sizeof(mpfr_intmax_t) too. 5744 * Various .c files in src and tests related to (u)intmax_t: use 5745 INTMAX_MAX instead of MPFR_INTMAX_MAX, etc. as Debian bug 582698 5746 (mentioned above) no longer occurs and mpfr_intmax_t may be smaller 5747 than intmax_t; use the "j" printf length modifier instead of 5748 MPFR_PRINTF_MAXLM, and protect it with "#ifndef NPRINTF_J" 5749 (only the tests are concerned, so that this is not an issue). 5750 57512019-03-28 Vincent Lefèvre <vincent@vinc17.net> 5752 5753 [src/urandomb.c] Removed the FIXME: this is a bug in GMP or in Clang's 5754 memory sanitizer. 5755 5756 [src/urandomb.c] Added a FIXME (use-of-uninitialized-value with 5757 Clang's memory sanitizer). 5758 57592019-03-13 Vincent Lefèvre <vincent@vinc17.net> 5760 5761 [src/printf.c] Removed unused definitions. 5762 57632019-03-01 Vincent Lefèvre <vincent@vinc17.net> 5764 5765 [doc/README.dev] Update about coverage: 5766 * Mention not to enable optimizations. 5767 * Replaced "-fprofile-arcs -ftest-coverage" by "--coverage", as 5768 this is what is used by the tools/coverage script (note: this 5769 is a synonym when compiling, but also allows the right options 5770 to be used when linking, thus might be better in doubt). 5771 57722019-02-04 Vincent Lefèvre <vincent@vinc17.net> 5773 5774 [tests] Use MPFR_DBL_* macros when necessary. 5775 5776 [tools/mpfrlint] For consistency, use "[ch]" instead of "{c,h}". 5777 5778 [tools/mpfrlint] Detect use of DBL_* macros instead of MPFR_DBL_* ones. 5779 5780 [tools/mpfrlint] Improved message about division by zero. 5781 5782 [doc/README.dev] Improved description of MPFR_ERRDIVZERO. 5783 [tools/mpfrlint] Added a comment about division by zero. 5784 5785 [tools/mpfrlint] Check that native FP division by zero is not used. 5786 57872019-01-31 Vincent Lefèvre <vincent@vinc17.net> 5788 5789 [src/Makefile.am] In check-exported-symbols, replaced grep by $(GREP) 5790 as usual and like in check-gmp-symbols. 5791 57922019-01-30 Vincent Lefèvre <vincent@vinc17.net> 5793 5794 [configure.ac] Updated comment about default options in CFLAGS for GCC. 5795 5796 Update about CC / CFLAGS settings from GMP (__GMP_CC / __GMP_CFLAGS). 5797 * configure.ac: remove -pedantic unconditionally; since r7044, it was 5798 removed only when logging was enabled, as at that time only logging 5799 was using C extensions. 5800 * NEWS: added a line about this change. 5801 * INSTALL: updated the note about CC / CFLAGS, removing the obsolete 5802 reference to GMP 4.3.0 at the same time. 5803 58042019-01-28 Vincent Lefèvre <vincent@vinc17.net> 5805 5806 [tools/announce-text] Corrected subject for Release Candidate > 1. 5807 58082019-01-25 Vincent Lefèvre <vincent@vinc17.net> 5809 5810 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 5811 5812 [NEWS] Update about shared caches. 5813 5814 [NEWS] Added: "Shared caches: cleanup." 5815 5816 [src/mpfr-thread.h] Fixed the lock macros: 5817 * in case of failure, one must abort, otherwise this would generally 5818 be undefined behavior; 5819 * added missing "do {} while (0)" (currently not mandatory). 5820 5821 [src/mpfr-impl.h] Updated a comment about MPFR_DECL_INIT_CACHE and 5822 the shared cache. 5823 5824 [acinclude.m4] Avoid a warning with the pthread_rwlock_t test, 5825 as it is an error with -Werror. 5826 5827 [acinclude.m4] Fixed another C++ compatibility issue detected by 5828 the -Werror=c++-compat GCC option (it led the "long double" format 5829 to be unknown). 5830 58312019-01-24 Vincent Lefèvre <vincent@vinc17.net> 5832 5833 [tests/trint.c] Fixed C++ compatibility issue (arithmetic on enum) 5834 detected by the -Werror=c++-compat GCC option. 5835 58362019-01-23 Vincent Lefèvre <vincent@vinc17.net> 5837 5838 [configure.ac] By default (i.e. if CFLAGS is not already set), if 5839 the compiler is GCC not in C++ mode, add the -Wc++-compat warning 5840 since we expect the code to compile with a C++ compiler. 5841 58422019-01-13 Vincent Lefèvre <vincent@vinc17.net> 5843 5844 [tests/tcheck.c] Corrected meaningless error message. 5845 5846 [doc/mpfr.texi] Minor correction for non-tex versions. 5847 Thanks to Trevor Spiteri for the bug report. 5848 58492019-01-09 Vincent Lefèvre <vincent@vinc17.net> 5850 5851 Moved the compatibility test of the configure options even earlier, from 5852 acinclude.m4 to configure.ac, just after the code that defines them. 5853 Also added an associated AC_MSG_CHECKING message for better clarity. 5854 5855 [acinclude.m4] Simplified a message. 5856 5857 [tests/tversion.c] When the shared cache is enabled, also output the 5858 lock method (this information has been lost in r13032). 5859 5860 [acinclude.m4] When checking support for POSIX threads (pthread), also 5861 check that pthread_rwlock_t is supported, as it is needed by MPFR and 5862 conditionally defined in glibc's bits/pthreadtypes.h (via <pthread.h>). 5863 5864 Cleaned up configure code related to threading and the shared cache. 5865 * acinclude.m4: 5866 - detect incompatibilities between configure options at the 5867 beginning of MPFR_CONFIGS, forcing enable_thread_safe to 5868 "no" or "yes" when necessary, so that the subsequent code 5869 can rely on that; 5870 - check ISO C11 thread support and/or POSIX thread support 5871 only when necessary; 5872 - handle --enable-shared-cache early in MPFR_CONFIGS, because 5873 the use of POSIX threads (pthread) may need to change CC, 5874 CFLAGS, and LIBS (thus affecting other tests); 5875 - test $enable_shared_cache instead of $mpfr_want_shared_cache; 5876 - removed the now useless MPFR_CHECK_SHARED_CACHE function. 5877 * configure.ac: no longer set the mpfr_want_shared_cache variable, 5878 as enable_shared_cache (now used) already has the same usage. 5879 Note: currently, 5880 ./configure --enable-shared-cache CFLAGS="-std=c99" 5881 still succeeds and still makes the compilation fail. This seems to 5882 be due to a limitation of AX_PTHREAD, which just tests linking, not 5883 compilation. 5884 5885 [acinclude.m4] In MPFR_CHECK_SHARED_CACHE (used when the shared cache 5886 was requested), also set CC="$PTHREAD_CC" as documented by ax_pthread 5887 (autoconf-archive). This is not guaranteed to work, but according to 5888 the ax_pthread.m4 source, in the cases where "$PTHREAD_CC" != "$CC", 5889 not setting it will probably not work either. 5890 5891 [src/mpfr-impl.h] Added a comment about the cache-related types, which 5892 depend on the locking methods. 5893 58942019-01-08 Vincent Lefèvre <vincent@vinc17.net> 5895 5896 [tests/tstrtofr.c] Updated comment about GCC bug 86554: now fixed in 5897 the GCC trunk. 5898 58992019-01-07 Vincent Lefèvre <vincent@vinc17.net> 5900 5901 [tests/Makefile.am] Replaced "env -u DISPLAY" by "env DISPLAY=''" as 5902 the -u option is not supported by NetBSD. 5903 5904 Updated files: 5905 * COPYING from https://www.gnu.org/licenses/gpl-3.0.txt 5906 * COPYING.LESSER from https://www.gnu.org/licenses/lgpl-3.0.txt 5907 These are URL updates and cosmetic changes. 5908 5909 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v". 5910 Note: For r5400, this changes an incorrect update done via r13372 back 5911 to the old log message, as the URL in this log message here describes 5912 a change in one of the files. 5913 5914 [doc/README.dev] Updated some URL's (http → https). 5915 5916 [doc/texinfo.tex] Update to 2018-02-12.17 with "autoreconf -i -f". 5917 5918 Updated the www.gnu.org URL's (http → https) on all the files with: 5919 perl -pi -e 's,http://www.gnu.org/,https://www.gnu.org/,g' **/*(.) 5920 under zsh. 5921 5922 [tests/tstrtofr.c] Updated comment about GCC bug 86554: the MPFR build 5923 is still affected with the latest gcc-snapshot version (20190102-1) 5924 when using --with-gmp-build=... together with --enable-assert. 5925 59262019-01-04 Vincent Lefèvre <vincent@vinc17.net> 5927 5928 [tests/tstrtofr.c] Added a comment about GCC bug 86554: the MPFR build 5929 seems no longer affected by recent gcc-snapshot versions. 5930 59312019-01-01 Vincent Lefèvre <vincent@vinc17.net> 5932 5933 [doc/mpfr.texi] Updated the month. 5934 5935 Copyright notice update: added 2019 with 5936 perl -pi -e 's/ (\d{4}-)?(2018)(?= Free Software)/ 5937 " ".($1||"$2-").($2+1)/e' **/*(^/) 5938 under zsh. Removed 2018 from the example in the doc/README.dev file. 5939 59402018-12-31 Vincent Lefèvre <vincent@vinc17.net> 5941 5942 [tests/tfmma.c] Added double_rounding test to trigger errors before 5943 the fix in mpfr_set_1_2 (set.c r13347). 5944 5945 [src/set.c] In mpfr_set_1_2, evaluate MPFR_PREC(s) just once. 5946 5947 [src/set.c] Clarified the mpfr_set_1_2 description. 5948 5949 [src/set.c] For mpfr_set_1_2, corrected the comments and simplified the 5950 generic algorithm (there is no need to distinguish the rounding modes, 5951 except for the double-rounding test, and this simplification avoids the 5952 non-portable inex | inex2). 5953 59542018-12-20 Vincent Lefèvre <vincent@vinc17.net> 5955 5956 [doc/mini-gmp] Removed "#define GMP_LIMB_BITS 8": it is not used by 5957 mini-gmp.h and yields a failure when building mini-gmp.c (which has 5958 its own definition of GMP_LIMB_BITS, equivalent but not identical). 5959 5960 [configure.ac] Support mini-gmp with reduced limb size, in the case 5961 GMP_NUMB_BITS is not defined: guess GMP_NUMB_BITS from the size of 5962 mp_limb_t instead of the size of unsigned long. 5963 5964 [doc/mini-gmp] Correction to avoid a "conflicting types for 'mp_limb_t'" 5965 error. 5966 59672018-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5968 5969 [doc/mini-gmp] added note about using mini-gmp (development version) with 5970 reduced limb size 5971 5972 [src/set.c] fixed double-rounding bug in mpfr_set_1_2 5973 [tests/tset.c] added corresponding tests 5974 5975 [tests/tset.c] added a test of test_set_1_2(), which currently fails 5976 5977 [tests/tcan_round.c] disabled tests that don't agree with mpfr_can_round documentation 5978 59792018-12-13 Vincent Lefèvre <vincent@vinc17.net> 5980 5981 [tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf. 5982 5983 [tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf. 5984 5985 [TODO] Added item: new functions mpfr_cmp_uj and mpfr_cmp_sj. 5986 5987 [TODO] Removed obsolete "check again coverage" from 2007. 5988 59892018-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 5990 5991 [src/sqr.c] fixed same issue as in r13338 and r13339 5992 5993 [src/mul.c] fixed bug in mpfr_mul() when sizeof(mp_limb_t) < sizeof(mpfr_exp_t) 5994 (same issue as in r13338) 5995 59962018-12-12 Vincent Lefèvre <vincent@vinc17.net> 5997 5998 [src/mul.c] For MPFR_WANT_ASSERT >= 2: minor changes in the code; 5999 corrected a comment (even with mp_limb_t >= mpfr_exp_t, there was an 6000 issue: the expression b1 - 1 + cc was computed in unsigned arithmetic, 6001 then converted to mpfr_exp_t, with an implementation-defined result 6002 when -1 was expected, i.e. with b1 = cc = 0). 6003 6004 [src/mul.c] Corrected a typo in a comment. 6005 6006 [src/mul.c] Fixed error message with MPFR_WANT_ASSERT >= 2. 6007 60082018-12-11 Vincent Lefèvre <vincent@vinc17.net> 6009 6010 [src/mpfr-gmp.h] For count_leading_zeros (MPFR_LONG_WITHIN_LIMB 6011 not defined), no longer assume GMP_NUMB_BITS <= 32. 6012 6013 [src/mpfr-gmp.h] Fixed count_leading_zeros (avoid undefined behavior 6014 on shift counts, which must be nonnegative and smaller than the width 6015 of the type of the shifted value). 6016 60172018-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6018 6019 [src/mul.c] fixed reference routine mpfr_mul3() when sizeof(limb) < sizeof(exp) 6020 6021 [src/mpfr-gmp.h] fixed count_leading_zeros for mini-gmp with 32-bit limb 6022 60232018-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6024 6025 [doc/mini-gmp] added remark about random functions 6026 6027 [tests/tdiv.c] fixed test_20151023 (was giving an error with micro-gmp-8 6028 and GMP_CHECK_RANDOMIZE=1544431052619574) 6029 60302018-12-10 Vincent Lefèvre <vincent@vinc17.net> 6031 6032 [tools/mpfrlint] Added a test for some avoidable use of gmp_printf. 6033 60342018-12-07 Vincent Lefèvre <vincent@vinc17.net> 6035 6036 [tests] 6037 * mpfr-test.h, tests.c: added n_trace function to output a mpn. 6038 * tcan_round.c: use n_trace instead of gmp_printf ("%NX\n",...), 6039 which is not available with mini-gmp. 6040 60412018-12-06 Vincent Lefèvre <vincent@vinc17.net> 6042 6043 [tests/tcan_round.c] Corrected all the error messages for mini-gmp. 6044 6045 [tests/tcan_round.c] Corrected error message for mini-gmp. 6046 60472018-12-05 Vincent Lefèvre <vincent@vinc17.net> 6048 6049 [tests/tpow_z.c] Another fix and minor improvements. 6050 6051 [tests/tpow_z.c] Fixed a test (midpoint case) that was failing 6052 with micro-gmp-8 and GMP_CHECK_RANDOMIZE=1544033327230569. 6053 6054 [tests/tpow_z.c] Fixed a test for MPFR_RNDF: do not check the ternary 6055 value (a failure was occurring with --with-mini-gmp=.../micro-gmp/8 6056 and GMP_CHECK_RANDOMIZE=1544025040809270). 6057 6058 [tests/tpow_z.c] Improved error message. 6059 6060 [src/mpfr-mini-gmp.c] Added missing "void" in function prototype. 6061 6062 [configure.ac] When building against mini-gmp, check the availability of 6063 lrand48, in particular because it is not part of the ISO C standard. 6064 60652018-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6066 6067 [src/mpfr-mini-gmp.c] put back unconditional assert from r13316 (removed by error) 6068 6069 [src/mpfr-mini-gmp.c] improved random_limb (the low bits of lrand48 are bad) 6070 and fixed gmp_urandomm_ui 6071 60722018-12-05 Vincent Lefèvre <vincent@vinc17.net> 6073 6074 [src/mpfr-mini-gmp.c] gmp_urandomm_ui: added a MPFR_ASSERTN 6075 unconditionally, as n == 0 is always forbidden. 6076 60772018-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6078 6079 [src/mpfr-mini-gmp.c] the static assert introduced in r13313 makes the 6080 compilation fail for 8-bit limbs, while the code 6081 was valid for n <= 256 in that case 6082 60832018-12-04 Vincent Lefèvre <vincent@vinc17.net> 6084 6085 [src/mpfr-mini-gmp.c] Fixed types. 6086 6087 [src/mpfr-mini-gmp.c] Added a static assertion to make sure that 6088 the MPFR_ASSERTD added in r13312 is valid. 6089 60902018-12-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6091 6092 [src/mpfr-mini-gmp.c] gmp_urandomm_ui did not generate uniform values 6093 60942018-12-03 Vincent Lefèvre <vincent@vinc17.net> 6095 6096 [src/set_d.c] Improved comment. 6097 60982018-11-29 Vincent Lefèvre <vincent@vinc17.net> 6099 6100 [tests/Makefile.am] About r13308, added references to the bugs. 6101 6102 [tests/Makefile.am] Unset DISPLAY as it is not needed and it can yield 6103 error messages when running the tests with LOG_COMPILER=wine (for builds 6104 with MinGW). 6105 6106 [tests/tversion.c] Updated a comment about an output issue with MinGW, 6107 with the test run under Wine (which is really the cause of the issue). 6108 61092018-11-28 Vincent Lefèvre <vincent@vinc17.net> 6110 6111 [tests/tstrtofr.c] In case of failure of some particular test, output 6112 the probable cause of this failure (GCC bug 86554) with a workaround. 6113 61142018-11-27 Vincent Lefèvre <vincent@vinc17.net> 6115 6116 [tests/tversion.c] Updated a comment about a printf issue with MinGW. 6117 6118 [src/strtofr.c] Added a FIXME about the error analysis (info that was 6119 part of the FIXME resolved in r13303 and inadvertently dropped). 6120 6121 [src/strtofr.c] Resolved a FIXME; tstrtofr no longer fails due to 6122 bug20181127 with 8-bit limbs (micro-gmp/8). 6123 6124 [tests/tstrtofr.c] Added bug20181127 (test found with random_tests), 6125 which fails with 8-bit limbs (micro-gmp/8). 6126 6127 [src/mpfr-impl.h] Added a comment with a warning concerning the 6128 meaning of MPFR_EXP_FSPEC. 6129 [tests/tstrtofr.c] Fixed a MPFR_EXP_FSPEC related bug in a test 6130 for _MPFR_EXP_FORMAT <= 2, e.g. with -D_MPFR_PREC_FORMAT=2. 6131 6132 [tests/tdiv.c] Fixed bad format string for an error message, detected 6133 with -D_MPFR_PREC_FORMAT=2 (using -Werror...). 6134 61352018-11-26 Vincent Lefèvre <vincent@vinc17.net> 6136 6137 [tests] Moved bug20180908() from tget_str.c to tset_str.c since it tests 6138 mpfr_set_str() only. This test was introduced in r13164. 6139 61402018-11-23 Vincent Lefèvre <vincent@vinc17.net> 6141 6142 [TODO] + More UBF functions. 6143 6144 [doc/mpfr.texi] Updated the month. 6145 6146 [src/strtofr.c] Changed some unsigned long to unsigned int. 6147 6148 [src/strtofr.c] Some cleanup in parsed_string_to_mpfr. Avoid a potential 6149 integer overflow in very high precision if mp_size_t < mpfr_prec_t. 6150 61512018-11-22 Vincent Lefèvre <vincent@vinc17.net> 6152 6153 [src/strtofr.c] Updated FIXME, due to new tests added to 6154 tests/tstrtofr.c in r13278-13279,13286-13288. 6155 6156 [src/nbits_ulong.c] Added missing initialization from r13269 6157 when MPFR_LONG_WITHIN_LIMB is not defined. 6158 6159 [tests/tstrtofr.c] Resolved the FIXME and fixed the issue related to 6160 the old mpfr_get_str description (see r13283). 6161 Note: with the later fix r13289, a test still fails with 8-bit limbs 6162 (incorrect exponent, possibly corresponding to the FIXME just before 6163 "exp = GMP_NUMB_BITS - count;" in src/strtofr.c). 6164 6165 [tests/tstrtofr.c] Added comments, including a FIXME. 6166 6167 [tests/tstrtofr.c] Resolved the FIXME for the random tests, and 6168 increased the number of tests to trigger a failure. 6169 6170 MPFR manual: corrected/completed the mpfr_get_str description in order 6171 to follow the historical behavior and GMP's mpf_get_str function. 6172 (Discussion in the Trier meeting.) 6173 6174 [src/get_str.c] Code style. 6175 6176 [doc/README.dev] Update about issues with mixing signed/unsigned types. 6177 6178 [doc/README.dev] Added a note about the disallowed conversions between 6179 function pointers and other kinds of pointers (including to void *). 6180 61812018-11-20 Vincent Lefèvre <vincent@vinc17.net> 6182 6183 [tests/tstrtofr.c] Added a FIXME, which explains the current failure. 6184 But there is currently an inconsistency in mpfr_get_str, whose digits 6185 are not specified: 6186 https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00021.html 6187 6188 [tests/tstrtofr.c] Added random tests, which currently fail. 6189 61902018-11-19 Vincent Lefèvre <vincent@vinc17.net> 6191 6192 [src/round_prec.c] mpfr_can_round_raw: improved the code structure about 6193 rnd1 and rnd2, making clear that they are not changed several times; 6194 avoid the use of cc with 2 different meanings in the same code path. 6195 61962018-11-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6197 6198 [src/round_prec.c] fixed bug in mpfr_can_round when rnd2=RNDF, rnd1 is a 6199 directed rounding, and the input is exact 6200 62012018-11-16 Vincent Lefèvre <vincent@vinc17.net> 6202 6203 [src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment. 6204 In short, the current tstrtofr.c tests seem to always be hard-to-round 6205 cases. The consequence is that some parts of the code are run, but not 6206 completely tested, because for these cases, some intermediate results, 6207 potentially incorrect, are thrown out due to the next Ziv iteration! 6208 6209 [src/strtofr.c] parsed_string_to_mpfr: minor changes. 6210 6211 [src/strtofr.c] parsed_string_to_mpfr: added log messages. 6212 6213 [src/strtofr.c] Minor change to use MPFR_ASSERTD. 6214 6215 [src/{int_ceil_log2.c,mpfr-impl.h}] Consistent postcondition for 6216 MPFR_INT_CEIL_LOG2 and __gmpfr_int_ceil_log2 (result >= 0). 6217 6218 [src/nbits_ulong.c] Code refactoring. Added {pre,post}condition. 6219 6220 [src/strtofr.c] parsed_string_to_mpfr: removed an incorrect cast. 6221 6222 [src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (again, 6223 another issue). 6224 6225 [src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (there 6226 is another issue to solve first). 6227 6228 Removed trailing whitespace. 6229 6230 [src/strtofr.c] parsed_string_to_mpfr: updated a comment (useless code 6231 in this function or incomplete tests). 6232 6233 Avoid GCC's -Wcast-align warnings with 8-bit limbs (a correct alignment 6234 is ensured by the code itself, and GCC cannot check just from a cast). 6235 6236 [src/strtofr.c] parsed_string_to_mpfr: updated comments. 6237 62382018-11-15 Vincent Lefèvre <vincent@vinc17.net> 6239 6240 [src/strtofr.c] parsed_string_to_mpfr: more code review, with minor 6241 changes and corrections + a FIXME. 6242 6243 [src/strtofr.c] Typo. 6244 6245 [src/strtofr.c] Fixed an allocation bug for GMP_NUMB_BITS = 8. 6246 6247 [src/strtofr.c] Updated a comment: the issue with mpn_set_str found 6248 in 2013-12 (see r8722) was actually an error in the GMP manual. 6249 6250 [src/strtofr.c] parsed_string_to_mpfr: improved an assertion; comments. 6251 62522018-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6253 6254 [tests/tcan_round.c] fixed some TODOs, which exposes a bug 6255 62562018-11-15 Vincent Lefèvre <vincent@vinc17.net> 6257 6258 [src/strtofr.c] Near the beginning of parsed_string_to_mpfr: corrected 6259 comments; added an assertion; minor change of a test. 6260 62612018-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6262 6263 [src/mulders.c] fixed issue with --enable-gmp-internals 6264 [tune/tuneup.c] likewise 6265 (see https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00015.html) 6266 62672018-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6268 6269 [src/mpfr-longlong.h] applied patch from https://sympa.inria.fr/sympa/arc/mpfr/2018-10/msg00010.html 6270 62712018-10-07 Vincent Lefèvre <vincent@vinc17.net> 6272 6273 [codespell.ignore] Also ignore "ue" (codespell 1.14). 6274 62752018-10-01 Vincent Lefèvre <vincent@vinc17.net> 6276 6277 [configure.ac,src/Makefile.am] About the --with-mini-gmp support, since 6278 there are some advantages with the new code, one will probably not go 6279 back. Thus removed the references to the Automake 1.15 bug and to the 6280 old code. Also removed the mini_gmp_path=. workaround needed with the 6281 old code (even with Automake 1.16), which had been added in r13217. 6282 Also slightly improved the setup for mini-gmp. 6283 6284 [doc/with-mini-gmp.patch] Updated comment. 6285 6286 [configure.ac,src/Makefile.am] Avoid a "make" failure due to a bug in 6287 Automake 1.15 automatic dependency tracking: instead of using mini-gmp 6288 directly in an external directory with a $(mini_gmp_path) variable in 6289 src/Makefile.am, make the configure script add symbolic links to the 6290 mini-gmp sources in the build directory, and use these symbolic links 6291 for the MPFR build (as if they were plain files). 6292 Tested under various conditions: static and shared; separate source and 6293 build directories; changing the mini-gmp version without "make clean". 6294 62952018-09-28 Vincent Lefèvre <vincent@vinc17.net> 6296 6297 Added doc/with-mini-gmp.patch file (for the developers): 6298 Modifications to configure.ac and src/Makefile.am that had been done 6299 for --with-mini-gmp support. This is kept for the reference, as changes 6300 may be needed as a workaround to a bug fixed in GNU Automake 1.16, and 6301 other future changes might break things (to remember what was working 6302 at this time). 6303 63042018-09-20 Vincent Lefèvre <vincent@vinc17.net> 6305 6306 [doc/mini-gmp] Update. 6307 63082018-09-19 Vincent Lefèvre <vincent@vinc17.net> 6309 6310 [Makefile.am] Distribute the doc/mini-gmp file. 6311 [configure.ac] For --with-mini-gmp, say: 6312 "(experimental, please read doc/mini-gmp file)" 6313 6314 [src/Makefile.am] Added nodist_ for mini-gmp.{c,h} so that these files 6315 (not part of MPFR) are not put in the tarballs by "make dist". 6316 6317 Removed --enable-mini-gmp configure option. 6318 * NEWS: say that it is replaced by --with-mini-gmp. 6319 * configure.ac: --enable-mini-gmp removed. 6320 * doc/mini-gmp: update. 6321 6322 [src/mpfr-mini-gmp.c] Missing #else (from r13156). 6323 6324 [configure.ac] When using --with-mini-gmp, define GMP_NUMB_BITS if this 6325 macro is not already defined in mini-gmp.h (this is done a bit like 6326 with --enable-mini-gmp, but the handling in this option is buggy as 6327 GMP_NUMB_BITS is defined with AC_DEFINE_UNQUOTED unconditionally, 6328 though is most cases the contents of the macros are the same). 6329 6330 [configure.ac] Do not split "Setup GMP detection". When building 6331 MPFR against mini-gmp, do not run any "Setup GMP detection" test 6332 (in particular, no longer check gmp.h, as it is useless). 6333 6334 [src/mpfr-mini-gmp.h] Removed incorrect GMP_NUMB_BITS macro definition, 6335 and this macro needs to be usable in preprocessor tests, and sizeof and 6336 types are not available at this level. GMP_NUMB_BITS must be defined by 6337 mini-gmp.h, by the configure script, or by the user. 6338 6339 [tools/mpfrlint] Update due to r13221. 6340 63412018-09-18 Vincent Lefèvre <vincent@vinc17.net> 6342 6343 [tests/Makefile.am] Run tversion at the beginning of the tests, 6344 then show its output and svnversion's output too. 6345 6346 [src/mpfr-mini-gmp.h] Added a FIXME (failure with a mini-gmp that 6347 does not define GMP_NUMB_BITS, such as the official one). 6348 6349 [tests/random2.c] Avoid undefined behavior on shift count. 6350 6351 [src/mpfr-impl.h] Fixed MPFR_LIMB_MASK() macro. 6352 6353 [configure.ac] Avoid a configure failure with automatic dependency 6354 tracking when --with-mini-gmp is not used (bug in Automake?). 6355 6356 [NEWS] + Mini-gmp support via the --with-mini-gmp configure option. 6357 63582018-09-17 Vincent Lefèvre <vincent@vinc17.net> 6359 6360 Merged the with-mini-gmp branch into the trunk: new --with-mini-gmp 6361 configure option to build MPFR against mini-gmp (instead of GMP). 6362 6363 [doc/mini-gmp] Update. 6364 6365 Merged the latest changes from the trunk. 6366 6367 [src/mul_ui.c] Better code organization (with the MPFR_RET at the right 6368 place). Corrected indentation after #else. 6369 63702018-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6371 6372 [src/mpfr-mini-gmp.c] added #if 0 ... #endif for mpz_dump (unused) 6373 [src/mul_ui.c] fixed compiler warning for limb < long 6374 63752018-09-17 Vincent Lefèvre <vincent@vinc17.net> 6376 6377 [src/Makefile.am] Update for mini-gmp (install mini-gmp.h). 6378 6379 Merged the latest changes from the trunk (bug fix for 8-bit limb). 6380 6381 [tests/random2.c] Fix for 8-bit limb. 6382 6383 Merged the latest changes from the trunk. 6384 6385 [tests/tests.c] Define only one buffer in test_version(). 6386 6387 [tests/random2.c] Improved code by using MPFR_LIMB_* macros. 6388 6389 [src/mpfr-impl.h] Improved MPFR_LIMB_* macros for mp_limb_t < int 6390 (e.g. 16-bit or 8-bit limb), as in such a case, integer promotion 6391 transforms mp_limb_t to int. 6392 63932018-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6394 6395 [tests/tests.c] fixed compiler warning 6396 63972018-09-14 Vincent Lefèvre <vincent@vinc17.net> 6398 6399 Merged the latest changes from the trunk (bug fixes). 6400 6401 [src/get_si.c] Code refactoring/simplification like what has been 6402 done for get_ui.c in r13185, fixing also an integer overflow when 6403 MPFR_LONG_WITHIN_LIMB is not defined. 6404 6405 [tests/random2.c] Fix for 16-bit limb. 6406 6407 [src/add1.c] Fix for 16-bit limb. 6408 6409 [src/mpfr-gmp.h] Fixed bug in add_ssaaaa / sub_ddmmss from r13081. 6410 6411 Completed --with-mini-gmp support (not fully tested). 6412 6413 Merged the latest changes from the trunk. 6414 6415 [src/Makefile.am] Moved a comment in a better place. 6416 6417 [configure.ac] Define MINI_GMP Automake conditional (AM_CONDITIONAL). 6418 64192018-09-14 Vincent Lefèvre <vincent@vinc17.net> 6420 6421 Started to implement --with-mini-gmp (building mini-gmp and linking 6422 not correctly handled yet, thus "make check" failure is expected). 6423 6424 [Added during the Subversion to Git conversion] 6425 This commit includes a merge of r13191 from the trunk. 6426 64272018-09-14 Vincent Lefèvre <vincent@vinc17.net> 6428 6429 [configure.ac] Typo. 6430 6431 [configure.ac] Updated comments about configure options for mini-gmp. 6432 64332018-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6434 6435 [tests/tsin.c] reduce REDUCE_EMAX with mini-gmp 6436 64372018-09-13 Vincent Lefèvre <vincent@vinc17.net> 6438 6439 [src/get_ui.c] Added assertions. 6440 6441 [src/get_ui.c] Code refactoring/simplification. 6442 6443 [src/sin_cos.c] Added assertions protecting against buffer overflow. 6444 64452018-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6446 6447 [src/sin_cos.c] fix for small limb size 6448 64492018-09-12 Vincent Lefèvre <vincent@vinc17.net> 6450 6451 [src/mpfr-mini-gmp.h] Fix: Since gmp_version is not defined in mini-gmp, 6452 we must not declare it (otherwise one would get a link failure instead 6453 of a compilation failure if gmp_version is used by mistake). 6454 6455 [tests/tests.c] Improved change in r13179 for mini-gmp. 6456 6457 [configure.ac] Do not check for CC and CFLAGS in gmp.h if mini-gmp is 6458 used, i.e. if --enable-mini-gmp (current option) or --with-mini-gmp 6459 (future option) is given. 6460 64612018-09-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6462 6463 [tests/tests.c] libgmp is not defined with mini-gmp (issue found with -O0) 6464 64652018-09-12 Vincent Lefèvre <vincent@vinc17.net> 6466 6467 [src/mpfr-mini-gmp.h] Removed #include lines as mpfr-mini-gmp.h is 6468 included only in mpfr-impl.h, which already does these #include's. 6469 6470 [src/mpfr-impl.h] Check that MPFR_HAVE_GMP_IMPL and MPFR_USE_MINI_GMP 6471 are not both defined. 6472 6473 [src/mpfr-mini-gmp.c] Removed #include "mpfr-mini-gmp.h" as this include 6474 is already done in mpfr-impl.h (in both cases, when MPFR_USE_MINI_GMP is 6475 defined). 6476 6477 [src/rec_sqrt.c] Replaced "if (GMP_NUMB_BITS >= 16)" by a preprocessor 6478 test "#if GMP_NUMB_BITS >= 16" like earlier. Use static assertions. 6479 6480 [src/rec_sqrt.c] Fixed types for 8-bit limb. Removed useless casts. 6481 6482 [src/rec_sqrt.c] Fixed a type from r13172 (int was obviously too short 6483 and was yielding a segmentation fault). 6484 64852018-09-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6486 6487 [src/rec_sqrt.c] fixed for 8-bit limb 6488 6489 [tests/tcan_round.c] fixed test for small value of GMP_NUMB_BITS 6490 6491 [src/strtofr.c] fixed r13168: in case exact=0, mpn_rshift was not done 6492 6493 [tests/tsqrt.c] modified test_sqrt1n() so that it passes with 8-bit limbs 6494 64952018-09-11 Vincent Lefèvre <vincent@vinc17.net> 6496 6497 [src/strtofr.c] Replaced "exact &=" by "exact = exact &&" as usual. 6498 64992018-09-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6500 6501 [src/strtofr.c] fix for 8-bit limb 6502 6503 [src/strtofr.c] added comment 6504 65052018-09-10 Vincent Lefèvre <vincent@vinc17.net> 6506 6507 [doc/mpfr.texi] Updated the month. 6508 65092018-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6510 6511 [src/strtofr.c] fix from r13163 was incorrect 6512 [tests/tget_str.c] added a testcase, and fixed an error message 6513 65142018-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6515 6516 [src/strtofr.c] resolved a FIXME 6517 6518 [tests/tdiv_ui.c] fixed corner_cases() test 6519 6520 [src/int_ceil_log2.c] fixed __gmpfr_int_ceil_log2 for limb < long 6521 65222018-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6523 6524 [tests/random2.c] fixed mpfr_random2 for GMP_NUMB_BITS <> 64 6525 6526 [src/mpfr-mini-gmp.c] fixed another compiler warning 6527 6528 [src/get_ui.c] fixed compiler warning 6529 6530 some fixes for 8-bit limb support 6531 6532 adapt to 8-bit limbs (work in progress) 6533 6534 [tests/tl2b.c] extend to 8-bit limb 6535 6536 [src/mpfr-gmp.h] fix for 8-bit limb 6537 65382018-09-07 Vincent Lefèvre <vincent@vinc17.net> 6539 6540 [doc/mpfr.texi] Added @tie{} (normal non-breakable space) at various 6541 places to avoid unwanted line breaking. 6542 6543 [doc/mpfr.texi] mpfr_rootn_ui, mpfr_root: changed k to n in order to 6544 match IEEE 754-2008. Also improved the description of mpfr_rootn_ui, 6545 mentioning the P754/D2.41 draft of the next IEEE 754 standard because 6546 IEEE 754-2008 is incomplete. 6547 65482018-09-06 Vincent Lefèvre <vincent@vinc17.net> 6549 6550 [tests/tdiv.c] !mpfr_equal_p is better than mpfr_cmp. 6551 65522018-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6553 6554 [src/rint.c] fixed bug with 16-bit limb 6555 (found by trint with GMP_CHECK_RANDOMIZE=1536206745598891) 6556 6557 [tests/tdiv.c] fixed test_20151023() 6558 65592018-09-06 Vincent Lefèvre <vincent@vinc17.net> 6560 6561 Removed trailing whitespace. 6562 6563 [src/get_ld.c] Removed incorrect and useless assertions (manl 6564 has exactly 32 bits, thus a shift count of 32 bits is invalid, 6565 but also useless). 6566 65672018-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6568 6569 [src/get_ld.c] fixed (hopefully definitively) for 16-bit limb 6570 65712018-09-05 Vincent Lefèvre <vincent@vinc17.net> 6572 6573 [src/set_d64.c] 2 fixes concerning rp[]: 6574 * If GMP_NUMB_BITS >= 64, there is a shift of 32 bits, thus one 6575 uses mp_limb_t (> 32 bits) instead of unsigned int. 6576 * Otherwise use unsigned long as an unsigned int might be on 16 bits. 6577 6578 [src/mpfr-impl.h] Indentation. 6579 6580 [src] Moved mpfr_nbits_ulong to its own file "nbits_ulong.c". 6581 6582 [src/pow_si.c] MPFR_NEED_LONGLONG_H is still needed. 6583 6584 [tests/tget_set_d64.c] Removed xxx suffix added in r13139 (by mistake?). 6585 65862018-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6587 6588 [src/exp_2.c] export (internally) nbits_ulong (renamed to mpfr_nbits_ulong) 6589 [src/mpfr-impl.h] added prototype for mpfr_nbits_ulong 6590 [src/pow_si.c] fixed for 16-bit limb 6591 6592 [src/get_d64.c] fixed for 16-bit limb 6593 [src/set_d64.c] likewise 6594 [tests/tget_set_d64.c] improved error message 6595 65962018-09-05 Vincent Lefèvre <vincent@vinc17.net> 6597 6598 [src/get_ld.c] In the case GMP_NUMB_BITS == 16, cast to unsigned long 6599 instead of unsigned int since shift counts can be up to 16 and an int 6600 might be on 16 bits only. 6601 66022018-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6603 6604 [src/get_ld.c] when denorm=16, a 32-bit shift on an unsigned int is undefined 6605 6606 [src/exp_2.c] fix for 16-bit limb 6607 [tests/texp.c] improve error message 6608 6609 [src/mpfr-mini-gmp.c] fixed gmp_urandomb_ui for 16-bit limb, added mpz_dump 6610 [tests/terandom_chisq.c] more details in case of error 6611 6612 [src/random_deviate.c] fixed typo 6613 66142018-09-04 Vincent Lefèvre <vincent@vinc17.net> 6615 6616 [tests/tset_z_exp.c] Avoid a GCC bug. 6617 6618 [tests/tset_z_exp.c] Attempt to fix randexp, but GCC complains. 6619 6620 [src/mpn_exp.c] Avoid useless "while" in nbits_mpfr_exp_t. 6621 66222018-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6623 6624 [tests/tset_ld.c] give more digits in case of error 6625 [tests/tget_ld_2exp.c] added one test (currently fails for 16-bit limb) 6626 6627 [src/set_ld.c] partial fix for 16-bit limb (typo + nice bug!) 6628 6629 [tests/tset_z_exp.c] fixed infinite loop in test code for limb < mpfr_exp_t 6630 6631 [src/mpn_exp.c] adapt to bitsize(mpfr_exp_t) > GMP_NUMB_BITS 6632 66332018-09-04 Vincent Lefèvre <vincent@vinc17.net> 6634 6635 [src/div.c] Code simplification. 6636 6637 [src/round_prec.c] MPFR_LIMB is actually useless now... 6638 6639 [src/round_prec.c] Code style and potential correction for 16-bit limb. 6640 6641 [src/sqrt_ui.c] Moved MPFR_SAVE_EXPO_FREE after mpfr_sqrt because 6642 the uu argument may be out of range and there is no guarantee that 6643 mpfr_sqrt can handle that. Improved consistency; code refactoring. 6644 66452018-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6646 6647 [src/round_prec.c] fixed for 16-bit limb 6648 [tests/tcan_round.c] improve error message 6649 6650 [src/sqrt_ui.c] fixed for 16-bit limb 6651 66522018-09-04 Vincent Lefèvre <vincent@vinc17.net> 6653 6654 [src/get_si.c] Make sure that a left shift is done on an unsigned type 6655 (as a left shift on a 0 of signed type was not specified by C90). 6656 66572018-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6658 6659 [src/div.c] fix for 16-bit limbs, and added comments 6660 6661 [src/rint.c] fix for 16-bit limb 6662 6663 [tests/tdiv.c] more detailed error message 6664 6665 [src/get_si.c] forgot cast when long > limb 6666 6667 [src/get_ui.c] forgot cast when long > limb 6668 66692018-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6670 6671 [src/odd_p.c] fix for 16-bit limb 6672 6673 [tests/tbeta.c] exit at the first error 6674 6675 [src/get_si.c] adapt to 16-bit limbs 6676 [src/get_ui.c] likewise 6677 6678 [src/cmp_si.c] adapt for reduced exponent range for 16-bit limbs 6679 [src/cmp_ui.c] likewise 6680 66812018-09-03 Vincent Lefèvre <vincent@vinc17.net> 6682 6683 [tests/mpfr-test.h] If MPFR_TESTS_ABORT is defined, replace exit(1) by 6684 abort(), thus with a core dump. 6685 [doc/README.dev] Document MPFR_TESTS_ABORT. 6686 66872018-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6688 6689 [tests/tgeneric.c] revert 13107 (abort might lose some data in open files) 6690 [src/mul_ui.c] fixed for 16-bit limb and reduced exponent range 6691 6692 [tests/tgeneric.c] replace exit(1) by abort() to allow debugging with gdb 6693 6694 [src/isinteger.c] fix for 16-bit limb 6695 6696 [src/cmp_si.c] fixed error for 16-bit limb 6697 [src/cmp_ui.c] adapted to 16-bit limb 6698 66992018-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6700 6701 [src/cmp_si.c] adapt for 16-bit limb 6702 67032018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6704 6705 [src/mul_ui.c] adapt for 16-bit limb 6706 67072018-08-31 Vincent Lefèvre <vincent@vinc17.net> 6708 6709 [src/mpfr-mini-gmp.c] Fixed potential undefined behavior (when mp_limb_t 6710 is defined as an unsigned short) with MPFR_LIMB_LSHIFT. 6711 6712 [src/mpfr-impl.h] Define MPFR_LIMB_LSHIFT(x,c) macro to do a left shift, 6713 making sure that the shifted argument is unsigned (needed due to the 6714 integer promotion rules when mp_limb_t is defined as an unsigned short). 6715 [src/add1.c] Fixed potential undefined behavior with MPFR_LIMB_LSHIFT. 6716 6717 [src/mpfr-impl.h] Corrected a comment and added a warning. 6718 67192018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6720 6721 [src/mpfr-impl.h] fix MPFR_INT_CEIL_LOG2 for 16-bit limb 6722 6723 [src/set_si_2exp.c] support 16-bit limbs 6724 67252018-08-31 Vincent Lefèvre <vincent@vinc17.net> 6726 6727 [src/set_ui_2exp.c] Code formatting. Removed a FIXME (done in r13078). 6728 67292018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6730 6731 [src/mpfr-gmp.h] missing cast 6732 6733 removed TEST_FLAGS stuff 6734 67352018-08-31 Vincent Lefèvre <vincent@vinc17.net> 6736 6737 [doc/README.dev] More correction about the MPFR_TESTS_TIMEOUT macro. 6738 6739 [doc/README.dev] Clarification about MPFR_TESTS_TIMEOUT. 6740 6741 [doc/README.dev] Reverted r13090: this was already mentioned at the 6742 right place (do not mix up macros and environment variables). 6743 67442018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6745 6746 [src/mpfr-gmp.h] added missing udiv_qrnnd for 16-bit limb 6747 [src/mul.c] fixed for 16-bit limb 6748 [src/ui_div.c] likewise 6749 6750 [README.dev] mention that MPFR_TESTS_TIMEOUT only works with --enable-tests-timeout 6751 67522018-08-31 Vincent Lefèvre <vincent@vinc17.net> 6753 6754 [src/mpfr-impl.h] Fix for MS Windows. 6755 6756 [src/mpfr-impl.h] Make sure that MPFR_LONG_WITHIN_LIMB is defined if 6757 __GMP_SHORT_LIMB is not defined, as required by the current code. 6758 6759 [src/mpfr-gmp.h] Untabified. 6760 67612018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6762 6763 [src/mpfr-impl.h] fixed wrong #ifdef 6764 6765 [src/mpfr-mini-gmp.c] fix for 16-bit limb 6766 6767 [src/add1.c] fix for 16-bit limb 6768 [tests/tadd.c] more output in case of error 6769 6770 [src/add1.c] fixed compiler warning 6771 6772 [src/mpfr-gmp.h] removed leftover debug statement 6773 [src/mpfr-impl.h] added MPFR_LIMB macro 6774 [src/sub1sp.c] fix for 16-bit limb 6775 67762018-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6777 6778 [src/mpfr-gmp.h] more changes for 16-bit limb 6779 [src/mpfr-impl.h] mpfr-longlong.h should not be used for limb < long 6780 6781 [mpfr-gmp.h] added comment 6782 6783 [mpfr-mini-gmp.c] fix for 16-bit limb 6784 6785 [src/set_ui_2exp.c] fix for 16-bit limb 6786 67872018-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6788 6789 [src/round_p.c] gmp_fprintf is not defined in mini-gmp 6790 6791 [tests/tadd.c] fix for 16-bit limb 6792 6793 [src/add1.c] revert previous commit since it does not remove the warning: 6794 add1.c: In function ‘mpfr_add1’: 6795 add1.c:407:30: warning: ‘<<’ in boolean context, did you mean ‘<’ ? [-Wint-in-bool-context] 6796 if (difs && (cprev << (GMP_NUMB_BITS - difs))) 6797 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ 6798 6799 [src/add1.c] fixed compiler warning (with gcc 8.2.0) 6800 68012018-08-29 Vincent Lefèvre <vincent@vinc17.net> 6802 6803 [tests/tdiv_ui.c] Added a comment about a spurious failure 6804 with MPFR_RNDF if RND_LOOP_NO_RNDF were not used. 6805 68062018-08-28 Vincent Lefèvre <vincent@vinc17.net> 6807 6808 [tests/tsinh.c] Fixed test introduced in r13047. 6809 6810 [src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the bug introduced in r13066 6811 for the cases where MPFR_LONG_WITHIN_LIMB is defined (make sure that a 6812 significand allocated in the stack is not freed before the associated 6813 mpfr_t object). 6814 6815 [src/div_ui.c] Extend the exponent range in the case where 6816 MPFR_LONG_WITHIN_LIMB is not defined, resolving the FIXME. 6817 Note: a test was already there in tdiv_ui via the generic tests. 6818 6819 [tests/tdiv_ui.c] Disabled rnd=MPFR_RNDF in a loop as this now fails. 6820 6821 [tests/tdiv_ui.c] Corrected an error message. 6822 6823 [src/div.c] Avoid an infinite recursion when MPFR_LONG_WITHIN_LIMB 6824 is not defined (mpfr_div calls mpfr_div_ui, which calls mpfr_div). 6825 [src/div_ui.c] Made the preprocessor test on MPFR_LONG_WITHIN_LIMB 6826 consistent with the ones in the other .c files. 6827 6828 [src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the cases where 6829 MPFR_LONG_WITHIN_LIMB is not defined (regression in the 6830 latest changes). Also avoid unused variables. 6831 6832 Removed trailing whitespace. 6833 6834 [src/ui_sub.c] Extend the exponent range early enough. 6835 6836 [src/add_ui.c] Extend the exponent range early enough. 6837 6838 [src/sub_ui.c] Extend the exponent range early enough. 6839 68402018-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6841 6842 [src/get_ld.c] adapt to GMP_NUMB_BITS=16 6843 68442018-08-28 Vincent Lefèvre <vincent@vinc17.net> 6845 6846 [src/div_ui.c] Added a FIXME. 6847 68482018-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6849 6850 [src/set_ld.c] adapt to GMP_NUMB_BITS=16 6851 6852 [src/set_d.c] adapt to GMP_NUMB_BITS=16 (not yet tested) 6853 6854 [src/exp_2.c] removed a static assertion (duplicate with MPFR_LONG_WITHIN_LIMB) 6855 6856 [src/init2.c] split a static assertion in two 6857 6858 [src/mpfr-gmp.h] allow GMP_NUMB_BITS=16 (experimental, do not use!) 6859 6860 [src/set_d.c] make it easier to extend to GMP_NUMB_BITS<32 6861 6862 [configure.ac] read GMP_NUMB_BITS from mini-gmp.h when available 6863 (otherwise assume mp_limb_t == unsigned long) 6864 6865 [src/ui_sub.c] make code work for limb < long 6866 6867 [src/sub_ui.c] make code work for limb < long 6868 6869 [src/div_ui.c] make code work for limb < long 6870 6871 [src/add_ui.c] make code work for limb < long 6872 6873 [mini-gmp] update 6874 6875 [tests/tsinh.c] improve coverage 6876 6877 [tests/tsubnormal.c] improve coverage 6878 68792018-08-27 Vincent Lefèvre <vincent@vinc17.net> 6880 6881 [src/sub1sp.c] Added a FIXME about cp vs tp. 6882 68832018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6884 6885 [tests/tmul.c] improve coverage 6886 68872018-08-27 Vincent Lefèvre <vincent@vinc17.net> 6888 6889 [src/sub1sp.c] Avoid bad usage of tp in the generic code: 6890 * In the case d == 1, two branches were inconsistent: tp not defined 6891 at the same level, with one shadowing the other one. 6892 * In the case 2 <= d < p, tp was reused with a different meanings; 6893 renamed the second one to cp, as this is MPFR_MANT(c). 6894 6895 [src/sub1sp.c] Re-added/updated FIXME about the long backward goto's. 6896 6897 [src/{add1sp.c,mul.c}] Updated the condition to use the formally 6898 extracted code and added a corresponding comment. 6899 69002018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6901 6902 [src/const_log2.c] further improve coverage 6903 69042018-08-27 Vincent Lefèvre <vincent@vinc17.net> 6905 6906 [src/cache.c] Improved variable names (→ dprec for the precision of dest 6907 and cprec for the precision of the cache) and added/updated comments. 6908 6909 [src/cache.c] Reverted r13036 as what matters is the target precision, 6910 which can be very small. 6911 69122018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6913 6914 [src/add1sp1_extracted.c] replaced extracted code by new for MPFR_PREC_BITS=64 6915 [src/mul_1_extracted.c] likewise 6916 [src/add1sp.c] changed condition to use the formally extracted code 6917 [src/mul.c] likewise (but code is still not yet activated here) 6918 69192018-08-27 Vincent Lefèvre <vincent@vinc17.net> 6920 6921 [src/cache.c] Comment: In practice, the "overflow handler" of 6922 MPFR_RNDRAW_GEN should never be called. 6923 69242018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6925 6926 [src/const_log2.c] avoid hard-coded values 6927 [tests/tconst_log2.c] improve coverage 6928 69292018-08-27 Vincent Lefèvre <vincent@vinc17.net> 6930 6931 [src/cache.c] Replaced a test + mpfr_overflow by a MPFR_ASSERTD since 6932 the cached value (in extended exponent range) cannot overflow. 6933 69342018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6935 6936 [src/const_euler.c] better choice of (initial) working precision 6937 [tests/tconst_euler.c] added coverage test 6938 69392018-08-27 Vincent Lefèvre <vincent@vinc17.net> 6940 6941 [tests/tversion.c] Update concerning the shared cache, to be consistent 6942 with the other mpfr_buildopt_*_p features: 6943 * check that mpfr_buildopt_sharedcache_p() and MPFR_WANT_SHARED_CACHE 6944 match; 6945 * for the output of the value, test mpfr_buildopt_sharedcache_p() 6946 instead of the macro. 6947 69482018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6949 6950 [tests/tconst_catalan.c] improve coverage 6951 6952 [tests/tbuildopt.c] added check of mpfr_buildopt_sharedcache_p() 6953 69542018-08-27 Vincent Lefèvre <vincent@vinc17.net> 6955 6956 Removed trailing whitespace. 6957 69582018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6959 6960 [src/sub1sp.c] fixed even rule for p=1 6961 69622018-08-27 Vincent Lefèvre <vincent@vinc17.net> 6963 6964 [src/mpfr-impl.h] Mention WG14/N2270 (proposed maybe_unused attribute), 6965 which could be useful to avoid MPFR_DBGRES. 6966 69672018-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6968 6969 [src/sub1sp.c] finished simplifying the mpfr_sub1sp code 6970 6971 [src/sub1sp.c] simplified the computation of sbb 6972 6973 [src/sub1sp.c] full rewrite of mpfr_sub1sp (work in progress) 6974 69752018-08-23 Vincent Lefèvre <vincent@vinc17.net> 6976 6977 [tests/tversion.c] Output "Enable formally proven code" info. 6978 6979 [doc/README.dev] Describe MPFR_WANT_PROVEN_CODE. 6980 6981 Renamed WANT_PROVEN_CODE to MPFR_WANT_PROVEN_CODE for consistency with 6982 the other WANT macros (and to avoid potential clashes with foreign .h 6983 files). 6984 6985 [tools/mpfrlint] For some tests, ignore extracted files (proven code). 6986 69872018-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 6988 6989 the mpfr_mul_1 extracted code is not proven yet 6990 69912018-08-23 Vincent Lefèvre <vincent@vinc17.net> 6992 6993 For --enable-formally-proven-code, instead of requiring a check of the 6994 type sizes in configure, just enable the proven code only if the types 6995 have the sizes expected by this code. 6996 * configure.ac: removed the FIXME. 6997 * src/add1sp.c, src/mul.c: updated the #if test that enables the 6998 proven code (add1sp1_extracted.c and mul_1_extracted.c). 6999 7000 [configure.ac] Updated FIXME for --enable-formally-proven-code 7001 (many failures with -m32 due to assumptions on type sizes). 7002 7003 [configure.ac] Added a FIXME for --enable-formally-proven-code. 7004 7005 [configure.ac] Updated message for --enable-formally-proven-code. 7006 70072018-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7008 7009 added configure option --enable-formally-proven-code and corresponding code 7010 70112018-08-22 Vincent Lefèvre <vincent@vinc17.net> 7012 7013 [doc/algorithms.tex] Ulp calculus: swap Rule 4 and Rule 5. 7014 7015 [doc/algorithms.tex] Ulp calculus Rule 4: make the proof much simpler. 7016 7017 [doc/algorithms.tex] Error calculus: implicitly assume x ≠ 0 in ulp. 7018 7019 [src/sub1sp.c] Updated a FIXME. 7020 7021 [src/sub1sp.c] Removed a comment that brings nothing and is not 7022 really correct (this is not a "flag"). 7023 70242018-08-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7025 7026 [tests/mpfr-test.h] added macro TEST_FLAGS (debug use only) 7027 70282018-08-22 Vincent Lefèvre <vincent@vinc17.net> 7029 7030 [tests/tversion.c] Portability corrections related to the use of the 7031 preprocessor / code robustness. 7032 70332018-08-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7034 7035 [src/sub1sp.c] revert mpfr_sub1sp to the version of revision 12241 7036 7037 [src/sub1sp.c] fixed bug20180813 7038 7039 [tests/tsub1sp.c] improved comment about bug20180813() 7040 70412018-08-21 Vincent Lefèvre <vincent@vinc17.net> 7042 7043 [doc/mpfr.texi] Updated the month. 7044 70452018-08-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7046 7047 [tests/tsub1sp.c] added a test for a bug in mpfr_sub1sp (to be fixed) 7048 70492018-08-20 Vincent Lefèvre <vincent@vinc17.net> 7050 7051 [doc/mpfr.texi] Replaced "Section ``Rounding''" by "@ref{Rounding}". 7052 70532018-08-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7054 7055 [doc/mpfr.texi] renamed Section "Rounding Modes" to "Rounding" 7056 70572018-08-18 Vincent Lefèvre <vincent@vinc17.net> 7058 7059 Avoid a pointer-to-int-cast warning with GCC (e.g. under 32-bit Linux) 7060 by casting pointers to uintptr_t before the cast to mpfr_uintmax_t. 7061 * acinclude.m4: use AC_TYPE_UINTPTR_T to define uintptr_t if 7062 not available. 7063 * tests/memory.c: added casts to uintptr_t. 7064 70652018-08-16 Vincent Lefèvre <vincent@vinc17.net> 7066 7067 Code robustness in macro definitions. 7068 7069 [src/sqr.c] Changed a variable name to avoid confusion with the function 7070 parameter of the same name, which has a different type. 7071 7072 [src/mpfr-impl.h] Added a cast to mp_bitcnt_t in order to fix potential 7073 integer overflow in MPFR_MPZ_SIZEINBASE2. 7074 7075 [src/round_raw_generic.c] Type consistency. 7076 7077 Added MPFR_INC_PREC definition (similar to MPFR_ADD_PREC) and replaced 7078 some MPFR_ADD_PREC occurrences by MPFR_INC_PREC. In src/bernoulli.c, 7079 replaced += by MPFR_INC_PREC to detect overflow. 7080 70812018-08-11 Vincent Lefèvre <vincent@vinc17.net> 7082 7083 Replaced "TZ=UTC" by "TZ=UTC0" for portability. 7084 70852018-08-06 Vincent Lefèvre <vincent@vinc17.net> 7086 7087 [src/round_raw_generic.c] Avoid a useless variable. This should 7088 also avoid warnings with Windows ICC, reported at: 7089 https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html 7090 7091 [tests/tcan_round.c] Added missing casts for printf (error messages). 7092 Bug detected under MS Windows, where size_t > unsigned long. See: 7093 https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html 7094 7095 [tests/tdiv_ui.c] Improved the conditions for test_20170105(). 7096 In particular, the new preprocessor test can avoid spurious warnings 7097 on large shifts (false positives) with MS Windows. See: 7098 https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html 7099 7100 [doc/README.dev] More details about intmax_t, mpfr_intmax_t, etc. 7101 7102 [tests/memory.c] To print a size_t or a pointer in error messages, 7103 cast to mpfr_uintmax_t (largest integer type available) instead of 7104 unsigned long, which may be too short (e.g. under MS Windows). 7105 See: https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html 7106 7107 [src/mpfr-intmax.h] Define MPFR_INTMAX_FSPEC macro: length modifier 7108 for printf corresponding to mpfr_intmax_t and mpfr_uintmax_t. 7109 7110 [doc/README.dev] Updated/added links about coding standards and C. 7111 71122018-08-05 Vincent Lefèvre <vincent@vinc17.net> 7113 7114 [tools/mpfrlint] Updated a comment: more details about __GMP_DECLSPEC, 7115 in particular those found in GMP's longlong.h file. 7116 71172018-08-05 Vincent Lefèvre <vincent@vinc17.net> 7118 7119 [src/mpfr-longlong.h] Replaced __GMP_DECLSPEC by __MPFR_DECLSPEC. 7120 7121 Otherwise, with Windows DLL, __GMP_DECLSPEC is replaced by 7122 __declspec(dllimport), which is wrong when building MPFR and 7123 yields warning LNK4217 such as: 7124 7125 eint.obj : warning LNK4217: locally defined symbol mpfr_clz_tab 7126 imported in function mpfr_eint 7127 7128 due to 7129 7130 extern const unsigned char __GMP_DECLSPEC __clz_tab[129]; 7131 7132 (note that mpfr_clz_tab is defined with "#define __clz_tab mpfr_clz_tab" 7133 only without the GMP build). 7134 7135 See: 7136 https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00000.html 7137 https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00001.html 7138 71392018-08-05 Vincent Lefèvre <vincent@vinc17.net> 7140 7141 [tools/mpfrlint] Check that __GMP_DECLSPEC is not used by MPFR. 7142 71432018-07-31 Vincent Lefèvre <vincent@vinc17.net> 7144 7145 [tests/tversion.c] Try to detect missing output from the first printf 7146 that occurred once with i586-mingw32msvc-gcc -D__USE_MINGW_ANSI_STDIO 7147 and run under Wine. 7148 (merged changesets r12968-12969 from the 4.0 branch) 7149 71502018-07-27 Vincent Lefèvre <vincent@vinc17.net> 7151 7152 [acinclude.m4,configure.ac] Check the support of the group flag for 7153 native integers, which is a Single UNIX Specification extension. 7154 [tests/tsprintf.c] Test the group flag with the P length modifier only 7155 when supported, since the implementation relies on this support. 7156 7157 [src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t): 7158 a '0' flag was always added when calling gmp_asprintf. This bug 7159 wasn't detected under Linux because the case for which it was 7160 occurring (left space padding without a precision and without a 7161 '0' flag) was not tested. With Wine, tsprintf was failing because 7162 of a bug in the stdio library: the '0' flag added by mistake should 7163 have been ignored in some test with a precision, but it wasn't. 7164 [tests/tsprintf.c] Added a test that made a failure occur under Linux. 7165 7166 [tests/tsprintf.c] Added 2 other tests with the P length modifier. 7167 7168 [src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t). 7169 [tests/tsprintf.c] Corrected/added tests with the P length modifier. 7170 71712018-07-26 Vincent Lefèvre <vincent@vinc17.net> 7172 7173 [src/vasprintf.c] Fixed various overflow and close-to-overflow issues. 7174 Those with the P length modifier (mpfr_prec_t) will be fixed later. 7175 7176 [tests/tsprintf.c] Another failure with the P length modifier. 7177 7178 [tests/tsprintf.c] Added tests with the P length modifier (mpfr_prec_t), 7179 yielding mode failures. 7180 7181 [src/vasprintf.c] Fixed "store to null pointer" and free of bad pointer 7182 in case of error. 7183 7184 [tests/tsprintf.c] Added a test that yields a "store to null pointer", 7185 detected by UBsan. 7186 71872018-07-25 Vincent Lefèvre <vincent@vinc17.net> 7188 7189 [src/vasprintf.c] Bug fix: in case of some errors (via "goto error;"), 7190 va_end wasn't called, yielding undefined behavior. 7191 71922018-07-23 Vincent Lefèvre <vincent@vinc17.net> 7193 7194 [tests] Added tget_set_d128 to svn:ignore property. 7195 7196 [src/erf.c] More security about tauk. 7197 7198 [src/erf.c] Removed a meaningless cast. 7199 72002018-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7201 7202 [src/erf.c] replaced double's by mpfr_t to fix bug reported by Naoki Shibata 7203 72042018-07-22 Vincent Lefèvre <vincent@vinc17.net> 7205 7206 [tests/terf.c] Added a testcase for bug reported by Naoki Shibata: 7207 https://sympa.inria.fr/sympa/arc/mpfr/2018-07/msg00028.html 7208 (uceil_log2.c:40: MPFR assertion failed: exp < 1023). 7209 Increased the number of generic tests in order to reproduce the bug 7210 there too with the default seed. 7211 72122018-07-21 Vincent Lefèvre <vincent@vinc17.net> 7213 7214 [src/subnormal.c] C89 compatibility. 7215 72162018-07-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7217 7218 [src/subnormal.c] experimental support for RNDNA 7219 72202018-07-20 Vincent Lefèvre <vincent@vinc17.net> 7221 7222 Added examples/threads.c (and updated Makefile.am): multithreading test 7223 to detect scaling issues with MPFR. 7224 72252018-07-19 Vincent Lefèvre <vincent@vinc17.net> 7226 7227 [src/vasprintf.c] Updated a FIXME. 7228 7229 [src/vasprintf.c] More FIXME's. 7230 7231 [src/vasprintf.c] Reindentation. 7232 7233 [src/vasprintf.c] Added a FIXME for MPFR_PREC_ARG handling. 7234 72352018-07-18 Vincent Lefèvre <vincent@vinc17.net> 7236 7237 Shared caches: fix and minor changes. 7238 * Fixed detection and use of C11 thread support: the C11 header is 7239 <threads.h>, not <thread.h>. 7240 * Renamed WANT_SHARED_CACHE to MPFR_WANT_SHARED_CACHE for consistency 7241 with the other MPFR_WANT_* macros. 7242 * Added MPFR_THREAD_LOCK_METHOD macro, giving the thread locking 7243 method as a string (when shared caches are enabled). 7244 * doc/README.dev: documented 4 macros for shared caches. 7245 * tests/tversion.c: output MPFR_WANT_SHARED_CACHE and 7246 MPFR_THREAD_LOCK_METHOD information. 7247 7248 [tests/tconst_pi.c] Removed an incorrect assertion, as the #else would 7249 be applicable when WANT_SHARED_CACHE is defined but not HAVE_PTHREAD 7250 (which may occur when MPFR_HAVE_C11_LOCK is defined). 7251 7252 [src/vasprintf.c] Fixed type in partition_number to be consistent with 7253 the end of the function. 7254 72552018-07-16 Vincent Lefèvre <vincent@vinc17.net> 7256 7257 [src/vasprintf.c] Added 2 FIXME and removed an incorrect MPFR_ASSERTN 7258 (which came from r5236). 7259 7260 [tests/tsprintf.c] Added other tests to check_length_overflow, which 7261 would trigger other bugs in src/vasprintf.c (e.g. when removing the 7262 other failing tests). 7263 7264 [tests/tsprintf.c] Added check_length_overflow to check the behavior of 7265 mpfr_snprintf on a large number of output characters (> INT_MAX) with 7266 size = 0. This test is actually done only if INT_MAX == 2147483647 and 7267 currently fails in such a case. 7268 7269 [src/vasprintf.c] Updated comment about overflow on the number of output 7270 characters, taking into account the latest ISO C and POSIX standards. 7271 7272 [tests/tsprintf.c] Updated a comment. 7273 72742018-07-13 Vincent Lefèvre <vincent@vinc17.net> 7275 7276 [src/vasprintf.c] Simplified mpfr_get_str_wrapper. 7277 7278 [src/vasprintf.c] Added a log message. 7279 7280 [src/mpfr-impl.h] Added a FIXME: _Decimal128 code and _MPFR_IEEE_FLOATS 7281 (which is about binary IEEE-754 floating point) should be unrelated. 7282 7283 [src/get_d64.c] 7284 * Added FIXME's for get_decimal64_nan and get_decimal64_inf internal 7285 functions: possible issue with _MPFR_IEEE_FLOATS code, which also 7286 seems more complex than the generic code. 7287 * Simplified get_decimal64_zero internal function to generate a 7288 decimal zero directly instead of using the fact that a binary64 7289 zero is also the encoding of a decimal zero (and assuming that 7290 double = binary64 with perfect endianness matching). 7291 7292 [acinclude.m4] Updated message about the _Float128 support, since 7293 this is not just about the compiler. 7294 7295 [acinclude.m4] Fixed the _Float128 / __float128 detection for NetBSD: 7296 Optimization made the "undefined reference" error disappear, so that 7297 __float128 was misdetected as being supported. 7298 72992018-07-12 Vincent Lefèvre <vincent@vinc17.net> 7300 7301 [acinclude.m4] For the _Float128 / __float128 detection, changed 7302 AC_COMPILE_IFELSE to AC_LINK_IFELSE since an error may occur only 7303 at link time, such as under NetBSD: 7304 https://mail-index.netbsd.org/pkgsrc-users/2018/02/02/msg026220.html 7305 https://mail-index.netbsd.org/pkgsrc-users/2018/02/05/msg026238.html 7306 7307 [src/Makefile.am] Corrected check-exported-symbols to avoid a failure 7308 when the default .SHELLFLAGS value is '-ec' (POSIX) instead of '-c' 7309 (GNU Make, which is not in POSIX-conforming mode by default). 7310 Bug found on FreeBSD 11.1 (Compile Farm @ HouseGordon.com). 7311 73122018-07-11 Vincent Lefèvre <vincent@vinc17.net> 7313 7314 [src/vasprintf.c] In buffer_sandwich, simplified the handling of the 7315 trailing zero (avoid memset and a useless assignment). 7316 73172018-07-09 Vincent Lefèvre <vincent@vinc17.net> 7318 7319 [doc/mpfr.texi] More changes to Section "Nomenclature and Types"; 7320 in particular, defined regular numbers and exponents. 7321 7322 [doc/mpfr.texi] In Section "Nomenclature and Types", removed all the 7323 @noindent, whose purpose is unclear (if one needs something special, 7324 an itemized list would be better, or possibly @deffn). 7325 7326 [doc/mpfr.texi] Rewrote the paragraph defining "floating-point number" 7327 in Section "Nomenclature and Types", avoiding ambiguities. 7328 73292018-07-06 Vincent Lefèvre <vincent@vinc17.net> 7330 7331 [tests/tprintf.c] Grrr... again a copy-paste error. Now OK. 7332 7333 [tests/{tprintf.c,tsprintf.c}] Corrected the tests added in r12898, 7334 but tprintf still fails. 7335 7336 [tests/tsprintf.c] Corrected the latest tests. 7337 7338 [tests/tsprintf.c] Added tests (failure on "%09.3Rg" for 1000). 7339 7340 [tests/tsprintf.c] Corrected comments. 7341 7342 [tests/{tprintf.c,tsprintf.c}] Added tests (both programs fail). 7343 7344 [doc/mpfr.texi] Updated the month. 7345 7346 [src/vasprintf.c] Corrected comments and coding style. 7347 7348 [src/vasprintf.c] Resolve the FIXME. 7349 * Renamed ip_trailing_zeros to ip_trailing_digits, since when 7350 spec.size == 0, these can be any digits. 7351 * Simplified the buffer_sandwich function since it can be called 7352 only when spec.size != 0, in which case tz (= ip_trailing_digits) 7353 is either 0 or 1 (a trailing zero must be added only when rounding 7354 to the next power of ten in the %f case). 7355 * Corrected/removed/added comments. 7356 7357 [tests/{tprintf.c,tsprintf.c}] Added tests with powers of ten in all 7358 rounding modes and powers of ten + 0.5 in rounding to nearest. 7359 73602018-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7361 7362 [doc/mpfr.texi] typo in Fredrik's name 7363 7364 [AUTHORS] typo in Fredrik's name 7365 73662018-07-04 Vincent Lefèvre <vincent@vinc17.net> 7367 7368 [tests/tprintf.c] Added a TODO (for the FIXME in src/vasprintf.c). 7369 7370 [src/vasprintf.c] Updated the FIXME comment. 7371 7372 [src/vasprintf.c] Added a FIXME comment about an incorrect comment. 7373 7374 [src/vasprintf.c] Added log messages in buffer_sandwich. 7375 7376 [tests/tsprintf.c] Added more tests of the form 10^i - 1/2 7377 (like in tprintf.c). 7378 7379 [tests/tprintf.c] Added more tests of the form 10^i - 1/2. 7380 7381 [tests/tsprintf.c] Added test_locale() test based on the tprintf.c one. 7382 7383 [tests/tprintf.c] Minor correction. 7384 7385 [tests/tprintf.c] More test_locale() cleanup. 7386 7387 [src/vasprintf.c] English usage in a comment. 7388 7389 [src/vasprintf.c] Renamed mpfr_get_str_aux to mpfr_get_str_wrapper 7390 in order to avoid a confusion with the mpfr_get_str_aux function 7391 from get_str.c (moreover, this is really a wrapper, which is the 7392 reverse of an aux function). 7393 7394 [tests/tsprintf.c] locale_da_DK() cleanup. 7395 73962018-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7397 7398 [src/vasprintf.c] partly revert commit 12873 7399 74002018-07-04 Vincent Lefèvre <vincent@vinc17.net> 7401 7402 [tests/tprintf.c] test_locale() cleanup. 7403 * Conditional #include <locale.h> with the other header inclusions. 7404 * Completed a #if (to be like in tsprintf.c). 7405 * Moved a global variable as local to test_locale(). 7406 74072018-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7408 7409 [src/vasprintf.c] replaced overflow tests by assertions 7410 [tests/tprintf.c] improve test coverage 7411 74122018-07-04 Vincent Lefèvre <vincent@vinc17.net> 7413 7414 Added MPFR_CHECK_LOCALES environment variable for the tests (to be 7415 used by developers): when set, terminate with an error if locales 7416 cannot be tested. 7417 74182018-07-04 Vincent Lefèvre <vincent@vinc17.net> 7419 7420 [src/vasprintf.c] Fixed several bugs in buffer_sandwich, which could 7421 yield memory corruption with non-default memory allocators and other 7422 undefined behavior; check the return value when this function is called. 7423 7424 Details: 7425 * check integer overflow on the size computations; 7426 * computation of q and r without tests; 7427 * fixed the case where r > len (e.g. len = 1 and tz = 1); 7428 * in the loop, increase the str pointer only when needed, otherwise 7429 str could be beyond of the end of the string of the digits, which 7430 is undefined behavior. 7431 7432 The first consequence of the r > len issue was an incorrect generated 7433 string. Moreover, since the generated string was shorter than expected, 7434 mpfr_free_str would provide an incorrect buffer size to the "free" 7435 function of the current GMP memory allocator. By default, this size is 7436 ignored, but it may matter if the memory allocators have been changed 7437 with the mp_set_memory_functions GMP function, in which case a possible 7438 consequence could be memory corruption. 7439 74402018-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7441 7442 [src/vasprintf.c] added an assertion 7443 [tests/tprintf.c] added two tests (one currently fails) 7444 74452018-06-26 Vincent Lefèvre <vincent@vinc17.net> 7446 7447 [src/vasprintf.c] C90 compatibility. 7448 74492018-06-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7450 7451 [tests/tsprintf.c] fixed another test 7452 7453 [tests/tsprintf.c] fixed test 7454 7455 [src/vasprintf.c] improve coverage 7456 7457 [tests/tsprintf.c] improve coverage 7458 7459 [tests/tsprintf.c] improve coverage 7460 74612018-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7462 7463 [tests/tgamma_inc.c] improve coverage 7464 7465 [tests/tgamma_inc.c] added coverage test 7466 7467 [src/gamma.c] added comment 7468 [src/gamma_inc.c] fixed bug for gamma_inc(-Inf, 0) 7469 [tests/tgamma_inc.c] added coverage tests 7470 74712018-06-23 Vincent Lefèvre <vincent@vinc17.net> 7472 7473 [configure.ac] Do not do specific CFLAGS settings for MS-Windows ICC. 7474 See <https://sympa.inria.fr/sympa/arc/mpfr/2018-06/msg00027.html>. 7475 7476 [src/mpfr-impl.h] Spelling in a comment. 7477 7478 [src/mpfr-impl.h] Fixed change in r12847. 7479 7480 [tests/tget_set_d64.c] Improved a test. 7481 7482 [tests/tget_set_d128.c] Replaced d != d by DOUBLE_ISNAN (d). 7483 7484 [doc/mpfr.texi] Updated the month. 7485 7486 [tests/tget_set_{d64,d128}.c] When MPFR_ERRDIVZERO is defined, 7487 disable tests that can trigger a FP exception DIVBYZERO or INVALID 7488 (issue detected with -DMPFR_TESTS_FPE_DIV -DMPFR_ERRDIVZERO). 7489 74902018-06-22 Vincent Lefèvre <vincent@vinc17.net> 7491 7492 [src/mpfr-impl.h] Improved a comment about union ieee_decimal128. 7493 7494 Do not assume that the bit-field ordering for _Decimal128 is necessarily 7495 little endian or big endian (this is more than the usual endianness 7496 issue). If this cannot be detected, instead of failing or assuming a 7497 possibly wrong default, switch to the portable code. 7498 74992018-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7500 7501 added mpfr_get_decimal128 and mpfr_set_decimal128 to the manual 7502 7503 [tests/tget_set_d128.c] test some random 16-byte inputs 7504 7505 [tests/tget_set_d64.c] test random inputs 7506 7507 [acinclude.m4] added configure test to determine the encoding of _Decimal128 (little or big endian) 7508 7509 [doc/README.dev] added standard suffixes 7510 7511 [tests/tget_set_d64.c] fixed a test 7512 7513 [tests/tget_set_d64.c] removed TODO (done), added comment 7514 [tests/tget_set_d128.c] removed TODO (done) 7515 7516 [src/set_d64.c] added comment (like for set_d128.c) 7517 7518 [src/get_d64.c] improve comment 7519 [src/get_d128.c] likewise 7520 7521 [src/set_d64.c] also deal with non-canonical BID encoding 7522 [tests/tget_set_d64.c] added test with non-canonical BID encoding 7523 75242018-06-22 Vincent Lefèvre <vincent@vinc17.net> 7525 7526 [src/get_d128.c] Bug fix (buffer overflow detected by AddressSanitizer). 7527 7528 [src] Moved the FIXME comment from set_d128.c to get_d128.c since the 7529 bug occurs in mpfr_get_decimal128 according to the AddressSanitizer. 7530 7531 [src/set_d128.c] Updated FIXME comment. 7532 7533 [src/sqrt.c] Replaced a umul_ppmm by umul_hi, and removed an unused 7534 variable as a consequence. 7535 7536 [src/set_d64.c] Code improvement (like r12809 and r12828 in set_d128.c). 7537 7538 [src/set_ld.c] Removed unused variable for 7539 HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE (PowerPC). 7540 7541 [src/invsqrt_limb.h] Avoid a "variable ‘_l’ set but not used" warning 7542 on some platforms, such as powerpc64le-unknown-linux-gnu. 7543 7544 [src/invert_limb.h] Avoid a "variable ‘_l’ set but not used" warning 7545 on some platforms, such as powerpc64le-unknown-linux-gnu. 7546 7547 [src/set_d128.c] Avoid "unused variable" warnings on platforms with DPD. 7548 7549 [src/mpfr-impl.h] About union ieee_double_decimal64: removed an 7550 incorrect comment and added a TODO. 7551 7552 Changed union ieee_double_decimal128 to union ieee_decimal128 since this 7553 has nothing to do with double (unlike union ieee_double_decimal64). Also 7554 refactored code for this union definition. 7555 7556 [src/mpfr-impl.h] Updated TODO for DPD. 7557 7558 [src/mpfr-impl.h] Added TODO for DPD (better structure definition). 7559 7560 [tests/tget_set_d128.c] Execute BID code only with BID. 7561 7562 [tests/tget_set_d128.c] Simplification and better portability. 7563 75642018-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7565 7566 [tests/tget_set_d128.c] added coverage tests for non-canonical BID encodings 7567 7568 [src/set_d128.c] improve last commit 7569 7570 [src/set_d128.c] improved a comment 7571 75722018-06-22 Vincent Lefèvre <vincent@vinc17.net> 7573 7574 [src/set_d128.c] Re-added "while (...)" erroneously removed in r12817. 7575 75762018-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7577 7578 [src/set_d64.c] added comment 7579 [src/set_d128.c] likewise 7580 7581 [src/set_d128.c] avoid variable conflict for DPD 7582 7583 [src/set_d128.c] implement for DFD encoding 7584 7585 [src/set_d64.c] added comment and space 7586 75872018-06-22 Vincent Lefèvre <vincent@vinc17.net> 7588 7589 [src/set_d128.c] Added a FIXME (stack-buffer-overflow). 7590 7591 [src/set_d128.c] Corrected r12811. 7592 7593 [src/set_d128.c] _MPFR_IEEE_FLOATS code for BID: correctly support 7594 the decoded significand >= 10^34 cases (non-canonical encodings), 7595 which must be zero. 7596 7597 [tests/{tget_set_d64.c,tget_set_d128.c}] TODO: Also test non-canonical 7598 encodings. 7599 7600 [src/set_d128.c] 7601 * Enable the _MPFR_IEEE_FLOATS code only for GMP_NUMB_BITS == 32 or 64 7602 (as the other values are not supported by this code). 7603 * Bug fix for GMP_NUMB_BITS == 32 (→ tget_set_d128 no longer fails). 7604 * Added an assertion corresponding to a comment. 7605 7606 [src/set_d128.c] Fit on 80 columns. 7607 76082018-06-21 Vincent Lefèvre <vincent@vinc17.net> 7609 7610 [src/mpfr-impl.h] Updated a title comment (→ Decimal support). 7611 7612 [src/mpfr-impl.h] Corrected a comment. 7613 76142018-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7615 7616 [src/set_d128.c] added comments 7617 7618 [src/set_d128.c] remove debug stuff 7619 7620 [src/mpfr-impl.h] assume little-endian double implies little-endian decimal128 7621 76222018-06-21 Vincent Lefèvre <vincent@vinc17.net> 7623 7624 [src/mpfr-impl.h] FIXME for _Decimal128. 7625 76262018-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7627 7628 [src/set_d128.c] (partly) implement the _MPFR_IEEE_FLOATS case (BID only so far) 7629 [tests/tget_set_d128.c] added more tests 7630 7631 [src/set_d64.c] added comments 7632 7633 [src/get_d128.c] removed useless comment 7634 76352018-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7636 7637 [src/get_d128.c] avoid using doubles 7638 [tests/tget_set_d128.c] improve test coverage 7639 7640 [tests/tget_set_d128.c] improve test coverage 7641 7642 [tests/tget_set_d128.c] improve coverage 7643 7644 added mpfr_get_decimal128 (still experimental) 7645 7646 [get_d64.c] added comments and simplified code 7647 76482018-06-20 Vincent Lefèvre <vincent@vinc17.net> 7649 7650 [tests/{tget_set_d64.c,tget_set_d128.c}] Tests on powers of 10: 7651 test negative numbers too. 7652 76532018-06-19 Vincent Lefèvre <vincent@vinc17.net> 7654 7655 [doc/README.dev] Added a note about FP constants and native FP. 7656 7657 [tools/mpfrlint] Check that preprocessing directives have no spaces 7658 before. 7659 7660 [src/set_d128.c] Modified a comment. 7661 7662 [src/set_d128.c] Avoid double, which is unreliable with GCC 7663 in non-standard mode (see GCC bug 323 and the discussion in 7664 GCC bug 85957). But the failure in tget_set_d128 probably came from 7665 the fact that (_Decimal128) 0.1 is not 1/10 exactly (the double 0.1 7666 has about a 17-digit precision only, while _Decimal128 has more); 7667 this test now passes. 7668 7669 [src/set_d128.c] Simplified code and added assertions. 7670 7671 [src/set_d64.c] Added a log message (like in set_d128.c). 7672 7673 [src/{set_d64.c,set_d128.c}] Bug fix: use mpfr_strtofr instead of 7674 mpfr_set_str to get the ternary value. 7675 7676 [tests/{tget_set_d64.c,tget_set_d128.c}] Added tests on powers of 10. 7677 * tget_set_d64 fails on negative due to a bad ternary value. 7678 * tget_set_d128 fails on negative due to bad value, etc. 7679 7680 [tests/tget_set_d128.c] Test the flags too. 7681 7682 [tests/tget_set_d128.c] Test more values. 7683 7684 [tests/tget_set_d128.c] Converting an integer into _Decimal128 is better 7685 than converting a double into _Decimal128. 7686 7687 [tests/tget_set_d128.c] Simplified the test, avoiding a bug in ICC 15 7688 at the same time (1.0D was regarded as 0). 7689 7690 [tests/tget_set_d128.c] Fixed indentation. 7691 7692 [tests/tversion.c] Decimal formats: output the encoding type (DPD/BID). 7693 7694 [src/set_d128.c] Changed _GMP_IEEE_FLOATS to _MPFR_IEEE_FLOATS as per 7695 r10958 (in set_d128.c, currently in a comment due to r12772). 7696 7697 [src/set_d128.c] Added a log message. 7698 7699 [tests/tget_set_d128.c] Added an informative error message. 7700 7701 [src/set_d128.c] Disable the _GMP_IEEE_FLOATS code, which is not 7702 complete yet and makes the compilation fail. 7703 77042018-06-13 Vincent Lefèvre <vincent@vinc17.net> 7705 7706 [src/set_d128.c] Corrected year in copyright notice. 7707 7708 [src/set_d128.c] Minor improvements. 7709 77102018-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7711 7712 [tests/tget_set_d64.c] added -v option to get verbose output 7713 [tests/tget_set_d128.c] likewise 7714 77152018-06-13 Vincent Lefèvre <vincent@vinc17.net> 7716 7717 [TODO] Missing "r". 7718 77192018-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7720 7721 [TODO] update for mpfr_set_decimal128 7722 7723 added mpfr_set_decimal128 (work in progress, not yet fully tested) 7724 77252018-06-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7726 7727 [tools/coverage] added branch coverage 7728 77292018-06-07 Vincent Lefèvre <vincent@vinc17.net> 7730 7731 [src/strtofr.c] Moved some computations on the exponents earlier 7732 since they may yield an early overflow or underflow, and computing 7733 the division by b^e would be useless in such a case. 7734 7735 [src/strtofr.c] Added a MPFR_ASSERTD and a FIXME on things that don't 7736 make much sense in the error analysis (still trying to understand…). 7737 77382018-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7739 7740 [src/const_pi.c] missing reference about Brent-Salamin 7741 7742 [doc/algorithms.bib] added reference 7743 77442018-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7745 7746 [tests/tfmma.c] improve coverage of the UBF case in mpfr_sub 7747 (now coverage of sub.c is 100%) 7748 77492018-06-05 Vincent Lefèvre <vincent@vinc17.net> 7750 7751 [src/sum.c] Updated TODO from r12755. 7752 77532018-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7754 7755 [src/fmma.c] now mpfr_fmms calls mpfr_sub for a better coverage 7756 77572018-06-04 Vincent Lefèvre <vincent@vinc17.net> 7758 7759 [src/sum.c] Updated TODO from r12755. 7760 7761 [src/sum.c] Added a comment with a TODO about potentially dead code on 7762 some platforms. 7763 7764 codespell: simplified exceptions. 7765 * Added codespell.exclude file. 7766 * codespell.ignore: removed some words (particular cases). 7767 * tools/mpfrlint: use the codespell.exclude exclude file, and for 7768 the doc directory, replaced -S by an explicit list of files. 7769 7770 [codespell.ignore] Also ignore "objext" and "tim" (codespell 1.13). 7771 77722018-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7773 7774 [src/sub1.c] fixed a bug and solved a FIXME (underflow for UBFs) 7775 Note: this mostly reverts r12319, r12321, and the remaining FIXME 7776 from r12327. 7777 [tests/tfmma.c] added non-regression tests 7778 77792018-06-02 Vincent Lefèvre <vincent@vinc17.net> 7780 7781 [src/mpfr-impl.h] Concerning r12738, the safer code can be avoided 7782 with GCC in ISO C mode (__STRICT_ANSI__). 7783 77842018-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7785 7786 [src/invert_limb.h] fixed two typos reported by Marco Bodrato 7787 77882018-06-02 Vincent Lefèvre <vincent@vinc17.net> 7789 7790 [tests/tversion.c] For GCC, output __STRICT_ANSI__ when defined. 7791 77922018-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7793 7794 [src/sqrt.c] fixed/improved comments 7795 77962018-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7797 7798 [src/invsqrt_limb.h] fixed typos in comments 7799 78002018-05-31 Vincent Lefèvre <vincent@vinc17.net> 7801 7802 [doc/README.dev] Updated a URL. 7803 7804 [src/mpfr-impl.h] Fixed potential compilation failure with _Decimal64, 7805 detected with r12738. 7806 7807 [doc/mpfr.texi] Updated the month. 7808 7809 Updated mpfr.org URL's to use https (except in ChangeLog and NEWS). 7810 7811 [src/mpfr-impl.h] With GCC, select safer code for DOUBLE_ISNAN(x). 7812 78132018-05-30 Vincent Lefèvre <vincent@vinc17.net> 7814 7815 [tools/announce-text] http → https (for mpfr.org). 7816 7817 [doc] Updated FAQ.html with update-faq. 7818 7819 [doc] Workaround due to the lack of https support in libxml2 7820 and the fact that mpfr.org now uses https with HSTS. 7821 * faq.xsl: for the visual.css, use a local URL. 7822 * update-faq: download visual.css from mpfr.org first. 7823 7824 [doc/update-faq] http → https 7825 7826 [src/mpfr-impl.h] Added a FIXME about DOUBLE_ISNAN and GCC. 7827 78282018-05-28 Vincent Lefèvre <vincent@vinc17.net> 7829 7830 [src/strtofr.c] Continued to review the new error analysis and code. 7831 Changes: 7832 * made the code more SSA-like (avoid a "y += ysize; y -= ysize;"); 7833 * clarified comments; 7834 * use MPFR_LIMB_MSB; 7835 * added a FIXME on the error analysis. 7836 7837 [doc/README.dev] Added info about shell portability, and in particular 7838 about quotes (covering changes in r5659, r6128, r12711 and r12721). 7839 7840 [tools/{ck-clz_tab,ck-copyright-notice,ck-mparam,update-version}] Fixed 7841 non-portable quote nesting in backticks. 7842 7843 [examples] Added "mpfr_free_cache ();" at the end of all programs, 7844 as this is something that should be done systematically (at least 7845 to detect memory leaks with valgrind). 7846 78472018-05-25 Vincent Lefèvre <vincent@vinc17.net> 7848 7849 [src/strtofr.c] Started to review the new error analysis and code 7850 (r12705,12706). Minor improvements. 7851 7852 [src/{mpfr-impl.h,mpn_exp.c}] Changed the return type of mpfr_mpn_exp 7853 from long to int for consistency with the mpfr_mpn_exp code and with 7854 strtofr.c (which expects an int). 7855 7856 [src/mpn_exp.c] Code cleanup and protection against integer overflow. 7857 78582018-05-24 Vincent Lefèvre <vincent@vinc17.net> 7859 7860 [src/hypot.c] Do bitwise operations in unsigned arithmetic. 7861 7862 [src/hypot.c] Added 2 TODO. 7863 78642018-05-23 Vincent Lefèvre <vincent@vinc17.net> 7865 7866 [tools/{ck-clz_tab,ck-copyright-notice}] Changed the POSIX $(…) to `…` 7867 for Bourne shell compatibility (as under Solaris 10). 7868 Note: these scripts are called via dist-hook for "make dist". 7869 78702018-05-22 Vincent Lefèvre <vincent@vinc17.net> 7871 7872 [src/mpfr-impl.h] Added a comment for UBF. 7873 7874 [src/mpfr-impl.h] Added a comment about UBF and alignment requirements. 7875 78762018-05-17 Vincent Lefèvre <vincent@vinc17.net> 7877 7878 [tests/tstrtofr.c] Removed TODO added in r12681, now obsolete. 7879 78802018-05-16 Vincent Lefèvre <vincent@vinc17.net> 7881 7882 Removed trailing whitespace. 7883 78842018-05-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7885 7886 [src/strtofr.c] revisit error analysis in the division case (end) 7887 78882018-05-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7889 7890 [src/strtofr.c] revisit error analysis in the division case (work in progress, 7891 not yet finished) 7892 78932018-05-09 Vincent Lefèvre <vincent@vinc17.net> 7894 7895 [tests/tsub.c] Updated the comment added in r12701. 7896 7897 [tests/tsub.c] Added a comment about the bug fixed in r10697: 7898 bug20180217 is a non-regression test for this bug. 7899 79002018-05-02 Vincent Lefèvre <vincent@vinc17.net> 7901 7902 [tests/tstckintc.c] Avoid false warnings with -Wcast-align=strict from 7903 GCC 8.1 by adding casts "(long *) (void *)", still allowing checks of 7904 other alignment requirements (which are not handled by the tstckintc.c 7905 code). 7906 7907 [TODO] + Use GCC's nonnull and returns_nonnull attributes. 7908 7909 [acinclude.m4] Added a note on _Decimal64 detection. 7910 79112018-04-30 Vincent Lefèvre <vincent@vinc17.net> 7912 7913 [doc/README.dev] Added info about spelling. 7914 7915 Corrected "runtime" to "run time" (noun) or "run-time" (adjective) 7916 when it means the time at which the program is run. 7917 See: 7918 https://gcc.gnu.org/codingconventions.html#Spelling 7919 https://en.wikipedia.org/wiki/Run_time 7920 79212018-04-27 Vincent Lefèvre <vincent@vinc17.net> 7922 7923 [src/strtofr.c] Potentially unnecessary code: comes from r8384. 7924 7925 [src/strtofr.c] Updated TODO about potentially unnecessary code. 7926 7927 [src/strtofr.c] Updated TODO about potentially unnecessary code, 7928 showing that this code probably increases the error bound (errors 7929 accumulate instead of compensating without this code). 7930 7931 [src/strtofr.c] Added a TODO about potentially unnecessary code. 7932 7933 [src/strtofr.c] Corrected/updated comments and added a log message. 7934 7935 [src/strtofr.c] Corrected a comment (exp_base and exp_bin description). 7936 7937 [src/strtofr.c] Added a FIXME: possible bug in very special cases with 7938 large exponents, 32-bit mpfr_exp_t and very long strings. 7939 7940 [src/strtofr.c] Added/clarified comments. 7941 7942 [tests/tstrtofr.c] Added a TODO related to the bug fixed in r12573. 7943 79442018-04-26 Vincent Lefèvre <vincent@vinc17.net> 7945 7946 [tests/tgmpop.c] Coding style. 7947 7948 [tests/tgmpop.c] For mpfr_cmp_q, improved the test where x is NaN by 7949 checking all the flags (not just erange) and added a test where y is 7950 a NaN rational. 7951 Note: this could be used to detect 2 bugs, fixed in r12343 and r12499, 7952 respectively. 7953 7954 [tests/tcan_round.c] Removed a r2 != MPFR_RNDF test and added 3 TODO's 7955 to support r2 == MPFR_RNDF in some other tests. 7956 79572018-04-24 Vincent Lefèvre <vincent@vinc17.net> 7958 7959 [src/mpfr-gmp.h] Clarified a comment (the "if" is part of the code, 7960 not the English word). 7961 79622018-04-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7963 7964 [src/mpfr-gmp.h] added comment about MPN_FILL 7965 79662018-04-20 Vincent Lefèvre <vincent@vinc17.net> 7967 7968 [src/out_str.c] Check for integer overflow (here, a minor issue). 7969 7970 [src/out_str.c] Support mpfr_exp_t larger than long (with mpfr_eexp_t). 7971 79722018-04-19 Vincent Lefèvre <vincent@vinc17.net> 7973 7974 [tests] Added tdot to svn:ignore property. 7975 7976 [tests/tdot.c] Various improvements. 7977 7978 [doc/mpfr.texi] Note that mpfr_dot does not yet handle intermediate 7979 underflows either. 7980 [src/dot.c] Changed an MPFR_ASSERTD to MPFR_ASSERTN since the assertion 7981 is not satisfied on some user inputs. Minor improvements. 7982 7983 [NEWS] Added mpfr_dot. 7984 7985 [doc/mpfr.texi] In the added functions, note that mpfr_dot is incomplete 7986 and experimental. 7987 7988 [tests/tsum.c] Code style. 7989 7990 [doc/mpfr.texi] Updated the month. 7991 7992 [tests/tdot.c] Code style. 7993 79942018-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 7995 7996 added mpfr_dot 7997 79982018-04-19 Vincent Lefèvre <vincent@vinc17.net> 7999 8000 [tests/tget_flt.c] Correction about the use of mpfr_signbit, in case 8001 the implementation would change. 8002 8003 [src/sqr.c] Minor code improvement. 8004 8005 [src/sqr.c] Code formatting. 8006 8007 [src/sqr.c] Clarified a comment and slightly improved code. 8008 8009 [src/sqr.c] Typo in a comment. 8010 8011 [tests/tfma.c] Added test_underflow5. 8012 8013 [tests/tfma.c] Minor correction for test_underflow4. 8014 8015 [tests/tfma.c] Added a comment. 8016 80172018-04-18 Vincent Lefèvre <vincent@vinc17.net> 8018 8019 [tests/tfma.c] Added test_underflow4. This allows to show that the 8020 bound MAX (MPFR_PREC (z), MPFR_PREC (s) + 1) in fma.c is optimal: 8021 * If one subtract 1 from the 1st term MPFR_PREC (z), a failure 8022 occurs in test_underflow4. 8023 * If one subtract 1 from the 2nd term MPFR_PREC (s) + 1, a failure 8024 occurs in test_underflow2. 8025 8026 [configure.ac] For the ICC check, also test __INTEL_COMPILER. 8027 8028 [configure.ac] Corrected comment for the ICC check (GCC is no longer 8029 disabled since r5720). 8030 80312018-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8032 8033 [src/mpfr.h] enable some code that now works with ICC (tested with ICC 14) 8034 [TODO] removed item 8035 80362018-04-18 Vincent Lefèvre <vincent@vinc17.net> 8037 8038 [tests/tversion.c] Updated a comment about __ICC. 8039 80402018-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8041 8042 [TODO] removed item that we won't implement 8043 8044 [TODO] removed done item (UBF) 8045 80462018-04-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8047 8048 [TODO] RNDF is done 8049 8050 [TODO] removed an obsolete item 8051 8052 [TODO] log_ui is done 8053 80542018-04-17 Vincent Lefèvre <vincent@vinc17.net> 8055 8056 [tools/mpfrlint] Detect the use of mpfr_div_2exp and mpfr_mul_2exp. 8057 8058 [tests/{reuse.c,taway.c}] Added mpfr_div_2ui and mpfr_mul_2ui. 8059 Note: si functions are not tested yet. 8060 8061 Replaced mpfr_mul_2exp & mpfr_div_2exp by mpfr_mul_2ui & mpfr_div_2ui, 8062 respectively (for the tests, except in reuse.c and in taway.c). 8063 Note: As documented, mpfr_mul_2exp & mpfr_div_2exp are only kept for 8064 compatibility with MPF; mpfr_mul_2ui & mpfr_div_2ui are preferred. 8065 80662018-04-16 Vincent Lefèvre <vincent@vinc17.net> 8067 8068 [TODO] + function to reduce the precision of a variable, with a 8069 ternary value in input, i.e. taking care of double rounding. 8070 8071 [tests/tfma.c] More tests for test_underflow2. 8072 8073 [tests/tfma.c] Corrected r12603 for test_underflow2. 8074 8075 [tests/tfma.c] More tests for test_underflow2. 8076 8077 [src/fma.c] Updated easy case of underflow. 8078 8079 [tests/tfma.c] Updated a comment for test_underflow2. 8080 8081 [tests/tfma.c] In test_underflow2, also test different signs. 8082 8083 [tests] Updated svn:ignore property. 8084 8085 [doc/README.dev] "To make a release": check also with 8086 -DMPFR_GROUP_STATIC_SIZE=0 to detect memory leaks. 8087 8088 [src/fma.c] Forgot a MPFR_GROUP_CLEAR. 8089 8090 [src/fma.c] Simplified the underflow case by using UBF in the 8091 difficult cases, resolving the remaining FIXME's. 8092 80932018-04-13 Vincent Lefèvre <vincent@vinc17.net> 8094 8095 [tests/tfma.c] More tests for test_overflow3 by adding loops on j and k. 8096 8097 [tests/tfma.c] Extended test_overflow3 to reversed signs. 8098 8099 [tests/tfma.c] Do all the overflow/underflow tests in exponent ranges 8100 [-1024,1024], [MPFR_EMIN_MIN,MPFR_EMAX_MAX], and the default one. 8101 8102 [src/mpfr-sassert.h] Added a comment. 8103 81042018-04-12 Vincent Lefèvre <vincent@vinc17.net> 8105 8106 [tests/tfma.c] Forgot a cast for C++ compatibility. 8107 8108 [src/mpfr-impl.h] Reverted r12588: there should be no alignment issues 8109 with UBF, since an UBF (__mpfr_ubf_struct) is sometimes regarded as a 8110 MPFR number (__mpfr_struct) but not the opposite (or this is just back 8111 to __mpfr_ubf_struct). 8112 8113 [src/fma.c] Simplified the difficult part of the overflow case by 8114 using UBF (this also fixes corner cases in huge precision). 8115 8116 [src/mpfr-impl.h] Added a note about alignment constraints for UBF. 8117 8118 [src/fma.c] Fixed sign related bug in overflow case. 8119 [tests/tfma.c] Added test_overflow5 test for this bug. 8120 8121 [tests/tfma.c] In test_overflow4, also test different signs. 8122 8123 [src/fma.c] Correction for the FIXME from r12403 concerning r12396. 8124 The test added in tests/tfma.c r12584 no longer fails. 8125 8126 [tests/tfma.c] Added a test that fails. It corresponds to the FIXME 8127 in src/fma.c about the test on MPFR_GET_EXP (u) - MPFR_GET_EXP (z). 8128 8129 [src/fma.c] Removed a redundant test since the second condition of 8130 the && expression implies the first one. 8131 Note: This test came from the time when the precision type was unsigned, 8132 in order to make sure that the result of the subtraction was positive. 8133 81342018-04-11 Vincent Lefèvre <vincent@vinc17.net> 8135 8136 [tests/tversion.c] Output "Generic ABI code" info (MPFR_GENERIC_ABI). 8137 8138 [src/strtofr.c] English usage in a comment. 8139 81402018-04-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8141 8142 [src/strtofr.c] fixed bug in corner cases 8143 81442018-04-10 Vincent Lefèvre <vincent@vinc17.net> 8145 8146 [src/strtofr.c] Reverted r12569: this is wrong with a 32-bit ABI. 8147 8148 [src/strtofr.c] Added a FIXME. 8149 81502018-04-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8151 8152 [src/strtofr.c] added more comments 8153 8154 [src/strtofr.c] replaced dead code by an assert 8155 [tests/tstrtofr.c] fixed bug20170308 and added coverage test 8156 81572018-04-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8158 8159 [src/strtofr.c] removed dead code (and added explanation) 8160 8161 [src/strtofr.c] completed a comment 8162 81632018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8164 8165 [src/strtofr.c] added comment 8166 [tests/tstrtofr.c] improve coverage 8167 81682018-04-06 Vincent Lefèvre <vincent@vinc17.net> 8169 8170 [src/round_prec.c] Replaced an incorrect comment by an assertion. 8171 8172 [src/round_raw_generic.c] Check validity of flag. 8173 81742018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8175 8176 [NEWS] now 98.2% of test coverage 8177 81782018-04-06 Vincent Lefèvre <vincent@vinc17.net> 8179 8180 [tests/Makefile.am] Tests in lexicographic order. 8181 81822018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8183 8184 [src/round_prec.c] added comments 8185 [src/round_raw_generic.c] removed dead code 8186 [tests/tcan_round.c] improve coverage 8187 8188 renamed tround_prec.c to tprec_round.c 8189 8190 [src/round_prec.c] removed some dead code (if rnd1 = rnd2 and the case 8191 rnd2 = RNDN was already treated, we cannot have rnd1 = RNDN) 8192 81932018-04-06 Vincent Lefèvre <vincent@vinc17.net> 8194 8195 [tests/tpow.c] Fixed a test: 8196 * For this test, unsigned long and mpfr_exp_t must both have at least 8197 64 bits. 8198 * Use a hardcoded emax, otherwise the test could fail for mpfr_exp_t 8199 larger than 64 bits (one would not have an overflow as expected). 8200 8201 [src/pow.c] Fixed the code in case the size of the mpfr_exp_t type 8202 would be larger than 256 bits. This is also semantically better. 8203 8204 Moved the MAX, MIN and ABS macros from tests/mpfr-test.h to 8205 src/mpfr-impl.h (they can be useful...). 8206 8207 [tests/tpow.c] More tests for (-2)^(2^i + 1), not just with i = 256. 8208 82092018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8210 8211 [tests/tpow.c] modified a test for better coverage 8212 82132018-04-06 Vincent Lefèvre <vincent@vinc17.net> 8214 8215 [tests/tpow.c] Corrected a comment (again). 8216 8217 [tests/tpow.c] Corrected a comment. 8218 82192018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8220 8221 [src/pow.c] simplified case x=2^b and y < 0 8222 82232018-04-05 Vincent Lefèvre <vincent@vinc17.net> 8224 8225 [src/pow.c] Updated comments. 8226 8227 [src/pow.c] Reverted r12541 (which yielded a failure in tpow_all), 8228 re-indented, and added a comment concerning the failing case. 8229 82302018-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8231 8232 [src/round_prec.c] fixed a bug (to be reviewed) 8233 [tests/tcan_round.c] added coverage tests 8234 8235 [tests/ttan.c] improve coverage (and also of round_near_x) 8236 8237 [src/pow.c] fixed typo 8238 82392018-04-04 Vincent Lefèvre <vincent@vinc17.net> 8240 8241 [NEWS] Coverage is specific to x86_64 due to the various #if. 8242 8243 [src/pow.c] Corrected indentation. 8244 82452018-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8246 8247 [NEWS] coverage is now 98.1% 8248 8249 [src/pow.c] added a comment 8250 8251 [src/pow.c] removed some dead code (with comment explaining why) 8252 [tests/tpow.c] added a test 8253 8254 [src/pow.c] simplify code for prec=1 8255 [tests/tpow.c] added tests for prec=1 8256 82572018-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8258 8259 [src/mparam_h.in] added macros for Microsoft compiler 8260 82612018-04-03 Vincent Lefèvre <vincent@vinc17.net> 8262 8263 [tools/check_mparam.c] Added a copyright notice. 8264 8265 [Makefile.am] Added tools/check_mparam.c and tools/ck-mparam 8266 to EXTRA_DIST since tools/ck-mparam is now run in dist-hook. 8267 8268 [tests/Makefile.am] Do not output a useless "PASS ..." line at the end. 8269 8270 [tests/Makefile.am] Update of the "check" rule: 8271 * Output svnversion info when applicable. 8272 * Do not echo "cat tversion.log 2> /dev/null || true". 8273 8274 [Makefile.am] Added missing comments for dist-hook. 8275 8276 [Makefile.am] Run ck-mparam in dist-hook (for "make dist"). 8277 8278 [tools/ck-mparam] Commented out the old gcc-specific test since the 8279 new one is strictly more powerful. No longer depend on gcc. 8280 8281 [tools/ck-mparam] Also check the mparam.h files with check_mparam.c. 8282 8283 [tools/check_mparam.c] C89 compatibility. Return an error code 8284 (useful for scripts). 8285 8286 [tools/check_mparam.c] A pathname of the mparam.h file can now be 8287 provided with -DMPARAM='"..."' when compiling. 8288 82892018-04-03 Vincent Lefèvre <vincent@vinc17.net> 8290 8291 Moved misc/check_mparam.c into trunk/tools: it will be useful for 8292 "make dist" in order to make sure that all mparam.h files are OK 8293 before a release. 8294 8295 [[Split portion of a mixed commit.]] 8296 8297 [Added during the Subversion to Git conversion] 8298 The "misc" directory referenced here was in the same Subversion 8299 repository, but outside the trunk/branches/tags structure. Thus 8300 it has not been kept in the same Git repository. 8301 83022018-04-03 Vincent Lefèvre <vincent@vinc17.net> 8303 8304 [src/mulders.c] Re-enable the change done in r12382. This is allowed 8305 after the fix in generic/mparam.h r12525 (this file was hand written 8306 and did not satisfy the current constraints). 8307 83082018-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8309 8310 [generic/mparam.h] ensure divhigh_ktab[n] is 0 or < n-1, as now required 8311 since commit r12382 8312 83132018-04-02 Vincent Lefèvre <vincent@vinc17.net> 8314 8315 [src/mulders.c] Code style / indentation. Added a comment. 8316 8317 [src/mulders.c] Reverting r12382 because divhigh_ktab[n] == n can 8318 happen. Note: this probably lacks documentation; moreover, testing 8319 that these tables satisfy the requirements would be useful. 8320 83212018-03-31 Vincent Lefèvre <vincent@vinc17.net> 8322 8323 [src/inp_str.c] Handle size_t overflow, empty string (after skipping 8324 spaces), and I/O errors (as opposed to end-of-file). 8325 83262018-03-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8327 8328 [src/inp_str.c] disallow stream=NULL (cf r12520) 8329 8330 [src/out_str.c] the behavior on a null stream is unspecified (cf r12519) 8331 83322018-03-30 Vincent Lefèvre <vincent@vinc17.net> 8333 8334 Reverted r12516: the behavior on a null stream is unspecified. 8335 83362018-03-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8337 8338 [tests/tpow.c] restrict a test to 64-bit exponent 8339 83402018-03-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8341 8342 [src/pow.c] added comment 8343 [tests/tpow.c] improve coverage 8344 8345 [tests/tout_str.c] improve coverage (I don't know how to avoid printing to 8346 stdout, but since "make check" no longer shows the test 8347 outputs, this should be fine). However I don't know how 8348 to do the same for mpfr_inp_str... 8349 8350 [tests/tconst_pi.c] forgotten line in commit 12512 8351 8352 [tests/tgrandom.c] improve coverage 8353 8354 [src/grandom.c] improve coverage, and solved a FIXME 8355 8356 [tests/tconst_pi.c] improve coverage of mpfr_free_cache2 8357 83582018-03-29 Vincent Lefèvre <vincent@vinc17.net> 8359 8360 [src/fpif.c] Reverted another incorrect change done in r12509. 8361 8362 [src/fpif.c] Reverted an incorrect change done in r12509. 8363 83642018-03-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8365 8366 [src/fpif.c] simplify code and improve coverage to 100% 8367 8368 [src/fpif.c] removed dead code and simplify code 8369 8370 [tests/tfpif.c] improve coverage 8371 8372 [tests/tfpif.c] improve coverage 8373 83742018-03-29 Vincent Lefèvre <vincent@vinc17.net> 8375 8376 [tests/tfpif.c] Really fixed the badData test, completing r12504. 8377 8378 [tests/tfpif.c] Fixed a test: for the huge-precision badData case, 8379 make sure that the data are valid so that we really check that the 8380 precision does not fit (and not a read error). 8381 8382 [tests/tfpif.c] Correction just in case MPFR_PREC_BITS > 64. 8383 8384 Removed trailing whitespace. 8385 83862018-03-28 Vincent Lefèvre <vincent@vinc17.net> 8387 8388 [src/fpif.c] 8389 * Replaced an incorrect comment from r12500 by a correct assertion. 8390 * Fixed a theoretical bug coming from this incorrect comment. 8391 * Added a MPFR_ASSERTN assertion to double-check correctness. 8392 * Added a comment explaining a ... >= 0x80 test. 8393 83942018-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8395 8396 [src/fpif.c] removed dead code 8397 [tests/tfpif.c] improve coverage 8398 8399 [src/gmp_op.c] fixed bug in mpfr_cmp_q for den(q)=0 8400 [tests/tgmpop.c] improve coverage 8401 84022018-03-24 Vincent Lefèvre <vincent@vinc17.net> 8403 8404 [doc/mpfr.texi] Typographic correction (texinfo rule). 8405 8406 [tools/mpfrlint] For codespell, skip mpfr.t2p (directory created 8407 in doc by "make pdf"). 8408 8409 [src/total_order.c] Simplified the code (shorter code). 8410 8411 [tests/ttotal_order.c] Rewrote the tests to test every combination 8412 of classes of values. 8413 8414 [tests] Renamed total_order.c to ttotal_order.c. 8415 84162018-03-23 Vincent Lefèvre <vincent@vinc17.net> 8417 8418 [src/total_order.c] Suggest to test the sign bit first. 8419 8420 [doc/mpfr.texi] Added mpfr_total_order in "Added Functions". 8421 8422 [doc/mpfr.texi] Improved mpfr_total_order description. 8423 84242018-03-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8425 8426 [TODO] totalOrder is done 8427 8428 added mpfr_total_order 8429 84302018-03-23 Vincent Lefèvre <vincent@vinc17.net> 8431 8432 [tests] Removed some useless #include's, in particular all the 8433 unconditional #include <math.h> occurrences. 8434 Note: There is an incompatibility between glibc 2.27 and the math.h 8435 provided by ICC 15 (at least), and this solves a compilation failure 8436 in the build of the tests. 8437 Moreover, <math.h> is not required by freestanding implementations, 8438 so that it may be better to avoid it if possible. 8439 84402018-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8441 8442 added 2 suggestions from Patrick Pelissier 8443 84442018-03-20 Vincent Lefèvre <vincent@vinc17.net> 8445 8446 [tools/mpfrlint] For codespell, skip all the algorithms.* files. 8447 84482018-03-15 Vincent Lefèvre <vincent@vinc17.net> 8449 8450 [tools/mpfrlint] Added a comment for the mul/sqr test. 8451 8452 [tools/mpfrlint] In the mul/sqr test (r12482), exclude mul.c and sqr.c. 8453 84542018-03-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8455 8456 changed mpfr_mul (a, b, b, ...) into mpfr_sqr (a, b, ...) whenever possible 8457 84582018-03-14 Vincent Lefèvre <vincent@vinc17.net> 8459 8460 [tools/mpfrlint] Detect mpfr_mul with identical 2nd and 3rd arguments, 8461 which can be replaced by mpfr_sqr (suggestion by PZ). 8462 84632018-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8464 8465 [src/const_pi.c] added a reference, and replace mpfr_mul by mpfr_sqr 8466 84672018-03-10 Vincent Lefèvre <vincent@vinc17.net> 8468 8469 [tests/tget_str.c] Fixed failure from r12473 when mpfr_prec_t is an int 8470 (missing casts for sprintf / printf). 8471 84722018-03-09 Vincent Lefèvre <vincent@vinc17.net> 8473 8474 [tests/tget_str.c] C++ compatibility. 8475 8476 [tests/tget_str.c] Use tests_allocate / tests_free. 8477 8478 Fixed spelling mistakes found by codespell 1.12.0. 8479 84802018-03-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8481 8482 [tests/tget_str.c] added tests for corner cases of mpfr_set_str o mpfr_get_str 8483 84842018-03-08 Vincent Lefèvre <vincent@vinc17.net> 8485 8486 [src/Makefile.am] In EXTRA_DIST, put the mparam.h in alphabetic order. 8487 8488 [src/Makefile.am] Updated EXTRA_DIST for amd due to r12387. 8489 8490 Fixed spelling mistakes found by codespell 1.11.0. 8491 8492 [codespell.ignore] Also ignore "cas". 8493 8494 Added codespell.ignore file with simple words to ignore with codespell 8495 ("iff" as used in math; "nd" as the n comes from \n in printf, but nd 8496 could also be a variable name; "te" as used as a variable name). 8497 Updated tools/mpfrlint to use this file with codespell. 8498 84992018-03-05 Vincent Lefèvre <vincent@vinc17.net> 8500 8501 [doc/mpfr.texi] Updated the month. 8502 85032018-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8504 8505 [tests/tget_str.c] added tests for mpfr_get_str_ndigits 8506 [src/get_str.c] fixed bugs in mpfr_get_str_ndigits for b=2^k (value was 1 too 8507 large) and very large p (value was 1 too small) 8508 85092018-03-05 Vincent Lefèvre <vincent@vinc17.net> 8510 8511 [doc/mpfr.texi] Typographic corrections for mpfr_subnormalize. 8512 8513 [NEWS] Added mpfr_get_str_ndigits. 8514 [doc/mpfr.texi] Added mpfr_get_str_ndigits in "Added Functions". 8515 8516 [doc/mpfr.texi] Minor corrections concerning mpfr_get_str. 8517 8518 [src/mpfr.h] Added a note about a mpfr_prec_t limitation. 8519 8520 [src/get_str.c] Simplified mpfr_get_str_ndigits (changes from r12455): 8521 * MPFR_PREC_BITS is used to exactly do what is wanted. 8522 * Removed dead code as currently, mpfr_prec_t <= unsigned long. 8523 Note: if in the future we support mpfr_prec_t > unsigned long 8524 (e.g. to have a 64-bit precision on MS Windows), the generic code 8525 could be retrieved back from r12455. 8526 85272018-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8528 8529 [src/get_str.c,src/mpfr.h] mpfr_get_str_digits -> mpfr_get_str_ndigits 8530 [doc/mpfr.texi] updated documentation of mpfr_get_str 8531 8532 [src/get_str.c] fixed FIXME 8533 85342018-03-05 Vincent Lefèvre <vincent@vinc17.net> 8535 8536 [src/get_str.c] Portability corrections in mpfr_get_str_digits. 8537 85382018-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8539 8540 [src/get_str.c] new function mpfr_get_str_digits 8541 [doc/mpfr.texi] added documentation for mpfr_get_str_digits 8542 85432018-03-03 Vincent Lefèvre <vincent@vinc17.net> 8544 8545 [tests/tfma.c] Fixed bug from r12407 with 32-bit long and 64-bit limbs 8546 (e.g. as under 64-bit MS Windows). 8547 85482018-02-26 Vincent Lefèvre <vincent@vinc17.net> 8549 8550 [acinclude.m4] Correction for test of the fallback to __float128: 8551 in the test program, define the variable outside main() in order to 8552 avoid an error when the -Werror=unused-variable GCC option is used. 8553 8554 [src/get_sj.c] Avoid an unused variable. 8555 8556 [doc/README.dev] Updated description of MPFR_WANT_FLOAT128. 8557 8558 [doc/README.dev] Recommend AC_LINK_IFELSE rather than AC_COMPILE_IFELSE 8559 (see r12448 as an example of an issue with AC_COMPILE_IFELSE). 8560 8561 [acinclude.m4] Fixed a test, which could define MPFR_INTMAX_WITHIN_LIMB 8562 even when not true (MPFR_STAT_STATIC_ASSERT() was just regarded as a 8563 function call since the macro was not defined, thus did not yield an 8564 error). 8565 8566 [tests/tversion.c] Output the sizes of long and intmax_t. 8567 8568 [acinclude.m4] Fixed incorrect test from r12426. 8569 8570 Removed trailing spaces. 8571 8572 Updated support for binary128: 8573 * __float128 was changed to _Float128 (ISO/IEC TS 18661) in r12391; 8574 also changed the suffix of the constants from "q" to "f128". 8575 * Use __float128 with the "q" suffix as a fallback in order to avoid 8576 regressions with GCC 6- and with C++ mode (g++). 8577 As documented in the GCC manual, this is entirely compatible on most 8578 platforms where both are supported: _Float128 and __float128 are the 8579 same type, and it could be checked that the following prototypes are 8580 equivalent (as expected): 8581 _Float128 f (__float128) 8582 __float128 f (_Float128) 8583 The only potential issues would be on hppa and IA-64 HP-UX, where 8584 __float128 is an alias for "long double" instead of _Float128, in 8585 case the ABI would be different (I have no information about this) 8586 and both would be mixed up with software using the MPFR conversion 8587 functions for binary128 via __float128 or "long double". The worst 8588 thing that could happen is a link error. If the link is accepted, 8589 everything should be fine as the representation doesn't change. 8590 8591 [src/set_float128.c] Removed a useless #include and corrected a comment. 8592 85932018-02-25 Vincent Lefèvre <vincent@vinc17.net> 8594 8595 [src/get_z_exp.c] Portability. 8596 8597 [tests/tdiv_ui.c] Avoid a compilation error with 8598 gcc -std=c90 -pedantic -Werror in 32-bit ABI. 8599 8600 [tests/tget_str.c] Fixed a return type. 8601 86022018-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8603 8604 [src/get_z_exp.c] new try for r12437. If that still does not work, we should 8605 define macros BITS_PER_EXP_T, BITS_PER_PREC_T, ... 8606 86072018-02-23 Vincent Lefèvre <vincent@vinc17.net> 8608 8609 [src/get_z_exp.c] Reverted r12437: the size of mpfr_exp_t is not 8610 always related to the size of mp_limb_t. 8611 86122018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8613 8614 [src/get_z_exp.c] removed dead code on 64-bit computer 8615 8616 [src/get_str.c] improved case m < g 8617 [tests/tget_str.c] improve coverage 8618 86192018-02-23 Vincent Lefèvre <vincent@vinc17.net> 8620 8621 [acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only 8622 2 cases: TRUE and FALSE. 8623 86242018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8625 8626 [tests/tget_str.c] fixed not enough allocation issue 8627 86282018-02-23 Vincent Lefèvre <vincent@vinc17.net> 8629 8630 [acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only 8631 2 cases: TRUE and FALSE. 8632 86332018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8634 8635 [doc/mpfr.texi] m=1 is now valid in get_str 8636 [src/get_str.c] allow m=1 for b=2^k 8637 [tests/tget_str.c] added test for m=1 and b=2 8638 8639 [src/get_str.c] added a comment 8640 [tests/tget_str.c] improved coverage (finding this example was quite hard!) 8641 86422018-02-23 Vincent Lefèvre <vincent@vinc17.net> 8643 8644 [src/get_sj.c] Removed two assertions, including an incorrect one. 8645 Added an assertion. 8646 8647 [acinclude.m4] Correction: if we cannot test, the portable code must be 8648 selected. 8649 86502018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8651 8652 [configure.ac,acinclude.m4] added new macro MPFR_INTMAX_WITHIN_LIMB 8653 [src/get_sj.c] optimized the code when MPFR_INTMAX_WITHIN_LIMB=1 8654 86552018-02-23 Vincent Lefèvre <vincent@vinc17.net> 8656 8657 [src/mpfr-impl.h] Removed MPFR_LIMBS_PER_LONG_DOUBLE as it was not 8658 properly specified in the general case and was actually used only 8659 in src/set_ld.c with HAVE_LDOUBLE_IEEE_EXT_LITTLE. 8660 [src/set_ld.c] Simplified code. Moreover, the hypothetical case 8661 GMP_NUMB_BITS == 16 will trigger a compilation error instead of 8662 yielding incorrect code. 8663 8664 [tests/tbuildopt.c] 8665 * Added missing const. 8666 * Use the variable s to avoid a warning and also to detect potential 8667 undefined behavior with debugging tools if s is not a string. 8668 86692018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8670 8671 [src/get_sj.c] fixed typo 8672 8673 [src/get_sj.c] added comments and simplified the code 8674 86752018-02-23 Vincent Lefèvre <vincent@vinc17.net> 8676 8677 [src/mpfr-impl.h] Typo in a comment. 8678 86792018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8680 8681 [tests/tget_q.c] improved coverage 8682 86832018-02-23 Vincent Lefèvre <vincent@vinc17.net> 8684 8685 [src/get_d64.c] Parsing in the portable version of string_to_Decimal64: 8686 similar changes as in r12416 for the _MPFR_IEEE_FLOATS version. 8687 86882018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8689 8690 [src/get_ld.c] removed dead code (as in r12413 for mpfr_get_d) 8691 8692 [src/get_flt.c] optimized code when MPFR_LIMBS_PER_FLT=1 8693 [tests/tget_flt.c] improved coverage 8694 8695 [src/get_d64.c] simplified code, and removed dead code 8696 [src/mpfr-impl.h] added comment 8697 [tests/tget_set_d64.c] improve coverage 8698 86992018-02-23 Vincent Lefèvre <vincent@vinc17.net> 8700 8701 [src/set_q.c] Simplified code. 8702 87032018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8704 8705 [src/get_d.c] removed dead code 8706 8707 [src/get_d.c] optimized for common case MPFR_LIMBS_PER_DOUBLE=1 8708 8709 [tests/tset_z_exp.c] improved coverage 8710 8711 [src/set_q.c] removed dead code on 64-bit processor 8712 8713 [src/set_ld.c] improve code when HAVE_LDOUBLE_IEEE_EXT_LITTLE is defined 8714 87152018-02-22 Vincent Lefèvre <vincent@vinc17.net> 8716 8717 [src/set_ld.c] Reverted r12408: MPFR_LIMBS_PER_LONG_DOUBLE cannot be 8718 used with the preprocessor due to the use of "sizeof". 8719 87202018-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8721 8722 [src/set_ld.c] improve code for MPFR_LIMBS_PER_LONG_DOUBLE=1 8723 8724 [tests/tfma.c] improved coverage of mpfr_set_1_2 8725 8726 [tests/tbuildopt.c] improve coverage 8727 87282018-02-22 Vincent Lefèvre <vincent@vinc17.net> 8729 8730 [tests/tfma.c] Corrected a comment. 8731 8732 [tests/tfma.c] Joined test_overflow3 and test_overflow4 by using a loop. 8733 Improved the corresponding test and error message. Also run this test 8734 with the default exponent range. 8735 8736 [src/fma.c] Added FIXME for r12396, which still seems incorrect. 8737 8738 [src/mpfr-impl.h] Typo in a comment. 8739 8740 [NEWS] Update about the change of __float128 to _Float128: clarification 8741 that it is from ISO/IEC TS 18661 ("standard" was too vague); added FIXME 8742 on a possible fallback to __float128 and ABI considerations. 8743 8744 [configure.ac] For --enable-float128, this is still autodetect, e.g.: 8745 checking if compiler knows _Float128 with C99 constants... no 8746 Added a FIXME: a fallback to __float128 is necessary to avoid 8747 regressions. 8748 87492018-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8750 8751 [src/sqr.c] added comments 8752 [tests/tsqr.c] improve coverage of sqr.c to 100% 8753 8754 [src/sqr.c] fixed a bug in mpfr_sqr_1n in a rare case near underflow, 8755 only use mpfr_sqr_1, mpfr_sqr_1n, mpfr_sqr_2, mpfr_sqr_3 8756 when all numbers have same precision (like for mpfr_mul), 8757 and added comments 8758 [tests/tsqr.c] added tests, including non-regression for above bug 8759 8760 [src/fma.c] added comments and a FIXME 8761 8762 [src/fma.c] fixed last failure 8763 [tests/tfma.c] removed debug stuff 8764 8765 [tests/tfma.c] added new failing test 8766 8767 [src/fma.c] fix failure from last test 8768 8769 [src/fma.c] added comments 8770 [tests/tfma.c] added a test (currently failing) 8771 8772 [mips/mparam.h] updated 8773 8774 changed __float128 (gcc specific) into the standard type _Float128 8775 8776 [arm/mparam.h] updated 8777 8778 [x86/mparam.h] updated 8779 8780 [src/mparam_h.in] amd/k8/mparam.h -> amd/mparam.h 8781 8782 [amd/mparam.h] updated 8783 8784 [sparc64/mparam.h] updated 8785 8786 [x86_64/core2/mparam.h] updated 8787 8788 [powerpc64/mparam.h] updated 8789 8790 [x86_64/mparam.h] updated 8791 8792 [src/mulders.c] removed dead code 8793 87942018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8795 8796 [tune/tuneup.c] ensure k < n in mpfr_divhigh_n[] 8797 8798 [src/mparam_h.in] added __tune_znver1__ for AMD64 (e.g., gcc67.fsffrance.org) 8799 8800 [src/mips/mparam.h] updated on gcc22 8801 8802 [NEWS] added item 8803 8804 removed tuning for x86/core2, updated tuning for generic x86 8805 8806 [src/sparc64/mparam.h] updated tuning parameters for sparc64 8807 88082018-02-21 Vincent Lefèvre <vincent@vinc17.net> 8809 8810 [src/mparam_h.in] Use the generic parameters for x86_64 with Clang. 8811 88122018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8813 8814 added tuning for ARM 8815 88162018-02-21 Vincent Lefèvre <vincent@vinc17.net> 8817 8818 Reverted r12368: sparc64 tuning should be updated on gcc202. 8819 88202018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8821 8822 [src/mparam_h.in] generic case for all remaining i386's 8823 8824 [src/mparam_h.in] put back __tune_k8__ 8825 8826 [src/mparam_h.in] check __amd64__ before generic __x86_64__ 8827 8828 removed tuning for hppa (gcc61 is offline) 8829 8830 removed tuning parameters for sparc64 (gcc64, gcc200 and gcc201 are offline) 8831 8832 [tune/tuneup.c] for mpfr_div_threshold, start from 3 limbs again 8833 8834 removed tuning for powerpc32 (no such machine available any more) 8835 8836 [src/powerpc64/mparam.h] updated tuning parameters for powerpc64 8837 8838 [src/amd/k8/mparam.h] fixed MPFR_DIV_THRESHOLD 8839 8840 updated tuning parameters for amd/k8 and x86/core2 8841 88422018-02-21 Vincent Lefèvre <vincent@vinc17.net> 8843 8844 Reverted r12359 and added a comment: tuning for x86 is used when 8845 building GMP/MPFR with a 32-bit ABI (ABI=32 / -m32). 8846 88472018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8848 8849 [tuneup.c] start from 4 limbs for mpfr_div_threshold 8850 8851 removed tuning for ia64 (gcc60.fsffrance.org is now offline) 8852 8853 removed tuning for x86 (no more access to such machine) 8854 8855 [tune/tuneup.c] make tune_simple_func more robust for small precisions 8856 8857 [src/x86_64/mparam.h] fixed MPFR_DIV_THRESHOLD 8858 8859 [x86_64/core2/mparam.h] updated on gcc14 8860 88612018-02-21 Vincent Lefèvre <vincent@vinc17.net> 8862 8863 [acinclude.m4] In the "long double" format recognition, added 8864 size information for IEEE extended (not used by MPFR, but this 8865 may be useful information for the user). 8866 88672018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8868 8869 removed tuning parameters for amd/athlon (we have no access to such machine 8870 any more) 8871 8872 removed tuning for pentium4 8873 8874 removed tuning for corei5 (was not used) 8875 8876 [src/x86_64/mparam.h] added tuning for generic x86_64 8877 [tune/tuneup.c] mpfr_divhigh now wants n >= 2 8878 8879 removed thresholds for arm since gcc57 is no longer available, thus we cannot 8880 tune on an ARM machine 8881 88822018-02-21 Vincent Lefèvre <vincent@vinc17.net> 8883 8884 [src/mulders.c] Removed unused variable dinv. 8885 88862018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8887 8888 [src/div.c] added comment 8889 [src/mpfr-gmp.h] moved definition of MUL_FFT_THRESHOLD 8890 [src/mulders.c] removed unused code, and force n>=2 in mpfr_divhigh_n_basecase 8891 [tests/tmul.c] improve coverage 8892 [tune/tuneup.c] forbid k = n-1 in divhigh_ktab[] 8893 8894 [tests/tdiv.c] improve coverage, now 100% for div.c 8895 8896 [src/ai.c] revert part of r12312 8897 [tests/tai.c] added coverage test provided by Sylvain Chevillard 8898 8899 [src/sub1.c] revert r12317 since it did not consider UBFs. For the record, 8900 tfmma was failing with GMP_CHECK_RANDOMIZE=1519138438006416. 8901 8902 [src/div.c] get rid of mpfr_div_with_mpz_tdiv_q 8903 89042018-02-20 Vincent Lefèvre <vincent@vinc17.net> 8905 8906 [src/gmp_op.c] Fixed a bug in mpfr_cmp_q on NaN rational: the NaN flag 8907 was set by mpfr_set_q, but the flags were not restored just after. 8908 8909 [src/gmp_op.c] Reverted incorrect change in r12337 for mpfr_cmp_q. 8910 Explanation in comment. If the code was not tested, it should be by 8911 using mpq_set_num and mpq_set_den to construct such rationals. 8912 89132018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8914 8915 [tests/tdiv.c] improve coverage 8916 8917 [tests/tdiv.c] improve coverage of mpfr_div_2 8918 89192018-02-20 Vincent Lefèvre <vincent@vinc17.net> 8920 8921 [src/{add,sub}1sp.c] Updated/added comments for MPFR_WANT_ASSERT >= 2. 8922 89232018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8924 8925 [src/div.c] removed dead code 8926 8927 [src/gmp_op.c] removed dead code 8928 [tests/tgmpop.c] improve coverage of gmp_op.c to 100% 8929 89302018-02-20 Vincent Lefèvre <vincent@vinc17.net> 8931 8932 [acinclude.m4] Added missing ";;" before "esac" for code robustness. 8933 8934 [acinclude.m4] Added a FIXME. Added a ";;" for safety. 8935 89362018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8937 8938 [acinclude.m4] added comment, and define MPFR_LONG_WITHIN_LIMB when cannot test 8939 89402018-02-20 Vincent Lefèvre <vincent@vinc17.net> 8941 8942 [src/random_deviate.c] Improved highest_bit_idx in the case where 8943 MPFR_LONG_WITHIN_LIMB is not defined (tested with GCC). 8944 89452018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8946 8947 [src/mul.c] resolved FIXME and removed dead code 8948 8949 [tests/tmul.c] improve coverage 8950 8951 [src/random_deviate.c] highest_bit_idx() assumes x > 0 8952 8953 [src/random_deviate.c] fixed comment 8954 8955 [src/random_deviate.c] redo change r12315 using MPFR_LONG_WITHIN_LIMB 8956 8957 [src/sub1.c] added 2 FIXME 8958 89592018-02-19 Vincent Lefèvre <vincent@vinc17.net> 8960 8961 [tests/tai.c] Renamed test_near_zero to test_near_m2e, since this is 8962 "exercise mpfr_ai near m*2^e", as documented. Corrected comments. 8963 8964 [tests/tai.c] For test_near_zero(), check that the NaN flag was not set 8965 (useful since such tests don't really check that the result is not NaN). 8966 89672018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8968 8969 [tests/tmul.c] improve coverage 8970 8971 [tests/tmul.c] improve coverage 8972 89732018-02-19 Vincent Lefèvre <vincent@vinc17.net> 8974 8975 [src/random_deviate.c] Reverted incorrect change r12315: MPFR_LIMB_MAX 8976 cannot be used with the preprocessor due to the cast. The test should 8977 be done in "pure" C and the middle-end of the compiler should optimize. 8978 8979 [src/sub1.c] Removed an unused label. 8980 8981 [tests/tzeta.c] Check that the NaN flag was not set in some tests 8982 that do not involve NaN (useful since such tests don't really check 8983 that the result is not NaN). 8984 89852018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8986 8987 [src/sub1.c] removed dead code, now coverage should be 100% 8988 89892018-02-19 Vincent Lefèvre <vincent@vinc17.net> 8990 8991 [src/ai.c] Avoid more integer overflows. 8992 89932018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 8994 8995 [src/sub1.c] removed dead code 8996 [tests/tsub.c] added coverage test 8997 89982018-02-19 Vincent Lefèvre <vincent@vinc17.net> 8999 9000 [src/ai.c] Detect some potential integer overflows. 9001 90022018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9003 9004 [src/random_deviate.c] don't compile alternate code if not needed 9005 90062018-02-19 Vincent Lefèvre <vincent@vinc17.net> 9007 9008 [src/ai.c] Coding style. Corrected comments. 9009 90102018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9011 9012 [tests/tzeta.c] improve coverage (and also uceil_exp2.c) 9013 9014 [src/ai.c] removed dead code, and improved coverage 9015 [tests/tai.c] exercise mpfr_ai near (negative) zeroes 9016 9017 [src/ai.c] fixed recomputation of wprec (to be confirmed) 9018 9019 [src/ai.c] removed dead code 9020 90212018-02-19 Vincent Lefèvre <vincent@vinc17.net> 9022 9023 [src/sub1sp.c] Fixed indentation. 9024 9025 Removed trailing whitespace. 9026 9027 [src/sqrt.c] Coding style. 9028 9029 [src/expm1.c] Avoid a potential integer overflow in a type conversion 9030 for 32-bit mpfr_exp_t and 64-bit long (e.g. with -D_MPFR_PREC_FORMAT=2 9031 on a 64-bit Linux machine). 9032 9033 [src/div_2ui.c] Reverted incorrect change in r12272 and added comments 9034 and assertions. 9035 [tests/tmul_2exp.c] Improved a test to trigger the bug in r12272 also 9036 when mpfr_exp_t > 32 bits (e.g. on 64-bit Linux machines). 9037 9038 [tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for positive). 9039 9040 [tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for negative). 9041 9042 [tests] Fixed type errors with -D_MPFR_PREC_FORMAT=2 in CFLAGS and the 9043 --enable-assert=full configure option (signaled by GCC's -Wformat). 9044 9045 [src/mul.c] Fixed type error with -D_MPFR_PREC_FORMAT=2 in CFLAGS and 9046 the --enable-assert=full configure option (signaled by GCC's -Wformat). 9047 9048 [doc/README.dev] Removed the mention of MPFR_EXT_EMIN and MPFR_EXT_EMAX, 9049 replacing them by MPFR_EMIN_MIN and MPFR_EMAX_MAX, as done in r12298. 9050 Note: These old macros had been introduced in r7863 so that one could 9051 choose different values for the extended exponent range for debugging 9052 purpose, but they were not used in practice and were adding complexity 9053 (and potential inconsistency) for no really good reason. 9054 90552018-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9056 9057 [src/agm.c] added comment about line of code impossible to cover 9058 9059 [src/agm.c,src/div.c,src/mpfr-impl.h] replaced MPFR_EXT_EMIN by MPFR_EMIN_MIN, 9060 and MPFR_EXT_EMAX by MPFR_EMAX_MAX 9061 9062 [src/sqrt.c] removed dead code 9063 [tests/tsqrt.c] improve coverage of mpfr_sqrt, now at 100% 9064 9065 [tests/tsqrt.c] improve coverage 9066 9067 [tests/tsqrt.c] improve coverage 9068 90692018-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9070 9071 [src/sqrt.c] removed dead code 9072 9073 [tests/tsqrt.c] improve coverage 9074 9075 [tests/tsqrt.c] improved coverage 9076 [src/sqrt.c] added comments 9077 90782018-02-17 Vincent Lefèvre <vincent@vinc17.net> 9079 9080 [src/expm1.c] Added a FIXME comment. 9081 90822018-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9083 9084 [tests/tsqrt.c] improve coverage 9085 9086 [src/sqrt.c] removed dead code 9087 90882018-02-17 Vincent Lefèvre <vincent@vinc17.net> 9089 9090 [tests/tsub.c] Improved a comment. 9091 9092 [tests/tsub.c] Check reuse of arguments for all mpfr_sub tests, when 9093 possible. 9094 90952018-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9096 9097 [src/sub1sp.c] fixed bug in mpfr_sub1sp1n (corner case when a=c) 9098 [tests/tsub1sp.c] added non-regression test 9099 9100 [src/sub1sp.c] fixed case 2e 9101 91022018-02-17 Vincent Lefèvre <vincent@vinc17.net> 9103 9104 [tests/tsub.c] Updated bug20180217 to trigger the bug: one needs to 9105 reuse the smallest input variable as the output variable. 9106 9107 [tests/tsub.c] Added a test. 9108 9109 [src/expm1.c] Updated a comment. 9110 9111 [src/expm1.c] Fixed an integer overflow from r12276. 9112 9113 [src/expm1.c] Added a log message. 9114 91152018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9116 9117 [tests/tfmma.c] added coverage test 9118 9119 [tests/tfmma.c] improve coverage of add.c (ubf case) 9120 91212018-02-16 Vincent Lefèvre <vincent@vinc17.net> 9122 9123 [src/expm1.c] It seems that code removed in r12273 wasn't necessarily 9124 dead code with mpfr_exp_t > long (-D_MPFR_EXP_FORMAT=4 needed) because 9125 for MPFR_SMALL_INPUT_AFTER_SAVE_EXPO, err would be limited to -LONG_MAX 9126 and precisions larger than LONG_MAX could be problems. The -LONG_MAX 9127 bound from r4127 was arbitrary and only used to simplify the code due 9128 to the fact that mpfr_cmp_si compares to a "long" argument. But now we 9129 have the internal mpfr_get_exp_t function, allowing us to avoid this 9130 arbitrary bound (fixing the code and making it more efficient for these 9131 extreme cases) and simplify the code even more. 9132 91332018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9134 9135 [mbench] added new option to usage 9136 9137 [mbench] added option -d to fix the exponent difference between operands 9138 (useful for mpfr_add and mpfr_sub, for example use -d0 for operands 9139 with same exponent, -d1 for operands differing by 1, ...) 9140 9141 [src/expm1.c] improve coverage (by removing dead code) 9142 91432018-02-16 Vincent Lefèvre <vincent@vinc17.net> 9144 9145 [src/div_2ui.c] No need for mpfr_uexp_t, due to the constraints on 9146 the valid exponents. 9147 9148 [doc/README.dev] Update about mpfr_exp_t. 9149 9150 [src/mul_2ui.c] Simplified mpfr_mul_2ui (like mpfr_div_2ui). 9151 9152 [src/div_2ui.c] Simplified justification. 9153 9154 [src/div_2ui.c] Simplified code as suggested by PZ; added justification. 9155 91562018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9157 9158 GNU style: https://www.gnu.org/prep/standards/standards.html#Formatting 9159 9160 [src/div_2ui.c] added comment 9161 [tests/tmul_2exp.c] added coverage test 9162 91632018-02-16 Vincent Lefèvre <vincent@vinc17.net> 9164 9165 [src/div_2ui.c] Replaced FIXME by an explanation. 9166 91672018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9168 9169 [src/div_2ui.c] added FIXME 9170 9171 [src/cmp_ld.c] simplified code (and avoid useless test when long double is not 9172 double-double) 9173 9174 [tests/tsub1sp.c] improve coverage 9175 9176 [tests/tadd1sp.c] improve coverage of add1sp 9177 9178 [src/sub1sp.c] fixed bug20180216 9179 9180 [tests/tadd1sp.c] added coverage test 9181 91822018-02-16 Vincent Lefèvre <vincent@vinc17.net> 9183 9184 [tests/tsub.c] More tests in bug20180216. 9185 9186 [tests/tsub.c] Added bug20180216 test currently failing (corresponding 9187 to the failure mentioned in r12253, r12254 and r12255, but reproducible 9188 with a simple "./configure"). 9189 9190 [src/exp_2.c] Note that the internal behavior depends on whether 9191 MPFR_LONG_WITHIN_LIMB is defined or not (see also r12253). This 9192 should not matter, possibly except in case of bug, like currently. 9193 9194 [acinclude.m4] Updated FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG. 9195 9196 [acinclude.m4] Added a FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG. 9197 9198 [src/sub1sp.c] Squeezed useless double-space. 9199 92002018-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9201 9202 [src/sub1sp.c] fixed bug20180215() 9203 92042018-02-15 Vincent Lefèvre <vincent@vinc17.net> 9205 9206 [tests/tsub.c] Updated comment for bug20180215. 9207 9208 [src/sub1sp.c] Use "else" for symmetry with above code. 9209 9210 [tests/tsub.c] Added a comment for bug20180215 (bug in the case 9211 2 <= d < p in generic code mpfr_sub1sp() introduced in r12242). 9212 9213 [tests/tsub.c] Added bug20180215 test currently failing, found from a 9214 failure using -DMPFR_GENERIC_ABI in CFLAGS and the --enable-assert=full 9215 configure option; but the test had to be extended so that it also fails 9216 with a simple "configure", i.e. without -DMPFR_GENERIC_ABI in CFLAGS 9217 and without the --enable-assert=full configure option. 9218 9219 Removed trailing whitespace. 9220 92212018-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9222 9223 [src/sub1sp.c] review of case 2 <= d < p in generic code mpfr_sub1sp() 9224 9225 [src/div_ui.c] GNU style 9226 [src/sub1sp.c] reviewed the code for d>=p in mpfr_sub1sp() 9227 92282018-02-14 Vincent Lefèvre <vincent@vinc17.net> 9229 9230 [tools/mpfrlint] Much improved the check of the use of GMP internals. 9231 92322018-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9233 9234 [src/sub1sp.c] fixed a FIXME 9235 9236 [src/mpfr-gmp.h] define prototype of __gmpn_rsblsh1_n 9237 [src/sub1sp.c] changed names of variables to something more readable 9238 9239 [configure.ac] detect mpn_rsblsh1_n instead of mpn_rsblsh_n 9240 [src/sub1sp.c] use mpn_rsblsh1_n instead of mpn_rsblsh_n with k=1 9241 92422018-02-14 Vincent Lefèvre <vincent@vinc17.net> 9243 9244 [src/sub1sp.c] Added 2 FIXME's. 9245 9246 [src/sub1sp.c] In mpfr_sub1sp, initialize k only once. This slightly 9247 simplifies the code and avoids a -Wmaybe-uninitialized warning from 9248 GCC. The only failure on a 64-bit Linux machine is tsub1sp, due to 9249 an assertion failure in mpfr_sub1sp, as before this change. 9250 9251 [src/sub1sp.c] Avoid the swapping of the exponents when they are equal. 9252 92532018-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9254 9255 [src/sub1sp.c] review of case d=1 in generic code 9256 9257 [src/add1sp.c] no need of MPFR_TMP_MARK any more 9258 9259 [src/sub1sp.c] end of review of case d=0 in generic code 9260 9261 [src/sub1sp.c] work in progress 9262 92632018-02-13 Vincent Lefèvre <vincent@vinc17.net> 9264 9265 [src/add1sp.c] Moved a MPFR_ASSERTD to the right place. 9266 92672018-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9268 9269 [src/sub1sp.c] re-enable __gmpn_rsblsh_n (with WANT_GMP_INTERNALS) 9270 9271 [src/sub1sp.c] small improvement 9272 9273 [tools/cfarm.sh] updated for 4.0.1-rc2 9274 9275 [src/add1sp.c] mp_ptr -> mp_limb_t* 9276 9277 [src/add1sp.c] get rid of MPN_COPY/MPN_ZERO in generic code 9278 92792018-02-13 Vincent Lefèvre <vincent@vinc17.net> 9280 9281 [src/add1sp.c] Improved comments and other minor changes. 9282 9283 [src/add1sp.c] In the generic code of mpfr_add1sp, fixed the computation 9284 of the round and sticky bits from r12220. At the same time, improved the 9285 handling of MPFR_RNDF in this part of the code: 9286 * The "while" loop to compute the sticky bit is no longer done in this 9287 case (the sticky bit does not matter). 9288 * The "goto" is avoided. 9289 9290 [tests/tadd.c] Added 2 tests that fail starting with r12220. 9291 92922018-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9293 9294 [src/add1sp.c] cleanup generic code mpfr_add1sp() 9295 92962018-02-09 Vincent Lefèvre <vincent@vinc17.net> 9297 9298 [src/fma.c] Added a FIXME comment about overflow/underflow issues in 9299 corner cases (already caught with MPFR_ASSERTN), fixable with UBF 9300 like in mpfr_fmma. 9301 [src/hypot.c] Updated a comment: The problem that would come from an 9302 underflow in y^2, in particular because x was scaled in order to 9303 avoid an overflow in x^2, has been avoided by using a FMA (though 9304 still buggy for these cases, as mentioned just above). 9305 93062018-02-08 Vincent Lefèvre <vincent@vinc17.net> 9307 9308 [tests] Added/updated comments about the config.h inclusion. 9309 9310 [tests/{tset_float128.c,tset_ld.c}] Removed obsolete WITH_FPU_CONTROL 9311 related code (this should have been done in r12185). 9312 93132018-02-07 Vincent Lefèvre <vincent@vinc17.net> 9314 9315 [INSTALL] Updated GMP URL. 9316 9317 [doc/mpfr.texi] Updated the month. 9318 9319 [doc/mpfr.texi] Corrected minimal GMP version. 9320 [tools/mpfrlint] Updated test to detect minimal GMP version mismatch. 9321 9322 [INSTALL] Corrected minimal GMP version (thanks to David Edelsohn). 9323 [tools/mpfrlint] Added a test to detect minimal GMP version mismatch. 9324 9325 [tools/announce-text] For releases, check the VERSION file of the tag. 9326 9327 [doc/README.dev] "To make a release": moved a sentence. 9328 93292018-02-02 Vincent Lefèvre <vincent@vinc17.net> 9330 9331 [tests/tdiv_ui.c] Forcibly disable value coverage checking if 9332 mp_limb_t > unsigned long (e.g. on mips64 with the n32 ABI). 9333 9334 [tests/tdiv_ui.c] Corrected comments. 9335 9336 [tests/t*random*.c] 9337 * Replaced calloc + free by tests_allocate + tests_free as usual. 9338 * trandom.c, turandom.c: do bitwise operations in unsigned arithmetic. 9339 9340 [tests/t*random*.c] 9341 * Replaced some fprintf with stderr by printf (but not those 9342 concerning memory allocation errors). 9343 * Do bitwise operations in unsigned arithmetic. 9344 * Formatting. 9345 9346 [tests] Formatting. 9347 9348 [tests/tests.c] Make stderr unbuffered again. 9349 Note for the history: both stdout and stderr were made unbuffered in 9350 r2361, then all stderr were changed to stdout (and the corresponding 9351 setbuf on stderr removed) in r2449 for consistency, but stderr was 9352 used later for specific cases (e.g. memory allocation errors or when 9353 stdout is already used for something else), and it is also used for 9354 assertion failures. Thus the setbuf on stderr is still needed. 9355 9356 [tests] Fixed the cases where tests_start_mpfr was called too late, 9357 i.e. after potential output (to stdout). 9358 * tremquo.c: moved the call to tests_start_mpfr to the beginning. 9359 * tset_float128.c, tset_ld.c: removed the optional, obsolete code 9360 setting the FPU control word; MPFR_FPU_PREC can be used instead 9361 (see tests.c). 9362 9363 Reverse-merged r12181 since tests_start_mpfr disables stdout buffering, 9364 so that the fflush() are unnecessary. 9365 9366 [tests/tabort_*.c] Flush stdout after a printf(), as an abort() is 9367 expected. This is needed on platforms where abort() does not flush 9368 the stdio streams, such as with the GNU C Library (glibc) 2.27. 9369 93702018-02-01 Vincent Lefèvre <vincent@vinc17.net> 9371 9372 [NEWS] Mention "make check-exported-symbols" (experimental). 9373 9374 [tests/tdiv_ui.c] Portability update, in case MPFR_PREC_MIN > 1. 9375 93762018-01-31 Vincent Lefèvre <vincent@vinc17.net> 9377 9378 [tests/tdiv_ui.c] In corner_cases, test larger values for xn, 9379 as suggested by Paul, allowing one to cover case 2 for both 9380 sb=0 and sb=1. Value coverage is now complete. 9381 9382 [tests/tdiv_ui.c] Updated midpoint_exact to also test the divisor 9383 ULONG_MAX, allowing one to cover cases 3 and 4. 9384 9385 [tests/tdiv_ui.c] Added tests with simple midpoint and exact cases. 9386 This covers case 9, sb=0. 9387 9388 Added a case for the value coverage for tdiv_ui. 9389 → Now, on a 64-bit Linux machine: 9390 mpfr_div_ui not tested on case 2, sb=0 9391 mpfr_div_ui not tested on case 2, sb=1 9392 mpfr_div_ui not tested on case 3, sb=0 9393 mpfr_div_ui not tested on case 4, sb=0 9394 mpfr_div_ui not tested on case 9, sb=0 9395 9396 Added value coverage for tdiv_ui (combinations of rb and sb in the 9397 different cases of the mpfr_div_ui code). 9398 → Currently on a 64-bit Linux machine: 9399 mpfr_div_ui not tested on case 2, sb=0 9400 mpfr_div_ui not tested on case 3, sb=0 9401 mpfr_div_ui not tested on case 8, sb=0 9402 9403 [src/div_ui.c] Case tmp[yn] != 0: simplified code since u ≥ 2. 9404 9405 [src/div_ui.c] Case tmp[yn] == 0: 9406 * corrected/improved comments; 9407 * simplified condition rb && sb to rb (since if rb ≠ 0, then r ≠ 0, 9408 so that the current sb ≠ 0); 9409 * replaced "& (~MPFR_LIMB_HIGHBIT)" by "<< 1" (should be simpler). 9410 94112018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9412 9413 [src/div_ui.c] fixed corner case (hopefully) 9414 94152018-01-30 Vincent Lefèvre <vincent@vinc17.net> 9416 9417 [tools/mpfrlint] Improved a regexp (avoiding false positives). 9418 9419 [tests/tdiv_ui.c] corner_cases() requires limbs to fit in unsigned long. 9420 9421 [tests/tdiv_ui.c] Back to a decimal constant (the UL suffix was 9422 incorrect, but just a U is OK). 9423 94242018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9425 9426 [tests/tdiv_ui.c] added test for corner case (currently fails) 9427 94282018-01-30 Vincent Lefèvre <vincent@vinc17.net> 9429 9430 [tests/tdiv_ui.c] Fixed a value (from a zsh bug). 9431 9432 [src/div_ui.c] Comment: now, "i.e." is correct. 9433 9434 [tests/tdiv_ui.c] Added ABI-independent bug20180126 tests. 9435 94362018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9437 9438 [src/div_ui.c] fixed a comment 9439 94402018-01-30 Vincent Lefèvre <vincent@vinc17.net> 9441 9442 [src/div_ui.c] Typo in a comment. 9443 9444 [src/div_ui.c] Updated a comment. 9445 9446 [src/div_ui.c] Clarified the notation (this was ambiguous, with two 9447 possible interpretations). Added comments about mpn_divrem_1. 9448 9449 [src/div_ui.c] Added a FIXME. 9450 94512018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9452 9453 [src/div_ui.c] fixed a comment, and added a FIXME 9454 94552018-01-29 Vincent Lefèvre <vincent@vinc17.net> 9456 9457 [src/div_ui.c] Clarified a comment. 9458 9459 [src/div_ui.c] Started to review the code; minor changes. 9460 9461 [src/div_ui.c] Minor update of comments. 9462 9463 [src/div_ui.c] Fixed the exact case, which used nexttoinf uninitialized. 9464 9465 [tests/tdiv_ui.c] bug20180126: enable the test only when a limb fits in 9466 an unsigned long; clarified a comment. 9467 94682018-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9469 9470 [src/div_ui.c] fixed bug20180126 (from tdiv.c), with a complete rewrite of 9471 mpfr_div_ui using the round and sticky bits 9472 [tests/tdiv_ui.c] added more tests 9473 94742018-01-27 Vincent Lefèvre <vincent@vinc17.net> 9475 9476 [tests/tdiv.c] mpfr_div bug bug20180126: also test negative values. 9477 9478 [tests/tdiv.c] Updated comment about mpfr_div bug bug20180126. 9479 9480 [tests/tdiv.c] mpfr_div bug bug20180126 was introduced by r9086. 9481 94822018-01-26 Vincent Lefèvre <vincent@vinc17.net> 9483 9484 [tests/tdiv.c] Completed r12128 test with new comments and an assert. 9485 9486 [tests/tdiv.c] Added test case for a mpfr_div bug of MPFR 4. 9487 94882018-01-25 Vincent Lefèvre <vincent@vinc17.net> 9489 9490 [doc/README.dev] Added information about symbol checking. 9491 94922018-01-23 Vincent Lefèvre <vincent@vinc17.net> 9493 9494 [tests/tests.c] Mention a libtool 2.4.6 bug concerning Solaris, yielding 9495 potential failures if a compatible MPFR version is already installed: 9496 this MPFR library is tested instead of the one that has just been built. 9497 94982018-01-22 Vincent Lefèvre <vincent@vinc17.net> 9499 9500 [NEWS] + Improved __GMP_CC and __GMP_CFLAGS retrieval. 9501 9502 [configure.ac] In the CC and CFLAGS setup from gmp.h, added to the 9503 cpp list: "clang -E"; "cl -E" and "icl -E" for Windows ICC and MSVC 9504 (suggested by Alexander). 9505 95062018-01-20 Vincent Lefèvre <vincent@vinc17.net> 9507 9508 [doc/README.dev] "To make a release": mention "make check-gmp-symbols" 9509 and "make check-exported-symbols". 9510 9511 [Makefile.am] Updated comments. 9512 9513 [src/Makefile.am] For check-gmp-symbols and check-exported-symbols, if 9514 the library is not $(top_builddir)/src/.libs/libmpfr.so, these rules 9515 do nothing instead of potentially failing. 9516 9517 Added check-exported-symbols make rule to check that MPFR does not 9518 define symbols with a GMP reserved prefix. 9519 95202018-01-18 Vincent Lefèvre <vincent@vinc17.net> 9521 9522 [src/mp_clz_tab.c] Fixed a condition (see bug mentioned at r12107). 9523 9524 [src/mpfr-gmp.h] Reverse-merged r11969, which yields a build failure 9525 under MinGW when GMP is built with "--disable-shared --enable-static 9526 --enable-assert --disable-assembly" and MPFR is built using the GMP 9527 build. Indeed, this commit was incorrect, as if the GMP build is used, 9528 then this is GMP's longlong.h that is used and GMP's __clz_tab version 9529 that should be used. 9530 The real cause of the "multiple definition of `__gmpn_clz_tab'" error 9531 reported at 9532 https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00061.html 9533 is that MPFR defines its own __gmpn_clz_tab while this is not needed 9534 (and must not be done) when the GMP build is used. 9535 95362018-01-16 Vincent Lefèvre <vincent@vinc17.net> 9537 9538 [TODO] - Decide whether multiple calls to mpfr_clear should be allowed. 9539 9540 [TODO] + Decide whether multiple calls to mpfr_clear should be allowed. 9541 95422018-01-13 Vincent Lefèvre <vincent@vinc17.net> 9543 9544 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 9545 9546 [NEWS] Update. Prepare for new version 4.1.0. 9547 9548 [doc] Updated FAQ.html with update-faq. 9549 95502018-01-10 Vincent Lefèvre <vincent@vinc17.net> 9551 9552 [tests/tlgamma.c] bug20180110: test the ternary value and the flags. 9553 9554 [src/lngamma.c] Fixed mpfr_lgamma bug for tiny negative x, in case 9555 emax < exponent of the result (the issue was an overflow in the "fast" 9556 algorithm, which made it loop with more and more working precision). 9557 9558 [src/lngamma.c] Removed a useless cast. 9559 9560 [tests/tlgamma.c] Added a test case for a bug found from the tgeneric 9561 change done in r12088. 9562 9563 [tests/tgeneric.c] Do several overflow/underflow tests instead of 1, and 9564 this for each precision. This allows one to detect the mpfr_ai bug found 9565 and fixed on 2018-01-07 (with 32-bit *and* 64-bit ABI): 9566 https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html 9567 Moreover, this makes tlgamma loop with a 32-bit ABI (x86). To be fixed. 9568 9569 [tests/tgeneric.c] Added comments for tests in a reduced exponent range. 9570 9571 [tests/tsprintf.c] About r12084, simplified the code, without needing 9572 strncpy. 9573 9574 [tests/tsprintf.c] Fixed strncpy usage, in particular to ensure a 9575 null-terminated string (bug detected by gcc-snapshot 20180107-1 under 9576 Debian with -Werror=stringop-truncation). 9577 95782018-01-09 Vincent Lefèvre <vincent@vinc17.net> 9579 9580 [doc/mpfr.texi] Fixed the @GMPabs macro in tex mode: due to the use of 9581 the OT1 encoding, the pipe character "|" was giving a wide dash. 9582 9583 [doc/mpfr.texi] For mpfr_custom_get_exp, restored the spec for NaN, 9584 infinity and zero, with more details. 9585 9586 [doc/mpfr.texi] Improved description of mpfr_custom_init_set. 9587 Note: For the versions of the manual generated with TeX (PDF/DVI/PS), 9588 "|kind|" appears as "—kind—", and the description of mpfr_ai has 9589 the same issue (since its introduction in MPFR 3.0.0). The cause 9590 is unclear, and this will be fixed later. 9591 95922018-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9593 9594 [doc/mpfr.texi] for mpfr_custom_get_exp, explain the significand is considered 9595 in [1/2,1) as for mpfr_get_exp 9596 95972018-01-09 Vincent Lefèvre <vincent@vinc17.net> 9598 9599 [doc] 9600 * texinfo.tex: update to the latest version 2018-01-09.11, which 9601 supports @var with script font size without any drawback. 9602 * mpfr.texi: replaced the now useless @svar by @var. 9603 96042018-01-07 Vincent Lefèvre <vincent@vinc17.net> 9605 9606 [tests/tai.c] In bug20180107, also check the flags. 9607 9608 [src/ai.c] Really fixed the bug. 9609 9610 [src/check.c] Typo. 9611 96122018-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9613 9614 [src/ai.c] missing call to mpfr_check_range 9615 9616 [tests/tai.c] added test that fails on x86_64 9617 9618 [tests/tai.c] added test for bug in mpfr_ai (see thread 9619 https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html) 9620 96212018-01-03 Vincent Lefèvre <vincent@vinc17.net> 9622 9623 [doc/mpfr.texi] Updated the month. 9624 9625 [tools/ck-mparam] In the copyright notice, just keep the year 2011 9626 since this file is not part of the tarball (just used by mpfrlint). 9627 9628 Copyright notice update: added 2018 with 9629 perl -pi -e 's/ (\d{4}-)?(2017)(?= Free Software)/ 9630 " ".($1||"$2-").($2+1)/e' **/*(^/) 9631 under zsh, reverting the ck-mparam and timings-mpfr.c files and 9632 the mbench directory under "tools" (not distributed with MPFR). 9633 Removed 2017 from the example in the doc/README.dev file. 9634 96352018-01-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9636 9637 [src/zeta.c] added comments and FIXME 9638 9639 Note (2019-04-30): a bug has also been introduced (fixed in r13485). 9640 96412017-12-25 Vincent Lefèvre <vincent@vinc17.net> 9642 9643 [NEWS] Minor corrections for GNU MPFR 4.0.0. 9644 96452017-12-23 Vincent Lefèvre <vincent@vinc17.net> 9646 9647 [tests/tests.c] Added a note about gettimeofday() and a cast. 9648 9649 [tests/tests.c] Fixed a potential integer overflow from r12053 with 9650 GMP_CHECK_RANDOMIZE=1, in particular under a 32-bit Linux. 9651 96522017-12-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9653 9654 [tests/tests.c] decrease probability of collision with random seed 9655 9656 [src/exp_2.c] fixed bug from previous commit 9657 [src/subnormal.c] added assert 9658 9659 [tests/texp.c] added test for new bug 9660 96612017-12-22 Vincent Lefèvre <vincent@vinc17.net> 9662 9663 Removed trailing whitespace. 9664 9665 [src/subnormal.c] Replaced FIXME. 9666 9667 [tests/tj1.c] Avoid a potential integer overflow. 9668 96692017-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9670 9671 [src/subnormal.c] added FIXME 9672 9673 [src/sin.c] simplified code with RNDA 9674 9675 [src/hypot.c] mimic mpfr_round_near_x 9676 9677 [tests/tj1.c] exercise corner case 9678 9679 [tests/tj1.c] added test for j1(z) with small z 9680 9681 [src/hypot.c] fixed issue with overflow flag not correctly set 9682 96832017-12-21 Vincent Lefèvre <vincent@vinc17.net> 9684 9685 [src/next.c] Reverted r12035 as per documentation, which follows 9686 IEEE 754 (with the usual special treatment for the single NaN). 9687 96882017-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9689 9690 [src/next.c] fixed nextinf (missing overflow flag) 9691 [tests/thypot.c] removed debug call to mpfr_dump in previous commit 9692 9693 [tests/thypot.c] another fix... 9694 9695 [tests/thypot.c] fixed bug20171221() 9696 9697 [tests/thypot.c] new failing test 9698 9699 [src/lngamma.c] fixed bug when u=0 in case z0 < 1 9700 [tests/tlngamma.c] fixed test case which was wrong 9701 97022017-12-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9703 9704 [tests/tlngamma.c] added test for new failure 9705 9706 [src/lngamma.c] fixed bug found in previous commit 9707 9708 [tests/tlngamma.c] added failing test with mpfr-4.0.0-rc2 9709 97102017-12-20 Vincent Lefèvre <vincent@vinc17.net> 9711 9712 Updated version to 4.1.0-dev again. 9713 9714 Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch. 9715 9716 [src/fma.c] Minor improvements. Added an assert. 9717 9718 [src/tanh.c] GNU coding style. 9719 9720 [src/mul.c] Reindentation. 9721 9722 [src/exp2.c] Replaced two MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT. 9723 97242017-12-19 Vincent Lefèvre <vincent@vinc17.net> 9725 9726 [src/exp2.c] Fixed the double rounding problem in an underflow case, 9727 triggered by the test added in r12017. 9728 9729 [tests/texp2.c] Added test of underflow in MPFR_RNDN with exact value 9730 close to 2^(emin-2). Currently fails due to double rounding. 9731 9732 [tests/tdiv.c] Added new non-regression test: the was the real cause of 9733 the ttanh failure in r11993 without the tanh.c fix in this same commit. 9734 But this mpfr_div was fixed in r12002. 9735 9736 [doc/mpfr.texi] Added a comment about a bug/limitation in makeinfo 5.2. 9737 9738 [doc/mpfr.texi] Improved svar macro for nottex, in case it is used 9739 in the future. 9740 9741 [doc/mpfr.texi] Define svar even for nottex, though it is not used 9742 (attempt to avoid a failure with makeinfo 5.2). 9743 97442017-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9745 9746 [src/fma.c] fixed bug in mpfr_fma 9747 [tests/tfma.c] added non-regression test 9748 97492017-12-19 Vincent Lefèvre <vincent@vinc17.net> 9750 9751 [src/exp2.c] Update concerning the underflow/overflow cases. 9752 Still incomplete. 9753 9754 [doc/mpfr.texi] Updated a comment. 9755 9756 [doc] 9757 * texinfo.tex: update to the latest version 2017-12-18.20, which 9758 reverts the change done in 2017-12-01.13 attempting to support 9759 @var with script font size (e.g. in exponent); but this change 9760 didn't work correctly. 9761 * mpfr.texi: introduced a @svar macro to handle this case. It 9762 currently disables the use of @var, the other workaround being 9763 worse. 9764 97652017-12-18 Vincent Lefèvre <vincent@vinc17.net> 9766 9767 Removed trailing whitespace. 9768 9769 [doc/algorithms.tex,src/tanh.c] Fixed the bound, in particular from 9770 the recent improvements in the error analysis. 9771 97722017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9773 9774 [src/mul.c] we should compare the smaller size and not the larger one to 9775 MPFR_MUL_THRESHOLD or MPFR_SQR_THRESHOLD for Mulders' short product 9776 9777 [src/mul.c] with Mulders', convert RNDF to RNDZ 9778 [tests/tmul_d.c] added a non-regression test 9779 97802017-12-18 Vincent Lefèvre <vincent@vinc17.net> 9781 9782 [doc/algorithms.tex] mpfr_tanh: corrected bounds (thanks to Paul). 9783 9784 [doc/algorithms.tex] mpfr_tanh: detailed some inequalities. 9785 97862017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9787 9788 [src/div.c] fixed bug in mpfr_div2_approx() 9789 [tests/tdiv.c] added non-regression test 9790 [tests/ttan.c] added test triggering bug in mpfr_div2_approx() 9791 97922017-12-18 Vincent Lefèvre <vincent@vinc17.net> 9793 9794 [doc/algorithms.tex] mpfr_tanh: resolved both FIXME's. 9795 9796 [doc/algorithms.tex] mpfr_tanh: corrected a part of the error analysis 9797 (2^k+4 ≤ |theta_4|^(−1/2) was not necessarily true, since theta_4 can 9798 be very small). As a consequence, the lemma can be simplified/improved 9799 (first FIXME). Added a second FIXME on a condition that is not checked. 9800 9801 [doc/algorithms.tex] mpfr_tanh: missing absolute value; added a \cdot. 9802 9803 Removed trailing whitespace. 9804 9805 [doc/algorithms.tex] Added another \cdot for readability. 9806 98072017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9808 9809 [src/exp2.c] added FIXME 9810 98112017-12-18 Vincent Lefèvre <vincent@vinc17.net> 9812 9813 [doc/algorithms.tex] Minor corrections for hyperbolic tangent function: 9814 * "e" had two different meanings (BTW, the constant e should actually 9815 be written \mathrm{e} everywhere in the document). 9816 * Use \left...\right instead of |...| when it contains an expression 9817 starting with \log (the latter was confusing pdflatex, which added 9818 a spurious space before \log). 9819 * Added some \cdot for better readability. 9820 98212017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9822 9823 [src/exp2.c] fixed bug near underflow 9824 [tests/texp2.c] added non-regression test 9825 9826 [tests/ttanh.c] added test for bug in mpfr_tanh 9827 [doc/algorithms.tex] fixed error analysis for mpfr_tanh 9828 [src/tanh.c] fixed error analysis 9829 Note after r12016: Even though mpfr_tanh was incorrect, the failure 9830 of the test added in ttanh.c was actually *only* due to a bug in the 9831 mpfr_div code specific to the trunk (fixed in r12002), i.e. this was 9832 not a non-regression test for the mpfr_tanh bug itself (in particular, 9833 this test does not introduce a failure in the 3.1 branch, which still 9834 has the same incorrect mpfr_tanh code but a correct mpfr_div). 9835 98362017-12-18 Vincent Lefèvre <vincent@vinc17.net> 9837 9838 Updated version to 4.1.0-dev again. 9839 98402017-12-17 Vincent Lefèvre <vincent@vinc17.net> 9841 9842 Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch. 9843 9844 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 9845 98462017-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9847 9848 [src/add1sp.c] fix bug in mpfr_add1sp3() in case d=GMP_NUMB_BITS 9849 98502017-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9851 9852 [tests/tadd1sp.c] added test for new bug (still to be fixed): 9853 9854 Seed GMP_CHECK_RANDOMIZE=1514385177 (include this in bug reports) 9855 add1 & add1sp return different values for MPFR_RNDN 9856 Prec_a = 137, Prec_b = 137, Prec_c = 137 9857 B = 0.11111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000E-66 9858 C = 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000110000E-2 9859 9860 add1 : 0.10000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000E-1 9861 add1sp: 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000010000E-2 9862 Inexact sp = 0 | Inexact = 0 9863 Flags sp = 8 | Flags = 8 9864 add1sp.c:89: MPFR assertion failed: 0 9865 98662017-12-15 Vincent Lefèvre <vincent@vinc17.net> 9867 9868 [src/root.c] Minor comment correction. 9869 9870 [src/root.c] Completed fix from r11978, as x=-1 was affected too. Also 9871 added comments explaining that mpfr_root_aux assumes |x| ≠ 1 and why. 9872 Hence the need of a filter on |x| = 1. 9873 [tests/troot.c] Added test for x = -1. 9874 9875 [tests/troot.c] Replaced mpfr_root by TF (like in the other tests). 9876 98772017-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9878 9879 [src/root.c] fixed bug when x=1 9880 [tests/troot.c] added non-regression test 9881 98822017-12-14 Vincent Lefèvre <vincent@vinc17.net> 9883 9884 [tests/tsub1sp.c] Corrected a type. And mpfr_equal_p being a predicate 9885 function, it's better to use Boolean operators on it. 9886 98872017-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9888 9889 [tests/tsub1sp.c] added a generic test for bug20171213() 9890 98912017-12-14 Vincent Lefèvre <vincent@vinc17.net> 9892 9893 [src/{mul.c,sqr.c}] Minor changes, making code similar to sub1sp.c. 9894 Checked with 9895 grep -A 1 'sb *>>' src/*.c 9896 that the bug fixed in r11974 does not occur in other parts of the code. 9897 BTW, there is much duplicate code, as shown by the grep output, and 9898 using macros could have avoided that, making bugs easier to reproduce 9899 (since a same bug would be duplicate several times). 9900 99012017-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9902 9903 [src/sub1sp.c] fixed bug in mpfr_sub1sp2() 9904 [tests/tsub1sp.c] added non-regression test 9905 99062017-12-13 Vincent Lefèvre <vincent@vinc17.net> 9907 9908 [src/mpf2mpfr.h] Added a comment. 9909 99102017-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9911 9912 [src/mpf2mpfr.h] missing mpf_inits/mpf_clears 9913 9914 [src/mpfr-gmp.h] redefine __clz_tab also with gmp-build 9915 99162017-12-12 Vincent Lefèvre <vincent@vinc17.net> 9917 9918 [configure.ac] Improved error message. 9919 9920 [tests/talloc.c] Added a comment about why talloc requires ISO C99. 9921 9922 [src/mpfr-cvers.h] Removed a useless test for __MPFR_STDC, as one just 9923 needs to check whether we have a C99, C11, etc. implementation (if not 9924 done via a configure test). Particular incompatibilities with the C90 9925 standard should always be checked via a configure test. 9926 9927 [tests] Added *.exe to svn:ignore property (files from MinGW builds). 9928 99292017-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9930 9931 [tools/timings-mpfr.c] always use clock() [now very accurate under Linux] 9932 99332017-12-12 Vincent Lefèvre <vincent@vinc17.net> 9934 9935 [tools/timings-mpfr.c] Updated years in copyright notice. 9936 9937 [tools/timings-mpfr.c] Fixed prototypes. 9938 9939 [tools/timings-mpfr.c] Added a defined(_MSC_VER). But clock() is 9940 standard, so why not always using it? 9941 9942 [doc/README.dev] Correction. 9943 9944 [doc/README.dev] Made formatting consistent (same as configure --help). 9945 9946 Completed r11955: There were also DEBUG macros under the "tests" 9947 directory. Since such macros can still be useful in case a test failure, 9948 replaced them by MPFR_DEBUG to avoid issues with CI builds that define 9949 the DEBUG macro. But an environment variable would be a better solution 9950 (see MPFR_DEBUG_BADCASES as an example). 9951 9952 [TODO] Removed item on the DEBUG macro (done in r11955). 9953 99542017-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9955 9956 DEBUG_TGENERIC -> MPFR_DEBUG_TGENERIC 9957 XDEBUG -> MPFR_DISABLE_IEEE_FLOATS 9958 9959 get rid of DEBUG macro (but keep corresponding commands in comment to help 9960 understanding of the code and debugging) 9961 99622017-12-11 Vincent Lefèvre <vincent@vinc17.net> 9963 9964 [tests/tget_q.c] Removed trailing whitespace. 9965 99662017-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9967 9968 [tests/tget_q.c] replaced MPFR_ASSERTN(0) by exit(1) 9969 99702017-12-10 Vincent Lefèvre <vincent@vinc17.net> 9971 9972 [src/get_q.c] Optimization of r11951 suggested by Trevor Spiteri: 9973 https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00040.html 9974 99752017-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 9976 9977 [src/get_q.c] make result of mpfr_get_q in canonical form 9978 [tests/tget_q.c] added non-regression test 9979 9980 [src/lngamma.c] replace call to __gmpfr_ceil_log2 by __gmpfr_int_ceil_log2 9981 99822017-12-09 Vincent Lefèvre <vincent@vinc17.net> 9983 9984 [TODO] Rename the DEBUG macro to MPFR_DEBUG? 9985 99862017-12-08 Vincent Lefèvre <vincent@vinc17.net> 9987 9988 [src/Makefile.am] Also distribute generic/coverage/mparam.h 9989 (at least useful for testing the distributed tarballs). 9990 9991 [doc] Updated FAQ.html with update-faq. 9992 9993 [doc] Updated FAQ.html with update-faq. 9994 9995 [doc/README.dev] "To make a release": 9996 * Note that this needs to be done in a branch. 9997 * Swapped (1) and (2), in particular because the coverage might be 9998 different in -dev versions and it is better to give results closer 9999 to the release. 10000 10001 Updated version to 4.1.0-dev. 10002 10003 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 10004 10005 Moved tests/timings-mpfr.c into directory "tools" as it is not part 10006 of the test suite. 10007 100082017-12-07 Vincent Lefèvre <vincent@vinc17.net> 10009 10010 [src/fpif.c] Removed FIXME about the sign bit of NaN: done in 10011 r11910 and r11920 (documentation + tests). 10012 10013 [src] Replaced some "return 0" by "MPFR_RET (0)" (the generated code 10014 is the same as shown by gcc, thanks to an obvious optimization; this 10015 is semantically better, which could help provers, and would allow 10016 code instrumentation in the future, if need be). 10017 100182017-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10019 10020 got rid of mpz_dump (undocumented in GMP) 10021 10022 [src/mpfr-mini-gmp.c] updated with GMP 6.1.2 10023 100242017-12-06 Vincent Lefèvre <vincent@vinc17.net> 10025 10026 [doc/mpfr.texi] Corrected a Texinfo typography issue. 10027 10028 [src/pool.c] Updated description. Corrected copyright years as the 10029 pool code itself was introduced in 2014. 10030 10031 [tests/timings-mpfr.c] Removed trailing whitespace, untabified, 10032 changed GMP_RNDN to MPFR_RNDN. 10033 10034 Cleanup and fixes for the mpz_t pool. 10035 * Split src/free_cache.c to itself and a new source file src/pool.c 10036 containing pool related code. 10037 * src/mpfr-impl.h, src/pool.c: cleanup and fixes. In particular: 10038 - renamed MPFR_MY_MPZ_INIT to MPFR_POOL_NENTRIES; 10039 - no longer use GMP's symbols __gmpz_init, etc. directly; 10040 - improved the condition for mpfr_mpz_init2; 10041 - fixed the condition in mpfr_mpz_clear (we want to consider 10042 the allocated size, not the size of the current number). 10043 * src/Makefile.am: added pool.c. 10044 * src/mpfr.h: added mpfr_free_pool prototype. 10045 * doc/mpfr.texi: updated pool description in "Memory Handling"; 10046 new function mpfr_free_pool. 10047 * doc/README.dev: update due to the rename of MPFR_MY_MPZ_INIT. 10048 * NEWS: better announcement of the mpz_t pool. 10049 10050 [doc/mpfr.texi] Small correction concerning the caches. 10051 10052 [doc/mpfr.texi] More details for mpfr_fpif_export and mpfr_fpif_import. 10053 100542017-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10055 10056 [timings-mpfr.c] test file for measuring timings (added -p option) 10057 100582017-12-06 Vincent Lefèvre <vincent@vinc17.net> 10059 10060 Updated the remaining www.loria.fr URL's. 10061 10062 [doc/algorithms.bib] Updated URL's. 10063 10064 [doc/mpfr.texi] References: typography; updated a URL. 10065 100662017-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10067 10068 [mpfr.texi] updated reference to "Modern Computer Arithmetic" 10069 10070 [free_cache.c] limit the size of objects in the mpz_t pool 10071 100722017-12-06 Vincent Lefèvre <vincent@vinc17.net> 10073 10074 [src/free_cache.c] Added a comment for the mpz_t pool, and a suggestion 10075 for mpfr_mpz_clear so that the pool will not take too much memory while 10076 keeping a possible benefit for very small precision. 10077 100782017-12-05 Vincent Lefèvre <vincent@vinc17.net> 10079 10080 [src/mpfr.h] Made box around code examples for clarity and grep. 10081 10082 [doc/mpfr.texi] For mpfr_fpif_export: the sign of a NaN is stored. 10083 [tests/tfpif.c] Test the sign of NaN (in particular). 10084 10085 [doc/mpfr.texi] Updated references. 10086 10087 [doc/mpfr.texi] Update about 0 of type without signed zeros, as in 10088 mpfr_div_ui. 10089 10090 [doc/mpfr.texi] Document the behavior of mpfr_ui_pow and mpfr_ui_pow_ui 10091 on the integer 0 (0 does not have a sign here). 10092 100932017-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10094 10095 [doc/mini-gmp] added information about result of "make check" 10096 100972017-12-05 Vincent Lefèvre <vincent@vinc17.net> 10098 10099 [src/mpfr-gmp.h] Removed old code for pre-GMP-5 versions. 10100 10101 [src/urandomb.c] Removed an obsolete "#if __MPFR_GMP(5,0,0)" as we now 10102 require GMP 5.0+ and mp_bitcnt_t is also defined by mini-gmp. 10103 10104 [src/mpfr-gmp.h] Removed the code that defined mpn_copyi and mpn_copyd 10105 macros for GMP < 5, since MPFR now requires GMP 5.0+ and these functions 10106 are also defined by mini-gmp (these macros were used by mini-gmp only 10107 because mini-gmp does not define GMP_VERSION). 10108 10109 [src/mpfr-gmp.h] Missing parentheses around parameters in mpn_copyi 10110 and mpn_copyd macro definitions. 10111 101122017-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10113 10114 fixed bug in replacement function for copyi and copyd (found with mini-gmp) 10115 10116 add --disable-shared for mini-gmp (not tested yet with dynamic linking) 10117 101182017-12-05 Vincent Lefèvre <vincent@vinc17.net> 10119 10120 [src/mpfr.h] Explain how to avoid the "... is deprecated" warning when 10121 testing a deprecated function. 10122 10123 [doc/README.dev] Removed a -Wno-error=deprecated-declarations as 10124 the specific warnings are now avoided (r11896). 10125 10126 Disable the "deprecated" attribute of deprecated functions *only* for 10127 the tests of these functions, to avoid the corresponding warnings. 10128 10129 Removed trailing whietespace. 10130 101312017-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10132 10133 fixed compiler warnings with mini-gmp 10134 101352017-12-04 Vincent Lefèvre <vincent@vinc17.net> 10136 10137 Simplified the use of MPFR_USE_FILE since <stdio.h> (<cstdio> for C++) 10138 is unconditionally included. 10139 101402017-12-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10141 10142 make compilation work again (make + make check) with mini-gmp 10143 101442017-12-04 Vincent Lefèvre <vincent@vinc17.net> 10145 10146 Improved portability of the check-gmp-symbols make rule. 10147 10148 [src/fpif.c] Clarification. 10149 10150 [tests] 10151 * tfpif.c: in doit(), also test the negative versions of the numbers. 10152 * tfpif_r1.dat: update. 10153 10154 [src] Update about the internal use of mpfr_get_str. 10155 * get_str.c: updated a comment. 10156 * vasprintf.c: added assertions. 10157 10158 [doc/mpfr.texi] Updated the month. 10159 10160 [src/get_str.c] Corrected a comment. 10161 10162 [doc/mpfr.texi] Update about the memory allocation (added references 10163 to Section "Memory Handling"). 10164 (merged changeset r11632 from the 3.1 branch) 10165 10166 [doc/mpfr.texi] Update for mpfr_get_str: 10167 * Added a texi comment explaining why m+1 (so that if the mpfr_get_str 10168 implementation is improved, we know whether this is still the case). 10169 * Improved the documentation for the case str = null pointer. 10170 101712017-12-03 Vincent Lefèvre <vincent@vinc17.net> 10172 10173 [doc/mpfr.texi] Updated comments about the latest change (r11881). 10174 10175 [doc/mpfr.texi] Typography fixes for TeX (DVI/PS/PDF) in math mode. 10176 * Corrected the use of \lceil and \rceil. 10177 * Added missing @var, including 2 in exponent, as allowed by 10178 texinfo.tex 2017-12-01.13. 10179 * Removed old comments about Texinfo. 10180 10181 [doc/texinfo.tex] Update to the latest version 2017-12-01.13 from 10182 <https://ftp.gnu.org/gnu/texinfo/>. 10183 101842017-12-01 Vincent Lefèvre <vincent@vinc17.net> 10185 10186 [acinclude.m4] In r11876, forgot to define MPFR_WANT_DECIMAL_FLOATS in 10187 the cross-compiling case. 10188 10189 Solved an output issue on AIX due to the use of setbuf() after output 10190 in tversion. Indeed, this is disallowed by ISO C. 10191 * doc/README.dev: added a note about tests_start_mpfr and this issue. 10192 * tests/tests.c: moved test_version() after setbuf(). 10193 * tests/tversion.c: moved tests_start_mpfr() earlier, before any 10194 printf(). 10195 10196 [acinclude.m4] Attempt to fix detection of decimal floats: if _Decimal64 10197 is known but does not work, no longer fail when --enable-decimal-float 10198 has not been used; just disable decimal floats. 10199 10200 [acinclude.m4] Attempt to fix detection of decimal floats (BID was 10201 incorrectly assumed in case of link failure, if ld returned 1, which 10202 was observed on powerpc-ibm-aix7.2.0.0 [gcc119.fsffrance.org]). 10203 10204 [src/fpif.c] Updated comments about the format. 10205 102062017-11-30 Vincent Lefèvre <vincent@vinc17.net> 10207 10208 [doc/README.dev] Typo. 10209 10210 Two fixes for the check-gmp-symbols make rule: 10211 * Use $(COMPILE) instead of $(CC) to get the usual compilation flags 10212 (in particular, the -I flags may be important to find gmp.h and to 10213 get the correct one). 10214 * Run the test only if libmpfr.so exists. 10215 10216 [doc/README.dev] Internal GMP symbols: mention "make check-gmp-symbols". 10217 10218 [NEWS] Mention "make check-gmp-symbols" (experimental). 10219 10220 [INSTALL] Added an optional step "make check-gmp-symbols" to check 10221 that MPFR does not use GMP internal symbols. 10222 10223 Added comment about the check-gmp-symbols make rule (added in r11865). 10224 10225 Added check-gmp-symbols make rule to check that MPFR does not use 10226 GMP internal symbols. 10227 10228 [doc/README.dev] Detailed the note about the list of GMP symbols. 10229 10230 [doc/README.dev] Document how to get the list of GMP symbols used 10231 by MPFR and how to detect GMP internal symbols used by MPFR. 10232 10233 [INSTALL] Added a paragraph about the potential incorrect use of 10234 GMP internals. 10235 102362017-11-29 Vincent Lefèvre <vincent@vinc17.net> 10237 10238 [src/fpif.c] Fixed the sign bug for mpfr_fpif_import. 10239 10240 [tests/tfpif.c] In doit(), before the call to mpfr_fpif_import(), set 10241 the sign of the target to the opposite of the expected sign. Thus, if 10242 mpfr_fpif_import forgets to set the sign, this will be detected. And 10243 a failure actually occurs now! 10244 10245 [tests/tfpif.c] For mpfr_fpif_import, check the precision too. 10246 10247 [doc/mpfr.texi,src/fpif.c] For mpfr_fpif_import, in case of failure, 10248 the argument x is either unchanged or set to NaN, to make sure that 10249 x has valid contents (otherwise this could yield erratic behavior). 10250 10251 [src/fpif.c] For mpfr_fpif_import, replaced an assertion by a failure 10252 (since the full format is not described in the manual and MPFR cannot 10253 currently generate such a case, this is OK). 10254 10255 [tests/tfpif_r1.dat] Fixed an obvious error (incorrect sign of 0). 10256 10257 [tests/tfpif.c] Output more information in case of error. 10258 102592017-11-28 Vincent Lefèvre <vincent@vinc17.net> 10260 10261 [src/fpif.c] Fixed some bugs (though unlikely to occur in practice). 10262 Added comments. Minor code improvement. 10263 10264 Got rid of the useless SIZE_MAX macro. 10265 * src/vasprintf.c: replaced SIZE_MAX by (size_t) -1, already used 10266 in some other files. 10267 * acinclude.m4: no longer use gl_SIZE_MAX (from m4/size_max.m4). 10268 * Removed m4/size_max.m4 as it is no longer needed (note that the 10269 definition of SIZE_MAX by this file was unnecessarily complex 10270 and potentially incorrect on some platforms). 10271 10272 [src/fpif.c] Added static assertions in mpfr_fpif_import(). 10273 10274 [src/fpif.c] Improved a test (mpfr_regular_p → !MPFR_IS_SINGULAR). 10275 10276 [src/mpfr-impl.h] Added a note about the use of the MPFR_IS_PURE_*(x) 10277 and MPFR_IS_SINGULAR*(x) macros. 10278 102792017-11-27 Vincent Lefèvre <vincent@vinc17.net> 10280 10281 [src/fpif.c] Added format description from past mail messages, to be 10282 checked in case of change (+ FIXME for NaN). Minor code improvement. 10283 10284 [tests/tfpif.c] Added TODO's (but the failure should be fixed first). 10285 10286 [src/fpif.c] Clarified sign variable. 10287 10288 [tests/tfpif.c] Use SAME_VAL instead of mpfr_cmp. This triggers a bug 10289 that was not detected yet. 10290 10291 [tests/tfpif.c] Split the main test function into: 10292 * doit(): keep only the tests that depend on the precisions. 10293 * check_bad(): tests for bad file/data; precisions are not involved. 10294 10295 [tests/tfpif.c] Improved a test (NaN checking). Added comments. 10296 10297 [tests/tfpif.c] Removed a TODO done in r10326 and r10338. 10298 10299 Updated autogen.sh so that doc/texinfo.tex isn't replaced. 10300 10301 Added doc/texinfo.tex file from Texinfo 6.5 since the version installed 10302 by Automake (via "autoreconf -i" as called by autogen.sh) is obsolete: 10303 more than 4 years older than the current version! 10304 10305 [doc/mpfr.texi] Updated a comment about a bug in Texinfo. 10306 103072017-11-23 Vincent Lefèvre <vincent@vinc17.net> 10308 10309 [tests/tset_exp.c] Check mpfr_get_exp too (with two additional tests 10310 for mpfr_set_exp). 10311 10312 [tests/texceptions.c] Minor improvements. 10313 10314 [doc/mpfr.texi] For mpfr_get_exp, document that x can be outside of 10315 the current range of acceptable values (this was ambiguous). 10316 103172017-11-21 Vincent Lefèvre <vincent@vinc17.net> 10318 10319 [doc/mpfr.texi] Corrected Texinfo typography issues. 10320 103212017-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10322 10323 added another example where we can have an overflow 10324 10325 added pointer to mpfr_subnormalize 10326 103272017-11-21 Vincent Lefèvre <vincent@vinc17.net> 10328 10329 [doc/mpfr.texi] Major update of "MPFR and the IEEE 754 Standard". 10330 10331 [doc/mpfr.texi] Added "MPFR and the IEEE 754 Standard" to the main menu 10332 as required. Title capitalization. 10333 10334 [doc/mpfr.texi] Correction of a @node. 10335 103362017-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10337 10338 added section "MPFR and the IEEE 754 standard" 10339 103402017-11-20 Vincent Lefèvre <vincent@vinc17.net> 10341 10342 [doc/mpfr.texi] mpfr_can_round: corrected the example; removed 10343 a reference to "ternary value" as there is already one in the 10344 previous sentence; clarification. 10345 10346 [doc/mpfr.texi] Faithful rounding (MPFR_RNDF): 10347 * Document that this feature is experimental and partially supported. 10348 * Update Section "API Compatibility". 10349 Note: the NEWS file was up-to-date. 10350 103512017-11-15 Vincent Lefèvre <vincent@vinc17.net> 10352 10353 [tests/talloc-cache.c] 10354 * Replaced test + abort() by the more informative MPFR_ASSERTN(). 10355 * Also check that the allocator is the current GMP one (this would 10356 fail with MPFR 3.1.6, where the allocation functions are memorized 10357 the first time they are seen). 10358 10359 mpfr_mp_memory_cleanup() now returns an error code (currently always 0) 10360 to avoid a future prototype change in case errors would be possible. 10361 103622017-11-10 Vincent Lefèvre <vincent@vinc17.net> 10363 10364 Cleanup: In src/mpfr-gmp.h, exchanged 10365 mpfr_allocate_func and *__gmp_allocate_func 10366 mpfr_reallocate_func and *__gmp_reallocate_func 10367 mpfr_free_func and *__gmp_free_func 10368 and in the code, replaced *__gmp_{allocate,reallocate,free}_func 10369 by mpfr_{allocate,reallocate,free}_func; updated TODO file. 10370 10371 [doc/mpfr.texi] The sign bit of a NaN is now specified for mpfr_abs, 10372 mpfr_neg and mpfr_set, in order to mimic the IEEE-754 abs, negate 10373 and copy operations. 10374 10375 [tests/tabs.c] More tests on mpfr_abs, including the ternary value 10376 and the NaN flag and sign bit for ±NaN. 10377 10378 [tests/tabs.c] Coding style. 10379 10380 [tests/tset.c] For mpfr_neg on NaN, also check that the variable is 10381 set to NaN and that the ternary value is 0. 10382 10383 [tests/tset.c] More NaN tests for mpfr_set. 10384 10385 [tests/tset.c] More tests of the NaN flag and the sign bit for mpfr_neg 10386 on NaN. 10387 10388 [tests/tset.c] The global variable "error" is better as static. 10389 10390 [tests/tset.c] For mpfr_neg on NaN, check that the sign bit is flipped 10391 in both ways. 10392 10393 [tests] Added talloc-cache to svn:ignore property. 10394 103952017-11-09 Vincent Lefèvre <vincent@vinc17.net> 10396 10397 [tests/tset.c] In the mpfr_neg test on the sign of NaN: 10398 C90 compatibility; improved robustness since as specified, 10399 mpfr_signbit can return any value (not just 0 or 1). 10400 10401 [src/neg.c] Refactored code (BTW, this was not a bug as the sign of NaN 10402 is currently unspecified for mpfr_neg). 10403 104042017-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10405 10406 fixed bug reported by Trevor Spiteri 10407 (https://sympa.inria.fr/sympa/arc/mpfr/2017-11/msg00003.html) 10408 104092017-11-08 Vincent Lefèvre <vincent@vinc17.net> 10410 10411 Change the way memory is allocated (as discussed partly in private). 10412 * src/mpfr-gmp.c, src/mpfr-gmp.h, src/mpfr-impl.h: update. 10413 * src/free_cache.c, src/mpfr.h: added mpfr_mp_memory_cleanup function. 10414 * NEWS: describe API change. 10415 * TODO: added 2 related items (future clean-up and feature). 10416 * doc/mpfr.texi: update. 10417 * tests/talloc-cache.c: take API change into account. 10418 104192017-11-07 Vincent Lefèvre <vincent@vinc17.net> 10420 10421 [doc/mpfr.texi] Updated Section "Compatibility With MPF". 10422 10423 [doc/mpfr.texi] Removed a paragraph from r2962 concerning mpf2mpfr.h 10424 and mpf_init / mpf_init2: since r2985, the mpf_init / mpf_init2 macros 10425 initialize to 0 like MPF, so that users shouldn't see differences from 10426 MPF. 10427 104282017-11-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10429 10430 added reference 10431 104322017-11-07 Vincent Lefèvre <vincent@vinc17.net> 10433 10434 [src/mpfr.h] Formatting. 10435 10436 [src/mpfr.h] mpfr_free_cache_t: added comments to show that these are 10437 flags. 10438 10439 [doc/mpfr.texi] Updated mpfr_free_cache / mpfr_free_cache2 description. 10440 10441 [src/free_cache.c] Minor portability improvement for mpfr_free_cache2 10442 to accept way = 0 (no effect on two's complement machines). 10443 104442017-11-06 Vincent Lefèvre <vincent@vinc17.net> 10445 10446 [tests] 10447 * tests.c: for test programs that use GMP's mp_set_memory_functions, 10448 tests_rand_start and tests_rand_end also need to be disabled; to do 10449 that, require that tests_memory_disabled be set to 2 in this case 10450 (the value 1 is already used for the use with mini-gmp, where only 10451 tests_memory_start and tests_memory_end need to be disabled). 10452 * talloc-cache.c: call tests_start_mpfr and tests_end_mpfr as usual, 10453 with tests_memory_disabled set to 2. 10454 10455 [doc/mpfr.texi] Updated the month. 10456 10457 [doc/mpfr.texi] Minor change. 10458 10459 [doc/mpfr.texi] + explicit information on pools (in addition to caches). 10460 10461 [NEWS,doc/mpfr.texi] mpfr_free_cache2 is a new function in MPFR 4.0, 10462 as a consequence of shared caches for multithreaded applications. 10463 10464 [src/free_cache.c] GNU coding style. 10465 10466 [tests] 10467 * Makefile.am: added talloc-cache to check_PROGRAMS. 10468 * talloc-cache.c: improved the test allocators so that an incorrect 10469 use is detected by this code instead of relying on the C library 10470 checking bad use of malloc/realloc/free (which was UB). 10471 NOTE: The test currently fails in the trunk due to the mpz_t pool. 10472 But anyway, the memory allocation method will change soon. 10473 10474 [tests/talloc-cache.c] Corrected indentation. 10475 104762017-10-30 Vincent Lefèvre <vincent@vinc17.net> 10477 10478 [doc/mpfr.texi] Improved the mpfr_nexttoward description w.r.t. flags. 10479 104802017-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10481 10482 added note about mpfr_beta 10483 104842017-10-26 Vincent Lefèvre <vincent@vinc17.net> 10485 10486 [NEWS,doc/mpfr.texi] mpfr_beta is incomplete, experimental. 10487 See <https://sympa.inria.fr/sympa/arc/mpfr/2017-10/msg00007.html>. 10488 104892017-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10490 10491 added functions from C++17 10492 104932017-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10494 10495 fixed typo 10496 104972017-10-11 Vincent Lefèvre <vincent@vinc17.net> 10498 10499 [src/get_float128.c] Fixed failure in mpfr_get_float128 when called with 10500 a very reduced exponent range. 10501 [tests/tset_float128.c] Also test mpfr_get_float128 in reduced exponent 10502 range (triggering a failure before the fix). 10503 105042017-10-10 Vincent Lefèvre <vincent@vinc17.net> 10505 10506 [doc/README.dev] "To make a release": + Check the generic code. 10507 105082017-10-09 Vincent Lefèvre <vincent@vinc17.net> 10509 10510 [src/get_ld.c] Fixed the generic code when called with a very reduced 10511 exponent range. The tset_ld failure could be triggered on x86 by running 10512 "./configure ... mpfr_cv_c_long_double_format=unknown". 10513 10514 [tests/tset_ld.c] Also test mpfr_get_ld in reduced exponent range 10515 (no failures on x86). 10516 10517 [src/get_z.c] Fixed failure in mpfr_get_z when called with a very 10518 reduced exponent range. 10519 [tests/tget_z.c] Added tests in the various rounding modes (triggering 10520 a failure before the above fix). Also call check_one() on an integer 10521 congruent to 1 mod 4 (useful to check even rounding). Fixed 2 issues 10522 in the error message (for inex and the flags). 10523 10524 [tests/tget_z.c] Also test mpfr_get_z in reduced exponent range 10525 (no failures though its code seems incorrect). 10526 105272017-10-06 Vincent Lefèvre <vincent@vinc17.net> 10528 10529 [src/{get_si.c,get_sj.c}] Minor improvement, removing an obsolete note 10530 in get_sj.c at the same time. 10531 10532 [src/{get_sj.c,get_uj.c}] Fixed failure in mpfr_get_sj and mpfr_get_uj 10533 when called with a very reduced exponent range. 10534 [tests/tget_sj.c] Added corresponding test cases. 10535 10536 [tests/tset_si.c] Minor correction in error message. 10537 105382017-10-05 Vincent Lefèvre <vincent@vinc17.net> 10539 10540 [TODO] Function multiversioning (FMV): more details. 10541 10542 [TODO] Mention function multiversioning (FMV). 10543 105442017-10-04 Vincent Lefèvre <vincent@vinc17.net> 10545 10546 [src/{get_si.c,get_ui.c}] Fixed failure in mpfr_get_si and mpfr_get_ui 10547 when called with a very reduced exponent range. 10548 10549 [tests/tset_si.c] get_tests: added comments and tests in a reduced 10550 exponent range, which currently trigger an assertion failure. 10551 105522017-10-02 Vincent Lefèvre <vincent@vinc17.net> 10553 10554 [doc/mpfr.texi] Updated the month. 10555 10556 [NEWS] Mention mpfr_dump. 10557 10558 [doc/mpfr.texi] Describe the current output format of mpfr_dump. 10559 10560 [doc/mpfr.texi] Replaced @code by @samp for things that are not 10561 actually code, but parts of character strings. 10562 105632017-09-29 Vincent Lefèvre <vincent@vinc17.net> 10564 10565 [src/dump.c] mpfr_dump now outputs specific info for invalid data. 10566 [tests/toutimpl.c] Added mpfr_dump tests. 10567 10568 [src/dump.c] 10569 * Output the sign even for NaN, since this can be useful information 10570 (the sign of a NaN has an effect with some functions, following 10571 IEEE 754-2008). 10572 * This changes allows one to get rid of the mpfr_fprint_binary 10573 static function at the same time. 10574 10575 [src/{dump.c,print_raw.c}] Updated the description. 10576 105772017-09-29 Vincent Lefèvre <vincent@vinc17.net> 10578 10579 [src] Clean up of debugging output functions: 10580 * Replaced the internal function mpfr_fprint_binary by a new 10581 internal function mpfr_fdump, similar to mpfr_dump, but with 10582 a FILE * argument. 10583 * Got rid of mpfr_print_binary entirely (it became internal in 10584 r2466 for MPFR 2.0.2, released in 2003). 10585 10586 Details: 10587 * print_raw.c: 10588 - moved the mpfr_fprint_binary code to dump.c; 10589 - removed mpfr_print_binary. 10590 * dump.c: 10591 - mpfr_fprint_binary (from print_raw.c) is now defined as static; 10592 - added function mpfr_fdump, using mpfr_fprint_binary; 10593 - mpfr_dump: use mpfr_fdump instead of the old mpfr_print_binary. 10594 * mpfr-impl.h: 10595 - replaced mpfr_fprint_binary declaration by mpfr_fdump; 10596 - removed mpfr_print_binary declaration. 10597 * add1sp.c, mul.c, sub1sp.c: replaced mpfr_fprint_binary by mpfr_fdump 10598 and removed the '\n', now output by mpfr_fdump. 10599 106002017-09-28 Vincent Lefèvre <vincent@vinc17.net> 10601 10602 [tests] Added trootn_ui to svn:ignore property. 10603 106042017-09-20 Vincent Lefèvre <vincent@vinc17.net> 10605 10606 [tests/toutimpl.c] 10607 * Check mpfr_print_mant_binary() too. 10608 * GNU coding style. 10609 10610 [src/print_raw.c] Changes in mpfr_print_mant_binary(): 10611 * Output a ']' when a '[' was output earlier. 10612 * Correction: putchar() takes an int (or unsigned char), not a char. 10613 * GNU coding style. 10614 106152017-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10616 10617 changed .align 64 into .p2align 6 (cf https://trac.sagemath.org/ticket/19233) 10618 106192017-09-15 Vincent Lefèvre <vincent@vinc17.net> 10620 10621 [tests] Solve issues with the incorrect use of mpfr_sgn, and make sure 10622 that this cannot happen again without being detected: on zero, +1 or -1 10623 was sometimes expected to check the sign of zero, but mpfr_sgn actually 10624 returned 0, so that the check always succeeded whatever the sign of the 10625 null result. 10626 * mpfr-test.h: define a new mpfr_sgn macro that fails when used on NaN 10627 or zero (whose sign is not +1 or -1), except when MPFR_TESTS_TSGN is 10628 defined. 10629 * tacos.c, tasin.c, tasinh.c, tatanh.c, tcbrt.c, tdim.c, terf.c, 10630 texp.c, texp10.c, texp2.c, texpm1.c, tset.c, tset_str.c: replaced 10631 the incorrect use of mpfr_sgn; some other related improvements. 10632 Note: in tset.c, a "mpfr_sgn (x) < 0" test had to be replaced by 10633 "MPFR_IS_POS (x)" since we really want to test whether the sign 10634 is positive (not negative). 10635 * tdiv.c, tmul.c, tui_div.c: simplified some tests, in particular to 10636 avoid a failure with the new mpfr_sgn macro for the tests; here, 10637 the use of mpfr_sgn was correct, but one could do simpler. 10638 * tgmpop.c: replaced "mpfr_sgn (z)" by "(mpfr_sgn) (z)" to avoid the 10639 new mpfr_sgn macro (here, we really want the mathematical sign). 10640 * tsgn.c: define MPFR_TESTS_TSGN as the goal of this program is to 10641 test mpfr_sgn itself (both the function and the macro in mpfr.h). 10642 10643 [doc/README.dev] "To make a release": Enhanced step 5 (tarballs). 10644 106452017-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10646 10647 patch to avoid using the system mpfr.h 10648 106492017-09-14 Vincent Lefèvre <vincent@vinc17.net> 10650 10651 [tests/tfms.c] Similar changes to what was done in tfma.c: 10652 * replaced "mpfr_cmp" by "! mpfr_equal_p"; 10653 * code formatting (mainly reindentation); 10654 * use of SAME_SIGN for better clarity. 10655 10656 [tests/tfma.c] Similar change to what was done in tfms.c (may be useful 10657 in the future). 10658 10659 [tests] Got rid of the use of mpfr_print_binary, in general with 10660 mpfr_dump. Replaced some "mpfr_out_str (stdout, 2, ...)" by mpfr_dump 10661 for consistency or as improvements. Some other corrections in the 10662 related error messages. 10663 106642017-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10665 10666 added info about autoconf-archive 10667 106682017-09-14 Vincent Lefèvre <vincent@vinc17.net> 10669 10670 Old, deprecated macros mpfr_add_one_ulp and mpfr_sub_one_ulp removed. 10671 106722017-09-13 Vincent Lefèvre <vincent@vinc17.net> 10673 10674 [tools/mpfrlint] Do the tests_start_mpfr / tests_end_mpfr check only if 10675 the .c file has a main() function; this avoids an error on trootn_ui.c, 10676 which just does a #include. 10677 10678 [tests/troot.c] 10679 * Use mpfr_set_zero instead of mpfr_set_ui / mpfr_neg (like what was 10680 done for the infinity, using mpfr_set_inf). 10681 * For exact cases (NaN, ±Inf, ±0), check that the ternary value is 0. 10682 10683 [tests/troot.c] For the root(±0,k) tests, before calling the function, 10684 we set the target y to NaN with the wrong sign, so that if the code of 10685 the function forgets to do something, this will be detected. 10686 10687 [tests/troot.c] Also check root(+0,42) and root(-0,17) for completeness. 10688 10689 [tests/troot.c] Really check the sign of the result 0 (the old test 10690 was always false, thus useless!). 10691 10692 [doc/mpfr.texi] Updated the month. 10693 10694 New mpfr_rootn_ui function; mpfr_root deprecated. 10695 * src/root.c: mpfr_rootn_ui is now the main code, and mpfr_root calls 10696 mpfr_rootn_ui. 10697 * src/mpfr.h: added mpfr_rootn_ui prototype; marked mpfr_root as 10698 deprecated. 10699 * Added tests/trootn_ui.c (includes troot.c). 10700 * tests/troot.c: made it usable (via #include) by the new trootn_ui.c 10701 test. 10702 * tests/Makefile.am: added trootn_ui; at the same time, corrected the 10703 order of the test programs (lexicographic, with exceptions). 10704 * NEWS, TODO, doc/mpfr.texi: update. 10705 10706 [tests] Avoid duplicate code by defining the MAKE_STR() macro in 10707 mpfr-test.h only instead of tgeneric.c and tversion.c. 10708 107092017-09-08 Vincent Lefèvre <vincent@vinc17.net> 10710 10711 [doc/README.dev] "To make a release": Updated the warning, as the issue 10712 concerns the .ps file only (the .dvi file has no papersize info). 10713 10714 [doc/README.dev] "To make a release": Added a warning to check the 10715 papersize of the generated dvi and ps files, which may be incorrect 10716 (bug in texinfo(?) reported as Debian bug 874632). 10717 10718 Switched other gmplib.org URL's to https. 10719 10720 [doc/mpfr.texi] Updated URL: 10721 http://gmplib.org → https://gmplib.org/ 10722 10723 [doc/mpfr.texi] Updated URL: 10724 ftp://ftp.gnu.org/gnu/mpfr/ → https://ftp.gnu.org/gnu/mpfr/ 10725 10726 [tools/announce-text] Switched to https for ftp.gnu.org. 10727 107282017-09-07 Vincent Lefèvre <vincent@vinc17.net> 10729 10730 [doc/README.dev] "To make a release": update about the uploads. 10731 107322017-09-06 Vincent Lefèvre <vincent@vinc17.net> 10733 10734 [NEWS] Completed item on thread-safe DLL (shared library) support. 10735 10736 [src/mpfr-impl.h] Completed the fix in r11713. 10737 10738 [src/mpfr-impl.h] Fixed thread-safe DLL support with ICC and MSVC 10739 on MS Windows without the GMP build directory (r11712 contained 10740 inconsistent function names, yielding "unresolved external symbol" 10741 errors in tabort_defalloc1.obj), second try. 10742 10743 [src] Attempt to fix thread-safe DLL support with ICC and MSVC on 10744 MS Windows without the GMP build directory. See: 10745 https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00009.html 10746 https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00014.html 10747 i.e. for the mpfr_allocate_func, mpfr_reallocate_func & mpfr_free_func 10748 external TLS variables, one does the same thing as what had been done 10749 for the other ones (__gmpfr_flags, __gmpfr_emin, __gmpfr_emax, etc.). 10750 10751 [tests] Added tget_q to svn:ignore property. 10752 107532017-09-05 Vincent Lefèvre <vincent@vinc17.net> 10754 10755 [tests/tsprintf.c] With MPFR_CHECK_LIBC_PRINTF, disable the test of 10756 the "'" flag with a non-glibc C library (SUS extension in printf). 10757 In particular, it is not supported by AIX 7.2. 10758 10759 [src/mpfr-impl.h] In case decimal_point and/or thousands_sep are 10760 non-single-byte characters (as found on FreeBSD 11 in fr_FR.UTF-8), 10761 revert to the default value. Added a FIXME to support multibyte 10762 decimal_point and thousands_sep. 10763 10764 [tests/tsprintf.c] Formatting. 10765 10766 [doc/README.dev] Added a paragraph about temporary result files created 10767 by test programs. 10768 10769 [tests/Makefile.am] Added tfpif_rw.dat to CLEANFILES. 10770 10771 [tests] Renamed mpfrtest.txt, mpfrtest.dat and mpfrtest2.dat to 10772 tfpif_rw.dat, tfpif_r1.dat and tfpif_r2.dat respectively. 10773 10774 [tests] 10775 * toutimpl.c: Changed the filename of the result file like what 10776 has been done in other test programs, to make sure that it will 10777 not be reused by mistake. Removed comments about tmpname (which 10778 does not exist). 10779 * Makefile.am: Added this filename to CLEANFILES (even though the 10780 file is removed by the test program, an error could occur before 10781 its actual removal). 10782 10783 [tests] 10784 * tfprintf.c, tout_str.c, tprintf.c: Do not use the same filename 10785 for result files created in these test programs, as this breaks 10786 parallel tests (note that such files are used only if /dev/null 10787 does not work, so that Unix-like systems were not affected). 10788 This should fix the bug reported in 10789 https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00000.html 10790 as said in 10791 https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00005.html 10792 * Makefile.am: added a CLEANFILES line with these files. 10793 107942017-09-01 Vincent Lefèvre <vincent@vinc17.net> 10795 10796 [tests/turandom.c] Added test_underflow(). 10797 (merged changesets r11691-11694 from the 3.1 branch) 10798 107992017-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10800 10801 update 10802 10803 updated for mpfr-3.1.6-rc1 10804 108052017-08-28 Vincent Lefèvre <vincent@vinc17.net> 10806 10807 [tools/mpfrlint] Run tools/ck-version-info. 10808 10809 [tools/mpfrlint] Updated a message due to the change in r11673. 10810 10811 [doc/README.dev] "To make a release": The DLL version may need to be 10812 updated too. 10813 10814 [configure.ac] Added a comment about the DLL version. 10815 10816 [configure.ac] Updated DLL version to 6 (cur - age). 10817 10818 [tools/{ck-copyright-notice,ck-inits-clears}] Ignore Emacs lock files 10819 (symbolic links) to avoid a failure when a file is being edited. 10820 10821 [tools] Clean up. 10822 * Renamed check_inits_clears to ck-inits-clears (the other "check" 10823 scripts have a name starting with "ck-"). 10824 * mpfrlint: updated the invocation of this test, simplifying it to 10825 make it similar to the other ones (it was based on old code). 10826 108272017-08-27 Vincent Lefèvre <vincent@vinc17.net> 10828 10829 [tests/turandom.c] Disabled the reprod_abi test with GMP < 4.2.0 10830 since the hardcoded values would be different. 10831 108322017-08-25 Vincent Lefèvre <vincent@vinc17.net> 10833 10834 [src/mpfr-impl.h] Replaced 10835 (MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),0) 10836 by 10837 (MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),MPFR_ASSUME(expr),0) 10838 as a workaround to the fact that mpfr_assert_fail is not marked as 10839 "no return" (bug 21415). Thus, after this code, expr must be true. 10840 10841 [tests/turandom.c] Check that the behavior does not depend on the 10842 platform ABI or MPFR version. 10843 10844 [tests/turandom.c] Corrected error messages after r11661. 10845 10846 [tests/turandom.c] Renamed "reprod" to "reprod_rnd_exp" (reproducibility 10847 test with several rounding modes and exponent ranges), because a second 10848 reproducibility test will be added. 10849 10850 [tests/turandom.c] 10851 * In underflow_tests, test the flags in all cases (not just when the 10852 returned result is 0), possibly by first computing the result in a 10853 large exponent range. 10854 * Since the flags are now well tested in underflow_tests, no longer 10855 test them in the second test of test_urandom for k = 0, which was 10856 the incorrect test that was failing (see r11659). 10857 10858 [tests/turandom.c] Do some test several times in order to trigger 10859 a "mpfr_urandom() returns incorrect flags for emin = 1" failure 10860 when GMP_CHECK_RANDOMIZE is not set (default). 10861 Note: It is this test that is actually wrong (it corresponds to the 10862 old behavior, currently found in the 3.1 branch, and was not updated 10863 after the mpfr_urandom code was fixed). 10864 10865 [tests/turandom.c] Code formatting. Added an assertion. 10866 108672017-08-24 Vincent Lefèvre <vincent@vinc17.net> 10868 10869 [tests/turandom.c] Check that the behavior of mpfr_urandom() does not 10870 depend on the rounding mode. 10871 10872 [doc/mpfr.texi] Completed the description of mpfr_urandom. 10873 10874 [src/urandom.c] Completed comment. 10875 108762017-08-23 Vincent Lefèvre <vincent@vinc17.net> 10877 10878 [tests/turandom.c] In bug20170123, use a local gmp_randstate_t variable 10879 instead of mpfr_rands, due to the gmp_randseed_ui (see r11653). 10880 10881 [tools/mpfrlint] Detect the use of gmp_randseed* functions on mpfr_rands 10882 (this is bad practice: this would affect later tests, defeating the 10883 purpose of GMP_CHECK_RANDOMIZE; another gmp_randstate_t variable should 10884 be used instead of mpfr_rands). 10885 10886 [tests/{mpfr-test.h,tests.c}] Got rid of __gmp_randstate_struct, which 10887 is internal to GMP: its use came from very old code (r2330 in 2003-06) 10888 and it is no longer needed. 10889 10890 [tests/turandom.c] Disabled a test with GMP < 4.2.0 since it depends on 10891 a specific behavior of the random generator, which changed in GMP 4.2.0 10892 (the test would probably fail with such old GMP versions). 10893 10894 [src/urandom.c] Partly rewrote mpfr_urandom() so that the next 10895 random state no longer depends on the current exponent range 10896 and the rounding mode, and that the exceptions due to the 10897 rounding of the random number are now correctly generated. 10898 [doc/mpfr.texi] Updated the mpfr_urandom() documentation and 10899 updated Section "API Compatibility / Changed Functions" to 10900 mention the change in MPFR 4.0. 10901 [NEWS] Mentioned the change for MPFR 4.0. 10902 109032017-08-22 Vincent Lefèvre <vincent@vinc17.net> 10904 10905 [src/urandom.c] Minor change about underflow, following the usage. 10906 10907 [tests/turandom.c] Added inex test for the underflow & overflow tests. 10908 10909 [tests/turandom.c] Added overflow tests. 10910 10911 [tests/turandom.c] Indentation. 10912 10913 [tests/turandom.c] Added underflow tests. 10914 10915 [tests/turandom.c] With mini-gmp, omit another test that assumes 10916 a deterministic random generator. 10917 10918 [src/urandom.c] Bug fix: the inexact flag was not set on underflow. 10919 10920 [tests/turandom.c] Added tests of the flags. This currently yields 10921 a failure (inexact flag not set on underflow). 10922 10923 [tests/turandom.c] Added a test of the underflow flag. 10924 109252017-08-21 Vincent Lefèvre <vincent@vinc17.net> 10926 10927 [src/urandom.c] Set the underflow flag if the drawn exponent is less 10928 than emin. This corresponds to "underflow before rounding" while the 10929 normal rule in MPFR is "underflow after rounding". Thus this needs to 10930 be fixed. 10931 Note: This simple change has been done so that it can be merged with 10932 the 3.1 branch. But this will not be fixable in the 3.1 branch since 10933 the significand is not drawn in this case, and drawing the significand 10934 to determine whether there is an underflow would change the state of 10935 the PRNG at the end of the function, breaking the ABI and the users' 10936 expectations. 10937 10938 [src/urandom.c] Updated comments about overflow and its flag. 10939 10940 [src/urandom.c] Simplified the code, but, except for precision 1, 10941 without changing the state of the PRNG. 10942 Note: The code could be simplified even further, but the goal of the 10943 current change is to allow it to be merged with the 3.1 branch (where 10944 precision 1 is not supported) without too many conflicts. 10945 10946 [src/urandom.c] Moved some code without consequences. Updated comments. 10947 10948 [src/urandom.c] Useless parentheses; reformatting. 10949 109502017-08-17 Vincent Lefèvre <vincent@vinc17.net> 10951 10952 [src/set_float128.c] No longer depend on the native FP type "double" 10953 (via mpfr_set_d), avoiding the usual precision issues with the x87 10954 traditional FPU in particular. Use the internal representation with 10955 limbs, instead. The code is simpler and should also be faster. 10956 Note: together with r11627, this avoids the tset_float128 failure 10957 with the "-m32 -mpc32" GCC options. 10958 10959 [src/get_float128.c] Removed variable z (no longer useful). 10960 10961 [src/get_float128.c] No longer depend on the native FP type "double" 10962 (via mpfr_get_d), avoiding the usual precision issues with the x87 10963 traditional FPU in particular. Use the internal representation with 10964 limbs, instead. The code is simpler and should also be faster. 10965 109662017-08-14 Vincent Lefèvre <vincent@vinc17.net> 10967 10968 [src/get_float128.c] Fixed the remaining cases of mpfr_get_float128 10969 (when the value is below the smallest subnormal in absolute value). 10970 10971 [src/get_float128.c] Partly fixed mpfr_get_float128 when it underflows. 10972 [tests/tset_float128.c] Added tests for small values, in particular 10973 involving underflows (and subnormals). 10974 109752017-08-13 Vincent Lefèvre <vincent@vinc17.net> 10976 10977 [src/get_float128.c] Reverted r11623 (a note mainly for the 3.1 branch, 10978 which actually doesn't support __float128). 10979 109802017-08-12 Vincent Lefèvre <vincent@vinc17.net> 10981 10982 [src/get_float128.c] Updated the FIXME. 10983 109842017-08-08 Vincent Lefèvre <vincent@vinc17.net> 10985 10986 [src/get_float128.c] Added a FIXME after a bug report by Rob: 10987 https://sympa.inria.fr/sympa/arc/mpfr/2017-08/msg00003.html 10988 109892017-08-03 Vincent Lefèvre <vincent@vinc17.net> 10990 10991 [doc/mpfr.texi] Section "Getting the Best Efficiency Out of MPFR" moved 10992 from "Installing MPFR" to "MPFR Basics". Added corresponding node. 10993 109942017-08-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 10995 10996 new section "How to get the best out of MPFR" 10997 109982017-08-03 Vincent Lefèvre <vincent@vinc17.net> 10999 11000 [doc/mpfr.texi] Added a FIXME about memory allocation. 11001 11002 [doc/mpfr.texi] Updated the month. 11003 11004 [doc/mpfr.texi] Removed obsolete comments. 11005 11006 [doc/mpfr.texi] Updated paragraph on the MPFR formatted output functions 11007 and overflow on the return type int. 11008 110092017-08-02 Vincent Lefèvre <vincent@vinc17.net> 11010 11011 [NEWS] Mention the use of the old dtags under Linux (see r11588). 11012 11013 [src] Moved mpfr_vasprintf from vasprintf.c to printf.c and updated 11014 file descriptions for consistency (vasprintf.c should probably be 11015 renamed later to something like printf_aux.c). 11016 11017 [src/printf.c] Updated a comment (taking r11269 into account). 11018 11019 [src/vasprintf.c] Added an assertion. 11020 11021 [src/vasprintf.c] Completed mpfr_vasnprintf_aux description. 11022 110232017-08-01 Vincent Lefèvre <vincent@vinc17.net> 11024 11025 [tests/{tstdint.c,tvalist.c}] Include "mpfr-test.h" instead of 11026 "mpfr-impl.h" (this is done only when compiling with mini-gmp). 11027 11028 [tools/mpfrlint] Detect "mpfr-impl.h" inclusion by the test programs: 11029 "mpfr-test.h" should be included instead; otherwise __MPFR_WITHIN_MPFR 11030 will be defined, yielding failures under MS Windows with DLL. 11031 110322017-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11033 11034 fixed typo 11035 110362017-07-28 Vincent Lefèvre <vincent@vinc17.net> 11037 11038 [doc/mpfr.texi] Added important details for the example from r11595. 11039 110402017-07-27 Vincent Lefèvre <vincent@vinc17.net> 11041 11042 [doc/mpfr.texi] Minor changes. 11043 11044 [doc/mpfr.texi] Updated the month. 11045 110462017-07-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11047 11048 fixed FIXME related to r11595 11049 110502017-07-27 Vincent Lefèvre <vincent@vinc17.net> 11051 11052 [doc/mpfr.texi] Added FIXME on example from r11595. 11053 110542017-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11055 11056 [mpfr.texi] added example showing how to emulate fixed-point arithmetic 11057 110582017-07-17 Vincent Lefèvre <vincent@vinc17.net> 11059 11060 [src/sin_cos.c] Avoid integer overflows with precision 1100000 and 11061 the 32-bit ABI (32-bit long), fixing bug reported by Simon Byrne: 11062 https://sympa.inria.fr/sympa/arc/mpfr/2017-07/msg00002.html 11063 11064 [tests] Re-indented some RND_LOOP / RND_LOOP_NO_RNDF blocks. 11065 11066 [configure.ac] Under Linux, make sure that the old dtags are used 11067 if LD_LIBRARY_PATH is defined, avoiding the following issue: 11068 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732 11069 https://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html 11070 (merged changeset r11587 from the 3.1 branch) 11071 110722017-07-10 Vincent Lefèvre <vincent@vinc17.net> 11073 11074 [tests/tversion.c] Forgot casts for printf in r11585. 11075 11076 [tests/tversion.c] Added ABI information & tests. 11077 110782017-06-20 Vincent Lefèvre <vincent@vinc17.net> 11079 11080 [src/subnormal.c] Correction in comment (English). 11081 110822017-06-19 Vincent Lefèvre <vincent@vinc17.net> 11083 11084 [tests/tversion.c] 11085 * Better organization; moved MPFR patches info below MPFR version. 11086 * Output __GMP_CC and __GMP_CFLAGS values. 11087 * Output GMP ABI info (to be completed with MPFR ABI info). 11088 110892017-06-03 Vincent Lefèvre <vincent@vinc17.net> 11090 11091 [configure.ac] Improved some AC_DEFINE comments. 11092 11093 [doc/README.dev] Added quotes for clarity. 11094 11095 [tests/mpf_compat.h] Always use stdout for failure messages. 11096 11097 [src/get_str.c] Improved comments (avoid the confusion between a 11098 negative base argument and a negative base). 11099 111002017-06-02 Vincent Lefèvre <vincent@vinc17.net> 11101 11102 [doc/mpfr.texi] Punctuation. 11103 111042017-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11105 11106 added mpfr_get_q in Added Functions 11107 11108 src/get_str.c: fixed for negative base 11109 tests/tget_str.c: added tests for negative base 11110 11111 tests/mpf_compat.h: non-regression tests for bugs fixed in revision 11565 11112 11113 src/get_str.c: allow -36 <= b <= -2 too (work in progress) with the same 11114 meaning as in mpf_get_str 11115 11116 fixed a bug in mpfr_mul for RNDF when Mulders' algorithm is used 11117 (and resolved a FIXME) 11118 111192017-06-02 Vincent Lefèvre <vincent@vinc17.net> 11120 11121 [doc/mpfr.texi] Corrected mpfr_get_q documentation. 11122 11123 [src/get_q.c] Added assertions to detect integer overflows, in case 11124 mpfr_exp_t is larger than mp_bitcnt_t. 11125 111262017-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11127 11128 src/mpf2mpfr.h: replaced __MPFR_GMP (requires internal mpfr-gmp.h) 11129 11130 src/mpf2mpfr.h: fixed fits_s* functions and get_si 11131 11132 use macro __MPFR_GMP 11133 11134 added new function mpfr_get_q 11135 11136 src/mpf2mpfr.h: added mpf_cmp_z (appeared in GMP 6.1.0) 11137 111382017-06-01 Vincent Lefèvre <vincent@vinc17.net> 11139 11140 [Makefile.am] Put doc/README.dev in EXTRA_DIST to provide this file in 11141 tarballs too (it is not installed by "make install", though), since 11142 it contains information that may be useful for users of tarballs and 11143 various distributed files mention it. 11144 [README] Update about the "doc" directory and "doc/README.dev". 11145 11146 [doc/README.dev] More information about the DEBUG macro. 11147 11148 [doc/mpfr.texi] Updated the month. 11149 11150 Update about MPFR_RNDF (faithful rounding): 11151 * NEWS: mention that it is partially supported (should be updated 11152 once MPFR_RNDF is completely supported). 11153 * TODO: moved an item to the right place (MPFR_RNDF is not removed 11154 from the TODO because it is not completely supported yet). 11155 * doc/mpfr.texi: added a FIXME about the partial support. 11156 111572017-05-31 Vincent Lefèvre <vincent@vinc17.net> 11158 11159 [src/{atanh.c,log1p.c}] 11160 * Replaced mpfr_get_exp by MPFR_GET_EXP (so that the exponent is 11161 checked with --enable-assert). 11162 * For a test, doing the division first should be better. 11163 111642017-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11165 11166 improved log1p and atanh for small inputs 11167 11168 added expm1 to mbench 11169 11170 added log1p to mbench 11171 111722017-05-29 Vincent Lefèvre <vincent@vinc17.net> 11173 11174 [doc/mpfr.texi] Updated the month. 11175 11176 Removed trailing spaces. 11177 11178 [tests] Code simplification and improvement by using SAME_VAL(). 11179 11180 [tests/tbeta.c] Replaced not_same() by the simpler ! SAME_VAL(). 11181 11182 [src/sum.c] Code reindentation due to a new test for MPFR_RNDF support, 11183 and other minor changes in formatting and comments. 11184 11185 [doc/sum.txt] Typo in the MPFR_RNDF text. 11186 11187 Merged the "faithful" branch into the trunk: 11188 faithful rounding (MPFR_RNDF). 11189 11190 [tests/tgeneric.c] For MPFR_RNDF, replaced EQUAL() by SAME_VAL(), 11191 which also tests the sign (to distinguish +0 and -0). 11192 11193 [tests/tui_sub.c] Avoid a failure in 32-bit ABI by replacing 11194 RND_LOOP by RND_LOOP_NO_RNDF. 11195 11196 Merged the latest changes from the trunk. 11197 111982017-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11199 11200 added new reference 11201 112022017-05-24 Vincent Lefèvre <vincent@vinc17.net> 11203 11204 [tests/tsprintf.c] Fixed setlocale usage (problem detected with MinGW) 11205 by not using the returned string any longer. Indeed, ISO C99 says that 11206 this string "may be overwritten by a subsequent call to the setlocale 11207 function". 11208 11209 [src] Moved "#include <errno.h>" from printf.c to vasprintf.c 11210 (this should have been done in r5230, where EOVERFLOW was moved). 11211 This fixes the "Got r = -1, errno = 0" errors in tprintf with 11212 MPFR_CHECK_LARGEMEM=1. 11213 11214 [src/vasprintf.c] Added overflow detection at the end (due to the switch 11215 to mpfr_intmax_t for the string length in the string_buffer structure, 11216 it was no longer detected; however, this bug was not normally visible in 11217 the tests because here, a negative value was returned thanks to wrapping 11218 in a type conversion and the negative value was changed to the expected 11219 -1 value in printf.c). 11220 11221 [src/vasprintf.c] Added log messages. 11222 11223 [src/vasprintf.c] In case of overflow, do not stop before everything has 11224 been processed, allowing the %...n arguments to be filled, as decided. 11225 11226 [tests/tprintf.c] check_long_string() error handling: initialize n2 to 11227 an invalid value and do all tests before exiting. 11228 11229 [src/vasprintf.c] Fixed some parts of overflow tracking. 11230 11231 [tests/tprintf.c] More detailed error message. 11232 11233 [tests/tprintf.c] Added tests with %ln. 11234 11235 [tests/tprintf.c] Improved check_vprintf_failure(). 11236 11237 [src/vasprintf.c] Fixed the handling of the 'n' format specifier 11238 for size = 0, still allowing its support in case of overflow on 11239 the return value (i.e. when the number of characters that would 11240 have been output is > INT_MAX). 11241 Note: full support in case of overflow is still limited by GMP 11242 and the C library. 11243 [tests/tprintf.c] Increased the memory needed in check_long_string(). 11244 112452017-05-23 Vincent Lefèvre <vincent@vinc17.net> 11246 11247 [src/mpfr-intmax.h] Define mpfr_uintmax_t and MPFR_INTMAX_MAX too. 11248 However, this will not necessarily be used by src/vasprintf.c, as 11249 this can be regarded as an EOVERFLOW error for which the behavior 11250 on the %...n values is not specified, i.e. we may not need to 11251 support size values larger than INT_MAX. 11252 112532017-05-22 Vincent Lefèvre <vincent@vinc17.net> 11254 11255 [src/vasprintf.c] In a macro definition, changed a parameter to 11256 lowercase so that it doesn't look like a constant to mpfrlint. 11257 11258 [src/vasprintf.c] Added a FIXME for the percent_n() / mixed() bug due 11259 to the 'n' format specifier with size = 0. The way to fix this issue 11260 depends on the specifications in case of overflow on the return value, 11261 and for POSIX, they are unclear. Waiting for comments... 11262 11263 [src/mpfr-intmax.h] Define mpfr_intmax_t as being the largest 11264 signed integer type available for the MPFR build. It will be 11265 useful for the formatted output functions (src/vasprintf.c) to 11266 handle the 'n' format specifier, assuming that the value may 11267 be larger than INT_MAX, which is possible assuming that the 11268 C standard has a defect in the corresponding specification: 11269 https://sourceware.org/bugzilla/show_bug.cgi?id=21360 11270 11271 [tests/tsprintf.c] Added explanation for the bugs triggered by 11272 percent_n() and mixed(). 11273 11274 [tests/tsprintf.c] Added percent_n() test to reproduce the bug found 11275 in mixed(), test without random data. 11276 11277 [src/vasprintf.c] In partition_number(), complete check for overflow 11278 on total. 11279 11280 [src/vasprintf.c] Partially fixed check for integer overflow when 11281 the long and int types have the same size. 11282 11283 [src/vasprintf.c] With assertions enabled, check that the number of 11284 characters to be written computed in partition_number() corresponds 11285 to what is really written. 11286 11287 [src/vasprintf.c] Fixed the bug triggered by the da_DK locale test: the 11288 computation of the number of characters to be written was incorrect in 11289 partition_number() when the thousands separator was not empty. This bug 11290 was visible with size = 0 and could be visible near overflow on the 11291 number of characters. 11292 Note: the buggy code was introduced in r5288 (2008-02-15), which fixed 11293 other issues with the thousands separator. 11294 11295 [tests/tsprintf.c] Do more tests in the da_DK locale (these are the 11296 only tests for which the thousands separator is not empty). 11297 11298 [tests/tsprintf.c] Do more tests involving check_sprintf() in a loop 11299 (to test mpfr_snprintf with size = 0 more often), and call mixed() 11300 later in order to get failures without the use of %n first. 11301 113022017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11303 11304 get rid of computations with 'double' in mpfr_zeta 11305 113062017-05-19 Vincent Lefèvre <vincent@vinc17.net> 11307 11308 [tests/tsprintf.c] Added a TODO about %n test. 11309 11310 [doc/README.dev] Added MPFR_TESTS_FPE_TRAP documentation. 11311 11312 [tests/tests.c] Corrected comment about MPFR_TESTS_FPE_TRAP. 11313 11314 Renamed MPFR_TESTS_DIVBYZERO to MPFR_TESTS_FPE_DIV (less confusing). 11315 In doc/README.dev, updated the corresponding description. 11316 11317 [tests] Renamed MPFR_RAISE_EXCEPTIONS to MPFR_TESTS_FPE_TRAP. 11318 11319 [tests] Got rid of MPFR_TESTS_EXCEPTIONS (added in r11489 and above), 11320 which is redundant with MPFR_TESTS_DIVBYZERO and MPFR_ERRDIVZERO. The 11321 code related to these exceptions is now like r11488 (see the output of 11322 "svn diff -r11488"), but keeping the following changes: 11323 * Missing !defined(MPFR_ERRDIVZERO) tests added in r11498,11499. 11324 * In tests.c: 11325 - code related to traps (macro MPFR_RAISE_EXCEPTIONS, which will 11326 be renamed); 11327 - more detailed output about which FP exceptions occurred; 11328 - removal of "#ifdef MPFR_ERRDIVZERO" (as in r11493), as this is 11329 better with Automake 1.13+ (required by MPFR since r9375). 11330 Note: EXCEPTIONS_FLAG renamed to FPE_FLAGS, since EXCEPTIONS_FLAG is 11331 reserved by ISO C when <errno.h> is included. 11332 11333 [tests/tsprintf.c] Do the locale_da_DK() test several times to yield 11334 a failure by default once the bug triggered by mixed() is fixed. 11335 11336 [tests/tsprintf.c] Updated comment about r11501: the failure occurs 11337 with %n when the size argument of mpfr_vsnprintf is 0. 11338 11339 [tests/tsprintf.c] Do more tests with %n. One now gets a failure 11340 by default (which occurs when one gets randsize <= 0). 11341 11342 [tests/tsprintf.c] Fixed portability issues: The va_end(3) man page 11343 of Linux Programmer's Manual says: "On some systems, va_end contains 11344 a closing '}' matching a '{' in va_start, so that both macros must 11345 occur in the same function, and in a way that allows this." 11346 11347 [tests/tget_set_d64.c] Disable tests with a division by 0 (which now 11348 occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined. 11349 11350 [tests/tset_ld.c] Disable an overflow test with a division by 0 11351 (now occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined. 11352 11353 [doc/README.dev] Details for "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO". 11354 11355 [tests/tsprintf.c] In mixed(), initialize n2 to an invalid value 11356 in order to ease failure analysis. 11357 113582017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11359 11360 removed leftover debug statement in last commit 11361 11362 fix for clang bug (https://bugs.llvm.org//show_bug.cgi?id=17686) 11363 113642017-05-19 Vincent Lefèvre <vincent@vinc17.net> 11365 11366 [tests/tests.c] Change for MPFR_TESTS_DIVBYZERO: in case of FE_DIVBYZERO 11367 or FE_INVALID, fail unconditionally, not just when MPFR_ERRDIVZERO is 11368 defined, otherwise one cannot see the output about the floating-point 11369 exceptions with "make check" (the test of MPFR_ERRDIVZERO here should 11370 have been removed after switching to Automake 1.13, which discards the 11371 output when the test program succeeds). 11372 Note: defining MPFR_TESTS_DIVBYZERO without MPFR_ERRDIVZERO is just for 11373 debugging. 11374 113752017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11376 11377 more work on MPFR_TESTS_EXCEPTIONS 11378 113792017-05-19 Vincent Lefèvre <vincent@vinc17.net> 11380 11381 [tests/tests.c] Re-added code testing FE_DIVBYZERO and FE_INVALID with 11382 -DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO, because MPFR_TESTS_EXCEPTIONS 11383 is not ready yet. 11384 11385 [tests/tversion.c] Output IEEE floats status. 11386 113872017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11388 11389 check for fp exceptions (experimental) 11390 113912017-05-17 Vincent Lefèvre <vincent@vinc17.net> 11392 11393 [src/cmp2.c] Added/updated comments. 11394 11395 [tests/tcmp2.c] Added tests with equal numbers, possibly of different 11396 sizes. 11397 11398 [src/cmp2.c] Corrected comments. 11399 11400 [tools/mpfrlint] In the detection of reserved macro names, skip ERR 11401 from src/mpfr-gmp.h (this is a special case). 11402 11403 [tests/tget_set_d64.c] Made PRINT_ERR_MISC more robust. 11404 11405 [tests/*.c] Renamed the remaining macros whose names are reserved 11406 by ISO C when <errno.h> is included. 11407 114082017-05-16 Vincent Lefèvre <vincent@vinc17.net> 11409 11410 [tests/texceptions.c] Made code formatting consistent. 11411 11412 [tests/*.c] Renamed "ERROR" macro (macro name reserved by ISO C 11413 when <errno.h> is included) to "PRINT_ERROR", and made the macro 11414 more robust. 11415 11416 Define the EXP() macro in src/mpfr-gmp.h only when needed (macro name 11417 reserved by ISO C when <errno.h> is included). 11418 11419 [src/gamma.c] Got rid of the EXPM1_STR macro (macro name reserved 11420 by ISO C when <errno.h> is included), made no longer interesting by 11421 using mpfr_set_str_binary only once and another temporary variable. 11422 At the same time, replaced the usual allocation by a GROUP allocation 11423 (more efficient). 11424 114252017-05-15 Vincent Lefèvre <vincent@vinc17.net> 11426 11427 [tests/tcheck.c] Code reformatting (GNU coding style). 11428 11429 [tests/tcheck.c] Renamed "ERROR" macro (macro name reserved by ISO C 11430 when <errno.h> is included) to "PRINT_ERROR". 11431 11432 Do not define macro names starting with "SIG" (+ uppercase letter) 11433 as they are reserved when <signal.h> is included (ISO C, 7.31.7), 11434 which happens to be the case in tests/tests.c, which also includes 11435 tests/mpfr-test.h and src/mpfr-impl.h indirectly. 11436 * src/mpfr-impl.h, tests/mpfr-test.h: renamed macros: 11437 SIGN → VSIGN 11438 SIGN_RAND → RAND_SIGN 11439 * {src,tests}/*.{c,h}: updated the names in the use of these macros. 11440 11441 [tools/mpfrlint] Added a comment about the definition of reserved 11442 identifiers (in particular, macro names). 11443 11444 [tools/mpfrlint] Detect the definition of reserved macro names. 11445 11446 [src/bernoulli.c] Changed isprime to is_prime in order to avoid obscure 11447 problems if <ctype.h> is added to mpfr-impl.h in the future (or if this 11448 function is made external). See ISO C "Future library directions", 11449 Clause 7.31.2 "Character handling <ctype.h>". 11450 114512017-05-12 Vincent Lefèvre <vincent@vinc17.net> 11452 11453 [src/mpfr-impl.h] Improved comments about assertions and MPFR_ASSUME(). 11454 114552017-05-09 Vincent Lefèvre <vincent@vinc17.net> 11456 11457 [INSTALL] Mention the problem when almost all the tests fails with a 11458 message "Incorrect MPFR version! ...". 11459 11460 Increase the buffer sizes even more, and added a comment. This may 11461 be better in case of quick future changes (possibly for debugging), 11462 without checking carefully. For the tests, optimal code is useless. 11463 114642017-05-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11465 11466 fixed bugs found by gcc 7.1.0 (-Werror=format-overflow=) 11467 [VL] The MPFR code was correct. This is actually a bug in GCC: 11468 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79257 11469 114702017-05-09 Vincent Lefèvre <vincent@vinc17.net> 11471 11472 [doc] Updated FAQ.html with update-faq. 11473 114742017-05-05 Vincent Lefèvre <vincent@vinc17.net> 11475 11476 [tools/mbench/timp.h] Updated TIMP_MEASURE() to handle the case where 11477 the return value is 0: this probably means that timp_overhead was too 11478 large and incorrect. In this case, TIMP_OVERHEAD() is called again to 11479 recompute timp_overhead and the timing is redone. 11480 Note: if we do not call TIMP_OVERHEAD() again, then TIMP_MEASURE() 11481 loops indefinitely, meaning that timp_overhead was really too large. 11482 11483 [tools/mbench/timp.h] Comment at the wrong place. Fixed. 11484 11485 [tools/mbench/timp.h] Added a comment about r11458. 11486 114872017-05-04 Vincent Lefèvre <vincent@vinc17.net> 11488 11489 [tools/mbench/timp.h] Fixed overflows on unsigned arithmetic. 11490 11491 [tools/mbench/mfv5.h] Increased values from 2^60-1 to 2^64-1 11492 (it is possible to get more than 2^60-1 cycles in practice!). 11493 11494 Merged the latest changes from the trunk, including some old changesets 11495 related to mpfr_zeta that were skipped, resolving conflicts. Added RNDF 11496 support to new code introduced by this merge: 11497 * mpfr_mul_1n in src/mul.c (from r11281); 11498 * mpfr_sqr_1n in src/sqr.c (from r11283); 11499 * mpfr_div_1n in src/div.c (from r11284); 11500 * mpfr_sqrt1n in src/sqrt.c (from r11293). 11501 11502 Merged r11198-11280 from the trunk; no conflicts but additional changes: 11503 * About r11271 (src/add1sp.c), which introduces new special code 11504 (function mpfr_add1sp1n), handle MPFR_RNDF in the same way as done 11505 in similar existing special code (mpfr_add1sp1 and mpfr_add1sp2). 11506 * In mpfr_add1sp3, do the same thing (this should have been done in 11507 r11172, where this function was introduced via a merge). 11508 * About r11279 (src/sub1sp.c, tests/tsub1sp.c), which introduces new 11509 special code (function mpfr_sub1sp1n), do the same thing. 11510 In tests/tsub1sp.c, s/RND_LOOP/RND_LOOP_NO_RNDF/ as usual to avoid 11511 a failure. 11512 * Note: concerning mpfr_sub1sp3, RNDF support was added at the same 11513 time of the merge in r11179. 11514 * Some style changes related to RNDF, in particular for consistency. 11515 11516 Merged r11197 from the trunk, resolving the conflict. 11517 11518 Merged r11179-11196 from the trunk (no conflicts). 11519 115202017-05-02 Vincent Lefèvre <vincent@vinc17.net> 11521 11522 [src/gamma.c] Clarified proof for tiny arguments again. 11523 11524 [src/gamma.c] Clarified proof for tiny arguments. 11525 11526 [src/gamma.c] In the proof for tiny arguments: 11527 * Simplification suggested by Paul. 11528 * Attempt to clarify the end. 11529 115302017-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11531 11532 added comment 11533 11534 added reference for mbench (rdtsc vs rdtscp) 11535 115362017-04-28 Vincent Lefèvre <vincent@vinc17.net> 11537 11538 [src/gamma.c] Tiny arguments: corrected a typo and added a TODO 11539 (one might get a better condition). 11540 11541 [src/gamma.c] Corrections in a proof for tiny arguments. Added a TODO. 11542 115432017-04-27 Vincent Lefèvre <vincent@vinc17.net> 11544 11545 [doc/README.dev] Update about the MPFR_GENERIC_ABI macro. 11546 11547 [src/sqr.c] Corrected a comment. 11548 11549 [src/sqrt.c] Blank line like in add1sp.c, sub1sp.c, etc. 11550 11551 [src/sqr.c] Blank lines and comment like in add1sp.c, sub1sp.c, etc. 11552 11553 [src/mul.c] Like in add1sp.c and sub1sp.c, do not define the specific 11554 functions for low precision if MPFR_GENERIC_ABI is defined (they are 11555 not called in such a case). 11556 11557 [src/sub1sp.c] Added blank lines for readability (like in add1sp.c). 11558 11559 s/interruption/interrupt/ 11560 11561 [mbench] Updated copyright years. Added a comment. 11562 115632017-04-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11564 11565 better detection of rdtscp 11566 115672017-04-18 Vincent Lefèvre <vincent@vinc17.net> 11568 11569 [src/mpfr-impl.h] Updated a comment, with reference to GCC bug 80454. 11570 115712017-04-09 Vincent Lefèvre <vincent@vinc17.net> 11572 11573 [tests/tprintf.c] Avoid integer overflow from r11411 with 32-bit long. 11574 115752017-04-07 Vincent Lefèvre <vincent@vinc17.net> 11576 11577 [tools/mpfrlint] Updated test to check that the snprintf function (C99) 11578 is not used. 11579 11580 [doc/mpfr.texi] Corrected an English error. 11581 11582 [src/vasprintf.c] Fixed bug triggered by the test added in r11428: 11583 the size field of struct printf_spec must have type size_t, not int, 11584 because the size argument of mpfr_snprintf has type size_t. 11585 11586 [tests/tsprintf.c] Added a test that fails on 64-bit machines 11587 (4-byte int, 8-byte size_t), due to the use of mpfr_snprintf 11588 with required size = (size_t) UINT_MAX + 1. 11589 11590 [src/vasprintf.c] Minor changes. 11591 11592 [src/vasprintf.c] Comment re-indentation. 11593 11594 [src/ubf.c] Renamed mpfr_get_zexp to mpfr_init_get_zexp for clarity. 11595 115962017-04-06 Vincent Lefèvre <vincent@vinc17.net> 11597 11598 [src/mpfr-impl.h] Fixed silly typo in MPFR_UBF_CLEAR_EXP() yielding 11599 either an obscure memory leak or a crash in some mpfr_fmma calls. 11600 We would really need formal proofs on the code... Or avoid macros. 11601 116022017-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11603 11604 [tests/tfmma.c] added one test 11605 11606 [tests/tfmma.c] fixed test 11607 116082017-04-06 Vincent Lefèvre <vincent@vinc17.net> 11609 11610 [src/add1.c] Updated comment about underflow. 11611 11612 [src/add1.c] Handling of UBF and overflow/underflow. 11613 * Added a MPFR_ASSERTD related to the overflow code. 11614 * Bug fix: handle underflow, possible if UBF input(s). 11615 116162017-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11617 11618 [tests/tfmma.c] added another test (currently fails) 11619 116202017-04-06 Vincent Lefèvre <vincent@vinc17.net> 11621 11622 [src/sub1.c] Bug fix: underflow was not detected in the case cancel = 0 11623 with UBF numbers. At the same time, refactored the related code a bit. 11624 11625 [tests] Added tbeta to svn:ignore property. 11626 11627 [doc/mpfr.texi] Formatting of the mpfr_can_round example for 80-column 11628 terminals + GNU coding style. 11629 11630 [tests/tfmma.c] Updated comment about bug20170405 (fixed in r11414). 11631 11632 [src/sub1.c] Also corrected the comment about overflow detection. 11633 11634 [src/sub1.c] Really fixed overflow detection (r11412 is broken). 11635 11636 [src/sub1.c] Fixed/improved UBF cases. 11637 * Added an assertion (usual MPFR limitation with huge precisions, 11638 affecting 32-bit ABI only in practice). 11639 * Fixed overflow detection. 11640 11641 [tests/tprintf.c] In check_long_string(), which is called when 11642 MPFR_CHECK_LARGEMEM is defined, increase tests_memory_limit if need be 11643 in order to avoid an obvious failure due to insufficient memory. 11644 11645 [tests/memory.c] Write all error messages to stderr in order to make 11646 sure that they remain visible when the standard output is redirected 11647 (e.g. in tprintf). Rewrote the messages in a consistent way. 11648 11649 [tests/tfmma.c] Fixed return type of test added in r11407. 11650 11651 [tests/tinits.c] When MPFR_CHECK_LARGEMEM is defined, increase 11652 tests_memory_limit if need be in order to avoid an obvious failure 11653 due to insufficient memory. 11654 116552017-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11656 11657 added test that triggers an error 11658 (see https://sympa.inria.fr/sympa/arc/mpfr/2017-04/msg00016.html) 11659 116602017-04-05 Vincent Lefèvre <vincent@vinc17.net> 11661 11662 [doc/mpfr.texi] Updated the month. 11663 11664 [doc/mpfr.texi] More details about errno. 11665 116662017-04-04 Vincent Lefèvre <vincent@vinc17.net> 11667 11668 [doc/README.dev] Added a paragraph about the use of errno. 11669 11670 [doc/mpfr.texi] Details about EOVERFLOW. 11671 116722017-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11673 11674 [tests/tstrtofr.c] added test in bug20161217() 11675 116762017-04-03 Vincent Lefèvre <vincent@vinc17.net> 11677 11678 [TODO] Update about functions returning a native floating-point value 11679 and underflow/overflow. 11680 11681 [src/atanh.c] Removed comment giving the "optimal" working precision 11682 (I do not see any proof in algorithms.tex, and it seems incorrect). 11683 11684 [TODO,src/log1p.c] log1p(x) on small x should also be improved instead 11685 of computing log(1+x). 11686 11687 [TODO,src/atanh.c] Suggest a faster formula for atanh(x) on small x. 11688 11689 [src/atanh.c] Cosmetic changes (comments and whitespace). 11690 11691 [TODO] Update about ERANGE. 11692 116932017-03-27 Vincent Lefèvre <vincent@vinc17.net> 11694 11695 [tests/tbeta.c] Fixed a macro (use of mpfr_printf, missing cast). 11696 116972017-03-09 Vincent Lefèvre <vincent@vinc17.net> 11698 11699 [NEWS] Mention how to find the full list of bug fixes. 11700 11701 [tests/tstrtofr.c] Updated comments about bug20161217 and bug20170308. 11702 11703 [tests/tstrtofr.c] Added comments about bug20161217 and bug20170308. 11704 11705 [tests/tstrtofr.c] Updated comment: bug20170308 checks the same bug 11706 as bug20161217. 11707 11708 [doc/mpfr.texi] Updated the month. 11709 117102017-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11711 11712 added non-regression test 11713 117142017-03-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11715 11716 [doc/mpfr.texi] results should not depend on machine rounding mode/precision 11717 117182017-03-06 Vincent Lefèvre <vincent@vinc17.net> 11719 11720 [doc/sum.txt] Minor corrections. 11721 117222017-03-05 Vincent Lefèvre <vincent@vinc17.net> 11723 11724 [src/sum.c] Added a comment about shiftq. 11725 117262017-02-28 Vincent Lefèvre <vincent@vinc17.net> 11727 11728 [tests/tbeta.c] C89 compatibility and some code reformatting. 11729 11730 [src/beta.c] Slightly improved comments. 11731 11732 [src/beta.c] Fixed a bug in reduced exponent range (not detected by 11733 the current tests). 11734 11735 [src/beta.c] Added a comment for Beta(0,negative integer). 11736 11737 [src/beta.c] Eventually fixed the case z or w is 0 (note: r11374 11738 did also other unwanted changes, reverted here). 11739 11740 [src/beta.c] Reverted my changes (this was incorrect). 11741 11742 [src/beta.c] Fixed special cases. 11743 11744 [src/beta.c] Added comments and some corrections (incomplete) for the 11745 case "z or w is 0". 11746 117472017-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11748 11749 [src/beta.c] fixed case z or w is 0 11750 11751 [tests/tbeta.c] patch from Cade Brown 11752 - signed zeros are checked in is_same 11753 - the case above (summing non-integer negative z, w which sum to a negative integer) 11754 117552017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11756 11757 [doc/mpfr.texi] added mpfr_beta in "Added Functions" 11758 117592017-02-27 Vincent Lefèvre <vincent@vinc17.net> 11760 11761 [src/jn.c] Use MPFR_ADD_PREC. 11762 11763 [src/beta.c] Updated comments; added a FIXME. 11764 117652017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11766 11767 [src/jn.c] in case the first Ziv loop failed, take into account the number of 11768 lost bits 11769 117702017-02-27 Vincent Lefèvre <vincent@vinc17.net> 11771 11772 [src/beta.c] Use MPFR_ARE_SINGULAR. 11773 117742017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11775 11776 [src/beta.c] fix in case z and w are not integers and z+w is a nonpositive integer 11777 11778 [src/odd_p.c] new source file 11779 11780 [src/Makefile.am] new file odd_p.c 11781 [src/beta.c] fixed bug 11782 [src/mpfr-impl.h] renamed mpfr_is_odd into mpfr_odd_p 11783 [src/pow.c] moved mpfr_is_odd (renamed mpfr_odd_p) into separate file 11784 117852017-02-27 Vincent Lefèvre <vincent@vinc17.net> 11786 11787 [src/beta.c] Added a FIXME (test failure with assertions). 11788 11789 [src/beta.c] Removed an unusual space. 11790 11791 [tests/tbuildopt.c] Added calls to tests_start_mpfr and tests_end_mpfr. 11792 11793 [tools/mpfrlint] Added a test to check that the usual test programs 11794 call tests_start_mpfr and tests_end_mpfr. 11795 117962017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11797 11798 [src/beta.c] several fixes 11799 [src/pow.c] renamed is_odd to mpfr_is_odd, and export it 11800 [src/mpfr-impl.h] export mpfr_is_odd as internal function 11801 [tests/tbeta.c] added generic tests 11802 118032017-02-27 Vincent Lefèvre <vincent@vinc17.net> 11804 11805 [tests/tbeta.c] Added missing void in prototype. 11806 11807 Removed trailing spaces. 11808 11809 [tests/tbeta.c] Fixed the usage of MPFR types. 11810 11811 [tests/tbeta.c] Minor correction. Added a FIXME and a TODO. 11812 118132017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11814 11815 [tests/tbeta.c] GNU style and C89 portability 11816 11817 [TODO] removed beta entry 11818 11819 new function mpfr_beta 11820 11821 [tests/tbeta.c] test file for mpfr_beta, contributed by Cade Brown from 11822 ChemicalDevelopment (this commit is the file as it was 11823 contributed, except the mpfr-test.h include) 11824 118252017-02-27 Vincent Lefèvre <vincent@vinc17.net> 11826 11827 [src/beta.c] Portability corrections. 11828 118292017-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11830 11831 [src/beta.c] fix for exact case beta(1,2^k) for k negative integer 11832 11833 [src/beta.c] special values are now implemented (should be reviewed) 11834 118352017-02-25 Vincent Lefèvre <vincent@vinc17.net> 11836 11837 [TODO] mpfr_root: replace "obsolete" by "deprecated" (the right word). 11838 11839 [TODO] Update about rootn. 11840 11841 [TODO] Added some propositions about rootn. 11842 118432017-02-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11844 11845 [src/root.c] added comment 11846 11847 added reference 11848 118492017-02-23 Vincent Lefèvre <vincent@vinc17.net> 11850 11851 [src/beta.c] Call mpfr_check_range as usual. 11852 11853 [src/beta.c] Extended the exponent range for the generic case. 11854 11855 [src/beta.c] Added a comment. 11856 11857 [src/beta.c] Various code improvement / fixes. 11858 11859 [src/beta.c] Added a FIXME. 11860 118612017-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11862 11863 [src/beta.c] added beta function (work in progress, not yet fully implemented, 11864 and not tested) 11865 118662017-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11867 11868 [src/fmma.c] speedup of mpfr_fmma and mpfr_fmms 11869 11870 [src/fma.c] speedup of mpfr_fma when all operands have the same precision 11871 (less than one full limb) 11872 118732017-02-21 Vincent Lefèvre <vincent@vinc17.net> 11874 11875 [NEWS] Note that the position of "const" in the mpfr_sum prototype 11876 has been fixed (in case writers of interfaces for MPFR use that). 11877 11878 "a IEEE 754r decimal64 float" → "an IEEE 754-2008 decimal64 float". 11879 118802017-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11881 11882 [src/fma.c] speedup mpfr_fma for 1 limb 11883 11884 754R -> 754-2008 11885 118862017-02-20 Vincent Lefèvre <vincent@vinc17.net> 11887 11888 Removed trailing spaces. 11889 11890 [src/vasprintf.c] Solved the FIXME for %g on easy cases. 11891 118922017-02-17 Vincent Lefèvre <vincent@vinc17.net> 11893 11894 [src/zeta.c] mpfr_reflection_overflow: reverted r11322 as the rounding 11895 direction was correct; it was a comment that was incorrect, now fixed. 11896 11897 [src/zeta.c] mpfr_reflection_overflow: fixed a rounding direction. 11898 11899 [src/zeta.c] Improvements of mpfr_reflection_overflow: 11900 * Moved identical parts of the code at the beginning of if/else blocks 11901 as a single part before the "if". 11902 * When the rounding mode doesn't matter (exact result), use MPFR_RNDN. 11903 * Updated comments (making them more consistent at the same time). 11904 119052017-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11906 11907 [src/zeta.c] added more comments for the overflow case 11908 119092017-02-14 Vincent Lefèvre <vincent@vinc17.net> 11910 11911 [src/sum.c] Added a note about why one uses "const mpfr_ptr *x" in the 11912 prototypes instead of "const mpfr_srcptr *x" (old info from r5381). 11913 [doc/sum.txt] Fixed the const position (see r11316) and added this note. 11914 11915 [src/{mpfr-impl.h,mpfr.h}] Code reformatting and other cosmetic changes. 11916 11917 [doc/mpfr.texi] For mpfr_sum, changed "mpfr_ptr const" to the equivalent 11918 "const mpfr_ptr" (usual style, less confusing). 11919 11920 For mpfr_sum and its auxiliary functions, moved the const type qualifier 11921 to the right place (mpfr_ptr *const → const mpfr_ptr *). This bug had 11922 been introduced in r3642 (2005-06-10). 11923 119242017-02-13 Vincent Lefèvre <vincent@vinc17.net> 11925 11926 [src/zeta.c] mpfr_reflection_overflow: added comments and FIXME's; 11927 fixed obvious typos in a comment and the code. 11928 11929 [src/zeta.c] mpfr_reflection_overflow: typo in a comment. 11930 11931 [src/zeta.c] Untabified. 11932 11933 [src/zeta.c] mpfr_reflection_overflow: added an assertion and a comment. 11934 11935 [src/vasprintf.c] Added a comment in a FIXME. 11936 11937 [src/vasprintf.c] Added MPFR_ASSERTD's. 11938 11939 [src/vasprintf.c] Avoid some potential integer overflows. 11940 119412017-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11942 11943 [src/zeta.c] improved overflow detection 11944 119452017-02-13 Vincent Lefèvre <vincent@vinc17.net> 11946 11947 [src/vasprintf.c] Added FIXME's: possible integer overflows. 11948 119492017-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11950 11951 fix for mpfr_zeta overflow on 32-bit computers 11952 119532017-02-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11954 11955 [src/sqr.c] revert detection of leading bit in sqr_1 and sqr_2 11956 (not clear it is faster) 11957 119582017-02-10 Vincent Lefèvre <vincent@vinc17.net> 11959 11960 [tests/tsprintf.c] Added a mpfr_snprintf test with a null pointer, 11961 "%#.*RDg" and a large precision (it currently takes too much memory, 11962 like the similar ones). 11963 11964 [src/vasprintf.c] Added a FIXME for %g on easy cases (too much memory). 11965 [tests/tsprintf.c] Added corresponding tests. 11966 119672017-02-09 Vincent Lefèvre <vincent@vinc17.net> 11968 11969 [src/vasprintf.c] Fix for mpfr_snprintf with size=0: do not allocate 11970 a buffer for the output if not needed. This really fixes bug #21056. 11971 The case size_t < unsigned int could not be solved completely due to 11972 limitations from the C standard and GMP. 11973 11974 [src/sqrt.c] Avoid a warning due to an unused variable with 11975 MPFR_GENERIC_ABI defined or GMP_NUMB_BITS != 64. 11976 11977 [src/sqrt.c] Added MPFR_ASSERTD's from comments. 11978 119792017-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11980 11981 [tests/tzeta.c] interm_overflow -> intermediate_overflow 11982 119832017-02-09 Vincent Lefèvre <vincent@vinc17.net> 11984 11985 [src/zeta.c] Updated a FIXME. 11986 119872017-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11988 11989 improved detection of fmma and fmms 11990 11991 [src/zeta.c] fixed long-standing failure in tzeta 11992 119932017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 11994 11995 [src/sqrt.c] fixed a bug, and simplified code (sb=0 implies rb=0) 11996 119972017-02-08 Vincent Lefèvre <vincent@vinc17.net> 11998 11999 [src/vasprintf.c] Updated FIXME. 12000 120012017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12002 12003 [src/sqrt.c] new code for prec=GMP_NUMB_BITS 12004 120052017-02-08 Vincent Lefèvre <vincent@vinc17.net> 12006 12007 [src/vasprintf.c] Moved the size_t vs int FIXME, with details added. 12008 12009 [src/vasprintf.c] Added a MPFR_ASSERTN for security. 12010 12011 [src/vasprintf.c] Added a FIXME for the case size_t < unsigned int. 12012 12013 [src/vasprintf.c] Solved the r11288 FIXME, introducing new ones 12014 with a more visible failure. Not fixed yet because there seems 12015 to be another issue (already present at the beginning in r4993), 12016 which should be considered first. 12017 12018 [src/vasprintf.c] Added a FIXME (related to the cause of the failure). 12019 12020 [src/vasprintf.c] Added some precondition assertions, as the buffer_cat 12021 implementation requires that the current buffer position contains \0. 12022 Note[VL]: tsprintf is still failing with assertions on my machine in 12023 the 32-bit Linux/x86 ABI, but now on the new precondition instead of 12024 postcondition. The behavior with size = 0 actually depends on the state 12025 of uninitialized memory (even in the 64-bit ABI), so that the failures 12026 may be random; the problem is detected by valgrind. 12027 12028 [src/div.c] Declare variables used by GMP_NUMB_BITS == 64 only in the 12029 related code. 12030 120312017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12032 12033 [src/mul.c] simplified logic for special code 12034 [src/div.c] fixed bug in mpfr_div_1n when extra=0 12035 12036 [src/div.c] special code for prec=GMP_NUMB_BITS 12037 12038 [src/sqr.c] new code for p = GMP_NUMB_BITS, and small improvement in mpfr_sqr_1 12039 [src/mul.c] cosmetic changes 12040 120412017-02-08 Vincent Lefèvre <vincent@vinc17.net> 12042 12043 [tests/tsub1sp.c] Fix: C++ compatibility. 12044 120452017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12046 12047 [src/mul.c] added special code for prec=GMP_NUMB_BITS 12048 [src/add1sp.c] use special code only when MPFR_GENERIC_ABI is not defined 12049 [src/sub1sp.c] idem as above 12050 120512017-02-08 Vincent Lefèvre <vincent@vinc17.net> 12052 12053 [src/mpfr-impl.h] Declare the mpfr_vasnprintf_aux prototype (which 12054 uses va_list) only if <stdarg.h> has been included, otherwise the 12055 build was failing with GCC in C90 mode under Linux (and could fail 12056 with other C implementations where this header isn't automatically 12057 included as a consequence of the inclusion of some other header). 12058 120592017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12060 12061 [src/sub1sp.c] new function for p=GMP_NUMB_BITS, fixed bug in mpfr_sub1sp3 12062 [tests/tsub1sp.c] added new tests 12063 120642017-02-08 Vincent Lefèvre <vincent@vinc17.net> 12065 12066 [src/vasprintf.c] Fixed bug introduced in r11273. 12067 12068 [tools/mpfrlint] Updated the "simple mp_limb_t constants" test. 12069 12070 Made some assertions a bit more readable. 12071 12072 [tests/tsub1sp.c] Fixed mpfr_inits2/mpfr_clears sentinel → (mpfr_ptr) 0 12073 12074 [tests/tsprintf.c] C90 compatibility. 12075 120762017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12077 12078 [src/vasprintf.c] avoid memory allocation for snprintf with size=0 12079 12080 [src/sub1sp.c] fixed a bug in mpfr_sub1sp1 and mpfr_sub1sp2 (corner case) 12081 [tests/tsub1sp.c] added non-regression test 12082 120832017-02-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12084 12085 [src/add1sp.c] added special code for p=GMP_NUMB_BITS 12086 12087 [src/vasprintf.c] improved also %a and %e 12088 12089 [src/vasprintf.c] fixed bug #21056 12090 120912017-02-07 Vincent Lefèvre <vincent@vinc17.net> 12092 12093 [TODO] More about the mpz_t pool. 12094 12095 [src/free_cache.c] Better file description (keeping it short). 12096 12097 [src/free_cache.c] Updated comments (mpz_t cache → mpz_t pool). 12098 12099 [doc/mpfr.texi] Updated the month. 12100 12101 [doc/mpfr.texi] Clarified mpfr_asprintf & mpfr_vasprintf specification 12102 in case of error. 12103 12104 [src/vasprintf.c] Code cleanup. 12105 121062017-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12107 12108 partial solution of bug #21056: a test of mpfr_sprintf still fails 12109 12110 [tests/tmul.c] added test for underflow corner case 12111 12112 [src/div.c] simplified underflow in div_1 and div_2 (one case is not possible) 12113 12114 [tests/tsqr.c] added another corner case for underflow and mpfr_sqr_2 12115 12116 [tests/tsqr.c] added a corner underflow case 12117 121182017-02-06 Vincent Lefèvre <vincent@vinc17.net> 12119 12120 [src/mpfr-impl.h] Added missing function prototype after r11256. 12121 121222017-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12123 12124 [mpfr-impl.h] now mpz_init2 uses the mpz spool too 12125 121262017-02-03 Vincent Lefèvre <vincent@vinc17.net> 12127 12128 [TODO] Added: check the small-precision tables in the tests? 12129 12130 Removed trailing whitespace. 12131 12132 [acinclude.m4] Fixed code for the _mulx_u64 test. 12133 121342017-02-02 Vincent Lefèvre <vincent@vinc17.net> 12135 12136 [tests/tversion.c] Output whether _mulx_u64 is available. 12137 12138 [acinclude.m4] Fixed _mulx_u64 detection to avoid failures in tests 12139 with ICC 15: we need an AC_RUN_IFELSE, not just an AC_LINK_IFELSE. 12140 121412017-01-31 Vincent Lefèvre <vincent@vinc17.net> 12142 12143 [src/invsqrt_limb.h] Improved constants: make their meaning explicit; 12144 portability with 32-bit long (and 64-bit limb). 12145 121462017-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12147 12148 [src/invsqrt_limb.h] new macro __gmpfr_sqrt_limb_approx 12149 [src/sqrt.c] new sqrt1 code using __gmpfr_sqrt_limb_approx 12150 121512017-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12152 12153 [src/sqrt.c] improved slow branch of mpfr_sqrt2 12154 12155 [src/div.c] improved slow branch of mpfr_div_2 12156 12157 [src/div.c] fixed TODO: replaced two if-statements by while-loop 12158 121592017-01-30 Vincent Lefèvre <vincent@vinc17.net> 12160 12161 [src/div.c] Added TODO's. 12162 12163 [src/div.c] Added a MPFR_ASSERTD. 12164 121652017-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12166 12167 [src/atan.c] added comment 12168 12169 [src/invsqrt_limb.h] fixed __gmpfr_sqrt_limb macro 12170 12171 [src/atan.c] small optimization 12172 121732017-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12174 12175 [src/atan.c] speedup for small precision 12176 121772017-01-27 Vincent Lefèvre <vincent@vinc17.net> 12178 12179 [src/mul.c] Disable mpfr_mul_{1,2,3} if MPFR_GENERIC_ABI is defined. 12180 12181 [src/mul.c] Removed useless parentheses that can inhibit warnings. 12182 121832017-01-26 Vincent Lefèvre <vincent@vinc17.net> 12184 12185 [src/mul.c] Updated TODO. 12186 12187 [src/mul.c] Added a TODO about an optimization. 12188 121892017-01-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12190 12191 [src/sqrt.c] fixed error bound for mpfr_sqrt2_approx 12192 121932017-01-25 Vincent Lefèvre <vincent@vinc17.net> 12194 12195 [TODO] Added optimization of test + shift for some processors. 12196 12197 [src/sub1sp.c] Added MPFR_FULLSUB code for mpfr_sub1sp2. 12198 121992017-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12200 12201 [src/sqrt.c] changed error bound back from 16 to 15 12202 122032017-01-25 Vincent Lefèvre <vincent@vinc17.net> 12204 12205 [doc/add-with-carry.c] Added reference to my bug report about Clang's 12206 carry detection missed optimization in chained add-with-carry. 12207 122082017-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12209 12210 [src/sqrt.c] updated error bound for __gmpfr_invsqrt_limb_approx 12211 122122017-01-25 Vincent Lefèvre <vincent@vinc17.net> 12213 12214 [src/sub1sp.c] Added refs to missed/broken optimization with Clang/LLVM. 12215 12216 [src/sub1sp.c] Use the FULLSUB only. Added a comment about the change 12217 in r11227. 12218 122192017-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12220 12221 [src/sub1sp.c] changed MPFR_FULLSUB variant into faster code 12222 122232017-01-24 Vincent Lefèvre <vincent@vinc17.net> 12224 12225 [doc/mpfr.texi] Texinfo typography correction. 12226 12227 [doc/mpfr.texi] Improvements concerning the exponent range. 12228 * mpfr_get_exp: added a FIXME in a comment (documented behavior?). 12229 * mpfr_set_emin / mpfr_set_emax: more specification and details. 12230 * mpfr_subnormalize: clarification; added a warning about emin. 12231 * Example of mpfr_subnormalize: added a note. 12232 In particular, this follows a confusion: 12233 https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00024.html 12234 122352017-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12236 12237 [src/invsqrt_limb.h] changed slightly definition of d10 and d37 (does not 12238 change final error analysis) 12239 122402017-01-23 Vincent Lefèvre <vincent@vinc17.net> 12241 12242 [src/sub1sp.c] Updated comments about subtraction with borrow; the first 12243 one from r11213 was incorrect (bad interpretation of the generated code 12244 for GCC, potentially on a different alternate source code for Clang). 12245 122462017-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12247 12248 [src/sub1sp.c] simplified mpfr_sub1sp1() 12249 12250 [tests/turandom.c] added non-regression test 12251 122522017-01-23 Vincent Lefèvre <vincent@vinc17.net> 12253 12254 [src/urandom.c] Added a FIXME as mpfr_urandom does not always set flags. 12255 12256 [src/urandom.c] Simplified code (no changes in the behavior). 12257 122582017-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12259 12260 [src/urandom.c] fixed bug reported by Trevor Spiteri 12261 (https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00020.html) 12262 122632017-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12264 12265 changed mpn_sqr_n into mpn_sqr 12266 122672017-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12268 12269 new version of mpfr_sqrt2_approx (no longer needs sqrt_tab.h) 12270 122712017-01-20 Vincent Lefèvre <vincent@vinc17.net> 12272 12273 [src/sub1sp.c] Updated TODO, mentioning an optimization bug in LLVM. 12274 12275 [src/sub1sp.c] Updated TODO about full subtraction with borrow. 12276 12277 [src/sub1sp.c] Added alternate code (enabled with -DMPFR_FULLSUB, until 12278 fully tested) to replace a test + correction by a 2-limb subtraction, 12279 recognized by GCC and Clang. 12280 122812017-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12282 12283 renamed __gmpfr_invsqrt_limb into __gmpfr_invsqrt_limb_approx to better reflect 12284 it only gives an approximation 12285 122862017-01-20 Vincent Lefèvre <vincent@vinc17.net> 12287 12288 [src/invert_limb.h] Just like for invsqrt_limb.h (r11210), in 1UL << 60, 12289 replaced 1UL by MPFR_LIMB_ONE to make the code valid with 32-bit long. 12290 12291 [src/invsqrt_limb.h] Bug fix: replaced 1UL by MPFR_LIMB_ONE since the 12292 computations are done on limbs, which are expected to have 64 bits in 12293 this context (the old code would fail on MS Windows / MinGW, where limbs 12294 are 64-bit unsigned long long and unsigned long is a 32-bit type). 12295 12296 [src/invsqrt_limb.h] Portability correction: avoid lines longer than the 12297 POSIX line-length limit of 2047 characters; actually fit on 80 columns. 12298 122992017-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12300 12301 faster version of mpfr_sqrt1(), with smaller table 12302 12303 [src/invert_limb.h] improved __gmpfr_invert_limb* for 64-bit limb 12304 123052017-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12306 12307 [src/div.c] use ADD_LIMB macro, and fixed comment 12308 123092017-01-17 Vincent Lefèvre <vincent@vinc17.net> 12310 12311 [acinclude.m4] MPFR_PARSE_DIRECTORY macro definition: workaround if 12312 the realpath command is not found. Suggestion by Trevor Spiteri: 12313 https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00013.html 12314 Note: I had to modify the patch to use quadrigraphs, otherwise the 12315 generated configure file was invalid. 12316 123172017-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12318 12319 [tdiv.c] added code to exercise mpfr_div2_approx 12320 123212017-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12322 12323 [src/div.c] new variant of mpfr_div2_approx() 12324 123252017-01-13 Vincent Lefèvre <vincent@vinc17.net> 12326 12327 [src/invert_limb.h] Fit on 80 columns (one line was over the 12328 POSIX line-length limit of 2047 characters). 12329 12330 [src/invert_limb.h] Correction in __gmpfr_invert_limb for 32-bit ABI: 12331 _d was used before being defined. 12332 123332017-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12334 12335 [invert_limb.h] added invert_limb code for 32-bit 12336 123372017-01-13 Vincent Lefèvre <vincent@vinc17.net> 12338 12339 [src/add1sp.c] Improved a line based on analysis (+ timings I've done 12340 on x86_64 with GCC and Clang give better results, though they cannot 12341 be conclusive since the gain is too small compared to other possible 12342 causes of variations). 12343 12344 [tools/mbench/Makefile] Added -static to CFLAGS in order to avoid 12345 a link error when MPFR has been built with Clang (linking is done 12346 with .a libraries, i.e. static libraries). 12347 12348 [src/add1sp.c] Replaced "return 0;" by "MPFR_RET(0);" to emphasize on 12349 the fact that we return a ternary value (code instrumentation may also 12350 be easier later). Note: this is equivalent since the macro expands to 12351 0 != 0 ? ... : 0, which gives 0 via trivial optimization. 12352 12353 [src/add1sp.c] Improvements in mpfr_add1sp1; added a TODO. 12354 Note for rb -> bp[0]: the generated code is the same, but the source 12355 is more readable (-> rb has only one meaning). 12356 12357 [src/div.c] C90 compatibility (avoid initializer elements not computable 12358 at load time). 12359 123602017-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12361 12362 [src/div.c] added some alternate code for mpfr_div2_approx (disabled for now) 12363 12364 fixed bug in urandomb.c reported by Dominic Chen 12365 (https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00011.html) 12366 and replaced MPN_COPY_INCR/MPN_COPY_DECR by mpn_copyi/mpn_copyd 12367 12368 [src/div.c] small improvement in div_1 and div_2: force all precisions to be 12369 equal, then we cannot have rb <> 0 and sb = 0 12370 12371 [src/div.c] improved case p=127 (or two-limb case with hard to round case) 12372 123732017-01-12 Vincent Lefèvre <vincent@vinc17.net> 12374 12375 [src/add1sp.c] Added a TODO: slightly better code? 12376 123772017-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12378 12379 [src/div.c] improve mpfr_div_1 for precision 63 12380 123812017-01-12 Vincent Lefèvre <vincent@vinc17.net> 12382 12383 [src/rndna.c] Updated comments. 12384 123852017-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12386 12387 [src/sqrt.c] improved mpfr_sqrt2_approx() 12388 123892017-01-12 Vincent Lefèvre <vincent@vinc17.net> 12390 12391 [doc/mpfr.texi] Typographic correction (including generated spaces). 12392 123932017-01-10 Vincent Lefèvre <vincent@vinc17.net> 12394 12395 Improvement of additions with carry. 12396 * Added doc/add-with-carry.c showing how to do an addition with carry 12397 in C (to make the compiler understand the code). 12398 * src/mpfr-impl.h: added ADD_LIMB macro (addition with carry). 12399 * src/sqr.c: use this ADD_LIMB macro to improve the generated code. 12400 124012017-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12402 12403 [src/sqr.c] 2 calls to umul_ppmm are enough in mpfr_sqr_2 in most cases 12404 12405 [src/div.c] added FIXME 12406 [src/sub1sp.c] added comments 12407 12408 [src/sqrt.c] made code coherent with comment 12409 124102017-01-10 Vincent Lefèvre <vincent@vinc17.net> 12411 12412 [src/sqrt.c] Improved comment from r11180. 12413 124142017-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12415 12416 [src/sqrt.c] improved error bound for mpfr_sqrt2_approx, with known direction 12417 of error 12418 124192017-01-10 Vincent Lefèvre <vincent@vinc17.net> 12420 12421 Merged the latest changes from the trunk and added RNDF support 12422 in mpfr_sub1sp3. 12423 12424 [src/sub1sp.c] Fixed other two bugs in special code for 3 limbs. 12425 TODO: non-regression tests should be added for both. 12426 12427 [src/sub1sp.c] Fixed some bugs in special code for 3 limbs. 12428 12429 [src/sub1sp.c] Simplified a test. 12430 124312017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12432 12433 [src/sqr.c] deal with RNDF in sqr_1, sqr_2 and sqr_3 12434 12435 [src/mul.c] deal with RNDF in mpfr_mul_3 12436 12437 [src/sub1sp.c] added special code for 3 limbs 12438 124392017-01-09 Vincent Lefèvre <vincent@vinc17.net> 12440 12441 Merged the latest changes from the trunk. 12442 12443 [src/add1sp.c] Fixed too large shift count in r11170 (code for 3 limbs). 12444 124452017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12446 12447 [src/add1sp.c] added special code for 3 limbs 12448 12449 [src/sqr.c] added special code for 3 limbs 12450 124512017-01-09 Vincent Lefèvre <vincent@vinc17.net> 12452 12453 Merged the latest changes from the trunk (changing a RND_RAND to 12454 RND_RAND_NO_RNDF in order to avoid a failure in a test). 12455 12456 [tests/tsub1sp.c] Fixed a return type. 12457 12458 [doc/README.dev] Updated note added in r11165. 12459 12460 [doc/README.dev] Added a note about cross-compilation and test 12461 under Wine, with references to bugs in autoconf and dash. 12462 124632017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12464 12465 [tests/tmul.c] fixed typo 12466 124672017-01-09 Vincent Lefèvre <vincent@vinc17.net> 12468 12469 [src/round_raw_generic.c] Added MPFR_RNDF special support (seen as 12470 MPFR_RNDZ since this is faster, with *inexp = 0). 12471 124722017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12473 12474 [src/sub1sp.c] fixed bug in mpfr_sub1sp2 when exponent diff. is GMP_NUMB_BITS 12475 [tests/tsub1sp.c] added testcase 12476 124772017-01-09 Vincent Lefèvre <vincent@vinc17.net> 12478 12479 [src/mul.c] Bug fix in mpfr_mul_3; tmul no longer fails (64-bit ABI). 12480 12481 [tests/tmul.c] Added test of mpfr_mul on 1 to 3 limbs. Currently fails. 12482 124832017-01-08 Vincent Lefèvre <vincent@vinc17.net> 12484 12485 [src/mul.c] Define aq = MPFR_GET_PREC (a), and use this. 12486 124872017-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12488 12489 [src/mul.c] added mpfr_mul_3 12490 [src/sqrt.c] renamed internal functions 12491 [src/sub1sp.c] cosmetic change 12492 124932017-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12494 12495 [src/exp.c] avoid using a full limb as precision 12496 [src/sqrt.c] removed obsolete comment 12497 12498 [src/get_str.c] avoid precision = GMP_NUMB_BITS 12499 12500 [src/div_ui.c] added comment 12501 125022017-01-06 Vincent Lefèvre <vincent@vinc17.net> 12503 12504 [tools/mbench/README] Say how to disable a non-working library. 12505 12506 Merged the latest change from the trunk. 12507 125082017-01-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12509 12510 [src/div.c] fixed previous commit: mpfr_div_1 and mpfr_div_2 also work for 12511 GMP_NUMB_BITS <> 64, only some fast code inside is not defined 12512 125132017-01-06 Vincent Lefèvre <vincent@vinc17.net> 12514 12515 Merged the latest changes from the trunk. 12516 125172017-01-05 Vincent Lefèvre <vincent@vinc17.net> 12518 12519 [src/div.c] Use mpfr_limb_ptr instead of mp_ptr. 12520 12521 [src/div.c] Fix for GMP_NUMB_BITS != 64. 12522 125232017-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12524 12525 [src/div.c] faster division for 2 limbs 12526 125272017-01-05 Vincent Lefèvre <vincent@vinc17.net> 12528 12529 [src/div_ui.c] Coding style. 12530 12531 [src/div_ui.c] Simplification. 12532 12533 [src/div_ui.c] Replaced a MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT. 12534 12535 [tests/tdiv_ui.c] Correction for 64-bit limb with 32-bit unsigned long. 12536 12537 [tests/tdiv_ui.c] Fix when GMP_NUMB_BITS != 64. 12538 125392017-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12540 12541 last fix was incomplete 12542 12543 [src/div_ui.c] fixed a bug in mpfr_div_ui (also affects mpfr_div since it calls 12544 mpfr_div_ui when the divisor has a few bits) 12545 12546 fixed underflow bug by replacing !MPFR_IS_LIKE_RNDZ by new macro 12547 MPFR_IS_LIKE_RNDA: for RNDN, !MPFR_IS_LIKE_RNDZ was true, while new macro 12548 MPFR_IS_LIKE_RNDA is false 12549 125502017-01-04 Vincent Lefèvre <vincent@vinc17.net> 12551 12552 [tests/tdiv.c] Added a test that triggers an assertion failure 12553 in a reduced exponent range (found from the generic tests with 12554 GMP_CHECK_RANDOMIZE=1483628702). 12555 12556 [tests/tgeneric.c] Added debug messages for overflow & underflow tests. 12557 12558 [tests/tdiv_ui.c] Added a comment on new test (doesn't fail). 12559 125602017-01-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12561 12562 [tdiv_ui.c] added new test 12563 125642017-01-03 Vincent Lefèvre <vincent@vinc17.net> 12565 12566 [src/invert_limb.h] Removed an unused variable. 12567 125682017-01-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12569 12570 use a macro instead of a function for __gmpfr_invert_limb and 12571 __gmpfr_invert_limb_approx saves 2-3 cycles 12572 125732017-01-01 Vincent Lefèvre <vincent@vinc17.net> 12574 12575 Merged the latest changes from the trunk. 12576 12577 [doc/mpfr.texi] Updated the month. 12578 12579 Copyright notice update: added 2017 with 12580 perl -pi -e 's/ (\d{4}-)?(2016)(?= Free Software)/ 12581 " ".($1||"$2-").($2+1)/e' **/*(^/) 12582 under zsh, reverting the tools/mbench directory (not distributed with 12583 MPFR). Removed 2016 from the example in the doc/README.dev file. 12584 125852016-12-31 Vincent Lefèvre <vincent@vinc17.net> 12586 12587 [src/sqr.c] Bug fixes (portability): replaced left shift of a value 12588 that can be negative by a multiplication by 2. 12589 12590 [src/sqrt.c] C90 compatibility. 12591 12592 [src/div.c] C90 compatibility. 12593 12594 [src/invert_limb.c] Removed unused variable. 12595 125962016-12-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12597 12598 [src/mul.c] small speedup in mpfr_mul_2 by not computing the product b0*c0 12599 12600 [src/mul.c] fixed typo in comment 12601 [src/sqr.c] likewise 12602 12603 [src/mul.c] fixed regression for 1/2 limbs introduced in revision 11098: 12604 critical routines should not be exported, otherwise we lose a few 12605 cycles (maybe they are inlined by the compiler) 12606 12607 [src/div.c] further improvement in mpfr_div_1() 12608 12609 [src/div.c] use an approximate quotient in mpfr_div_1() 12610 12611 [src/div.c] simplify mpfr_div_1() 12612 12613 [src/invert_limb.c] new file for __gmpfr_invert_limb internal function 12614 (only provided so far for 64-bit limb) 12615 [src/div.c] mpfr_div_1 and mpfr_div_2 don't require --enable-gmp-internals 12616 any more 12617 12618 [sqrt_tab.h] better file description 12619 126202016-12-29 Vincent Lefèvre <vincent@vinc17.net> 12621 12622 Improvement concerning the _mulx_u64 intrinsic. 12623 126242016-12-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12625 12626 [src/div.c] replace GMP's invert_limb (internal) by own code 12627 126282016-12-29 Vincent Lefèvre <vincent@vinc17.net> 12629 12630 Merged the latest changes from the trunk. 12631 12632 [src/sqrt.c] Replaced constant MPFR_ASSERTD by MPFR_STAT_STATIC_ASSERT. 12633 126342016-12-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12635 12636 [src/sqr.c] use special code for 1 and 2 limbs 12637 [mbench] added mpfr_sqr 12638 12639 [src/sqrt.c] faster sqrt code for 2 limbs and 64-bit limb (removed special code 12640 for 32-bit limb) 12641 [src/sqrt_tab.h] new table for mpn_sqrtrem4_approx 12642 12643 [tlog.c] missing printf() 12644 126452016-12-27 Vincent Lefèvre <vincent@vinc17.net> 12646 12647 [NEWS] Mention that mpfr_get_str now also sets the inexact flag when 12648 the conversion is inexact (completing r11073). 12649 12650 [mpfr.texi] Be stronger in mpfr_round_nearest_away documentation 12651 (as the ternary value is used each time the last bit on p+1 bits 12652 is not 0, i.e. in about half cases). 12653 126542016-12-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12655 12656 [mpfr.texi] added stuff in mpfr_round_nearest_away documentation 12657 126582016-12-27 Vincent Lefèvre <vincent@vinc17.net> 12659 12660 [src/log.c] Added another FIXME concerning the error analysis. 12661 12662 [src/log.c] Added an assertion and a FIXME: error in the MPFR code or 12663 in the proof (error analysis). 12664 12665 [src/log.c] Slight simplification / improvement. 12666 12667 [doc/algorithms.tex] In Section "The logarithm function" (from r9046), 12668 removed everything concerning the AGM since this is not what is done 12669 in the MPFR code, where mpfr_agm is simply called (and this function 12670 already has its own description later). 12671 Note: The error analysis of mpfr_log can only be found in log.c, but 12672 seems incorrect (though the bounds may be valid); it was introduced 12673 in r416. 12674 126752016-12-26 Vincent Lefèvre <vincent@vinc17.net> 12676 12677 Merged the latest changes from the trunk (this concerns only src/log.c). 12678 12679 [src/log.c] Group constant terms together (GCC takes advantage of this, 12680 at least on x86_64). 12681 12682 [src/log.c] Check for integer overflow (no visible changes in 12683 standard configuration) + explanations. 12684 12685 [src/log.c] Get the exponent of the input only once. 12686 126872016-12-20 Vincent Lefèvre <vincent@vinc17.net> 12688 12689 [doc/sum.txt] Update for faithful rounding (MPFR_RNDF). 12690 12691 [src/sum.c] Fixed the bug mentioned in r11077. 12692 12693 [tests/tsum.c] The new test for MPFR_RNDF in r11079 can actually trigger 12694 a failure; increased the number of tests to get a failure by default. 12695 12696 [tests/tsum.c] Improved a test to support MPFR_RNDF. It doesn't fail, 12697 but would if 0 in "corr = 0" were changed to -1 or 1 (tested). 12698 12699 Removed trailing spaces. 12700 12701 [src/sum.c] Improvement for MPFR_RNDF, but still based on the change 12702 done in r10512, which was incorrect; added a FIXME (a non-regression 12703 test needs to be added first). 12704 12705 Merged the latest changes from the trunk (this concerns only src/sum.c 12706 and will be useful for the upcoming improvement). 12707 12708 [src/sum.c] Delay some assignments so that they are done just before 12709 the variables are used (this should have been done in r10467). 12710 12711 Merged the latest changes from the trunk. 12712 12713 [doc/mpfr.texi] For mpfr_get_str, explicitly say that the inexact flag 12714 is set iff the result is inexact (since this may not be obvious and this 12715 wasn't the case until now). In the compatibility section, mention this 12716 change. 12717 12718 [doc/mpfr.texi] For mpfr_get_str, removed the note saying that 12719 the inexact flag is not set when the conversion is inexact: 12720 this is fixed in r11071. 12721 12722 [src/get_str.c] Corrected a comment and a test for inexactness 12723 (→ the new tget_str.c test no longer fails). 12724 127252016-12-19 Vincent Lefèvre <vincent@vinc17.net> 12726 12727 [tests/tstrtofr.c] Added a comment. 12728 12729 [src/strtofr.c] Better indentation. 12730 12731 [tests/tstrtofr.c] Replaced mpfr_cmp() == 0 by mpfr_equal_p(). 12732 12733 [doc/mpfr.texi] Updated the month. 12734 12735 [src/get_str.c] Removed an obsolete comment, which came from r2757 12736 (and even before, under another form); this comment no longer made 12737 any sense as the sign of dir is no longer tested. 12738 12739 [src/get_str.c] Indentation fixed. 12740 12741 [src/get_str.c] Setting the inexact flag as done in r11060 was incorrect 12742 since the flags are restored. Moreover, this was done even when the Ziv 12743 loop was going to fail (it's not clear whether this was expected). Moved 12744 the test out of the Ziv loop, and update the copy of the flags instead 12745 of the flags that will be overwritten. 12746 Note: this still fails, but now for another reason. 12747 12748 [tests/tget_str.c] Check the inexact flag for mpfr_get_str. 12749 The test currently fails. 12750 127512016-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12752 12753 [get_str.c] inexact flag should now be correct in mpfr_get_str 12754 12755 [strtofr.c] updated comment 12756 127572016-12-18 Vincent Lefèvre <vincent@vinc17.net> 12758 12759 [doc/mpfr.texi] Added a short note about the default precision for Re. 12760 127612016-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12762 12763 [mpfr.texi] added emin in comment about mpfr_round_nearest_away 12764 12765 fixed bug in mpfr_strtofr (and likely similar bug in mpfr_get_str) 12766 127672016-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12768 12769 [tstrtofr.c] added test for bug in mpfr_strtofr() 12770 127712016-12-17 Vincent Lefèvre <vincent@vinc17.net> 12772 12773 [src/sqrt.c] Added "do ... while (0)" in macro definition. 12774 127752016-12-16 Vincent Lefèvre <vincent@vinc17.net> 12776 12777 Removed trailing whitespace. 12778 12779 [src/round_raw_generic.c] Completed the support for MPFR_RNDNA (set 12780 *inexp if use_inexp is true), from a patch by John P. Hartmann. 12781 127822016-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12783 12784 new mpn_sqrtrem4_approx function (unused so far) 12785 127862016-12-15 Vincent Lefèvre <vincent@vinc17.net> 12787 12788 [tests/tsqrt.c] The latest changes made tsqrt fail in an inexact test 12789 on MPFR_RNDF. Fixed by changing RND_RAND to RND_RAND_NO_RNDF. 12790 12791 Merged the latest changes from the trunk. 12792 12793 [src/sin.c] Handled a FIXME. 12794 12795 [src/sqrt_tab.h] Added copyright notice. 12796 127972016-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12798 12799 [sqrt.c] simplify code for GMP_NUMB_BITS = 64 12800 128012016-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12802 12803 better fix than r11025 12804 12805 [sqrt_tab.h] new header file with table for mpn_sqrtrem2_approx() 12806 [sqrt.c] new version of mpn_sqrtrem2_approx() 12807 12808 [sqrt.c] added mathematical error in mpn_sqrtrem2_approx() 12809 12810 added non-regression test for bug fix in r11037 12811 128122016-12-14 Vincent Lefèvre <vincent@vinc17.net> 12813 12814 [src/vasprintf.c] Fixed a bug as spec.prec can be a negative number 12815 other than -1 (if such a value is given as an argument with ".*"). 12816 This is the probable cause of the assertion failure on: 12817 https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21056&group_id=136 12818 128192016-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12820 12821 [sqrt.c] faster version of mpn_sqrtrem2 for 64-bit limb 12822 12823 [sqrt.c] approximate version of mpn_sqrtrem2, saves a few cycles in mpfr_sqrt1 12824 12825 [add/sub] added MPFR_UNLIKELY when adding one ulp changes the binade 12826 128272016-12-12 Vincent Lefèvre <vincent@vinc17.net> 12828 12829 [src/sin.c] Added missing word in r11032 comment. 12830 12831 [src/sin.c] Common/related subexpressions. Added a FIXME. 12832 128332016-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12834 12835 [cos.c,exp_2.c,log.c] improved initial precision for Ziv's strategy 12836 12837 [sin.c] improved strategy for initial precision 12838 12839 [sqrt.c] updated code and comments 12840 12841 [sqrt.c] slightly improve mpn_rsqrtrem1() (and detailed error analysis) 12842 12843 [sqrt.c] removed mpn_sqrtrem1 (no longer needed since r11023) 12844 12845 [sqrt.c] fixed comments to be coherent with the code 12846 12847 fixed https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21053&group_id=136 12848 128492016-12-09 Vincent Lefèvre <vincent@vinc17.net> 12850 12851 [src/sqrt.c] Corrected a comment (1 has exponent 1 and we support 12852 precision 1). 12853 128542016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12855 12856 [sqrt.c] no more special case for prec <= GMP_NUMB_BITS/2, and added comments 12857 128582016-12-09 Vincent Lefèvre <vincent@vinc17.net> 12859 12860 [src/sqrt.c] Bug fix (replaced = by ==). Note: this kind of bug could 12861 be detected by avoiding extra parentheses. 12862 12863 [src] Simplified ~MPFR_LIMB_ZERO to MPFR_LIMB_MAX. 12864 128652016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12866 12867 [div.c] simplified mpfr_div_1 and mpfr_div_2 12868 12869 [div.c] added comments and simplified code 12870 12871 [div.c] simplified code 12872 12873 likewise for mpfr_mul_2() 12874 12875 fixed bug in mpfr_mul_1() introduced in r11004 and added test case 12876 12877 [div.c] simplified underflow test in mpfr_div_1() 12878 128792016-12-09 Vincent Lefèvre <vincent@vinc17.net> 12880 12881 [src/div_ui.c] underflow is unlikely! 12882 12883 [src/sqrt.c] overflow and underflow are unlikely! 12884 128852016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12886 12887 [div.c] overflow and underflow are unlikely! 12888 12889 [div.c] slightly better code (less dependencies) for mpfr_div_1 when u0 >= v0 12890 12891 [div.c] simplified mpfr_div_1() code 12892 12893 [div.c] in mpfr_div_1, do not deal with the case where the precision is 12894 <= GMP_NUMB_BITS/2, to not slow down the general case 12895 128962016-12-09 Vincent Lefèvre <vincent@vinc17.net> 12897 12898 [src/mul.c] Slight improvement (but shouldn't affect the generated code 12899 with an optimizing compiler). 12900 129012016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12902 12903 [mul.c] likewise for mpfr_mul_2() 12904 12905 [mul.c] simplified mpfr_mul_1() 12906 12907 fixed similar bug in mpfr_mul_2() + non-regression test 12908 12909 [mul.c] simplified the code and fixed a bug 12910 [tmul.c] added non-regression test for fixed bug 12911 12912 [sub1sp.c] added comment + assert 12913 129142016-12-09 Vincent Lefèvre <vincent@vinc17.net> 12915 12916 [src] Fixed bug introduced in r10964 with --with-gmp-build: move 12917 the numberof_const() definition from mpfr-gmp.h to mpfr-impl.h. 12918 129192016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12920 12921 [add1sp.c] added comment 12922 12923 [add1sp.c] simplified mpfr_add1sp2() 12924 12925 [sub1sp.c] in mpfr_sub1sp2(), compute a0 before a1 whenever possible 12926 129272016-12-09 Vincent Lefèvre <vincent@vinc17.net> 12928 12929 [tools/mbench/mfv5.cc] Fixed type. 12930 129312016-12-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12932 12933 [mbench] fixed typo 12934 129352016-12-08 Vincent Lefèvre <vincent@vinc17.net> 12936 12937 Replaced two ~0 with mp_limb_t target by MPFR_LIMB_MAX. 12938 12939 [tools/mpfrlint] Added a test detecting code like ~0 (either an error 12940 or poorly written code). 12941 129422016-12-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12943 12944 improved add1sp.c and sub1sp.c like in r10991 12945 12946 [mbench] set default max_exp to 1 (independent of number of bits per limb) 12947 12948 [sub1sp.c] improved further 12949 12950 [mbench] use mpfr_printf to print test numbers 12951 12952 fixed bug in mfv5 (numbers used were 10 times too large) 12953 129542016-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12955 12956 added rounding code for RNDF in special routines for 1 and 2 limbs 12957 12958 [sub1sp.c] corrected a comment, added another one 12959 129602016-12-07 Vincent Lefèvre <vincent@vinc17.net> 12961 12962 [src/add1sp.c] Typo in a comment. 12963 12964 [src/pow.c] Punctuation to make clear that there are 2 sentences. 12965 129662016-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12967 12968 likewise r10983 12969 12970 [add1sp.c] improved a conditional (if compiler is not smart enough) 12971 12972 [exp_2.c] small improvements 12973 129742016-12-07 Vincent Lefèvre <vincent@vinc17.net> 12975 12976 [src/mpfr-impl.h] MPFR_INT_CEIL_LOG2(x) macro: added a FIXME and an 12977 assertion concerning whether x <= ULONG_MAX or not. 12978 12979 [src/pow.c] Added an assertion. 12980 129812016-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12982 12983 [algorithms.tex] fixed typo 12984 12985 [pow.c] tuned starting precision (and removed obsolete comment) 12986 12987 use MPFR_INT_CEIL_LOG2 12988 12989 modified the semantics of mpfr_can_round for rnd2=RNDF 12990 129912016-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 12992 12993 [mfv5] added option -e, for example use -e1 to avoid over/underflow in mpfr_pow 12994 12995 [pow.c] reduced overhead of special cases (gives speedup of a factor of two 12996 for 53 bits of precision) 12997 129982016-12-06 Vincent Lefèvre <vincent@vinc17.net> 12999 13000 Merged the latest changes from the trunk except those related to 13001 mpfr_zeta (it is buggy and not fixed yet in the trunk, but the bug 13002 will not be triggered here, allowing the tests to pass). 13003 130042016-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13005 13006 added mpfr_pow 13007 130082016-12-06 Vincent Lefèvre <vincent@vinc17.net> 13009 13010 [tools/mpfrlint] Correction for zsh change after v5.2 (POSIX compat: 13011 "set -e; f() { false && true; }; f; echo OK" no longer prints OK). 13012 130132016-11-29 Vincent Lefèvre <vincent@vinc17.net> 13014 13015 Check that the numberof() macro is used on an array. 13016 * src/mpfr-gmp.h: define numberof_const() macro, equivalent to the 13017 old numberof() macro: no check, but constant expression; improved 13018 the numberof() macro to check that it is used on an array (since 13019 an array can silently be converted to a pointer in C). Note that 13020 potential failures are currently reported at run time. 13021 * src/mulders.c: replaced numberof by numberof_const in #define's 13022 (also removed a useless cast at the same time). 13023 130242016-11-17 Vincent Lefèvre <vincent@vinc17.net> 13025 13026 [src/set_ld.c,tests/tset_ld.c] Updated comments, in particular 13027 concerning LDBL_MAX. 13028 130292016-11-15 Vincent Lefèvre <vincent@vinc17.net> 13030 13031 [tests/tset_ld.c] Added an overflow test that triggers a bug for 13032 double-double (IBM long double format). See: 13033 https://sympa.inria.fr/sympa/arc/mpfr/2016-11/msg00006.html 13034 13035 [src/get_ld.c] Fixed bugs for double-double (IBM long double format): 13036 * one from r8650, which could yield a spurious assertion failure 13037 in debug mode in case of underflow (with result 0); 13038 * one from r8972, which used the variable sign uninitialized and 13039 could yield a result with an incorrect sign. 13040 13041 [tests/tset_ld.c] Added a missing exit(1). 13042 13043 [tests] _GMP_IEEE_FLOATS was got rid of in r10150, but still used in 13044 the tests, meaning that some tests were no longer done. So, get rid of 13045 _GMP_IEEE_FLOATS also in the tests. Testing !defined(MPFR_ERRDIVZERO) 13046 or defined(HAVE_SIGNEDZ) should be sufficient, depending on the context 13047 (they were already used alone at some other places, so that new failures 13048 are unlikely); anyway, _GMP_IEEE_FLOATS was not the right macro to test. 13049 Only tget_set_d64.c has a specific change to use _MPFR_IEEE_FLOATS. 13050 13051 [src/get_ld.c] For double-double (IBM long double format): test other 13052 special values, as this may be useful. 13053 13054 [src/get_ld.c] For double-double (IBM long double format), the code 13055 was incorrect on large finite values, which are infinite as a double: 13056 (+inf) + (-inf) was computed, which is NaN (thanks to Rob for the 13057 report). Fixed this bug, with code clean up (not tested). 13058 130592016-11-10 Vincent Lefèvre <vincent@vinc17.net> 13060 13061 [INSTALL] Added a note about MinGW and libtool error "libobj name ... 13062 may not contain shell special characters.", with a solution. 13063 130642016-11-09 Vincent Lefèvre <vincent@vinc17.net> 13065 13066 [doc/sum.txt] Final corrections. 13067 13068 [doc/sum.txt] Another correction due to the rewrite for reuse support. 13069 13070 [doc/sum.txt] Correction. 13071 130722016-11-08 Vincent Lefèvre <vincent@vinc17.net> 13073 13074 [src/sum.c] Added a short explanation for halfway cases. 13075 13076 [doc/sum.txt] Improved an example (from my ARITH-23 slides). 13077 13078 [doc/sum.txt] English usage. 13079 130802016-11-07 Vincent Lefèvre <vincent@vinc17.net> 13081 13082 [doc/sum.txt] Explained the handling of halfway cases for sq = 1 13083 (since the explanations for sq ≥ 2 are not valid for sq = 1). 13084 13085 [doc/sum.txt] Minor update. 13086 13087 [doc/sum.txt] Last corrections. Concerning the setting of the sign of 13088 the result, this changed with the support for precision 1 (see r10068). 13089 13090 [doc/sum.txt] Correction (English). 13091 13092 [doc/sum.txt] Correction about neg / sgn. 13093 13094 [doc/sum.txt] Added details about the handling of halfway cases, as 13095 the rule is not obvious due to two's complement representation. 13096 130972016-11-06 Vincent Lefèvre <vincent@vinc17.net> 13098 13099 [src/sum.c] Cosmetic change for consistency between lbit and rbit. 13100 13101 [doc/sum.txt] Minor update. 13102 131032016-11-04 Vincent Lefèvre <vincent@vinc17.net> 13104 13105 [doc/sum.txt] A bit more explanations. 13106 13107 [doc/sum.txt] Corrected the usage of the HYPHEN-MINUS character (-): 13108 * If it is a minus sign, use U+2212 MINUS SIGN (as already done). 13109 * Do not use "-" after the "non" and "pre" prefixes. 13110 13111 [doc/sum.txt] Minor improvement. 13112 131132016-10-27 Vincent Lefèvre <vincent@vinc17.net> 13114 13115 [tools/mpfrlint] Replaced "TZ=UTC" by "TZ=GMT0" for portability. 13116 13117 [doc/sum.txt] Added a note. 13118 13119 [doc/sum.txt] Update for the current code (support of reused arguments); 13120 some other improvements. 13121 13122 [doc/sum.txt] Corrected 2 typos. 13123 13124 [src/sum.c] Changed a MPN_COPY_DECR to MPN_COPY, which may be more 13125 efficient: as of r10464 (support for reused arguments), the memory 13126 used by the accumulator for the TMD resolution is no longer a part 13127 of the main accumulator, so that we now know that the memory blocks 13128 do not overlap. 13129 131302016-10-26 Vincent Lefèvre <vincent@vinc17.net> 13131 13132 [src/sum.c] Corrected a comment from r10503. 13133 13134 [src/sum.c] Moved/rewrote a comment (should have been done in r10467). 13135 131362016-10-25 Vincent Lefèvre <vincent@vinc17.net> 13137 13138 [doc/sum.txt] Started the update for the code supporting reuse. 13139 13140 [src/mpfr-impl.h] Fixed r10916 (thanks to Eli Zaretskii for the report). 13141 131422016-10-24 Vincent Lefèvre <vincent@vinc17.net> 13143 13144 [src/mpfr-impl.h] Improved a macro from r10916 (just in case...). 13145 13146 [src] Support build as thread-safe DLL on Windows: clean-up. 13147 * Increased the use of macros to avoid some code duplication 13148 (with risks of typos) and to prevent the problems related 13149 to thread-safe DLL from appearing in the .c files. 13150 * The prototypes of the functions to access the address of a 13151 TLS variable are now defined. Otherwise one gets warnings: 13152 https://sympa.inria.fr/sympa/arc/mpfr/2016-10/msg00004.html 13153 131542016-10-20 Vincent Lefèvre <vincent@vinc17.net> 13155 13156 [doc/sum.txt] Minor correction and improvement (English). 13157 13158 [doc/sum.txt] "a" → "an" before "additional iteration". 13159 131602016-10-18 Vincent Lefèvre <vincent@vinc17.net> 13161 13162 [src/mpfr-gmp.h] Updated a comment about bit-fields. 13163 131642016-10-17 Vincent Lefèvre <vincent@vinc17.net> 13165 13166 [doc/mpfr.texi] Updated the FIXME concerning the mpfr_can_round 13167 specification with MPFR_RNDF (faithful rounding): after discussion 13168 with PZ, reverted r10909,10910; added a note explaining the choice 13169 done for this specification. 13170 131712016-10-14 Vincent Lefèvre <vincent@vinc17.net> 13172 13173 [doc/mpfr.texi] Another correction of the FIXME concerning the 13174 mpfr_can_round specification with MPFR_RNDF (faithful rounding). 13175 13176 [doc/mpfr.texi] Corrected FIXME concerning the mpfr_can_round 13177 specification with MPFR_RNDF (faithful rounding). 13178 131792016-09-27 Vincent Lefèvre <vincent@vinc17.net> 13180 13181 [src] 13182 * mpfr-impl.h: document the memory allocated for a significand; 13183 added a cast to avoid a direct conversion from mp_limb_t * to 13184 mp_size_t *. 13185 * init2.c, round_prec.c, set_prec.c: code clean-up by correcting 13186 the type expected for the second argument of MPFR_SET_MANT_PTR 13187 (this macro has a cast, so that this should not change anything, 13188 but the old type mpfr_limb_ptr was meaningless and confusing). 13189 131902016-09-23 Vincent Lefèvre <vincent@vinc17.net> 13191 13192 [examples/version.c] For MPFR >= 4, output float128 support info. 13193 13194 [examples/version.c] A bit more output. 13195 13196 [examples/version.c] 13197 * Really support C++ compilers (tested with g++ 6.2.0). 13198 * Output information about the C implementation. 13199 * Detect MPIR (→ output information on MPIR instead of GMP). 13200 13201 [examples/version.c] 13202 * Code simplification: support for MPFR versions less than 3.0 had 13203 already been dropped with the use of MPFR_RNDN. 13204 * For MPFR patches, output "[none]" when there are no patches. 13205 * Output mpfr_ptr size. 13206 132072016-09-21 Vincent Lefèvre <vincent@vinc17.net> 13208 13209 [src/sin_cos.c] Avoid the reuse of variables for two completely 13210 different things (with different orders of magnitude)! Changed types. 13211 13212 [src/exp3.c] Avoid the reuse of variables for two completely different 13213 things (with different orders of magnitude)! Added a cast to avoid a 13214 potential integer overflow (like in r10881). 13215 13216 [src/atan.c] Avoid the reuse of variables for two completely different 13217 things (with different orders of magnitude)! Changed types. 13218 13219 [src/{atan.c,sin_cos.c}] Added casts to avoid potential integer 13220 overflows. Possible issue reported by David Binderman: 13221 https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00029.html 13222 Note: From tests I've done on mpfr_atan, there would be issues with 13223 16-bit int, but for 32-bit int, one could need several hundreds of 13224 billions of bits for the target precision. 13225 13226 [doc/README.dev] "To make a release": updated paragraph about warnings. 13227 13228 [src/mpfr-impl.h] In the MPFR_RET macro, avoid the use of an integer 13229 in a boolean context (even though that this is not wrong in C). Fix 13230 after a bug report from David Binderman. Explanations: 13231 https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00028.html 13232 132332016-09-16 Vincent Lefèvre <vincent@vinc17.net> 13234 13235 [doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a 13236 paragraph on the sin(...) term of the reflection formula. 13237 13238 [doc/algorithms.tex] More work on the Riemann Zeta function. 13239 132402016-09-15 Vincent Lefèvre <vincent@vinc17.net> 13241 13242 [doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a 13243 paragraph briefly describing how the precisions of the variables 13244 will be chosen (this is much more efficient than the current code 13245 when the target precision is much lower than the input precision). 13246 13247 Some improvements / corrections in the description / proof of the 13248 algorithm for the Riemann Zeta function. 13249 * doc/algorithms.tex, section on the Riemann Zeta function: the case 13250 s < 1/2 (reflection formula) is now in a new section, which needs 13251 to be completed (with the detailed algorithm and error analysis); 13252 case "s close to 0" added and now properly proved. 13253 * src/zeta.c: update of the comment for s close to 0 (the brief 13254 explanations were wrong for precision 1, and this was apparently 13255 not checked when we allowed this precision!), adding a reference 13256 to algorithms.tex for details. 13257 132582016-09-14 Vincent Lefèvre <vincent@vinc17.net> 13259 13260 [tools/mpfrlint] In "[[…]]" conditional expressions, replaced "=" 13261 by the preferred (and equivalent) form "==". 13262 Discussion: https://www.zsh.org/mla/workers/2016/msg01711.html 13263 13264 [tests/tdiv.c] Improved code readability (related to r10871). 13265 132662016-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13267 13268 [tests/tdiv.c] improved code (found by David Binderman using cppcheck) 13269 132702016-09-14 Vincent Lefèvre <vincent@vinc17.net> 13271 13272 [tools/announce-text] Use the 64-bit key ID instead of the 32-bit one 13273 since there are known collisions for 32-bit key ID's: 13274 https://evil32.com/ 13275 132762016-09-13 Vincent Lefèvre <vincent@vinc17.net> 13277 13278 [src/zeta.c] Added a FIXME: bug in the error computation due to the 13279 use of the native double C type, which can yield an overflow. 13280 [tests/tzeta.c] Added a corresponding test case, which gives an 13281 assertion failure. 13282 13283 [src/{uceil_log2.c,ufloor_log2.c}] Added "MPFR_ASSERTN (exp < 1023);" 13284 to get an assertion failure on infinities (which do not have an 13285 exponent). 13286 13287 [src/uceil_log2.c] Code style. 13288 13289 [src/ufloor_log2.c] Code style. 13290 13291 [src/zeta.c] Make explicit that we need to use lngamma. 13292 13293 [src/zeta.c] Updated comments on overflows / underflows. 13294 13295 [src/zeta.c] About internal underflows / cancellation: 13296 * Added comments to FIXME's. 13297 * Detect a potential integer overflow with MPFR_ASSERTN. 13298 132992016-09-12 Vincent Lefèvre <vincent@vinc17.net> 13300 13301 [tests/tset_ld.c] Moved a comment. 13302 13303 [tests/tset_ld.c] Fixed print_binary (and no longer any failure with 13304 gcc -mpc64 on x86). 13305 13306 [tests/tset_ld.c] Corrected note in print_binary. 13307 13308 [tests/tset_ld.c] Reverted r10847 (it was incomplete and I was testing 13309 the wrong code). 13310 13311 [tests/tset_ld.c] Fixed print_binary. 13312 13313 [tests/tset_ld.c] Added a FIXME in print_binary, which can yield an 13314 incorrect output and return a wrong precision (causing the failure). 13315 13316 [tests/tset_ld.c] Added a test that triggers a failure with gcc -mpc64 13317 on x86 (64-bit ABI). 13318 13319 [tests/tset_ld.c] Added some tests in case the rounding precision is 13320 smaller than MPFR_LDBL_MANT_DIG (e.g. with gcc -mpc64 on x86). 13321 13322 [tests/tset_ld.c] In print_binary, added an assertion that may fail 13323 with flush-to-zero on underflow (avoiding an infinite loop). 13324 13325 [tests/tset_ld.c] Simplified a condition in print_binary (BTW, the old 13326 condition was based on the fact that the rounding depended only on the 13327 exact result, which may not be the case when rounding is not completely 13328 specified, e.g. with double-double arithmetic like on PowerPC). 13329 13330 [tests/tset_ld.c] Replaced a condition by a simpler, equivalent one. 13331 133322016-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13333 13334 [tests/tset_ld.c] added note 13335 133362016-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13337 13338 [tests/tset_ld.c] get rid of C99-only stuff 13339 133402016-09-09 Vincent Lefèvre <vincent@vinc17.net> 13341 13342 [tests/tset_ld.c] Removed a variable that is no longer used. 13343 13344 [tests/tset_ld.c] FIXME: nextafterl and ilogbl are C99 only. 13345 133462016-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13347 13348 [tests/tset_ld.c] fixed computation of smallest subnormal using nextafterl 13349 13350 [tests/tset_ld.c] added warning 13351 13352 [tests/tset_ld.c] fixed print_binary() for when the rounding precision is less 13353 than the precision of long double 13354 133552016-09-09 Vincent Lefèvre <vincent@vinc17.net> 13356 13357 [src/get_ld.c] Replaced FIXME by an explanation of the current behavior. 13358 [tests/tset_ld.c] Added a FIXME as a consequence. 13359 13360 [doc/README.dev] Update about NetBSD. 13361 133622016-09-08 Vincent Lefèvre <vincent@vinc17.net> 13363 13364 [src/sqrt.c] Corrected a spelling mistake. 13365 13366 [src/get_ld.c] Updated FIXME (mention subnormals). 13367 13368 [src/get_ld.c] Updated FIXME (this is NetBSD 5.1). 13369 13370 [src/get_ld.c] Added a FIXME, in particular for NetBSD. 13371 13372 [tests/tset_ld.c] Avoid a freeze in print_binary under NetBSD due to 13373 excess precision in LDBL_MAX (we do not run the test in this case). 13374 133752016-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13376 13377 [src/sqrt.c] fixed bug in mpfr_sqrt2 13378 [tests/tsqrt.c] added non-regression test 13379 133802016-09-08 Vincent Lefèvre <vincent@vinc17.net> 13381 13382 [tests/tset_ld.c] The print_binary function is freezing on a NetBSD 13383 machine; let's start with some improvements (assertions...). 13384 13385 [tests/tabs.c] Removed mpfr_test_init (not needed here). 13386 13387 [tests/tset_ld.c] Moved mpfr_test_init at the right place (like 13388 tget_d.c, tset_d.c, etc.). 13389 133902016-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13391 13392 [src/sqrt.c] divsp1 -> div_1 13393 133942016-09-08 Vincent Lefèvre <vincent@vinc17.net> 13395 13396 [tests/tset_ld.c] Fixed a loop in case an extended range is used 13397 (there are issues on a NetBSD machine, and this could be a cause). 13398 13399 [tests/tset_ld.c] Corrected a type (due to a printf with %ld). 13400 134012016-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13402 13403 [src/div.c] divsp1 -> div_1, divsp2 -> div_2 (not necessarily same precision) 13404 13405 [src/mul.c] mulsp1 -> mul_1, mulsp2 -> mul_2 (the precision of operands is not 13406 necessarily the same) 13407 134082016-09-08 Vincent Lefèvre <vincent@vinc17.net> 13409 13410 [src/{get_d,get_ld}.c] Use MPFR_ALIAS. 13411 134122016-09-07 Vincent Lefèvre <vincent@vinc17.net> 13413 13414 [src/get_ld.c] Improved the fix done in r10808: The mpfr_set_emin value 13415 is not changed, but let's make the LDBL_MIN_EXP and LDBL_MAX_EXP values 13416 appear as expected. 13417 Note: The code for x86 extended precision first appeared in r3226 with 13418 the usual emin and emax values, as found in the IEEE 754-1985 standard 13419 (bounds) or on <https://en.wikipedia.org/wiki/IEEE_floating_point>. But 13420 MPFR uses a different convention, with a significand between 1/2 and 1 13421 instead of between 1 and 2, so that these values were off by 1. The 13422 emax one was fixed in r6101, but the error on emin remained undetected. 13423 13424 [tests/tset_ld.c] The bug_20160907 test is valid only with 13425 HAVE_LDOUBLE_IEEE_EXT_LITTLE. 13426 13427 [src/zeta.c] Updated FIXME: also suggest a scaling. 13428 134292016-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13430 13431 [tests/tset_ld.c] check more numbers in bug_20160907() 13432 13433 [src/get_ld.c] fixed bug reported by Walter Mascarenhas 13434 13435 [tests/tset_ld.c] added test that triggers bug in mpfr_get_ld 13436 (https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00005.html) 13437 134382016-09-07 Vincent Lefèvre <vincent@vinc17.net> 13439 13440 [src/zeta.c] Updated FIXME with a suggestion. 13441 13442 [src/zeta.c] Added a FIXME: An overflow in gamma(s1) does not imply 13443 that Zeta(s) will overflow. 13444 [tests/tzeta.c] Added a test that triggers this bug with a 32-bit ABI. 13445 13446 [doc/README.dev] Concerning GCC's AddressSanitizer (-fsanitize=address), 13447 mention that LD_PRELOAD needs to be unset (or -static-libasan needs to 13448 be used, but does not work yet). 13449 134502016-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13451 13452 [doc/algorithms.tex] l -> \ell 13453 13454 [doc/algorithms.tex] du -> {\mathrm d}u 13455 13456 [src/log_ui.c] added FIXME 13457 134582016-09-06 Vincent Lefèvre <vincent@vinc17.net> 13459 13460 [src/sqrt.c] Avoid a warning due to an unused variable with 13461 GMP_NUMB_BITS == 32. 13462 13463 [acinclude.m4] Fixed m4_pattern_forbid argument to avoid an error with 13464 recent ax_pthread.m4 (such as in Debian's autoconf-archive 20160320-1, 13465 which has just appeared in unstable). 13466 13467 [src/zeta.c] Updated FIXME. 13468 134692016-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13470 13471 [src/zeta.c] added FIXME 13472 13473 [src/sqrt.c] added alternate code for mpn_sqrtrem4 (disabled for now) 13474 134752016-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13476 13477 move macros from div.c to mpfr-gmp.h 13478 134792016-09-05 Vincent Lefèvre <vincent@vinc17.net> 13480 13481 About the tzeta timing issue (since r9848): 13482 * TODO: updated item on tzeta. 13483 * tests/tzeta.c: updated FIXME for test_generic. 13484 13485 [TODO] Updated item on tzeta: 13486 * removed the old problem: the fact that the traces for the trunk and 13487 for r9954 are different is normal (fixes in mpfr_can_round affecting 13488 tgeneric.c), and the timings depend on GMP_CHECK_RANDOMIZE and seem 13489 equivalent in average with "test_generic (..., 5);" in both cases; 13490 * added the fact that tzeta has been much slower since r9848, at least 13491 with the x86 32-bit ABI. 13492 134932016-09-02 Vincent Lefèvre <vincent@vinc17.net> 13494 13495 [src/round_prec.c] Added some details in a comment for rnd2 = RNDF. 13496 13497 [doc/mpfr.texi] Added a FIXME on the mpfr_can_round description in order 13498 to match what I intended to say in my comment in round_prec.c (perhaps 13499 not detailed enough). 13500 135012016-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13502 13503 [src/round_prec.c] updated specification of mpfr_can_round with rnd2 = RNDF 13504 [tests/tpow.c] one test makes no sense for RNDF 13505 135062016-09-02 Vincent Lefèvre <vincent@vinc17.net> 13507 13508 [doc/mpfr.texi] Completed mpfr_can_round description with RNDF. 13509 135102016-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13511 13512 [src/get_str.c] map RNDF to RNDN in mpfr_get_str 13513 13514 [tests/tconst_euler.c] fixed with new specification of mpfr_can_round for RNDF 13515 13516 [doc/mpfr.texi] put back stuff removed by accident in last commit 13517 13518 [doc/mpfr.texi] defined the bahaviour of mpfr_can_round for rnd2 = RNDF 13519 (suggestion from Vincent) 13520 135212016-09-02 Vincent Lefèvre <vincent@vinc17.net> 13522 13523 [src/round_prec.c] Forbid rnd2 = MPFR_RNDF as it does not make much 13524 sense without additional specification (and explained why). 13525 [tests/{tcan_round.c,tgeneric.c}] Added MPFR_RNDF support with the 13526 above restriction. 13527 Note: 6 tests are failing as a consequence. 13528 13529 [src/round_prec.c] FIXME: rnd2 == MPFR_RNDF is not supported yet. 13530 135312016-09-02 Vincent Lefèvre <vincent@vinc17.net> 13532 13533 Merged the remaining changesets (concerning src/{add1sp.c,sub1sp.c}) 13534 from the trunk, and fixed the code: The old mpfr_add1sp2 function 13535 was renamed to mpfr_add1sp_ref in the trunk and a new mpfr_add1sp2 13536 function (with a different purpose) was defined; so, in 13537 13538 if (rnd_mode == MPFR_RNDF) 13539 return mpfr_add1sp2 (a, b, c, rnd_mode); 13540 13541 mpfr_add1sp2 had to be changed to mpfr_sub1sp_ref. 13542 Ditto for mpfr_sub1sp2 and mpfr_sub1sp_ref. 13543 135442016-09-02 Vincent Lefèvre <vincent@vinc17.net> 13545 13546 Merged r10698 from the trunk (it was skipped by mistake in r10776). 13547 13548 Merged the following changesets from the trunk: 13549 r10664-10686,10689-10690,10692,10695-10696,10699-10775 13550 i.e. all the latest changes except for src/{add1sp.c,sub1sp.c} 13551 to avoid build failures (to be solved later). 13552 Currently only tcan_round fails, due to MPFR_RNDF. 13553 13554 Removed trailing whitespace. 13555 135562016-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13557 13558 [src/sqrt.c] new code for 2 limbs on 64-bit machines, giving speedup of almost 13559 a factor of two: 13560 13561 bavette.loria.fr (Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz) 13562 numactl --physcpubind=0 ./mfv5 -p113 mpfr_sqrt 13563 13564 3.1.4: 13565 mpfr_sqrt: 234 / 243.72 / 258 13566 13567 4.0-dev: 13568 mpfr_sqrt: 122 / 127.63 / 136 13569 135702016-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13571 13572 [src/div.c] fixed error triggered by previous commit 13573 13574 [src/div.c] added missing assertion 13575 [tests/tdiv.c] added test case that make new assertion fail (with --enable-assert --enable-gmp-internals on a 64-bit machine) 13576 13577 [src/div.c] fixed bug found by Vincent 13578 135792016-08-31 Vincent Lefèvre <vincent@vinc17.net> 13580 13581 [tests/tdiv.c] Added a test triggering an assertion failure with 13582 "--enable-assert --enable-gmp-internals". 13583 135842016-08-30 Vincent Lefèvre <vincent@vinc17.net> 13585 13586 [tools/mpfrlint] Update. 13587 13588 [src/div.c] Untabified. Clarified a comment. 13589 135902016-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13591 13592 [src/sqrt.c] document mpn_sqrtrem2() 13593 13594 [src/div.c] don't use mpfr_divsp1 and mpfr_divsp2 when MPFR_GENERIC_ABI is defined 13595 13596 [src/div.c] faster code for 2 limbs 13597 [tests/tdiv.c] added special test for 2 limbs 13598 135992016-08-30 Vincent Lefèvre <vincent@vinc17.net> 13600 13601 [tests] Define global variable tests_memory_disabled, which needs to 13602 be set when the memory.c allocators (to track memory leaks) must not 13603 be used; i.e., setting it disables the calls to tests_memory_start() 13604 and tests_memory_end(). In tests.c, it is initialized to 0 (unset), 13605 except when mini-gmp is used (same behavior as before this commit). 13606 Programs that test GMP's mp_set_memory_functions() need to set this 13607 variable before calling tests_start_mpfr(). 13608 136092016-08-29 Vincent Lefèvre <vincent@vinc17.net> 13610 13611 Added tests/talloc-cache.c (not run by "make check") testing multiple 13612 calls to mp_set_memory_functions. It yields a crash in the MPFR trunk, 13613 which is unexpected with the current code. However, in the 3.1 branch, 13614 r9467 fixed the crash as expected. 13615 136162016-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13617 13618 [src/sqrt.c] added Sage code used to generate the bipartite tables 13619 136202016-08-29 Vincent Lefèvre <vincent@vinc17.net> 13621 13622 [tests/talloc.c] Added a warning about new tests. 13623 136242016-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13625 13626 [src/atan.c] fixed TODOs, and simplified code 13627 136282016-08-29 Vincent Lefèvre <vincent@vinc17.net> 13629 13630 [doc/mpfr.texi] Added a FIXME comment about memory allocation. 13631 13632 [doc/mpfr.texi] Updated the month. 13633 13634 [TODO] Done in r10756: unify is_power_of_two() and mpfr_powerof2_raw(). 13635 136362016-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13637 13638 unified is_power_of_two() and mpfr_powerof2_raw() 13639 13640 [doc/mpfr.texi] improved documentation of mpfr_free_cache() 13641 136422016-08-28 Vincent Lefèvre <vincent@vinc17.net> 13643 13644 [tests/tcan_round.c] Improved a test now that mpfr_can_round is exact. 13645 13646 [src/mpfr-gmp.h] Added a warning about r10749. 13647 136482016-08-27 Vincent Lefèvre <vincent@vinc17.net> 13649 13650 [src/round_prec.c] Various corrections/improvements: 13651 * Unified the return, making sure that temporary memory is no longer 13652 used after MPFR_TMP_FREE(marker), which was not the case in some 13653 places. 13654 * C90 compatibility. 13655 * Minor improvements (use of MPFR_PREC2LIMBS, code on 78 columns...). 13656 13657 [TODO] Added: unify is_power_of_two() and mpfr_powerof2_raw()? 13658 13659 [src/atan2.c] Replaced the use of the MPFR_IS_POWER_OF_2(x) macro by 13660 a more efficient solution based on mpfr_powerof2_raw(). 13661 [src/mpfr-impl.h] Removed the now obsolete MPFR_IS_POWER_OF_2 macro. 13662 136632016-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13664 13665 [src/mpfr-gmp.h] added comment about GMP memory allocation functions 13666 136672016-08-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13668 13669 [src/round_p.c] since mpfr_can_round is now always correct, we cannot compare 13670 it blindly to mpfr_round_p any more 13671 136722016-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13673 13674 [src/round_prec.c] fixed mpfr_can_round() so that all tests of tcan_round pass 13675 136762016-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13677 13678 [tests/tcan_round.c] more information in case of error in check_can_round() 13679 136802016-08-22 Vincent Lefèvre <vincent@vinc17.net> 13681 13682 [tools/mbench/mfv5.cc] Fixed code (C++11 compatibility). 13683 13684 [tests/tcan_round.c] Added a comprehensive test of mpfr_can_round, 13685 based on a naive implementation. 13686 Note: if the exit() is removed, many cases are failing, for both kinds 13687 of answers (there might also remain an error in my test...). 13688 136892016-08-19 Vincent Lefèvre <vincent@vinc17.net> 13690 13691 [TODO] More thoughts about mpz_t caching (mpz_t pool). 13692 13693 [TODO] Issues with mpz_t caching. 13694 13695 [TODO] Update about mpz_t caching (mpz_t pool). 13696 13697 [src/atan.c] Added TODO's to use mpz_init2 instead mpz_init: I could 13698 check that without "mpz_t cache" (pool), this makes the code faster. 13699 13700 [doc/README.dev] Added a note about memory reallocations; recommend 13701 mpz_init2 with the estimated maximum size instead of mpz_init. 13702 13703 [tests/tests.c] Updated the error message on incorrect MPFR version. 13704 13705 [INSTALL] Added note on Solaris and the LD_OPTIONS environment variable. 13706 137072016-08-11 Vincent Lefèvre <vincent@vinc17.net> 13708 13709 [tools/coverage] Added a warning: on a machine shared with other users, 13710 by running this script, the account can easily be compromised due to a 13711 libtool bug. 13712 137132016-08-06 Vincent Lefèvre <vincent@vinc17.net> 13714 13715 [src/mpfr.h] Moved MPFR_DEPRECATED before __MPFR_DECLSPEC for 13716 compatibility with MSVC (and documented this requirement). 13717 Thanks to Brian Gladman for the information. 13718 137192016-08-04 Vincent Lefèvre <vincent@vinc17.net> 13720 13721 [doc/README.dev] Added a note about the C++11 compatibility issue 13722 with a string literal immediately followed by a macro name. 13723 13724 Fixed remaining macros with missing "do" … "while (0)", detected with 13725 mpfrlint. There were no consequences except spurious null statements. 13726 13727 [tools/mpfrlint] Added a comment. 13728 13729 [tools/mpfrlint] Added a test detecting (unsafe) macros of the form: 13730 #define FOO { ... } 13731 The following form is preferred in most of the cases to avoid spurious 13732 null statements: 13733 #define FOO do { ... } while (0) 13734 13735 [tests/tsi_op.c] Fixed a macro. There were no consequences except 13736 spurious null statements. 13737 13738 [tests/tset_{si,sj}.c] Style improvements. Added a comment. 13739 13740 [tests/tset_{si,sj}.c] Fixed macros. There were no consequences except 13741 spurious null statements. 13742 13743 [tests] C++ compatibility: avoid errors with "g++ -std=c++11" or later. 13744 Note that as of GCC 6, "the default mode for C++ is now -std=gnu++14 13745 instead of -std=gnu++98" <https://gcc.gnu.org/gcc-6/changes.html>. 13746 So, this fixes the failures in the build of the MPFR tests with g++ 13747 from GCC 6 without particular options. 13748 137492016-08-03 Vincent Lefèvre <vincent@vinc17.net> 13750 13751 [src/round_prec.c] mpfr_can_round_raw: added another FIXME. 13752 13753 [src/round_prec.c] mpfr_can_round_raw: added an assertion, corrected 13754 a condition in a comment, and added comments, showing a new bug. 13755 137562016-08-02 Vincent Lefèvre <vincent@vinc17.net> 13757 13758 [tests/tmul.c] Various corrections and improvements in test_underflow. 13759 13760 [src/mpfr.h] Mark mpfr_grandom as deprecated (this had already been done 13761 in mpfr.texi r8548). 13762 13763 [src/mpfr.h] Suggest MPFR_EXPERIMENTAL for experimental functions. 13764 137652016-08-01 Vincent Lefèvre <vincent@vinc17.net> 13766 13767 [tests/tversion.c] Correction in the info about the C implementation. 13768 13769 [tests/tversion.c] Corrections in the info about the C implementation. 13770 13771 [src/sqrt.c] Corrected a bound in the proof of mpfr_sqrt1 (one-limb 13772 precisions), related to the right shift of a negative value. Added 13773 a warning and a TODO about such an operation. 13774 13775 [src/sqrt.c] Enable mpfr_sqrt1 code for one-limb precisions (which 13776 depends on implementation-defined features of the C standard) only 13777 when __GNUC__ is defined, as it is known to be correct with GCC and 13778 compatible compilers, but nothing is known yet for other compilers. 13779 Removed the corresponding FIXME and added a note. In the future, a 13780 configure test could be used as an alternative solution. 13781 13782 [tests/tversion.c] Output more information about the C implementation. 13783 137842016-07-31 Vincent Lefèvre <vincent@vinc17.net> 13785 13786 [src/sqrt.c] Fixed some portability issues. 13787 13788 [src/sqrt.c] Fix if mp_limb_t > unsigned long (this fixed failures 13789 with mingw-w64). 13790 13791 [src/lngamma.c] Fix in case mp_limb_t is more than twice as large 13792 as unsigned long (that would make it at least 128 bits). 13793 [src/cos.c] Made code similar to the rest of the code. 13794 13795 [src/div_ui.c] Improved a comment (to make it closer to what correct 13796 C code should be), avoiding a false positive with mpfrlint. 13797 13798 [tools/mpfrlint] Detect possibly wrong code with some C/GMP 13799 implementations, related to shifts and integer types. 13800 13801 [src/sqrt.c] Completed the FIXME (another portability issue). 13802 13803 [src/sqrt.c] Added a FIXME. The current code for prec < GMP_NUMB_BITS 13804 is not portable. 13805 13806 [src/sqrt.c] Fixed code for implementations with 16-bit int's. 13807 13808 [tests/tsqrt.c] Fixed output bug in a test. 13809 138102016-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13811 13812 [src/mul.c] speedup for 2 limbs: numactl --physcpubind=0 ./mfv5 -p113 mpfr_mul 13813 13814 3.1.5-dev: 13815 mpfr_mul: 45 / 61.60 / 84 13816 13817 4.0-dev: 13818 mpfr_mul: 30 / 32.15 / 36 13819 13820 [NEWS] mention that speedup 13821 138222016-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13823 13824 [src/sub1sp.c] fixed bug in mpfr_sub1sp2 13825 13826 [src/mul.c] removed useless code 13827 13828 [src/mul.c] code simplification 13829 13830 [src/sub1sp.c] another code simplification 13831 13832 [src/sub1sp.c] code simplification 13833 13834 [NEWS] mention speedup in mpfr_add and mpfr_sub for 2 limbs 13835 138362016-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13837 13838 [src/sub1sp.c] faster code for 2 limbs. Results with mbench 13839 (numactl --physcpubind=0 ./mfv5 -p113 mpfr_sub): 13840 13841 3.1.5-dev: 13842 mpfr_sub: 36 / 65.33 / 81 13843 13844 4.0-dev: 13845 mpfr_sub: 24 / 33.00 / 36 13846 138472016-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13848 13849 [tests/tmul.c] fixed wrong test 13850 138512016-07-28 Vincent Lefèvre <vincent@vinc17.net> 13852 13853 [tests/reuse.c] Perform each reuse test on 1 to 5 limbs, with a random 13854 number of trailing bits. This allows one to test code specific to 1 or 13855 2 limbs. 13856 138572016-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13858 13859 [src/add1sp.c] fixed issues found with --enable-assert=full 13860 138612016-07-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13862 13863 [src/add1sp.c] new code to deal with p in [GMP_NUMB_BITS+1,2*GMP_NUMB_BITS-1] 13864 138652016-07-27 Vincent Lefèvre <vincent@vinc17.net> 13866 13867 [src/round_prec.c] Various minor improvements: 13868 * Added a MPFR_ASSERTN since mpfr_can_round is a function in the API. 13869 * Changed error variables to be more consistent with the context. 13870 * Removed unnecessary code (casts...) about the error: it came from 13871 round.c r1574, where types were different at that time. 13872 * Made err2 (the old err) local to a small block to make sure that it 13873 will not be used by mistake instead of err in future changes. 13874 * Made equivalent expressions appear under the same form: 13875 (rnd1 == rnd2 || rnd2 == MPFR_RNDN) && err - 2 >= prec 13876 13877 [src/round_prec.c] Changed precision variables to be like SSA. 13878 13879 [src/round_prec.c] Simplified code, making it more similar to code 13880 that has just been fixed. 13881 13882 [src/round_prec.c] Removed useless parentheses. 13883 13884 [src/round_prec.c] Added an assertion for "default:". 13885 13886 [tests/tcan_round.c] In test_simple, output p (which is variable), 13887 not prec (which is always 4). 13888 138892016-07-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13890 13891 [src/round_prec.c] fixed bug in mpfr_can_round for 2^e when rnd1=rnd2 13892 and err > prec + 1 (was returning 0 instead of 1) 13893 138942016-07-27 Vincent Lefèvre <vincent@vinc17.net> 13895 13896 [tests/tcan_round.c] Added a simple test that fails as a consequence of 13897 r9883 (this could be observed on tzeta before r10678 in tgeneric.c). 13898 13899 [tests/tgeneric.c] Improvement: When the result is exact, it can always 13900 be rounded (while mpfr_can_round can fail). 13901 13902 [TODO] Updated item about tzeta. 13903 139042016-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13905 13906 [INSTALL] update (feedback from Bill Hart) 13907 139082016-07-26 Vincent Lefèvre <vincent@vinc17.net> 13909 13910 [src/sqrt.c] Replaced mp_ptr by mpfr_limb_ptr (as usual). 13911 139122016-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13913 13914 [mbench/mfv5-mpfr.cc] patch to allow using it with older versions of MPFR (say branch 3.1) 13915 13916 [src/sqrt.c] fixed mpn_sqrtrem2 for 32-bit limb 13917 139182016-07-26 Vincent Lefèvre <vincent@vinc17.net> 13919 13920 [tests/tzeta.c] Added a FIXME so that r10667 can be reverted. 13921 13922 [TODO] Updated item about tzeta. 13923 13924 [TODO] Added item about the fix of mpfr_can_round in r9883 and tzeta. 13925 13926 New MPFR_GENERIC_ABI macro to test the generic code, not tied to a 13927 particular ABI (e.g. GMP_NUMB_BITS value), so that such code has a 13928 chance to be tested on current machines. 13929 * doc/README.dev: added brief documentation. 13930 * src/sqrt.c: enable mpfr_sqrt1 (optimization for one-limb precisions, 13931 currently when GMP_NUMB_BITS is 32 or 64) only when MPFR_GENERIC_ABI 13932 is not defined. 13933 13934 [src/sqrt.c] 13935 * Changed mp_ptr to mpfr_limb_ptr. 13936 * Untabified and removed trailing spaces. 13937 139382016-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13939 13940 [tests/tzeta.c] reduced test time 13941 13942 [src/sqrt.c] adapted mpn_sqrtrem1 for GMP_NUMB_BITS=32 13943 139442016-07-25 Vincent Lefèvre <vincent@vinc17.net> 13945 13946 [INSTALL] Corrected hint for mingw (use --build instead of --host). 13947 139482016-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13949 13950 [INSTALL] added hint for mingw 13951 139522016-07-25 Vincent Lefèvre <vincent@vinc17.net> 13953 13954 Merged the latest changes from the trunk. 13955 139562016-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13957 13958 [src/sqrt.c] fixed temporary patch for 32-bit computers 13959 139602016-07-25 Vincent Lefèvre <vincent@vinc17.net> 13961 13962 [src/sqrt.c] Typo in comment. 13963 13964 [src/sqrt.c] Updated FIXME's. This is still incorrect with 32-bit limbs. 13965 139662016-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 13967 13968 [src/sqrt.c] temporary fix for 32-bit limbs 13969 139702016-07-22 Vincent Lefèvre <vincent@vinc17.net> 13971 13972 Merged r10657 from the trunk, resolving the conflict (same code as 13973 in the trunk, except RND_RAND changed to RND_RAND_NO_RNDF). 13974 13975 [tests/tadd.c] Improved coding style and messages (do not mix up 13976 "inexact flag" and "ternary value"!). 13977 13978 [tests] Define the RND_RAND_NO_RNDF and RND_LOOP_NO_RNDF macros, similar 13979 to RND_RAND and RND_LOOP respectively but excluding MPFR_RNDF, to be 13980 used for tests that don't make sense in the faithful rounding mode. 13981 Replaced code to use these macros, fixing the remaining failures. 13982 13983 Merged r10599 through r10628 from the trunk, resolving the conflict 13984 in tests/tmul.c (i.e. keep code from both the branch and the trunk, 13985 corresponding to two independent tests). Some of the later changes 13986 in the trunk (src/sqrt.c) are broken with a 32-bit ABI, so let's not 13987 merge them for now. 13988 13989 Merged r10598 from the trunk, resolving the conflict (this consists 13990 in changing MPFR_PREC to MPFR_GET_PREC). 13991 13992 Merged r10573 through r10597 from the trunk (no conflicts). 13993 13994 Merged r10572 from the trunk, resolving the conflict. 13995 13996 Merged r10571 from the trunk, resolving the conflict. 13997 13998 Merged r10566 through r10570 from the trunk, resolving the conflict. 13999 14000 Merged r10556 through r10564 from the trunk (no conflicts). 14001 14002 Merged r10555 from the trunk, resolving the conflict. 14003 14004 Merged r10529 through r10554 from the trunk (no conflicts). 14005 14006 Merged r10528 from the trunk, resolving the conflict. 14007 14008 Merged r10520 through r10527 from the trunk (no conflicts). 14009 14010 [src/add1sp.c] The reverse-merge done in r10633 was incorrect. Fixed. 14011 14012 [src/add1sp.c] Also reverse-merged r10522 (together with related 14013 whitespace change from r10514), which had nothing to do with the 14014 faithful rounding. Improvements for 1 limb will be obtained when 14015 merging the trunk into the faithful branch. 14016 14017 [src/sqrt.c] Added another FIXME comment for 32-bit machines. 14018 14019 [src/sqrt.c] Added other FIXME comments for 32-bit machines. 14020 140212016-07-20 Vincent Lefèvre <vincent@vinc17.net> 14022 14023 [src/sqrt.c] Added FIXME comments for 32-bit machines. 14024 14025 [src/sqrt.c] C90 compatibility. 14026 14027 [src/sqrt.c] Fixed minor (mainly style) issues found by mpfrlint. 14028 14029 [tools/mpfrlint] 14030 * Added --msg option to err-if-output function to optionally output 14031 a message explaining what to do in case of error. 14032 * Added this option to 3 err-if-output calls (errors with src/sqrt.c 14033 r10636). 14034 140352016-07-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14036 14037 [src/sqrt.c] new speedup for 1/2 and 1 limb 14038 140392016-07-20 Vincent Lefèvre <vincent@vinc17.net> 14040 14041 [doc/mpfr.texi] Improved a sentence. 14042 140432016-07-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14044 14045 [faithful] reverse-merge r10524 (had nothing to do with the faithful branch) 14046 14047 [faithful] reverse-merge parts of r10514 independent of the faithful branch 14048 140492016-07-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14050 14051 [NEWS] mention speedup in mpfr_sqrt 14052 14053 [src/sqrt.c] faster code for small precision (on tomate.loria.fr, 45 cycles 14054 for prec=24 instead of 161 before, and 108 cycles for prec=53 instead of 14055 165 with 3.1.4) 14056 140572016-07-19 Vincent Lefèvre <vincent@vinc17.net> 14058 14059 [tools/mbench] Replaced r10505 by r10565 merged from the trunk. 14060 14061 [doc/mpfr.texi] Improvements in the MPFR_RNDF (faithful rounding) spec. 14062 Added some notes concerning the reproducibility. 14063 140642016-07-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14065 14066 [src/div.c] removed duplicate prototype (cf revision 10625) 14067 14068 [src/div.c] yet another speedup 14069 14070 [src/div.c] small improvement 14071 140722016-07-18 Vincent Lefèvre <vincent@vinc17.net> 14073 14074 [src/mpfr-gmp.h] Declare __gmpn_invert_limb if used (in order to avoid 14075 an error with g++ for the tests). 14076 140772016-07-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14078 14079 [src/div.c] removed wrong assertions (and added comments to explain why) 14080 140812016-07-15 Vincent Lefèvre <vincent@vinc17.net> 14082 14083 [src/div.c] Added a FIXME (assertion failure). 14084 14085 [src/div.c] Untabified. 14086 14087 [tools/mpfrlint] Update concerning GMP internals. 14088 140892016-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14090 14091 [src/sub1sp.c] implement use of __gmpn_rsblsh_n (disabled for now) 14092 14093 [src/div.c] only use __gmpn_invert_limb with --enable-gmp-internals 14094 140952016-07-14 Vincent Lefèvre <vincent@vinc17.net> 14096 14097 [src/mpfr-impl.h] Require <float.h> to be included in order to be 14098 able to use the "long double macros and typedef" part. Moved the 14099 IEEE_FLOAT128_MANT_DIG macro definition out of this part. 14100 [tests/tcmp_ld.c] Added missing #include <float.h>. 14101 14102 [src/div.c] Added a FIXME as __gmpn_invert_limb is a GMP internal. 14103 141042016-07-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14105 14106 [src/div.c] speedup for precision < GMP_NUMB_BITS/2 (by almost a factor 2) 14107 14108 [src/mul.c] added comment 14109 14110 [src/div.c] new faster code for 1 limb 14111 14112 [src/cmp_ld.c] include float.h so that MPFR_LDBL_MANT_DIG is correctly defined 14113 [src/get_ld.c,src/set_ld.c] added comment 14114 141152016-07-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14116 14117 [src/div.c] removed obsolete comment since we no longer use __udiv_qrnnd_ld 14118 14119 [src/div.c] changed __udiv_qrnnd_ld into __udiv_qrnnd_preinv (no dependency 14120 any more on long double) 14121 141222016-07-09 Vincent Lefèvre <vincent@vinc17.net> 14123 14124 [src/div.c] Do not use __udiv_qrnnd_ld for MPFR_LDBL_MANT_DIG > 64. 14125 Added a comment about __udiv_qrnnd_ld. 14126 14127 [src/mpfr-longlong.h] Typo. 14128 14129 [src/mpfr-longlong.h] C89 compatibility. 14130 141312016-07-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14132 14133 [src/div.c] speedup using __udiv_qrnnd_ld 14134 14135 [src/mpfr-longlong.h] contributed __udiv_qrnnd_ld variant 14136 14137 [src/div.c] new special code for 1 limb 14138 [src/mul.c] fixed corner case near underflow 14139 14140 [src/mul.c] fixed detection of rounding away 14141 14142 [src/mul.c] fixed underflow *after* rounding 14143 [tests/tmul.c] fixed a test 14144 14145 [tests/tmul.c] added underflow test for directed rounding too 14146 14147 [tests/tmul.c] added test for underflow after rounding (reveals bug in mul.c) 14148 141492016-07-08 Vincent Lefèvre <vincent@vinc17.net> 14150 14151 [src/sub1sp.c] Clarified comment (it's better not to mention underflow 14152 before rounding because it is not considered at all in MPFR). 14153 141542016-07-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14155 14156 [src/sub1sp.c] added comment about underflow before/after rounding 14157 14158 [src/mul.c] changed MPFR_PREC into MPFR_GET_PREC 14159 141602016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14161 14162 [src/mul.c] removed a call to MPFR_LIKELY which is unlikely... 14163 141642016-07-07 Vincent Lefèvre <vincent@vinc17.net> 14165 14166 [NEWS] i.e. → e.g. 14167 14168 [src/mul.c] Replaced mp_ptr by mpfr_limb_ptr (as usual). 14169 14170 [tests/tadd1sp.c] Added tests with EXP(b) < EXP(c), as there are 14171 no such restrictions on the exponents for mpfr_add1sp. 14172 [src/add1sp.c] Fixed mpfr_add1sp when b and c have different signs 14173 and EXP(b) < EXP(c). 14174 141752016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14176 14177 [NEWS] speedup in mpfr_mul for one limb (minus 1 bit) 14178 141792016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14180 14181 [src/mul.c] speed-up of mpfr_mul for 1 limb (1 limb - 1 bit for the result). 14182 Results of mbench for 53 bits on Intel i5-4590: 14183 14184 before: 14185 mpfr_mul: 33 / 37.12 / 42 14186 after: 14187 mpfr_mul: 18 / 20.63 / 24 14188 141892016-07-07 Vincent Lefèvre <vincent@vinc17.net> 14190 14191 [src/add1.c] Corrected a comment as in practice, b and c do not 14192 necessarily have the same sign (when called by mpfr_sub). 14193 141942016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14195 14196 [src/sub1sp.c] added assertions 14197 141982016-07-06 Vincent Lefèvre <vincent@vinc17.net> 14199 14200 [tests/tadd.c] C++ compatibility. 14201 14202 [tests/tadd1sp.c] Do not use != 0 on predicate function. 14203 142042016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14205 14206 [src/sub1sp.c] removed special code for n = 1, now that we have a special 14207 function mpfr_sub1sp1 14208 14209 [tests/tadd.c] revert mpfr_add to test_add 14210 14211 [src/add1sp.c] fixed two bugs in mpfr_add1sp1 14212 14213 [tests/tadd1sp.c] added one hard-coded test 14214 14215 [tests/tadd.c] last commit was wrong 14216 14217 improved check_overflow() 14218 142192016-07-06 Vincent Lefèvre <vincent@vinc17.net> 14220 14221 [src/urandom.c] Fixed uninitialized emin for nbits == 1 14222 (thanks GCC's -Werror=maybe-uninitialized). 14223 142242016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14225 14226 [src/urandom.c] should now be ok for nbits = 1 14227 142282016-07-06 Vincent Lefèvre <vincent@vinc17.net> 14229 14230 [TODO] Change most mpfr_urandomb to mpfr_urandom in the tests? 14231 14232 [tests/turandom.c] Improved an error message. 14233 14234 [tests/turandom.c] Corrected English usage in error message. 14235 14236 [tests/turandom.c] Small precision check: replaced 2 by MPFR_PREC_MIN. 14237 142382016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14239 14240 [src/urandom.c] fixed urandom for a precision of 1 bit 14241 142422016-07-06 Vincent Lefèvre <vincent@vinc17.net> 14243 14244 [doc/README.dev] About random tests: avoid mpfr_urandomb!!! 14245 14246 [tests/tadd1sp.c] Use mpfr_urandom instead of mpfr_urandomb. 14247 This triggers an assertion failure in urandomb.c. 14248 14249 [tests/tadd1sp.c] Reordered variables. Removed a redundant test. 14250 14251 [tests/tadd1sp.c] In check_random, check the flags too. 14252 14253 [tests/tadd1sp.c] Test negative numbers too. 14254 14255 Removed trailing spaces. 14256 142572016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14258 14259 added comment 14260 14261 [src/add1sp.c] removed special cases for n=1 in mpfr_add1sp, now that we have 14262 a special routine mpfr_add1sp1 14263 14264 [mbench/mfv5.cc] added RNDA and fixed typo 14265 142662016-07-06 Vincent Lefèvre <vincent@vinc17.net> 14267 14268 The rounding mode can now be passed in argument with the -r option 14269 (patch by Patrick Pélissier). 14270 14271 Removed MPFR_HOT_FUNCTION_ATTR for mpfr_add1sp1 and mpfr_sub1sp1. 14272 142732016-07-05 Vincent Lefèvre <vincent@vinc17.net> 14274 14275 [tests/tadd.c] Added FIXME comment: there are many tests, but the 14276 ternary value and the flags are not tested! 14277 14278 Functions mpfr_add1sp1 and mpfr_sub1sp1 are called only from the files 14279 where they are defined, thus can be static. 14280 14281 [src/add1sp.c] Removed unused variable. 14282 142832016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14284 14285 [src/add1sp.c] new special code for 1 limb. In 3.1.4 we add with mfv5: 14286 14287 mpfr_add: 30 / 49.30 / 90 14288 14289 now we have: 14290 14291 mpfr_add: 24 / 28.18 / 30 14292 142932016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14294 14295 [src/sub1sp.c] added comment 14296 142972016-07-05 Vincent Lefèvre <vincent@vinc17.net> 14298 14299 [src/sub1sp.c] Another improvement (suggested by Paul). 14300 14301 [src/sub1sp.c] Improved readability. With Debian's gcc-snapshot, this 14302 is equivalent, and with tcc, the generated code is shorter. 14303 14304 [src/sub1sp.c] No longer depend on the representation of 0. 14305 14306 [src/sub1sp.c] Various improvements in the coding style: readability, 14307 consistency, GNU coding style. 14308 143092016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14310 14311 [README.dev] added documentation about mpfr-gfx 14312 14313 [mbench/mpfr-gfx.c] change of syntax of gnuplot 14314 14315 [src/sub1sp.c] removed dead code, and improved coverage to 100% 14316 143172016-07-05 Vincent Lefèvre <vincent@vinc17.net> 14318 14319 [src/sub1sp.c] Removed incorrect MPFR_SET_EXP (the value was incorrect 14320 and the real MPFR_SET_EXP is done later, after underflow checking). 14321 14322 [tests/tsub1sp.c] Added missing printf arguments. 14323 143242016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14325 14326 [src/sub1sp.c] fixed some FIXMEs 14327 143282016-07-04 Vincent Lefèvre <vincent@vinc17.net> 14329 14330 [src/sub1sp.c] Added a FIXME. 14331 14332 [src/sub1sp.c] Avoid a -Wmaybe-uninitialized warning from GCC 14333 by declaring a variable as initialized (the code is correct, 14334 GCC isn't just smart enough). 14335 14336 Removed trailing spaces. 14337 14338 Added tools/ck-clz_tab sh script to check the __clz_tab sizes 14339 (to detect issues like the one fixed in r10542). Run this script 14340 in dist-hook (Makefile.am) and in mpfrlint. 14341 143422016-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14343 14344 resolved a FIXME 14345 14346 fixed bug reported by <sisyphus1@optusnet.com.au> 14347 143482016-07-04 Vincent Lefèvre <vincent@vinc17.net> 14349 14350 [src/exceptions.c] Added a comment for mpfr_underflow: historical reason 14351 for the choice of the behavior with MPFR_RNDN. 14352 143532016-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14354 14355 code simplification (suggested by Vincent) 14356 14357 speedup of mpfr_sub for same precision < GMP_NUMB_BITS 14358 143592016-07-01 Vincent Lefèvre <vincent@vinc17.net> 14360 14361 [src/add1sp.c] Corrected indentation. 14362 14363 [src/sub1sp.c] Added comments. 14364 14365 [src/add1sp.c] Added comments. 14366 143672016-06-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14368 14369 optimize mpfr_add (and mpfr_sub, not yet finished) for 1 limb 14370 143712016-06-29 Vincent Lefèvre <vincent@vinc17.net> 14372 14373 Renamed macro MPFR_EXP_LESS_P to MPFR_UBF_EXP_LESS_P. 14374 14375 [src/add1sp.c] Fixed bug introduced in r10530 when MPFR_WANT_ASSERT >= 2 14376 (--enable-assert=full). 14377 14378 [src/add1.c] Re-added the MPFR_ASSERTD. The culprit seems to be r10530. 14379 14380 [src/add1.c] Reverted r10529, which now fails. That's strange. 14381 143822016-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14383 14384 mpfr_add1sp does not assume any more EXP(b) >= EXP(c) 14385 143862016-06-29 Vincent Lefèvre <vincent@vinc17.net> 14387 14388 [src/add1.c] Added a MPFR_ASSERTD. 14389 143902016-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14391 14392 still faster code for 1 limb 14393 14394 merged r10522 from faithful branch + other special-code for 1 limb: 14395 the worst case for mpfr_add in 53 limbs decreases from 70 to 60 cycles 14396 14397 removed leftover debug statement 14398 14399 added comment that EXP(b) >= EXP(c) 14400 14401 mpfr_add1sp no longer assumes EXP(b) >= EXP(c): gives small speedup 14402 144032016-06-27 Vincent Lefèvre <vincent@vinc17.net> 14404 14405 [doc/sum.txt] Changed "hole" to "gap". 14406 144072016-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14408 14409 added special code for 1 limb 14410 144112016-06-25 Vincent Lefèvre <vincent@vinc17.net> 14412 14413 C++ compatibility. 14414 14415 Merged the latest changes from the trunk. 14416 14417 [autogen.sh] Treat autoreconf warnings as errors. 14418 144192016-06-24 Vincent Lefèvre <vincent@vinc17.net> 14420 14421 [src/vasprintf.c] Some improvements. In particular, avoid two successive 14422 calls to mpfr_cmpabs on the same arguments (the compiler doesn't know 14423 that it could optimize, as the function is not pure). 14424 14425 [src/vasprintf.c] Fixed an assertion failure. 14426 144272016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14428 14429 fixed reuse with --enable-assert 14430 14431 small speedup of mpfr_add for RNDF 14432 144332016-06-24 Vincent Lefèvre <vincent@vinc17.net> 14434 14435 [tests/tsum.c] Correction: r10484 didn't take the latest version from 14436 the trunk in the conflict resolution. 14437 14438 [src/sum.c] A more efficient way to support faithful rounding, avoiding 14439 the TMD completely and an assertion failure at the same time. 14440 14441 Avoid failures in mpfr_mul for MPFR_RNDF with MPFR_WANT_ASSERT >= 2 14442 (--enable-assert=full) by disabling the comparison with the old 14443 implementation, which doesn't make sense for faithful rounding. 14444 144452016-06-24 Vincent Lefèvre <vincent@vinc17.net> 14446 14447 Avoid failures in mpfr_add1sp / mpfr_sub1sp for MPFR_RNDF with 14448 MPFR_WANT_ASSERT >= 2 (--enable-assert=full) by disabling the 14449 comparison with mpfr_add1 / mpfr_sub1, which doesn't make sense 14450 for faithful rounding. 14451 14452 [Added during the Subversion to Git conversion] 14453 This commit includes a merge of r10509 from the trunk. 14454 144552016-06-24 Vincent Lefèvre <vincent@vinc17.net> 14456 14457 Cosmetic change (whitespace). 14458 14459 Merged the latest changes from the trunk. 14460 14461 Removed trailing spaces. 14462 14463 [src/add1sp.c] For MPFR_WANT_ASSERT >= 2 (--enable-assert=full), test 14464 the flags too and replaced "mpfr_cmp" by "! mpfr_equal_p". 14465 [src/sub1sp.c] Make it similar to add1sp.c for MPFR_WANT_ASSERT >= 2. 14466 144672016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14468 14469 use macro for the rounding mode used in the tests 14470 144712016-06-24 Vincent Lefèvre <vincent@vinc17.net> 14472 14473 [doc/mpfr.texi] Updated the month. 14474 14475 [src/sum.c] Made the code a bit more natural: change of pos to neg 14476 (an indirect consequence of the support of reused arguments). Some 14477 other minor related changes. 14478 144792016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14480 14481 added more tests for RNDF 14482 144832016-06-24 Vincent Lefèvre <vincent@vinc17.net> 14484 14485 The support of reused arguments in mpfr_sum is now complete, without 14486 any visible regressions in the timings (which are unfortunately too 14487 inaccurate to see anything). 14488 * doc/mpfr.texi: removed sentences about the previous limitation. 14489 * src/sum.c: removed the corresponding FIXME/TODO comment. 14490 14491 [tests/tsum.c] Test the support of reused arguments. 14492 144932016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14494 14495 disable mpfr_all_div() for RNDF 14496 14497 replaced mpfr_cmp by !mpfr_equal_p 14498 14499 added exhaustive tests for add,sub,mul,div,sqrt 14500 14501 fixed corner case with RNDF 14502 145032016-06-23 Vincent Lefèvre <vincent@vinc17.net> 14504 14505 [src/mpfr-impl.h] Added a comment for MPFR_RNDRAW_GEN about the use 14506 of the exponent field of the destination. 14507 14508 [src/add1sp.c] For MPFR_RNDF, set inexact = 0 (like what is done in 14509 sub1.c) instead of 1, though this doesn't really matter. 14510 14511 [src/sub1.c] Fix: the conflict resolution done in r10484 was incorrect. 14512 14513 [src/add1sp.c] Avoid the use of uninitialized values with MPFR_RNDF. 14514 145152016-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14516 14517 fix for RNDF 14518 145192016-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14520 14521 merged changed from trunk with 14522 14523 svn merge '^/trunk' 14524 14525 (resolved conflict for sub1.c; copied tests/tsum.c from trunk and 14526 re-incorporated changes from faithful branch) 14527 145282016-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14529 14530 src/li2.c: better like this 14531 14532 src/li2.c: revision 10379 was ok 14533 14534 fixed mpfr_all_div() for RNDF 14535 145362016-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14537 14538 more work on branch faithful 14539 145402016-06-17 Vincent Lefèvre <vincent@vinc17.net> 14541 14542 [src/mpfr.h] Coding style: added spaces. 14543 14544 [TODO] Suggest the use the keyword "static" in array indices of 14545 parameter declarations with C99 compilers (6.7.5.3p7) when the 14546 pointer is expected not to be null. 14547 145482016-06-15 Vincent Lefèvre <vincent@vinc17.net> 14549 14550 [doc/README.dev] Update (GCC trunk → GCC 5). 14551 145522016-06-13 Vincent Lefèvre <vincent@vinc17.net> 14553 14554 [src/sum.c] Copy the significand to the destination after resolving 14555 the TMD in order to support reused arguments. 14556 14557 [src/sum.c] Improved a comment. 14558 145592016-06-10 Vincent Lefèvre <vincent@vinc17.net> 14560 14561 [src/sum.c] Corrected a MPFR_LOG_MSG modified in the latest change. 14562 14563 [src/sum.c] For the future support of reused arguments: TMD resolution 14564 is now done in a specific TMD accumulator, allocated at the same time 14565 as the main accumulator. This TMD accumulator currently just takes at 14566 most 2 limbs in practice, so that's not a problem. 14567 [doc/sum.txt] Added TODO for things that will change. 14568 145692016-06-09 Vincent Lefèvre <vincent@vinc17.net> 14570 14571 [src/mpfr-impl.h] Define mpfr_ueexp_t (needed for r10462). 14572 14573 [tests/tversion.c] Do not use "%zu" with printf (added in r10460). 14574 14575 [doc/README.dev] Document environment variables that affect the tests. 14576 14577 Other changes concerning the memory limit for the tests. 14578 * Export the tests_memory_limit variable so that it can be accessed in 14579 test programs (e.g. read by tversion as mentioned below, or modified 14580 by a test program when executed with particular arguments). 14581 * In tversion, print a warning when the memory limit has been modified 14582 (with the MPFR_TESTS_MEMORY_LIMIT environment variable). 14583 14584 [tests/memory.c] The MPFR_TESTS_MEMORY_LIMIT environment variable can 14585 now contain an integer specifying the memory limit for the tests, or 0 14586 for unlimited, the default still being 2^22 = 4 MB. 14587 145882016-06-08 Vincent Lefèvre <vincent@vinc17.net> 14589 14590 [tests/tsum.c] Improved check3: 14591 * Also do the tests with output precision MPFR_PREC_MIN; 14592 this completes the value coverage for tsum. 14593 * Also compare the flags. 14594 14595 Value coverage for tsum: After r9984 to differentiate sq > MPFR_PREC_MIN 14596 and sq == MPFR_PREC_MIN, 42 tests were not done for sq == MPFR_PREC_MIN 14597 on a 64-bit machine. In the check4 test, changed a 2 to MPFR_PREC_MIN. 14598 This reduces to 12 tests that are not done. 14599 146002016-06-07 Vincent Lefèvre <vincent@vinc17.net> 14601 14602 Merged the "ubf" branch into the trunk: 14603 * limited implementation of "unbounded floats" (numbers with a mpz_t 14604 exponent), which could be completed in the future, in particular to 14605 handle intermediate overflows/underflows in polynomial evaluation; 14606 * rewrote mpfr_fmma and mpfr_fmms to use them, and added tests; 14607 * restored the MPFR 3.1- exponent range for compatibility; 14608 * restored some tests that were based on this exponent range. 14609 The choice for the UBF implementation was to use a compatible structure: 14610 the same as the mpfr_t one, with an additional field at the end, used 14611 only when the exponent field _mpfr_exp has some special value. Thus some 14612 functions such as addition and subtraction just needed minor changes to 14613 support UBF, and no code was duplicated. This means that on MPFR numbers 14614 (the usual case), one has a few more tests than before, but with known 14615 branch probabilities. In practice, this should not be visible, at least 14616 in most applications. This was more or less confirmed by timings (even 14617 with many additions/subtractions in low precision, this was difficult 14618 to say, as timings were influenced by various parameters that we cannot 14619 control). 14620 14621 Merged the latest change from the trunk (r10452). 14622 14623 [tools/mbench/Makefile] Added multiarch support for GMP. 14624 14625 [src/mpfr-impl.h] Updated a comment (removing a FIXME). 14626 14627 Merged the latest change from the trunk (r10449). 14628 14629 [tests/tprintf.c] Removed tests of native %'g and %'f (from r8292) 14630 as the ' flag is an extension from Single UNIX Specification and 14631 in particular, they fail with MinGW under Wine. 14632 14633 Merged the latest changes from the trunk. 14634 14635 [tests/tlgamma.c] Typo in comment. 14636 14637 [src/uceil_log2.c] Added a comment. Cosmetic changes. 14638 14639 [tests/tlgamma.c] Corrected updated comment from r10444. 14640 146412016-06-06 Vincent Lefèvre <vincent@vinc17.net> 14642 14643 [tests/tlgamma.c] Updated comment of the test added in r10442. 14644 14645 [src/uceil_log2.c] Correction in __gmpfr_ceil_log2, avoiding an 14646 incorrect result with tcc: x.s.exp is declared as an unsigned 14647 bit-field, so that tcc considers that x.s.exp - 1023 is unsigned. 14648 However, since all the values of x.s.exp are representable in an 14649 int, according to the integer promotion rules, x.s.exp should be 14650 converted to an int, so that the subtraction is signed. So, this 14651 appears to be a bug in tcc. 14652 14653 [tests/tlgamma.c] Added a test causing a "too much memory" error with 14654 tcc 0.9.27~git20151227.933c223-1 (there's already one in special(), 14655 but this one is a simpler, standalone test). 14656 14657 Merged the latest change from the trunk (r10440). 14658 14659 [acinclude.m4] When checking if __float128 is available, we now also 14660 check whether C99 constants (in particular the __float128 ones, such 14661 as 0x1.fp+16383q) are supported since this is now required with the 14662 __float128 support. 14663 14664 Merged the latest changes from the trunk. 14665 14666 [src/add1.c] Improved a comment about faithful rounding. 14667 14668 [src/add1.c] The code for faithful rounding (MPFR_RNDF) was not 14669 avoiding some useless loops needing to know on which side of a 14670 breakpoint the result is. Quick fix. 14671 14672 Merged the latest changes from the trunk. 14673 14674 [src/add1.c] Simplified code: removed fb = 1 since it was already 1 14675 in the "if (fb > 0)" branch. 14676 14677 [src/set_float128.c] Fix: removed the divisions by zero, replacing them 14678 by comparisons with the maximum finite binary128 number. Changes to be 14679 similar to the handling of infinities in "src/set_ld.c". 14680 14681 [TODO] Faithful rounding: small correction. 14682 14683 [TODO] Added "faithful rounding", with information about its definition 14684 and implementation. 14685 146862016-06-03 Vincent Lefèvre <vincent@vinc17.net> 14687 14688 [src/{fits_intmax.c,fits_s.h}] In comments, fit → fits. 14689 14690 [src/set_float128.c] Added FIXME comment: The mpfr_set_float128 code 14691 generates a divide-by-zero exception. Suggest a solution. 14692 Note: this is detected with "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO". 14693 14694 [tests/tset_float128.c] Take into account failures in division by 0 14695 and absence of signed zeros. Also fixed the code checking the sign 14696 of 0 (mpfr_sgn cannot be used for that since it returns 0 for ±0). 14697 146982016-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14699 14700 RNDF: fixed the fits functions 14701 147022016-06-03 Vincent Lefèvre <vincent@vinc17.net> 14703 14704 Merged the latest change from the trunk (r10426 fix). 14705 14706 [src/set_d.c] Added some assertions and fixed a 32-bit shift count 14707 when GMP_NUMB_BITS == 32. 14708 14709 Merged the latest changes from the trunk (C++ compatibility). 14710 14711 [tests/tset_float128.c] C++ compatibility. 14712 14713 [tests/tlog.c] Added a cast to mpfr_rnd_t for C++ compatibility. 14714 14715 [tests/tfmma.c] Forgot a cast to mpfr_rnd_t for C++ compatibility. 14716 14717 [src/add1.c] Completed UBF support. Note: due to the restriction 14718 on the exponent values, diff_exp does not need to be the unsigned 14719 integer type mpfr_uexp_t (mpfr_exp_t is sufficient). 14720 14721 [tests/tfmma.c] Correction. 14722 14723 [tests/tfmma.c] Test (1/2)x + (1/2)x = x near underflow. 14724 14725 [tests/tfmma.c] Replaced precision 64 by GMP_NUMB_BITS (to make sure 14726 that the add1sp and sub1sp conditions are satisfied with the current 14727 src code, these tests may rely on the fact that there are no trailing 14728 bits, i.e. that the precision is a multiple of GMP_NUMB_BITS). 14729 147302016-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14731 14732 added reference for Lambert W function 14733 147342016-06-03 Vincent Lefèvre <vincent@vinc17.net> 14735 14736 [src/{add,sub}.c] Consider UBF numbers as special cases so that 14737 mpfr_sub1sp and mpfr_add1sp, which do not support UBF, are never 14738 called on UBF numbers. This should also (very slightly) speed up 14739 the normal cases. 14740 14741 [src/mpfr-impl.h] UBF support: added MPFR_IS_SINGULAR_OR_UBF and 14742 MPFR_ARE_SINGULAR_OR_UBF macros. 14743 147442016-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14745 14746 declare prec in unsigned long 14747 14748 RNDF: specified the fits functions 14749 14750 RNDF: fixed tfactorial 14751 147522016-06-02 Vincent Lefèvre <vincent@vinc17.net> 14753 14754 C++ compatibility (corrected). 14755 147562016-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14757 14758 RNDF: fixed texp2 14759 14760 avoid mpfr_printf in tests 14761 14762 C++ compatibility 14763 14764 suggestion from Vincent 14765 14766 RNDF: fixed texp10 and tgeneric 14767 14768 RNDF: fixed mpfr_sum and tsum 14769 14770 RNDF: fixed texp 14771 147722016-06-02 Vincent Lefèvre <vincent@vinc17.net> 14773 14774 [tests/tfmma.c] Added test cases where the precision of the result 14775 is twice the precision of each input, which can currently involve 14776 add1sp.c and sub1sp.c code. 14777 147782016-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14779 14780 RNDF: partially fixed texp 14781 14782 RNDF: fixed tcot 14783 14784 RNDF: fixed tcos 14785 14786 RNDF: fixed tconst_pi 14787 14788 RNDF: fixed li2 and tconst_log2 14789 147902016-06-02 Vincent Lefèvre <vincent@vinc17.net> 14791 14792 Merged the latest changes from the trunk. 14793 14794 [src/exceptions.c] Fixed the MPFR_LOG_FUNC in mpfr_underflow and 14795 mpfr_overflow (x is not an input in these functions). 14796 14797 [src/sub1.c] In r10347, logging was introduced instead of #ifdef DEBUG 14798 and printf. Removed 2 MPFR_LOG_VAR, as the variable is not normalized 14799 yet. Re-added #ifdef DEBUG for the MPFR_LOG_MSG's since this may be 14800 too low level and not much useful except in case of bugs. 14801 148022016-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14803 14804 RNDF: fixed issue with Bessel functions for large arguments 14805 148062016-05-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14807 14808 added description of flags for RNDF 14809 148102016-05-30 Vincent Lefèvre <vincent@vinc17.net> 14811 14812 [src/sub1.c] Forgot a \n in a log message. 14813 148142016-05-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14815 14816 fixed typos 14817 148182016-05-30 Vincent Lefèvre <vincent@vinc17.net> 14819 14820 [src/sub1.c] Completed UBF support. 14821 14822 Merged the latest changes (in particular the fix in sub1.c) from the 14823 trunk. 14824 14825 [tests/tsub.c] Added comments for check_max_almosteven (latest 14826 test case, added in r10383). 14827 148282016-05-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14829 14830 more work on the faithful branch 14831 148322016-05-29 Vincent Lefèvre <vincent@vinc17.net> 14833 14834 [src/sub1.c] Fixed bug in mpfr_sub1 (real subtraction a = b - c, with 14835 |b| > |c|): In MPFR_RNDN (round-to-nearest mode), when 14836 * |b| is the midpoint between the maximum finite number in the 14837 precision of a and 2^emax (the maximum finite number + 1 ulp), 14838 which is possible only if PREC(b) > PREC(a), 14839 * c is small enough (i.e. no overlap with a and b), 14840 mpfr_sub1 returns an infinity (with overflow flag set) instead of 14841 ± the maximum number (no overflow). The cause is that an overflow 14842 is generated too early, in an intermediate rounding. 14843 [tests/tsub.c] Added test cases. 14844 14845 [tests/tfmma.c] Forgot a \n in printf. 14846 14847 [tests/tfmma.c] Added overflow tests that trigger an assertion failure 14848 in sub1.c (because UBF support is not complete yet). 14849 148502016-05-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14851 14852 start implementing RNDF (work in progress) 14853 148542016-05-25 Vincent Lefèvre <vincent@vinc17.net> 14855 14856 [src/log_ui.c] Changes for ISO C90 compatibility. 14857 14858 [src/mpfr-gmp.h] For _MPFR_IEEE_FLOATS, changed bit-field type from 14859 unsigned long, which is implementation-defined, to unsigned int. 14860 14861 [src/log_ui.c] Added an assertion. 14862 14863 [src/mpfr-impl.h] Fixed bug introduced in r10327, giving: 14864 error: ISO C does not allow extra ';' outside of a function [-Wpedantic] 14865 148662016-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14867 14868 improved mpfr_log_ui 14869 14870 added comment 14871 148722016-05-25 Vincent Lefèvre <vincent@vinc17.net> 14873 14874 [TODO] mpfr_ai efficiency: also mention mpfr.texi (the issue with large 14875 arguments has always been documented). 14876 14877 [TODO] mpfr_ai efficiency: mention tests/tai.c (the REDUCE_EMAX was 14878 added in r6734). 14879 148802016-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14881 14882 added item about efficiency of mpfr_ai for large arguments 14883 148842016-05-25 Vincent Lefèvre <vincent@vinc17.net> 14885 14886 [doc/README.dev] Also clarified the use of "configure". 14887 14888 [doc/README.dev] Clarified the use of "autogen.sh". 14889 148902016-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14891 14892 use autogen.sh 14893 14894 added libtoolize (needed for AX_PTHREAD) 14895 148962016-05-24 Vincent Lefèvre <vincent@vinc17.net> 14897 14898 [tests/tlog_ui.c] Improved a test function. 14899 14900 [acinclude.m4] Fixed the use of m4_pattern_forbid: the argument must 14901 be quoted, otherwise the macro is expanded when defined. 14902 149032016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14904 14905 small improvements to log_ui (still slower than log for large precision) 14906 149072016-05-24 Vincent Lefèvre <vincent@vinc17.net> 14908 14909 [acinclude.m4] Detect whether the AX_PTHREAD macro is left unexpanded. 14910 149112016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14912 14913 use rounding to nearest by default in "tconst_log2 prec" 14914 14915 minor changes to allow ./tlog xxx prec 14916 14917 added generic tests for mpfr_log_ui + compare with mpfr_log 14918 149192016-05-24 Vincent Lefèvre <vincent@vinc17.net> 14920 14921 [src/sub1.c] Started to add UBF support (still incomplete). 14922 14923 Merged the latest changes from the trunk and removed the remaining 14924 _MPFR_PROTO of UBF functions. 14925 14926 Removed _MPFR_PROTO with the following Perl script on the .h files. 14927 while (<>) { if ($c) { die if /_MPFR_PROTO/; s/^( {$c}) */$1/; 14928 s/\) *\)/)/ and undef $c } elsif (s/^(.*)(_MPFR_PROTO *\()\(/$1(/) 14929 { s/\) *\)/)/ or $c = 1 + length $1 } print } 14930 14931 [configure.ac] Re-added AM_PROG_AR in case Microsoft lib.exe is used 14932 (without this, "automake --warnings=all" gives a warning). 14933 14934 [acinclude.m4] Replaced the obsolete ACX_PTHREAD by AX_PTHREAD 14935 (done with "autoupdate acinclude.m4"). 14936 14937 [configure.ac] Moved LT_INIT near the top for --enable-lto, and removed 14938 AM_PROG_AR (no longer needed as done by LT_INIT) and AC_PROG_RANLIB 14939 (obsoleted by LT_INIT). 14940 14941 Avoid some warnings with "gcc -Wundef". 14942 14943 [configure.ac] Removed a FIXME fixed in r4482. 14944 14945 [src/mpfr-longlong.h] Update from GMP 6.1.0. 14946 14947 [src/mpfr-cvers.h] Fixed typo in a macro (thanks to Patrick Pélissier). 14948 14949 [src/sub1.c] Various minor improvements: 14950 * Some changes related to the exponents and diff_exp. 14951 * Coding style + use of IS_POW2. 14952 * Use logging instead of #ifdef DEBUG and printf. 14953 149542016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14955 14956 removed too aggressive MPFR_LIKELY/MPFR_UNLIKELY (see README.dev) 14957 149582016-05-24 Vincent Lefèvre <vincent@vinc17.net> 14959 14960 Added optional LTO support (from a patch by Patrick Pélissier). 14961 14962 Corrected mpfr_free_cache behavior when WANT_SHARED_CACHE is defined 14963 to make it consistent with the behavior when WANT_SHARED_CACHE is not 14964 defined (patch by Patrick Pélissier). 14965 14966 [src/vasprintf.c] Output the sign of UBF like with infinities. 14967 14968 [tests/tfpif.c] Correction on r10338: use src_fopen instead of fopen 14969 and check fp (just like with FILE_NAME_R). 14970 14971 [tests/tfmma.c] Completed near_overflow_tests (there's still a crash, 14972 this time really in fmma.c). 14973 14974 [tests/tfmma.c] Added near_overflow_tests, which crashes. 14975 149762016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 14977 14978 added new (read-only) test file for mpfr_fpif_import 14979 14980 added tests for mpfr_fpif_import with precision > MPFR_PREC_MAX 14981 149822016-05-24 Vincent Lefèvre <vincent@vinc17.net> 14983 14984 Merged the latest changes from the trunk. 14985 14986 Updated NEWS about shared caches. 14987 14988 MPFR 3.2(.x) → 4.0(.x) 14989 14990 [NEWS] New function mpfr_buildopt_sharedcache_p in MPFR 3.2. 14991 [doc/mpfr.texi] New function mpfr_buildopt_sharedcache_p. Minor changes. 14992 149932016-05-23 Vincent Lefèvre <vincent@vinc17.net> 14994 14995 [src/mpfr-impl.h] About the MPFR_DECL_INIT_CACHE macro: 14996 * Added a FIXME comment about a possible warning due to a missing 14997 field initializer; suggest 2 possible solutions. 14998 * Improved code readability. 14999 15000 [src/free_cache.c] Avoid duplicated source code for maintainability. 15001 15002 [doc/mpfr.texi] Corrections about caches. 15003 15004 [src/mpfr-thread.h] For #error, use a string literal as a single 15005 preprocessing-token. 15006 15007 [src/mpfr-thread.h] Coding style. 15008 15009 Minor comment & coding style corrections on r10327. 15010 15011 Added shared cache support (from a patch by Patrick Pélissier). 15012 150132016-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15014 15015 added tests for mpfr_fpif in precision 1 15016 150172016-05-23 Vincent Lefèvre <vincent@vinc17.net> 15018 15019 More UBF support: 15020 * mpfr-impl.h, ubf.c: added mpfr_ubf_zexp2exp function. 15021 * add1.c: support the case where b (the first input) is an UBF. 15022 15023 [tests/tfmma.c] Added max_tests. 15024 15025 [src/ubf.c] Memory leak in some case. 15026 15027 Added UBF support for mpfr_cmp2. 15028 15029 ABS(SIZ(x)) → ABSIZ(x) 15030 15031 [src/ubf.c] Support reduced exponent range in mpfr_get_zexp. 15032 150332016-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15034 15035 redefine mpfr_init_set_xxx with mpz_t pool, otherwise the pool is not 15036 used for those calls 15037 150382016-05-23 Vincent Lefèvre <vincent@vinc17.net> 15039 15040 Started to implement unbounded floats (UBF) and added support in some 15041 existing functions. 15042 15043 Also reverse-merge r9960 (due to the previous ones). 15044 15045 Also reverse-merge r9958, r9961 and r9962 (due to the previous ones). 15046 15047 First, reverse-merge r9975 and r9957 (whose only purpose was for fmma, 15048 but changed the exponent range and still had various issues). 15049 150502016-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15051 15052 added comment about MPFR_MY_MPZ_INIT 15053 150542016-05-23 Vincent Lefèvre <vincent@vinc17.net> 15055 15056 [src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD. 15057 15058 [src/vasprintf.c] Code simplification. 15059 15060 [src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD. 15061 15062 [src/print_raw.c] Changes for mpfr_print_binary / mpfr_dump: 15063 * Support out-of-range exponents as this function is mainly for 15064 debugging purpose (TODO: add some warning for such exponents). 15065 See: https://sympa.inria.fr/sympa/arc/mpfr/2016-01/msg00061.html 15066 * Support _MPFR_EXP_FORMAT == 4 (format used for testing). 15067 150682016-05-22 Vincent Lefèvre <vincent@vinc17.net> 15069 15070 [tests/tfmma.c] Corrections and improvements in random_test. 15071 15072 [tests/tfmma.c] Replaced mpfr_cmp by the stronger mpfr_equal_p. 15073 15074 [tests] 15075 * tadd_ui.c: clean-up (a boolean test doesn't need "!= 0"). 15076 * tsub_ui.c: check that the NaN flag is set on NaN. 15077 15078 [src/mpfr-impl.h] Added IS_SIGNED macro to check whether an integer type 15079 (after integer promotion) is signed; and use it for MPFR_EXP_IN_RANGE. 15080 150812016-05-20 Vincent Lefèvre <vincent@vinc17.net> 15082 15083 [src/ui_sub.c] Improved code style and assertions, making mpfr_ui_sub 15084 more like mpfr_add_ui and mpfr_sub_ui. Added comments. 15085 15086 Partly rewrote mpfr_add_ui and mpfr_sub_ui (more similar to the 15087 mpfr_ui_sub code), solving the failures. 15088 15089 [tests/tgeneric.c] Check NaN argument, mainly in order to check the NaN 15090 flag when the result is NaN (almost all cases). This makes both tadd_ui 15091 (ignoring the new test done in r10298) and tsub_ui fail. 15092 150932016-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15094 15095 added test case for bug reported by Rob (sisyphus1@optusnet.com.au) 15096 150972016-05-19 Vincent Lefèvre <vincent@vinc17.net> 15098 15099 [src/fmma.c] Added FIXME comments. 15100 151012016-05-18 Vincent Lefèvre <vincent@vinc17.net> 15102 15103 Added MPFR_EXP_IN_RANGE macro, and replaced some tests to use it. 15104 15105 [src/fma.c] Minor code simplification. 15106 151072016-05-17 Vincent Lefèvre <vincent@vinc17.net> 15108 15109 Improved code related to mpfr_set_exp_t: 15110 * Define MPFR_EXP_LIMB_SIZE macro (size of mpfr_exp_t in limbs) 15111 and use it. 15112 * src/pow.c: replaced a mpfr_init2 by MPFR_TMP_INIT1. 15113 151142016-05-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15115 15116 added comment about printing decimal floats 15117 151182016-05-13 Vincent Lefèvre <vincent@vinc17.net> 15119 15120 [src/mpfr-impl.h] Minor improvements. 15121 151222016-05-12 Vincent Lefèvre <vincent@vinc17.net> 15123 15124 [configure.ac] Added a comment about GMP CC/CFLAGS detection. 15125 15126 [configure.ac] Better GMP CC/CFLAGS detection (based on a patch by 15127 Patrick Pélissier). 15128 151292016-05-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15130 15131 add -P option to cpp when detecting CC/CFLAGS in gmp.h (workaround for gcc-5) 15132 151332016-05-04 Vincent Lefèvre <vincent@vinc17.net> 15134 15135 [doc/mpfr.texi] Updated the month. 15136 15137 [doc/Makefile.am] Reverted the change done in r10283 as the mpfr.info 15138 file was always rebuilt. 15139 [Makefile.am] Execute check-typography from dist-hook instead. 15140 15141 [Makefile.am] Add doc/check-typography to the tarball as it is needed 15142 to rebuild the mpfr.info file if the mpfr.texi file is modified. 15143 [doc/check-typography] Added copyright notice and explanations. 15144 15145 [doc/check-typography] Removed useless parentheses. 15146 15147 Detect typography ambiguities in doc/mpfr.texi ASAP: to avoid errors 15148 due to implicit rules, it is better to explicitly make clear whether 15149 a punctuation mark ends or does not end a sentence. 15150 * Added doc/check-typography sh script to detect such typography 15151 ambiguities. 15152 * doc/Makefile.am: automatically execute this script before mpfr.info 15153 is rebuilt; fail with explanations in case there are ambiguities. 15154 * doc/mpfr.texi: avoid typography ambiguities. 15155 * tools/mpfrlint: replaced the old typography check by a call to the 15156 check-typography script (which does more checks). 15157 15158 [doc/mpfr.texi] Typographic correction on the latest addition. 15159 15160 [doc/mpfr.texi] The MPFR_ and mpfr_ prefixes are reserved for MPFR. 15161 151622016-04-25 Vincent Lefèvre <vincent@vinc17.net> 15163 15164 [src/mpfr-impl.h] Clean-up. 15165 151662016-04-21 Vincent Lefèvre <vincent@vinc17.net> 15167 15168 [configure.ac] Improved the GMP CC/CFLAGS detection: the test for $cpp 15169 was not checking whether gmp.h could actually be included, so that the 15170 code was outputting "yes" even when gmp.h was not installed. 15171 15172 [NEWS] Added: Limited pkg-config support. 15173 15174 Added pkg-config support (patch from Kip Warner + some changes). 15175 151762016-04-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15177 15178 typo 15179 151802016-04-20 Vincent Lefèvre <vincent@vinc17.net> 15181 15182 [acinclude.m4] Improved warning message for the "long double" test. 15183 15184 [configure.ac] "double format" test: changed the AC_MSG_ERROR (when 15185 not recognized) to AC_MSG_WARN (like with long double). 15186 15187 [configure.ac] No longer include <stdint.h> in the "double format" test 15188 (it is unnecessary and doesn't exist everywhere). 15189 15190 [acinclude.m4] Typo. 15191 151922016-04-13 Vincent Lefèvre <vincent@vinc17.net> 15193 15194 [tests/tversion.c] Updated a comment about Cygwin and Unix. 15195 151962016-04-09 Vincent Lefèvre <vincent@vinc17.net> 15197 15198 [tools/mpfrlint] Fixed bug triggered when the command for err-if-output 15199 has empty arguments (this does not occur yet). 15200 152012016-04-08 Vincent Lefèvre <vincent@vinc17.net> 15202 15203 [tests/tversion.c] Output the status of the __GMP_LIBGMP_DLL and 15204 MPFR_WIN_THREAD_SAFE_DLL macros (since unreliable consistency checks 15205 have been removed in r10260). 15206 15207 [src/mpfr-impl.h] Removed the detection of possible inconsistencies 15208 under Unix because the tests could yield spurious errors with Cygwin32 15209 or other similar implementations. Moreover, such tests were used for 15210 debugging purpose or to detect potential problems in the environment, 15211 thus were not really useful for the end user. They were initially 15212 added in the win-thread-safe-dll branch (r9682, following a problem 15213 found in r9680). One alternative for checking by the MPFR developers 15214 would be to output the status of some internal macros in tversion. 15215 15216 [tools/mpfrlint] Use err-if-output also for external checkers. 15217 15218 [tools/mpfrlint] Better choice of a variable name. 15219 152202016-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15221 15222 revert changeset 10255 15223 152242016-04-08 Vincent Lefèvre <vincent@vinc17.net> 15225 15226 [tools/mpfrlint] 15227 * Switched to zsh. 15228 * Much more meaningful error messages. 15229 * Fix: in the mpfr.texi punctuation test, ignore the comments. 15230 152312016-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15232 15233 patch for Cygwin (cf https://trac.sagemath.org/ticket/20380) 15234 152352016-04-08 Vincent Lefèvre <vincent@vinc17.net> 15236 15237 [doc/mpfr.texi] Updated the month. 15238 152392016-04-07 Vincent Lefèvre <vincent@vinc17.net> 15240 15241 [doc/mpfr.texi] Document mpfr_dump (which has always been there). 15242 [src/dump.c] Added a comment (with TODO). 15243 15244 Replaced various instances of mpfr_print_binary + newline (sometimes 15245 missing) by mpfr_dump. 15246 15247 [tests] Fixed typo in error messages. 15248 152492016-04-01 Vincent Lefèvre <vincent@vinc17.net> 15250 15251 [TODO] Mention ISO/IEC JTC 1/SC 22/WG 21 N3060 (C++ special functions). 15252 152532016-03-29 Vincent Lefèvre <vincent@vinc17.net> 15254 15255 [INSTALL] Removed incorrect note about NetBSD/alpha: The configure 15256 script distributed with the MPFR 3.1.4 tarball does not contain anything 15257 related to the -mieee GCC option; this just seems to be a particular 15258 pkgsrc issue for NetBSD: 15259 http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/mk/platform/NetBSD.mk?rev=1.48&content-type=text/x-cvsweb-markup 15260 https://www.google.fr/search?q=pkgsrc+%22mieee%22 15261 where -mieee is added. The -mieee-with-inexact option added in the MPFR 15262 3.1 branch might yield the same error with the buggy GCC versions, but 15263 this is now obsolete in the trunk (the code was removed in r10152). 15264 152652016-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15266 15267 added note about NetBSD/alpha 15268 152692016-03-16 Vincent Lefèvre <vincent@vinc17.net> 15270 15271 [doc/sum.txt] Added a summary of the timings, copied from: 15272 ^/misc/sum-timings/results/ReadMe@10244 15273 152742016-03-15 Vincent Lefèvre <vincent@vinc17.net> 15275 15276 [tests/tsum.c] Updated comment of bug20160315 after fix in 3.1 branch. 15277 15278 [tests/tsum.c] Added bug20160315 (this bug appears when porting sum.c 15279 for MPFR 3.1.4 but does not appear in the trunk). 15280 152812016-03-14 Vincent Lefèvre <vincent@vinc17.net> 15282 15283 [doc/sum.txt] Some clarification in the TMD case. 15284 15285 [doc/sum.txt] Added a proof that the choice for the size ts of the 15286 temporary area is sufficient. 15287 15288 [doc/sum.txt] Replaced e by ε for the error (e is already used). 15289 15290 [doc/sum.txt] Update about t' in the error analysis. 15291 15292 [doc/sum.txt] More about the notion of exponent in two's complement. 15293 152942016-03-13 Vincent Lefèvre <vincent@vinc17.net> 15295 15296 [doc/sum.txt] Update about sum_raw (with a correction of a typo). 15297 152982016-03-10 Vincent Lefèvre <vincent@vinc17.net> 15299 15300 [doc/sum.txt] Rewrote paragraph about limitations. 15301 15302 [src/sum.c] Corrected comment: 32/64-bit machine → 32/64-bit ABI. 15303 15304 [src/sum.c] Use UPDATE_MINEXP when necessary; added comments. 15305 15306 [src/sum.c] Added a comment about corner cases involving huge 15307 precisions, which should never occur in practice. 15308 15309 [src/sum.c] 15310 * Added some MPFR_ASSERTD that correspond to properties used in the 15311 proof corrected in doc/sum.txt r10221. 15312 * Added a test for corner cases that will/can probably never occur 15313 in practice. 15314 15315 [doc/sum.txt] Improved explanations and corrected a proof. 15316 15317 [doc/sum.txt] Added a figure. 15318 15319 [doc/sum.txt] Clarifications. 15320 153212016-03-09 Vincent Lefèvre <vincent@vinc17.net> 15322 15323 [doc/sum.txt] GMP → the current version of GMP (6.1.0). 15324 15325 [doc/sum.txt] Another clarification. 15326 15327 [doc/sum.txt] Clarification about a reiteration in sum_raw with 15328 explanation closer to the code. 15329 15330 [src/sum.c] Clarification of comments about "sum.txt". 15331 15332 [src/sum.c] Added comments and an MPFR_ASSERTD for sum_raw(). 15333 15334 [doc/sum.txt] Clarification. 15335 15336 [doc/sum.txt] Update (mainly related to two's complement). 15337 15338 [INSTALL] More information about MinGW and __USE_MINGW_ANSI_STDIO. 15339 153402016-03-08 Vincent Lefèvre <vincent@vinc17.net> 15341 15342 [doc/sum.txt] Corrected 2 typos found by PZ. 15343 15344 [doc/sum.txt] Added commas. 15345 15346 [doc/sum.txt] Added info about an exact zero result and IEEE 754 / 1788. 15347 15348 [doc/sum.txt] A bit more about the choice of two's complement for the 15349 accumulator. 15350 15351 [doc/sum.txt] Explanation concerning the choice of two's complement for 15352 the accumulator. 15353 153542016-03-04 Vincent Lefèvre <vincent@vinc17.net> 15355 15356 [doc/README.dev] Update about MinGW and __USE_MINGW_ANSI_STDIO. 15357 15358 [INSTALL] Some improvement about MinGW and __USE_MINGW_ANSI_STDIO. 15359 15360 [TODO] With MinGW, build with -D__USE_MINGW_ANSI_STDIO by default? 15361 153622016-03-03 Vincent Lefèvre <vincent@vinc17.net> 15363 15364 [configure.ac] Improved --help messages for decimal-float and float128 15365 (a bit like what was done for thread-safe). 15366 153672016-03-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15368 15369 updated NEWS for decimal floats and __float128 15370 15371 set --enable-float128 to "autodetect" by default (like --enable-decimal-float) 15372 153732016-03-02 Vincent Lefèvre <vincent@vinc17.net> 15374 15375 [TODO] For testing the lack of subnormal support. 15376 15377 [acinclude.m4] Also fixed the test for subnormal double-precision 15378 numbers, in case an extended precision / exponent range is used 15379 (however the test is not guaranteed with non-conforming compilers). 15380 15381 [acinclude.m4] Fixed test for subnormal single-precision numbers. 15382 153832016-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15384 15385 added a separate configure test for subnormals in the "float" format 15386 153872016-03-02 Vincent Lefèvre <vincent@vinc17.net> 15388 15389 [acinclude.m4,configure.ac] Various fixes in error messages. 15390 15391 [TODO] Update ICC detection. 15392 153932016-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15394 15395 autodetect support for decimal floats (as suggested in revision 10179) 15396 153972016-03-02 Vincent Lefèvre <vincent@vinc17.net> 15398 15399 [src/ieee_floats.h] Comment update. 15400 15401 [tests/tversion.c] Another improvement, just in case Clang no longer 15402 defines __GNUC__ in the future. 15403 15404 [tests/tversion.c] Improved output of compiler information. 15405 15406 [src/ieee_floats.h] No longer use a NaN memory representation because 15407 it was fixed thus could be either a qNaN or a sNaN, depending on the 15408 machine. Moreover the choice is to generate a qNaN, in particular due 15409 to lack of sNaN support by compilers. 15410 15411 Do not build with decimal float by default as it is not standard 15412 (a better behavior could be to auto-detect). 15413 15414 Updated comments about DBL_NAN, dbl_nan.d and qNaN / sNaN encoding. 15415 15416 [src/get_flt.c] Updated FIXME comment: idea of a solution... 15417 15418 [src/get_flt.c] FIXME: The code assumes the IEEE-754 binary32 format 15419 with subnormal support. 15420 15421 [tests/tget_flt.c] Do tests that may involve subnormals only 15422 if HAVE_DENORMS is defined. 15423 154242016-03-01 Vincent Lefèvre <vincent@vinc17.net> 15425 15426 [src/set_*.c] Use the DOUBLE_ISNAN macro for _Decimal64, __float128 and 15427 long double like what is done for double; on platforms where d != d is 15428 not wrongly optimized to false, this should not change anything. Also 15429 added some MPFR_UNLIKELY for special cases of _Decimal64 and __float128, 15430 as this is already done for double and long double. 15431 15432 [tools/mpfrlint] Detect some uses of "x != x" and "x == x". 15433 154342016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15435 15436 recognize icc (which might define __GNUC__) 15437 154382016-03-01 Vincent Lefèvre <vincent@vinc17.net> 15439 15440 [src/mpfr-impl.h] Added a comment about non-IEEE-754 environment. 15441 154422016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15443 15444 HAVE_DOUBLE_IEEE_LITTLE_SWAPPED is not supported 15445 154462016-03-01 Vincent Lefèvre <vincent@vinc17.net> 15447 15448 [configure.ac] Quote the argument of all AC_MSG_RESULT and AC_MSG_ERROR 15449 when it is longer than a word, as already done in most cases (this is 15450 safer in case we modify the text and add a comma). 15451 15452 [tests/tset_float128.c] Better cast. 15453 154542016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15455 15456 use DOUBLE_ISNAN() instead of f == f 15457 15458 updated 15459 15460 updated paragraph on AIX/PowerPC 15461 15462 added more details in case of error 15463 15464 harmonize configure message against GMP 15465 15466 updated with mpfr-3.1.4-rc2 15467 15468 fixed detection of "double" format, and removed 15469 HAVE_DOUBLE_IEEE_LITTLE_SWAPPED, since we have no machine to test it 15470 15471 removed leftover debug statement 15472 154732016-03-01 Vincent Lefèvre <vincent@vinc17.net> 15474 15475 Removed "The IEEE code for double needs GMP internal files." from 15476 doc/README.dev as this is no longer the case since r10150. 15477 154782016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15479 15480 speedup in mpfr_set_d and mpfr_get_d 15481 15482 improved detection of decimal floats 15483 removed (obsolete?) #define XDEBUG in mpfr-gmp.h 15484 154852016-03-01 Vincent Lefèvre <vincent@vinc17.net> 15486 15487 [acinclude.m4] Removed old code for Alpha (as suggested by Paul). 15488 It was no longer tested. 15489 15490 [configure.ac] Added a FIXME comment about a possible misuse of 15491 AC_RUN_IFELSE programs that can return several values. 15492 154932016-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15494 15495 get rid of dependency from GMP for _GMP_IEEE_FLOATS and ieee_double_extract 15496 enable decimal float by default 15497 154982016-02-29 Vincent Lefèvre <vincent@vinc17.net> 15499 15500 [tools/mpfrlint] Also detect the use of ASSERT_ALWAYS (forbidden). 15501 15502 Replaced the remaining ASSERT_ALWAYS by MPFR_ASSERTN. 15503 15504 [NEWS] Removed a useless note (as the ABI has already changed). 15505 15506 [NEWS] Update about MinGW: "Added support for thread-safe DLL" as 15507 this was more than a fix of the test suite with r9684,9778. 15508 15509 [NEWS] Added "MinGW: Avoid failures in the test suite for shared builds 15510 with TLS." (fix in r9891). 15511 15512 [INSTALL] Removed an obsolete sentence about MinGW and shared builds 15513 with TLS (the failures in the test suite were avoided in r9891). 15514 15515 [tests/Makefile.am] Comment update. 15516 155172016-02-25 Vincent Lefèvre <vincent@vinc17.net> 15518 15519 About "config.h" inclusion: code consistency; removed obsolete comment. 15520 15521 [tests/tversion.c] Output availability of intmax_t/uintmax_t based 15522 functions and *printf functions. 15523 15524 [src/printf.c] Added a blank line for more readability. 15525 15526 [doc/README.dev] Added a note about the "config.h" inclusion. 15527 15528 [tests/tversion.c] Let's group the features together. 15529 15530 [tests/tversion.c] Output support status of modifiers in gmp_printf. 15531 15532 Added mpfr_buildopt_float128_p function. 15533 15534 [doc/mpfr.texi] Removed old comments. 15535 155362016-02-24 Vincent Lefèvre <vincent@vinc17.net> 15537 15538 [tests/tset_str.c] Correction (with no noticeable effect). 15539 15540 [tools/mpfrlint] For codespell, skip the openout.* files, which are 15541 created by "make pdf". 15542 15543 [src/sum.c] Minor FIXME comment update. 15544 15545 [doc/sum.txt] Updated introduction. 15546 15547 [tools/announce-text] Check the files on the mpfr.org web server. 15548 15549 [tools/announce-text] Added a comment. 15550 15551 [tools/announce-text] Update for release candidates. 15552 15553 [doc/mpfr.texi] Fixed a warning with "make info". 15554 15555 Added tools/ck-news Perl script to check the NEWS file. 15556 In Makefile.am: 15557 * run this script in dist-hook for "make dist"; 15558 * added this script to EXTRA_DIST as it is used in dist-hook. 15559 15560 [tools/announce-text] Take into account $vers setting. 15561 15562 [tools/announce-text] Replaced MD5 by SHA256. 15563 155642016-02-23 Vincent Lefèvre <vincent@vinc17.net> 15565 15566 [tools/update-version] Correction for new perl versions. 15567 155682016-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15569 15570 unified description of mpfr_eint 15571 155722016-02-23 Vincent Lefèvre <vincent@vinc17.net> 15573 15574 [src/{cmp_d.c,cmp_ld.c}] Bug fixes: mpfr_cmp_d (resp. mpfr_cmp_ld) was 15575 setting the NaN flag when the double (resp. long double) was a NaN and 15576 could return an incorrect result (assertion failure in debug mode) in 15577 reduced exponent range. 15578 15579 [tests/{tcmp_d.c,tcmp_ld.c}] Added a test in reduced exponent range. 15580 15581 [tests/{tcmp_d.c,tcmp_ld.c}] Full test of the flags for NaN → failure. 15582 15583 [tests/{tcmp_d.c,tcmp_ld.c}] GNU coding style. 15584 15585 [tests/tcmp_d.c] GNU coding style. 15586 15587 [doc/sum.txt] Update about the suggestion to split the inputs for 15588 Demmel's algorithm. 15589 155902016-02-22 Vincent Lefèvre <vincent@vinc17.net> 15591 15592 [doc/README.dev] Added a reference to the build-multi script. 15593 15594 Removed the tools/build-multi script (already in ^/misc). 15595 15596 Added tools/build-multi zsh script to build and install multiple MPFR 15597 versions, and add XML library descriptors for ABI Compliance Checker. 15598 15599 [tests/tagm.c] Also do the test with a = b in precision 2 (since the 15600 same bug occurs in the 3.1 branch, which doesn't support precision 1). 15601 156022016-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15603 15604 fixed error analysis for gamma_inc continued fraction 15605 156062016-02-19 Vincent Lefèvre <vincent@vinc17.net> 15607 15608 [tests/tfmod.c] Test that triggers the bug fixed in r10054: run it 15609 also in the extended exponent range in order to make the test fail 15610 when ported to the 3.1 branch. 15611 15612 [tests/tfmod.c] Renamed a variable since it is not always NaN. 15613 15614 [tests/tfmod.c] Added a test that triggers the bug fixed in r10054 15615 without relying on test_generic failure. 15616 156172016-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15618 15619 added references in comment 15620 156212016-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15622 15623 added error analysis for gamma_inc with continued fraction (to be reviewed) 15624 156252016-02-18 Vincent Lefèvre <vincent@vinc17.net> 15626 15627 [doc/sum.txt,src/sum.c] mpfr_sum: added support for precision 1. 15628 156292016-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15630 15631 more precision about gamma_inc 15632 15633 added reference to series for incomplete gamma function 15634 156352016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15636 15637 added tests for negative integer a 15638 156392016-02-17 Vincent Lefèvre <vincent@vinc17.net> 15640 15641 [tests/tfmod.c] Do not use a variable named nan to avoid confusion 15642 with the nan function of C99 (and possible obscure failures in the 15643 future, if we include <math.h>). 15644 156452016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15646 15647 added reference to gamma_inc(-n,x) for current code 15648 15649 added test to exercise bug fixed in revision 10056 15650 15651 fixed one test 15652 15653 fixed bug in mpfr_agm in case a=b but result cannot be exactly represented 15654 in the target precision: ternary value was wrongly set to 0 15655 156562016-02-17 Vincent Lefèvre <vincent@vinc17.net> 15657 15658 Removed trailing spaces. 15659 156602016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15661 15662 reduce the time of tgamma_inc 15663 15664 fixed the number of special tests for 2-argument functions 15665 15666 fixed stupid error in revision 10054 15667 156682016-02-17 Vincent Lefèvre <vincent@vinc17.net> 15669 15670 [src/mpfr-impl.h] Removed mpfr_sum_sort declaration, as this internal 15671 function had been removed in r9370. 15672 156732016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15674 15675 avoid computing with huge integers in mpfr_fmod when x/y is very small 15676 156772016-02-17 Vincent Lefèvre <vincent@vinc17.net> 15678 15679 [doc/sum.txt] Update about the old mpfr_sum implementation. 15680 156812016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15682 15683 Clarify the status of mpfr_gamma_inc for the MPFR 3.2 release. 15684 156852016-02-17 Vincent Lefèvre <vincent@vinc17.net> 15686 15687 [tests/tgeneric.c] Fixed a typo in latest commit, and added min/max 15688 and max/min special tests for functions with 2 arguments. 15689 This triggers a failure in tfmod on 64-bit machines at least. 15690 15691 [src/gamma_inc.c] Improved assertions. 15692 156932016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15694 15695 now mpfr_gamma_inc(a,x) also works for 'a' a negative integer 15696 (however a and x should not be too large, we should implement 15697 Legendre's continued fraction for the general case) 15698 15699 fixed issue in mpfr_eint 15700 157012016-02-17 Vincent Lefèvre <vincent@vinc17.net> 15702 15703 [src/gamma.c] Added another assertion. 15704 15705 [src/gamma.c] Added assertions and a comment. 15706 15707 [src/gamma.c] Removed useless saved_flags as flags are already saved 15708 by MPFR_SAVE_EXPO_MARK. Removed the comment about about emin/emax as 15709 emin <= 2 <= emax may not be sufficient (or may be suboptimal). 15710 After all, MPFR_SAVE_EXPO_* is the usual thing to do... 15711 157122016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15713 15714 previous commit was incomplete 15715 15716 fixed bug in mpfr_gamma: flags might be corrupted in case the argument was 15717 an integer fitting in an unsigned long 15718 157192016-02-15 Vincent Lefèvre <vincent@vinc17.net> 15720 15721 [doc/README.dev] Update about patches. 15722 15723 [tests/troot.c] Compare root(x,2^h) with pow(x,2^(-h)). 15724 15725 Added bad_cases tests for mpfr_pow_ui and mpfr_pow_si. 15726 15727 Added bad_cases tests for mpfr_root. 15728 15729 [src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions 15730 in a reduced exponent range and debug mode for non-integer numbers 15731 just above the positive limit. 15732 15733 [tests/tfits.c] Check a non-integer number just below a power of two. 15734 15735 [tests/tfits.c] Also run the tests in reduced exponent range. 15736 15737 [tests/tfits.c] Added tests of non-integer values near the type limits. 15738 This triggers a flags failure for src/fits_* r9649, corresponding to 15739 the bug fixed in r9650 (there were no tests for this bug yet). 15740 15741 [tests/tfits.c] Increased code reuse so that tests could be improved 15742 more easily (not everything is tested yet). 15743 157442016-02-12 Vincent Lefèvre <vincent@vinc17.net> 15745 15746 [tests/tconst_log2.c] Correction for C++ compilers. 15747 15748 [tests/tcan_round.c] Correction for C++ compilers. Code formatting. 15749 15750 [src/div.c] Coding style. 15751 15752 [src/div.c] Added a TODO for value coverage tests. 15753 15754 [doc/mpfr.texi] Added a comment about mpfr_gamma_inc. 15755 15756 [tests/tgamma_inc.c] Added a TODO. 15757 15758 [src/gamma_inc.c] Detect internal overflow in order to avoid taking 15759 all the memory of the machine, but it is currently not supported: 15760 assertion failure. This was occurring with a = 2^32 and x = 2^(-32) 15761 on 32-bit machines (see change in r10019). 15762 157632016-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15764 15765 reduced a test with large arguments 15766 157672016-02-11 Vincent Lefèvre <vincent@vinc17.net> 15768 15769 [src/gamma_inc.c] Improved type consistency to avoid integer overflow. 15770 15771 [src/gamma_inc.c] Added some assertions to detect integer overflow. 15772 15773 [tests/tgamma_inc.c] C++/C99 comment → C89 comment. 15774 15775 [src/gmp_op.c] Fixed an assertion that made tgmpop fail on 32-bit 15776 machines (it became wrong with r9964 and --enable-assert). 15777 157782016-02-10 Vincent Lefèvre <vincent@vinc17.net> 15779 15780 [doc/sum.txt] Added a FIXME for precision 1 (recently added). 15781 157822016-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15783 15784 added formula for gamma_inc(-n,x) 15785 157862016-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15787 15788 removed item about speeding up const_euler: done since now for x=1.1, 15789 prec=16610, mpfr_const_euler takes only about 40% of the total time. 15790 For x=1.1 and prec=100000 it takes only about 14% of the total time. 15791 15792 fixed the call to mpfr_eint() in gamma_inc, added some tests for gamma_inc 15793 15794 now mpfr_eint() returns -E1(-x) for x < 0 15795 157962016-02-09 Vincent Lefèvre <vincent@vinc17.net> 15797 15798 [src/eint.c] Fixed eint(-inf). 15799 [tests/teint.c] Added a corresponding test. 15800 15801 [src/si_op.c] Unified coding style and added logging. 15802 15803 [src] Moved si ops from mul_ui.c, div_ui.c and ui_div.c to si_op.c. 15804 15805 [src/ui_div.c] Fixed bug in mpfr_si_div when the integer is LONG_MIN, 15806 visible when using an UB sanitizer (see r9999). 15807 Note: this integer value is not tested yet in the test suite due to 15808 the lack of generic tests for mpfr_si_div. 15809 15810 [tests/{tgeneric.c,tsi_op.c}] Added TODO. 15811 15812 [src/{div,mul}_ui.c] Fixed bug in mpfr_div_si and mpfr_mul_si when the 15813 integer is LONG_MIN, visible when using an UB sanitizer (see r9999). 15814 15815 [tests/tgeneric_ui.c] Added tests of the extreme integer values, 15816 so that tsi_op fails with a runtime error in si_op.c r9998 when 15817 using an UB sanitizer (bug fixed in r9999). 15818 15819 [src/eint.c] Code simplification. 15820 15821 [src/si_op.c] Fixed bug in mpfr_add_si, mpfr_sub_si and mpfr_si_sub 15822 when the integer is LONG_MIN, visible when using an UB sanitizer. 15823 15824 [src/si_op.c] Code formatting. 15825 15826 [tests/teint.c] Added a test that triggers a runtime error 15827 at si_op.c:42:31 on an x86-64 Linux machine, using: 15828 CFLAGS="-fsanitize=undefined -fno-sanitize-recover" 15829 15830 [doc/mpfr.texi] Typographic correction. 15831 15832 [tools/mpfrlint] Avoid false positives in mp_exp_t check. 15833 15834 [src/eint.c] Updated a FIXME (mpfr_set_exp_t was added in r4333 and 15835 completed in r5455), with typo from r6789 corrected. 15836 15837 [doc/mpfr.texi] Updated Section "API Compatibility / Changed Functions": 15838 mpfr_eint changed in MPFR 3.2. 15839 158402016-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15841 15842 update NEWS/TODO with respect to E1 15843 15844 oops, eint(x) was wrong for negative x with |x| >= 0.5 15845 15846 now mpfr_eint(x) returns E1(x) for negative x 15847 158482016-02-08 Vincent Lefèvre <vincent@vinc17.net> 15849 15850 [doc/mpfr.texi] Correction (spelling). 15851 15852 [tests/tsum.c] Clarified a bit more. 15853 15854 [tests/tsum.c] Added explanations concerning the check1 test. 15855 15856 Value coverage for tsum: reduce output length. 15857 15858 Value coverage for tsum: differentiate sq > MPFR_PREC_MIN and not. 15859 158602016-02-07 Vincent Lefèvre <vincent@vinc17.net> 15861 15862 [tests/tsum.c] Source on 80 columns. 15863 158642016-02-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15865 15866 extended the check1() test, gives failure on 64-bit processor 15867 15868 fixed note 15869 158702016-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15871 15872 more work on gamma_inc 15873 15874 note about memory usage 15875 158762016-02-05 Vincent Lefèvre <vincent@vinc17.net> 15877 15878 [src/gamma_inc.c] Corrected protection against integer overflow 15879 (MPFR_PREC_IN_RANGE is just for debug mode). 15880 15881 [src/gamma_inc.c] Added protection against integer overflow 15882 (i.e. abort instead of getting incorrect results). 15883 158842016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15885 15886 more work on gamma_inc (only remains the case a=0 and x>0 to implement) 15887 158882016-02-05 Vincent Lefèvre <vincent@vinc17.net> 15889 15890 Removed trailing spaces. 15891 15892 [tests/troot.c] In exact_powers, check negative values too. 15893 15894 [src/root.c] Code simplification. 15895 15896 TODO update for fmma. 15897 158982016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15899 15900 reduced emax 15901 15902 added a test for exact powers for mpfr_root 15903 and fixed mpfr_root for negative x (and odd k) 15904 159052016-02-05 Vincent Lefèvre <vincent@vinc17.net> 15906 15907 [src/root.c] Corrected(?) the check for exact root by adding an 15908 exactness test for the inverse operation z^k (if unnecessary, it 15909 needs to be properly proved and documented). 15910 15911 [src/root.c] Corrected a comment. 15912 15913 [src/root.c] Some minor changes. Updated comments. 15914 159152016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15916 15917 check for an exact root in mpfr_root_aux 15918 15919 fixed bug in mpfr_root and inefficiency problem with large k 15920 159212016-02-05 Vincent Lefèvre <vincent@vinc17.net> 15922 15923 [src/mpfr-impl.h] For MPFR_IS_PURE_FP(x), when x is a pure FP number, 15924 check that EXP(x) is in the current exponent range (debug mode). 15925 15926 [src/exceptions.c] Some changes concerning mpfr_check_range: 15927 * Added a note about the case EXP(x) < MPFR_EMIN_MIN. 15928 * Do not use the MPFR_IS_PURE_FP() macro as this macro assumes that 15929 if the number is not a singular number, then it is really a pure 15930 FP number (some assertion checking may be done in debug mode), 15931 but this is not necessarily the case here. 15932 * Removed an incorrect comment and re-added the MPFR_UNLIKELY for 15933 the cases where EXP(x) is outside the exponent range. Indeed, 15934 mpfr_check_range is called at the end of most functions, and 15935 in most cases, there are no underflows / overflows. 15936 15937 [tests/texp.c] Added FIXME, as the overflow test, which was specific 15938 to the 32-bit ABI, is no longer run. 15939 15940 [tests/tacosh.c] Added a FIXME (huge values no longer tested at all). 15941 15942 [src/fmma.c] Removed unused code. 15943 159442016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15945 15946 added code to compare mpfr_root with exp(log(x)/k) 15947 15948 reduce MPFR_EMAX_DEFAULT by 2, and modify some tests cases assuming 15949 MPFR_EMAX_DEFAULT=2^30-1 15950 15951 fixed fmma failure 15952 159532016-02-05 Vincent Lefèvre <vincent@vinc17.net> 15954 15955 [src/exp.c] Simplified exponent range setting in special case. 15956 159572016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15958 15959 changed test_generic() calls to start from MPFR_PREC_MIN instead of 2; 15960 this revealed a special-case code in mpfr_exp which didn't work for prec=1 15961 159622016-02-05 Vincent Lefèvre <vincent@vinc17.net> 15963 15964 [tests/trint.c] Do the significand parity test only for precision > 1. 15965 159662016-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15967 15968 updated NEWS and mpfr.texi for MPFR_PREC_MIN=1 15969 15970 MPFR_PREC_MIN is now 1, in accordance with the next revision of IEEE-754 15971 fixed tests to start at MPFR_PREC_MIN instead of hard-coded value of 2 15972 15973 fixed test which was assuming MPFR_PREC_MIN=2 15974 15975 fixed to correctly check prec=1 15976 15977 prepare for MPFR_PREC_MIN=1 15978 15979 fixed tcheck for MPFR_PREC_MIN=1 15980 15981 prepare mpfr_pow to work for precision 1 15982 159832016-02-04 Vincent Lefèvre <vincent@vinc17.net> 15984 15985 [doc/mpfr.texi] Mention the Caramba project-team. 15986 15987 Replaced 15988 Contributed by the AriC and Caramel projects 15989 by 15990 Contributed by the AriC and Caramba projects 15991 159922016-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 15993 15994 added comment about gamma_inc 15995 159962016-02-04 Vincent Lefèvre <vincent@vinc17.net> 15997 15998 [src/gamma_inc.c] Added assertions. 15999 160002016-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16001 16002 more work on gamma_inc 16003 16004 fixed some special values for gamma_inc 16005 160062016-02-03 Vincent Lefèvre <vincent@vinc17.net> 16007 16008 [doc/mpfr.texi] FIXME: Clarify the status of mpfr_gamma_inc for 16009 the MPFR 3.2 release. 16010 160112016-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16012 16013 completed "Added Functions" section 16014 160152016-02-03 Vincent Lefèvre <vincent@vinc17.net> 16016 16017 [doc/mpfr.texi] Typographic correction. 16018 16019 [src/div.c] Fixed bug introduced in r9902 and visible in the tests 16020 on 32-bit machines. 16021 16022 [src/root.c] Added TODO for code rewrite (discussion between VL and PZ). 16023 16024 [tests/troot.c] Also check that root(0,0) is NaN to make sure that such 16025 special cases are considered in the right order in the implementation. 16026 16027 [doc/mpfr.texi] Completed mpfr_root description: the 0th root gives NaN. 16028 16029 [src/root.c,tests/troot.c] Removed obsolete code that was commented out; 16030 some cleanup. 16031 16032 [src/root.c] Comment correction (again). 16033 16034 [src/root.c] Comment correction to avoid a variable name with several 16035 meanings. 16036 16037 [src/root.c] Simplified code and corrected comment. 16038 16039 [src/root.c] Corrected a comment and added an assertion (see r9923). 16040 16041 [src/root.c] Added a FIXME comment. 16042 16043 [tests/troot.c] Typo in a comment. 16044 16045 [tests/troot.c] Added tests showing a bug in mpfr_root on large 16046 integer arguments (found thanks to a bug in GNOME Calculator: 16047 <https://bugzilla.gnome.org/show_bug.cgi?id=756960>). 16048 16049 Style: use RND_LOOP; mpfr_can_round returns a Boolean-like value. 16050 160512016-02-02 Vincent Lefèvre <vincent@vinc17.net> 16052 16053 [src/{erandom.c,nrandom.c}] Updated a reference. 16054 160552016-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16056 16057 mpfr_can_round -> MPFR_CAN_ROUND 16058 160592016-02-02 Vincent Lefèvre <vincent@vinc17.net> 16060 16061 [doc/mpfr.texi] Updated FIXME for mpfr_can_round. 16062 16063 [doc/mpfr.texi] Added a FIXME for mpfr_can_round. Still incorrect... 16064 16065 [doc/mpfr.texi] Updated the month. 16066 16067 [doc/mpfr.texi] Corrected note about mpfr_can_round. 16068 160692016-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16070 16071 refactor the exhaustive search code in mpfr_const_log2 16072 16073 mpfr_round_p -> MPFR_CAN_ROUND 16074 16075 mpfr_can_round -> MPFR_CAN_ROUND 16076 16077 mpfr_can_round -> MPFR_CAN_ROUND 16078 16079 use MPFR_CAN_ROUND instead of mpfr_can_round/mpfr_round_p 16080 16081 rounding test was wrong for rounding to nearest 16082 16083 replace mpfr_can_round by mpfr_round_p 16084 160852016-02-02 Vincent Lefèvre <vincent@vinc17.net> 16086 16087 [src/round_prec.c] Added a TODO to improve the mpfr_can_round_raw 16088 efficiency by only doing a bit inspection (no mpn operations). 16089 160902016-02-01 Vincent Lefèvre <vincent@vinc17.net> 16091 16092 [tests/tcan_round.c] Added test of mpfr_round_p with powers of two 16093 (similar to the one done in src/round_p.c for MPFR_WANT_ASSERT >= 2). 16094 16095 [tests/tcan_round.c] Updated description: mpfr_round_p is also tested 16096 in check_round_p (and will be in test_pow2). 16097 160982016-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16099 16100 now mpfr_round_p() always requires normalized input 16101 161022016-02-01 Vincent Lefèvre <vincent@vinc17.net> 16103 16104 [src/div.c] Added an assert based on comments in the code. 16105 16106 [src/round_p.c] Some corrections in comment. 16107 161082016-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16109 16110 added a comment 16111 161122016-01-31 Vincent Lefèvre <vincent@vinc17.net> 16113 16114 [src/round_p.c] Fixed mpfr_round_p for MPFR_WANT_ASSERT >= 2, as 16115 mpfr_round_p accepts non-normalized inputs (as decided in r9897), 16116 but not mpfr_can_round_raw (as decided in r9883). 16117 161182016-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16119 16120 the inputs of mpfr_round_p might not always be normalized 16121 161222016-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16123 16124 fixed FIXME 16125 161262016-01-29 Vincent Lefèvre <vincent@vinc17.net> 16127 16128 [configure.ac] Improved consistency in messages. 16129 16130 [doc/README.dev] Updated instructions on how to cross-compile MPFR 16131 for MinGW (i586-mingw32msvc) and test it under Wine. 16132 161332016-01-29 Vincent Lefèvre <vincent@vinc17.net> 16134 16135 Cleanup of memory allocation in the tests: 16136 * only tests_allocate, tests_reallocate and tests_free should be used 16137 (now exported instead of mpfr_default_allocate, etc.); 16138 * this is now mentioned in doc/README.dev; 16139 * added checks to tools/mpfrlint (heuristics as usual). 16140 16141 Note: This follows the discussion at 16142 https://sympa.inria.fr/sympa/arc/mpfr/2015-12/msg00055.html 16143 and should solve these problems under MS Windows (mingw32), though this 16144 cleanup is more general than an attempt to fix a Windows issue. 16145 161462016-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16147 16148 fixed case when prec > bn * GMP_NUMB_BITS and directed rounding 16149 16150 typo 16151 161522016-01-28 Vincent Lefèvre <vincent@vinc17.net> 16153 16154 [tests/tcan_round.c] Updated comment and corrected condition on prec. 16155 16156 [tests/tcan_round.c] Updated comments. 16157 16158 [src/round_p.c] Added an assertion (similar to what was added to 16159 mpfr_can_round_raw). This triggers failures, which could also be 16160 detected with MPFR_WANT_ASSERT >= 2, due to the fact that mpfr_div 16161 can internally generate a number that is not normalized before a 16162 rounding test. 16163 16164 [src/round_prec.c] Updated comments. 16165 161662016-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16167 16168 more work on mpfr_can_round 16169 16170 fixed bug in mpfr_can_round for input = 2^k 16171 161722016-01-27 Vincent Lefèvre <vincent@vinc17.net> 16173 16174 [doc/mpfr.texi] Replaced "Rounding Related Functions" by 16175 "Rounding-Related Functions" (thanks to Keith Briggs for the remark). 16176 16177 [tests/tcan_round.c] Added tests for powers of two. This triggers 16178 errors. I may have done mistakes, but at least x = 2^32, j = 32, 16179 r1=MPFR_RNDN, r2=MPFR_RNDN seems buggy. 16180 161812016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16182 16183 simplified 16184 16185 another detail 16186 161872016-01-27 Vincent Lefèvre <vincent@vinc17.net> 16188 16189 [doc/mpfr.texi] Corrected mpfr_can_round description again as the 16190 possible difference is on 0+ = 2^(emin-1), not about overflow. 16191 Let's just say "assuming an unbounded exponent range". 16192 16193 [doc/mpfr.texi] Corrected mpfr_can_round description (about overflow). 16194 161952016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16196 16197 yet another improvement 16198 16199 improved documentation 16200 162012016-01-27 Vincent Lefèvre <vincent@vinc17.net> 16202 16203 [doc/mpfr.texi] Clarified change in r9873. 16204 162052016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16206 16207 improve documentation of mpfr_can_round 16208 16209 also print the rounded value 16210 16211 added pointer to examples/can_round.c 16212 162132016-01-27 Vincent Lefèvre <vincent@vinc17.net> 16214 16215 [examples/can_round.c] Removed the useless #include <gmp.h> and 16216 replaced the internal mpfr_dump by mpfr_printf. 16217 162182016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16219 16220 improved documentation of mpfr_can_round 16221 16222 added example on how to use mpfr_can_round 16223 162242016-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16225 16226 mention mpfr_set/get_decimal128 for the future (low priority for now) 16227 162282016-01-21 Vincent Lefèvre <vincent@vinc17.net> 16229 16230 [src/round_p.c] Code formatting. 16231 162322016-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16233 16234 added remark about Ei vs E1 16235 162362016-01-21 Vincent Lefèvre <vincent@vinc17.net> 16237 16238 [tests/tsqrt.c] Improved bug20160120. 16239 16240 [tests/tsqrt.c] In bug20160120, check the validity of the result with 16241 mpfr_check first, because the mpfr_sqrt was generating invalid data. 16242 162432016-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16244 16245 fixed bug in mpfr_sqrt reported by Fredrik Johansson 16246 16247 added test case for bug reported by Fredrik Johansson 16248 16249 added FIXME 16250 162512016-01-20 Vincent Lefèvre <vincent@vinc17.net> 16252 16253 [tests/tzeta.c] Added casts for printf. 16254 16255 [tests/tzeta.c] Some corrections. Made the input value of the latest 16256 test clear (avoiding a long string at the same time). 16257 162582016-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16259 16260 fixed bug for zeta(s) with s near an even negative integer 16261 162622016-01-20 Vincent Lefèvre <vincent@vinc17.net> 16263 16264 [doc/README.dev] Instructions on how to cross-compile MPFR for MinGW 16265 (i586-mingw32msvc) and test it under Wine. 16266 16267 [doc/README.dev] Typo. 16268 16269 [tests/tgeneric.c] Improved the generic tests in order to trigger the 16270 mpfr_jn bug found by Fredrik Johansson (r9841) and potential similar 16271 bugs: For half cases, the precision of the inputs was modified to be 16272 smaller than the base precision (for the result). Here, this rule is 16273 changed so that if the base precision is small (< 16), then the 16274 precision of the inputs is chosen to be significantly *larger* than 16275 the base precision in general. 16276 Note: With this improvement, both tj0 and tj1 fail in r9840. 16277 162782016-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16279 16280 added references 16281 16282 added section about gamma_inc 16283 16284 fixed bug found by Fredrik Johansson 16285 16286 added reference for eint 16287 162882016-01-20 Vincent Lefèvre <vincent@vinc17.net> 16289 16290 [tests/tj0.c] Avoid mpfr_set_d. 16291 162922016-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16293 16294 added bug found by Fredrik Johansson in mpfr_j0 16295 16296 added mpfr_gamma_inc 16297 162982016-01-19 Vincent Lefèvre <vincent@vinc17.net> 16299 16300 [src/gamma_inc.c] Use MPFR_ARE_SINGULAR. 16301 163022016-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16303 16304 deal with the case where one of a or x is not regular 16305 163062016-01-19 Vincent Lefèvre <vincent@vinc17.net> 16307 16308 [tools/nightly-test] Corrected tests. 16309 163102016-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16311 16312 added reference 16313 163142016-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16315 16316 added the incomplete beta function 16317 16318 incomplete Gamma is now available 16319 16320 switch to bash and add --enable-decimal-float 16321 16322 minor modification of documentation for mini-gmp 16323 16324 added target "make bench" 16325 163262016-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16327 16328 allow tgamma x prec to print gamma(x) to prec bits 16329 163302016-01-17 Vincent Lefèvre <vincent@vinc17.net> 16331 16332 [tests] Added tgamma_inc to svn:ignore property. 16333 16334 TODO update. 16335 16336 [src/fmma.c] Removed trailing spaces. 16337 16338 [tests/tgamma_inc.c] Portability correction. 16339 16340 [src/mpfr.h] Improved a comment. 16341 16342 [src/gamma_inc.c] Various corrections. 16343 163442016-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16345 16346 first version of incomplete Gamma function (work in progress) 16347 163482016-01-16 Vincent Lefèvre <vincent@vinc17.net> 16349 16350 TODO for correctly rounded polynomials (like fmma). 16351 163522016-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16353 16354 try to fix bugs in fmma (work in progress) 16355 163562016-01-15 Vincent Lefèvre <vincent@vinc17.net> 16357 16358 [src/log_ui.c] Added a FIXME comment: mpfr_log_ui is much slower than 16359 mpfr_log on some values of n, e.g. around ULONG_MAX/3. 16360 16361 [tests/tlog_ui.c] Added tests for n around ULONG_MAX/3. 16362 16363 [src/log_ui.c] Fixed the computation of p. 16364 16365 [src/log_ui.c] Removed a mpz_sub_ui(...,1) to match the comment. 16366 This -1 came from the previous code, but this doesn't change the 16367 value of k because a multiple of 3 cannot be a power of 2. Also 16368 renamed a variable. 16369 16370 [src/log_ui.c] Compute the value of k without rounding (if n was larger 16371 than 2^53 or even 2^24 due to dynamic x87 precision, the result could 16372 be wrong) and overflow (3 * n doesn't always fit in a limb). 16373 16374 [src/log_ui.c] Added assertions. 16375 16376 [tests/tlog_ui.c] Added tests for n around LONG_MAX. 16377 16378 [src/log_ui.c] Replaced a comment by an assertion. 16379 16380 [src/log_ui.c] Added a FIXME (integer overflow for large n). 16381 16382 [tests/tlog_ui.c] 16383 * In the loop, do not test n = 0 and n = 1, because mpfr_can_round 16384 always fails for these values, so that the test is pointless. 16385 * Check that mpfr_can_round no longer fails (this is possible as 16386 we are not doing random tests, i.e. the tested values are known); 16387 the additional precision for y had to be increased. 16388 * Also test large values of n (ULONG_MAX down to ULONG_MAX-19). When 16389 GCC's run-time sanitizer -fsanitize=undefined -fno-sanitize-recover 16390 is used, it signals an error for large values of n. 16391 * The reference values y are obtained with mpfr_log instead of 16392 mpfr_log_ui: indeed we need a different implementation from the 16393 tested function, otherwise only the rounding is tested! Without 16394 GCC's run-time sanitizer, this shows that mpfr_log_ui is buggy 16395 for large values of n. 16396 16397 [tests] Added tfmma and tlog_ui to svn:ignore property. 16398 16399 [src/fmma.c] Use MPFR_SET_EXP to get an assertion failure in case of 16400 out-of-range exponent instead of uncontrolled behavior. 16401 16402 [tests/tfmma.c] Added tests that trigger an error. 16403 16404 [src/fma.c] Added a comment for the new code. 16405 164062016-01-14 Vincent Lefèvre <vincent@vinc17.net> 16407 16408 [tests/Makefile.am] Tests in lexicographic order. 16409 164102016-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16411 16412 in tests, removed #if MPFR_VERSION >= MPFR_VERSION_NUM(2,x,y) 16413 16414 forgot in last commit 16415 16416 added new function mpfr_log_ui 16417 164182016-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16419 16420 adapted to 3- and 4-argument functions (using patch from Patrick Pelissier) 16421 164222016-01-12 Vincent Lefèvre <vincent@vinc17.net> 16423 16424 [tests/tfmma.c] C++ compatibility. 16425 16426 [tests/tfmma.c] Fixed type in printf. 16427 16428 [src/fmma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual). 16429 16430 Really replaced mpfr_printf by printf. 16431 164322016-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16433 16434 give copyright to FSF 16435 16436 replaced mpfr_printf calls 16437 16438 changed copyright (I'm the sole author of this part of the code) 16439 16440 forgot two files 16441 164422016-01-12 Vincent Lefèvre <vincent@vinc17.net> 16443 16444 [src/fma.c] C89 compatibility correction. 16445 16446 [src/fma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual). 16447 164482016-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16449 16450 speedup in mpfr_fma and mpfr_fms 16451 new functions mpfr_fmma and mpfr_fmms 16452 modified mbench/fma to compute b*c+c instead of b*b+c (b*c+d would be better) 16453 164542016-01-08 Vincent Lefèvre <vincent@vinc17.net> 16455 16456 [doc/README.dev] Added info about the parallel test harness. 16457 16458 Updated documentation related to valgrind or other wrapper for the tests 16459 due to the fact that Automake 1.13+ generates a parallel test harness. 16460 * doc/README.dev: replaced VALGRIND by LOG_COMPILER. 16461 * tests/Makefile.am: added a comment mentioning LOG_COMPILER. 16462 164632016-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16464 16465 mpfrbench: use clock() when getrusage() is not available 16466 164672016-01-02 Vincent Lefèvre <vincent@vinc17.net> 16468 16469 [INSTALL] Added a note about tuning MPFR: 16470 For the current GMP version (6.1.0), a Unix-like OS is required. 16471 164722016-01-01 Vincent Lefèvre <vincent@vinc17.net> 16473 16474 [doc/mpfr.texi] Updated the month. 16475 16476 Copyright notice update: added 2016 with 16477 perl -pi -e 's/ (\d{4}-)?(2015)(?= Free Software)/ 16478 " ".($1||"$2-").($2+1)/e' **/*(^/) 16479 under zsh (the m4 and tools/mbench directories were not modified). 16480 Removed 2015 from the example in the doc/README.dev file. 16481 164822015-12-28 Vincent Lefèvre <vincent@vinc17.net> 16483 16484 [src/mpfr-impl.h] Fixed MPFR_WIN_THREAD_SAFE_DLL definition 16485 (patch by Patrick Pélissier). 16486 164872015-12-27 Vincent Lefèvre <vincent@vinc17.net> 16488 16489 [tests/mpf_compat.h] Fix: File "inp_str.dat" could not be opened with 16490 builds outside the source directory (objdir different from srcdir). 16491 This did not generate an error, but prevented a test from being done. 16492 Now that mpfr-test.h is included via the mpf_compat.c or mpfr_compat.c 16493 file (there does not seem to be a valid reason not to include it), we 16494 can use src_fopen to open the file in all cases. 16495 16496 [tests] In tversion.c, output the locale too (if supported). 16497 16498 [tests/tinp_str.c] Added a blank line. 16499 16500 [tests] 16501 * inp_str.dat: added a locale-independent line at the beginning of 16502 the file (useful for mpf_compat). 16503 * mpf_compat.h, tinp_str.c: update because of this change. 16504 16505 [tests/tests.c] Improved src_fopen description (do not use the term 16506 "src directory" because there is a directory named "src", but this 16507 is not what is referred here). 16508 165092015-12-26 Vincent Lefèvre <vincent@vinc17.net> 16510 16511 [tests/mpf_compat.h] Fix: changed "inp_str.data" to "inp_str.dat" 16512 due to the file rename in r8120 (otherwise nothing is tested). 16513 16514 [tests/mpf_compat.h] For mpf_set_str and mpf_init_set_str, avoid strings 16515 with ".", since for GMP the decimal separator is locale dependent (the 16516 tests can be run in non-C locales on purpose in order to detect issues 16517 in various locales), so that for the mpf_compat test, the conversion 16518 fails and the mpf value x is set to 0 (which can yield other problems, 16519 such as with mpf_div (y, x, x), which raises an exception). 16520 Note: this problem appeared in r9157, where tests_start_mpfr() was added 16521 to mpf_compat.h (the locale setting is done in this function). 16522 165232015-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16524 16525 patch from Patrick Pelissier (for MinGW) 16526 165272015-12-15 Vincent Lefèvre <vincent@vinc17.net> 16528 16529 [tests/tsum.c] Corrections for C++. 16530 165312015-12-14 Vincent Lefèvre <vincent@vinc17.net> 16532 16533 Removed trailing spaces. 16534 165352015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16536 16537 review by Rob (sisyphus1@optusnet.com.au) 16538 16539 removed obsolete parts (?) for MinGW 16540 16541 new text for Windows/Visual Studio/Visual C++ part contributed by Brian Gladman 16542 165432015-12-14 Vincent Lefèvre <vincent@vinc17.net> 16544 16545 [INSTALL] Switch to UTF-8. 16546 165472015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16548 16549 changes proposed by Alexander (sav_ix@ukr.net) 16550 165512015-12-14 Vincent Lefèvre <vincent@vinc17.net> 16552 16553 [tests/tsum.c] Correction. 16554 165552015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16556 16557 clock() should work everywhere 16558 165592015-12-14 Vincent Lefèvre <vincent@vinc17.net> 16560 16561 [tests/tsum.c] The timing test from r9753 in POSIX-only. 16562 16563 [doc/mpfr.texi] Updated the month. 16564 165652015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16566 16567 update INSTALL file 16568 16569 -D__USE_MINGW_ANSI_STDIO is needed for GMP only 16570 165712015-12-11 Vincent Lefèvre <vincent@vinc17.net> 16572 16573 [src/sum.c] Updated comment about overlapping between input and output. 16574 165752015-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16576 16577 document that (currently) mpfr_sum doesn't allow overlap 16578 16579 timing test to compare mpfr_sum and naive algorithm (without correct rounding) 16580 16581 update wrt -D__USE_MINGW_ANSI_STDIO 16582 16583 note about MinGW and TLS support 16584 16585 improving error message 16586 165872015-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16588 16589 added comment and message for errors under MinGW 16590 165912015-12-03 Vincent Lefèvre <vincent@vinc17.net> 16592 16593 [src/mpfr-impl.h] Updated a comment about clang and division by 0. 16594 165952015-11-11 Vincent Lefèvre <vincent@vinc17.net> 16596 16597 [doc/sum.txt] Update. 16598 16599 [doc/sum.txt] Update. 16600 16601 [doc/sum.txt] Minor correction. 16602 166032015-11-10 Vincent Lefèvre <vincent@vinc17.net> 16604 16605 [doc/sum.txt] Minor correction. 16606 16607 [doc/sum.txt] Minor correction. 16608 16609 [doc/sum.txt] Update. 16610 16611 [doc/sum.txt] Clarification: avoid the word "iteration" for the loop 16612 over the inputs, when possible. 16613 16614 [doc/sum.txt] Update. 16615 16616 [doc/sum.txt] Update. 16617 16618 [doc/sum.txt] Update. 16619 166202015-11-09 Vincent Lefèvre <vincent@vinc17.net> 16621 16622 [src/sum.c] Added a FIXME comment about the reuse of an input for the 16623 output. 16624 166252015-11-06 Vincent Lefèvre <vincent@vinc17.net> 16626 16627 GMP 5.0.0 or newer is required (instead of 4.2.0). 16628 16629 [doc/sum.txt] Major and final update (complete rewrite). 16630 16631 [src/mpfr-gmp.h] Added a TODO. 16632 16633 [src/sum.c] Bug fixed (MPN_COPY_INCR instead of MPN_COPY_DECR). 16634 166352015-11-05 Vincent Lefèvre <vincent@vinc17.net> 16636 16637 [src/sum.c] Minor comment correction. 16638 16639 [src/sum.c] Added another assertion (checked). 16640 16641 [src/sum.c] Added assertions (checked). 16642 166432015-11-04 Vincent Lefèvre <vincent@vinc17.net> 16644 16645 [tests/tsum.c] Added a comment. 16646 16647 [TODO] In tsum, add testcases for mpfr_sum triggering the bug fixed 16648 in r9722. 16649 16650 [src/sum.c] Bug fix: an error bound was too large to compute the sign 16651 of the secondary term (when the TMD occurs). 16652 166532015-11-03 Vincent Lefèvre <vincent@vinc17.net> 16654 16655 [tests/{tstdint.c,tvalist.c}] Updated and improved comment about the 16656 test of partial + full <mpfr.h> inclusion. 16657 16658 [configure.ac] C code starting with # (preprocessor directives) must not 16659 be indented. 16660 166612015-11-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16662 16663 simplify the configuration with mini-gmp 16664 166652015-10-30 Vincent Lefèvre <vincent@vinc17.net> 16666 16667 [src/sum.c] Updated comment for sum_raw(). 16668 166692015-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16670 16671 better definition of GMP_NUMB_BITS 16672 166732015-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16674 16675 update description of file 16676 166772015-10-29 Vincent Lefèvre <vincent@vinc17.net> 16678 16679 [tests/tdiv.c] Improved comment about the mpfr_divhigh_n_basecase bug. 16680 166812015-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16682 16683 more tests do work with mini-gmp (from GMP 6.1.0-rc1) 16684 166852015-10-29 Vincent Lefèvre <vincent@vinc17.net> 16686 16687 [tools/mpfrlint] For the tests on the source files, ignore everything 16688 related to mini-gmp, not just the src/mini-gmp.[ch] files. 16689 16690 [doc/README.dev] "To make a release": mention -DMPFR_TUNE_COVERAGE. 16691 16692 [tests/tdiv.c] Updated comment about the mpfr_divhigh_n_basecase bug. 16693 166942015-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16695 16696 fixed replacement for mpn_neg (return value was wrong) 16697 16698 adapt for mini-gmp (from GMP 6.1.0-rc1) 16699 16700 replace obsolete mpz_div_2exp function by mpz_xdiv_q_2exp 16701 167022015-10-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16703 16704 adapt mini-gmp stuff to GMP 6.1.0-rc1 16705 16706 replace obsolete mpz_div by mpz_tdiv_q 16707 167082015-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16709 16710 fix bug reported by Ricky Farr 16711 (https://sympa.inria.fr/sympa/arc/mpfr/2015-10/msg00023.html) 16712 167132015-10-22 Vincent Lefèvre <vincent@vinc17.net> 16714 16715 [autogen.sh] Restore the INSTALL file also if the process receives 16716 a usual signal (SIGHUP, SIGINT, SIGQUIT or SIGTERM). 16717 16718 [tests/tversion.c] Added a comment about compiler info. 16719 16720 [tests/tversion.c] Instead of __GNUC__, __GNUC_MINOR__ and 16721 __GNUC_PATCHLEVEL__, output __VERSION__, which gives more 16722 information (for GCC development versions and ICC). 16723 167242015-10-21 Vincent Lefèvre <vincent@vinc17.net> 16725 16726 [src/sum.c] Updated comment for sum_raw(). 16727 167282015-09-15 Vincent Lefèvre <vincent@vinc17.net> 16729 16730 [doc/mpfr.texi] Added a comment about mpfr_get_{si,ui,sj,uj} and flags. 16731 16732 [doc/mpfr.texi] Updated the month. 16733 16734 [doc/mpfr.texi] Changed "returned value" to "return value" when this 16735 is the value returned by the C function (synonymous, but sometimes 16736 less ambiguous). 16737 16738 [doc/mpfr.texi] For r9689, "returned value" → "return value". 16739 16740 [doc/mpfr.texi] Completed the specification of mpfr_get_{si,ui,sj,uj} 16741 and mpfr_get_z (inexact flag, and returned value for mpfr_get_z). 16742 16743 [tests/tget_z.c] Fixed and improved the check_one() test. 16744 * The input value was modified at each iteration, giving z = 0 very 16745 quickly, so that not much was tested in practice; in particular, 16746 the third argument of mpz_fdiv_q_2exp in mpfr_get_z was never 16747 properly tested (since it has no effect for z = 0). 16748 * Added various tests of the flags. 16749 16750 [tests/tget_z.c] Optimized the check_one() test. 16751 167522015-09-10 Vincent Lefèvre <vincent@vinc17.net> 16753 16754 Merged the win-thread-safe-dll branch: support build as thread-safe DLL 16755 on Windows: changes from Stephan Tolksdorf 16756 https://gforge.inria.fr/tracker/download.php/136/619/19537/4980/changes.zip 16757 + a correction and some consistency checks. See MPFR bug 19537 on: 16758 https://gforge.inria.fr/tracker/index.php?func=detail&aid=19537&group_id=136&atid=619 16759 16760 [src/mpfr-impl.h] Resolved the problem under Linux. 16761 16762 [src/mpfr-impl.h] Detect some possible inconsistencies under Unix, 16763 when some macro should imply a MS-Windows platform. 16764 16765 Merged the latest changes from the trunk since this wasn't the cause 16766 of the problem. 16767 16768 Applied changes from Stephan Tolksdorf: 16769 https://gforge.inria.fr/tracker/download.php/136/619/19537/4980/changes.zip 16770 The MPFR build fails on my Linux machine with 16771 CFLAGS=-Werror=missing-prototypes 16772 because MPFR_WIN_THREAD_SAFE_DLL gets defined (this CFLAGS just allowed 16773 me to detect the problem with MPFR_WIN_THREAD_SAFE_DLL, which could have 16774 otherwise remained unnoticed). 16775 16776 Include config.h when need be. 16777 167782015-09-07 Vincent Lefèvre <vincent@vinc17.net> 16779 16780 [TODO] Updated mpz_t caching item, suggesting mpz_init2 instead. 16781 16782 [TODO] Added: check whether mpz_t caching is necessary (this was 16783 committed in r8911). In short, timings should be done with -static 16784 (this wasn't clear), they may depend on the malloc implementation, 16785 and after a look at the source, the difference in the timings with 16786 mpz_t caching is surprising and should be explained. 16787 167882015-09-04 Vincent Lefèvre <vincent@vinc17.net> 16789 16790 [tools/ck-copyright-notice] Check src/mparam_h.in instead of the 16791 generated (and not distributed) src/mparam.h file; this is also 16792 useful to avoid an error after running "make tune". 16793 167942015-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16795 16796 distribute the mpfrbench README 16797 16798 add a README for mpfrbench 16799 168002015-09-04 Vincent Lefèvre <vincent@vinc17.net> 16801 16802 More details in a comment about assertions via tuneup. 16803 168042015-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16805 16806 fixed failed assertion during "make tune" 16807 168082015-08-25 Vincent Lefèvre <vincent@vinc17.net> 16809 16810 [tests/tget_z.c] Flags testing. 16811 16812 [doc/README.dev] Updated a URL. 16813 16814 [tests/tstdint.c] Support MPFR_PRINTF_MAXLM. 16815 16816 [tests/tget_sj.c] Support MPFR_PRINTF_MAXLM. 16817 16818 [tests/tget_sj.c] Typo. 16819 16820 [acinclude.m4] Instead of checking whether the 'j' printf length 16821 modifier is working, try to find one that works. 16822 16823 [acinclude.m4] Check whether the 'j' printf length modifier is working. 16824 16825 [tests/tget_sj.c] Improved check_erange (more flags testing). 16826 16827 [tests/tget_sj.c] Improved check_sj and check_uj even more. 16828 16829 [tests/tget_sj.c] Improved check_sj and check_uj (flags testing). 16830 168312015-08-24 Vincent Lefèvre <vincent@vinc17.net> 16832 16833 [tests/tfits.c] New tests at the limits of the types. 16834 16835 [tests/tfits.c] For the mpfr_fits_{uintmax,intmax}_p functions, check 16836 that the flags are not modified and added tests of -Inf and -0. 16837 16838 [tests/tfits.c] For the mpfr_fits_{u,s}{long,int,short}_p functions, 16839 check that the flags are not modified and added tests of -Inf and -0. 16840 168412015-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16842 16843 fixed the AMD K8 tuning (cf r8118) 16844 168452015-08-24 Vincent Lefèvre <vincent@vinc17.net> 16846 16847 [tests/tset_si.c] Improved NaN mpfr_get_si / mpfr_get_ui test. 16848 16849 [src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions: 16850 the flags could be modified, which made the new mpfr_get_{si,ui} tests 16851 fail (tests/tset_si.c r9649). 16852 16853 [tests/tset_si.c] Added mpfr_get_{si,ui} tests, including flags. 16854 168552015-08-20 Vincent Lefèvre <vincent@vinc17.net> 16856 16857 [src/mparam_h.in] Improved comment: __amd64__ is generic to all 16858 x86 processors with a 64-bit ABI (amd64, a.k.a. x86_64), thus 16859 suggest to move mparam.h files to more meaningful locations. 16860 16861 [configure.ac] Added test for usability of gmp.h at link time 16862 (merged changeset r9644 from the 3.1 branch, with minor changes 16863 due to the fact that a known problem between GMP 4.1 and GCC 5 16864 can no longer occur, now that we require GMP 4.2.0 or newer). 16865 168662015-08-19 Vincent Lefèvre <vincent@vinc17.net> 16867 16868 [doc/README.dev] "To make a release": mention abi-compliance-checker. 16869 168702015-07-31 Vincent Lefèvre <vincent@vinc17.net> 16871 16872 [src/fpif.c] Added an assertion (I get a build failure with gcc-snapshot 16873 20150722-1 due to -Werror=array-bounds, but the code looks OK). 16874 Simplified test on: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67077 16875 168762015-07-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 16877 16878 remove usage of mpn_rootrem in mpfr_sqrt since now mpn_sqrtrem is faster 16879 (https://gmplib.org/list-archives/gmp-devel/2015-July/004074.html) 16880 168812015-07-30 Vincent Lefèvre <vincent@vinc17.net> 16882 16883 [src/next.c] Added a note concerning the exceptions. 16884 168852015-07-20 Vincent Lefèvre <vincent@vinc17.net> 16886 16887 [doc/mpfr.texi] Updated the month. 16888 16889 [tests/tversion.c] Output MPFR_VERSION_STRING too. 16890 16891 [tests/tversion.c] Check and output additional mpfr_buildopt_* info. 16892 16893 Added mpfr_rint_roundeven and mpfr_roundeven functions, with 16894 documentation and tests. 16895 168962015-07-16 Vincent Lefèvre <vincent@vinc17.net> 16897 16898 [tests/tfrexp.c] 16899 * Replaced each mpfr_get_exp occurrence by the internal MPFR_GET_EXP 16900 macro in order to make sure that an assertion failure is triggered 16901 in case of singular number (see also the comment added in r9618). 16902 * Fixed the remaining problem due to an overflow and infinite value. 16903 16904 [src/mpfr.h] Added a comment about the drawback of the mpfr_get_exp() 16905 macro, defined in addition to the function. 16906 169072015-07-15 Vincent Lefèvre <vincent@vinc17.net> 16908 16909 [tests/tfrexp.c] Simplification: merged the tests on the ternary values, 16910 the returned MPFR values and the flags. 16911 16912 [src/{div_2si.c,div_2ui.c,mul_2si.c}] Fixed some underflow cases in 16913 rounding to nearest when the exact result is -2^(emin-2), i.e. the 16914 middle of 0 and the minimum negative number in absolute value (the 16915 correction in r5517 was incorrect/incomplete). 16916 16917 [src/exceptions.c] Added logging for mpfr_underflow and mpfr_overflow. 16918 16919 [tests/tmul_2exp.c] Extended the underflow() test to negative numbers, 16920 triggering a new bug. 16921 16922 [src/frexp.c] Added a comment. 16923 169242015-07-02 Vincent Lefèvre <vincent@vinc17.net> 16925 16926 [tools/build-patch] Rebuild the mpfr.info file if mpfr.texi has been 16927 modified, in order to take it into account in the patch. This is needed 16928 since the mpfr.info file is distributed in the tarball. 16929 16930 [tools/mpfrlint] Check a Texinfo rule (Section "Ending a Sentence") 16931 with common words that end with a capital letter. 16932 (merged changeset r9603 from the 3.1 branch) 16933 169342015-06-28 Vincent Lefèvre <vincent@vinc17.net> 16935 16936 [TODO] Updated URL of TS 18661-4. 16937 169382015-06-26 Vincent Lefèvre <vincent@vinc17.net> 16939 16940 [src/frexp.c] Handle internal overflow. 16941 16942 [tests/tfrexp.c] Forgot a "exit (1);". 16943 16944 [tests/tmul_2exp.c] Overflow test: more output info; improved code. 16945 16946 [src/mul_2si.c] Fixed overflow case when n = 0. 16947 [tests/tmul_2exp.c] In the overflow test, check mpfr_mul_2ui and 16948 mpfr_mul_2si too (mpfr_mul_2ui was OK). 16949 16950 [src/div_2si.c] Fixed overflow case when n = 0. 16951 [tests/tmul_2exp.c] In the overflow test, check mpfr_div_2si too. 16952 16953 [src/div_2ui.c] Fixed overflow case (can occur only when n = 0). 16954 [tests/tmul_2exp.c] Completed the overflow test. 16955 16956 [tests/tfrexp.c] Added tests (currently fail due to the mpfr_div_2ui 16957 unhandled-overflow bug). 16958 16959 [tests/tmul_2exp.c] Added tests where mpfr_div_2ui overflows, which 16960 is currently not handled. 16961 16962 [src/frexp.c] Fixed a bug occurring when the current exponent range 16963 does not contain 0. 16964 169652015-06-25 Vincent Lefèvre <vincent@vinc17.net> 16966 16967 [src/check.c] Typo in a comment. 16968 169692015-06-19 Vincent Lefèvre <vincent@vinc17.net> 16970 16971 [tools/announce-text] Update due to recent InriaForge upgrade. 16972 169732015-06-16 Vincent Lefèvre <vincent@vinc17.net> 16974 16975 [doc/mpfr.texi] Added a paragraph about the multiple use of MPFR. 16976 16977 [TODO] Added: use symbol versioning. 16978 169792015-06-12 Vincent Lefèvre <vincent@vinc17.net> 16980 16981 [doc/faq.xsl] Remove the indent="no" to get the same behavior as before 16982 when using libxslt 1.1.27+. See: 16983 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718535#10 16984 16985 [tests/tfma.c] Improved the new underflow tests (test_underflow3) to 16986 test FMA(-x,y,-z). 16987 16988 [src/fma.c] Completely fixed the scaling in case of underflow. 16989 16990 [src/fma.c] Partially fixed the scaling in case of underflow, 16991 corresponding to the testcase from r9566. Double rounding is 16992 not handled yet (failure triggered by r9567). 16993 16994 [tests/tfma.c] Improved the new underflow tests (test_underflow3) to 16995 yield some cases with double rounding when scaling: If the only fix 16996 in src/fma.c is to change the rounding mode of the last mpfr_div_2ui 16997 (computing s / 2^scale) to rnd_mode, a new failure appears for n = 2, 16998 k = 4, s = -1, MPFR_RNDN. 16999 17000 [tests/tfma.c] Corrected the new underflow tests to really generate 17001 underflows, showing a bug in mpfr_fma. 17002 17003 [src/fma.c] Added log messages. 17004 17005 [tests/tfma.c] The code removed in r9560 was actually necessary, 17006 but do this in a better way. 17007 170082015-06-11 Vincent Lefèvre <vincent@vinc17.net> 17009 17010 [tests/tfma.c] Added other underflow tests. 17011 17012 [tests/tfma.c] Some improvements. 17013 17014 [tests/tfma.c] GNU coding style. 17015 17016 [tests/tfma.c] Removed code that isn't necessary. 17017 17018 [doc/README.dev] "To make a release": mention -DMPFR_COV_CHECK and 17019 -DMPFR_ALLOCA_MAX=0 tests. 17020 170212015-06-10 Vincent Lefèvre <vincent@vinc17.net> 17022 17023 [tests/trandom.c] Cleaner test, avoiding the explicit use of mpfr_rands. 17024 17025 [tests/trandom.c] Improved latest change, as some other test already 17026 assume a fixed PRNG with GMP >= 4.2.0 (now the value of the last 17027 random number of the test is checked). 17028 17029 [tests/trandom.c] 17030 * Get a non-zero fixed-point number whose first 32 bits are 0 with the 17031 default GMP PRNG. This corresponds to the case cnt == 0 && k != 0 in 17032 src/urandomb.c (fixed in r8762) with the 32-bit ABI. 17033 * Output a warning (with a fatal error when the MPFR_COV_CHECK macro 17034 is defined) if one doesn't get such a number, probably because the 17035 GMP PRNG has changed. 17036 17037 [src/sqrt.c] The bug fixed in r9540 actually came from r9014, which 17038 incorrectly replaced MPFR_EXP by MPFR_SET_EXP. So, restored the 17039 previous code (re-adding the assertion check), keeping my comment 17040 from r9540 to explain why we don't use MPFR_SET_EXP. 17041 17042 [tests/tgeneric.c] Fixed overflow/underflow tests introduced in r9539: 17043 the tests were done in all rounding modes, but the code was incorrect 17044 if the exponent of the result depended on the rounding mode. So, the 17045 tests are now done only in the rounding mode previously selected. This 17046 should be sufficient to detect bugs. 17047 17048 [src/lngamma.c] For mpfr_lgamma and mpfr_lngamma, the exponent range 17049 was not restored in some cases (some large results). Bug introduced 17050 in r8917 (trunk only). 17051 17052 [src/{cos.c,sin.c}] Fixed bug related to the exponent range, introduced 17053 in r6461 with the use of mpfr_sincos_fast. 17054 Details: 17055 For mpfr_sin, the exponent range was not restored, and restoring it 17056 before calling mpfr_sincos_fast as this was done for mpfr_cos did 17057 not work; indeed the source of this function shows that it needs an 17058 extended exponent range. So, changed both mpfr_cos and mpfr_sin to 17059 call mpfr_sincos_fast in the extended exponent range and restore the 17060 exponent range at the end, like in usual code. 17061 17062 [tests/tgeneric.c] Check whether the exponent range has been 17063 modified by the tested function (which should never happen). 17064 This check triggers failures in tlgamma, tlngamma and tsin. 17065 17066 [src/sqrt.c] Fixed assertion failure in reduced exponent range. 17067 Note: This could happen only in very specific exponent ranges, 17068 in particular, which do not include the number 1. 17069 17070 [tests/tgeneric.c] Added overflow/underflow tests (→ 4 failed tests). 17071 170722015-06-08 Vincent Lefèvre <vincent@vinc17.net> 17073 17074 [src/zeta_ui.c] 17075 * Support reduced exponent range for the generic case. 17076 * Added logging. 17077 [tests/tzeta_ui.c] Added tests in reduced exponent range. 17078 17079 [src/add_ui.c] Fixed format string in MPFR_LOG_FUNC. 17080 170812015-06-07 Vincent Lefèvre <vincent@vinc17.net> 17082 17083 [tests/tzeta_ui.c] Code simplification. 17084 17085 [tests/tzeta_ui.c] Test zeta(0) in reduced exponent range and all 17086 rounding modes. 17087 17088 [src/zeta_ui.c] Fixed zeta(0) in reduced exponent range. 17089 [tests/tzeta_ui.c] Added testcase. 17090 170912015-06-05 Vincent Lefèvre <vincent@vinc17.net> 17092 17093 [src/{ui_div.c,ui_sub.c}] Correction for reduced exponent range. 17094 17095 [tests/tui_sub.c] Check overflow. 17096 17097 [tests/tui_div.c] Check overflow. 17098 17099 [tests/tgeneric.c] Removed useless parentheses. 17100 17101 [tests/tgeneric.c] Special cases with unsigned long argument. 17102 17103 [tests/tpow_all.c] Better flags output in error message. 17104 171052015-06-04 Vincent Lefèvre <vincent@vinc17.net> 17106 17107 [src/set_q.c] Added missing MPFR_SAVE_EXPO_FREE in case of preliminary 17108 overflow or underflow (extreme cases). 17109 17110 [src/set_q.c] Replaced a "return" by MPFR_RET: this is at least needed 17111 in the extreme case cd != 0, and safer in general. 17112 17113 [tests/tset_q.c] Check the flags. 17114 17115 [src/mul_ui.c] Fixed bug in mpfr_mul_ui/si: the inexact flag wasn't set. 17116 17117 [tests/t{add,div,mul,sub}_ui.c] Replaced tgeneric_ui.c by tgeneric.c, 17118 showing a bug in mpfr_mul_ui (missing inexact flag). 17119 17120 [tests/{tui_div.c,tui_sub.c}] Added generic tests, yielding assertion 17121 failures (due to a reduced exponent range) when assertions are checked. 17122 17123 [tests/tgeneric.c] Major clean-up, with some minor corrections. 17124 Added support for unsigned long argument, which can be the first 17125 or the second one (another intent is to replace tgeneric_ui.c, 17126 which does fewer tests concerning the flags). 17127 17128 [tests/tdiv_d.c] Corrected the tested function for the generic tests. 17129 17130 [tests/td_div.c] Corrected the tested function for the generic tests. 17131 17132 [tests/tui_sub.c] Minor improvements. 17133 17134 [tests/tgeneric_ui.c] Added missing \n. Minor improvements. 17135 17136 [tests/tui_div.c] Minor improvements. 17137 171382015-06-03 Vincent Lefèvre <vincent@vinc17.net> 17139 17140 [tests/trint.c] Corrected the description (copy-paste error in r9473). 17141 17142 [src/rint.c] Handle reduced exponent range. 17143 17144 [tests/trint.c] Extend basic_tests from [56,72] to [1,72] since i < 4 17145 (|x| < 1) are special cases in the implementation. 17146 17147 [tests/trint.c] Also run BASIC_TEST in reduced exponent range 17148 (emin = emax = EXP(x)). 17149 17150 [tests/trint.c] Also run BASIC_TEST2 in reduced exponent range 17151 (emin = emax = EXP(x)). 17152 17153 [src/rint.c] Added a comment about the mpfr_rint_* functions. 17154 17155 [src/rint.c] Simplified and fixed the mpfr_rint_* functions: in some 17156 corner cases, an intermediate overflow would not be propagated. No 17157 testcases added for this particular problem since huge precision 17158 numbers would be involved. 17159 171602015-06-02 Vincent Lefèvre <vincent@vinc17.net> 17161 17162 [doc/mpfr.texi] Added description of the flags for the mpfr_rint, 17163 mpfr_ceil, mpfr_floor, mpfr_round, mpfr_trunc functions. 17164 171652015-06-01 Vincent Lefèvre <vincent@vinc17.net> 17166 17167 [tests/trint.c] In the basic tests, test the flags. 17168 171692015-05-31 Vincent Lefèvre <vincent@vinc17.net> 17170 17171 [tests/trint.c] Corrections for r9476 and r9477. 17172 17173 [configure.ac] For the gcc compiler, better choice of the -W flags 17174 when the selected language is C++ (e.g. when CC=g++). 17175 171762015-05-29 Vincent Lefèvre <vincent@vinc17.net> 17177 17178 [tests/trint.c] Added basic tests of the mpfr_{trunc,floor,ceil,round} 17179 functions. 17180 17181 [tests/trint.c] Added basic tests of the mpfr_rint_* functions. 17182 17183 [doc/mpfr.texi] Added blank lines to improve readability. 17184 17185 [tests/trint.c] Updated the description (test_generic_round is now 17186 tested, which wasn't done at all before). 17187 17188 [tests/trint.c] Added generic tests for the mpfr_rint_* functions. 17189 Since all numbers in ]0,1/2[ round to the same value, in order to 17190 avoid redundant tests, increased the TEST_RANDOM_EMIN value to -20 17191 and set TEST_RANDOM_ALWAYS_SCALE to 1. 17192 Note: only these new tests generate an error if the change of the 17193 exponent range is no longer done in these mpfr_rint_* functions. 17194 171952015-05-29 Vincent Lefèvre <vincent@vinc17.net> 17196 17197 [tests] Added always_scale argument (boolean) to tests_default_random() 17198 so that when it is true, scaling is always performed on random numbers 17199 generated by mpfr_urandomb(), instead of preferring numbers of the order 17200 of magnitude of 1 for half outputs. This will be useful for mpfr_rint_* 17201 tests. 17202 17203 For tgeneric.c, the value of this argument is controlled by a new macro 17204 TEST_RANDOM_ALWAYS_SCALE (0 by default, which corresponds to the current 17205 behavior). For the other tests that call tests_default_random(), the 17206 argument is set to 0, so that the behavior remains the same. 17207 172082015-05-29 Vincent Lefèvre <vincent@vinc17.net> 17209 17210 [doc/mpfr.texi] Added a remark concerning the mpfr_rint_* functions. 17211 172122015-05-28 Vincent Lefèvre <vincent@vinc17.net> 17213 17214 [src] Fixed allocation issue for multithreaded applications: 17215 https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html 17216 * mpfr-gmp.{c,h}: made mpfr_allocate_func, mpfr_reallocate_func and 17217 mpfr_free_func thread-local; updated MPFR_GET_MEMFUNC to execute 17218 mp_get_memory_functions only when these pointers have not been set 17219 to the actual function pointers yet. 17220 * mpfr-impl.h: #include "mpfr-thread.h" earlier (before mpfr-gmp.h, 17221 where MPFR_THREAD_ATTR is now used). 17222 172232015-05-25 Vincent Lefèvre <vincent@vinc17.net> 17224 17225 [src/mpfr-gmp.c] Replaced mpfr_allocate_func and mpfr_free_func 17226 by __gmp_allocate_func and __gmp_free_func in mpfr_tmp_allocate 17227 and mpfr_tmp_free respectively, fixing the crash in talloc. 17228 See: https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html 17229 17230 [tests/talloc.c] Avoid a failure with --with-gmp-build due to the fact 17231 that the MPFR_ALLOCA_MAX macro is not defined in this case. 17232 172332015-05-23 Vincent Lefèvre <vincent@vinc17.net> 17234 17235 Added libtool-tcc-rpath.patch from 17236 https://lists.gnu.org/archive/html/libtool-patches/2015-05/msg00000.html 17237 so that tcc can be used with libtool 2.4.3 to 2.4.6. 17238 In doc/README.dev, documented how to use this patch (before a release). 17239 17240 [tests] Added talloc.c and updated check_PROGRAMS in Makefile.am. 17241 This test detects an allocation bug added in r8813, which occurs 17242 if mpfr_tmp_allocate() is invoked before __gmp_allocate_func when 17243 the GMP build is not used (thus this bug is not visible in most 17244 code since mpfr_init2 is generally called first, directly or not, 17245 and it uses __gmp_allocate_func). Details: 17246 https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html 17247 17248 [tests/{tstdint.c,tvalist.c}] Added missing #include "mpfr-test.h" 17249 (detected with gcc -Werror=implicit-function-declaration), needed 17250 since r9447. 17251 172522015-05-22 Vincent Lefèvre <vincent@vinc17.net> 17253 17254 [src/mpfr-gmp.c] Code formatting. 17255 17256 [tests/tstckintc.c] Fixed undefined behavior (invalid pointer). 17257 17258 Define MPFR_ALLOCA_MAX macro: Maximum size for the use of alloca by 17259 temporary allocations (default: 16384). 17260 17261 [tests/{tstdint.c,tvalist.c}] Use tests_start_mpfr / tests_end_mpfr, 17262 in particular to detect a wrong MPFR version (due to a libtool bug). 17263 172642015-05-21 Vincent Lefèvre <vincent@vinc17.net> 17265 17266 [autogen.sh] Exit with the exit status of autoreconf. Thus a failure 17267 will be noticed more easily. 17268 17269 [NEWS] Update. 17270 17271 [acinclude.m4] Added a comment about memmove and memset being considered 17272 to be missing when gcc -Werror is used, because of a "conflicting types 17273 for built-in function" error. 17274 17275 [acinclude.m4] Various corrections in the tests: 17276 * MPFR_CHECK_MP_LIMB_T_VS_LONG was always failing due to a typo. 17277 * MPFR_FUNC_GMP_PRINTF_SPEC: missing #include <string.h> for strcmp. 17278 * Replaced rint by nearbyint in messages (as nearbyint is tested). 17279 * Avoid warnings to avoid failures when -Werror is used. 17280 172812015-05-20 Vincent Lefèvre <vincent@vinc17.net> 17282 17283 [tests/{tcmp_d.c,tcmp_ld.c,tget_d.c}] Avoid warnings concerning unused 17284 variables when MPFR_ERRDIVZERO is defined (useful with -Werror). 17285 17286 [tests/tests.c] Avoid a warning concerning an unused variable 17287 when HAVE_DENORMS is not defined (useful with -Werror). 17288 172892015-05-19 Vincent Lefèvre <vincent@vinc17.net> 17290 17291 [doc/mpfr.texi] Improved mpfr_swap description again. 17292 17293 [doc/mpfr.texi] Correction and improvements in the formatting. 17294 17295 [doc/mpfr.texi] Added a warning for mpfr_set_prec and mpfr_prec_round 17296 about allocation issue, as these functions change the precision of x. 17297 17298 [doc/mpfr.texi] Typo in the latest change. 17299 17300 [doc/mpfr.texi] Rewrote the mpfr_swap description. This should solve 17301 the documentation issue reported on: 17302 https://gforge.inria.fr/tracker/index.php?func=detail&aid=18954&group_id=136&atid=619 17303 173042015-05-18 Vincent Lefèvre <vincent@vinc17.net> 17305 17306 [doc/sum.txt] Update (preliminary steps). 17307 173082015-05-13 Vincent Lefèvre <vincent@vinc17.net> 17309 17310 [doc/sum.txt] Started the rewrite of the doc. 17311 173122015-05-06 Vincent Lefèvre <vincent@vinc17.net> 17313 17314 [NEWS] Update concerning mpfr_sum. 17315 17316 [doc/mpfr.texi] Update concerning mpfr_sum. 17317 17318 [doc/sum.txt] The specification of the sign of a zero result only 17319 applies to an exact zero, of course (for an inexact zero result, 17320 the usual rule of the rounding mode is applied). 17321 17322 [tests/t[ne]random_chisq.c] Fixed memory leak (detected by GCC's 17323 AddressSanitizer). 17324 17325 [doc/README.dev] "To make a release": Test with GCC's AddressSanitizer 17326 (-fsanitize=address). 17327 17328 [tests/tabort_defalloc*.c] Disable the tests if __SANITIZE_ADDRESS__ 17329 is defined, i.e. when GCC's AddressSanitizer is used, because it 17330 reports the error before GMP can do the abort. 17331 173322015-05-05 Vincent Lefèvre <vincent@vinc17.net> 17333 17334 [tests/tests.c] Make tests_default_random() more intuitive, avoiding 17335 automatic changes of the current exponent range in some cases: instead 17336 of adding some random exponent in [emin,emax] to the exponent of the 17337 random number x in ]0,1[, force this random exponent to be the one of 17338 x, so that its exponent is guaranteed to be in [emin,emax]. This avoids 17339 a failure in tsum due to the fact that the exponent range was changed 17340 automatically (and not restored). 17341 17342 [tests/tsum.c] In cancel(), increase the number of tests from 8 to 1000. 17343 This is much more, but the test is fast compare to other ones so that 17344 the running time increases by a few percents only. And this triggers a 17345 new bug: the exponent range is not restored (on a 64-bit machine). 17346 17347 [tests/tsum.c] Changes in cancel(): 17348 * The fail-test was x[n] > bound instead of |x[n]| > bound, so that 17349 some failures could be missed. 17350 * More output in case of failure. 17351 * Handle underflow in the bound computation. This fixes an incorrect 17352 failure due to a bound rounded toward zero instead of toward +inf 17353 with GMP_CHECK_RANDOMIZE=1431478020 (found by the nightly tests). 17354 17355 [tools/nightly-test] Run "make check" with VERBOSE=1 in order to have 17356 tests/test-suite.log output in case of failure, now that Automake 1.13+ 17357 is used. 17358 173592015-04-28 Vincent Lefèvre <vincent@vinc17.net> 17360 17361 Added a TODO about mpfr_sum. 17362 173632015-04-24 Vincent Lefèvre <vincent@vinc17.net> 17364 17365 [configure.ac] Updated a comment about Automake 1.13. 17366 17367 [Makefile.am] Updated comment about ACLOCAL_AMFLAGS. 17368 17369 [TODO] Suggest to move some macro definitions from acinclude.m4 to the 17370 m4 directory as suggested by the Automake manual. 17371 173722015-04-23 Vincent Lefèvre <vincent@vinc17.net> 17373 17374 [doc/README.dev] Grouped everything about the test suite near the end 17375 of this file. Added information about how the test suite works since 17376 the full Automake 1.13 support (r8821). 17377 17378 To take into account that Automake 1.13 or later will be used: 17379 * doc/mpfr.texi, INSTALL: updates related to "make check". 17380 * configure.ac: require Automake 1.13 since the documentation now 17381 assumes that 1.13 or later is used (and because previous Automake 17382 versions are no longer tested). 17383 173842015-04-10 Vincent Lefèvre <vincent@vinc17.net> 17385 17386 [NEWS] Mention the complete rewrite of function mpfr_sum. 17387 17388 [tests/tsum.c] Added a comment about the latest fixed bug. 17389 17390 Merged the new-sum branch: 17391 * New feature for developers in order to improve the testsuite: 17392 value coverage checking (MPFR_COV_CHECK macro), allowing one 17393 to check whether some combinations of values are tested. See 17394 example of use in src/sum.c and tests/tsum.c files. 17395 * src/sum.c: full rewrite of mpfr_sum. Note: the documentation 17396 of the algorithm in doc/sum.txt is currently a bit obsolete. 17397 * tests/tsum.c: many new tests, some of them specifically written 17398 for the new algorithm and implementation. 17399 174002015-04-09 Vincent Lefèvre <vincent@vinc17.net> 17401 17402 [src/sum.c] Fixed bug: mpn functions do not accept a zero size argument. 17403 17404 [tests/tsum.c] Replaced a mpfr_inits by a mpfr_inits2. 17405 17406 [tests/tsum.c] Added a simple test that triggers a glibc free() error 17407 or segmentation fault when MPFR is configured with GMP 6.0.0 built 17408 with "--disable-alloca ABI=32". GCC's address sanitizer shows a 17409 heap-buffer-overflow. This is mainly for debugging as this problem 17410 also occurs in other tests (it is quite generic). 17411 17412 [tests/tsum.c] Removed a temporary comment. 17413 17414 Merged the latest changes from the trunk. 17415 17416 [tests/tsum.c] Added check_underflow test. 17417 174182015-04-08 Vincent Lefèvre <vincent@vinc17.net> 17419 17420 [tests/tsum.c] Comments. 17421 17422 [src/sum.c] Bug fix: use MPFR_EXP instead of MPFR_SET_EXP to set the 17423 exponent since it can be outside the current exponent range before 17424 it is checked with mpfr_check_range. Also added a static assertion 17425 (always satisfied in practice) to make sure that exponent related 17426 computations cannot yield an integer overflow. 17427 17428 [tests/tsum.c] Added check_overflow test, which triggers a bug. 17429 174302015-03-31 Vincent Lefèvre <vincent@vinc17.net> 17431 17432 [tests/tsum.c] Completed the cancel test (generic random tests with 17433 cancellations): check the bound on the result. 17434 17435 [tests/tsum.c] Improved the check4 test: 17436 * removed some not very useful tests to reduce the running time; 17437 * added tests checking "MPFR_RNDN, tmd=2, rbit=0, sst=1, negative", 17438 which was the only remaining one output by check_coverage (when 17439 MPFR_COV_CHECK is defined). 17440 17441 [tests/tsum.c] Reduced the check4 test because it was much too long 17442 compared to the other tests. The bug fixed in r9356 is still triggered 17443 and "MPFR_RNDN, tmd=2, rbit=0, sst=0, negative" is still checked. 17444 174452015-03-30 Vincent Lefèvre <vincent@vinc17.net> 17446 17447 [tests/tsum.c] Updated comment of the check4 test. 17448 17449 [src/sum.c] Bug triggered by the check4 test fixed. 17450 17451 [tests/tsum.c] Another correction in the check4 test. 17452 17453 [tests/tsum.c] In the check4 test, two terms didn't correspond to 17454 the formula given in the comment; corrected these terms (the same 17455 bug is triggered). 17456 17457 [tests/tsum.c] Forgot the h in the error message of the check4 test. 17458 17459 [tests/tsum.c] Extend the check4 test even further. 17460 17461 [tests/tsum.c] Extend the check4 test even further. 17462 17463 [tests/tsum.c] Added check4 test, which triggers a bug. 17464 174652015-03-27 Vincent Lefèvre <vincent@vinc17.net> 17466 17467 [src/sum.c] In the TMD detection: 17468 * improved variable nbits to decrease the number of operations; 17469 * added some comments; 17470 * fixed the shift count bug triggered by the bug20150327 test. 17471 17472 [tests/tsum.c] Added bug20150327 testcase. 17473 17474 [tests/tsum.c] Corrected test of the ternary values inex1 and inex2. 17475 174762015-03-20 Vincent Lefèvre <vincent@vinc17.net> 17477 17478 [tools/ck-copyright-notice] Bug fix and improvements. 17479 17480 [tools/ck-copyright-notice] More checks. 17481 174822015-03-19 Vincent Lefèvre <vincent@vinc17.net> 17483 17484 [src/sum.c] Do not consider the corrected sst for MPFR_COV_SET. 17485 17486 [tests/tsum.c] More tests. 17487 17488 [src/sum.c] Added comments. 17489 17490 [src/sum.c] In the final rounding, forgot to handle the possible 17491 exponent change in the negative case with corr == 2. 17492 174932015-03-17 Vincent Lefèvre <vincent@vinc17.net> 17494 17495 [tests/tsum.c] Improved the check3 tests, which were added in the 17496 latest commit. They now trigger an assertion failure in sum.c. 17497 17498 [tests/tsum.c] New tests. 17499 17500 [tests/tsum.c] Value coverage checking: tmd can be 2 only for MPFR_RNDN. 17501 175022015-03-16 Vincent Lefèvre <vincent@vinc17.net> 17503 17504 [src/sum.c] Better logging. 17505 17506 [src/sum.c] Bug fix: the sum_raw code was unnecessarily assuming 17507 too much; thus, removed too parameters, which can be very easily 17508 recomputed only when they make sense. 17509 175102015-03-12 Vincent Lefèvre <vincent@vinc17.net> 17511 17512 [doc/sum.txt] Added a new table concerning the correction term. 17513 [src/sum.c] Updated rounding. 17514 175152015-03-10 Vincent Lefèvre <vincent@vinc17.net> 17516 17517 [src/sum.c] Added comments on the correction. Minor changes in the code. 17518 175192015-03-06 Vincent Lefèvre <vincent@vinc17.net> 17520 17521 [doc/README.dev] Added information on how to do type punning 17522 (something we already did, but with no justification yet). 17523 175242015-02-27 Vincent Lefèvre <vincent@vinc17.net> 17525 17526 [doc/sum.txt] Updated TODO. 17527 17528 [doc/sum.txt] Added TODO (since the description is a bit obsolete). 17529 17530 [src/sum.c] In the latest commit, the temporary area was split for 17531 the computations that determine the sign of the error term in case 17532 the TMD occurs, as these computations occur earlier in the code. 17533 This was actually not necessary since the content of the accumulator 17534 has already been copied to the final destination (only sign handling 17535 and rounding have not been done yet, but they entirely take place in 17536 the destination). As a consequence, let's revert the code related to 17537 this split. The actual changes concerning the merge of pre-rounding 17538 and final rounding can be seen with "svn diff -r 9328:9330". 17539 17540 [src/sum.c] 17541 * Removed any reference to the obsolete step numbering. 17542 * Merged pre-rounding and final rounding, simplifying the code. 17543 The correction value still needs to be fixed. 17544 17545 [src/sub1sp.c] Avoid an unnecessary mpn_lshift after an mpn_sub_1 when 17546 the initial value was a power of two. 17547 17548 [src/next.c] Avoid an unnecessary loop when the exponent decreases. 17549 175502015-02-26 Vincent Lefèvre <vincent@vinc17.net> 17551 17552 [tests/tsum.c] Improved test portability. 17553 17554 [tests/tsum.c] New tests. 17555 17556 [src/sum.c] Completed the implementation (but there's still a bug). 17557 17558 [tests/tsum.c] New tests. 17559 175602015-02-25 Vincent Lefèvre <vincent@vinc17.net> 17561 17562 [src/sum.c] Improved the setting of sst (Step 8), using the fact 17563 that the accumulator is 0 iff cancel = 0. 17564 17565 [src/sum.c] Bug fix: when determining the sticky bit, the search was 17566 starting at the rounding bit instead of the bit following it. 17567 17568 [tests/tsum.c] New tests. 17569 17570 [src/sum.c] More logging. 17571 17572 [tests/tsum.c] In the generic test, also test with negative numbers. 17573 17574 Updated value coverage checking for mpfr_sum. 17575 17576 [doc/README.dev] Document the new MPFR_COV_CHECK macro. 17577 17578 Value coverage checking when MPFR_COV_CHECK is defined, initially 17579 for mpfr_sum. 17580 17581 [src/sum.c] Bug fix in the ternary value. 17582 17583 [tests/tsum.c] Added check of the ternary value. 17584 17585 [src/sum.c] Removed incorrect assertions. 17586 17587 [tests/tsum.c] Re-enabled cancel() test. 17588 175892015-02-24 Vincent Lefèvre <vincent@vinc17.net> 17590 17591 [src/sum.c] Update. 17592 17593 [src/sum.c] Update. 17594 17595 [src/sum.c] Use the new SAFE_DIFF macro. 17596 17597 Merged the latest changes from the trunk (r9306). 17598 17599 [src/mpfr-impl.h] Added SAFE_DIFF macro (safe difference). 17600 17601 [src/sum.c] Fixed a test. 17602 17603 [src/sum.c] Better logging. 17604 17605 [src/sum.c] Minor correction of last change of a comment. 17606 17607 [src/sum.c] More logging and comments. 17608 17609 [src/sum.c] Fixed bug introduced in r9294 (minexp wasn't updated). 17610 17611 [src/sum.c] Log the value of tq. 17612 17613 [src/sum.c] Bug fix. 17614 17615 [src/sum.c] Virtually eliminate halfway cases by making them equivalent 17616 to a non-halfway case. 17617 176182015-02-21 Vincent Lefèvre <vincent@vinc17.net> 17619 17620 [src/sum.c] Update. 17621 17622 Merged the latest changes from the trunk (r9295). 17623 17624 [src/mpfr-impl.h] Fixed and improved some sign-related macros 17625 (some parentheses were missing). 17626 17627 [src/sum.c] Update: sum_raw, with a new prototype, now reiterates until 17628 the error bound is acceptable; thus the "while" loops have been removed 17629 from sum_aux. 17630 176312015-02-20 Vincent Lefèvre <vincent@vinc17.net> 17632 17633 [tests/tsum.c] Increased the number of tests to get 2 current failures 17634 with a "break" in the last loop of sum.c (m = 438, m = 3780), without 17635 the exit() in the generic test. Improved error message. 17636 17637 [tests/tsum.c] Completely rewrote the generic test (now allows one to 17638 detect that the implementation is incomplete when adding a "break" in 17639 the last loop of sum.c). 17640 176412015-02-19 Vincent Lefèvre <vincent@vinc17.net> 17642 17643 [tests/tsum.c] Run bug20131027 in each rounding mode. 17644 17645 [src/sum.c] Fixed sum_raw. 17646 176472015-02-18 Vincent Lefèvre <vincent@vinc17.net> 17648 17649 [src/sum.c] More logging. 17650 17651 Merged the latest changes from the trunk. 17652 17653 Logging: the log stream is flushed after each log output when 17654 the MPFR_LOG_FLUSH environment variable is set. 17655 17656 Factorized the logging macros by moving tests inside LOG_PRINT. 17657 17658 [src/sum.c] Correction. Set the exponent. 17659 17660 [src/sum.c] Added a log message. 17661 17662 [src/sum.c] Bug fix: I had inverted positive and negative. 17663 176642015-02-13 Vincent Lefèvre <vincent@vinc17.net> 17665 17666 [tests/tsum.c] Removed the obsolete mpfr_sum_sort related test 17667 (which could obviously no longer compile), so that I can start 17668 debugging before finishing the implementation. 17669 17670 Merged the latest changes from the trunk. 17671 17672 [doc/mpfr.texi] Updated the month. 17673 17674 Copyright notice update: added 2015 with 17675 perl -pi -e 's/ (\d{4}-)?(2014)(?= Free Software)/ 17676 " ".($1||"$2-").($2+1)/e' **/*(^/) 17677 under zsh, reverting the tools/mbench directory (not distributed with 17678 MPFR). Removed 2014 from the example in the doc/README.dev file. 17679 176802015-02-12 Vincent Lefèvre <vincent@vinc17.net> 17681 17682 [src/sum.c] Copyright notice update. 17683 17684 [src/sum.c] Split mpfr_sum into mpfr_sum (handling special cases) 17685 and sum_aux (generic case only). Revised some comments. 17686 17687 [src/sum.c] When updating minexp, detect a potential integer overflow 17688 first (macro UPDATE_MINEXP). Updated comments. 17689 17690 [src/sum.c] Logging of sum_raw: log *cancelp at the end. 17691 17692 [src/sum.c] Update (Step 8). 17693 17694 [src/sum.c] Corrected/improved logging. 17695 176962015-01-23 Vincent Lefèvre <vincent@vinc17.net> 17697 17698 Added algorithms.fls (generated by latexmk) to svn:ignore property. 17699 177002015-01-21 Vincent Lefèvre <vincent@vinc17.net> 17701 17702 [tests/tfpif.c] Updated a mpfr_set_zero line for consistency and 17703 better readability. 17704 17705 [tools/mpfrlint] Added mpfr_set_(inf|zero) tests on the sign. 17706 17707 [tests/tset.c] More mpfr_set_inf tests. 17708 17709 [tests/tset.c] More mpfr_set_zero tests. 17710 17711 [tools/mbench/timp.h] Spelling mistake in a comment. 17712 177132014-12-17 Vincent Lefèvre <vincent@vinc17.net> 17714 17715 [src/sum.c] Added a TODO. 17716 17717 [src/sum.c] Added missing closing parenthesis from r9257. Step 8 update. 17718 17719 [doc/sum.txt] Step 8: renamed "sgn" to "sst". 17720 17721 [doc/sum.txt] Merged old Step 9 with Step 8; minor changes. 17722 17723 [src/sum.c] Avoid a loop in some cases. 17724 17725 [src/sum.c] Remember the rounding bit for Step 9; correction for 17726 halfway cases in round to nearest. 17727 17728 [doc/mpfr.texi] Updated the month. 17729 177302014-12-16 Vincent Lefèvre <vincent@vinc17.net> 17731 17732 [NEWS] Added an item about improved caching. 17733 [NEWS,doc/mpfr.texi] In particular, mention the minimum of 10% increase 17734 of the precision (done in r8967). 17735 17736 [NEWS] Note that the behavior of the mpfr_set_exp function changed. 17737 [src/Makefile.am] As this changed the ABI (the old, unwise behavior 17738 was documented), reset -version-info age. This is not that bad since 17739 there are other changes in the behavior, though regarded as bugs or 17740 previously undocumented behavior. 17741 17742 Moved src/sum.txt into the doc directory, and updated the reference 17743 in src/sum.c. 17744 177452014-12-12 Vincent Lefèvre <vincent@vinc17.net> 17746 17747 [src/sum.txt] Update (Step 9). 17748 17749 [src/sum.txt] Correction. 17750 177512014-12-11 Vincent Lefèvre <vincent@vinc17.net> 17752 17753 [src/sum.*] Update. 17754 177552014-12-04 Vincent Lefèvre <vincent@vinc17.net> 17756 17757 [doc/README.dev] Mention the tools/build-patch script. 17758 177592014-12-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17760 17761 pointed to Feature Request 17762 177632014-11-28 Vincent Lefèvre <vincent@vinc17.net> 17764 17765 [src/sum.c] Determine the number of cancelled bits in sum_raw instead 17766 of the main loop, since it will also be useful in Step 8. 17767 17768 [src/sum.*] Update (Step 8). 17769 177702014-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17771 17772 fixed issue reported by Dan Grayson: 17773 https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=18314&group_id=136 17774 177752014-11-13 Vincent Lefèvre <vincent@vinc17.net> 17776 17777 [tools/mpfrlint] Minor change concerning mp_limb_t. 17778 177792014-11-12 Vincent Lefèvre <vincent@vinc17.net> 17780 17781 Style improvements. 17782 17783 [src/exp_2.c] Improved t = 0 test. 17784 17785 [src/exp_2.c] Fixed a bug added in r9233 (a case t = 0 was no longer 17786 taken into account). 17787 17788 [src/exp_2.c] GNU coding style. 17789 177902014-11-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17791 17792 improve mpfr_exp2 (patch from Patrick Pelissier) 17793 177942014-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 17795 17796 improve mpfr_atan for small precision (patch from Patrick Pelissier) 17797 17798 added check for libquadmath (not used) 17799 178002014-11-03 Vincent Lefèvre <vincent@vinc17.net> 17801 17802 [src/cache.c] Improved mpfr_clear_cache in case mpfr_free_cache is 17803 called often (like with GC-based systems). Patch by Patrick Pélissier. 17804 17805 [src] Applied patch by Patrick Pélissier to allocate some constant-size 17806 MPFR numbers on the stack instead of using mpfr_init2, and replace some 17807 MPFR_ASSERTN by MPFR_ASSERTD. 17808 178092014-10-31 Vincent Lefèvre <vincent@vinc17.net> 17810 17811 [src/get_str.c] Improved comments. 17812 178132014-10-30 Vincent Lefèvre <vincent@vinc17.net> 17814 17815 [src/get_str.c] Free the temporary memory allocated in the Ziv loop ASAP 17816 and at a single place (the code should be clearer like that). 17817 17818 [src/get_str.c] Code refactoring. 17819 17820 [tests/tget_str.c] Code formatting. 17821 17822 [tests/tget_str.c] Fixed a test that made mpfr_get_str crash with 17823 logging (even when the base is invalid, the MPFR number must be 17824 initialized). 17825 17826 [src/check.c] Added a note saying that mpfr_check() must not be called 17827 on statically allocated numbers (only used inside MPFR). 17828 [src/get_str.c] Removed the "MPFR_ASSERTD (mpfr_check (p));" (added in 17829 previous commit) because of that. 17830 17831 [src/get_str.c] Added some logging (MPFR_LOG_*), which triggers a crash 17832 in tget_str with MPFR_LOG_ALL=1. An analysis with gdb shows that this 17833 is due to an invalid MPFR number in mpfr_ceil_mul(). Added a 17834 MPFR_ASSERTD (mpfr_check (p)); 17835 there, which fails in tget_str (this was the cause of the crash), even 17836 without logging. 17837 178382014-10-29 Vincent Lefèvre <vincent@vinc17.net> 17839 17840 mpfr_get_str now sets the NaN flag on NaN input. See: 17841 https://sympa.inria.fr/sympa/arc/mpfr/2014-10/msg00013.html and 17842 https://gforge.inria.fr/tracker/index.php?func=detail&aid=18228&group_id=136&atid=619 17843 Also completed the mpfr_get_str description in mpfr.texi concerning 17844 the special numbers and the exception flags. 17845 178462014-10-28 Vincent Lefèvre <vincent@vinc17.net> 17847 17848 [doc/mpfr.texi] Updated the month. 17849 17850 [doc/mpfr.texi] Removed a spurious "an". 17851 17852 [src/get_str.c] Improved style consistency. 17853 17854 [doc/mpfr.texi] In the mpfr_get_str description, note that the type 17855 mpfr_exp_t is large enough to hold the exponent in all cases. 17856 17857 [doc/mpfr.texi] Improved mpfr_get_str description concerning the 17858 returned pointer (it was ambiguous in the case of an invalid base). 17859 178602014-10-09 Vincent Lefèvre <vincent@vinc17.net> 17861 17862 [tests/tests.c] Updated the error message last changed. 17863 17864 [tests/tests.c] Updated the error message last changed + comment. 17865 178662014-10-08 Vincent Lefèvre <vincent@vinc17.net> 17867 17868 [tests/Makefile.am] Added a reference to the bug I've just reported 17869 against GNU Automake (completing the other references). 17870 17871 [tests/tests.c] Updated the error message last changed. 17872 178732014-10-07 Vincent Lefèvre <vincent@vinc17.net> 17874 17875 [tests/tests.c] Changed an error message. 17876 178772014-10-06 Vincent Lefèvre <vincent@vinc17.net> 17878 17879 [src/sum.txt] Update. 17880 17881 [src/sum.c] Improved a comment. 17882 17883 [src/sum.c] Got rid of maxexp2 in the mpfr_sum function, since after the 17884 sum in the main iteration, the old maxexp value is no longer needed: 17885 it's simpler to reuse maxexp for maxexp2 since maxexp2 will be the new 17886 maxexp value at the next iteration. 17887 [src/sum.txt] Update, in particular concerning the variables used in the 17888 implementation. 17889 178902014-09-09 Vincent Lefèvre <vincent@vinc17.net> 17891 17892 [tests] Corrections for builds with "config.h". 17893 178942014-08-26 Vincent Lefèvre <vincent@vinc17.net> 17895 17896 [src/sum.c] Reset copyright years to 2014 since the whole file is 17897 being rewritten from scratch (i.e. everything is new material). 17898 17899 [src/sum.txt] Update. 17900 179012014-08-25 Vincent Lefèvre <vincent@vinc17.net> 17902 17903 [src/sum.*] Update (Step 7, including a part of Step 8 in Step 7). 17904 17905 [src/sum.c] Correction (Step 7). 17906 17907 [src/sum.c] Corrected r9197 (two "else" branches were mixed up), and 17908 update (Step 8). 17909 17910 [src/sum.c] Correction when determining the early value of inex. 17911 17912 [src/sum.c] Update (Step 8). 17913 17914 [src/sum.txt] Update about the value of d. 17915 17916 [src/sum.c] Added comments for Step 7 about carry and inex. 17917 179182014-08-22 Vincent Lefèvre <vincent@vinc17.net> 17919 17920 Merged the latest changes from the trunk (here, tools/mpfrlint). 17921 17922 [tools/mpfrlint] Avoid false positives in the check of MPFR_LOG_MSG. 17923 17924 [src/sum.*] Update (Step 7). 17925 179262014-08-21 Vincent Lefèvre <vincent@vinc17.net> 17927 17928 [src/sum.txt] Updated Note 2 again. 17929 17930 [src/sum.txt] Updated Note 2. 17931 17932 [src/sum.*] Various corrections, and update. 17933 17934 Merged the latest changes from the trunk. 17935 17936 [src] Cleaner use of MPFR_SET_SIGN. 17937 179382014-08-19 Vincent Lefèvre <vincent@vinc17.net> 17939 17940 [src/sum.c] Updated comments. 17941 17942 [src/sum.c] Update (Step 7). 17943 17944 [src/sum.c] Improved description of sum_raw. 17945 17946 [src/sum.c] Added description of sum_raw. 17947 179482014-08-18 Vincent Lefèvre <vincent@vinc17.net> 17949 17950 [src/sum.c] Suppressed a level of block (which became rather useless 17951 now that Step 3 has been moved to a separate function). 17952 17953 [src/sum.c] Moved Step 3 to a separate auxiliary function sum_raw. 17954 17955 [src/sum.c] Renamed variables: p -> x, pe -> xe, pq -> xq (because 17956 the p suffix is used here for pointers to mp_limb_t). 17957 17958 [src/sum.c] Updated comments. 17959 179602014-08-17 Vincent Lefèvre <vincent@vinc17.net> 17961 17962 [TODO] Added item on tests (mpfr.h macros vs mpfr-impl.h). 17963 17964 [src/mpfr.h] Fixed the mpfr_signbit() macro, which depended on 17965 mpfr-impl.h (the problem wasn't detected in the tests since mpfr-impl.h 17966 is included in them). Thanks to Rob for the bug report. 17967 179682014-08-14 Vincent Lefèvre <vincent@vinc17.net> 17969 17970 [src/sum.*] Update (Step 7). 17971 179722014-08-13 Vincent Lefèvre <vincent@vinc17.net> 17973 17974 [src/sum.txt] Update. 17975 17976 [src/sum.txt] Update (another tricky case). 17977 179782014-08-12 Vincent Lefèvre <vincent@vinc17.net> 17979 17980 [src/sum.txt] Update. 17981 17982 [src/sum.txt] Update. 17983 179842014-08-11 Vincent Lefèvre <vincent@vinc17.net> 17985 17986 [src/sum.*] Completed Step 6. 17987 179882014-08-08 Vincent Lefèvre <vincent@vinc17.net> 17989 17990 [src/sum.txt] Update. 17991 17992 [src] Moved the comment about the mpfr_sum algorithm from sum.c to 17993 a new file sum.txt (this will later go into algorithms.tex). 17994 179952014-08-06 Vincent Lefèvre <vincent@vinc17.net> 17996 17997 [src/sum.c] Updated the algorithm. 17998 17999 [src/sum.c] Updated the algorithm. 18000 180012014-08-05 Vincent Lefèvre <vincent@vinc17.net> 18002 18003 [src/sum.c] Added some log messages. 18004 18005 Merged the latest changes from the trunk (but reverted tests/tsum.c). 18006 18007 [tools/mpfrlint] Improved check of MPFR_LOG_MSG. 18008 18009 [tools/mpfrlint] Replaced {src,tests}/*.{c,h} by $srctests. 18010 18011 [src/ai.c] Corrected log messages. 18012 18013 [doc/mpfr.texi] Updated the month. 18014 18015 Update concerning the P type specifier for formatted output, since 18016 mpfr_prec_t was changed to a signed type in MPFR 3.0.0. 18017 * doc/mpfr.texi: d and i can be used (o, u, x, and X are still OK 18018 in practice since a mpfr_prec_t value is usually nonnegative); 18019 changed a "unsigned int" to "int". 18020 * src/vasprintf.c: updated a comment. 18021 180222014-07-23 Vincent Lefèvre <vincent@vinc17.net> 18023 18024 [tests/mpf_compat.h] Fixed a bug (mpf_set_prec_raw usage with GMP/MPF). 18025 18026 [tests] 18027 * mpfr-test.h: no longer include <stdio.h> right here since the 18028 included mpfr-impl.h does that and even better for C++. 18029 * mpf_compat.c, mpfr_compat.c: include mpfr-test.h as it does useful 18030 things (in particular, include config.h via mpfr-impl.h if there 18031 is one, and define __MPFR_TEST_H__ for mpfr-impl.h). 18032 * mpf_compat.h: no longer include some headers already included 18033 via mpfr-test.h (see above change); added tests_start_mpfr and 18034 tests_end_mpfr (showing memory inconsistency with mpf_compat). 18035 180362014-07-20 Vincent Lefèvre <vincent@vinc17.net> 18037 18038 [src/get_str.c] Coding style: better code for a boolean. 18039 180402014-07-17 Vincent Lefèvre <vincent@vinc17.net> 18041 18042 [src/sum.c] Update. 18043 180442014-07-10 Vincent Lefèvre <vincent@vinc17.net> 18045 18046 [doc/README.dev] "To make a release": check also without mpz_t caching. 18047 18048 [tools/ck-copyright-notice] Ignore src/mini-gmp.[ch] files. 18049 [tools/mpfrlint] 18050 * Ignore src/mini-gmp.[ch] files for some tests. 18051 * Check that __gmp[nz]_ functions are not used (with 2 exceptions), 18052 since this breaks the support of mini-gmp and may also break 18053 future/modified GMP versions. 18054 Note: only code added in r8911 (mpz_t caching) currently fails to 18055 follow this rule. 18056 18057 Do not test include guards before a #include: the test must be done only 18058 in the included file itself. Note that some files such as mpfr.h may 18059 have multiple parts that could be enabled depending on the context, so 18060 that testing a guard before a #include may yield incorrect behavior. 18061 180622014-07-09 Vincent Lefèvre <vincent@vinc17.net> 18063 18064 [doc/README.dev] Updated the list of macros used for building and 18065 checking MPFR. 18066 18067 [acinclude.m4] Corrected a message. 18068 180692014-07-08 Vincent Lefèvre <vincent@vinc17.net> 18070 18071 Renamed the MPFR_TEST_DIVBYZERO macro to MPFR_TESTS_DIVBYZERO 18072 for consistency with MPFR_TESTS_TIMEOUT. 18073 180742014-07-07 Vincent Lefèvre <vincent@vinc17.net> 18075 18076 [tests] Minor improvements. 18077 18078 [tests/reuse.c,tests/taway.c] Added mpfr_ai and mpfr_digamma. 18079 18080 [tests/tmul_d.c] Minor improvement. 18081 18082 [src/mul.c] Fixed a test when MPFR_WANT_ASSERT >= 2 (NaN with non-NaN 18083 was not detected as an error). 18084 18085 [src] MPFR_WANT_ASSERT clean-up. 18086 Note: the mul.c test for MPFR_WANT_ASSERT >= 3 is now enabled for 18087 MPFR_WANT_ASSERT = 2 (since setting MPFR_WANT_ASSERT to 3 was not 18088 possible with configure options), and fixed. 18089 18090 Added debug of branch prediction / --enable-debug-prediction configure 18091 option (patch from Patrick Pélissier, with some changes). 18092 180932014-07-02 Vincent Lefèvre <vincent@vinc17.net> 18094 18095 [src/round_raw_generic.c] Updated comment about MPFR_RNDNA. 18096 18097 [doc/mini-gmp] Added a note about MPFR_USE_MINI_GMP. 18098 18099 [doc/README.dev] Added an item on the use of GMP functions. 18100 18101 [doc/README.dev] "To make a release": test with mini-gmp. 18102 18103 Removed the need of MPFR_USE_MINI_GMP tests for mpfr_[ne]random 18104 functions (source and tests) as mpfr_random_deviate_value no longer 18105 needs mpq_t (since r9066). Also removed a static assertion in 18106 src/random_deviate.c for the same reason. 18107 Note: the change done in r9133 is now really useful! 18108 18109 [src/mpfr.h] Added other missing "#ifndef MPFR_USE_MINI_GMP". 18110 18111 [tests/t[ne]random.c] Code clean-up: added !defined(MPFR_USE_MINI_GMP) 18112 to protect mpfr_printf. This is actually not needed due to the initial 18113 "#ifndef MPFR_USE_MINI_GMP" but this is for a different reason. 18114 18115 [tests/t[ne]random.c] Reverted the changes done in r9126,9127,9130 18116 and added a proper comment. 18117 18118 [src/mpfr.h] Added a missing "#ifndef MPFR_USE_MINI_GMP" 18119 (not really useful, but cleaner). 18120 18121 [tests/t[ne]random.c] Fixed the change done in r9126 and r9127. 18122 18123 Renamed WANT_MINI_GMP to MPFR_USE_MINI_GMP as it is used in mpfr.h 18124 (all MPFR macros that appear there should start with MPFR_ to avoid 18125 conflicts with other software). 18126 18127 [tools/mpfrlint] Detect the possible use of forbidden macros in mpfr.h. 18128 18129 [tests/terandom.c] Put the WANT_MINI_GMP test at the right place, like 18130 what has been done for "tests/tnrandom.c". 18131 18132 [tests/tnrandom.c] Put the WANT_MINI_GMP test at the right place 18133 (at the same time of the HAVE_STDARG test), but this should be 18134 improved in the future, e.g. with a HAVE_MPFR_PRINTF macro. 18135 181362014-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18137 18138 added comment 18139 181402014-07-02 Vincent Lefèvre <vincent@vinc17.net> 18141 18142 [src/mul.c] Minor correction of a comment. 18143 181442014-07-01 Vincent Lefèvre <vincent@vinc17.net> 18145 18146 [tests/trandom_deviate.c] Correction (fprintf format). 18147 181482014-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18149 18150 patch from Charles Karney: 18151 > Here is the patch which repeats the chi-squared tests in the case of 18152 > suspiciously high values. The probability of a false positive is now 18153 > 1/10^9. I also got rid of the mpfr_printf's. 18154 181552014-06-30 Vincent Lefèvre <vincent@vinc17.net> 18156 18157 [tools/build-patch] 18158 * Removed unnecessary quotes for better readability (this is zsh). 18159 * When <patchlevel> (second argument) is used, use the correct name 18160 for the generated patch; at the same time, fixed a checkobj call. 18161 * Added comment about typical usage. 18162 18163 [tools/build-patch] Correction if MPFR_CURRENT_DIR is set: to make sure 18164 that it is always up-to-date, we want to allow it to be a symlink (e.g. 18165 .../mpfr-current), so that we want to call realpath on it. 18166 18167 Added tools/build-patch zsh script to transform a raw patch into a patch 18168 to be put on the MPFR www server. 18169 18170 [src/mpfr.h] For the mpfr_{mul,div}_si macros: s/positive/non-negative/ 18171 18172 [configure.ac] Correction of two "configure --help" messages 18173 (from Patrick Pélissier and other changes). 18174 18175 [src/mpfr.h] Coding style. 18176 18177 New macros for mpfr_{mul,div}_ui to optimize the call when the integer 18178 is a constant number that is a power of 2. 18179 New macros for mpfr_{mul,div}_si to optimize the call when the integer 18180 is a constant number that is positive. 18181 (Modified patch from Patrick Pélissier) 18182 181832014-06-26 Vincent Lefèvre <vincent@vinc17.net> 18184 18185 [src/vasprintf.c] Improved comments. 18186 18187 [src/vasprintf.c] Fixed assertion failures for tiny numbers (the code 18188 was correct, but the assertions didn't check against the right bound). 18189 18190 [src/div.c] Bug fix: avoid integer overflow in the code added in r9086 18191 (now tdiv no longer fails). 18192 18193 [src/div.c] Bug fix: avoid an integer overflow when dividing the 18194 largest finite MPFR number by the smallest positive one. 18195 (merged changeset r9105 from the 3.1 branch) 18196 18197 [tests/tdiv.c] Forgot "exit (1);". 18198 18199 [tests/tdiv.c] Added mpfr_div tests on extreme values. This detects 18200 2 problems (at least on a 64-bit machine): a result is not a valid 18201 MPFR number (mpfr_check fails) and the flags are incorrect. 18202 182032014-06-25 Vincent Lefèvre <vincent@vinc17.net> 18204 18205 [tests/tsprintf.c] Fixed test added in r9099 (the problem was unrelated 18206 to the bug in vasprintf.c). 18207 18208 [tests/tsprintf.c] Added a test with the minimum exponent 18209 (currently triggers an assertion failure in vasprintf.c). 18210 182112014-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18212 18213 define MPFR_SKIP_EXTREME to avoid currently failing tsum test 18214 182152014-06-25 Vincent Lefèvre <vincent@vinc17.net> 18216 18217 [tests/tsum.c] Do not run the check_extreme test (which currently fails) 18218 when the MPFR_SKIP_EXTREME environment variable is defined. 18219 182202014-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18221 18222 reconfigure for mpfrbench 18223 18224 speedup in mpfr_div for n/n division, using mpz_tdiv_q 18225 182262014-06-25 Vincent Lefèvre <vincent@vinc17.net> 18227 18228 [tools/mpfrlint] Check when simple mp_limb_t constants could be used 18229 (MPFR_LIMB_ZERO, MPFR_LIMB_ONE, and MPFR_LIMB_MAX). 18230 18231 Merged the latest changes from the trunk. 18232 18233 Use MPFR_IS_NEG and MPFR_IS_POS instead of comparing the sign with 0. 18234 Done with 18235 perl -pi -e ' 18236 s/MPFR_SIGN *\(([^)]+)\) *<=? *0/MPFR_IS_NEG ($1)/g; 18237 s/MPFR_SIGN *\(([^)]+)\) *>=? *0/MPFR_IS_POS ($1)/g; 18238 ' {src,tests}/*.{c,h} 18239 and some manual changes. 18240 18241 More code clean-up (for both consistency and readability): 18242 * Use the simple mp_limb_t constants when possible. 18243 * New internal macro MPFR_IS_NORMALIZED. 18244 Note: this was done with 18245 perl -pi -e ' 18246 s/~ *\(mp_limb_t\) *0/MPFR_LIMB_MAX/g; 18247 s/\(mp_limb_t\) *-1/MPFR_LIMB_MAX/g; 18248 s/\(mp_limb_t\) *0/MPFR_LIMB_ZERO/g; 18249 s/\(mp_limb_t\) *1L?/MPFR_LIMB_ONE/g' {src,tests}/*.{c,h} 18250 svn revert src/mpfr-impl.h 18251 and some manual changes. 18252 18253 Code clean-up: 18254 * Simplified the definition of simple mp_limb_t constants: it is 18255 better to avoid GMP internals when there is a standard way. 18256 * Replaced the use of MP_LIMB_T_MAX by the new macro MPFR_LIMB_MAX. 18257 * So, removed the now useless MP_LIMB_T_MAX and GMP_LIMB_HIGHBIT 18258 definitions from "mpfr-gmp.h". 18259 18260 [src/mpfr-mini-gmp.h] GMP_NUMB_MASK is no longer needed. 18261 18262 [tests/random2.c] Removed a useless use of GMP_NUMB_MASK. 18263 18264 [src/div.c] In the case where the divisor has one limb (latest commit), 18265 check that the value of this limb fits in an unsigned long, otherwise 18266 mpfr_div_ui cannot be used. Indeed, according to the GMP manual §2.2, 18267 a limb may be a long long (actually unsigned): 18268 For example in some 32-bit ABIs, GMP may support a limb as either a 18269 32-bit `long' or a 64-bit `long long'. 18270 Note: if a limb is an unsigned long, this new test will be no-op, since 18271 always true. 18272 182732014-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18274 18275 speedup of mpfr_div when divisor has one limb 18276 182772014-06-25 Vincent Lefèvre <vincent@vinc17.net> 18278 18279 [src/random_deviate.h] Fixed prototypes: 18280 * Added __MPFR_DECLSPEC to avoid failure with Windows DLL; see 18281 https://sympa.inria.fr/sympa/arc/mpfr/2014-06/msg00003.html 18282 * Added _MPFR_PROTO for consistency (though it will probably 18283 be removed in the near future). 18284 * Removed variable names (coding style). 18285 182862014-06-24 Vincent Lefèvre <vincent@vinc17.net> 18287 18288 [tests] Added terandom_chisq and tnrandom_chisq to svn:ignore property. 18289 18290 [tests] Applied patch by Charles Karney (chi-squared tests for 18291 mpfr_[ne]random), together with the contents of his mail about 18292 this patch. 18293 182942014-06-23 Vincent Lefèvre <vincent@vinc17.net> 18295 18296 [doc/mpfr.texi] Updated the month. 18297 182982014-06-22 Vincent Lefèvre <vincent@vinc17.net> 18299 18300 Updated URL's. 18301 18302 [doc/README.dev] Updated URL's (use of https instead of http). 18303 183042014-06-20 Vincent Lefèvre <vincent@vinc17.net> 18305 18306 [src/sum.c] At Step 2, ignore the input bits of exponent >= maxexp. 18307 18308 [src/sum.c] Fixed maxexp2 update, and added truncflag for future 18309 truncation on the most significant part >= maxexp at Step 2 (TODO). 18310 183112014-06-19 Vincent Lefèvre <vincent@vinc17.net> 18312 18313 [src/sum.c] Another major update concerning the algo and Step 2. 18314 18315 [src/sum.c] Added a TODO about carry propagation (so, it seems that 18316 using two windows may not really be that interesting to guarantee a 18317 low complexity). 18318 183192014-06-17 Vincent Lefèvre <vincent@vinc17.net> 18320 18321 [src/sum.c] Implemented Step 2. 18322 18323 [tests/trandom_deviate.c] New version, with fixes of ternary value 18324 (inexact) handling by Charles Karney. 18325 18326 [tests] Added trandom_deviate to svn:ignore property. 18327 18328 [tests/trandom_deviate.c] GNU style and C90 compatibility. 18329 18330 [doc/README.dev] Updated note about ternary values (macros). 18331 18332 [doc/README.dev] Added a note about ternary values. 18333 183342014-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18335 18336 patches from Charles Karney 18337 183382014-06-17 Vincent Lefèvre <vincent@vinc17.net> 18339 18340 [tests/trandom_deviate.c] Removed useless "#ifdef HAVE_STDARG": 18341 printf is a standard C function and is always defined. 18342 18343 [tests/trandom_deviate.c] GNU style. Pre-C99 compatibility 18344 (statements after declarations). 18345 18346 [tests/trandom_deviate.c] Untabified. 18347 183482014-06-16 Vincent Lefèvre <vincent@vinc17.net> 18349 18350 [src/sum.c] Updated the algorithm and started to rewrite again, 18351 in a cleaner way and with more comments. 18352 183532014-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18354 18355 added trandom_deviate.c to improve coverage (contributed by Charles Karney) 18356 18357 updated information about coverage test 18358 183592014-06-05 Vincent Lefèvre <vincent@vinc17.net> 18360 18361 [src/mul.c] English usage in a comment. 18362 183632014-06-03 Vincent Lefèvre <vincent@vinc17.net> 18364 18365 [tests/tset_ld.c] Updated a comment. 18366 183672014-05-22 Vincent Lefèvre <vincent@vinc17.net> 18368 18369 Changed "INRIAGForge" to "InriaForge" (due to the rename). 18370 183712014-05-14 Vincent Lefèvre <vincent@vinc17.net> 18372 18373 [doc/README.dev] Correction about clang sanitizer: mention the 18374 -fno-sanitize=float-cast-overflow,float-divide-by-zero option. 18375 18376 [doc/README.dev] About clang sanitizer, mention the 18377 -fno-sanitize=float-divide-by-zero option. 18378 183792014-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18380 18381 added description of algorithm used for mpfr_log (from Sylvie Boldo) 18382 183832014-04-25 Vincent Lefèvre <vincent@vinc17.net> 18384 18385 [doc/README.dev] Updated an old note about GCC 4.9. 18386 18387 [doc/README.dev] Completed the note about GCC's sanitizer. See 18388 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44786 (sanitizer) 18389 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60275 (no recover) 18390 18391 [doc/README.dev] Completed the note about GCC's sanitizer. 18392 18393 [doc/README.dev] Mention that GCC 4.9 supports "-fsanitize=undefined". 18394 183952014-04-22 Vincent Lefèvre <vincent@vinc17.net> 18396 18397 [tests/tpow.c] Removed comment that can now be confusing: try_mpfr.html 18398 was actually not using the mpfr_pow function, but exp(y*log(x)). 18399 18400 [tests/tpow.c] Added a test corresponding to buggy output on 18401 http://ex-cs.sist.ac.jp/~tkouya/try_mpfr.html but everything 18402 is OK in r9038. 18403 184042014-04-15 Vincent Lefèvre <vincent@vinc17.net> 18405 18406 [doc/README.dev] Update about patches and autotools files. 18407 18408 [doc/README.dev] Update about patches and autotools files. 18409 18410 [tests/tsum.c] Changed initialization in check_extreme(), which wasn't 18411 supported by ISO C90. 18412 18413 [free_cache.c] Avoid mixed declarations and code for ISO C90 support. 18414 18415 Re-added configure test on GMP_NUMB_BITS and sizeof(mp_limb_t), and 18416 updated it: 18417 * BYTES_PER_MP_LIMB is no longer tested (see r9029). 18418 * The test is now always run, not just when --with-gmp-build is used. 18419 * Results are output in config.log in case of failure. 18420 * The error message has been updated. 18421 184222014-04-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18423 18424 BYTES_PER_MP_LIMB -> MPFR_BYTES_PER_MP_LIMB for GMP 6 compatibility 18425 when --with-gmp-build is used. See mailing-list discussion: 18426 https://sympa.inria.fr/sympa/arc/mpfr/2014-04/msg00000.html 18427 184282014-04-11 Vincent Lefèvre <vincent@vinc17.net> 18429 18430 [src/sum.c] Updated comment to be even more clear, with more details. 18431 184322014-04-07 Vincent Lefèvre <vincent@vinc17.net> 18433 18434 [src/sum.c] Updated comment. 18435 18436 [src/sum.c] Updated comment. 18437 18438 [src/sum.c] Improved (corrected) algo in comment. Code not updated. 18439 184402014-03-28 Vincent Lefèvre <vincent@vinc17.net> 18441 18442 [src/sum.c] Update. 18443 18444 [src/sum.c] Added a comment. 18445 18446 [src/sum.c] Update. 18447 184482014-03-26 Vincent Lefèvre <vincent@vinc17.net> 18449 18450 [src/sum.c] More thoughts about the algorithm and its implementation. 18451 184522014-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18453 18454 other argument reduction for log_ui 18455 184562014-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18457 18458 mpn_sqrtrem (rp, sp, sp, rrsize) is faster than 18459 mpn_sqrtrem (rp, NULL, sp, rrsize): avoids one allocation and one copy 18460 184612014-03-25 Vincent Lefèvre <vincent@vinc17.net> 18462 18463 [src/sum.c] Update. 18464 18465 Merged the latest changes from the trunk. 18466 18467 Added MPFR_PREC_COND, MPFR_PREC_IN_RANGE and MPFR_GET_PREC internal 18468 macros (to mpfr-impl.h). Use these macros at some places in the code 18469 (replacing some MPFR_PREC instances, as suggested by a patch from 18470 Patrick Pélissier). 18471 18472 [src/mpfr-impl.h] Added an MPFR_ASSERTD in MPFR_MPZ_SIZEINBASE2 18473 (from a patch by Patrick Pélissier). 18474 18475 [src/sqrt.c] Replaced a MPFR_EXP by MPFR_SET_EXP (from a patch by 18476 Patrick Pélissier). 18477 18478 [src/div.c] Added MPFR_ASSERTD assertions and improved a test 18479 (patch from Patrick Pélissier). 18480 184812014-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18482 18483 fixed FIXME 18484 184852014-03-17 Vincent Lefèvre <vincent@vinc17.net> 18486 18487 [doc/algorithms.*] A formula about radix conversion was incorrect 18488 (and didn't match the correct code) when the output radix b is a 18489 power of two. Added reference to Matula's "In-and-Out Conversions" 18490 (correctness and optimality of the formula) and left a FIXME. 18491 For more information, see the August/September discussion in the 18492 MPFR list, particular subthreads starting at: 18493 https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00028.html 18494 https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00000.html 18495 https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00011.html 18496 184972014-03-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18498 18499 added item 18500 185012014-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18502 18503 added item (mpfr_log_ui) 18504 185052014-03-14 Vincent Lefèvre <vincent@vinc17.net> 18506 18507 [src/sum.c] Corrected the detection of Inf. Improved algo in comment. 18508 18509 [tests/tsum.c] Improved check_more_special test. 18510 18511 [tests/tsum.c] Added check_more_special test. 18512 18513 [doc/mpfr.texi] Updated the month. 18514 18515 [doc/mpfr.texi] Correction in the mpfr_set_str description. 18516 18517 Rewrote special cases of mpfr_sum. 18518 185192014-03-10 Vincent Lefèvre <vincent@vinc17.net> 18520 18521 Added a TODO item concerning gmp_op.c functions with mpz_srcptr and 18522 the use of mpz_fits_slong_p and a mpfr_*_si function (see r8992). 18523 185242014-03-02 Vincent Lefèvre <vincent@vinc17.net> 18525 18526 [src/mpfr-impl.h] Fixed the mpfr_get_default_rounding_mode() macro for 18527 C++ (it didn't have the correct type), and improved the similar ones. 18528 18529 [src/lngamma.c] Fixed allocation. 18530 18531 [src/lngamma.c] Temporarily disabled fast argument reconstruction 18532 because it doesn't compile with g++. 18533 185342014-03-01 Vincent Lefèvre <vincent@vinc17.net> 18535 18536 Removed trailing spaces. 18537 185382014-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18539 18540 [lngamma.c] implemented fast way of computing x*(x+1)*...*(x+k-1) 18541 (it remains to speed up the computation of the Bernoulli numbers) 18542 18543 speedup of the mpfr_xxx_z functions when z fits in a long 18544 18545 explicit possible speedup in mpfr_[ln]gamma 18546 185472014-02-24 Vincent Lefèvre <vincent@vinc17.net> 18548 18549 [doc/algorithms.tex] Avoid inconsistent spaces. 18550 185512014-02-21 Vincent Lefèvre <vincent@vinc17.net> 18552 18553 [tools/mbench/README] Conversion into UTF-8. 18554 18555 [tools/mbench] Replaced GMP_RNDx by MPFR_RNDx. 18556 185572014-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18558 18559 definitively fix the name mpfr_min_prec 18560 185612014-02-17 Vincent Lefèvre <vincent@vinc17.net> 18562 18563 [src/bernoulli.c] Minor bug fixed and other improvements. 18564 185652014-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18566 18567 update for mpfr_gamma and Bernoulli numbers 18568 185692014-02-17 Vincent Lefèvre <vincent@vinc17.net> 18570 18571 [src/bernoulli.c] Fixed pointer types (build failure with -Werror). 18572 18573 [src/mpfr-impl.h] Removed obsolete mpfr_bernoulli_internal prototype, 18574 which makes the compilation of bernoulli.c fail. 18575 18576 [src/bernoulli.c] Improved isprime() by using MPFR_ASSERTD. 18577 185782014-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18579 18580 use a faster algorithm (based on Von Staudt–Clausen theorem) to compute 18581 Bernoulli numbers -> speedup in mpfr_*gamma and mpfr_li2 18582 185832014-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18584 18585 more changes suggested by Wolf Lammen (and also test 2^(-1074)) 18586 185872014-02-16 Vincent Lefèvre <vincent@vinc17.net> 18588 18589 [tests/memory.c] Limit heap memory to 4 MB. This should be sufficient. 18590 Currently, only tsum should fail, but mpfr_sum will be rewritten soon. 18591 185922014-02-15 Vincent Lefèvre <vincent@vinc17.net> 18593 18594 [src/set_d.c] Fixed type to avoid non-representable unsigned → signed 18595 conversion. 18596 18597 [src/set_d.c] Correction when MPFR_WANT_ASSERT is defined. 18598 18599 Untabified and removed trailing spaces. 18600 186012014-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18602 18603 partial patch from Wolf Lammen: 18604 - move the normalization code, necessary in an extremely rare corner case only, 18605 out of the way of the normal case, for speed up 18606 18607 Rename MPFR gmp_randstate_ptr into mpfr_gmp_randstate_ptr 18608 (patch from Patrick Pélissier) 18609 186102014-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18611 18612 print message for "possibly double-double, little endian" long double format 18613 18614 different fixes for set_ld, get_ld and cmd_ld with double-double 18615 186162014-02-14 Vincent Lefèvre <vincent@vinc17.net> 18617 18618 [tests/tset_ld.c] Fixed an assertion to support systems where 18619 2^1023 + 2^(-1074) is exactly representable, while not detected 18620 as double-double. 18621 186222014-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18623 18624 recognize long-double format for ppc64le 18625 (https://sympa.inria.fr/sympa/arc/mpfr/2014-02/msg00014.html) 18626 186272014-02-14 Vincent Lefèvre <vincent@vinc17.net> 18628 18629 [TODO] Added item on special case of mpfr_add and mpfr_sub. 18630 186312014-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18632 18633 added test for get_ld 18634 186352014-02-14 Vincent Lefèvre <vincent@vinc17.net> 18636 18637 [src/cache.c] 18638 * Improved r8966: Setting the cache size to 10% more than the 18639 requested precision may be a bad idea in large precisions. 18640 It's better to guarantee a minimum of 10% increase; if the 18641 user wants to, he can still control the maximum precision by 18642 pre-computing the constant at this precision. Also make sure 18643 that if pold == 0, the mpfr_init2 size is the same as the 18644 mpfr_set_prec one (in order to avoid immediate reallocation). 18645 * Replaced a comment by a couple of MPFR_ASSERTD's. 18646 186472014-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18648 18649 when recomputing a constant, use a precision 10% larger than the wanted 18650 precision to avoid many recomputations 18651 186522014-02-13 Vincent Lefèvre <vincent@vinc17.net> 18653 18654 [src/round_raw_generic.c] Added a FIXME comment for MPFR_RNDNA. 18655 18656 [src/bernoulli.c] GNU style. 18657 [src/mpfr-impl.h] Corrected prototypes. 18658 186592014-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18660 18661 implement cache for Bernoulli numbers (patch from Patrick Pélissier) 18662 tuned parameters for [ln]gamma now that we cache Bernoulli numbers 18663 18664 added bench target so that we can simply do "make bench" 18665 186662014-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18667 18668 added test for double-double 18669 18670 added comment about mpfr_gamma 18671 18672 forgot to restore the exponents in last commit 18673 18674 added reference for efficiency issue with mpfr_gamma 18675 18676 improve mpfr_gamma at around 1000 bits 18677 186782014-02-12 Vincent Lefèvre <vincent@vinc17.net> 18679 18680 [doc/mpfr.texi] Updated the month. 18681 18682 Merged the set_exp branch into the trunk. Changes: 18683 * src/mpfr-impl.h: updated the MPFR_SET_EXP(x, exp) definition for 18684 the MPFR_EXP_CHECK case. There are 2 consequences: 18685 1. The exp expression is evaluated several times (this should be 18686 OK with the MPFR code and optimizations). 18687 2. The real value of exp is tested for the assertion, instead of 18688 the value converted to mpfr_exp_t. Thus new bugs could be found 18689 (e.g. when an unsigned type is used instead of signed). 18690 * src/set_exp.c: set the exponent only if x is a non-zero ordinary 18691 number, i.e. already has a valid significand and a valid exponent 18692 (thus it is no longer a low-level function, and it can no longer 18693 generate an invalid value from a valid one). 18694 * doc/mpfr.texi: updated mpfr_set_exp description and added an item 18695 in the "API Compatibility / Changed Functions" section. 18696 * Clean-up. 18697 Original discussion: 18698 https://sympa.inria.fr/sympa/arc/mpfr/2011-01/msg00092.html 18699 18700 [src/rint.c] Added FIXME comment. 18701 18702 [src/next.c] Improved handling of special values. 18703 18704 [src/hypot.c] Reverted changeset r8950 (MPFR_SET_EXP is OK). 18705 18706 [src/hypot.c] Replaced a MPFR_SET_EXP by MPFR_EXP. 18707 18708 [src/fpif.c] Bug fixes and code clean-up. At the same time, took the 18709 future mpfr_set_exp change into account (see set_exp branch). 18710 18711 [src/set.c] Cosmetic change. 18712 18713 [src/fpif.c] English usage. 18714 18715 [src/cache.c] Replaced a MPFR_SET_EXP by MPFR_EXP (in practice, the code 18716 was working, but just because MPFR_DECL_INIT_CACHE inits the cache with 18717 a real exponent, though the significand pointer is null). 18718 187192014-02-11 Vincent Lefèvre <vincent@vinc17.net> 18720 18721 [src/mul.c] Cosmetic change. 18722 18723 [src/atan.c] Fixed types of some variables, in particular 18724 unsigned → signed conversion of non-representable value 18725 (detected due to the new MPFR_SET_EXP assertion check in 18726 the set_exp branch). 18727 18728 [src/atan.c] Fixed types of some variables, in particular 18729 unsigned → signed conversion of non-representable value. 18730 Now, all the tests pass on Linux/x86_64. 18731 18732 [src/exp3.c] Fixed types of some variables, in particular 18733 unsigned → signed conversion of non-representable value 18734 (detected due to the new MPFR_SET_EXP assertion check in 18735 the set_exp branch). 18736 18737 [src/exp3.c] Fixed types of some variables, in particular 18738 unsigned → signed conversion of non-representable value. 18739 Now, 161 tests pass and 8 tests fail on Linux/x86_64. 18740 18741 [src/{set_ui_2exp.c,set_uj.c}] Fixed types of some variables, in 18742 particular unsigned → signed conversion of non-representable value 18743 under some conditions. 18744 18745 [src/{set_ui_2exp.c,set_uj.c}] Fixed types of some variables, in 18746 particular unsigned → signed conversion of non-representable value 18747 under some conditions. 18748 This doesn't change the number of failed tests. 18749 18750 [src/{sqrt_ui.c,sub_ui.c,ui_div.c,ui_sub.c}] Changed cnt type from 18751 unsigned long to int (signed) due to the MPFR_SET_EXP requirement. 18752 Otherwise the code was correct. 18753 Now, 160 tests pass and 9 tests fail on Linux/x86_64. 18754 18755 [src/mpfr-impl.h] Added a comment about MPFR_SET_EXP: exp is required 18756 to have a signed type. 18757 18758 [src/{set_d.c,set_f.c}] Type clean-up to improve maintainability. 18759 18760 [src/random_deviate.c] Type clean-up to improve maintainability. 18761 18762 [src/set_si_2exp.c] Fixed unsigned → signed conversion of 18763 non-representable value when mpfr_exp_t has the same size 18764 as int. 18765 18766 [src/set_si_2exp.c] Fixed unsigned → signed conversion of 18767 non-representable value when mpfr_exp_t has the same size 18768 as int (unrelated to MPFR_SET_EXP change). 18769 18770 [src/add_ui.c] Cosmetic changes. 18771 18772 [src/add_ui.c] Fixed unsigned → signed conversion of non-representable 18773 value (detected due to the new MPFR_SET_EXP assertion check in the 18774 set_exp branch). 18775 18776 [src/add_ui.c] Fixed unsigned → signed conversion of non-representable 18777 value (detected due to the new MPFR_SET_EXP assertion check). 18778 Now, 92 tests pass and 77 tests fail on Linux/x86_64. 18779 18780 [src/random_deviate.c] Added an assertion. 18781 18782 [tests/random2.c] Fixed unsigned → signed conversion of 18783 non-representable value (detected due to the new MPFR_SET_EXP 18784 assertion check in the set_exp branch). 18785 18786 [tests/random2.c] Fixed unsigned → signed conversion of 18787 non-representable value (detected due to the new MPFR_SET_EXP 18788 assertion check). 18789 Now, 87 tests pass and 82 tests fail on Linux/x86_64. 18790 18791 Updated src/urandomb.c due to the change of mpfr_set_exp behavior. 18792 Now, 77 tests pass and 92 tests fail on Linux/x86_64. 18793 18794 [tests/trandom.c] Improved test to get an assertion failure instead of 18795 a segmentation fault. 18796 18797 Start of mpfr_set_exp behavior clean-up. 18798 * src/mpfr-impl.h: updated the MPFR_SET_EXP(x, exp) definition for 18799 the MPFR_EXP_CHECK case. There are 2 consequences: 18800 1. The exp expression is evaluated several times (this should be 18801 OK with the MPFR code and optimizations). 18802 2. The real value of exp is tested for the assertion, instead of 18803 the value converted to mpfr_exp_t. Thus new bugs can be found 18804 (e.g. when an unsigned type is used instead of signed). 18805 * src/set_exp.c: set the exponent only if x is a non-zero ordinary 18806 number, i.e. already has a valid significand and a valid exponent 18807 (thus it is no longer a low-level function, and it can no longer 18808 generate an invalid value from a valid one). 18809 * doc/mpfr.texi: updated mpfr_set_exp description and added an item 18810 in the "API Compatibility / Changed Functions" section. 18811 Currently 73 tests pass and 96 fail on Linux/x86_64, either due to bugs 18812 or due to code not yet updated for this change. 18813 18814 Set svn:ignore property on the tools/bench directory. 18815 188162014-02-06 Vincent Lefèvre <vincent@vinc17.net> 18817 18818 [src/set_ld.c] Added a note about the test for infinity. 18819 188202014-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18821 18822 make -> make mpfrbench 18823 188242014-02-05 Vincent Lefèvre <vincent@vinc17.net> 18825 18826 Removed MPFR_CHECK_MAX as it is now useless: all "max" tests succeed. 18827 18828 [src/lngamma.c] Fixed bug introduced in the latest change r8917 18829 (inexact was not initialized in the case compared < 0). 18830 188312014-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18832 18833 added code for large inputs in lngamma/lgamma 18834 188352014-02-04 Vincent Lefèvre <vincent@vinc17.net> 18836 18837 [TODO] Suggest timing-based thresholds for asymptotic expansions. 18838 188392014-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18840 18841 use asymptotic expansion for large positive argument 18842 188432014-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18844 18845 tiny change to distinguish different versions of the manual 18846 188472014-01-29 Vincent Lefèvre <vincent@vinc17.net> 18848 18849 [src] Add constants: 18850 * __gmpfr_mone = -1 18851 * mpfr_const_log2_RNDD = log(2) rounded down in precision 64 bits 18852 * mpfr_const_log2_RNDU = log(2) rounded up in precision 64 bits 18853 (modified patch from Patrick Pélissier). 18854 188552014-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18856 18857 added reference 18858 188592014-01-29 Vincent Lefèvre <vincent@vinc17.net> 18860 18861 [src] mpz_t caching (modified patch by Patrick Pélissier). 18862 18863 [src/const_pi.c] Rewrote a condition to avoid a potential 18864 integer overflow (?) and match a comment. 18865 18866 [src/const_pi.c] Use of GROUP allocation and minor optimization 18867 (modified patch by Patrick Pélissier). 18868 188692014-01-28 Vincent Lefèvre <vincent@vinc17.net> 18870 18871 [TODO] Added a note about "rounding to odd" / "sticky rounding". 18872 188732014-01-27 Vincent Lefèvre <vincent@vinc17.net> 18874 18875 [tools/mpfrlint] Run-time assertions concerning relations between 18876 the MPFR exponent type and the long type are allowed (see r8896). 18877 188782014-01-26 Vincent Lefèvre <vincent@vinc17.net> 18879 18880 [tests/mpf_compat.h] In MPFR mode, skip the tests when mpfr_exp_t is not 18881 a long. 18882 18883 [tests/tset_ld.c] Fixed printf argument. 18884 18885 [tests/tgamma.c] Fixed printf argument (bug detected with 18886 _MPFR_EXP_FORMAT=2 and -Werror=format=). 18887 18888 [tools/bench/mpfrbench.c] No longer use the numberof macro, and 18889 #include "mpfr.h" instead of "mpfr-impl.h", so that mpfrbench.c 18890 can now be linked against an installed MPFR library. 18891 188922014-01-24 Vincent Lefèvre <vincent@vinc17.net> 18893 18894 Added MPFR_CHECK_GMP configure check. 18895 Useful if the user provides --with-gmp with a directory containing 18896 a GMP version that doesn't have the correct ABI: the previous tests 18897 won't trigger the error if the same GMP version with the right ABI 18898 is installed on the system, as this library is automatically 18899 selected by the linker, while the header (which depends on the ABI) 18900 of the --with-gmp include directory is used. Before this test, one 18901 was getting an error in MPFR_CHECK_DBL2INT_BUG, though the error is 18902 not related to a double-to-integer conversion bug. 18903 18904 [src/mpfr-impl.h] Corrections for the case _MPFR_EXP_FORMAT == 4: 18905 * No longer use MPFR_EXP_MIN and MPFR_EXP_MAX unconditionally in 18906 a #if directive, since if MPFR_HAVE_INTMAX_MAX is not defined, 18907 the compilation fails. The test was not really useful anyway: 18908 if one really wants mpfr_eexp_t to be long int if mpfr_exp_t 18909 has the same range as long int, then _MPFR_EXP_FORMAT == 3 is 18910 sufficient (and this is the default). 18911 * Removed a test that should be always true due to the previous 18912 inclusion of mpfr.h (intmax_t has already been used there in 18913 the case _MPFR_EXP_FORMAT == 4). 18914 18915 [doc/README.dev] Rephrased paragraph added in r8897. 18916 18917 [doc/README.dev] Added a note for Automake 1.13+ and failed tests. 18918 18919 [src] Replaced some MPFR_ASSERTN's by MPFR_STAT_STATIC_ASSERT (from the 18920 detection by mpfrlint). Note: the MPFR_ASSERTN's concerning relations 18921 between the MPFR exponent type and the long type have not been replaced 18922 because these tests may fail with the non-standard _MPFR_EXP_FORMAT = 4 18923 on some platforms (e.g. 32-bit ones), and we still want to be able to 18924 build MPFR in this case in order to test it; this needs to be fixed. 18925 18926 [tools/mpfrlint] Constant checking in assertions. 18927 18928 [src/mpfr-mini-gmp.c] Use lower case for function parameters. 18929 189302014-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18931 18932 re-enable assertions (patch from Patrick Pélissier) 18933 18934 removed an MPFR_LIKELY that is not so likely... 18935 189362014-01-24 Vincent Lefèvre <vincent@vinc17.net> 18937 18938 Optimization: likely / unlikely, etc. (patch by Patrick Pélissier). 18939 Coding style. 18940 18941 [tune/tuneup.c] Fix compilation error due to static assertion being 18942 wrong (patch by Patrick Pélissier). 18943 18944 [src/const_log2.c] Optimization by using GROUP allocation (patch 18945 by Patrick Pélissier). 18946 18947 [src/exp_2.c] Optimization: Increase the initial estimate of the number 18948 of iterations (patch by Patrick Pélissier). 18949 18950 [src/erfc.c] Use of static assertion instead of run time assertion 18951 (patch by Patrick Pélissier). 18952 18953 [src/sum.c] Removed trailing spaces. 18954 18955 [src/sin_cos.c] Optimization: use of MPFR_MPZ_SIZEINBASE2, GROUP 18956 allocation, and MPFR_ALIAS (modified patch by Patrick Pélissier). 18957 18958 [tools/mbench/mfv5-libc.cc] Fix warning when compiling with recent GCC 18959 due to unused but set variable (patch by Patrick Pélissier). 18960 189612014-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 18962 18963 revert to EXTRA_PROGRAMS (bin_PROGRAMS is installed in /usr/local/bin, 18964 which is not what we want, we could use noinst_PROGRAMS, which would be 18965 compiled automatically, but for coherence with GNU MPC we use EXTRA_PROGRAMS 18966 which is not compiled automatically) 18967 18968 divide the global score to get a number around 1000 18969 18970 added reference 18971 18972 gnu style 18973 189742014-01-23 Vincent Lefèvre <vincent@vinc17.net> 18975 18976 Added libtool-tcc-wl.patch patch from 18977 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=663945#46 18978 to add tcc support to libtool 2.4.2 and below. 18979 In doc/README.dev, documented how to use this patch (before a release). 18980 18981 [tests/tadd.c] Added check_extreme test (huge + tiny). 18982 [tests/tsum.c] Added check_extreme test (same test as in tadd.c, 18983 but with mpfr_sum instead of mpfr_add), and temporarily disabled 18984 the cancel test. 18985 18986 Use of the numberof macro. 18987 18988 [tools/bench/mpfrbench.c] Whitespace clean-up. 18989 18990 [src/const_euler.c] Removed trailing spaces. 18991 18992 [tools/bench/Makefile.am] Fix for separate build directory (problem 18993 detected with "make distcheck"). 18994 18995 [src/sum.c] Updated comment. 18996 18997 [src/sum.c] Updated comment. 18998 18999 [src/sum.c] Added a possible algorithm in comment. 19000 19001 [src/sum.c] Added FIXME comment. 19002 190032014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19004 19005 missing space 19006 19007 Mickaël is the only author of MPFRbench 19008 19009 updated authors and contributors 19010 19011 new code for Euler's constant (contributed by Fredrik Johansson) 19012 19013 added subdir tools/bench 19014 19015 added MPFRbench 19016 19017 added MPFRbench 19018 19019 make mpfrbench compiled just with "make" 19020 19021 changes for MPFRbench 19022 19023 new directory for MPFRbench (contributed by Mickaël Gastineau and Bill Hart) 19024 190252014-01-22 Vincent Lefèvre <vincent@vinc17.net> 19026 19027 [tests/tsum.c] Added a comment about the cancellation test. 19028 19029 [tests/tsum.c] In the cancellation test, do a random permutation. 19030 190312014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19032 19033 mention sponsors 19034 190352014-01-22 Vincent Lefèvre <vincent@vinc17.net> 19036 19037 [tests/tsum.c] In the cancellation test: reduced the number of tests; 19038 output debug information when building with -DDEBUG. 19039 19040 [tests/tsum.c] Added simple cancellation test. 19041 19042 [tests/tests.c] Fixed tests_default_random in case mpfr_exp_t > long. 19043 19044 [doc/mpfr.texi] Improved mpfr_sum description. 19045 19046 [src/sum.c] Do not use bitwise operations on values that can be 19047 negative. Added comments about what the functions do. 19048 190492014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19050 19051 fixed regression noticed by Patrick Pelissier with --enable-gmp-internals 19052 190532014-01-22 Vincent Lefèvre <vincent@vinc17.net> 19054 19055 [tests/tests.c] Fixed bug in test_version() introduced in r8821. 19056 19057 [src/lngamma.c] Fixed divide-by-zero flag for negative integers. 19058 [tests/tlngamma.c] Test the flags for some special values. Clean-up. 19059 190602014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19061 19062 removed two items done 19063 190642014-01-21 Vincent Lefèvre <vincent@vinc17.net> 19065 19066 [src/{exp.c,exp_2.c}] mpfr_exp optimization (modified patch 19067 by Patrick Pélissier). 19068 [src/round_prec.c] Added a note about the reallocation. 19069 19070 LIKELY some code. 19071 19072 [src/lngamma.c] Fixed mpfr_lngamma behavior on nonpositive integers 19073 and -Inf. 19074 [doc/mpfr.texi] Updated the documentation on the general rules for 19075 special values and on mpfr_lngamma. 19076 [tests/tlngamma.c] Update. 19077 See <https://sympa.inria.fr/sympa/arc/mpfr/2013-08/msg00008.html> 19078 (behavior of mpfr_lngamma on zero and general rule for such limits). 19079 19080 [acinclude.m4,configure.ac] Check that a directory passed to 19081 a --with-gmp* configure option exists and doesn't contain any 19082 space, and canonicalize the name if the realpath utility is 19083 available (patch by Patrick Pélissier). 19084 19085 [src/mul.c] Optimization (modified patch by Patrick Pélissier). 19086 19087 [src] Added support for MPFR_PURE_FUNCTION_ATTR, MPFR_HOT_FUNCTION_ATTR, 19088 and MPFR_COLD_FUNCTION_ATTR, and fixed some LIKELY/UNLIKELY conditions 19089 (modified patch by Patrick Pélissier). 19090 19091 [src/*.c] Replaced mpfr_set_divby0 by the faster MPFR_SET_DIVBY0, 19092 and so on (except for src/exceptions.c). 19093 [tools/mpfrlint] Update for flags related functions: check that 19094 the macros are used in src (except for exceptions.c and mpfr.h) 19095 instead of the functions. 19096 [src/mpfr-impl.h] Removed some useless parentheses in comments, 19097 for mpfrlint. 19098 190992014-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19100 19101 added more detail in case of error 19102 191032014-01-21 Vincent Lefèvre <vincent@vinc17.net> 19104 19105 [src/mpfr-impl.h] Added MPFR_SET_* macros to set flags efficiently. 19106 19107 Small mpfr_erf improvement (modified patch by Patrick Pélissier). 19108 19109 [src/mpfr-gmp.h] TMP_FREE optimization as tmp_marker is often null 19110 (based on a patch by Patrick Pélissier). 19111 19112 [configure.ac] --enable-mini-gmp message: fixed layout; experimental. 19113 19114 [NEWS] Mini-gmp support is experimental. 19115 19116 [NEWS] Mention the new --enable-mini-gmp configure option. 19117 19118 [NEWS] Mini-gmp support. 19119 19120 [NEWS] MPFR now depends on GMP 4.2+. Dropped K&R C compatibility. 19121 19122 [NEWS] Better Automake 1.13 support. 19123 19124 Merged the vl-am113 branch: test suite improvement with Automake 1.13. 19125 * Moved GMP version check from tversion.c to the test_version() 19126 function of tests.c, so that this check is done in every test. 19127 This function now returns an int, as there are now 3 cases: 19128 1. An error in MPFR version check is a fatal error: test_version() 19129 exits with an error (exit status = 1). 19130 2. An error in GMP version check is a non-fatal error: if there 19131 are no errors in MPFR version check, test_version() returns 19132 with value 1. 19133 3. Otherwise test_version() returns with value 0 (everything is 19134 fine). 19135 * tversion.c still runs test_version(), but fails if this function 19136 returns with an error, i.e. any error is fatal for this test. 19137 Note: for the other tests, one just has a message in the output 19138 in case of GMP version mismatch. 19139 * mpfr-test.h: updated test_version() prototype. 19140 * Makefile.am: removed the second tversion invocation, and output 19141 the contents of tversion.log if this file exists (typically with 19142 Automake 1.13+, for which one no longer gets tversion output by 19143 default). 19144 19145 [tests/Makefile.am] Removed obsolete comment. 19146 191472014-01-20 Vincent Lefèvre <vincent@vinc17.net> 19148 19149 Dropped obsolete __gmp_const (replaced by const). 19150 19151 [TODO] Removed mini-gmp support: done. 19152 19153 Small mpfr_exp improvement (modified patch by Patrick Pélissier). 19154 19155 [tools/mbench] Patch by Patrick Pélissier: import base support, 19156 corei7 support, build fix (with MPFR 3.1+). 19157 191582014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19159 19160 come back to revision 8723 which was faster (measured with tools/mbench/mfv5 19161 on 53 and 1024 bits). The reason is that the "new" version had overhead for 19162 mpfr_round_p (about 40 cycles on Core 2) and mpfr_set (about 98 cycles for 19163 53 bits, and 132 cycles for 1024 bits) 19164 191652014-01-20 Vincent Lefèvre <vincent@vinc17.net> 19166 19167 Added __builtin_unreachable / MPFR_ASSUME support (modified patch 19168 from Patrick Pélissier). 19169 19170 MPFR now depends on GMP 4.2+ instead of 4.1+. 19171 GMP 4.2 compatibility fixed. 19172 Code clean-up. 19173 (Modified patch from Patrick Pélissier) 19174 19175 [src/fms.c] Coding style. 19176 19177 [src/fma.c] Changed mp_prec_t to mpfr_prec_t. 19178 191792014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19180 19181 added mpfr_fma 19182 191832014-01-20 Vincent Lefèvre <vincent@vinc17.net> 19184 19185 [tests/tests.c] Output a \n between two error messages when need be. 19186 191872014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19188 19189 speed up mpfr_fma [common work with Jeroen Demeyer] 19190 191912014-01-20 Vincent Lefèvre <vincent@vinc17.net> 19192 19193 [tests] 19194 * Moved GMP version check from tversion.c to the test_version() 19195 function of tests.c, so that this check is done in every test. 19196 This function now returns an int, as there are now 3 cases: 19197 1. An error in MPFR version check is a fatal error: test_version() 19198 exits with an error (exit status = 1). 19199 2. An error in GMP version check is a non-fatal error: if there 19200 are no errors in MPFR version check, test_version() returns 19201 with value 1. 19202 3. Otherwise test_version() returns with value 0 (everything is 19203 fine). 19204 * tversion.c still runs test_version(), but fails if this function 19205 returns with an error, i.e. any error is fatal for this test. 19206 Note: for the other tests, one just has a message in the output 19207 in case of GMP version mismatch. 19208 * mpfr-test.h: updated test_version() prototype. 19209 * Makefile.am: removed the second tversion invocation. 19210 19211 [tests/Makefile.am] Output the contents of tversion.log if this file 19212 exists (typically with Automake 1.13+, for which one no longer gets 19213 tversion output by default). 19214 192152014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19216 19217 simplified the fms code (joint work with Jeroen Demeyer) 19218 19219 fixed bug in mpfr_exp_3, and memory leak in texp 19220 192212014-01-20 Vincent Lefèvre <vincent@vinc17.net> 19222 19223 [src/li2.c] Use MPFR_RET_NEVER_GO_HERE () instead of MPFR_ASSERTN (0) 19224 to avoid an error with: 19225 ./configure --enable-logging CFLAGS="-Werror=return-type"; make 19226 19227 [src/mpfr-impl.h] Updated comment of the MPFR_RET_NEVER_GO_HERE macro. 19228 192292014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19230 19231 added new test that currently fails (found with mini-gmp) 19232 192332014-01-18 Vincent Lefèvre <vincent@vinc17.net> 19234 19235 Spelling consistency: 19236 non-negative → nonnegative 19237 non-positive → nonpositive 19238 19239 [doc/README.dev] More on exponent handling. 19240 19241 [tests/tset_str.c] Fixed and improved a mpfr_set_str_binary random test. 19242 Some code clean-up. 19243 19244 [tests/tset_str.c] Removed useless and confusing cast. 19245 19246 [src/set_d.c] Improved a comment about signed zeros. 19247 192482014-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19249 19250 fixed memory leak 19251 19252 instructions to compile MPFR with mini-gmp 19253 19254 disable those tests for mini-gmp 19255 19256 fixed test which might produce subnormal numbers 19257 19258 disable two tests that depend on the random generator 19259 19260 followup from previous commit: 1^Inf is special too 19261 19262 fixed issue for n^x with x=Inf when the random number n is 0 19263 19264 fixed issue when x=0 and y=Inf (or converse) 19265 19266 fixed issue when x=0 and y=Inf (or converse) 19267 19268 fixed bug in test file 19269 192702014-01-18 Vincent Lefèvre <vincent@vinc17.net> 19271 19272 [src/set_d.c] Fixes and other minor changes suggested by Wolf Lammen: 19273 https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html 19274 19275 [src/set_d.c] In extract_double, replaced long by int for exp (it may be 19276 faster, and shouldn't be slower as it is more restrictive than long). 19277 19278 [src/set_d.c] Removed obsolete comment from r245. 19279 19280 [src/set_d.c] Renamed __gmpfr_extract_double to extract_double 19281 (this is just a static function). 19282 19283 [src/set_d.c] Fixed __gmpfr_extract_double precondition on d. 19284 Bug found by Wolf Lammen: 19285 https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html 19286 192872014-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19288 19289 more progress with mini-gmp: 19290 ======================= 19291 9 of 157 tests failed 19292 (13 tests were not run) 19293 ======================= 19294 192952014-01-18 Vincent Lefèvre <vincent@vinc17.net> 19296 19297 [tests/{ty0,ty1}.c] Reduce emax for the generic tests. 19298 192992014-01-17 Vincent Lefèvre <vincent@vinc17.net> 19300 19301 [src/lngamma.c] FIXME: proposed method for overflow detection. 19302 19303 [src/lngamma.c] Minor improvements. 19304 193052014-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19306 19307 missing \n 19308 19309 missing \n 19310 19311 missing \n in error messages 19312 19313 missing \n in error messages 19314 193152014-01-17 Vincent Lefèvre <vincent@vinc17.net> 19316 19317 [src/lngamma.c] Added a MPFR_LOG_FUNC. 19318 19319 [src/digamma.c] FIXME: for x large, use the asymptotic expansion. 19320 19321 [src/digamma.c] Added 2 MPFR_LOG_FUNC's. 19322 19323 [tests/tgeneric.c] Fixed bug found by PZ: code introduced in r4538 to 19324 test the maximum (in absolute value) positive and negative arguments 19325 was buggy, as only the negative one was tested. 19326 → This makes some tests fail on the maximum positive argument. 19327 193282014-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19329 19330 some progress with mini-gmp: 19331 ======================= 19332 34 of 157 tests failed 19333 (13 tests were not run) 19334 ======================= 19335 19336 mpn_copyd (rp, sp, n) should be used when rp >= sp 19337 19338 fixed bug which could appear with probability 1/2^32 or 1/2^64 19339 193402014-01-17 Vincent Lefèvre <vincent@vinc17.net> 19341 19342 [src/mpfr-mini-gmp.c] Removed trailing spaces. 19343 19344 [tools/mpfrlint] Update due to the mini-gmp support (r8753). 19345 19346 [tests] Various fixes for r8753. 19347 19348 [src/mpfr.h] Indentation. 19349 19350 [src/mpfr-impl.h] Indentation. 19351 19352 Avoid an empty translation unit (see ISO C99, 6.9). Some errors could 19353 be triggered with "gcc -std=c99 -pedantic-errors". 19354 193552014-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19356 19357 more progress for the mini-gmp interface 19358 193592014-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19360 19361 added two new files for mini-gmp interface 19362 19363 first step towards making MPFR compile with --enable-mini-gmp, so far make 19364 succeeds and all tests compile, but many tests fail, will investigate later 19365 193662014-01-16 Vincent Lefèvre <vincent@vinc17.net> 19367 19368 [src/get_z_exp.c] Added an assert for security in case the precision is 19369 large, but the error should be handled properly (to be discussed). 19370 Note: there are still corrupt memory problems when the precision is 19371 large enough but below the mpz limit (a bug in GMP?). 19372 Note [VL, 2014-01-17]: these problems are due to an integer overflow in 19373 mpz/clear.c of GMP 5.1.3; I've reported the bug here: 19374 https://gmplib.org/list-archives/gmp-bugs/2014-January/003321.html 19375 19376 [src/get_z_exp.c] Avoid a potential overflow. 19377 19378 [src/extract.c] Type clean-up with 2 bug fixes (these bugs should have 19379 no effect on most platforms without too aggressive optimizations). 19380 193812014-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19382 19383 replaced function _mpz_realloc by preferred one mpz_realloc2 19384 193852014-01-16 Vincent Lefèvre <vincent@vinc17.net> 19386 19387 [TODO] Added mini-gmp support. 19388 193892014-01-15 Vincent Lefèvre <vincent@vinc17.net> 19390 19391 [NEWS] Mention speed improvement with --enable-assert[=full] and GCC 19392 (due to the fix in r8746). 19393 193942014-01-14 Vincent Lefèvre <vincent@vinc17.net> 19395 19396 [src/mpfr-impl.h] Fixed the MPFR_ASSERTN macro as suggested by 19397 Wolf Lammen: https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00002.html 19398 Note: the semantics doesn't change, it should just be more efficient. 19399 194002014-01-12 Vincent Lefèvre <vincent@vinc17.net> 19401 19402 [tests/tset_ld.c] Output MPFR_LDBL_MANT_DIG in some failure case. 19403 194042014-01-11 Vincent Lefèvre <vincent@vinc17.net> 19405 19406 [tests/tset_d.c] More information in a failed test. 19407 194082014-01-10 Vincent Lefèvre <vincent@vinc17.net> 19409 19410 [tests/Makefile.am] In LOADLIBES, replaced $(INCLUDES) by $(AM_CPPFLAGS) 19411 (this should have been done at the same time as r8364). 19412 194132014-01-09 Vincent Lefèvre <vincent@vinc17.net> 19414 19415 [doc/README.dev] "To make a release" update. In particular at step 5, 19416 replaced "make dist" by "make distcheck" so that some problems can be 19417 detected at step 5 instead of step 6, ensuring that the tarballs are 19418 complete. 19419 19420 [src/Makefile.am] Forgot to add mpfr-cvers.h in r8739. 19421 19422 When static assertions are not supported by the C implementation 19423 natively (new C11 feature), their MPFR implementation got broken by 19424 changeset r8625, as the __MPFR_GNUC macro in mpfr-sassert.h was not 19425 defined in the configure test (since mpfr-impl.h wasn't included) 19426 and generated an error, disabling the static assertions support. 19427 This is fixed by the following changes, avoiding code duplication 19428 and thus risk of inconsistencies in future modification: 19429 * copied some of the version detection macros from mpfr-impl.h to 19430 a standalone file mpfr-cvers.h, and updated the macros; 19431 * in mpfr-impl.h, replaced these macros by a #include "mpfr-cvers.h" 19432 and updated a comment; 19433 * in mpfr-sassert.h, added a #include "mpfr-cvers.h". 19434 19435 [acinclude.m4] In the Static Assertions test, avoid a warning with GCC 19436 and added comments. 19437 194382014-01-07 Vincent Lefèvre <vincent@vinc17.net> 19439 19440 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 19441 19442 [tools/mpfrlint] Use codespell if available. 19443 19444 [TODO] Fixed a misspelling, using codespell. 19445 19446 Fixed misspellings, using codespell. 19447 194482014-01-06 Vincent Lefèvre <vincent@vinc17.net> 19449 19450 [TODO] Added item: new functions of IEEE 754-2008 / C binding draft. 19451 194522014-01-05 Vincent Lefèvre <vincent@vinc17.net> 19453 19454 [doc/README.dev] "To make a release": added a paragraph about warnings. 19455 19456 [tests/trint.c] Avoid a warning. 19457 19458 [acinclude.m4] Avoid a warning due to variable set but not used in a 19459 test, making the test fail with gcc -Werror=unused-but-set-variable. 19460 19461 [acinclude.m4] Replaced "main()" by "main (void)". 19462 194632014-01-04 Vincent Lefèvre <vincent@vinc17.net> 19464 19465 [doc/mpfr.texi] Updated the month. 19466 194672014-01-03 Vincent Lefèvre <vincent@vinc17.net> 19468 19469 Fixed warnings from GCC's -Wold-style-declaration option: 19470 MPFR_THREAD_ATTR must be at beginning of declaration. 19471 19472 Copyright notice update: added 2014 with 19473 perl -pi -e 's/ (\d{4}-)?(2013)(?= Free Software)/ 19474 " ".($1||"$2-").($2+1)/e' **/*(^/) 19475 under zsh (the tools/mbench directory was not modified). 19476 Removed 2013 from the example in the doc/README.dev file. 19477 194782013-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19479 19480 work around for bug in mpn_set_str 19481 (https://gmplib.org/list-archives/gmp-bugs/2013-December/003267.html) 19482 194832013-12-12 Vincent Lefèvre <vincent@vinc17.net> 19484 19485 Added tools/repl-variadic Perl script to replace the variadic functions 19486 mpfr_clears, mpfr_inits and mpfr_inits2, in case they are not supported 19487 by the compiler. 19488 194892013-11-28 Vincent Lefèvre <vincent@vinc17.net> 19490 19491 [tests/tstckintc.c] Improved tests when mpfr_custom_init_set is used as 19492 a macro (i.e. without parentheses) to trigger the bug fixed in r8715. 19493 19494 [src/mpfr.h] Fixed bug in the mpfr_custom_init_set macro (typo in 19495 variable name, which can yield incorrect behavior if the second 19496 argument is not a simple expression). 19497 Thanks to Andreas Enge for the bug report: 19498 https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00029.html 19499 195002013-11-21 Vincent Lefèvre <vincent@vinc17.net> 19501 19502 [src/lngamma.c] No longer declare B as initialized with GCC (see r5534), 19503 as the "may be used uninitialized" warning no longer occurs with latest 19504 GCC: trunk revision 203899 (Debian 20131021-1), for the future GCC 4.9. 19505 The warning still occurs with GCC 4.8.2 (Debian 4.8.2-1): 19506 19507 $ gcc-4.8 -O2 -Wall -c gamma.c 19508 In file included from gamma.c:27:0: 19509 gamma.c: In function ‘mpfr_gamma’: 19510 lngamma.c:468:17: warning: ‘B’ may be used uninitialized in this function [-Wmaybe-uninitialized] 19511 B = mpfr_bernoulli_internal (B, m); /* B[2m]*(2m+1)!, exact */ 19512 ^ 19513 lngamma.c:165:10: note: ‘B’ was declared here 19514 mpz_t *B; 19515 ^ 19516 Note: with GCC 4.8.2, at least -O is needed to reproduce the warning, 19517 and -Wmaybe-uninitialized without -Wuninitialized (or -Wall) doesn't 19518 trigger the warning. 19519 195202013-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19521 19522 added -Wlogical-op 19523 195242013-11-15 Vincent Lefèvre <vincent@vinc17.net> 19525 19526 [tests/tsprintf.c] Added a few tests. 19527 19528 [doc/README.dev] This may seem obvious, but this is not the first time 19529 this happens: + "When adding the expected result, do NOT use the one 19530 obtained from the MPFR function! Otherwise, if this function is buggy, 19531 the test will be wrong and the function will remain buggy." 19532 19533 [tests/tsprintf.c] Fixed incorrect test from r5652 (the corresponding 19534 bug in src/vasprintf.c has been fixed in r8705). 19535 195362013-11-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19537 19538 fixed bug reported by David Binderman 19539 (https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00009.html) 19540 195412013-11-06 Vincent Lefèvre <vincent@vinc17.net> 19542 19543 [tests/thypot.c] More NaN tests. 19544 195452013-11-06 Philippe Théveny <philippe.theveny@laposte.net> 19546 19547 [tests/thypot.c] Fix use of a non explicitly initialized variable. 19548 195492013-11-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19550 19551 [sum.c] the call to mpfr_can_round was obviously wrong 19552 195532013-11-04 Vincent Lefèvre <vincent@vinc17.net> 19554 19555 [tests/tsum.c] Updated TODO comment (→ check underflows). 19556 195572013-11-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19558 19559 [sum.c] mpfr_sum should consider the maximal precision of its inputs/output 19560 195612013-10-28 Vincent Lefèvre <vincent@vinc17.net> 19562 19563 [tests/tsum.c] Added a TODO comment: add generic random test with 19564 cancellations, and tests with intermediate overflows. 19565 19566 [tests/tsum.c] Added test for bug reported by Joseph S. Myers: 19567 https://sympa.inria.fr/sympa/arc/mpfr/2013-10/msg00015.html 19568 195692013-09-27 Vincent Lefèvre <vincent@vinc17.net> 19570 19571 [doc/mpfr.texi] Added an example for mpfr_fits_*, corresponding to the 19572 bug fixed in r8503. 19573 19574 [src/mpfr-impl.h] Document that DOUBLE_ISNAN(x) is valid on long double. 19575 [tests/tset_ld.c] In Isnan_ld, do not convert the long double argument 19576 to double, as this can give an overflow and unexpected behavior without 19577 default IEEE 754 behavior. With this change, this tset_ld test no longer 19578 fails with "clang -O2 -fsanitize=undefined -fno-sanitize-recover". 19579 19580 [tests/tset_ld.c] Avoid a division by zero if MPFR_ERRDIVZERO. 19581 19582 [tests/tset_ld.c] Move tests_start_mpfr call earlier. 19583 19584 [tests/tget_flt.c] Corrections when MPFR_ERRDIVZERO is defined. 19585 19586 [src/mpfr-impl.h] With clang, disable division by zero using constants 19587 due to a bug in its sanitizer and because IEEE 754 division by zero is 19588 currently not properly supported. 19589 With this change, the tget_d test no longer fails with: 19590 clang -O2 -fsanitize=undefined -fno-sanitize-recover 19591 195922013-09-26 Vincent Lefèvre <vincent@vinc17.net> 19593 19594 [tests/tget_flt.c] Protect a division by 0. 19595 195962013-09-17 Vincent Lefèvre <vincent@vinc17.net> 19597 19598 [src/Makefile.am] Updated -version-info to 6:0:2 for MPFR 3.2.0. 19599 196002013-09-16 Vincent Lefèvre <vincent@vinc17.net> 19601 19602 [NEWS] For MPFR 3.2: The --enable-decimal-float configure option 19603 no longer requires --with-gmp-build (see r8402). 19604 196052013-09-15 Vincent Lefèvre <vincent@vinc17.net> 19606 19607 [configure.ac] Detect broken _Decimal64 support on powerpc64 with 19608 the mode32 ABI. 19609 19610 [tests/tget_set_d64.c] More meaningful messages in check_inf_nan. 19611 19612 [tests/tget_set_d64.c] More meaningful messages in check_inf_nan 19613 after failures on powerpc64 with the mode32 ABI. 19614 196152013-09-04 Vincent Lefèvre <vincent@vinc17.net> 19616 19617 [TODO] Added: implement optional cache sharing between threads. 19618 196192013-09-02 Vincent Lefèvre <vincent@vinc17.net> 19620 19621 [doc/mpfr.texi] Changed node name "Integer Related Functions" to 19622 "Integer and Remainder Related Functions", as the corresponding 19623 section title was changed in r4867. Added associated @cindex. 19624 19625 [doc/mpfr.texi] Updated the month. 19626 19627 [doc/mpfr.texi] Specified special values (in particular the sign of 0) 19628 for Section 5.10 "Integer and Remainder Related Functions". 19629 19630 [src/round_raw_generic.c] Support MPFR_RNDNA for this class of functions 19631 at the request of John P. Hartmann (to support one of IBM's High Level 19632 Assembler rounding mode for hexadecimal floating-point constants). 19633 19634 [src/round_raw_generic.c] Code simplification / comment corrections. 19635 196362013-08-26 Vincent Lefèvre <vincent@vinc17.net> 19637 19638 [doc/README.dev] About clang sanitizer, mention -fno-sanitize-recover 19639 for more visibility in automated tests. 19640 196412013-08-23 Vincent Lefèvre <vincent@vinc17.net> 19642 19643 [src/ai.c] Moved the handling of the special cases NaN and ±Inf to 19644 the main function mpfr_ai. 19645 19646 [src/agm.c] Corrected a comment. 19647 [tests/tagm.c] Added tests concerning special values, 19648 in particular (zero,negative) and symmetric tests. 19649 [doc/mpfr.texi] Corrected mpfr_agm description. 19650 196512013-08-21 Vincent Lefèvre <vincent@vinc17.net> 19652 19653 [TODO] Revisit the conversion functions between a MPFR number and 19654 a native floating-point value. 19655 196562013-08-19 Vincent Lefèvre <vincent@vinc17.net> 19657 19658 [doc] Added mpfr.t2d and mpfr.t2p to svn:ignore property. 19659 Note: These directories are now generated when using "make mpfr.dvi" 19660 and "make mpfr.pdf". This comes from a change in Automake 1.13 (see 19661 its 2012-06-20 changelog) for the texi2dvi and texi2pdf invocations. 19662 196632013-08-10 Vincent Lefèvre <vincent@vinc17.net> 19664 19665 [doc/README.dev] Before release, test with gcc -mpc64 under Linux/x86. 19666 196672013-08-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19668 19669 [tversion.c] added GCC version 19670 19671 [tset_ld.c] try to fix a bug on i686-freebsd 19672 (see http://hydra.nixos.org/build/5665961/log/raw) 19673 19674 [tset_ld.c] added debug information 19675 196762013-08-07 Vincent Lefèvre <vincent@vinc17.net> 19677 19678 [tests/tset_ld.c] Reverted changeset r8657 as %a is C99-only. Moreover 19679 the memory representation already gives the necessary information (and 19680 the decimal output was correct on the machine where the test fails). 19681 196822013-08-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19683 19684 [tset_ld.c] maybe this will fix the issue for i686-freebsd? 19685 Cf http://hydra.nixos.org/build/5662697. 19686 19687 [tset_ld.c] in case of error, print d in hexadecimal 19688 196892013-08-07 Vincent Lefèvre <vincent@vinc17.net> 19690 19691 [tests/tset_ld.c] In the "mpfr_set_ld should be exact" error, output 19692 the memory representation of d. 19693 196942013-08-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19695 19696 [tset_ld.c] print value of MPFR_LDBL_MANT_DIG in case of error 19697 196982013-08-07 Vincent Lefèvre <vincent@vinc17.net> 19699 19700 [doc/mpfr.texi] Space consistency. 19701 197022013-08-06 Vincent Lefèvre <vincent@vinc17.net> 19703 19704 [tests/tset_ld.c] Corrected a comment. 19705 19706 [tests/tset_ld.c] Set some long double variables as volatile in order to 19707 avoid optimizations that yield failures with xlc on power7 (not tested). 19708 19709 [src/get_ld.c] Oops... The non-working code was due to a missing cast. 19710 So, simplified the code. 19711 19712 [acinclude.m4] Define HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE if the 19713 "long double" format seems to be double-double (e.g. on PowerPC). 19714 [src/get_ld.c] Added double-double support. 19715 197162013-08-05 Vincent Lefèvre <vincent@vinc17.net> 19717 19718 [src/get_ld.c] GNU style. 19719 19720 [tests/tset_ld.c] Improved output in case of error. 19721 19722 [tests/tset_ld.c] Improved check_set_get() test function; in particular, 19723 it no longer takes a mpfr_t argument: the precision of the MPFR number 19724 is now determined dynamically from the long double d. Thus some numbers 19725 having a precision > MPFR_LDBL_MANT_DIG in double-double arithmetic are 19726 now tested (e.g. on PowerPC). 19727 19728 [doc/mpfr.texi] "correctly-rounded" → "correctly rounded" (see rule on 19729 https://en.wikipedia.org/wiki/Wikipedia:HYPHEN#Hyphens and the IEEE 754 19730 and ISO C standards don't use a hyphen either). 19731 19732 [doc/mpfr.texi] Added missing @code{}'s in mpfr_fpif_import description. 19733 19734 [doc/mpfr.texi] Replaced periods ending a sentence by "@." in the 19735 following cases: when the preceding character is a capital letter 19736 or a closing parenthesis following a capital letter (e.g. "NaN.", 19737 "MPFR.", "MPFR).", etc). This is needed to get correct spacing in 19738 the generated .info and PDF files with the next sentence of the 19739 paragraph (when there is one). 19740 19741 [tests/tset_ld.c] Removed the "check largest 2^k that is representable 19742 as a long double" test based on macros LDBL_MAX and LDBL_EPSILON, which 19743 are not correct in some C implementations. There is already another 19744 "check the largest power of two" test, based on a loop, which is OK. 19745 197462013-08-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19747 19748 [tset_ld.c] improve tests to avoid spurious errors for double-double 19749 representation where MPFR_LDBL_MANT_DIG=106 and numbers 19750 with 107 bits or more 19751 197522013-08-02 Vincent Lefèvre <vincent@vinc17.net> 19753 19754 [doc/mpfr.texi] Document that log1p(-1) = -Inf. 19755 19756 [doc/mpfr.texi] Updated the month. 19757 19758 [doc/mpfr.texi] Moved mpfr_log1p & mpfr_expm1 after mpfr_log & mpfr_exp 19759 respectively. 19760 19761 [tests/tset_ld.c] Comment on LDBL_MAX. 19762 197632013-08-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19764 19765 [tset_ld.c] missing conversion from int to mpfr_rnd_t 19766 19767 [tset_ld.c] improve error message 19768 197692013-08-02 Vincent Lefèvre <vincent@vinc17.net> 19770 19771 [src/set_ld.c] Corrected a comment. 19772 197732013-08-01 Vincent Lefèvre <vincent@vinc17.net> 19774 19775 [doc/mpfr.texi] Completed specification of mpfr_lngamma and mpfr_lgamma 19776 on 1 and 2 (result is +0). 19777 19778 [doc/mpfr.texi] Improved description of mpfr_rec_sqrt and mpfr_hypot. 19779 19780 [tests] Added terandom and tnrandom to svn:ignore property. 19781 19782 [src] Improved some comments with "0", about its sign. 19783 19784 [doc/mpfr.texi] Completed specification on special numbers (±0, ±Inf). 19785 197862013-08-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19787 19788 [tset_ld.c] increase precision to take into account double-double encoding 19789 19790 [tset_ld.c] replaced error by warning when _GMP_IEEE_FLOATS is not defined 19791 197922013-07-22 Vincent Lefèvre <vincent@vinc17.net> 19793 19794 [src/mpfr-sassert.h] Get rid of annoying warnings 19795 typedef 'MPFR_ASSERT_xxx' locally defined but not used 19796 with GCC 4.8+ (better than the non-portable solution r8618). Thanks to 19797 Jonathan Wakely: https://gcc.gnu.org/legacy-ml/gcc-help/2013-07/msg00142.html 19798 197992013-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19800 19801 [configure.ac] revert commit 8618 since it breaks hydra jobs i686-cygwin, 19802 i686-freebsd, i686-solaris and x86_64-freebsd 19803 (cf http://hydra.nixos.org/eval/955753) 19804 198052013-07-22 Vincent Lefèvre <vincent@vinc17.net> 19806 19807 Applied patch 3 by Ondřej Bílka with some manual corrections, 19808 fixing typos: 19809 https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00016.html 19810 19811 Applied patch 2 by Ondřej Bílka, fixing capitalization: 19812 https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00015.html 19813 19814 Applied patch 1 by Ondřej Bílka, fixing common typos: 19815 https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00014.html 19816 19817 [configure.ac] Added -Wno-unused-local-typedefs flag to avoid spurious 19818 "typedef 'MPFR_ASSERT_xxx' locally defined but not used" warnings due 19819 to the implementation of static assertions. 19820 198212013-07-16 Vincent Lefèvre <vincent@vinc17.net> 19822 19823 Slightly restructured doc/README.dev and mentioned C-Reduce. 19824 198252013-07-12 Vincent Lefèvre <vincent@vinc17.net> 19826 19827 [configure.ac] If the gmp.h vs libgmp test fails, also output the value 19828 of some variables (in case config.log is available, information can 19829 also be retrieved from "Cache variables" and "Output variables" near 19830 the end). 19831 198322013-07-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19833 19834 revert temporary commit 8613 19835 198362013-07-11 Vincent Lefèvre <vincent@vinc17.net> 19837 19838 [acinclude.m4] Improved MPFR_CHECK_DBL2INT_BUG in case of failure 19839 and added comments about that. 19840 198412013-07-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19842 19843 [configure.ac] temporary commit to investigate problem with i686-solaris on hydra 19844 198452013-07-11 Vincent Lefèvre <vincent@vinc17.net> 19846 19847 [configure.ac] In the CC and CFLAGS setup from gmp.h, modified the 19848 list of commands to select the C preprocessor since /lib/cpp isn't 19849 the best choice under Solaris. 19850 19851 [configure.ac] Moved AM_PROG_AR (introduced in r8546) after the 19852 CC and CFLAGS setup from gmp.h, because AM_PROG_AR makes Autoconf 19853 select a compiler (before it may be chosen from __GMP_CC). 19854 19855 [configure.ac] The test of CC and CFLAGS was done too late! Moved this 19856 test earlier (checked on Debian/unstable with autoconf 2.69). 19857 198582013-07-10 Vincent Lefèvre <vincent@vinc17.net> 19859 19860 [configure.ac] Improved r8608 (gmp.h/libgmp on stderr). 19861 198622013-07-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19863 19864 [configure.ac] print also the versions of gmp.h/libgmp on stderr, hoping they 19865 will appear on i686-solaris 19866 19867 [src/exp_2.c] removed useless instruction 19868 198692013-07-10 Vincent Lefèvre <vincent@vinc17.net> 19870 19871 [acinclude.m4] Corrected change in r8602 to get an error in the case 19872 i == 0 and u != 1. 19873 198742013-07-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19875 19876 [configure.ac] added fflush to see versions of gmp.h/libgmp 19877 198782013-07-10 Vincent Lefèvre <vincent@vinc17.net> 19879 19880 [src/exp_2.c] Fixed undefined behavior (present in all MPFR versions) 19881 detected by "clang -fsanitize=undefined". 19882 19883 [doc/README.dev] Suggest to test with "clang -fsanitize=undefined"; 19884 see <https://blog.regehr.org/archives/963>. 19885 198862013-07-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19887 19888 more helpful debug information 19889 19890 added debug information for double-to-integer conversion bug 19891 198922013-07-09 Vincent Lefèvre <vincent@vinc17.net> 19893 19894 [src/mpfr.h] Updated a comment about ICC. 19895 19896 [doc/README.dev] Added URL about compiler detection. 19897 198982013-06-07 Vincent Lefèvre <vincent@vinc17.net> 19899 19900 [doc/README.dev] Another update about signed and unsigned integer types. 19901 19902 [doc/README.dev] Update about signed and unsigned integer types. 19903 199042013-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19905 19906 [src/random_deviate.c] applied patch from Charles Karney 19907 [tests/Makefile.am] reorder test files 19908 199092013-06-07 Vincent Lefèvre <vincent@vinc17.net> 19910 19911 [doc/README.dev] Added URL's about C++ reserved keywords. 19912 199132013-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19914 19915 changed to allow compilation with C++: 19916 [src/random_deviate.h] must declare the types before extern C {...} 19917 [tests/tget_sj.c,tests/tset_si.c] "not" seems to be reserved in C++ 19918 199192013-06-07 Vincent Lefèvre <vincent@vinc17.net> 19920 19921 [doc/algorithms.tex] Slightly improved a bound under which mpfr_hypot 19922 cannot have an internal underflow, thus is correct. 19923 199242013-06-06 Vincent Lefèvre <vincent@vinc17.net> 19925 19926 [tools/mpfrlint] Improved a test to avoid false positives. 19927 19928 [doc/algorithms.tex] Updated/improved the proof of mpfr_hypot in the 19929 scaling case. 19930 19931 [src/hypot.c] Slightly improved scaling to avoid even more underflow 19932 in the scaling of y or in its square. 19933 19934 [src/hypot.c] Added a comment on the FIXME. 19935 19936 [src/mpfr-gmp.h] Removed useless and meaningless definitions. 19937 19938 [src] Moved mp_bitcnt_t definition for GMP < 5 from mpfr-gmp.h to 19939 mpfr-impl.h (mpfr-gmp.h is only for definitions from GMP internals 19940 as it is included only in builds without GMP internals). 19941 19942 [src/mpfr-gmp.h] Fixed mp_bitcnt_t presence test. 19943 199442013-06-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19945 19946 changed macro to typedef when mp_bitcnt_t is missing (for coherence with GMP) 19947 19948 fixed compiler warnings 19949 19950 [mpfr-gmp.h] added replacement for mp_bitcnt_t 19951 [hypot.c] added comment 19952 199532013-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19954 19955 applied patch from Charles Karney 19956 199572013-06-05 Vincent Lefèvre <vincent@vinc17.net> 19958 19959 [README] Added ar-lib (due to AM_PROG_AR in r8546) and test-driver 19960 (installed by Automake 1.12+). 19961 199622013-06-03 Vincent Lefèvre <vincent@vinc17.net> 19963 19964 [doc/mpfr.texi] Updated the month. 19965 199662013-06-02 Vincent Lefèvre <vincent@vinc17.net> 19967 19968 [configure.ac] In AM_INIT_AUTOMAKE, lowered Automake version requirement 19969 to 1.11.2 (for AM_PROG_AR), as Ubuntu 12.04 LTS only has Automake 1.11.3 19970 (we assume that such distributions have a security patch). 19971 19972 [configure.ac] In AM_INIT_AUTOMAKE, require Automake 1.11.6 for 19973 AM_PROG_AR and security reasons. 19974 19975 [NEWS,doc/mpfr.texi] New and deprecated functions in MPFR 3.2. 19976 19977 Spelling: gaussian -> Gaussian (Wikipedia, Wolfram MathWorld, dict). 19978 19979 [doc/mpfr.texi] Slight doc improvement for mpfr_grandom. 19980 199812013-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19982 19983 added assertion 19984 199852013-06-01 Vincent Lefèvre <vincent@vinc17.net> 19986 19987 [src/random_deviate.c] Updated a comment. 19988 199892013-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 19990 19991 in case mp_limb_t is smaller than unsigned long, use alternate code for 19992 highest_bit_idx 19993 199942013-06-01 Vincent Lefèvre <vincent@vinc17.net> 19995 19996 [tools/mpfrlint] Update for random_deviate. 19997 19998 [src/nrandom.c] Corrected indentation. 19999 20000 [src/random_deviate.h] Fixed a typo in a macro name. 20001 20002 [src/random_deviate.c] Removed trailing spaces. 20003 20004 Added ar-lib to svn:ignore property (this script comes from Automake, 20005 due to the use of AM_PROG_AR in configure.ac as of r8546). 20006 200072013-05-31 Vincent Lefèvre <vincent@vinc17.net> 20008 20009 [tests/memory.c] Added a FIXME comment about the time complexity of 20010 tests_memory_find (Paul Zimmermann noticed that tgrandom on a large 20011 value takes a lot of time, probably because of that). 20012 200132013-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20014 20015 updated NEWS and contribution section in mpfr.texi 20016 20017 #include <...> -> #include "..." for local files 20018 20019 removed obsolete comment 20020 20021 GNU style 20022 20023 GNU style 20024 20025 GNU style 20026 20027 added tests files for mpfr_nrandom and mpfr_erandom 20028 20029 removed RANDOM_SIMPLE=1 stuff (this was an alternate slower implementation). 20030 Kept in svn history as a reference. 20031 20032 removed mpfr_grandom_alt (likewise previous commit) 20033 20034 removed mpfr_urandom_alt (slower than mpfr_urandom, but it can be recovered 20035 from the svn history to illustrate one of the basic properties of a newly 20036 initialized mpfr_random_deviate_t) 20037 20038 removed mpfr_random.h, headers are in mpfr.h 20039 20040 original contribution from Charles Karney <charles.karney@sri.com> 20041 200422013-05-30 Vincent Lefèvre <vincent@vinc17.net> 20043 20044 Removed obsolete tools/update-patchv script. Use update-version instead. 20045 20046 [configure.ac] Added AM_PROG_AR to support unusual archivers 20047 (after a warning from Automake 1.13). 20048 20049 [tools/ck-copyright-notice] Update for copyright year ranges. 20050 20051 [doc/mpfr.texi] Updated the month. 20052 20053 Use copyright year ranges, following 20054 https://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices 20055 20056 [tests] Added *.log and *.trs to svn:ignore property. 20057 20058 [INSTALL] Update about configure default options. 20059 20060 Added test-driver (from Automake 1.12+) to svn:ignore property. 20061 200622013-05-24 Vincent Lefèvre <vincent@vinc17.net> 20063 20064 [configure.ac] Updated comment about -mieee-fp icc option. 20065 200662013-05-24 Philippe Théveny <philippe.theveny@laposte.net> 20067 20068 [tests/tprintf] remove tests of invalid format (continuation of r8525). 20069 20070 [src/vasprintf.c] Support all length modifiers defined by ISO C99, even if the 20071 corresponding type is not detected by configure (continuation of r8525). 20072 200732013-05-24 Vincent Lefèvre <vincent@vinc17.net> 20074 20075 [configure.ac] For ICC, changed the deprecated -mp option to the 20076 equivalent one -mieee-fp; added a comment about that. 20077 200782013-05-24 Philippe Théveny <philippe.theveny@laposte.net> 20079 20080 [src/vasprintf.c] Always support 't' and 'L' length modifiers, but don't 20081 test them if configure doesn't find the corresponding type. 20082 20083 Printing invalid format specifiers (continuation of r8525) 20084 [src/vasprintf.c] Add comments. 20085 [tests/tprintf.c] Simplify tests. 20086 200872013-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20088 20089 new macro MPFR_MAYBE_UNUSED to avoid compiler warnings 20090 200912013-05-23 Philippe Théveny <philippe.theveny@laposte.net> 20092 20093 [src/vasprintf.c] Print invalid format specifier instead of returning an error code, as in GMP. 20094 [tests/tprintf.c] Modify tests for invalid format. 20095 200962013-05-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20097 20098 try to link with GMP even when a dll, since it seems to work now 20099 (see https://sympa.inria.fr/sympa/arc/mpfr/2013-05/msg00010.html) 20100 20101 replaced macros NPRINTF_T and NPRINTF_L by positive versions 20102 PRINTF_T and PRINTF_L, now we don't assume that %td and %Lf are supported 20103 when we don't check it (for example when cross-compiling, or under Windows 20104 when GMP is a dynamic library) 20105 20106 fixed typo 20107 201082013-05-15 Vincent Lefèvre <vincent@vinc17.net> 20109 20110 [Makefile.am] Added a comment about ACLOCAL_AMFLAGS, based on the 20111 GNU Automake 1.13.2 release notes. 20112 201132013-04-17 Vincent Lefèvre <vincent@vinc17.net> 20114 20115 [src/mpfr-impl.h] With clang, do not use GCC's self-initialization trick 20116 as it generates a warning, though clang claims GCC compatibility. 20117 201182013-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20119 20120 [algorithms.tex] added reference 20121 201222013-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20123 20124 [TODO] added item 20125 201262013-03-18 Vincent Lefèvre <vincent@vinc17.net> 20127 20128 [src/fits_intmax.c] Corrected a comment. 20129 20130 [src/{fits_u.h,fits_uintmax.c}] Fixed the mpfr_fits_u*_p functions, 20131 which incorrectly returned 0 ("doesn't fit") on negative arguments 20132 when the rounding to an integer was 0. The fits_uintmax.c file now 20133 uses fits_u.h for consistency. 20134 20135 [tests/tfits.c] Use error numbers to know where an error occurred. 20136 20137 [src/fits_uintmax.c] Replaced an obsolete comment by a TODO. 20138 20139 [tests/tget_sj.c] Added mpfr_get_uj tests on small negative op, 20140 similar to what has been done for mpfr_get_ui in r8498,8499. 20141 20142 [tests/tset_si.c] Minor type correction for r8498 (this shouldn't matter 20143 because the value is normally small, but perhaps not in case of bug). 20144 20145 [tests/tset_si.c] Added mpfr_get_ui tests on small negative op. 20146 20147 [tests/tset_si.c] Corrected comment. 20148 20149 [doc/mpfr.texi] Updated the month. 20150 20151 [doc/mpfr.texi] Improved documentation of the conversions to an integer 20152 (mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj). 20153 20154 [tests/tfits.c] Added tests, in particular for small negative op 20155 and in non-RNDN rounding modes; tfits currently fails. 20156 20157 [tools/announce-text] Added short text about what GNU MPFR is. 20158 201592013-03-13 Vincent Lefèvre <vincent@vinc17.net> 20160 20161 [doc/README.dev] Removed a duplicate word. 20162 201632013-03-12 Vincent Lefèvre <vincent@vinc17.net> 20164 20165 [INSTALL] Added a paragraph about Cygwin and threading. 20166 20167 [INSTALL] Improved information on patches. 20168 201692013-03-11 Vincent Lefèvre <vincent@vinc17.net> 20170 20171 [tools/announce-text] Added text about how to verify the signatures. 20172 20173 [doc/README.dev] Updated "To make a release" about the web pages. 20174 201752013-03-08 Vincent Lefèvre <vincent@vinc17.net> 20176 20177 [doc/README.dev] Added info about update-version and ck-version-info. 20178 201792013-03-05 Vincent Lefèvre <vincent@vinc17.net> 20180 20181 [tests/tfpif.c] Clean-up. Improved consistency. 20182 201832013-03-04 Vincent Lefèvre <vincent@vinc17.net> 20184 20185 [examples] Replaced the old rounding mode macros (GMP_RNDN, etc.) by the 20186 new ones (MPFR_RNDN, etc.) in the *.c files; updated ReadMe file. 20187 20188 [doc/update-faq] Removed the now useless s/GMP_RND/MPFR_RND/ rewriting. 20189 20190 [doc] Slightly modified faq.xsl to avoid libxslt bug 377440, and 20191 moved the addition of special CSS comments for XML compatibility 20192 from update-faq to faq.xsl file. 20193 201942013-03-01 Vincent Lefèvre <vincent@vinc17.net> 20195 20196 [tests/tgamma.c] Avoid mpfr_set_d. 20197 20198 [tests/tfpif.c] Avoid mpfr_set_d as the results may depend on the C 20199 implementation. 20200 202012013-01-03 Vincent Lefèvre <vincent@vinc17.net> 20202 20203 [doc/mpfr.texi] Updated the month. 20204 20205 Copyright notice update: added 2013 with 20206 perl -pi -e 's/2012 Free Software/2012, 2013 Free Software/' **/*(^/) 20207 under zsh, reverting the ChangeLog file and the m4 directory 20208 (the tools/mbench directory was not modified). 20209 Removed 2012 from the example in the doc/README.dev file. 20210 20211 [configure.ac] Corrected comment on clock_gettime (from r8445). 20212 202132012-12-31 Vincent Lefèvre <vincent@vinc17.net> 20214 20215 Tuning: reverted changeset r8444 and applied patch by Patrick Pélissier 20216 for GMP 5.1.0 to link against librt conditionally. 20217 202182012-12-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20219 20220 [Makefile.am] -lrt is needed for clock_gettime() [undefined with GMP 5.1.0] 20221 202222012-12-21 Vincent Lefèvre <vincent@vinc17.net> 20223 20224 [tests/tfpif.c] Added a TODO. 20225 20226 [src/fpif.c] Added an assert on MPFR_PREC_MIN because the code seems 20227 to be based on this (always true with the current value). 20228 20229 [doc/mpfr.texi] Minor corrections of mpfr_fpif_import documentation. 20230 202312012-12-21 Olivier Demengeon <olivier.demengeon@inria.fr> 20232 20233 mpfr_fpif_import now check precision size. Documentation updated for mpfr_fpif_import. 20234 202352012-12-20 Vincent Lefèvre <vincent@vinc17.net> 20236 20237 Compatibility with GMP 5.1.0 when gmp-impl.h is included (thanks to Rob: 20238 https://sympa.inria.fr/sympa/arc/mpfr/2012-12/msg00003.html); clean-up. 20239 202402012-12-12 Vincent Lefèvre <vincent@vinc17.net> 20241 20242 [src/fpif.c] Added a FIXME comment in mpfr_fpif_import concerning the 20243 precision. 20244 202452012-12-11 Vincent Lefèvre <vincent@vinc17.net> 20246 20247 [src/fpif.c] Added comments. Fixed mpfr_fpif_read_precision_from_file 20248 in the case where the precision size > sizeof(mpfr_prec_t) and/or when 20249 the read precision is too large (as mpfr_prec_t is signed). 20250 202512012-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20252 20253 [fpif.c] completed FIXME 20254 202552012-12-08 Vincent Lefèvre <vincent@vinc17.net> 20256 20257 [src/fpif.c] Added a FIXME comment: large precisions read from the file 20258 can trigger undefined behavior if sizeof(mpfr_prec_t) is too small. 20259 202602012-12-07 Olivier Demengeon <olivier.demengeon@inria.fr> 20261 20262 Fixed stack overflow bug in fpif.c 20263 202642012-12-05 Vincent Lefèvre <vincent@vinc17.net> 20265 20266 [acinclude.m4,configure.ac] Moved the "double-to-integer conversion bug" 20267 test after the gmp.h detection as it uses gmp.h (otherwise one gets an 20268 incorrect error on this test if gmp.h can't be found or is unusable). 20269 202702012-12-03 Vincent Lefèvre <vincent@vinc17.net> 20271 20272 [doc/mpfr.texi] Removed a useless comma from r8428. 20273 20274 [doc/mpfr.texi] Updated the month. 20275 20276 [doc/mpfr.texi] Updated warning in mpfr_min_prec description, 20277 in particular for the use with mpfr_prec_round. 20278 202792012-10-17 Vincent Lefèvre <vincent@vinc17.net> 20280 20281 [src/set_uj.c] Change to help the compiler to detect dead code, 20282 improving the coverage (from a patch by Patrick Pélissier). 20283 20284 [src/get_d64.c] Added a const (thanks to Patrick Pélissier). 20285 202862012-10-10 Vincent Lefèvre <vincent@vinc17.net> 20287 20288 [acinclude.m4] Check struct lconv members (from <locale.h>) to avoid a 20289 build failure under Android, which does not have them; see 20290 https://sympa.inria.fr/sympa/arc/mpfr/2012-10/msg00002.html 20291 [src/mpfr-impl.h] Decimal point / thousands separator support can now be 20292 detected automatically by configure (from the presence of <locale.h> 20293 and the above members) or explicitly disabled/enabled by the user by 20294 defining the MPFR_LCONV_DPTS macro to 0 or 1 via CFLAGS (a configure 20295 switch might be added in the future). 20296 [tests/tsprintf.c] Do the locale_da_DK test only if MPFR_LCONV_DPTS is 20297 true. 20298 202992012-09-29 Vincent Lefèvre <vincent@vinc17.net> 20300 20301 [doc/README.dev] Note about GNU extensions and ICC. 20302 203032012-09-20 Vincent Lefèvre <vincent@vinc17.net> 20304 20305 [get_float128.c,set_float128.c] Avoid an empty translation unit 20306 (forbidden by ISO C, detected with gcc -ansi -pedantic-errors) 20307 when MPFR_WANT_FLOAT128 is not defined. 20308 20309 Applied patch (with minor changes) by Patrick Pélissier to improve 20310 the mpfr_round_nearest_away interface. 20311 203122012-09-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20313 20314 [nightly-test] modified so that decimal floats are tested (with gcc) 20315 203162012-09-05 Vincent Lefèvre <vincent@vinc17.net> 20317 20318 Removed trailing whitespace. 20319 20320 [doc/mpfr.texi] Updated the month. 20321 203222012-09-04 Vincent Lefèvre <vincent@vinc17.net> 20323 20324 [configure.ac] Improved error message when the compiler doesn't know 20325 _Decimal64 (if MPFR is built with --enable-decimal-float). 20326 203272012-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20328 20329 revert changeset r8412 (_Decimal64 might be defined in C++, but not as a macro) 20330 20331 updated documentation wrt --enable-decimal-float 20332 20333 added support for --enable-decimal-float with g++ (does not work with icpc, 20334 the Intel C++ compiler) 20335 20336 [tests/tl2b.c] fix for C++ 20337 203382012-09-04 Vincent Lefèvre <vincent@vinc17.net> 20339 20340 [src/set_d.c] Updated a comment on the negative zero. 20341 20342 [src/get_str.c] #include "mpfr-intmax.h" so that UINT64_C has a chance 20343 to be defined (optionally used as of r8406). 20344 203452012-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20346 20347 [src/set_d64.c] fix for systems where +0.0 and -0.0 are stored identically in 20348 memory 20349 20350 [src/set_d64.c] better code to detect -0.0 (copied from set_d.c) 20351 20352 [tests/tl2b.c] use UINT64_C for 64-bit integer constants 20353 [src/get_str.c] update table generated by "tests/tl2b 1" 20354 20355 [get_d64.c,set_d64.c] small fixes (did not work any more with --with-gmp-build) 20356 20357 [set_d64.c] some cleanup, since sprintf adds a final '\0', and fixed a too 20358 small memory allocation 20359 203602012-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20361 20362 [TODO] removed an item (done) 20363 20364 Now --enable-decimal-float does not require any more --with-gmp-build. 20365 Still disabled by default: some more testing is needed before we can enable 20366 it by default (if _Decimal64 is supported). 20367 203682012-08-29 Vincent Lefèvre <vincent@vinc17.net> 20369 20370 [tests/tstrtofr.c] Updated bug20120829 comment (bug fixed in r8396). 20371 20372 [tests/tstrtofr.c] Fixed small type error. 20373 203742012-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20375 20376 [strtofr.c] new try to fix the assertion failure on 32-bit 20377 203782012-08-29 Vincent Lefèvre <vincent@vinc17.net> 20379 20380 [tests/tstrtofr.c] Added more bug20120829 tests, showing that r8394 is 20381 still buggy on 32-bit machines (assertion failure in strtofr.c). 20382 203832012-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20384 20385 [strtofr.c] fix for failing test case introduced in r8392 20386 203872012-08-29 Vincent Lefèvre <vincent@vinc17.net> 20388 20389 [tests/tstrtofr.c] Updated a comment: the 2nd testcase of r8392 also 20390 triggers an assertion failure on 32-bit machines. 20391 20392 [tests/tstrtofr.c] Added 2 testcases: 20393 * One triggering an assertion failure in strtofr.c r8389 20394 on 32-bit machines (fixed in r8390). 20395 * One still triggering an assertion failure in strtofr.c (r8391) 20396 on 64-bit machines. 20397 203982012-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20399 20400 [strtofr.c] fixed comments 20401 204022012-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20403 20404 [strtofr.c] fix for err >= GMP_NUMB_BITS 20405 204062012-08-28 Vincent Lefèvre <vincent@vinc17.net> 20407 20408 [src/strtofr.c] Consistency correction: towards → toward. 20409 20410 [src/sin_cos.c] Consistency correction: towards → toward. 20411 20412 [doc] Updated FAQ.html with update-faq. 20413 204142012-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20415 20416 [strtofr.c] fixed bug in mpfr_strtofr in case: 20417 (1) the input string was used entirely 20418 (2) the conversion was done by a division 20419 (3) and the division was exact 20420 In such a case the "reconstruction" of the ternary value was 20421 inexact. 20422 204232012-08-16 Vincent Lefèvre <vincent@vinc17.net> 20424 20425 [src/get_d64.c] mpfr_get_decimal64 was buggy in MPFR_RNDN on some 20426 values x such that 0.5e-398 < |x| < 1e-398 (smallest subnormal): 20427 it was returning 0 instead of +/- 1e-398 (see r8370). 20428 [tests/tget_set_d64.c] Added testcases. 20429 204302012-08-15 Vincent Lefèvre <vincent@vinc17.net> 20431 20432 [src/get_d64.c] Fixed get_decimal64_max by simplifying it completely, 20433 and changed get_decimal64_min in the same way. 20434 Thanks to Rob (Sisyphus) for the idea. 20435 20436 [tests/tget_set_d64.c] Added overflow tests (they cover the two bad 20437 tests fixed in r8372 and trigger a bug in get_decimal64_max). 20438 20439 [tests/tget_set_d64.c] Added some tests for large numbers. 20440 20441 Renamed WANT_ASSERT to MPFR_WANT_ASSERT in order to avoid a clash 20442 with GMP when MPFR is configured with --with-gmp-build. 20443 204442012-08-14 Vincent Lefèvre <vincent@vinc17.net> 20445 20446 [src/get_d64.c] Fixed overflow cases. 20447 20448 [tests/tstrtofr.c] Added testcase from bug reported by Joseph S. Myers. 20449 204502012-08-13 Vincent Lefèvre <vincent@vinc17.net> 20451 20452 [src/get_d64.c] mpfr_get_decimal64 is buggy in MPFR_RNDN for values x 20453 such that 0.5e-398 < |x| < 1e-398. Added a FIXME comment. 20454 See: https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00002.html 20455 204562012-07-27 Vincent Lefèvre <vincent@vinc17.net> 20457 20458 [src/fpif.c] No longer assume that if HAVE_BIG_ENDIAN is not defined, 20459 the architecture is little endian. Detect the case where neither 20460 HAVE_BIG_ENDIAN nor HAVE_LITTLE_ENDIAN is defined (currently an 20461 error). 20462 [configure.ac] Fixed the use of AC_C_BIGENDIAN (since AC_CONFIG_HEADERS 20463 is not used, one must have an ACTION-IF-UNIVERSAL argument). 20464 [doc/README.dev] Check with "-UHAVE_BIG_ENDIAN -UHAVE_LITTLE_ENDIAN" 20465 (unknown/unspecified endianness) before a release. 20466 20467 [doc/README.dev] Update now that autogen.sh is in the repository. 20468 20469 Added autogen.sh sh script from Daniel Richard G. to install/update the 20470 autotools files and clean up caches (useful before a release). 20471 20472 Updated autotools files to get rid of obsolete macros (thanks to 20473 Daniel Richard G. for the patch; kept the autoconf requirement 20474 to 2.60 instead of changing it to 2.68 as done with autoupdate, 20475 since 2.60 seems to be sufficient according to the changes and 20476 2.68 is too recent, e.g. Debian/stable still has 2.67). 20477 --- Note --- 20478 This update has another effect: The "Configs for Windows DLLs." 20479 code (from "case $host in" to "esac") is now executed at the right 20480 time, after options like --disable-static are taken into account. 20481 Juste before this change, the test 20482 if test "$enable_shared" = yes; then 20483 was always false. This could be seen on hydra: 20484 With r8360: 20485 [...] 20486 configure flags: --disable-static --disable-dependency-tracking 20487 --prefix=/nix/store/95zhbb0v23syxsazx33hg3acbvixyq5a-mpfr-0-3.2.0-dev 20488 [...] 20489 checking for DLL/static GMP... static 20490 [...] 20491 checking whether to build shared libraries... yes 20492 checking whether to build static libraries... no 20493 [...] 20494 With r8367: 20495 [...] 20496 configure flags: --disable-static --disable-dependency-tracking 20497 --prefix=/nix/store/8zblwffd2ww1z0smqlgwrfzcl6b48rim-mpfr-0-3.2.0-dev 20498 [...] 20499 checking whether to build shared libraries... yes 20500 checking whether to build static libraries... no 20501 checking for DLL/static GMP... static 20502 [...] 20503 20504 [src/mpfr-intmax.h] Updated comment formatting so that mpfrlint 20505 doesn't complain. 20506 205072012-07-26 Vincent Lefèvre <vincent@vinc17.net> 20508 20509 [configure.ac] Replaced "sed" by "$SED". 20510 20511 [tools/mpfrlint] Check for sed. 20512 20513 [tools/mpfrlint] Check for grep, egrep and fgrep (see r8356 correction). 20514 205152012-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20516 20517 we use a 77-bit approximation in get_str.c (and not 76-bit) 20518 205192012-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20520 20521 [configure.ac] grep -> $EGREP (thanks Marc Glisse) 20522 https://sympa.inria.fr/sympa/arc/mpfr/2012-07/msg00006.html 20523 205242012-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20525 20526 [acinclude.m4] fix for cross-compilation 20527 205282012-07-24 Vincent Lefèvre <vincent@vinc17.net> 20529 20530 [acinclude.m4] Improved a message and corrected gmp.h inclusion. 20531 205322012-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20533 20534 [acinclude.m4] added test for double-to-integer conversion bug 20535 20536 revert r8349 (will do the test in configure) 20537 205382012-07-24 Vincent Lefèvre <vincent@vinc17.net> 20539 20540 Improved doc/mpfr.texi about MPFR_USE_INTMAX_T. 20541 20542 [src/mpfr-intmax.h] Define MPFR_USE_INTMAX_T if <inttypes.h> and/or 20543 <stdint.h> is available. This is needed on systems for which the 20544 current (non-standard) macro tests in mpfr.h is not sufficient. 20545 This will force the support of intmax_t/uintmax_t in this case and 20546 also avoids a failure in the tests on such systems. 20547 Tested by replacing the macro tests in mpfr.h by just 20548 #if defined (MPFR_USE_INTMAX_T) 20549 to simulate such a system. 20550 205512012-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20552 20553 [tinternals.c] added test for double -> mp_limb_t conversion 20554 205552012-07-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20556 20557 [mpfr.h] patch for FreeBSD (tested on gcc76.fsffrance.org with freebsd-83-amd64) 20558 205592012-07-10 Vincent Lefèvre <vincent@vinc17.net> 20560 20561 Added tools/announce-text sh script to be run before publishing an 20562 announce of a new GNU MPFR release (it does some checking, then it 20563 outputs the announce text to stdout). 20564 Mention this script in "doc/README.dev". 20565 20566 [doc/README.dev] Updated "To make a release". 20567 205682012-07-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20569 20570 [TODO] added item 20571 205722012-07-06 Vincent Lefèvre <vincent@vinc17.net> 20573 20574 [tests/{tset_d.c,tget_flt.c}] Disabled two tests when HAVE_SIGNEDZ 20575 isn't defined, because these tests rely on signed zeros. 20576 20577 [acinclude.m4] Added a test for signed zeros (tcc currently doesn't 20578 support signed zeros, and 2 MPFR tests fail because of that). 20579 20580 [acinclude.m4] Removed useless "#include <math.h>" in the test 20581 for subnormal numbers. 20582 20583 [acinclude.m4] Replaced the AC_TRY_RUN obsolete macro by 20584 AC_RUN_IFELSE([AC_LANG_SOURCE([[...]])],...) as documented 20585 in the GNU Autoconf manual. 20586 Minor correction in the test for subnormal numbers. 20587 20588 [tests] Added trndna to svn:ignore property. 20589 20590 [tests/tset_d.c] Formatting. 20591 20592 Replaced "denormalized" by the official term "subnormal". 20593 205942012-07-05 Vincent Lefèvre <vincent@vinc17.net> 20595 20596 [tools/coverage] unset MPFR_* environment variables in a better way. 20597 20598 [tools/coverage] unset MPFR_* environment variables in a better way. 20599 206002012-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20601 20602 [coverage] unset MPFR_* environment variables to get reproducible results 20603 20604 [tabort_defalloc2.c] changed char* into void* to please g++ compiler 20605 206062012-07-04 Vincent Lefèvre <vincent@vinc17.net> 20607 20608 [tests/trndna.c] Removed useless initialization. 20609 206102012-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20611 20612 [trndna.c] restore emin 20613 20614 [coverage] unset GMP_CHECK_RANDOMIZE so that the coverage test is deterministic 20615 206162012-07-04 Vincent Lefèvre <vincent@vinc17.net> 20617 20618 [doc/mpfr.texi] Replaced a "should not" by a "must not". 20619 20620 [doc/mpfr.texi] Consistency change. 20621 206222012-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20623 20624 [trndna.c] increase emin when smallest possible 20625 20626 [rndna.c] special treatment for the case 2^(emin-2) 20627 20628 several changes suggested by Vincent Lefevre 20629 20630 [rndna.c] changed the specification since on 32-bit machines we have no margin 20631 for the smallest exponent emin 20632 20633 added new function mpfr_round_nearest_away() as discussed during the June 2012 20634 workshop 20635 206362012-07-03 Vincent Lefèvre <vincent@vinc17.net> 20637 20638 [tools/coverage] Minor update, just in case... 20639 206402012-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20641 20642 [exp.c] fixed typo 20643 206442012-07-03 Vincent Lefèvre <vincent@vinc17.net> 20645 20646 [doc/mpfr.texi] Updated the month. 20647 20648 [tests/{td_div.c,tget_d.c}] Disable tests with a division by 0 if 20649 MPFR_ERRDIVZERO is defined. 20650 20651 [tests/tests.c] Improved an error message. 20652 20653 [acinclude.m4] Fixed sigaction check to support "gcc -std=c99", like 20654 what has been done for math/round. 20655 206562012-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20657 20658 [trndna.c] test file for mpfr_round_nearest_away() 20659 206602012-07-02 Vincent Lefèvre <vincent@vinc17.net> 20661 20662 [src/rndna.c] 20663 * Handle singular cases like with other functions. Avoid the goto. 20664 * Reordered the tests to make them simpler and easier to understand 20665 (it wasn't immediately visible that inex could not be 0 for the 20666 second "else") and fixed the case lastbit == 1 && inex < 0. 20667 20668 [src/rndna.c] Added a note saying that this method doesn't work 20669 for 2^(emin-2). 20670 206712012-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20672 20673 [rndna.c] new function that computes rounding to nearest-away 20674 206752012-06-28 Vincent Lefèvre <vincent@vinc17.net> 20676 20677 [tests/tprintf.c] Test the thousands separator in some en_US locale, 20678 if available (modified patch from Patrick). 20679 20680 Added coverage tune (from a patch by Patrick). 20681 206822012-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20683 20684 [mpfr.texi] added support by ERC grant of Andreas 20685 206862012-06-27 Vincent Lefèvre <vincent@vinc17.net> 20687 20688 [doc/mpfr.texi] Replaced a few @samp by @code for consistency. 20689 206902012-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20691 20692 [mpfr.texi] document MPFR_WANT_DECIMAL_FLOATS and MPFR_WANT_FLOAT128 20693 206942012-06-27 Vincent Lefèvre <vincent@vinc17.net> 20695 20696 [src/mulders.c] Clean-up and static assertions (patch from Patrick). 20697 20698 [tests/tgrandom.c] Replaced GMP_RNDN by MPFR_RNDN. 20699 20700 [tests/tgrandom.c] Improved a test and added a new one for 20701 mpfr_grandom(x, NULL, ...). 20702 20703 [doc/mpfr.texi] Completed spec of mpfr_grandom. 20704 207052012-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20706 20707 [coverage] added instructions how to use this script 20708 207092012-06-27 Vincent Lefèvre <vincent@vinc17.net> 20710 20711 [NEWS] Update: test coverage. 20712 20713 [tools/coverage] Detailed coverage (from a patch by Patrick). 20714 207152012-06-26 Vincent Lefèvre <vincent@vinc17.net> 20716 20717 [src/{mpfr-impl.h,print_raw.c}] Removed unused function mpfr_dump_mant 20718 (added in r3410, but never used); patch by Patrick. 20719 20720 [tests/tsin.c] Improved coverage. 20721 20722 [tests/tset.c] Test the mpfr_set function too (patch by Patrick). 20723 20724 Added configure option --enable-assert=none to avoid checking any 20725 assertion (this is based on a patch by Patrick). 20726 20727 [src/digamma.c] Correction: assertions must never have any side effect. 20728 20729 [tests] Updated svn:ignore property. 20730 20731 [src/atan.c] Removed trailing whitespace. 20732 20733 Forgot to add some files in r8266 (tests that are expected to fail). 20734 20735 Support tests that are expected to fail (from a patch by Patrick). 20736 20737 [tests/tversion.c] Output the applied patches (if any). 20738 20739 [tests/tstckintc.c] Correction and test improvement (from a patch 20740 by Patrick). 20741 20742 [tools/coverage] Correction by Patrick. 20743 207442012-06-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20745 20746 [atan.c] improved code coverage by removing some dead code after some numerical 20747 analysis with Benjamin Dadoun 20748 207492012-06-26 Vincent Lefèvre <vincent@vinc17.net> 20750 20751 [doc/README.dev] Removed obsolete "but see below". 20752 20753 [tests/tinternals.c] mpfr_set_prec_raw missing tests (thanks to Patrick). 20754 20755 [tests/tset_si.c] Also test the mpfr_set_ui function (instead of macro). 20756 20757 [NEWS] 3.2.0 will be "dinde aux marrons". 20758 207592012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20760 20761 [gamma.c] simplified mpfr_gamma_1_minus_x_exact() after code coverage analysis 20762 with Benjamin Dadoun 20763 207642012-06-25 Vincent Lefèvre <vincent@vinc17.net> 20765 20766 [configure.ac] aclocal -> acinclude.m4 in a comment. 20767 20768 [src/{init2.c,mpfr-impl.h}] Clean-up. 20769 207702012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20771 20772 [TODO] removed one item, added one 20773 207742012-06-25 Vincent Lefèvre <vincent@vinc17.net> 20775 20776 [acinclude.m4] Detect whether _Thread_local (C11) is supported. 20777 [src/mpfr-thread.h] Use _Thread_local if supported, instead of __thread. 20778 (Patch from Patrick) 20779 207802012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20781 20782 [gamma.c] simplified code for mpfr_gamma_2_minus_x_exact() (thanks to coverage 20783 analysis by Benjamin Dadoun) 20784 207852012-06-25 Vincent Lefèvre <vincent@vinc17.net> 20786 20787 [src/Makefile.am] Added mpfr-sassert.h to libmpfr_la_SOURCES. 20788 20789 [src/init2.c] Replaced classic assertions by static assertions. 20790 20791 Added Static Assertion support (modified patch from Patrick). 20792 * Added src/mpfr-sassert.h: implementation of static assertions. 20793 * src/mpfr-impl.h: include "mpfr-sassert.h". 20794 * acinclude.m4: test whether static assertions are supported. 20795 20796 [doc/README.dev] Suggest to test with and without -std=c11. 20797 20798 [tests/tset_float128.c] Test the sign of 0. Use mpfr_equal_p instead of 20799 mpfr_cmp (this is safer if a result is NaN). 20800 20801 [src/set_float128.c] Avoid a goto (useless here, contrary to set_ld.c). 20802 20803 [src/get_float128.c] !MPFR_IS_ZERO -> MPFR_NOTZERO; GNU coding style. 20804 20805 tests: updated svn:ignore property. 20806 20807 [tests/tset_float128.c] Got rid of the remaining mpfr_printf's. 20808 208092012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20810 20811 [tset_float128.c] added missing empty main when functions are not tested 20812 20813 [set_float128.c,tset_float128.c] untabified and got rid of mpfr_printf 20814 208152012-06-25 Vincent Lefèvre <vincent@vinc17.net> 20816 20817 [NEWS] Added a period. 20818 20819 [doc/mpfr.texi] Updated the month. 20820 20821 [configure.ac] "configure --help" formatting for --enable-float128. 20822 208232012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20824 20825 compile mpfr_set_float128 and mpfr_get_float128 only when __float128 is supported 20826 20827 [configure.ac] __float128 is supported by GCC >= 4.3 20828 208292012-06-25 Vincent Lefèvre <vincent@vinc17.net> 20830 20831 [tests/tset_float128.c] mp_rnd_t -> mpfr_rnd_t 20832 208332012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20834 20835 added new functions mpfr_set_float128 and mpfr_get_float128 20836 20837 [get_ld.c] fixed typo 20838 208392012-06-25 Vincent Lefèvre <vincent@vinc17.net> 20840 20841 [tests/tversion.c] Test mpfr_buildopt_tune_case() vs MPFR_TUNE_CASE. 20842 20843 [src/buildopt.c] Made mpfr_buildopt_tune_case() simpler. 20844 208452012-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20846 20847 [li2.c] replaced mpfr_cmp_d by mpfr_cmp_ui_2exp 20848 208492012-06-21 Vincent Lefèvre <vincent@vinc17.net> 20850 20851 [tests/tset_ld.c] For _GMP_IEEE_FLOATS, use #if instead of #ifdef 20852 since mpfr-impl.h defines it to 0 if it was undefined. 20853 208542012-05-18 Vincent Lefèvre <vincent@vinc17.net> 20855 20856 [TODO] Added a reference to a new discussion concerning __float128. 20857 208582012-05-14 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 20859 20860 * Other corrections (essentially bad or missing declarations) in metaMPFR. 20861 208622012-05-11 Vincent Lefèvre <vincent@vinc17.net> 20863 20864 [doc/mpfr.texi] Improved the description of the mpfr_flags_ functions. 20865 208662012-05-10 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 20867 20868 * Corrected small errors. 20869 208702012-05-10 Vincent Lefèvre <vincent@vinc17.net> 20871 20872 [doc/mpfr.texi] Improved mpfr_flags_test description, giving an example. 20873 20874 [src/mpfr.h] Define MPFR_FLAGS_ALL from the individual flags 20875 (MPFR_FLAGS_UNDERFLOW...). Suggestion by Paul Zimmermann. 20876 Note: the output expression looks OK in assertion failures. 20877 20878 [doc/mpfr.texi] Correction on mpfr_clear_flags description. 20879 208802012-05-09 Vincent Lefèvre <vincent@vinc17.net> 20881 20882 Added functions that operate on groups of flags: mpfr_flags_clear, 20883 mpfr_flags_set, mpfr_flags_test, mpfr_flags_save and mpfr_flags_restore. 20884 (reintegrated flags branch to the trunk: svn merge --reintegrate ...) 20885 208862012-05-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20887 20888 patch from Nitin A Kamble for automake 1.12. 20889 This patch avoids these issues with automake 1.12: 20890 | configure.ac:304: error: automatic de-ANSI-fication support has been removed 20891 | tests/Makefile.am:12: error: automatic de-ANSI-fication support has been removed 20892 208932012-05-07 Vincent Lefèvre <vincent@vinc17.net> 20894 20895 [AUTHORS,INSTALL,doc/mpfr.texi] Updated the e-mail address of the 20896 MPFR mailing-list to match the List-* headers written by the new 20897 mailing-list server (the old one still works, but may lead to bad 20898 interaction with MUA's that attempt to honor the List-Post header 20899 when replying to the list(s)). 20900 20901 [src/lngamma.c] Added mpfr_explgamma internal function to handle 20902 overflows/underflows (intermediate or not) in mpfr_gamma. 20903 Updated the general overflow detection to use this function. 20904 [src/gamma.c] Fixed the general underflow detection. 20905 20906 [src/lngamma.c] Removed spurious parentheses. 20907 20908 [tests/tgamma.c] Added tests for 32-bit and 64-bit machines, showing an 20909 underflow detection bug in gamma.c (see FIXME comment added in r8185). 20910 20911 [tests/tgamma.c] Added tests to trigger the pre-r8189 endless loop 20912 on 32-bit machines. 20913 209142012-05-04 Vincent Lefèvre <vincent@vinc17.net> 20915 20916 [tests/tgamma.c] Updated exp_lgamma to test the ternary value. 20917 20918 [src/lngamma.c] Fixed the problem with the overflow flag (r8192). 20919 20920 Improved src/lngamma.c (mainly on changes from r8189): 20921 * Declarations of ok variable were used in nested block. 20922 * Added a missing "MPFR_ZIV_FREE (loop);". 20923 * In the overflow detection code, call mpfr_lngamma only once, use 20924 mpfr_equal_p instead of mpfr_cmp, and share code with the end. 20925 Note: the problem with the overflow flag (r8192) hasn't been solved yet. 20926 20927 [tests/tgamma.c] Added a test showing a failure on 64-bit machines 20928 due to an unset overflow flag. 20929 20930 [tests/tgamma.c] Updated exp_lgamma to test underflow & overflow flags. 20931 20932 [TODO] For mpfr_get_flt, etc., exception flags should be raised. 20933 209342012-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20935 20936 [src/lngamma.c] fixed endless loop with test cases introduced in r8188 20937 209382012-05-03 Vincent Lefèvre <vincent@vinc17.net> 20939 20940 [tests/tgamma.c] Updated the exp_lgamma_tests test to trigger an 20941 endless loop due to undetected overflow on 64-bit machines. 20942 20943 [tests/tgamma.c] Say that the freeze is for 64-bit machines only. 20944 20945 [tests/tgamma.c] Added more mpfr_tgamma tests, showing a freeze. 20946 20947 [src/gamma.c] Corrected the FIXME comment concerning the underflow 20948 detection. 20949 20950 [src/gamma.c] Added a FIXME comment: the underflow detection may still 20951 be buggy (or the explanation is incomplete). 20952 20953 [src/gamma.c] Completed the explanation concerning the new underflow 20954 detection. 20955 20956 [src/gamma.c] Removed the FIXME comment (from r8169). 20957 20958 [src/gamma.c] Untabified. 20959 20960 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 20961 20962 [doc/mpfr.texi] Updated the month. 20963 209642012-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20965 20966 [gamma.c] tentative fix for the underflow problem 20967 209682012-05-03 Vincent Lefèvre <vincent@vinc17.net> 20969 20970 Updated URL's of mailing-list archives/messages in all files 20971 (except ChangeLog, as it is generated). 20972 20973 [TODO] Updated URL's of mailing-list archives/messages. 20974 209752012-05-02 Vincent Lefèvre <vincent@vinc17.net> 20976 20977 [TODO] Updated concerning MPFR_RNDNA. 20978 209792012-04-27 Vincent Lefèvre <vincent@vinc17.net> 20980 20981 [src/gamma.c] Added a FIXME comment. 20982 20983 [TODO] Suggested a new rounding mode: MPFR_RNDE, to be used when the 20984 result is known to be exact (normal mode: optimize; debug mode: check). 20985 20986 [src/gamma.c] Use the new MPFR_DBGRES macro. 20987 20988 [tests/tgamma.c] Improved testcase test20100709. 20989 20990 [tests/tgamma.c] Updated testcase test20100709 for 64-bit machines, 20991 as this bug reappeared in r8159. 20992 209932012-04-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 20994 20995 [src/gamma.c] fixed bug found by Giridhar Tammana 20996 https://sympa.inria.fr/sympa/arc/mpfr/2012-04/msg00013.html 20997 Note (VL): this fix triggers an infinite loop on 32-bit machines 20998 (or with -m32) in test20100709 from tgamma.c and this is partly 20999 the opposite of changeset r6996. 21000 210012012-04-26 Vincent Lefèvre <vincent@vinc17.net> 21002 21003 [tests/texceptions.c] Added a comment for check_groups(). 21004 21005 [src/mpfr-impl.h] Improved the noreturn feature. 21006 210072012-04-25 Vincent Lefèvre <vincent@vinc17.net> 21008 21009 Added support for _Noreturn function specifier (ISO C11). 21010 * acinclude.m4: define MPFR_HAVE_NORETURN if _Noreturn is supported. 21011 * src/mpfr-impl.h: use _Noreturn when MPFR_HAVE_NORETURN is defined. 21012 Tested with GCC 4.6 (no _Noreturn) and 4.7 (supports _Noreturn). 21013 21014 [doc/README.dev] Added a note about the new experimental 21015 -ftrack-macro-expansion GCC option. 21016 210172012-04-24 Vincent Lefèvre <vincent@vinc17.net> 21018 21019 [doc/mpfr.texi] Small correction on the mpfr_flags_t description. 21020 21021 [src/mpfr-impl.h] Added MPFR_FLAGS_DIVBY0 (missing from r8143). 21022 21023 [src/mpfr-impl.h] Forgot to replace the mpfr_clear_divby0 internal macro 21024 by MPFR_CLEAR_DIVBY0 in r8141. 21025 210262012-04-23 Vincent Lefèvre <vincent@vinc17.net> 21027 21028 [src/ai.c] Use an intermediate variable to avoid a huge macro expansion 21029 in ASSERT_FAIL with gcc -ansi -pedantic-errors. 21030 (Merged changeset r8149 from the trunk) 21031 21032 [src/mpfr-impl.h] Added a comment concerning MPFR_INT_CEIL_LOG2 and 21033 macro expansion. 21034 21035 [src/ai.c] Use an intermediate variable to avoid a huge macro expansion 21036 in ASSERT_FAIL with gcc -ansi -pedantic-errors. 21037 21038 [tools/mpfrlint] Update after r8143. 21039 (Merged changeset r8147 from the trunk) 21040 21041 [tools/mpfrlint] Update after r8141. 21042 210432012-04-20 Vincent Lefèvre <vincent@vinc17.net> 21044 21045 [TODO] Removed item about saving/restoring flags. 21046 21047 [tests/texceptions.c] Added test of the mpfr_flags_* functions/macros. 21048 21049 [NEWS] New mpfr_flags_* functions. 21050 21051 Merged /trunk:r8141-8142 with a few manual changes due to conflict: 21052 replaced the flags-related mpfr_clear_* internal macros (which were 21053 already removed in this flags branch) by an uppercase version using 21054 a do-while in order to prevent one from using them in an expression. 21055 Renamed MPFR_SET_ERANGE to MPFR_SET_ERANGEFLAG for consistency. 21056 21057 [src/mpfr-impl.h] Improved comment about MPFR_CLEAR_* macros. 21058 21059 [src] Replaced the flags-related mpfr_clear_* internal macros by an 21060 uppercase version with a do-while in order to prevent one from using 21061 them in an expression. Renamed MPFR_SET_ERANGE to MPFR_SET_ERANGEFLAG 21062 for consistency. 21063 210642012-04-19 Vincent Lefèvre <vincent@vinc17.net> 21065 21066 Implemented the mpfr_flags_* functions (and mpfr_flags_test as a macro). 21067 The MPFR_FLAGS_* macros had to be moved from mpfr-impl.h to mpfr.h (as 21068 they are now part of the API). Check that MPFR_FLAGS_ALL <= INT_MAX (or 21069 similar) when need be. Removed the mpfr_clear_* macros and merged r8139 21070 (about the MPFR_SET_ERANGE macro) from the trunk due to a risk to break 21071 the sequence point rules. 21072 21073 [src/mpfr-impl.h] Use a do-while statement for the MPFR_SET_ERANGE() 21074 macro in order to prevent one from using this macro in an expression, 21075 as the sequence point rules could be broken if __gmpfr_flags is 21076 assigned twice in the same expression (via macro expansions). 21077 Note: This cannot be done for the mpfr_clear_* flags macros because 21078 we want to be able to follow the API inside MPFR (thus these macros 21079 must be usable wherever a function is). These macros should probably 21080 be removed or renamed in the future (e.g. via the flags branch). 21081 210822012-04-17 Vincent Lefèvre <vincent@vinc17.net> 21083 21084 [doc/mpfr.texi] Added documentation for the new functions on groups 21085 of flags (not implemented yet). 21086 210872012-04-11 Vincent Lefèvre <vincent@vinc17.net> 21088 21089 [TODO] Suggest mpfr_pow_q and variants. 21090 210912012-03-28 Vincent Lefèvre <vincent@vinc17.net> 21092 21093 [doc/mpfr.texi] Updated "API Compatibility" section: functions 21094 mpfr_fmodquo, mpfr_fpif_export and mpfr_fpif_import are new in 21095 MPFR 3.2. 21096 210972012-03-27 Vincent Lefèvre <vincent@vinc17.net> 21098 21099 [tests/tfpif.c] Removed trailing whitespace. 21100 211012012-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21102 21103 [src/fpif.c,tests/tfpif.c] changed to GNU style 21104 211052012-03-26 Olivier Demengeon <olivier.demengeon@inria.fr> 21106 21107 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 21108 211092012-03-26 Vincent Lefèvre <vincent@vinc17.net> 21110 21111 [src] New mpfr_flags_t type, defined as an unsigned int. For the 21112 __gmpfr_flags variable and internal flags-related variables, 21113 replaced unsigned int by mpfr_flags_t (note that this doesn't 21114 change the ABI, since unsigned int was already used). 21115 [tests] Cast __gmpfr_flags to unsigned int when printed with %u. 21116 211172012-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21118 21119 added new function mpfr_fmodquo 21120 (cf https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00020.html) 21121 211222012-03-26 Vincent Lefèvre <vincent@vinc17.net> 21123 21124 [src/mpfr-examples/version.c] Output sizeof(mpfr_t) value. 21125 21126 [tests/tests.c] Improved src_fopen() a bit. 21127 21128 [doc/README.dev] Explain the use of the new MPFR_DBGRES macro. 21129 21130 [src/mpfr-impl.h] Added a MPFR_DBGRES macro to avoid a warning in 21131 non-debug mode, e.g. with GCC's -Wunused-but-set-variable, when a 21132 result is tested only in an MPFR_ASSERTD expression. 21133 [src/const_euler.c] Avoid such a warning by using MPFR_DBGRES. 21134 21135 MPFR_ASSERTD or MPFR_ASSERTN must be used for assertions, not ASSERT. 21136 211372012-03-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21138 21139 [tests/tests.c] fixed problem with src_fopen 21140 (https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00021.html) 21141 21142 [tests/Makefile.am] inp_str.data -> inp_str.dat 21143 21144 renamed tests/inp_str.data into tests/inp_str.dat 21145 [tests/tinp_str.c] now use tests/inp_str.dat 21146 [tests/tfpif.c] use src_fopen instead of fopen 21147 21148 [src/fpif.c] simplified &x[i] into x+i 21149 21150 [src/mparam_h.in] better recognition of AMD64 systems 21151 [tools/cfarm.sh] updated 21152 21153 [tests.c] fixed compiler warning (gcc70.fsffrance.org, NetBSD, gcc 4.1.3) 21154 211552012-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21156 21157 [fpif.c] simplified code since nb_data is always 1 21158 21159 [mparam_h.in] recognize __tune_amdfam10__ (for example gcc10.fsffrance.org) 21160 21161 [configure.ac] use AC_C_BIGENDIAN to determine endianness of words 21162 21163 [tests/Makefile.am] the name of the test file for the export/import functions has changed 21164 211652012-03-19 Vincent Lefèvre <vincent@vinc17.net> 21166 21167 tests: updated svn:ignore property. 21168 21169 [src/mpfr.h] Indentation. 21170 211712012-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21172 21173 changed the order of arguments of mpfr_fpif_import so that the modified 21174 argument is first 21175 21176 [NEWS] updated item about the new mpfr_fpif_export and mpfr_fpif_import functions 21177 21178 mpfr_fpif_export_binary -> mpfr_fpif_export 21179 mpfr_fpif_import_binary -> mpfr_fpif_import 21180 21181 stream.data renamed to mpfrtest.dat 21182 [tfpif.c] now use remove() 21183 211842012-03-19 Vincent Lefèvre <vincent@vinc17.net> 21185 21186 [doc/mpfr.texi] "in future version" → "in future versions". 21187 21188 [doc/mpfr.texi] Updated the month. 21189 21190 [src/fpif.c,tests/tfpif.c] Corrected coding style. 21191 211922012-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21193 21194 [src/fpif.c] fixed a few warnings and errors with g++ (found on hydra) 21195 211962012-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21197 21198 [out_raw.c] removed obsolete file (replaced by fpif.c) 21199 21200 [tests/Makefile.am] put tfpif at its right place 21201 21202 [src/fpif.c] fixed problem with sign on gcc38 21203 [tests/tfpif.c] solved FIXME's, added new test with fixed data file 21204 [tests/stream.data] data file for tfpif.c (to check we get same results with 21205 different word size and endianness) 21206 [tests/Makefile.am] added stream.data to make dist 21207 21208 [fpif.c] added comments 21209 [tfpif.c] improve error message in case of mismatch 21210 [acinclude.m4] forgot double-double big endian 21211 21212 [mpfr.texi] added note saying that mpfr_fpif_export_binary and 21213 mpfr_fpif_import_binary are experimental 21214 21215 [mpfr.texi] added documentation for mpfr_fpif_export_binary and mpfr_fpif_import_binary 21216 21217 [fpif.c] replaced sizeof(var) by sizeof(type) 21218 212192012-03-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21220 21221 [fpif.c] fixed a few issues 21222 21223 [src/fpif.c,src/mpfr.h,tests/tfpif.c] a few fixes so that make and make check 21224 pass on one machine. Will fix the 21225 remaining issues later. 21226 212272012-03-15 Vincent Lefèvre <vincent@vinc17.net> 21228 21229 Added FIXME for export/import MPFR numbers, did some corrections, 21230 updated NEWS file. 21231 21232 [doc/README.dev] Update about C headers. 21233 212342012-03-15 Olivier Demengeon <olivier.demengeon@inria.fr> 21235 21236 Add copyright material in fpif.c and test_fpif.c 21237 21238 Add functions/tests to export/import mpfr number in a binary format 21239 212402012-03-13 Vincent Lefèvre <vincent@vinc17.net> 21241 21242 Improved mpfr_check and added a missing testcase. 21243 212442012-03-09 Vincent Lefèvre <vincent@vinc17.net> 21245 21246 [doc/README.dev] Corrected information about valgrind. 21247 21248 [src/mpfr-impl.h] Updated a comment. 21249 21250 [src/mpfr-impl.h] Improved macros from the changeset r8025, in 21251 particular to avoid an error with the --enable-assert configure 21252 option and the -ansi -pedantic-errors gcc compiler flags. 21253 212542012-03-08 Vincent Lefèvre <vincent@vinc17.net> 21255 21256 [tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1 again, 21257 and improved it in case _MPFR_PREC_FORMAT == 2, where MPFR_PREC_MAX is 21258 INT_MAX minus some small constant (see r8035). 21259 21260 [tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1. 21261 21262 [tests/tinits.c] Improved the large precision test so that it is still 21263 performed after r8035 (where MPFR_PREC_MAX has been decreased). 21264 21265 [tests/tconst_log2.c] Replaced mpfr_printf by mpfr_out_str. 21266 212672012-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21268 21269 [tconst_log2.c] use hexadecimal output in case of error in check_large() 21270 21271 [get_ld.c] added comments and ASSERT() 21272 [tset_ld.c] added test to better exercise get_ld and set_ld for subnormals, 21273 and replaced some 64 by MPFR_LDBL_MANT_DIG 21274 212752012-03-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21276 21277 [tconst_log2.c] improved error message, cf 21278 https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00017.html 21279 21280 [get_ld.c] deal with the case "long double" == "double" 21281 21282 [acinclude.m4] deal with long double == double 21283 [src/set_ld.c] idem 21284 212852012-03-07 Vincent Lefèvre <vincent@vinc17.net> 21286 21287 [NEWS] Prepare for new version 3.2.0 (will be 4.0.0). 21288 21289 [INSTALL] Added information about --with-sysroot. 21290 21291 [INSTALL] Removed an obsolete paragraph saying that the test suite 21292 can't be run with a C++ compiler. C++ related problems have been 21293 fixed a long time ago. 21294 212952012-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21296 21297 [TODO] added new item about saving/restoring flags 21298 21299 added tuning parameters for mips (on gcc49.fsffrance.org) 21300 213012012-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21302 21303 [tuneup.c] fixed compiler warning (got on gcc49.fsffrance.org) 21304 213052012-03-05 Vincent Lefèvre <vincent@vinc17.net> 21306 21307 [src/mpfr.h] Minor change to be consistent with "src/mpfr-gmp.h". 21308 21309 [src/mpfr.h] Added a reference to MPFR bug 13947. 21310 21311 [src/mpfr.h] Simple temporary fix following GMP's internal __gmp_const 21312 macro removal in <https://gmplib.org/repo/gmp/rev/d287cfaf6732> (and its 21313 replacement by const): if __gmp_const isn't define, let's define it to 21314 const. 21315 213162012-03-03 Vincent Lefèvre <vincent@vinc17.net> 21317 21318 [NEWS] Mention the mpfr_exp bug fix (from r6964 in exp_2.c). 21319 213202012-02-27 Vincent Lefèvre <vincent@vinc17.net> 21321 21322 [configure.ac] If 'gmp.h' and 'libgmp' seem to have different versions, 21323 output the temporary LD_RUN_PATH value (may be useful for debugging). 21324 213252012-02-24 Vincent Lefèvre <vincent@vinc17.net> 21326 21327 [tests] Removed #include of headers already included via "mpfr-test.h" 21328 (<limits.h>, <stdio.h>, <stdlib.h>). Note: this change doesn't apply 21329 to tvalist.c, which is a special test that doesn't use "mpfr-test.h". 21330 21331 [src] #include <stdlib.h> unconditionally in mpfr-impl.h; removed 21332 this #include from the .c files. 21333 21334 [src/logging.c] #include <stdarg.h> was no longer necessary. Removed. 21335 21336 [src/logging.c] Updated a comment (contained obsolete information). 21337 21338 [src/mpfr-impl.h] Use %.*Rg instead of %.*Rf for MPFR_LOG_VAR. 21339 21340 [NEWS] Mention an internal change in MPFR 3.1.0. 21341 21342 Corrected a typo in MPFR_LOG_FUNC of add_d.c, add_ui.c and mul_d.c 21343 (mpfr_get_prec → mpfr_log_prec), fixing bug 13933. 21344 The consequence was random freezes (on the same binary) with dynamic 21345 linking (and just more memory with static linking to the MPFR library) 21346 when logging was used. 21347 21348 [src/const_euler.c] Use the safer MPFR_BLOCK. 21349 213502012-02-23 Vincent Lefèvre <vincent@vinc17.net> 21351 21352 [src/const_euler.c] Removed a useless log message added in r8040. 21353 21354 [src/const_euler.c] Replaced computations on double by computations 21355 on MPFR types, with detection of overflows. Fixed inconsistencies 21356 with algorithms.tex (due to rounding) in the computation of n. 21357 [src/mpfr-impl.h] Removed #define ALPHA (no longer used). 21358 21359 [src/mpfr-impl.h] Removed obsolete #define EXPM1. 21360 21361 [src/erf.c] Removed an obsolete #define. 21362 21363 [BUGS] Update concerning huge precisions and integer overflows. 21364 21365 [examples/version.c] Output mpfr_prec_t information with all MPFR 21366 versions. Output signedness information for MPFR types/macros. 21367 21368 [src/mpfr.h] Decrease the MPFR_PREC_MAX value by 256 in order to 21369 avoid some integer overflows in existing code that increases the 21370 working precision (if mpfr_prec_t is on 64 bits, this does not 21371 change anything in practice), as too large precisions should be 21372 detected via assertions for more security. After discussion, it 21373 has been decided to keep the MPFR_PREC_MAX value close to 2^31 21374 when mpfr_prec_t is on 32 bits. 21375 [src/mpfr-impl.h] Added a comment concerning MPFR_ADD_PREC. 21376 21377 [examples/version.c] Output more information about the precision and 21378 exponent types. 21379 213802012-02-22 Vincent Lefèvre <vincent@vinc17.net> 21381 21382 [src/mpfr-impl.h] Use MPFR_ADD_PREC in MPFR_ZIV_NEXT. 21383 21384 [src/mpfr-impl.h] Added an MPFR_ADD_PREC macro to safely increase some 21385 precision (i.e. with an assertion check for integer overflow). 21386 [src/ai.c] Use this MPFR_ADD_PREC macro, in particular in a case where 21387 the additional precision can be huge. 21388 TODO: Other files would need to use MPFR_ADD_PREC. 21389 21390 [tests/tinits.c] Updated the large precision test to trigger a bug fixed 21391 in r8025 on 32-bit machines (or when MPFR is built with -m32). Here the 21392 crash was due to (MPFR_PREC (b) + GMP_NUMB_BITS-1)/GMP_NUMB_BITS in 21393 "src/set.c". 21394 21395 [src/rec_sqrt.c] Removed useless #include (mpfr-impl.h does a better job 21396 for stdio). 21397 21398 [tests/tinits.c] Improved r8026 (missing #include, support 16-bit prec). 21399 21400 Document the MPFR_DEBUG_BADCASES environment variable before bad_cases() 21401 in tests/tests.c (where it is used). Remove it from "doc/README.dev" 21402 since it is useful only in case of crash / infinite loop in bad_cases(), 21403 and will give useless output otherwise. 21404 214052012-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21406 21407 [TODO] added comment 21408 [doc/README.dev] added environment variables 21409 21410 [tinits.c] added test to check #13918 is fixed 21411 214122012-02-22 Vincent Lefèvre <vincent@vinc17.net> 21413 21414 Avoid potential integer overflows and improve consistency. This should 21415 fix bug #13918 "Segfault with precision = MPFR_PREC_MAX on 32-bit". 21416 Note: this problem appeared in MPFR 3.0.0 when the precision type (now 21417 mpfr_prec_t) was changed to a signed integer. 21418 21419 [configure.ac] Added a comment mentioning a problem with GNU gold ld. 21420 214212012-02-15 Vincent Lefèvre <vincent@vinc17.net> 21422 21423 [TODO] Added reference to ISO/IEC 24747:2009 (C, special functions). 21424 214252012-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21426 21427 removed directory src/x86_64/xeon 21428 [src/Makefile.am] removed x86_64/xeon/mparam.h 21429 214302012-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21431 21432 share parameters between x86_64/core2 and x86_64/xeon (gcc70) 21433 21434 [src/Makefile.am] forgot to add new param file 21435 21436 added tuning parameters for -mtune=nocona (gcc70) 21437 214382012-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21439 21440 [mparam_h.in] swap tests for 32-bit and 64-bit powerpc, since on powerpc64 21441 the parameters for 32-bit are used! 21442 214432012-01-15 Vincent Lefèvre <vincent@vinc17.net> 21444 21445 [doc/README.dev] Updated "To make a release". 21446 214472012-01-10 Vincent Lefèvre <vincent@vinc17.net> 21448 21449 [TODO] Added a note to item about sNaN/qNaN. 21450 21451 [doc/mpfr.texi] Updated the month. 21452 21453 [doc/mpfr.texi] Mention the AriC project-team. 21454 21455 Reverted incorrect change in ChangeLog from r7993. 21456 21457 Changed Arenaire to AriC with: 21458 perl -pi -e 's/Contributed by the Arenaire/Contributed by the AriC/' **/*(^/) 21459 under zsh. 21460 21461 [doc] Updated FAQ.html with update-faq. 21462 21463 [doc/faq.xsl] Remove only the top-level comments from the HTML file. 21464 21465 [doc/faq.xsl] Updated a comment. 21466 21467 Copyright notice update: added 2012 with 21468 perl -pi -e 's/2011 Free Software/2011, 2012 Free Software/' **/*(^/) 21469 under zsh, reverting the ChangeLog file (the m4 and tools/mbench 21470 directories were not modified). 21471 Removed 2011 from the example in the doc/README.dev file. 21472 214732011-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21474 21475 [TODO] trivial change (to test the commit logs) 21476 214772011-12-09 Vincent Lefèvre <vincent@vinc17.net> 21478 21479 [configure.ac] Mention --disable-thread-safe. 21480 21481 [INSTALL] Added information about system/compiler bugs related to TLS 21482 or optimizations. 21483 214842011-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21485 21486 [INSTALL] added note about buggy TLS support 21487 214882011-11-28 Vincent Lefèvre <vincent@vinc17.net> 21489 21490 [tests/turandom.c] Removed an obsolete comment. 21491 21492 [src/mpfr-gmp.h] Updated the TODO comment about the rand state. 21493 21494 [doc/mpfr.texi] Updated the month. 21495 21496 [tests/trandom.c,tests/turandom.c] Fixed compatibility with GMP 4.1.x 21497 (since the default PRNG has changed between GMP 4.1 and 4.2). 21498 21499 [doc/mpfr.texi] Mentioned the difference between GMP 4.1 and 4.2 about 21500 the changes of mpfr_urandom and mpfr_urandomb in MPFR 3.1. 21501 21502 [src/mpfr-gmp.h] Added a TODO comment. 21503 215042011-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21505 21506 revert previous commit (test) 21507 21508 commit test 21509 215102011-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21511 21512 [src/mpfr-thread.h] added pointer to TLS on Windows 21513 215142011-11-09 Vincent Lefèvre <vincent@vinc17.net> 21515 21516 [tests/tsprintf.c] Added a test showing a regression in MPFR 3.1.0 21517 (but fixed in r7931 and later). 21518 215192011-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21520 21521 [tests/tatan.c] mpfr_set_emin -> set_emin (idem for emax) 21522 215232011-11-09 Vincent Lefèvre <vincent@vinc17.net> 21524 21525 [TODO] Added a reference to an old discussion concerning __float128. 21526 215272011-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21528 21529 [TODO] added item 21530 215312011-11-03 Vincent Lefèvre <vincent@vinc17.net> 21532 21533 [src/vasprintf.c] Untabify. 21534 215352011-11-03 Philippe Théveny <philippe.theveny@laposte.net> 21536 21537 [src/vasprintf.c] Corrected a comment. 21538 215392011-11-03 Vincent Lefèvre <vincent@vinc17.net> 21540 21541 [tests/tsprintf.c] Coding style. 21542 215432011-11-02 Vincent Lefèvre <vincent@vinc17.net> 21544 21545 [src/strtofr.c] Spelling. 21546 21547 [src/vasprintf.c] Spelling. 21548 21549 [src/vasprintf.c] Corrected a comment. 21550 21551 [tests/tsprintf.c] Added tests. 21552 21553 [src/vasprintf.c] Untabify. Minor correction in a comment. 21554 215552011-11-02 Philippe Théveny <philippe.theveny@laposte.net> 21556 21557 [src/vasprintf.c] Rewrite in a cleaner way the part of regular_fg implied in the bug reported by Pavel Holoborodko (see r7931). 21558 215592011-11-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21560 21561 [src/mpn_exp.c] changed FIXME into TODO 21562 21563 [src/mpn_exp.c] added comment 21564 [src/vasprintf.c] (hopefully) fixed bug reported by Pavel Holoborodko 21565 [tests/tsprintf.c] added corresponding test case 21566 215672011-10-14 Vincent Lefèvre <vincent@vinc17.net> 21568 21569 [tests/Makefile.am] Added -L$(top_builddir)/src/.libs to AM_LDFLAGS. 21570 [INSTALL] Removed the notes on HP-UX (obsolete after the above change). 21571 215722011-10-13 Vincent Lefèvre <vincent@vinc17.net> 21573 21574 [INSTALL] Corrected notes for HP-UX. 21575 21576 [INSTALL] Added notes for HP-UX after a bug report. See discussion: 21577 https://sympa.inria.fr/sympa/arc/mpfr/2011-10/msg00042.html 21578 215792011-10-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21580 21581 [TODO] added one item 21582 21583 [corei5/mparam.h] tuning files for Core i5 (not yet used since GMP 5.0.2 does 21584 currently recognize Core i5 as "k8", however the k8 tuning 21585 parameters are not so bad for Core i5) 21586 215872011-10-05 Vincent Lefèvre <vincent@vinc17.net> 21588 21589 [src/mpfr-impl.h] Improved MPFR_IS_PURE_FP definition, so that 21590 MPFR_ASSERTD takes a boolean (0 or 1). 21591 215922011-10-04 Vincent Lefèvre <vincent@vinc17.net> 21593 21594 [src/mpfr-impl.h] Fixed a bug in the MPFR_UNLIKELY macro for GCC 21595 (found under Mac OS X / PowerPC with the mode32 GMP ABI, and MPFR 21596 built with --enable-assert=full). 21597 (Merged changeset r7908 from the 3.1 branch.) 21598 215992011-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21600 21601 [doc/mpfr.texi] added reference and comment for eint 21602 216032011-09-25 Vincent Lefèvre <vincent@vinc17.net> 21604 21605 [doc/mpfr.texi] Rephrased mpfr_frexp description. 21606 216072011-09-24 Vincent Lefèvre <vincent@vinc17.net> 21608 21609 Renamed "division-by-zero" to "divide-by-zero" (term used by the 21610 ISO C99 standard, the IEEE 754-2008 standard using divideByZero, 21611 and the old IEEE 754-1985 standard using both "divide by zero" 21612 and "division by zero"). 21613 21614 [src/gmp_op.c] Forgot to update the flags in some functions. 21615 21616 [tests/tgmpop.c] Improved division-by-zero tests. 21617 216182011-09-23 Vincent Lefèvre <vincent@vinc17.net> 21619 21620 [doc/faq.xsl] Added a comment about the MPFR logo. 21621 216222011-09-22 Vincent Lefèvre <vincent@vinc17.net> 21623 21624 [doc/mpfr.texi] Improved mpfr_frexp description. 21625 21626 [doc/mpfr.texi] Corrected typo in the mpfr_frexp description. 21627 216282011-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21629 21630 [tools/cfarm.sh] updated for MPFR 3.1.0 rc2 21631 216322011-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21633 21634 [cfarm.sh] updated for MPFR 3.1.0-rc1 (with GMP 5.0.2) 21635 216362011-09-20 Vincent Lefèvre <vincent@vinc17.net> 21637 21638 [examples/version.c] Output mpfr_buildopt_gmpinternals_p() and 21639 mpfr_buildopt_tune_case() values with MPFR 3.1 or later. 21640 21641 Renamed mpfr_buildopt_internals_p to mpfr_buildopt_gmpinternals_p. 21642 21643 Added mpfr_buildopt_internals_p function. 21644 21645 [doc/mpfr.texi] Added commas. 21646 21647 [src/gmp_op.c] Handle the special cases in mpfr_cmp_q and mpfr_cmp_f. 21648 216492011-09-19 Vincent Lefèvre <vincent@vinc17.net> 21650 21651 [TODO] Added an item about the minimum and maximum exponents. 21652 21653 [src/agm.c] Replaced MPFR_EMIN_MIN and MPFR_EMAX_MAX by MPFR_EXT_EMIN 21654 and MPFR_EXT_EMAX respectively (see r7862 and r7863). 21655 21656 [src/mpfr-impl.h] Define new macros MPFR_EXT_EMIN and MPFR_EXT_EMAX. 21657 [doc/README.dev] Document how to specify the minimum exponent or the 21658 maximum exponent. 21659 216602011-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21661 21662 [src/agm.c] replaced __gmpfr_emax by MPFR_EMAX_MAX (same for __gmpfr_emin). 21663 Solves bug on gcc54 with --enable-thread-safe and GCC 4.3.2. 21664 216652011-09-19 Vincent Lefèvre <vincent@vinc17.net> 21666 21667 [src/mpfr-gmp.h] Added missing prototype for __gmpn_sbpi1_divappr_q 21668 (it could be detected when building MPFR with g++). 21669 216702011-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21671 21672 [tests/tgmpop.c] check for erange flag in mpfr_cmp_[f,q,z] 21673 (https://sympa.inria.fr/sympa/arc/mpfr/2011-09/msg00013.html) 21674 216752011-09-19 Vincent Lefèvre <vincent@vinc17.net> 21676 21677 [doc/README.dev] Updated "To make a release". 21678 216792011-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21680 21681 [src/mpfr-gmp.h] fixed bug with --enable-gmp-internals introduced in r7455 21682 (mpfr_limb_ptr is not yet defined when reading mpfr-gmp.h 21683 thus we can't use it) 21684 216852011-09-19 Vincent Lefèvre <vincent@vinc17.net> 21686 21687 [doc/mpfr.texi] Correction: "5 exception types" → "6 exception types" 21688 (thanks to Case Vanhorsen for the report). 21689 216902011-09-14 Vincent Lefèvre <vincent@vinc17.net> 21691 21692 [src/mpfr-impl.h] Define LONGLONG_STANDALONE before including 21693 mpfr-longlong.h so that udiv_qrnnd_preinv is defined (this is 21694 useful at least on IA64 when compiling without gmp-impl.h). 21695 Thanks to Patrick Pélissier for the fix. 21696 216972011-09-11 Vincent Lefèvre <vincent@vinc17.net> 21698 21699 [doc/mpfr.texi] Updated "API Compatibility" section: as of MPFR 3.1, 21700 the mpfr.h header can be included several times, while still supporting 21701 optional functions. 21702 21703 [doc/mpfr.texi] Replaced some @code by @file for consistency. 21704 21705 [doc/mpfr.texi] Updated "API Compatibility" section: functions 21706 mpfr_frexp, mpfr_grandom and mpfr_z_sub are new in MPFR 3.1. 21707 21708 [doc/mpfr.texi] Documented function mpfr_buildopt_tune_case, 21709 and added it to the list of added functions. 21710 [NEWS] Function mpfr_buildopt_tune_case is new in MPFR 3.1. 21711 21712 [doc/mpfr.texi] Updated "API Compatibility" section 21713 (new division-by-zero exception in MPFR 3.1). 21714 21715 [doc/mpfr.texi] Updated the month. 21716 21717 [doc/mpfr.texi] MPFR_RNDA was introduced in MPFR 3.0.0 and should 21718 no longer be considered experimental. 21719 217202011-09-10 Vincent Lefèvre <vincent@vinc17.net> 21721 21722 [tests/trec_sqrt.c] Fixed bug introduced in r7711 (build failure 21723 with a C++ compiler). 21724 21725 [TODO] Replaced "configure.in" by "configure.ac". 21726 21727 [doc/README.dev] Removed obsolete paragraph about AM_MAINTAINER_MODE. 21728 21729 [tools/mpfrlint] Correction after r7825. 21730 21731 [tools/mpfrlint] Run tools/ck-mparam. 21732 21733 Added tools/ck-mparam sh script to check the mparam.h files 21734 (gcc is needed). 21735 217362011-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21737 21738 [src/amd/k8/mparam.h] removed spurious end of comment 21739 217402011-09-09 Vincent Lefèvre <vincent@vinc17.net> 21741 21742 [doc/README.dev] For the valgrind example, use the same arguments 21743 as in gnulib's valgrind-tests.m4 file. 21744 21745 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 21746 21747 [Makefile.am] Added tools/ck-copyright-notice to EXTRA_DIST as it is 21748 used in dist-hook. 21749 [tools/ck-copyright-notice] Added copyright notice (since this file is 21750 distributed in the tarballs). Note: the first year is 2008 as a part 21751 of the code comes from r5370 in mpfrlint. 21752 21753 [tools/ck-copyright-notice] Skip src/mpfr-longlong.h as this file 21754 (which comes from GMP) has a specific copyright notice. 21755 21756 [src/mp_clz_tab.c] Updated the copyright notice. 21757 21758 [tools/ck-copyright-notice] Check that the first copyright year for 21759 the mparam.h files is 2005. 21760 21761 Added copyright notice to the mparam.h files (with the same years 21762 as in the template). 21763 21764 Added tools/ck-copyright-notice sh script from mpfrlint (updated) to 21765 check that copyright notices exist and appear to be correct. Updated 21766 tools/mpfrlint to run tools/ck-copyright-notice instead of its old 21767 test. In Makefile.am, run tools/ck-copyright-notice in dist-hook for 21768 "make dist". 21769 21770 [tools/mpfrlint] More files under src and tests directories. 21771 217722011-09-08 Vincent Lefèvre <vincent@vinc17.net> 21773 21774 [NEWS] Update for MPFR 3.1.x. 21775 21776 [tests/Makefile.am] 21777 * Added "AM_LDFLAGS = -no-install" to prevent libtool from generating 21778 wrapper scripts for the tests (according to discussions and tests, 21779 there should be no negative effects); useful for gdb and valgrind. 21780 * Added $(VALGRIND) to TESTS_ENVIRONMENT in order to easily run the 21781 tests under valgrind with: VALGRIND="valgrind -q" make check 21782 [doc/README.dev] Update for gdb and valgrind. 21783 217842011-08-31 Vincent Lefèvre <vincent@vinc17.net> 21785 21786 [doc/mpfr.texi] Improved the specification of mpfr_get_f. 21787 217882011-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21789 21790 [configure.ac] added comment about minimal GMP version 21791 21792 dummy change to check if GMP_CHECK_RANDOMIZE is now used in the Hydra 21793 builds on http://hydra.nixos.org/jobset/gnu/mpfr-trunk 21794 217952011-08-19 Vincent Lefèvre <vincent@vinc17.net> 21796 21797 [doc/mpfr.texi] Added some references to the ternary definition. 21798 217992011-08-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21800 21801 [doc/mpfr.texi] improved the documentation of mpfr_set_str, as suggested by 21802 Vincent Lefevre 21803 218042011-08-19 Vincent Lefèvre <vincent@vinc17.net> 21805 21806 [doc/mpfr.texi] Added "Ternary value" to the concept index. 21807 218082011-08-15 Vincent Lefèvre <vincent@vinc17.net> 21809 21810 [doc/README.dev] Added information on how to update the FAQ. 21811 21812 [doc] Updated FAQ.html with update-faq. 21813 218142011-08-12 Vincent Lefèvre <vincent@vinc17.net> 21815 21816 [tune/tuneup.c] Untabified. 21817 21818 [src/mulders.c] Replaced MPFR_ASSERTD by MPFR_ASSERTN on constant 21819 expressions (this is a temporary change, as they should later be 21820 replaced by static assertions). 21821 21822 [src/mulders.c] Replaced mp_ptr and mp_srcptr (internal to GMP) by 21823 mpfr_limb_ptr and mpfr_limb_srcptr. 21824 21825 [src/mpfr-gmp.h] Avoid potential identifier collision by using an 21826 underscore for variable names declared in the invert_pi1 macro. 21827 21828 [src/mpfr-gmp.h] Untabified. 21829 21830 [doc/mpfr.texi] Updated the month. 21831 218322011-08-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21833 21834 [k8/mparam.h] added comment 21835 21836 [x86/mparam.h] new tuning contributed by Jim Cloos 21837 [amd/amdfam10/mparam.h] added GMP version 21838 21839 [mpfr-gmp.h] use mpfr_pi1_t instead of gmp_pi1_t to avoid using GMP's namespace 21840 218412011-08-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21842 21843 [src/mulders.c] use mpn_sbpi1_divappr_q if available and WANT_GMP_INTERNALS 21844 is defined 21845 [src/mpfr-gmp.h] defined macros needed for mpfr_divhigh_n_basecase 21846 [configure.ac] check for mpn_sbpi1_divappr_q 21847 218482011-08-05 Vincent Lefèvre <vincent@vinc17.net> 21849 21850 Updated version to 3.2.0-dev. 21851 218522011-08-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21853 21854 [amdfam10/mparam.h] tuning parameters contributed by Jim Cloos 21855 21856 [mulders.c] added a basecase code for Mulders' short division 21857 [tuneup.c] added corresponding tuning code 21858 [TODO] added an item 21859 218602011-08-04 Vincent Lefèvre <vincent@vinc17.net> 21861 21862 [acinclude.m4] In the INTMAX_MAX test, no longer hardcode the 21863 "#include <stdint.h>" (for instance, this doesn't work under 21864 Solaris 9: INTMAX_MAX is defined only via <inttypes.h>), but 21865 include "mpfr-intmax.h" instead (needs a temporary CPPFLAGS). 21866 218672011-08-01 Vincent Lefèvre <vincent@vinc17.net> 21868 21869 [NEWS] Much faster formatted output (mpfr_printf, etc.) with %Rg and similar. 21870 21871 [doc/README.dev] Added copyright notice in case the file is distributed. 21872 21873 [doc/README.dev] Added information on how to run the MPFR test suite 21874 under valgrind. 21875 21876 Untabified and removed trailing spaces. 21877 21878 [tests/tversion.c] Improved output information. 21879 218802011-07-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21881 21882 [hppa/mparam.h] updated for new Mulders' division 21883 21884 [sparc64/mparam.h] updated for new Mulders' division 21885 21886 [powerpc64/mparam.h] updated for new Mulders' division 21887 21888 [ia64/mparam.h] updated for new Mulders' division 21889 21890 [amd/k8/mparam.h] updated for new Mulders' division 21891 21892 [x86/core2/mparam.h] updated thresholds for new Mulders' division 21893 21894 [mparam_h.in] changed the detection of 64-bit Core 2, and added 21895 MPFR_TUNE_CASE for default case 21896 [tversion.c] print GMP version (header and library), and file for tuning 21897 parameters 21898 21899 [x86_64/core2/mparam.h] updated for Mulders' division 21900 21901 Added tuning for MPFR_DIV_THRESHOLD, and default value. 21902 It now remains to do the tuning on the architectures in mparam_in.h. 21903 219042011-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21905 21906 [NEWS] added speed improvement in mpfr_div 21907 219082011-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21909 21910 [mulders.c] fixed bug in mpfr_divhigh_n (this routine was not used yet) 21911 [div.c] now use Mulders' short product for large division. It remains to 21912 do the automatic tuning of MPFR_DIV_THRESHOLD. The speedup is nice, 21913 for example on my Core 2 Duo laptop we got with MPFR 3.0.0: 21914 21915 [zimmerma@coing tests]$ ./timings-mpfr 1000 21916 Using MPFR-3.0.0 with GMP-5.0.2 21917 [precision is 3322 bits] 21918 x*y took 0.004543 ms (262143 eval in 1191 ms) 21919 x*x took 0.003616 ms (524287 eval in 1896 ms) 21920 x/y took 0.009087 ms (131071 eval in 1191 ms) 21921 sqrt(x) took 0.007004 ms (262143 eval in 1836 ms) 21922 exp(x) took 0.293040 ms (4095 eval in 1200 ms) 21923 log(x) took 0.253724 ms (4095 eval in 1039 ms) 21924 sin(x) took 0.306960 ms (4095 eval in 1257 ms) 21925 cos(x) took 0.290842 ms (4095 eval in 1191 ms) 21926 arccos(x) took 0.590620 ms (2047 eval in 1209 ms) 21927 arctan(x) took 0.560332 ms (2047 eval in 1147 ms) 21928 21929 and now we get: 21930 21931 [zimmerma@coing tests]$ ./timings-mpfr 1000 21932 Using MPFR-3.1.0-dev with GMP-5.0.2 21933 [precision is 3322 bits] 21934 x*y took 0.004444 ms (262143 eval in 1165 ms) 21935 x*x took 0.002686 ms (524287 eval in 1408 ms) 21936 x/y took 0.006989 ms (262143 eval in 1832 ms) 21937 sqrt(x) took 0.007084 ms (262143 eval in 1857 ms) 21938 exp(x) took 0.292063 ms (4095 eval in 1196 ms) 21939 log(x) took 0.246886 ms (4095 eval in 1011 ms) 21940 sin(x) took 0.259096 ms (4095 eval in 1061 ms) 21941 cos(x) took 0.244933 ms (4095 eval in 1003 ms) 21942 arccos(x) took 0.556424 ms (2047 eval in 1139 ms) 21943 arctan(x) took 0.526624 ms (2047 eval in 1078 ms) 21944 21945 We see that other routines also benefit from the speedup in mpfr_sqr and 21946 mpfr_div (log, sin, cos, arccos, arctan). 21947 219482011-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21949 21950 [algorithms.tex] added algorithm for division with Mulders' short product 21951 (can anybody check the algorithm is ok?) 21952 219532011-07-29 Vincent Lefèvre <vincent@vinc17.net> 21954 21955 [src/vasprintf.c] Added a comment. 21956 21957 [src/get_str.c] Added a comment about the use of mpfr_ceil_mul 21958 (exported and declared in mpfr-impl.h since r7760). 21959 219602011-07-28 Philippe Théveny <philippe.theveny@laposte.net> 21961 21962 Avoid expensive calls to mpfr_get_prec() using mpfr_ceil_mul() instead. 21963 21964 Make ceil_mul() public as mpfr_ceil_mul() in mpfr-impl.h 21965 219662011-07-28 Vincent Lefèvre <vincent@vinc17.net> 21967 21968 [src/mulders.c] MPFR coding conventions for r7752. 21969 219702011-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 21971 21972 modified the default tuning parameters so they are within the bounds of the 21973 ARITH-20 paper "Short Division of Long Integers" 21974 21975 [src/mulders.c] declare mpfr_mullow_n as non-static since it might be useful 21976 elsewhere 21977 21978 [tuneup.c] fix tuning bounds of short product and division according to the 21979 ARITH-20 paper 21980 21981 [acinclude.m4] detect long double format in m68k 21982 21983 [tget_flt.c] added test to check FLT_MAX + FLT_MAX gives INFP 21984 (to early detect compiler bugs) 21985 21986 [nightly-test] changed -pedantic-errors into -pedantic 21987 21988 [mulders.c] added some code for short division (FoldDiv, not used), 21989 added comments and fixed bounds in accordance with the 21990 ARITH-20 paper 21991 219922011-07-28 Philippe Théveny <philippe.theveny@laposte.net> 21993 21994 Use a buffer in order to avoid a double call to mpfr_get_str. 21995 219962011-07-26 Vincent Lefèvre <vincent@vinc17.net> 21997 21998 [src/log.c] Replaced TMP_* by MPFR_GROUP_* (patch by Patrick). 21999 220002011-07-22 Vincent Lefèvre <vincent@vinc17.net> 22001 22002 [doc/mpfr.texi] Added a comment about TLS variable initialization. 22003 22004 [doc/mpfr.texi] Added information about TLS variable initialization. 22005 22006 [doc/mpfr.texi] Split Chapter "MPFR Basics" into nodes as it is now 22007 quite large (thus references to particular sections are now possible). 22008 220092011-07-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22010 22011 [vasprintf.c] simplified and improved round_to_10_power(), also contributed 22012 a negative number of lines of code :-) 22013 Still not optimal, since round_to_10_power() is still called 22014 twice for printing say pi with mpfr_printf ("%Rg\n", x), once 22015 from partition_number(), once from regular_fg(), and thus 22016 mpfr_get_str is called at least 3 times! 22017 22018 [configure.ac] improve error message when libgmp is not found 22019 22020 [mpfr.texi] added note about threads for mpfr_set_default_prec and 22021 mpfr_get_default_prec 22022 220232011-07-06 Vincent Lefèvre <vincent@vinc17.net> 22024 22025 [doc/mpfr.texi] Updated the month. 22026 22027 [NEWS, doc/mpfr.texi] mpfr_min_prec was a new function in MPFR 3.0.0. 22028 220292011-07-01 Vincent Lefèvre <vincent@vinc17.net> 22030 22031 [tests/tget_flt.c] Replaced FLT_MAX + FLT_MAX by (float) DBL_POS_INF, 22032 which should trigger fewer compiler bugs. See: 22033 https://sympa.inria.fr/sympa/arc/mpfr/2011-07/msg00002.html 22034 22035 [src/ieee_floats.h] Added a comment about the NaN format when 22036 _GMP_IEEE_FLOATS is defined. 22037 220382011-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22039 22040 [tget_flt.c] check for compiler bug 22041 (https://sympa.inria.fr/sympa/arc/mpfr/2011-07/msg00000.html) 22042 220432011-06-30 Vincent Lefèvre <vincent@vinc17.net> 22044 22045 Removed all the svn:eol-style properties (they were set to "native"), 22046 and in doc/README.dev, explained why svn:eol-style native should not 22047 be used. 22048 220492011-06-28 Vincent Lefèvre <vincent@vinc17.net> 22050 22051 [tools/ck-version-info] Check DLL version in LIBMPFR_LDFLAGS line from 22052 configure.ac (patch by Stefan Graff, with minor changes). 22053 220542011-06-26 Vincent Lefèvre <vincent@vinc17.net> 22055 22056 [tools/ck-version-info] 2 corrections: 22057 * update due to the change of the libmpfr_la_LDFLAGS line in r7724; 22058 * to support the CRLF end-of-line sometimes used under MS-Windows 22059 (perl should normally take care of that, but Windows software is 22060 not always consistent). 22061 22062 [doc/mpfr.texi] Due to the "@unnumbered Function and Type Index", 22063 replaced the other "Function Index" by "Function and Type Index" 22064 (note: the function index and the type index are merged thanks to 22065 the "@synindex tp fn" line at the beginning of mpfr.texi). 22066 220672011-06-25 Vincent Lefèvre <vincent@vinc17.net> 22068 22069 Ported patch r7723 (changes suggested by Stefan Graff to be able 22070 to build Windows DLLs with GCC 4.6[*]) to the trunk, not tested 22071 (something more may be needed due to the source reorganization). 22072 [*] https://sympa.inria.fr/sympa/arc/mpfr/2011-06/msg00013.html 22073 220742011-06-21 Vincent Lefèvre <vincent@vinc17.net> 22075 22076 [doc/mpfr.texi] Updated the month. 22077 22078 [doc/mpfr.texi] Corrected a note about mpfr_set_*, due to the addition 22079 of mpfr_set_decimal64. 22080 220812011-06-20 Vincent Lefèvre <vincent@vinc17.net> 22082 22083 [doc/README.dev] Removed comment added in r7181, as it is no longer 22084 necessary since r7182 (new option --enable-gmp-internals). 22085 22086 [configure.ac] Updated comment concerning __gmpn_rootrem (mention 22087 WANT_GMP_INTERNALS). 22088 22089 [doc/README.dev] Added a note about logging and timeout. 22090 22091 [src] Conversion into UTF-8 (only comments were concerned). 22092 22093 [TODO] Conversion into UTF-8. 22094 22095 [src/pow.c] Made the code more robust concerning the scaling (a bug was 22096 very unlikely, though), and updated the comments (partial proof). 22097 220982011-06-01 Vincent Lefèvre <vincent@vinc17.net> 22099 22100 [examples/version.c] Output MPFR features and size of MPFR types. 22101 221022011-05-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22103 22104 [src/rec_sqrt.c] continued review; I can now prove that cu=0 in all cases 22105 [tests/trec_sqrt.c] added tests for corner cases 22106 221072011-05-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22108 22109 [rec_sqrt.c] more review of codes, following comments from Vincent 22110 221112011-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22112 22113 [rec_sqrt.c] removed tabs 22114 22115 [rec_sqrt.c] review and small change of changeset 7651: most probably cu=0 22116 when th=0 (and maybe cu=0 always, I cannot find an example where 22117 cu <> 0) but considering the case th=0 is more natural. 22118 221192011-05-18 Vincent Lefèvre <vincent@vinc17.net> 22120 22121 [doc/mpfr.texi] List the contributors in the alphabetic order, like 22122 the main authors. 22123 22124 Made AUTHORS and doc/mpfr.texi consistent. 22125 22126 Updated AUTHORS file and copyright notices (for more consistency). 22127 22128 [tests/thyperbolic.c] Fixed copyright notice. 22129 22130 [src/inp_str.c] Improved comment. 22131 22132 [src/fits_s.h] Improved comment. 22133 22134 [doc/mpfr.texi] Updated the month. 22135 22136 [src/mpfr.h] Avoid a warning from mpfrlint. 22137 22138 [configure.ac] Consistency change in the copyright notice. 22139 22140 [tests/tsqr.c] Added a note in the check_mpn_sqr error message. 22141 22142 [tests/tsqr.c] Added a test of mpn_sqr concerning a bug seen 22143 with GCC 4.5.2 and GMP 5.0.1 on m68k (m68000 target). 22144 221452011-05-17 Vincent Lefèvre <vincent@vinc17.net> 22146 22147 [doc/README.dev] Added a note about a texinfo bug. 22148 221492011-05-13 Vincent Lefèvre <vincent@vinc17.net> 22150 22151 Added mpfr-intmax.h header. 22152 22153 Started to support mpfr_exp_t defined as intmax_t (_MPFR_EXP_FORMAT==4). 22154 22155 [NEWS] Added that the mpfr.h header can be included several times, 22156 while still supporting optional functions. 22157 22158 [doc/mpfr.texi] Document what to do if mpfr.h can be included 22159 multiple times (fixes MPFR bug #9653). 22160 221612011-05-12 Vincent Lefèvre <vincent@vinc17.net> 22162 22163 [doc/README.dev] Added a note to run tests with -D_MPFR_PREC_FORMAT=2. 22164 22165 [src/mpfr-impl.h] Exponent properties: corrected comments and removed 22166 obsolete mp_exp_unsigned_t definition (was internal only). 22167 22168 [src/{mpfr.h,mpfr-impl.h,vasprintf.c}] Clean-up and improvement 22169 of definitions related to mpfr_exp_t. MPFR can now be built with 22170 -D_MPFR_PREC_FORMAT=2 to have mpfr_prec_t and mpfr_exp_t defined 22171 as an int. 22172 22173 [src/mpfr.h] Fixed spaces in a comment. 22174 22175 Fixed printf's calls: support the case where mpfr_prec_t is not a long 22176 (or unsigned long). 22177 [merged changeset r7643 from the exp-int branch] 22178 22179 [src/strtofr.c] Support the case where mpfr_exp_t < long; mpfr_exp_t is 22180 currently defined as mp_exp_t, which comes from GMP, and GMP currently 22181 defines mp_exp_t as a long, except on Cray (never tested for MPFR). But 22182 this may change in the future (possibly as an option)... 22183 [merged changeset r7642 from the exp-int branch] 22184 22185 [src/mpfr-impl.h] Added missing parentheses in MPFR_SADD_OVERFLOW 22186 (fortunately the current MPFR code was not affected). 22187 22188 [tests/tpow_z.c] More details for a test in case of failure. 22189 22190 [src/sub1.c] Fixed several bugs: integer overflows and potential 22191 out-of-bound pointers. They might be visible on particular platforms, 22192 with a particular configuration (e.g. 64-bit limbs and 32-bit exponent 22193 type) or particular compiler options (to check such overflows). 22194 [merged changesets r7637-7638 from the exp-int branch] 22195 221962011-05-11 Vincent Lefèvre <vincent@vinc17.net> 22197 22198 [tests/tsin.c] Added a test (it failed before the fix in r7308). 22199 22200 Fixed constants pi and log(2) computation when logging is used: When 22201 MPFR is built with logging support, these two constants are used by 22202 the logging functions (via mpfr_fprintf, then mpfr_log, for the base 22203 conversion). Since the mpfr_cache function isn't re-entrant when 22204 working on the same cache, we need to define two caches for each 22205 constant. Otherwise the constants could be incorrect; for instance, 22206 "MPFR_LOG_ALL=1 ./tconst_pi" was failing. 22207 Note: the bug was introduced with the new logging system from r7575 22208 for MPFR 3.1.0, based on mpfr_fprintf instead of mpfr_out_str (which 22209 doesn't depend on mpfr_log). 22210 222112011-05-09 Vincent Lefèvre <vincent@vinc17.net> 22212 22213 [tests/tests.c] Replaced atoi by strtoul to read the seed from 22214 GMP_CHECK_RANDOMIZE, as it is an unsigned long. 22215 22216 [tests/texp.c] Fixed the test comparing mpfr_exp_2 and mpfr_exp_3: 22217 filter out 0, as it is handled correctly only by mpfr_exp. 22218 222192011-05-06 Vincent Lefèvre <vincent@vinc17.net> 22220 22221 [doc/README.dev] Completed the note to run tests under gdb. 22222 22223 [doc/README.dev] Added a note to run tests under gdb. 22224 222252011-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22226 22227 [README.dev] added hint for logging 22228 222292011-05-04 Vincent Lefèvre <vincent@vinc17.net> 22230 22231 [src/atan.c] Fixed bug in mpfr_atan: mpfr_check_range was called on the 22232 unrounded result (no longer allocated) instead of the rounded result. 22233 Consequence of this bug: possible incorrect or invalid result and/or 22234 incorrect flags if either the unrounded result or rounded result is not 22235 in the current exponent range. Or possibly worse if the memory used by 22236 the unrounded result is modified before the return of the function. 22237 22238 [tests/tatan.c] Corrected a comment. 22239 22240 [tests/tatan.c] Added a testcase showing a failure of mpfr_atan 22241 in a reduced exponent range. 22242 22243 [src/const_pi.c] Removed useless assignment. 22244 222452011-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22246 22247 [mpfr-impl.h] fixed typo 22248 222492011-05-03 Vincent Lefèvre <vincent@vinc17.net> 22250 22251 [src/mpfr-impl.h] In MPFR_RNDRAW_GEN, do not try to compute the 22252 sticky bit when not necessary (directed mode with rb = 1). 22253 [src/mul.c] FIXME comment: with the change in MPFR_RNDRAW_GEN, 22254 uninitialized data are no longer read; there's still something 22255 wrong, at least with the code documentation, though. 22256 22257 [src/mul.c] Updated the FIXME comment. 22258 22259 Bug in mpfr_mul: a call mpfr_mulhigh_n(pointers..., n) where n is some 22260 size is done, but the mpfr_mul code assumes a result whose size can be 22261 arbitrarily larger, thus may depend on uninitialised data. 22262 * [src/mul.c] Added a FIXME comment. 22263 * [tests/tmul.c] Added a corresponding test. The result is not checked 22264 but valgrind complains of the use of uninitialised value(s). 22265 22266 [src/mpfr-impl.h] MPFR_RNDRAW_GEN: added other missing parentheses. 22267 22268 [src/mpfr-impl.h] MPFR_RNDRAW_GEN: added missing parentheses. 22269 22270 [src/mpfr-impl.h] Logging: do not take into account the Ziv loops due 22271 to logging (i.e. used by the MPFR functions called by the mpfr_fprintf 22272 in LOG_PRINT). 22273 22274 [src/mpfr-impl.h] Avoid recursive logging for MPFR_ZIV_* macros too, 22275 and fixed type for the output of the precision. 22276 22277 [src/mpfr-impl.h] Avoid recursive logging (not wanted and freezes MPFR). 22278 22279 [src/rec_sqrt.c] Improved the comment added in r7651. 22280 222812011-05-02 Vincent Lefèvre <vincent@vinc17.net> 22282 22283 [src/rec_sqrt.c] Fixed the buffer overflow (bug 12553). 22284 22285 [src/rec_sqrt.c] Added an assertion to avoid a buffer overflow 22286 (mpn_add_1 and mpn_sub_1 don't support size = 0). It sometimes 22287 fails, and this is the following bug: 22288 https://gforge.inria.fr/tracker/index.php?func=detail&aid=12553&group_id=136&atid=619 22289 22290 [src/rec_sqrt.c] Added a comment about a buffer overflow. Bug report: 22291 https://gforge.inria.fr/tracker/index.php?func=detail&aid=12553&group_id=136&atid=619 22292 22293 [tests/tvalist.c] Make sure that fct is used (avoid a warning). 22294 22295 [tests/tsin_cos.c] status_f and status were not read (compared) in 22296 coverage_01032011, yielding a warning. 22297 22298 [src/mpfr-impl.h] Avoid a spurious warning with some use of MPFR_BLOCK. 22299 22300 [doc/README.dev] Added command to test with valgrind. 22301 223022011-05-01 Vincent Lefèvre <vincent@vinc17.net> 22303 22304 Added "make dist" support for -dev MPFR versions by distributing the 22305 tests/data files in the tarball for such MPFR versions ("make check" 22306 fails if some data file couldn't be read for such versions). 22307 * configure.ac: add a Makefile variable DATAFILES, which contains the 22308 list of the tests/data files if the MPFR version ends with "-dev". 22309 * Makefile.am: add $(DATAFILES) to EXTRA_DIST. 22310 223112011-04-29 Vincent Lefèvre <vincent@vinc17.net> 22312 22313 Added casts for printf (mpfr_prec_t was assumed to be an unsigned long). 22314 22315 [src/strtofr.c] Support the case where mpfr_exp_t < long. 22316 22317 [src/mpfr-impl.h] Added missing parentheses in MPFR_SADD_OVERFLOW. 22318 22319 [tests/trint.c] Removed a useless pointer cast (in general, such casts 22320 are either useless or incorrect, as breaking aliasing rules). 22321 223222011-04-28 Vincent Lefèvre <vincent@vinc17.net> 22323 22324 [tests/tpow_z.c] More details concerning a failure. 22325 22326 [src/sub1.c] Added a useless cast (for maintainability: may be needed 22327 in case of future change) and comments about the last change (r7637). 22328 22329 [src/sub1.c] Fixed several bugs: integer overflows and potential 22330 out-of-bound pointers. 22331 22332 [src/cmp2.c] Added an assertion. 22333 223342011-04-18 Vincent Lefèvre <vincent@vinc17.net> 22335 22336 [acinclude.m4] Correction of problems triggering the warning 22337 "warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body" 22338 with autoconf 2.68: 22339 * Fixed missing quoting in an AC_RUN_IFELSE. 22340 * Added an AC_LANG_SOURCE in another AC_RUN_IFELSE. 22341 22342 [acinclude.m4] s/can not/cannot/ 22343 22344 [acinclude.m4] Added comment about the warning: 22345 warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body 22346 223472011-04-15 Vincent Lefèvre <vincent@vinc17.net> 22348 22349 [acinclude.m4] Use conventional quotes. 22350 22351 [acinclude.m4] Added a comment. 22352 223532011-04-12 Vincent Lefèvre <vincent@vinc17.net> 22354 22355 [src/asin.c] Fixed bug in mpfr_asin for x = 1 or -1 in extremely reduced 22356 exponent range (when pi is not representable, but pi/2 is). 22357 [tests/tasin.c] Added testcase. 22358 223592011-04-08 Vincent Lefèvre <vincent@vinc17.net> 22360 22361 [TODO] Removed "allow generic tests to run with a restricted 22362 exponent range" (this was done in r7470). 22363 223642011-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22365 22366 [TODO] added item 22367 223682011-04-05 Vincent Lefèvre <vincent@vinc17.net> 22369 22370 [doc/mpfr.texi] Updated the month. 22371 22372 [INSTALL,doc/mpfr.texi] Say that mpfr@loria.fr is the MPFR mailing-list. 22373 223742011-04-01 Vincent Lefèvre <vincent@vinc17.net> 22375 22376 [configure.ac] Removed the -Wno-format GCC option, which was added 22377 when logging was used, as it is no longer needed after the changes 22378 done in r7575,7578 (mpfr_fprintf is now used for logging instead of 22379 fprintf with the Glibc register_printf_function extension). 22380 223812011-03-29 Vincent Lefèvre <vincent@vinc17.net> 22382 22383 [tests/reuse.c] Added a comment. 22384 22385 [src/pow.c] Fixed a bug in mpfr_pow_general when an argument is reused 22386 (e.g. mpfr_pow(x,x,y,rnd) or mpfr_pow(y,x,y,rnd)) and the result is 22387 negative, thus when x is negative and y is a huge odd integer ("huge" 22388 because not-too-large integers are currently handled by mpfr_pow_z). 22389 22390 [tests/reuse.c] Added a mpfr_pow(x,x,y,rnd) test showing a failure 22391 when x is negative and y is a huge odd integer. 22392 22393 [src/subnormal.c] Improved a comment. 22394 22395 [tests/reuse.c] Test also negative numbers. 22396 22397 [tests/reuse.c] GNU coding style. 22398 22399 [src/mul.c] Updated a comment. 22400 22401 [src/powerof2.c] Updated comment. 22402 22403 [src/powerof2.c] More detailed comment. 22404 224052011-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22406 22407 [cfarm.sh] complete tests with mpfr-3.0.1-rc1 22408 224092011-03-21 Vincent Lefèvre <vincent@vinc17.net> 22410 22411 [src/pow_z.c] Fixed bug bug20110320, that occurs in extremely reduced 22412 exponent range (more precisely, if 1 is out of range, i.e. emin > 1). 22413 22414 [tests/tpow.c] Added testcase bug20110320. 22415 22416 [tests/tgeneric.c] Added debug information. 22417 224182011-03-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22419 22420 [cfarm.sh] shell script to test MPFR on the GCC Compile Farm 22421 224222011-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22423 22424 [digamma.c] fixed compiler warning (ISO C90 forbids mixed declarations and code) 22425 224262011-03-17 Vincent Lefèvre <vincent@vinc17.net> 22427 22428 [NEWS] Added a note about the fix in the mpfr_subnormalize 22429 implementation, in case users would think the old behavior 22430 was chosen on purpose. 22431 22432 Completed r7575 (Get rid of deprecated register_printf_function 22433 function in logging system): there was a remaining old MPFR_LOG_FUNC 22434 in "src/div_ui.c". Now, the MPFR source no longer contains '%#R'. 22435 22436 [src/mul_2si.c] Removed trailing whitespace. 22437 22438 [doc/README.dev] Fixed variable name from r7575. 22439 224402011-03-17 Philippe Théveny <philippe.theveny@laposte.net> 22441 22442 Get rid of deprecated register_printf_function function in logging system. 22443 224442011-03-15 Vincent Lefèvre <vincent@vinc17.net> 22445 22446 [src/erfc.c] Fixed a problem (incorrect flags or possible crash) in 22447 extremely reduced exponent range. Support the case where mpfr_prec_t 22448 is larger than a long. 22449 22450 [tests/terf.c] Added some tests of the flags (no failure in them, 22451 thanks to the mpfr_cmp_si (x, -27282) in erfc.c, for 1b). 22452 22453 [tests/tgeneric.c] In failure messages, output the name of the 22454 tested function. This is useful for programs that have generic 22455 tests for several functions, such as terf. 22456 22457 [tests/terf.c] Added a testcase showing a failure due to bad flags 22458 in a reduced exponent range. 22459 224602011-03-14 Vincent Lefèvre <vincent@vinc17.net> 22461 22462 [tests/terf.c] Changed mp_exp_t (r7564) to mpfr_exp_t. 22463 224642011-03-11 Vincent Lefèvre <vincent@vinc17.net> 22465 22466 [src/erfc.c] Added an assertion for future platforms (e.g. with 128-bit 22467 exponent type). 22468 22469 [src/erfc.c] Fixed r7564 (comparison must really be signed). 22470 22471 [tests/terf.c] Fixed test added in r7564 for 32-bit machines. 22472 224732011-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22474 22475 [erfc.c] fixed bug found by Pascal Molin: when we increase the exponent range 22476 on 64-bit machines, erfc() wrongly underflows for x >= 27282 22477 224782011-03-10 Vincent Lefèvre <vincent@vinc17.net> 22479 22480 [src/jn.c] Fixed the MPFR_FAST_COMPUTE_IF_SMALL_INPUT test for n == 1 22481 in underflow cases. 22482 22483 [src/jn.c] No need for mpfr_clear_flags (already done in MPFR_BLOCK). 22484 22485 [src/jn.c] Check that no intermediate underflow or overflow occurs. 22486 22487 [doc/algorithms.tex] For the Bessel function, say that the algorithm 22488 assumes that no underflows/overflows occur. 22489 224902011-03-09 Vincent Lefèvre <vincent@vinc17.net> 22491 22492 [src/gamma.c] More robust code (for the change in r7551). 22493 22494 Removed trailing spaces. 22495 22496 [tests/tgeneric.c] Added feature for MPFR_SUSPICIOUS_OVERFLOW to avoid 22497 spurious failures by defining TGENERIC_SO_TEST to some well-chosen test. 22498 22499 [tests/tgamma.c] Added a comment about MPFR_SUSPICIOUS_OVERFLOW. 22500 22501 [src/gamma.c] Fixed the special code for tiny values. 22502 22503 [tests/tgamma.c] Corrected a test and added other tests for tiny x > 0. 22504 22505 [tests/tgamma.c] Updated a comment. 22506 22507 [tests/tgamma.c] Restore emax. 22508 22509 [tests/tgamma.c] Do not initialize x twice. 22510 22511 [tests/tgamma.c] Do not run the same test twice if emin = MPFR_EMIN_MIN. 22512 22513 [tests/tgamma.c] Added tests for tiny values, showing bugs in special 22514 code for such values. Run tgamma with at least an argument to get all 22515 the failures. 22516 225172011-03-07 Vincent Lefèvre <vincent@vinc17.net> 22518 22519 [src/jn.c] Fixed mpfr_jn_k0() internal function: 22520 * The prototype was incorrect: one needs "unsigned long" for n 22521 (actually absn), in case absn is equal to - LONG_MIN. 22522 * The formula and the code were incorrect for n = 0, due to the 22523 division by n; it was yielding k0 = ULONG_MAX. The case n = 0 22524 is now handled separately. 22525 * Small optimization: division by log(2) -> multiplication by 22526 1/log(2). 22527 22528 [src/jn.c] Avoid integer overflow in the computation of the initial 22529 working precision. This makes several tests fail, but logging shows 22530 that previous non-failure was due to undefined behavior due to huge 22531 k0 computed by mpfr_jn_k0. 22532 22533 [src/jn.c] Added a comment for mpfrlint. 22534 22535 [tools/mpfrlint] Change of r7515: any mpfr_clear_* can be mentioned. 22536 22537 [src/jn.c] Added comments and fixed a bug. 22538 22539 [src/jn.c] Detect incorrect error analysis (that may have been the goal 22540 of the assertion corrected in r7534, but this wasn't documented). Added 22541 a FIXME comment. 22542 22543 [src/jn.c] Fixed incorrect assertion. It could occur only 22544 in precision >= 2^(1+s/2), where s is the bitsize of a 22545 "long", e.g. p >= 2^17 = 131072 on most 32-bit machines and 22546 p >= 2^33 = 8,589,934,592 on most 64-bit machines. Only some 22547 arguments are affected (|z| between around 2^(s/2) and p/2). 22548 22549 [tests/Makefile.am] Added a comment. 22550 22551 [doc/README.dev] Corrected a typo. 22552 225532011-03-06 Vincent Lefèvre <vincent@vinc17.net> 22554 22555 [src/jn.c] Improved underflow detection. Still not complete, though. 22556 22557 [src/jn.c] Comments: English usage. 22558 225592011-03-05 Vincent Lefèvre <vincent@vinc17.net> 22560 22561 [tests/trint.c] mantissa -> significand (standard and correct term). 22562 22563 [tests/trint.c] Do not use snprintf (C99). 22564 225652011-03-04 Vincent Lefèvre <vincent@vinc17.net> 22566 22567 [tools/mpfrlint] Added a test to check that the snprintf function (C99) 22568 is not used. 22569 225702011-03-04 Olivier Demengeon <olivier.demengeon@inria.fr> 22571 22572 Previous extended coverage test in trint.c now self generate tests in and compare values 22573 22574 Extend test coverage of mpfr_rint to 100% 22575 225762011-03-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22577 22578 [src/add1sp.c] same as previous commits 22579 22580 [src/sub1sp.c] ibidem (see previous commit log) 22581 22582 [add1.c] ibidem (see previous commit log) 22583 225842011-03-03 Vincent Lefèvre <vincent@vinc17.net> 22585 22586 [src/add.c,src/sub.c] Split assertions for C90 compilers, to avoid 22587 too long strings generated by #expr. Problem seen with: 22588 gcc -ansi -pedantic-errors 22589 22590 [src/yn.c] Minor change. 22591 22592 [src/yn.c] Extend the exponent range (code not checked concerning 22593 internal exceptions, such as overflows, underflows and divby0). 22594 22595 [src/agm.c] Added comments (for mpfrlint, in particular). 22596 22597 [tools/mpfrlint] The use of mpfr_overflow_p, etc. is allowed if 22598 mpfr_clear_flags is mentioned (useful for checking purpose at the 22599 end of a function, but this needs an explicit mpfr_clear_flags; 22600 otherwise MPFR_BLOCK should still be used). 22601 22602 [src/agm.c] Completed scaling to avoid intermediate overflow/underflow. 22603 22604 [src/agm.c] Bug fix in error computation: in Ziv's iteration, err kept 22605 its value from the previous iteration instead of being reset to 0. 22606 Consequence: a possible loss of performance in rare cases. 22607 22608 [src/cmp2.c] Removed a useless assertion and updated comments. 22609 226102011-03-02 Vincent Lefèvre <vincent@vinc17.net> 22611 22612 [src/agm.c] Added a FIXME comment. 22613 22614 [src/agm.c] Updated exception checking (more informative). 22615 22616 [src/agm.c] Check internal exceptions: the error analysis may be 22617 incorrect in case of exception. 22618 22619 [src/agm.c] Implemented scaling to avoid intermediate overflow/underflow 22620 (but the tagm test still fails, due to a rounding error this time). 22621 22622 [tests/tagm.c] Added tests triggering intermediate underflow/overflow. 22623 22624 [tests/tagm.c] Also test the ternary value and the flags. 22625 22626 [tests/tagm.c] Corrected values (using Pari). 22627 22628 [src/agm.c] Extend the exponent range. This doesn't make the algorithm 22629 correct yet, as intermediate underflow or overflow is still possible in 22630 the first multiplication. 22631 226322011-03-01 Olivier Demengeon <olivier.demengeon@inria.fr> 22633 22634 Change some functions called in test tsin_cos.c 22635 22636 Extend coverage test of mpfr_sincos_fast to 100% 22637 22638 Extend coverage test of mpfr_custom_get_kind to 100% 22639 226402011-02-25 Vincent Lefèvre <vincent@vinc17.net> 22641 22642 [src/jn.c] Fix: support reduced exponent ranges for small inputs. 22643 22644 [src/gamma.c] Added a comment about an overflow case. 22645 22646 [tests/tgamma.c] Added tests in maximum exponent range. 22647 22648 [src/gamma.c] Fixed flags when x if very small (protect from 22649 intermediate overflow). 22650 22651 [tests/tgamma.c] Corrected test number. 22652 22653 [tests/tgamma.c] Added a test in maximum exponent range. 22654 22655 [src/gamma.c] Fixed inexact flag when x if very small. 22656 22657 [tests/tgamma.c] Added tests. 22658 22659 [src/gamma.c] Fixed a bug occurring in reduced exponent range. 22660 [tests/tgamma.c] Added corresponding testcase. 22661 22662 [src/lngamma.c] Do not use MPFR_EXP after a mpfr_clear (even though 22663 this currently work). 22664 22665 [src/rem1.c] Fixed mpfr_rem1 in reduced exponent range (the function 22666 is actually simplified). 22667 226682011-02-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22669 22670 [TODO] added an item 22671 226722011-02-25 Vincent Lefèvre <vincent@vinc17.net> 22673 22674 Fixed mpfr_div_2si, mpfr_div_2ui and mpfr_mul_2si in some corner cases. 22675 22676 [tests/tmul_2exp.c] Small correction in output (in case of failure). 22677 226782011-02-21 Vincent Lefèvre <vincent@vinc17.net> 22679 22680 [tests/tset_q.c] Corrections in function prototypes. 22681 226822011-02-21 Olivier Demengeon <olivier.demengeon@inria.fr> 22683 22684 Remove the use of mpfr_get_default_prec in some coverage test 22685 22686 Add some coverage test in tests/tset_q.c 22687 22688 fixed coding convention of 2 tests functions 22689 226902011-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22691 22692 [tget_d.c] fixed some compiler errors and warnings 22693 226942011-02-18 Vincent Lefèvre <vincent@vinc17.net> 22695 22696 [tests/tversion.c] Split a printf into several ones to reduce the 22697 string length below the 509-byte limit from C90 (useful to avoid 22698 an error when testing with gcc -ansi -pedantic-errors). 22699 227002011-02-18 Olivier Demengeon <olivier.demengeon@inria.fr> 22701 22702 Extend test coverage to 100% on mpfr_z_sub and mpfr_mul_q function 22703 22704 Extend test coverage on mpfr_get_d_2exp function 22705 227062011-02-18 Vincent Lefèvre <vincent@vinc17.net> 22707 22708 [tests/tmul_2exp.c] Also test mpfr_div_2si and mpfr_div_2ui (same bug). 22709 22710 [tests/tmul_2exp.c] Added a testcase showing a bug in mpfr_mul_2si 22711 (possible intermediate overflow). 22712 22713 [src/zeta.c] Support zeta(eps) with |eps| very small or 0 22714 in extremely reduced exponent range. 22715 22716 [src/atan2.c] Fix: the overflow or underflow flag was set in the case 22717 x = power of two and y/x overflows or underflows. 22718 22719 [src/atan2.c] Support special cases in extremely reduced exponent range. 22720 22721 [src/acos.c] Support acos(0) in extremely reduced exponent range. 22722 227232011-02-17 Vincent Lefèvre <vincent@vinc17.net> 22724 22725 [tests/tgeneric.c] Added generic tests in a reduced exponent range. 22726 This currently makes 10 tests fail on a 64-bit machine. 22727 22728 [tests/mpfr-test.h] Defined a SAME_VAL(X,Y) macro to test whether two 22729 floating-point data have the same value, seen as an element of the set 22730 of the floating-point data (Level 2 in the IEEE 754-2008 standard). 22731 22732 [src/mpfr-impl.h] Defined a MPFR_EXP_FSPEC macro containing the 22733 format specifier for mpfr_eexp_t, to output an exponent with: 22734 printf ("%" MPFR_EXP_FSPEC "d", (mpfr_eexp_t) exponent); 22735 22736 [tests/tgeneric.c] Reformat. 22737 22738 [doc/README.dev] Added a warning about whitespace in the mpfr.texi file. 22739 22740 [doc/mpfr.texi] Fixed spacing for the mpfr.info file. 22741 227422011-02-10 Vincent Lefèvre <vincent@vinc17.net> 22743 22744 [tools/mpfrlint] Detect the use of mp_ptr and mp_srcptr. 22745 22746 [doc/mpfr.texi] Updated the month. 22747 22748 [src/gmp_op.c] Added a blank line. 22749 227502011-02-09 Olivier Demengeon <olivier.demengeon@inria.fr> 22751 22752 Added mpfr_z_sub (function/test/doc) 22753 227542011-02-09 Vincent Lefèvre <vincent@vinc17.net> 22755 22756 Added new types mpfr_limb_ptr and mpfr_limb_srcptr to src/mpfr-impl.h, 22757 and replaced mp_ptr and mp_srcptr (GMP internals) by these 2 new types 22758 respectively. 22759 227602011-02-08 Vincent Lefèvre <vincent@vinc17.net> 22761 22762 [src/mpfr-impl.h] Fix for Intel's compiler (ICC) under MS Windows: 22763 MPFR was incorrectly assuming that ICC had some extensions like 22764 under GNU/Linux. This made the MPFR compilation fail. 22765 22766 [src/mpfr-impl.h] Corrected a typo in a comment. 22767 227682011-02-05 Vincent Lefèvre <vincent@vinc17.net> 22769 22770 [INSTALL] Removed incorrect note. 22771 227722011-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22773 22774 [INSTALL] added hint for VS2008 and Intel compiler v11.1 22775 227762011-02-03 Vincent Lefèvre <vincent@vinc17.net> 22777 22778 [configure.ac,Makefile.am] Clean-up and depend on GNU Automake 1.11. 22779 227802011-01-31 Vincent Lefèvre <vincent@vinc17.net> 22781 22782 [src/zeta_ui.c,tests/tzeta_ui.c] Patch from Patrick Pélissier for 22783 the division-by-zero support in mpfr_zeta_ui (and test): 22784 227852011-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22786 22787 [src/zeta.c] patch from Patrick Pelissier (problem with division by zero flag) 22788 227892011-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22790 22791 [TODO] removed division by zero item (done) 22792 22793 [src/get_str.c,TODO] updated comments, mpfr_get_str already supports base <= 62 22794 227952011-01-27 Vincent Lefèvre <vincent@vinc17.net> 22796 22797 [tests/tj0.c] GMP_RNDN → MPFR_RNDN. 22798 22799 [src/subnormal.c] Set the inexact and underflow flags when needed. Fixes 22800 https://gforge.inria.fr/tracker/index.php?func=detail&aid=7958&group_id=136&atid=622 22801 [tests/tsubnormal.c] Improved the tests, in particular for the flags. 22802 [doc/mpfr.texi] Documented the change. 22803 22804 [doc/mpfr.texi] Corrected order in Section "Changed Functions". 22805 22806 [tests/tj0.c] Added case for which s = 0 occurs in mpfr_jn. 22807 22808 [src/jn.c] Added a log message. 22809 22810 [src/div_ui.c] Added logging support. 22811 228122011-01-26 Vincent Lefèvre <vincent@vinc17.net> 22813 22814 [tests/tsum.c] Fixed bug in test (do not set the exponent on 0). 22815 22816 [tests/tsum.c] Formatting. 22817 22818 [tests/tsum.c] Fixed get_prec_max and added some checks. 22819 Current failure: tab[1] is not valid. 22820 22821 [src/sum.c] Added an assertion. 22822 22823 [src/check.c] Replaced MPFR_IS_PURE_FP by !MPFR_IS_SINGULAR, the 22824 former macro now has a check for validity in debug mode (r7426). 22825 The goal of mpfr_check is to test the validity, so that we don't 22826 want this check here. 22827 22828 [src/mpfr-impl.h] In the MPFR_IS_PURE_FP test, if positive, check that 22829 the number is normalized (debug mode only). This makes 2 tests fail: 22830 tcheck and tsum. Note: with logging active, tsum was already triggering 22831 an assertion failure in mpfr_get_str (via mpfr_add). 22832 22833 [src/add.c] Formatting. 22834 22835 [src/li2.c] Fixed crash in mpfr_li2 when logging is used. 22836 228372011-01-24 Vincent Lefèvre <vincent@vinc17.net> 22838 22839 [src/jn.c] Corrected a comment. 22840 228412011-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22842 22843 [src/jn.c] added notes for correctness of the algorithm used 22844 228452011-01-24 Vincent Lefèvre <vincent@vinc17.net> 22846 22847 [src/jn.c] C90 compatibility fix (empty macro arguments are undefined). 22848 22849 [src/jn.c] Added an assaertion against a potential overflow (which 22850 probably never occurs, but this should be proved...). 22851 228522011-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22853 22854 [src/jn.c] patch from Patrick Pelissier 22855 228562011-01-23 Vincent Lefèvre <vincent@vinc17.net> 22857 22858 [src/jn.c] Forgot to change an MPFR_EXP to MPFR_GET_EXP. 22859 22860 [src/jn.c] Replaced MPFR_EXP by MPFR_GET_EXP when the value should 22861 really be an exponent. Removed incorrect and useless casts. Added 22862 an assertion to protect against potentially incorrect code. 22863 22864 [src/jn.c] Patch from Patrick Pélissier (mpfr_check_range and other). 22865 228662011-01-21 Vincent Lefèvre <vincent@vinc17.net> 22867 22868 [tools/mpfrlint] Update the check for mpfr_printf-like functions 22869 in the tests. 22870 22871 [tests/tprintf.c] Consistency. 22872 22873 [tests/tgrandom.c] Added a comment. 22874 22875 [tests/tgrandom.c] Protection of the mpfr_printf by #ifdef HAVE_STDARG. 22876 228772011-01-20 Vincent Lefèvre <vincent@vinc17.net> 22878 22879 [src/eint.c] Added a FIXME. 22880 228812011-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22882 22883 [src/out_raw.c] added pointer to discussion 22884 228852011-01-17 Vincent Lefèvre <vincent@vinc17.net> 22886 22887 [tests/tvalist.c] Correction for C++ compilers. 22888 22889 [doc/mpfr.texi] Added division-by-zero exception. 22890 22891 [doc/README.dev] Updated "To make a release". 22892 22893 [NEWS] Update for MPFR 3.1.x. 22894 22895 [src/grandom.c] Reformat. 22896 22897 [tools/mpfrlint] tests/tvalist.c can use mpfr_printf-like functions. 22898 22899 [tests/tgrandom.c] Added a FIXME: do not use mpfr_printf in the tests. 22900 22901 [tests] Untabified and removed trailing spaces. 22902 22903 [src/grandom.c,src/mpfr.h] Untabified and removed trailing spaces. 22904 22905 [src/frexp.c] Corrections. 22906 22907 [src/out_raw.c] Untabified. 22908 22909 [src/out_raw.c] Fixed some bugs on the incomplete code. 22910 22911 [src/atan2.c] MPFR_EXP -> MPFR_GET_EXP and reformat. 22912 22913 [src/ai.c] Removed trailing spaces. 22914 22915 [doc/mpfr.texi] Updated the month. 22916 22917 Copyright notice update: added 2011 with 22918 perl -pi -e 's/2010 Free Software/2010, 2011 Free Software/' **/*(^/) 22919 under zsh, reverting the ChangeLog file and the m4 and tools/mbench 22920 directories. 22921 22922 [doc/README.dev] Updated year in example. 22923 22924 tests: updated svn:ignore property. 22925 22926 [src/pow.c] Added an assertion. 22927 22928 [tests/td_div.c] Consistency change. 22929 22930 [tests/tdiv_d.c] Updated test of special cases. 22931 22932 [src/log1p.c] Added support for the division-by-zero exception. 22933 22934 [tests/tlog1p.c] Test the flags for special cases. 22935 22936 Added support for the division-by-zero exception in functions 22937 mpfr_atanh, mpfr_cot, mpfr_coth, mpfr_csc, mpfr_csch, 22938 mpfr_digamma, mpfr_eint, mpfr_gamma, mpfr_lgamma, mpfr_lngamma, 22939 mpfr_log, mpfr_log2 and mpfr_log10. 22940 229412011-01-16 Laurent Fousse <laurent@komite.net> 22942 22943 [tests/tgrandom.c] Add missing cast for malloc. 22944 229452011-01-16 Vincent Lefèvre <vincent@vinc17.net> 22946 22947 [src/yn.c] Added support for the division-by-zero exception. 22948 22949 [src/rec_sqrt.c] Added support for the division-by-zero exception. 22950 22951 [src/pow_si.c] Improved robustness (in case of future changes). 22952 22953 Added support for the division-by-zero exception for the power functions 22954 (with additional tests). (Corrected patch from Patrick.) 22955 229562011-01-16 Laurent Fousse <laurent@komite.net> 22957 22958 Rename mpfr_urandom_gaussian to mpfr_grandom. 22959 229602011-01-15 Vincent Lefèvre <vincent@vinc17.net> 22961 22962 [doc/mpfr.texi] Corrections for mpfr_urandom_gaussian. 22963 22964 [tests/turandom_gaussian.c] Fixed C99-only code. 22965 229662011-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 22967 22968 [src/frexp.c,tests/tfrexp.c] added new function mpfr_frexp 22969 [src/urandom_gaussian.c] fixed copyright line 22970 [src/out_raw.c] started writing code (work in progress, please continue if 22971 you are interested) 22972 229732011-01-14 Laurent Fousse <laurent@komite.net> 22974 22975 [doc/mpfr.texi] Document urandom_gaussian. 22976 22977 [tests/Makefile.am] Include turandom_gaussian in tests. 22978 22979 [tests/turandom_gaussian.c] Add tests for urandom_gaussian. 22980 229812011-01-14 Vincent Lefèvre <vincent@vinc17.net> 22982 22983 [tests/tdiv.c] Added consistency tests between mpfr_div, mpfr_ui_div, 22984 mpfr_si_div, mpfr_div_ui and mpfr_div_si (check the ternary value, 22985 the flags and the result of the division). 22986 22987 [src/ui_div.c] Fixed prototype formatting. 22988 [src/div_ui.c] Fixed prototype formatting. Set division-by-zero flag. 22989 229902011-01-14 Laurent Fousse <laurent@komite.net> 22991 22992 [src/urandom_gaussian.c] Fix x -> xp, and scaling. 22993 22994 [src/urandom_gaussian.c] Pick the signs of the outputs at random. 22995 22996 [src/urandom_gaussian.c] Fix precision of temporary results. 22997 22998 [src/urandom_gaussian.c] Add missing inits/clears. 22999 23000 [src/mpfr.h] Declare urandom_gaussian. 23001 23002 [src/Makefile.am] Add urandom_gaussian.c to the sources. 23003 23004 [src/urandom_gaussian] Start work on gaussian distribution. 23005 230062011-01-14 Vincent Lefèvre <vincent@vinc17.net> 23007 23008 [tests/tgeneric.c] Fixed code introduced in r7346, again. 23009 230102011-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23011 23012 [sin_cos.c] moved macros to mpfr-impl.h, added README 23013 23014 [sin_cos.c] new inexact flags computed by mpfr_check_range were lost 23015 230162011-01-14 Vincent Lefèvre <vincent@vinc17.net> 23017 23018 [tests/tgeneric.c] Fixed code introduced in r7346. 23019 23020 [tools/coverage] Update from Patrick. 23021 23022 [src/ui_div.c] Set the division-by-zero flag. 23023 [tests/tui_div.c] Updated and improved the test of special cases. 23024 Note: tpow_all currently fails since the support of the division-by-zero 23025 exception is not complete yet. 23026 23027 [src/div.c] Set the division-by-zero flag. 23028 [tests/tdiv.c, tests/td_div.c] Updated and improved the test of special 23029 cases. 23030 23031 [tests/tset.c] Tests didn't fail in case of error from PRINT_ERROR_IF. 23032 23033 [tests/tgeneric.c] Added comments. 23034 23035 [tests/tgeneric.c] Check the division-by-zero flag. 23036 23037 Improved tests/texceptions.c (mpfr_clear_*, mpfr_set_*). 23038 23039 Added support for the division-by-zero exception. 23040 23041 [src/exceptions.c] Fixed bad #undef's (with currently no consequences). 23042 230432011-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23044 23045 [TODO] removed item about inlined mpfr_neg: Patrick Pelissier tried it but it 23046 does not speed things 23047 230482011-01-14 Vincent Lefèvre <vincent@vinc17.net> 23049 23050 [src/mpfr-impl.h] Removed an obsolete comment. 23051 230522011-01-13 Laurent Fousse <laurent@komite.net> 23053 23054 [src/atan2.c] "Exact" division can be inexact because of the exponent range. 23055 230562011-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23057 23058 [out_raw.c] exchanged bits for precision and exponent 23059 23060 [out_raw.c] first proposal for external format 23061 230622011-01-13 Vincent Lefèvre <vincent@vinc17.net> 23063 23064 [src/mpfr-impl.h] MPFR_IS_POWER_OF_2: added parentheses. 23065 230662011-01-13 Laurent Fousse <laurent@komite.net> 23067 23068 Add tests for special case of atan2 (x power of 2). 23069 23070 Add special case for atan2(x,y) when x is a power of 2. 23071 23072 New macro MPFR_IS_POWER_OF_2. 23073 230742011-01-13 Vincent Lefèvre <vincent@vinc17.net> 23075 23076 TLS support is now detected automatically. If TLS is supported, MPFR is 23077 built as thread safe by default. To disable TLS explicitly, configure 23078 MPFR with --disable-thread-safe. 23079 230802011-01-13 Laurent Fousse <laurent@komite.net> 23081 23082 Add tests for mpfr_ai special case x=0. 23083 23084 Add special case for x=0 in mpfr_ai1. 23085 230862011-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23087 23088 [algorithms.tex] extended Lemma 2 to the case of terms of the form 1/(1+delta) 23089 230902011-01-13 Vincent Lefèvre <vincent@vinc17.net> 23091 23092 tests: return 77 for skipped tests (see GNU Automake manual). 23093 23094 tests: updated svn:ignore property. 23095 23096 TODO update after r7317 and r7320. 23097 23098 Support multiple inclusions of mpfr.h w.r.t. <stdio.h> and <stdarg.h> 23099 (MPFR_USE_FILE and/or MPFR_USE_VA_LIST are needed until GMP is fixed). 23100 Added test "tests/tvalist.c". 23101 231022011-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23103 23104 [src/mpfr-longlong.h] idem as previous commit for other 2 FIXME's 23105 23106 [mpfr-longlong.h] resolved one FIXME, by adding a new one :-) 23107 231082011-01-13 Vincent Lefèvre <vincent@vinc17.net> 23109 23110 Support multiple inclusions of mpfr.h w.r.t. <stdint.h> / <inttypes.h>. 23111 231122011-01-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23113 23114 another patch from Patrick Pelissier to test get_ld (with export of data used) 23115 23116 patch from Patrick Pelissier to use clock_getime instead of rdtsc 23117 (use "make rt" instead of "make") 23118 References: 23119 https://stackoverflow.com/questions/3388134/rdtsc-accuracy-across-cpu-cores 23120 https://en.wikipedia.org/wiki/Time_Stamp_Counter 23121 231222010-12-25 Vincent Lefèvre <vincent@vinc17.net> 23123 23124 [src/get_ld.c] Updated a comment about the last change. 23125 23126 [src/get_ld.c] Minor performance improvement. 23127 231282010-12-19 Vincent Lefèvre <vincent@vinc17.net> 23129 23130 [tools/mbench/Makefile] Update due to source reorganization (r7087): 23131 patch from Patrick Pelissier. 23132 231332010-12-17 Vincent Lefèvre <vincent@vinc17.net> 23134 23135 [TODO] Update (exp-int branch, internal macro). 23136 23137 [src/sin.c] Fixed failure in debug mode (missing MPFR_IS_ZERO test). 23138 23139 [src/rec_sqrt.c] Improved comment. 23140 23141 Added exp-int branch from r7304, where mpfr_exp_t is defined as an 23142 int instead of mp_exp_t. This is for testing only for usual 64-bit 23143 machines (e.g. x86_64 GNU/Linux), where mpfr_exp_t and mpfr_prec_t 23144 are now on 32 bits instead of 64 bits. Many tests currently fail 23145 for unknown reasons. 23146 TODO: find the cause of these failures, starting with the low level 23147 functions (since they can affect higher level ones). 23148 231492010-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23150 23151 [rec_sqrt.c] put back some information lost in commit 7302 23152 231532010-12-17 Vincent Lefèvre <vincent@vinc17.net> 23154 23155 [src/cmp2.c] Corrected a comment. 23156 23157 Replaced some MPFR_EXP by MPFR_GET_EXP. 23158 23159 [src/rec_sqrt.c] Removed a variable that was used only once. 23160 23161 [src/mpfr.h] Changed comment for mpfrlint. 23162 23163 Added MPFR_TMP_LIMBS_ALLOC macro and updated the source to use it. 23164 tools/mpfrlint: check its use instead of MPFR_TMP_ALLOC. 23165 23166 [src/sum.c] Improved readability. 23167 23168 [src/mpfr-impl.h] Formatting. 23169 231702010-12-14 Vincent Lefèvre <vincent@vinc17.net> 23171 23172 [TODO] Added year on a date (the item was added on 2007-07-28 in r4707). 23173 231742010-12-13 Vincent Lefèvre <vincent@vinc17.net> 23175 23176 Added configure.lineno (generated by configure) to the svn:ignore 23177 property of the src directory. 23178 231792010-12-12 Vincent Lefèvre <vincent@vinc17.net> 23180 23181 [NEWS] Update concerning the --with-gmp-build configure option. 23182 23183 [INSTALL] Corrected a typo from r7293. 23184 23185 Updated INSTALL file after the recent changes in configure.ac concerning 23186 the --with-gmp-build configure option. 23187 23188 [configure.ac] With --with-gmp-build, do not duplicate the include 23189 search paths if the GMP source and build directories are the same. 23190 23191 [configure.ac] Fixed another bug in r7289. This new version now seems 23192 to work with GMP's srcdir pointing to a relative directory or to an 23193 absolute one. 23194 23195 [configure.ac] Fixed bug in r7289. 23196 23197 [configure.ac] Corrected Patrick Pelissier's patch (not tested). 23198 231992010-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23200 23201 [configure.ac] patch from Patrick Pelissier to solve the problem with 23202 --with-gmp-build when the GMP build directory and the GMP 23203 source directory differ 23204 232052010-12-12 Vincent Lefèvre <vincent@vinc17.net> 23206 23207 [tests/Makefile.am] tversion is also run at the end (after a discussion 23208 with Patrick and Paul). 23209 23210 [configure.ac] Fixed two problems with --with-gmp-build: 23211 * "grep -w" isn't POSIX (an error shouldn't matter with recent GMP 23212 versions, as CFLAGS and CC would then be retrieved from gmp.h). 23213 * "sed" was used instead of "$SED". 23214 232152010-12-07 Vincent Lefèvre <vincent@vinc17.net> 23216 23217 [INSTALL] Added a section "If 'gmp.h' and 'libgmp' do not match". 23218 23219 [configure.ac] Improved warning message in case of unmatched 'gmp.h' 23220 and 'libgmp'. 23221 23222 [INSTALL] Update concerning "configure". 23223 232242010-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23225 23226 [NEWS] fixed news for 3.0.0 23227 232282010-12-03 Vincent Lefèvre <vincent@vinc17.net> 23229 23230 [tests/tversion.c] Now fail if the versions of gmp.h and libgmp do not 23231 match (error message improved); previously, the warning could remain 23232 unnoticed, in particular with automatic installations. 23233 232342010-11-30 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 23235 23236 Added metaMPFR in the tools directory of MPFR. 23237 232382010-11-29 Vincent Lefèvre <vincent@vinc17.net> 23239 23240 [src/mpfr.h] Defined MPFR_DEPRECATED to mark MPFR functions, types 23241 or variables as deprecated. 23242 232432010-11-25 Vincent Lefèvre <vincent@vinc17.net> 23244 23245 [tests/tui_pow.c] Updated a comment. 23246 232472010-11-23 Vincent Lefèvre <vincent@vinc17.net> 23248 23249 [tools/mpfrlint] Support BSD sed. 23250 232512010-11-19 Vincent Lefèvre <vincent@vinc17.net> 23252 23253 [tools/mpfrlint] Detect the use of __mpfr_struct structure members 23254 in .c files. 23255 23256 [src/min_prec.c] Replaced x->_mpfr_d by MPFR_MANT(x). 23257 232582010-11-18 Vincent Lefèvre <vincent@vinc17.net> 23259 23260 [src/mpfr-impl.h] Commented out the declaration of mpfr_round_raw_3 23261 (since this function is no longer defined). 23262 23263 [src/min_prec.c] Major simplification of mpfr_min_prec by using 23264 mpn_scan1 (suggestion by Andreas Enge). 23265 232662010-11-15 Vincent Lefèvre <vincent@vinc17.net> 23267 23268 [src/mpfr-impl.h] Added a comment about mpn_sqr_n. 23269 232702010-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23271 23272 [algorithms.tex] replaced reference to Graillat05 by earlier one (Higham02) 23273 232742010-11-12 Vincent Lefèvre <vincent@vinc17.net> 23275 23276 [tools/nightly-test] Added a comment about the use of -pedantic-errors. 23277 232782010-11-10 Vincent Lefèvre <vincent@vinc17.net> 23279 23280 [src/sub1.c] Minor simplification. 23281 23282 [tests/tpow.c] Avoid warnings if mpfr_exp_t < long. 23283 232842010-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23285 23286 [mul.c] fixed bug introduced in revision 7183, and reported by Brian Gladman 23287 on Windows, where mpfr_exp_t has 32 bits and mp_limb_t has 64 bits 23288 232892010-11-09 Vincent Lefèvre <vincent@vinc17.net> 23290 23291 [src/mpfr.h] Use only mpfr_* types in __MPFR_EXP_* macro definitions 23292 (should have been done in r7236). 23293 23294 [src/mpfr.h] Changed a "void" into a "mpfr_void" in a macro definition 23295 (should have been done in r7236). 23296 23297 [tests/tset_si.c] Added testcase for problem fixed in r7236. 23298 232992010-11-08 Vincent Lefèvre <vincent@vinc17.net> 23300 23301 [src/mpfr.h] Removed some useless casts that where added in r7121 and 23302 r7236 (such casts prevented the compiler from emitting diagnostics in 23303 incorrect calls). 23304 23305 [tests/Makefile.am] Added a comment (warning about LOADLIBES). 23306 233072010-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23308 23309 [taway.c] reduced time of the test 23310 233112010-10-25 Vincent Lefèvre <vincent@vinc17.net> 23312 23313 Mentioned --enable-gmp-internals in INSTALL and NEWS. 23314 233152010-10-24 Vincent Lefèvre <vincent@vinc17.net> 23316 23317 [tests/taway.c] Added a FIXME (test is too long on old machines). 23318 23319 [acinclude.m4] Corrected comment for PowerPC. 23320 233212010-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23322 23323 added tuning parameters for HPPA (on HP-UX machine kindly provided by David 23324 Kirkby) 23325 233262010-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23327 23328 [powerpc32/mparam.h] added more info on processor and operating system used 23329 23330 needed stuff to use src/powerpc32/mparam.h file 23331 (note that long double is IEEE double on PowerPC32) 23332 23333 [powerpc32/mparam.h] param file for powerpc32 (made on PowerPC 604 under AIX) 23334 233352010-10-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23336 23337 [tuneup.c] added cast from time_t to long, after warning under HP-UX: 23338 tuneup.c:1131: warning: format '%ld' expects type 'long int', but argument 3 has type 'time_t' 23339 tuneup.c:1133: warning: format '%ld' expects type 'long int', but argument 2 has type 'time_t' 23340 (I don't know if it is because time_t is unsigned, or has a different width) 23341 233422010-10-22 Vincent Lefèvre <vincent@vinc17.net> 23343 23344 [src/mpfr.h] Added a space. 23345 23346 [src/mpfr.h] Avoid some problems with macro expansion if the user 23347 defines macros with the same name as keywords. 23348 [doc/mpfr.texi] Document the use of macros. 23349 233502010-10-22 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 23351 23352 Included the new /arch/mparam.h files into the dist. 23353 233542010-10-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 23355 23356 Cosmetic change: the constant MPFR_TUNE_CASE is now defined in mparam_h.in. 23357 Hence the files src/some-architecture/mparam.h are now simply obtained by 23358 performing 'make tune' on some architecture and copying the resulting 23359 src/mparam.h to src/some-architecture/mparam.h. 23360 23361 Typo. 23362 23363 Up-to-date thresholds. 23364 233652010-10-20 Vincent Lefèvre <vincent@vinc17.net> 23366 23367 [tests/tsub.c] mp_prec_t -> mpfr_prec_t 23368 23369 [src/sub1.c] Removed trailing spaces. 23370 233712010-10-19 Vincent Lefèvre <vincent@vinc17.net> 23372 23373 [tests/*.c] Support the case where mpfr_exp_t is not a long int 23374 (but with such a future extension, one should probably provide 23375 a MPFR_PRIexp macro, similar to what <inttypes.h> does). 23376 23377 [tests/texceptions.c] Added casts, in case mpfr_exp_t is not a long int. 23378 233792010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23380 23381 [tset_ld.c] replaced hexadecimal long double constants by decimal constants 23382 233832010-10-19 Vincent Lefèvre <vincent@vinc17.net> 23384 23385 [tests/tset_ld.c] Added a FIXME for r7222 change. 23386 233872010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23388 23389 [set_ld.c] fixed bug #11300 on bug tracker 23390 [tset_ld.c] added corresponding tests 23391 23392 [algorithms.tex] modified proof of mpfr_sub in accordance with source code 23393 233942010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23395 23396 this is a tree of all possible cases that can happen for rounding in mpfr_sub 23397 (file sub1.c) for rounding to nearest. 23398 23399 The nodes at depth 1 of the tree correspond to the 3 possible cases before 23400 rounding: (1) sh=0, (2) sh>0 and the low sh bits are 1/2 ulp, (3) sh>0 and 23401 the low sh bits are 0. 23402 23403 The nodes at depth 2 represent the possible subcases for k=0 in the rounding 23404 loop. 23405 23406 The nodes at depth 3 represent the possible subcases for k=1 in the rounding 23407 loop. 23408 234092010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23410 23411 [src/sub1.c] fixed another remaining issue in case 1d1 23412 (case sh=0, i.e., the result uses a full number of limbs, 23413 the first neglected limbs of b and c match, 23414 and for the next limbs, low(b) > low(c)). 23415 This case was incorrectly rounded up (add_one_ulp). 23416 [tests/tsub.c] added more test cases 23417 23418 [tgmpop.c] in case of error, print mpz_t in decimal instead of binary 23419 23420 [tuneup.c] increase maximal number of calls to speed_measure from 5 to 30 23421 (seems to solve problems on gcc15) 23422 234232010-10-18 Vincent Lefèvre <vincent@vinc17.net> 23424 23425 [tests/tcan_round.c] Removed an incorrect cast, fixing a bug (in the 23426 test) that was producing a failure for GMP_CHECK_RANDOMIZE=1287710095 23427 on 64-bit machines (visible since mpfr_prec_t is now signed). 23428 23429 [src/sub1.c] Removed trailing whitespace. 23430 234312010-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23432 23433 [sub1.c] previous fix was not incorrect (but strangely our tests cases did 23434 not exhibit that) 23435 [tfma.c] added more test cases from Jakub Jelinek 23436 23437 [sub1.c] fixed bug found by Jakub Jelinek (#11301 on tracker) 23438 234392010-10-18 Vincent Lefèvre <vincent@vinc17.net> 23440 23441 [doc/mpfr.texi] Updated the month. 23442 23443 [tests/tsub.c] Fixed inex test in bug20101017. 23444 234452010-10-18 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 23446 23447 Mention the warning message displayed by gcc when the ABI of gcc and MPFR 23448 differ. 23449 23450 Note: the message does not automatically imply the problem; however, if the 23451 message appears, the ABI somehow differ, so it is worth mentioning it. 23452 Users might look for the message in INSTALL in order to see if their problem is 23453 mentioned. 23454 234552010-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23456 23457 [INSTALL] added "Notes about ABI" section 23458 234592010-10-18 Vincent Lefèvre <vincent@vinc17.net> 23460 23461 [tests/tsub.c] Updated comment of bug20101017. 23462 23463 [tests/tsub.c] Added testcase for bug found by Jakub Jelinek 23464 (bug 11301 on INRIAGforge). 23465 234662010-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23467 23468 [tuneup.c] print size when speed_measure fails 23469 234702010-10-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23471 23472 [mpfr.texi] added that the 'N' mode rounds ties to even in the mpfr*printf 23473 functions 23474 234752010-10-15 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 23476 23477 Reorganized mparam_h.in in separate files. 23478 Added mpfr_buildopt_tune_case function. 23479 234802010-10-14 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 23481 23482 Modified the number of iterations in the loop of mpfr_speed_measure. 23483 234842010-10-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23485 23486 [tuneup.c] new function mpfr_speed_measure, which calls speed_measure() several 23487 times (currently 30) until there is no failure. 23488 In case all 30 calls fail, give some hints to the user. 23489 234902010-10-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23491 23492 [tuneup.c] try again when speed_measure returns -1.0 (i.e. fails) 23493 also check return value of speed_measure in all cases 23494 (was not done for mulhigh, sqrhigh and divhigh, reported 23495 by Sylvain Chevillard) 23496 234972010-10-12 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 23498 23499 Small indication explaining what is the negative threshold for Ai. 23500 235012010-10-10 Vincent Lefèvre <vincent@vinc17.net> 23502 23503 [src/mpfr-impl.h] Added MPFR_UEXP macro to check (in debug mode) that 23504 a value is nonnegative before a cast to mpfr_uexp_t. 23505 [src/add1.c] Use the MPFR_UEXP macro to make sure that the avoided 23506 warning doesn't hide a real bug. 23507 235082010-10-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23509 23510 avoid several compiler warnings with g++ 23511 23512 [nightly-test] added -Wno-sign-compare for g++, to avoid spurious warnings 23513 23514 [nightly-test] do not use -Wmissing-prototypes for g++ 23515 23516 [add1.c] fixed compiler warning (from g++) 23517 235182010-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23519 23520 [src/mulders.c] fixed comment 23521 235222010-10-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23523 23524 [sqrt.c,mulders.c] added missing cast (detected by nightly builds with g++) 23525 235262010-10-01 Vincent Lefèvre <vincent@vinc17.net> 23527 23528 [src/mulders.c] Untabified. 23529 235302010-09-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23531 23532 [src/mulders.c] fixed comments about error analysis in short product, 23533 and improved short division code 23534 235352010-09-30 Vincent Lefèvre <vincent@vinc17.net> 23536 23537 Removed trailing spaces and untabified several files. 23538 23539 [src/mul.c] Added comments concerning the latest changes about mulhigh. 23540 235412010-09-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23542 23543 [src/mulders.c] removed leftover debug stuff 23544 235452010-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23546 23547 [src/mulders.c] added new function mpfr_divhigh_n() for short division 23548 (not used yet), fixed comments and added error analysis 23549 in mpfr_mulhigh_n() and mpfr_sqrhigh_n() 23550 [src/sqrt.c] fixed ill-placed MPFR_TMP_MARK 23551 [src/mparam_h.in] added default MPFR_DIVHIGH_TAB for mpfr_divhigh_n() 23552 [src/round_p.c] typo 23553 [src/mpfr-impl.h] added prototype for mpfr_divhigh_n 23554 [src/mul.c] added comment, simplified code 23555 [tune/tuneup.c] added tuning for mpfr_divhigh_n(), increased MAX_STEPS to get 23556 a better tuning (will take longer), set tolerance to 1.0 23557 23558 added new option --enable-gmp-internals to use GMP undocumented function 23559 (at user's own risk). So far only mpn_rootrem is used in mpfr_sqrt. 23560 23561 [doc/README.dev] added comment about mpn_rootrem 23562 235632010-09-28 Vincent Lefèvre <vincent@vinc17.net> 23564 23565 [configure.ac] Added a FIXME note about incorrect use of an internal 23566 GMP symbol (__gmpn_rootrem). 23567 235682010-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23569 23570 [src/sqrt.c] followup to previous commit: only compute an extra limb of the 23571 square root for rounding to nearest (for directed rounding, it 23572 suffices to know if the remainder is zero or not) 23573 23574 [src/sqrt.c] now uses mpn_rootrem (if available) instead of mpn_sqrtrem since 23575 mpn_rootrem is faster. Also refactored the code: now compute one 23576 more limb of the square root when the target precision is a 23577 multiple of GMP_NUMB_LIMB. This greatly simplifies the code. 23578 23579 [src/sqrt.c] simplified computation of sticky bit 23580 235812010-09-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23582 23583 [mulders.c] fixed typo 23584 235852010-09-27 Vincent Lefèvre <vincent@vinc17.net> 23586 23587 [src/mulders.c] Replaced MPFR_ASSERTD with constant expression 23588 by MPFR_ASSERTN. 23589 23590 [tools/mpfrlint] Added a test: 23591 Constant checking should use MPFR_ASSERTN, not MPFR_ASSERTD. 23592 235932010-09-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23594 23595 [mulders.c] modified mpfr_sqrhigh_n threshold so that it is > n/2 23596 235972010-09-27 Vincent Lefèvre <vincent@vinc17.net> 23598 23599 [acinclude.m4] Added a FIXME concerning autoconf 2.68. 23600 236012010-09-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23602 23603 [mulders.c] use mpn_lshift instead of mpn_add_n, and improved the default 23604 Mulders cutoff k beyond 1024 limbs (extrapolated from the cutoff 23605 k for n=1023 on Core 2, and checked experimentally it is faster) 23606 236072010-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23608 23609 [tuneup.c] changed lower bound for exp_2 threshold from MPFR_PREC_MIN (2) to 23610 GMP_NUMB_BITS. Seems to be better (since for p=2 the 2nd routine 23611 was sometimes already faster). 23612 23613 [mul.c] another changes for Mulders' algorithm in case of a square 23614 236152010-09-24 Vincent Lefèvre <vincent@vinc17.net> 23616 23617 [src/mul.c] Change in r7166 was incomplete. Fixed suspicious code. 23618 236192010-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23620 23621 [mparam_h.in] updated for 64-bit Core2 23622 23623 now use Mulders' algorithm also for mpfr_sqr, provides nice speed improvement 23624 in all functions that perform squarings 23625 236262010-09-21 Vincent Lefèvre <vincent@vinc17.net> 23627 23628 [doc/mpfr.texi] API compatibility section: noted that mpfr_urandom 23629 and mpfr_urandomb changed for MPFR 3.1. 23630 236312010-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23632 23633 [INSTALL] update about "make tune" 23634 236352010-09-21 Vincent Lefèvre <vincent@vinc17.net> 23636 23637 [doc] Updated FAQ.html with update-faq. 23638 236392010-09-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 23640 23641 Indicated the location of README.dev. 23642 236432010-09-19 Vincent Lefèvre <vincent@vinc17.net> 23644 23645 [NEWS] Minor update. 23646 236472010-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23648 23649 [NEWS] inform the users that mpfr_add_one_ulp and mpfr_sub_one_ulp will be 23650 removed 23651 236522010-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23653 23654 [TODO] added efficiency item 23655 236562010-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23657 23658 replaced calls to mpfr_printf by calls to mpfr_dump 23659 (mpfr_printf might not be defined) 23660 23661 [NEWS,doc/mpfr.texi] updated: the GMP random functions do not depend on the 23662 computer word size 23663 236642010-09-15 Vincent Lefèvre <vincent@vinc17.net> 23665 23666 [tools/mpfrlint] Check for mpfr_printf-like functions in the tests. 23667 23668 [doc/mpfr.texi] Updated the month. 23669 236702010-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23671 23672 [doc/mpfr.texi] added notes for mpfr_urandom and mpfr_urandomb 23673 23674 [Makefile.am] updated LOADLIBES with reorganization of the sources 23675 23676 [algorithms.tex] added sections for pow_ui and root 23677 23678 [src/urandom.c] now mpfr_urandom also returns identical values on 32-bit and 23679 64-bit machines 23680 [tests/turandom.c] modified corresponding test 23681 23682 replaced mpfr_printf in tests by calls to mpfr_out_str 23683 236842010-09-15 Vincent Lefèvre <vincent@vinc17.net> 23685 23686 [doc/README.dev] Updated the paragraph added in r7137. 23687 23688 [doc/README.dev] Added a paragraph about the use of system-dependent 23689 functions in the test suite. 23690 23691 Some minor corrections in comments. 23692 23693 [src/printf.c] Typo in a comment. 23694 23695 [src/printf.c] Slight modification of a comment. 23696 236972010-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23698 23699 [urandomb.c] modified to leave the GMP random generator in the same state, 23700 independent of GMP_NUMB_BITS 23701 [trandom.c] test of the above 23702 [urandom.c] added FIXME's 23703 [turandom.c] check we leave the GMP random generator in the same state, 23704 independent of GMP_NUMB_BITS. Currently this fails on 64-bit 23705 computers. 23706 23707 [urandomb.c] added comment + slight change 23708 237092010-09-01 Vincent Lefèvre <vincent@vinc17.net> 23710 23711 [src/mpfr.h] Added casts to improve robustness in case of undefined 23712 behavior and compiler extensions based on UB (in particular -fwrapv). 23713 MPFR doesn't use such extensions, but these macros will be used by 23714 3rd-party code, where such extensions may be required. 23715 23716 [src/mpfr.h] Updated a comment concerning -Wconversion. 23717 23718 [src/mpfr.h] Added casts to unsigned long in mpfr_cmp_si and mpfr_set_si 23719 macros for GCC, in order to avoid warnings in programs that use MPFR and 23720 are compiled with -Wconversion (suggestion by Andreas Enge); such casts 23721 are OK since if X is a constant expression, then (unsigned long) X is 23722 also a constant expression, so that the optimizations still work. 23723 Reformatted these macros. 23724 23725 [src/mpfr.h] Fixed bug in the mpfr_cmp_ui macro for GCC (also used 23726 by mpfr_cmp_si), when the evaluation of the first argument yields 23727 side effects and the second argument is a constant expression with 23728 the value 0. 23729 23730 [tests/tcmp_ui.c] Added side-effect tests similar to those in tset_si.c, 23731 showing a bug in the mpfr_cmp_ui and mpfr_cmp_si macros. 23732 23733 [tests/tcmp_ui.c] Check mpfr_cmp_ui and mpfr_cmp_si macros against 23734 side effects in the arguments. 23735 23736 [src/mpfr.h] Added a comment about the macros that use 23737 __builtin_constant_p. 23738 237392010-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23740 23741 [tsqrt.c] improved comment, and added test sqrt(+0) == +0 23742 237432010-08-29 Vincent Lefèvre <vincent@vinc17.net> 23744 23745 [tests/tsqrt.c] Renamed check_nan() to check_singular(). 23746 23747 [tests/tsqrt.c] Check that sqrt(-0) has a negative sign. 23748 237492010-08-26 Vincent Lefèvre <vincent@vinc17.net> 23750 23751 [INSTALL] Replaced "patches" by "allpatches". 23752 237532010-08-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 23754 23755 [configure.ac] fixed typo 23756 237572010-08-23 Vincent Lefèvre <vincent@vinc17.net> 23758 23759 [src/gmp_op.c] Extend the exponent range in mpfr_cmp_q and mpfr_cmp_f. 23760 23761 [src/gmp_op.c] In mpfr_add_q / mpfr_sub_q, check with MPFR_ASSERTN 23762 that an internal overflow/underflow doesn't occur. In theory, such 23763 an exception is possible, but only if q has a huge numerator or 23764 denominator. This is not supported (note: other problems may occur 23765 first, such as insufficient memory). 23766 23767 [tests/tgmpop.c] Added overflow tests for mpfr_add_q / mpfr_sub_q. 23768 23769 [tests/{mpfr-test.h,tests.c}] Added flags_out function to output flags. 23770 23771 [src/gmp_op.c] Extend the exponent range in mpfr_add_q / mpfr_sub_q 23772 (overflow/underflow exceptions are not supported yet). 23773 [tests/tgmpop.c] Added corresponding testcases. 23774 237752010-08-19 Vincent Lefèvre <vincent@vinc17.net> 23776 23777 [src/gmp_op.c] Fixed the Inf +/- Inf cases for mpfr_add_q / mpfr_sub_q. 23778 [tests/tgmpop.c] Added Inf +/- Inf tests. 23779 237802010-08-19 Philippe Théveny <philippe.theveny@laposte.net> 23781 23782 [tests/tgmpop.c] Fix rounding mode in overflow tests 23783 237842010-08-19 Vincent Lefèvre <vincent@vinc17.net> 23785 23786 [src/gmp_op.c] The function mpfr_cmp_z could fail in a reduced 23787 exponent range. 23788 [tests/tgmpop.c] Added a corresponding testcase. 23789 23790 [src/gmp_op.c] The functions mpfr_mul_z, mpfr_div_z, mpfr_add_z and 23791 mpfr_sub_z could fail in a reduced exponent range. Fixed. 23792 [tests/tgmpop.c] Added corresponding testcase. 23793 237942010-08-18 Vincent Lefèvre <vincent@vinc17.net> 23795 23796 [tests/tgmpop.c] Disabled buggy tests. 23797 23798 [src/gmp_op.c] Fixed the intermediate overflow case in mpfr_muldiv_z 23799 (for mpfr_mul_q and mpfr_div_q). 23800 23801 [src/gmp_op.c] Added function mpfr_muldiv_z (currently static -- should 23802 it be in the API?) that computes y = RND(x*n/d), where n and d are mpz 23803 integers. Changed mpfr_mul_q and mpfr_div_q to use this function. 23804 Note: the code of the general case is currently the same as the old 23805 mpfr_mul_q/mpfr_div_q code, thus needs to be fixed. 23806 23807 [tests/tgmpop.c] Replaced GMP_RNDN by MPFR_RNDN. 23808 23809 [tests/tgmpop.c] Added testcase for mpfr_mul_q/mpfr_div_q bug noted 23810 in src/gmp_op.c (due to intermediate overflow). 23811 238122010-08-17 Vincent Lefèvre <vincent@vinc17.net> 23813 23814 [src/logging.c] Added a comment about register_printf_function. 23815 23816 Added tools/ck-version-info Perl script with the same license as 23817 Makefile.am, to check consistency concerning -version-info and 23818 that the -version-info value is up-to-date. 23819 Updated Makefile.am: 23820 * In dist-hook, replaced complex sh code by a call to ck-version-info. 23821 * Distribute ck-version-info (EXTRA_DIST). 23822 23823 Updated svn:ignore properties. 23824 23825 [Makefile.am] Put tools/get_patches.sh back to EXTRA_DIST. 23826 23827 [src/Makefile.am] Fixed -version-info (I forgot to increment CURRENT). 23828 238292010-08-17 Vincent Lefèvre <vincent@vinc17.net> 23830 23831 Source reorganization. In short: 23832 * Added directories and moved related files into them: 23833 - src for the MPFR source files (to build the library). 23834 - doc for documentation files (except INSTALL, README...). 23835 - tools for various tools (scripts) and mbench. 23836 - tune for tuneup-related source files. 23837 - other for other source files (not distributed in tarballs). 23838 Existing directories: 23839 - tests for the source files of the test suite (make check). 23840 - examples for examples. 23841 - m4 for m4 files. 23842 * Renamed configure.in to configure.ac. 23843 * Added/updated Makefile.am files where needed. 23844 * Updated acinclude.m4 and configure.ac (AC_CONFIG_FILES line). 23845 * Updated the documentation (INSTALL, README, doc/README.dev and 23846 doc/mpfr.texi). 23847 * Updated NEWS and TODO. 23848 * Updated the scripts now in tools. 23849 23850 The following script was used: 23851 23852 #!/usr/bin/env zsh 23853 svn mkdir doc other src tools tune 23854 svn mv ${${(M)$(sed -n '/libmpfr_la_SOURCES/,/[^\]$/p' \ 23855 Makefile.am):#*.[ch]}:#get_patches.c} mparam_h.in \ 23856 round_raw_generic.c jyn_asympt.c src 23857 svn mv mbench check_inits_clears coverage get_patches.sh mpfrlint \ 23858 nightly-test update-patchv update-version tools 23859 svn mv bidimensional_sample.c speed.c tuneup.c tune 23860 svn mv *.{c,h} other 23861 svn mv FAQ.html README.dev algorithm* faq.xsl fdl.texi mpfr.texi \ 23862 update-faq doc 23863 svn mv configure.in configure.ac 23864 svn cp Makefile.am src/Makefile.am 23865 svn rm replace_all 23866 [Modifying some files, see above] 23867 svn add doc/Makefile.am 23868 svn add tune/Makefile.am 23869 238702010-08-16 Vincent Lefèvre <vincent@vinc17.net> 23871 23872 [Makefile.am] Updated -version-info (the interface hasn't really been 23873 changed yet -- though the future bug fix / rewrite of mpfr_mul_q and 23874 mpfr_div_q could be seen as an addition -- but this eases maintenance 23875 and avoids -version-info conflict with the 3.0 branch). 23876 23877 [bidimensional_sample.c] Added copyright notice. 23878 23879 [ai.c] Prototype clean-up. 23880 238812010-08-16 Vincent Lefèvre <vincent@vinc17.net> 23882 23883 Avoid a compilation failure on OSF/1 (Tru64) 5.1 due to non-C99 23884 conformance though <inttypes.h> is available. In various source 23885 files and m4 files, use the following form only: 23886 23887 #if HAVE_INTTYPES_H 23888 # include <inttypes.h> 23889 #endif 23890 #if HAVE_STDINT_H 23891 # include <stdint.h> 23892 #endif 23893 23894 Updated README.dev to mention this form. 23895 238962010-08-13 Vincent Lefèvre <vincent@vinc17.net> 23897 23898 [tests] Avoid warning due to -Wunused-but-set-variable (from future 23899 GCC 4.6). Only let the one from tsubnormal.c because it's a TODO. 23900 * mpf_compat.h: use the variables, that are there for prototype 23901 checking. 23902 * tpow.c, tpow_z.c: test the ternary value. 23903 * tremquo.c: removed inex variables (the bug due to the MPFR value). 23904 * tset.c: test the ternary value. 23905 * tset_ld.c: removed the long double variable (it cannot be tested 23906 in a portable way and the bug was an assertion failure). 23907 * tzeta_ui.c: removed the inexact variable (not really useful here). 23908 23909 [get_f.c] Avoid warning due to -Wunused-but-set-variable (from 23910 future GCC 4.6). 23911 23912 [gamma.c] Avoid warning due to -Wunused-but-set-variable (from 23913 future GCC 4.6). 23914 23915 [gmp_op.c] Avoid warning due to -Wunused-but-set-variable (from 23916 future GCC 4.6). 23917 23918 [exp_2.c] No longer define qn and sizer, which are no longer used since 23919 r6919. This was detected by gcc-snapshot (4.6.0 prerelease) under Debian 23920 (-Wunused-but-set-variable). 23921 23922 [NEWS] Update. 23923 23924 [ieee_floats.h] Avoid breaking aliasing-rules when _GMP_IEEE_FLOATS is 23925 defined (e.g. with --with-gmp-build), by replacing a struct by a union 23926 like in r6381 for long double. 23927 23928 [configure.in] Removed useless slash. 23929 239302010-08-12 Vincent Lefèvre <vincent@vinc17.net> 23931 23932 [NEWS] Prepare for new version 3.1.0. 23933 23934 [README.dev] Removed obsolete paragraph about the old prepare script. 23935 23936 [update-version] Detect errors. 23937 23938 Updated FAQ.html with update-faq. 23939 23940 [faq.xsl] Do not copy XML comments. 23941 23942 Updated FAQ.html with update-faq. 23943 23944 [README.dev] INRIAGforge -> INRIAGForge. 23945 23946 [README] Update: 23947 * InriaGforge -> INRIAGForge (official typography). 23948 * Updated URL of the Subversion FAQ (now on apache.org). 23949 * README.dev provided via SVN only. 23950 * Removed the old note about the old CVS repository. 23951 239522010-08-11 Vincent Lefèvre <vincent@vinc17.net> 23953 23954 [gmp_op.c] mpfr_mul_q and mpfr_div_q are still buggy; added comment. 23955 23956 [tests/tgmpop.c] Added missing "static". 23957 239582010-08-11 Philippe Théveny <philippe.theveny@laposte.net> 23959 23960 gmp_op.c: Fix ternary value returned by mpfr_mul_q and mpfr_div_q in overflow cases. 23961 239622010-08-04 Vincent Lefèvre <vincent@vinc17.net> 23963 23964 README.dev: updated "To make a release" (test of FP division by 0). 23965 23966 Support implementations where the floating-point division by 0 fails. 23967 * acinclude.m4: added a test to check whether the FP division by 0 23968 fails, and define MPFR_ERRDIVZERO in such a case. 23969 * tests/tests.c: if MPFR_TEST_DIVBYZERO is defined, test whether 23970 there has been a floating-point division by 0 (FE_DIVBYZERO or 23971 FE_INVALID exception). 23972 * tests/tgeneric.c: if MPFR_ERRDIVZERO is defined, disable the 23973 huge and tiny cases. 23974 * tests/t*_{flt,d,ld}.c: if MPFR_ERRDIVZERO is defined, disable 23975 tests involving NaN and infinities. 23976 23977 [README.dev] Update about the compilers. 23978 23979 [README.dev] Mention clang. 23980 23981 [get_sj.c] Fixed bug found by John Regehr: 23982 https://gforge.inria.fr/tracker/index.php?func=detail&aid=10839&group_id=136&atid=619 23983 Note: the problem was an undefined behavior that could occur when 23984 sizeof(mp_limb_t) < sizeof(intmax_t) and |x| was small enough, 23985 because a right shift was >= the type width. However as the shifted 23986 value was 0, most platforms should not be affected by this bug. This 23987 problem was detected with clang -fcatch-undefined-ansic-behavior. 23988 23989 [tests/tget_sj.c] Added tests of 1 and -1. 23990 23991 [get_sj.c] Added assertions concerning 23992 https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=10839&group_id=136 23993 23994 [configure.in] When logging is enabled, remove the possible -pedantic 23995 from GMP's CFLAGS to avoid warnings about C conformance. 23996 23997 [mpfr-impl.h] Reverse-merged changeset r7042. The code was not 23998 incorrect: the warning is due to the -pedantic from GMP's CFLAGS. 23999 24000 [mpfr-impl.h] Correction to avoid GCC warnings 24001 warning: invalid storage class for function 'x_f' 24002 warning: invalid storage class for function '__mpfr_log_cleanup' 24003 when building MPFR with logging support. 24004 240052010-08-03 Vincent Lefèvre <vincent@vinc17.net> 24006 24007 [mpfrlint] Correction for the future MPFR source structure. 24008 24009 [mpfrlint] Execute check_inits_clears. 24010 24011 [check_inits_clears] Correction. 24012 240132010-08-02 Vincent Lefèvre <vincent@vinc17.net> 24014 24015 [Makefile.am] Moved ieee_floats.h from EXTRA_DIST to libmpfr_la_SOURCES. 24016 24017 [Makefile.am] Clean-up: removed gen_inverse.h from EXTRA_DIST because 24018 it is already in libmpfr_la_SOURCES. 24019 240202010-08-01 Vincent Lefèvre <vincent@vinc17.net> 24021 24022 [mparam_h.in] Removed the comment about the dependency bug. 24023 (svn merge -r7032:7031 mparam_h.in) 24024 24025 [Makefile.am] Added "BUILT_SOURCES = mparam.h", fixing bug 24026 https://gforge.inria.fr/tracker/index.php?func=detail&aid=10810&group_id=136&atid=619 24027 24028 [mparam_h.in] Added a comment concerning the bug in the mparam.h dependency rule: 24029 https://gforge.inria.fr/tracker/index.php?func=detail&aid=10810&group_id=136&atid=619 24030 24031 [mparam_h.in] Enable C mode for Emacs. 24032 24033 [mparam_h.in] Deleted trailing whitespace. 24034 24035 [mparam_h.in] Bug fix: added a newline at the end of the file. 24036 240372010-07-30 Vincent Lefèvre <vincent@vinc17.net> 24038 24039 Replaced 24040 Contributed by the Arenaire and Cacao projects 24041 by 24042 Contributed by the Arenaire and Caramel projects 24043 24044 [AUTHORS] Updated a sentence. 24045 24046 Added configure.lineno (generated by configure) to svn:ignore property. 24047 240482010-07-29 Vincent Lefèvre <vincent@vinc17.net> 24049 24050 [README.dev] For announces, changed mpfr into mpfr-announce. 24051 240522010-07-26 Vincent Lefèvre <vincent@vinc17.net> 24053 24054 [ai.c] Replaced mp_exp_t by mpfr_exp_t. 24055 240562010-07-25 Vincent Lefèvre <vincent@vinc17.net> 24057 24058 [ai.c] Fixed several bugs in mpfr_ai. 24059 240602010-07-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24061 24062 Updated bidimensional_sample to take into account the fact the mpfr_ai1 and mpfr_ai2 are now statically defined. 24063 24064 mpfr_ai1 and mpfr_ai2 are now declared static. Only mpfr_ai is global. 24065 24066 Forgot a declaration in the previous commit. 24067 240682010-07-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24069 24070 Added automatic tuning of mpfr_ai. 24071 24072 More precisely: 24073 * removed ai2.c: both implementations are now in the same file ai.c 24074 * added thresholds and automatic choice of the method to use in function of the thresholds. 24075 * added procedures for tuning functions like ai into tuneup.c 24076 * added a tuning procedure into tuneup.c 24077 240782010-07-19 Vincent Lefèvre <vincent@vinc17.net> 24079 24080 [tests/tget_flt.c] Fixed printf strings (missing backslash). 24081 240822010-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24083 24084 [tget_flt.c] completed previous commit 24085 24086 [tget_flt.c] print more information in case a test fails 24087 240882010-07-09 Vincent Lefèvre <vincent@vinc17.net> 24089 24090 [gamma.c] Added an assert concerning the mpfr_exp_t size. 24091 24092 [tests/tgamma.c] Use mpfr_set_str instead of mpfr_set_d. 24093 24094 [exp_2.c] Untabified. 24095 240962010-07-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24097 24098 [gamma.c] fixed bug reported on MPFR list: 24099 https://sympa.inria.fr/sympa/arc/mpfr/2010-07/msg00001.html 24100 In the underflow detection: 24101 * we took log instead of log2 24102 * at the end, we added the wrong terms 24103 241042010-07-01 Vincent Lefèvre <vincent@vinc17.net> 24105 24106 [mpfr-impl.h] Added a comment concerning the 'noreturn' property. 24107 241082010-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24109 24110 [exp_2.c] added 3 more bits to initial working precision. On a sample of 20247 24111 tests by Sylvain Chevillard with precisions in [50, 100], the number 24112 of Ziv's failures decreased from 1184 to 144, which is less than 1% 24113 (to reduce to zero, we would have to increase the number of extra 24114 bits from 8 to 17). 24115 241162010-06-28 Vincent Lefèvre <vincent@vinc17.net> 24117 24118 [round_prec.c] Applied a patch from Patrick Pélissier (with 24119 slightly modified comments) to make mpfr_prec_round compatible 24120 with non-mpfr_init allocation methods when no realloc is needed. 24121 241222010-06-25 Vincent Lefèvre <vincent@vinc17.net> 24123 24124 [acinclude.m4] Use AC_FUNC_ALLOCA to have HAVE_ALLOCA_H defined 24125 when available. This problem was introduced when AC_FUNC_ALLOCA 24126 was removed from configure.in in r6765. Note: building MPFR with 24127 --with-gmp-build is not affected as GMP's config.h is used. 24128 24129 [mpfr-gmp.h] Reverted incorrect changeset r6987 (see code about alloca). 24130 241312010-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24132 24133 [mpfr-gmp.h] include alloca.h 24134 24135 [mpfr.texi] added comment about config.log 24136 241372010-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24138 24139 [exp_2.c] fixed problem reported by Sylvain Chevillard for large x, where the 24140 cancelled bits were counted twice 24141 241422010-06-24 Vincent Lefèvre <vincent@vinc17.net> 24143 24144 [tests/tfprintf.c] Cosmetic improvement suggested by Denis Excoffier. 24145 241462010-06-23 Vincent Lefèvre <vincent@vinc17.net> 24147 24148 [README.dev] Minor change to match a filename on the website. 24149 24150 [tests/tout_str.c] Fixed bug introduced in r6976: changed size_t into 24151 unsigned int for printf (the size of unsigned int is sufficient here). 24152 241532010-06-22 Vincent Lefèvre <vincent@vinc17.net> 24154 24155 [out_str.c] Handle the output errors. 24156 24157 [out_str.c] Handle output error in the special cases of mpfr_out_str 24158 (and use MPFR_IS_SINGULAR like in the other functions). 24159 241602010-06-22 Philippe Théveny <philippe.theveny@laposte.net> 24161 24162 Fix wrong return value of mpfr_out_str on special values. 24163 241642010-06-22 Vincent Lefèvre <vincent@vinc17.net> 24165 24166 Updated version to 3.1.0-dev. 24167 24168 [README.dev] Added a paragraph about the precision, rounding mode and 24169 exponent types. 24170 24171 In mpfrlint, detect the use of mp_exp_t and mp_prec_t. 24172 Fixed the files that were generating warnings. 24173 241742010-06-22 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24175 24176 I forgot to replace one occurrence of isqrt. 24177 24178 Use of __gmpfr_isqrt instead of my own isqrt wrapper. 24179 24180 Added a tool for nicely displaying which method is the best in function of x 24181 and prec when several method can be used for evaluating a given function f in x 24182 at precision prec. 24183 241842010-06-21 Vincent Lefèvre <vincent@vinc17.net> 24185 24186 [Makefile.am] Fixed dist-hook for -dev versions (I assumed that || 24187 and && were right associative, while they are left associative). 24188 Thanks to Laurent Rineau for noticing this problem. 24189 241902010-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24191 24192 [exp_2.c] fixed inefficiency for large x: the initial precision was too small, 24193 which had the effect that the first Ziv iteration did fail with 24194 non-negligible probability (problem reported by Sylvain Chevillard). 24195 Also in case of 2 iterations or more the K variable was corrupted. 24196 Note (2012-03-03): huge inefficiency has been noticed when evaluating 24197 mpfr_exp on an argument close to log(2^n) in RNDU: 24198 https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00000.html 24199 One has an obvious hard-to-round case, meaning that several iterations 24200 are needed and that K is corrupted. This changeset fixes this bug. 24201 242022010-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24203 24204 [INSTALL] added note about problem with MSVC runtime (seems to be fixed) 24205 24206 [Makefile] alternate patch to r6959 from Patrick Pelissier 24207 24208 [INSTALL] comments from Vincent Lefevre 24209 24210 [mbench] fixes to make mbench work again (tested with GCC 4.4.3) 24211 24212 [INSTALL] updated notes on Windows (contributed by Brian Gladman) 24213 242142010-06-10 Vincent Lefèvre <vincent@vinc17.net> 24215 24216 [tests/Makefile.am] Reordered check_PROGRAMS. 24217 24218 [README.dev] Untabified. 24219 24220 [BUGS] Update. 24221 242222010-06-09 Vincent Lefèvre <vincent@vinc17.net> 24223 24224 [INSTALL] Added a note on Mac OS X; thanks to FX Coudert and Fumihiro 24225 Chiba: https://sympa.inria.fr/sympa/arc/mpfr/2010-06/msg00011.html 24226 242272010-06-08 Vincent Lefèvre <vincent@vinc17.net> 24228 24229 [INSTALL] Update concerning CC/CFLAGS and the --with-gmp-build option. 24230 242312010-06-07 Vincent Lefèvre <vincent@vinc17.net> 24232 24233 [NEWS] Added an item about the --with-gmp-build configure option and 24234 the use of GMP's internal header files. 24235 242362010-06-06 Vincent Lefèvre <vincent@vinc17.net> 24237 24238 [exp_2.c] Reverted incorrect optimization patch r6922 (added a comment). 24239 There were failures on 32-bit machines. 24240 24241 [mpfr-impl.h] Added log messages for the MPFR_GROUP_* macros. 24242 24243 [mpfrlint] Detect incorrect use of MPFR_LOG_MSG. 24244 24245 [ai2.c] Fixed build failure with --enable-logging, due to incorrect 24246 MPFR_LOG_MSG usage (see README.dev). 24247 24248 README.dev: updated "To make a release". 24249 24250 [ai.c] Fixed build failure with --enable-logging, due to incorrect 24251 MPFR_LOG_MSG usage (see README.dev). 24252 242532010-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24254 24255 [exp_2.c] speed improvement using MPFR_GROUP_* (from Patrick Pelissier): 24256 Pass 69 24257 mpfr_add: 63 / 102.97 / 126 24258 mpfr_exp: 430 / 11861.26 / 46588 24259 Was before we removed MY_MPZ_INIT: 24260 Pass 50 24261 mpfr_add: 63 / 103.09 / 126 24262 mpfr_exp: 430 / 10911.86 / 44215 24263 242642010-06-04 Vincent Lefèvre <vincent@vinc17.net> 24265 24266 [exp_2.c] Removed useless and possibly incorrect cast 24267 (in case -q doesn't necessarily fit in an int). 24268 242692010-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24270 24271 [exp_2.c] got rid of MY_INIT_MPZ, small slowdown, but code should be more 24272 robust. Below are timings from Patrick Pelissier with mbench: 24273 mpz_init: 24274 Pass 78 24275 mpfr_add: 63 / 102.86 / 126 24276 mpfr_exp: 441 / 12067.81 / 47355 24277 24278 MY_MPZ_INIT 24279 Pass 50 24280 mpfr_add: 63 / 103.09 / 126 24281 mpfr_exp: 430 / 10911.86 / 44215 24282 24283 Prec=53 bits (core 2 duo 64 bits) 24284 242852010-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24286 24287 [exp_2.c] fixed problem reported by Sylvain Chevillard with following code 24288 and MPFR_EXP_2_THRESHOLD=36 (valgrind complains). 24289 It was due to the fact that GMP might allocate extra limbs, 24290 see https://gmplib.org/list-archives/gmp-devel/2010-June/001577.html. 24291 The fix is not optimal in the sense that GMP does not give a bound 24292 on the allocated memory, thus we can only guess. 24293 24294 #include "mpfr.h" 24295 int main(void) { 24296 mpfr_t x,w; 24297 24298 mpfr_init2(x, 37); 24299 mpfr_init2(w, 37); 24300 mpfr_set_str(x, "-1.000001100100100001111110110101010001p+20", 2, MPFR_RNDN); 24301 mpfr_exp (w, x, MPFR_RNDN); 24302 24303 mpfr_clear (w); 24304 mpfr_clear (x); 24305 24306 return 0; 24307 } 24308 243092010-06-03 Vincent Lefèvre <vincent@vinc17.net> 24310 24311 [acinclude.m4] Math library check: removed rule specific to HP-UX 24312 (only -lM was tested while this library may not be available; so, 24313 let's use the default rule as -lm works). 24314 24315 [mpfr.texi] Arenaire -> Arénaire. 24316 243172010-06-02 Vincent Lefèvre <vincent@vinc17.net> 24318 24319 [NEWS] 3.0 -> 3.0.0. 24320 24321 [NEWS] Added test coverage for MPFR 3.0.0. 24322 243232010-05-31 Vincent Lefèvre <vincent@vinc17.net> 24324 24325 [INSTALL] Added missing blank lines (consistency). 24326 24327 [tests/tset_z_exp.c] Fixed type in a printf. 24328 243292010-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24330 24331 [INSTALL] added instructions for "make tune" 24332 24333 [README.dev] completed missing instructions for "make tune" 24334 24335 [tset_z_exp.c] fixed two FIXME 24336 243372010-05-31 Vincent Lefèvre <vincent@vinc17.net> 24338 24339 [tests/tset_z_exp.c] Added 2 FIXME in the test. 24340 24341 [tests/tset_z_exp.c] Removed testcase bug20100531 (this was a bug in 24342 the test, which didn't detect overflow cases due to too large random 24343 exponent). 24344 24345 [tests/tset_z_exp.c] Added testcase bug20100531. 24346 24347 [mpfr.texi, NEWS] Update related to r6879: "Made defined the previously 24348 undefined cases of mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj, 24349 mpfr_get_z and mpfr_get_z_2exp. In such cases, the erange flag is set.". 24350 24351 [mpfr.texi] Corrected mpfr_atan2 range (added in r6831). 24352 243532010-05-28 Vincent Lefèvre <vincent@vinc17.net> 24354 24355 [mpfr.texi] Made an example fit on 80 columns for the info manual. 24356 24357 [mpfr.texi] Changed some @math into @var in the mpfr_fmod description 24358 (for consistency). 24359 24360 [mpfr.texi] Corrected a paragraph. 24361 24362 [mpfr.texi] Added an example to get the MPFR version (and at the same 24363 time, check whether MPFR is already installed). 24364 24365 Added examples/version.c (and updated Makefile.am). 24366 24367 [mpfr.texi] Correction (English usage). 24368 24369 [Makefile.am] Improved dist-hook rule. 24370 243712010-05-27 Philippe Théveny <philippe.theveny@laposte.net> 24372 24373 Fix typo. 24374 243752010-05-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24376 24377 [TODO] removed one item, added one 24378 24379 [mpfr.texi] removed FIXME (resolved: Philippe confirmed that gmp_printf does 24380 not work with mpf2mpfr.h) 24381 243822010-05-25 Vincent Lefèvre <vincent@vinc17.net> 24383 24384 Made defined the previously undefined cases of mpfr_get_si, mpfr_get_ui, 24385 mpfr_get_sj, mpfr_get_uj, mpfr_get_z and mpfr_get_z_2exp. In such cases, 24386 the erange flag is set. 24387 243882010-05-25 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24389 24390 * 80 columns. 24391 24392 do ... while(0) style for macros. 24393 243942010-05-25 Vincent Lefèvre <vincent@vinc17.net> 24395 24396 [NEWS] Correction. 24397 24398 [mpfr.texi] Minor changes. 24399 24400 [INSTALL] Reverted incorrect changeset r6870. 24401 24402 [mpfr.texi] Added a comment about non-ASCII characters. 24403 244042010-05-25 Philippe Théveny <philippe.theveny@laposte.net> 24405 24406 More explicit documentation on the use of specifiers in printf function. 24407 244082010-05-25 Vincent Lefèvre <vincent@vinc17.net> 24409 24410 [mpfr.texi] Encoding correction for ±. 24411 24412 [NEWS, mpfr.texi] mpfr_custom_get_mantissa was renamed to 24413 mpfr_custom_get_significand. 24414 24415 [tests/tstckintc.c] Changed mpfr_custom_get_mantissa into 24416 mpfr_custom_get_significand (but mpfr_custom_get_mantissa 24417 was still working thanks to the #define). 24418 24419 [mpfr.h, stack_interface.c] Changed mpfr_custom_get_mantissa into 24420 mpfr_custom_get_significand (r6862 was incomplete). 24421 24422 [mpfr.h] <stdint.h> support: also test _STDINT (for MS Visual Studio). 24423 Thanks to Brian Gladman for the information. 24424 24425 [buildopt.c] Missing #include "mpfr-impl.h" for cygwin builds. 24426 [mpfrlint] Detect such errors (mpfr-impl.h may be needed because it 24427 includes config.h when there is one). 24428 244292010-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24430 24431 [mpfr.texi] more changes after answers by Vincent to my questions 24432 244332010-05-24 Vincent Lefèvre <vincent@vinc17.net> 24434 24435 [NEWS] Reformat / fixed typography. 24436 24437 [sub1sp.c] Fixed a problem that appeared after mpfr_prec_t has been 24438 made signed. It was visible on PowerPC (tested on Linux 32 bits and 24439 on Mac OS X 32 & 64 bits), but could potentially affect any platform 24440 as a negative shift count was generated. As the faulty expressions 24441 were in a MPFR_ASSERTD, the failure could occur only when assertion 24442 checking had been enabled. 24443 244442010-05-22 Vincent Lefèvre <vincent@vinc17.net> 24445 24446 [README.dev] Removed trailing spaces. 24447 24448 [README.dev] Added information about intmax_t and corresponding macros. 24449 24450 Detect when the intmax_t type is available but INTMAX_MAX doesn't work 24451 (e.g. with gcc -ansi -pedantic-errors in 32-bit mode under GNU/Linux). 24452 New macros MPFR_UINTMAX_MAX, MPFR_INTMAX_MAX and MPFR_INTMAX_MIN are 24453 defined and used internally instead of UINTMAX_MAX, INTMAX_MAX and 24454 INTMAX_MIN. If these C99 macros work, then the MPFR_* macros use them, 24455 otherwise MPFR uses its own definitions. 24456 24457 mpfr_div_ui8 and mpfr_mul_ui5 didn't have to be exported. 24458 24459 [ai2.c] GNU style. 24460 24461 [ai2.c] Style correction (necessary for ansi2knr, if still useful). 24462 24463 [ai.c, ai2.c] Untabified / removed trailing spaces. 24464 24465 [ai.c] GNU style. 24466 24467 [mpfr.texi] Corrected the paragraph about whether MPFR is installed. 24468 24469 [mpfr.texi] Corrections and answers to PZ comments from r6831. 24470 The document encoding is now UTF-8. 24471 244722010-05-21 Vincent Lefèvre <vincent@vinc17.net> 24473 24474 [mpfr.texi] n-char-sequence was changed into n-char-sequence-opt 24475 in r6132, but I forgot to update all the occurrences. 24476 244772010-05-21 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24478 24479 * Removed double precision numbers. 24480 * Handle +0 and -0 the same way. 24481 * Use MPFR_GET_EXP in ai2.c 24482 244832010-05-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24484 24485 * Corrected a bug when x=0 (MPFR_GET_EXP requires to assert that x!=0). 24486 24487 Corrected some warnings. 24488 24489 Corrected an error that prevented the doc from compiling. 24490 244912010-05-20 Vincent Lefèvre <vincent@vinc17.net> 24492 24493 mpfr.texi: corrections. 24494 244952010-05-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24496 24497 [mpfr.texi] explain why mpfr_sum uses an array of pointers to mpfr_t 24498 24499 [mpfr.texi] changes after a complete reading of the documentation. 24500 There are some issues left that I don't know how to solve, 24501 they are marked with @c PZ in mpfr.texi. 24502 245032010-05-19 Vincent Lefèvre <vincent@vinc17.net> 24504 24505 [mpfr.texi, NEWS] Noted that the mpfr_ai implementation is incomplete 24506 and experimental. 24507 24508 [ai.c] Use MPFR_IS_SINGULAR. Added a FIXME comment for Ai(0). 24509 24510 Type corrections for C++ compilers (in particular, mpfr_rnd_t vs int). 24511 24512 [ai.c] Fixed possible problem in reduced exponent range. 24513 24514 Removed trailing spaces. 24515 245162010-05-19 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24517 24518 * Removed some warnings. 24519 * More conform to GNU coding standards. 24520 245212010-05-19 Vincent Lefèvre <vincent@vinc17.net> 24522 24523 Removed obsolete patch-aclocal-icc and updated README.dev (about 24524 "To make a release"). 24525 24526 [Makefile.am] Added a comment concerning -version-info and MPFR 3.0.x. 24527 24528 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 24529 24530 [mpfr.texi] Preliminary interfaces are no longer preliminary. 24531 24532 [mpfr.texi] API Compatibility: mention the detection of the availability 24533 of intmax_t with C++ compilers. 24534 24535 [mpfr.texi] signness -> signedness (thanks to Philippe). 24536 24537 [mpfr.texi] Missing @code. 24538 24539 [mpfr.texi] Corrected C terminology (table -> array). 24540 245412010-05-18 Vincent Lefèvre <vincent@vinc17.net> 24542 24543 [mpfr.texi, NEWS] Mention that mpfr_ai is a new function in MPFR 3.0. 24544 24545 Removed obsolete prepare script (autoreconf does the same thing). 24546 245472010-05-18 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24548 24549 * I added a new implementation of Airy Ai. This implementation uses Smith's 24550 algorithm. 24551 Currently, it is provided as a separate implementation mpfr_ai2. 24552 24553 * Please note that both mpfr_ai and mpfr_ai2 need to efficiently evaluate 24554 Gamma(1/3) and Gamma(2/3). This is provided by functions in the file 24555 gammaonethird.c 24556 24557 * There is no test file for mpfr_ai2 since it should quickly disappear behind 24558 a single implementation using the best of mpfr_ai and mpfr_ai2. 24559 However, if necessary, a test file can be obtained by copying tai.c and 24560 replacing mpfr_ai by mpfr_ai2 everywhere. 24561 24562 * I do not know if gammaonethird.c will remain like that in the future. Should 24563 we make this implementation available as a public MPFR function? In this case, 24564 I have to write a wrapper for providing a correctly rounded implementation. 24565 Moreover, it contains functions that could be interesting for the 24566 implementation of other functions (the functions mpfr_div_ui*). Maybe, it 24567 could be worth providing a file specially for this purpose. 24568 245692010-05-18 Vincent Lefèvre <vincent@vinc17.net> 24570 24571 [NEWS] Added release name. 24572 24573 [NEWS] Updated "Changes from versions 2.3.* to version 2.4.0" 24574 from MPFR 2.4.2. 24575 24576 [mpfr.texi] Completed Section 6.1 "Type and Macro Changes". 24577 24578 [mpfr.texi] Updated Section 6.1 "Type and Macro Changes". 24579 24580 [mpfr.texi] Missing space. 24581 24582 [mpfr.texi] Updated Section 6.1 "Type and Macro Changes". 24583 24584 [NEWS] A bit less ambiguous... 24585 24586 [NEWS] More details for mp_rnd_t/mpfr_rnd_t, like mp_prec_t/mpfr_prec_t. 24587 245882010-05-17 Vincent Lefèvre <vincent@vinc17.net> 24589 24590 Added "API Compatibility" section to the MPFR manual. 24591 TODO: Section 6.1 "Type and Macro Changes". 24592 24593 [NEWS] mpfr_strtofr now accepts bases from 37 to 62 (r5965). 24594 245952010-05-10 Vincent Lefèvre <vincent@vinc17.net> 24596 24597 INSTALL: updated section about MS Windows. 24598 24599 INSTALL: updated section about MS Windows. 24600 246012010-05-08 Vincent Lefèvre <vincent@vinc17.net> 24602 24603 [tests/tests.c] Fixed code when _MPFR_PREC_FORMAT != 3. 24604 246052010-05-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24606 24607 [tests/tests.c] fixed compiler warning (found by nightly tests) 24608 246092010-05-07 Vincent Lefèvre <vincent@vinc17.net> 24610 24611 New exponent type mpfr_exp_t for MPFR (replacing GMP's mp_exp_t). 24612 24613 [README.dev] Updated a paragraph concerning signed and unsigned types. 24614 24615 Changed the precision type mpfr_prec_t from an unsigned integer type 24616 into the corresponding signed integer type, in order to avoid problems 24617 due to the usual arithmetic conversions when mixing mpfr_prec_t and 24618 mp_exp_t in an expression. 24619 * NEWS: mentioned this change. 24620 * mpfr-impl.h: removed MPFR_INTPREC_MAX (which wasn't used) and updated 24621 the MPFR_UNSIGNED_MINUS_MODULO(S,A) macro, which assumed that A was 24622 unsigned; this macro now works even when A is signed. 24623 * mpfr.h: added mpfr_uprec_t; updated mpfr_prec_t and MPFR_PREC_MAX. 24624 * tests/tcheck.c: disabled a test on MPFR_PREC_MAX+1 with MPFR >= 3 24625 (this test doesn't work with a signed mpfr_prec_t and isn't needed). 24626 Note: all tests pass under GNU Linux x86 and x86_64. 24627 24628 [tests/tcheck.c] Forgot to remove a printf (added during testing). 24629 24630 [tests/tcheck.c] Support signed mpfr_prec_t (avoid integer overflow). 24631 24632 [tests/mpf_compat.h] Fixed prototype of function main. 24633 24634 [mpfr.h] Added a comment concerning the definition of MPFR_PREC_MAX. 24635 246362010-05-06 Vincent Lefèvre <vincent@vinc17.net> 24637 24638 print_rnd_mode.c: added an assertion so that we do not forget to update 24639 this file after a new rounding mode is added. 24640 246412010-05-03 Vincent Lefèvre <vincent@vinc17.net> 24642 24643 [mpfr.texi] Added a paragraph about multiple inclusions of mpfr.h and/or 24644 gmp.h header files. 24645 246462010-05-03 Philippe Théveny <philippe.theveny@laposte.net> 24647 24648 Update documentation for mpfr_print_rnd_mode. 24649 246502010-05-03 Vincent Lefèvre <vincent@vinc17.net> 24651 24652 To avoid breaking the ABI when faithful rounding gets implemented, added 24653 MPFR_RNDF to the mpfr_rnd_t enum type now, and removed MPFR_RND_MAX from 24654 the enumeration (it is now defined as a macro in mpfr-impl.h). 24655 24656 fits_* (signed version): corrections and optimizations. 24657 24658 [fits_uintmax.c, fits_u.h] Some casts could be incorrect in the case 24659 mp_exp_t > mpfr_prec_t. Set prec to the int type since in practice, 24660 prec will be small enough to fit in an int. The fact that prec is now 24661 signed allows us to remove a useless test (also note that prec should 24662 be computed at compile time, so that this should be at least as fast). 24663 24664 [fits_uintmax.c, fits_u.h] Comments: doesn't -> don't 24665 24666 mpfr.texi: updated the month. 24667 246682010-05-03 Philippe Théveny <philippe.theveny@laposte.net> 24669 24670 Add specifier 'Y' for the rounding away from zero mode in printf-like functions. 24671 246722010-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24673 24674 [mpfr.texi] removed obsolete mpfr_round_prec 24675 246762010-04-30 Vincent Lefèvre <vincent@vinc17.net> 24677 24678 [fits_intmax.c,fits_s.h] Added FIXME comments. 24679 24680 Optimized fits_u.h and made fits_uintmax.c like fits_u.h for the 24681 special numbers. 24682 24683 Optimized mpfr_fits_uintmax_p. 24684 24685 Changed mp_prec_t into mpfr_prec_t. 24686 246872010-04-19 Vincent Lefèvre <vincent@vinc17.net> 24688 24689 [configure.in] r6765 introduced non-POSIX syntax. Fixed. 24690 246912010-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24692 24693 [configure.in] check for GMP internal files only with --with-gmp-build 24694 246952010-04-12 Vincent Lefèvre <vincent@vinc17.net> 24696 24697 [NEWS] New function mpfr_regular_p (was added in r6417, 2009-09-14). 24698 246992010-04-07 Vincent Lefèvre <vincent@vinc17.net> 24700 24701 [mpfr-gmp.h] Fixed alloca prototype (bug detected by tcc 0.9.25 24702 under Linux/x86_64). 24703 247042010-03-24 Vincent Lefèvre <vincent@vinc17.net> 24705 24706 [mpfr.texi] Improved/corrected the documentation of functions 24707 mpfr_lgamma, mpfr_digamma, mpfr_j0/j1/jn, mpfr_y0/y1/yn, mpfr_agm, 24708 mpfr_hypot and mpfr_min_prec. 24709 24710 [mpfr.texi] Removed a "currently" that is no longer needed. 24711 24712 [mpfr.texi] Updated description of mpfr_atan2, now that IEEE 754-2008 24713 has been published and follows the same conventions as C99 for atan2. 24714 24715 [mpfr.texi] Updated description of mpfr_pow, now that IEEE 754-2008 24716 has been published and follows the same conventions as C99 for pow. 24717 (IEEE 754-2008 doesn't currently specify pow(±inf,non-zero), but 24718 I've suggested a correction for the errata page.) 24719 247202010-03-23 Vincent Lefèvre <vincent@vinc17.net> 24721 24722 [mpfr.texi] Improved documentation of mpfr_print_rnd_mode (from a 24723 suggestion by Chris Saunders). 24724 247252010-03-22 Vincent Lefèvre <vincent@vinc17.net> 24726 24727 [mpfr.texi] Various corrections and other improvements. 24728 24729 [mpfr.texi] Improved the documentation of mpfr_dim too. 24730 247312010-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24732 24733 [mpfr.texi] improved the documentation of mpfr_rec_sqrt and mpfr_cbrt 24734 (thanks Vincent) 24735 24736 [mpfr.texi] improved documentation of mpfr_sqrt and mpfr_sqrt_ui 24737 247382010-03-21 Vincent Lefèvre <vincent@vinc17.net> 24739 24740 [mpfr.h] Added a comment about integer overflows in macros. 24741 247422010-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24743 24744 [tai.c] enable first test of check_large, and reduced total time 24745 247462010-03-19 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24747 24748 Added a mention about the current limitation of mpfr_ai in mpfr.texi. 24749 24750 Removed check of ai.c for large arguments. I added in algorithms.tex a 24751 mention about the fact that mpfr_ai is currently not made for large 24752 arguments. 24753 24754 * Corrected problems regarding the GNU recommendations for formatting source code. 24755 247562010-03-18 Vincent Lefèvre <vincent@vinc17.net> 24757 24758 tests: added tai to the svn:ignore property. 24759 247602010-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24761 24762 [tai.c] reduce the maximal exponents in test_generic() 24763 also reduce the number of random tests to decrease the test time 24764 247652010-03-18 Vincent Lefèvre <vincent@vinc17.net> 24766 24767 README.dev: in the tests, use mpfr_equal_p rather than mpfr_cmp. 24768 247692010-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24770 24771 [tai.c] replace mpfr_cmp by mpfr_equal_p 24772 247732010-03-18 Vincent Lefèvre <vincent@vinc17.net> 24774 24775 tests/tset_z_exp.c untabified. 24776 24777 mpfr.texi: removed trailing whitespace. 24778 24779 mpfr.texi: updated the month. 24780 24781 Untabified AUTHORS (consistency). 24782 247832010-03-18 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24784 24785 * Corrected problems regarding the GNU recommendations for formatting source code. 24786 * Corrected the date of the copyright. 24787 247882010-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24789 24790 [tai.c] added test for large inputs 24791 24792 [AUTHORS] added Sylvain Chevillard 24793 247942010-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24795 24796 [mpfr.texi] added Sylvain as contributor 24797 247982010-03-17 Sylvain Chevillard <Sylvain.Chevillard@inria.fr> 24799 24800 * Added function mpfr_ai. The implementation is the most naive: it evaluates 24801 the series step by step until it can stop. 24802 A special strategy is used to detect possible problems when Ai(x) is very 24803 close to 0. 24804 24805 * Updated algorithms.tex with the technical description of the implementation 24806 of mpfr_ai. 24807 24808 * Added algorithm2e.sty and algorithm2e-compatibility.sty (necessary to 24809 compile algorithms.tex now). 24810 24811 * Updated mpfr.texi to let it know this new function. 24812 24813 * Added a basic test file for mpfr_ai. I will add other test cases later. 24814 24815 * Added a small HOWTO to README.dev about how to add a new test file for new 24816 functions. 24817 248182010-03-11 Vincent Lefèvre <vincent@vinc17.net> 24819 24820 GMP_RNDx -> MPFR_RNDx 24821 248222010-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24823 24824 [tstrtofr.c] added test for 1.23e, cf 24825 https://gmplib.org/list-archives/gmp-bugs/2010-March/001898.html 24826 248272010-03-11 Vincent Lefèvre <vincent@vinc17.net> 24828 24829 [tests/tsqrt.c] Add the test -1 <= x/sqrt(x^2) <= 1, which corresponds 24830 to -1 <= x/sqrt(x^2+y^2) <= 1 with y = 0. I don't think the test with 24831 random y is still necessary, though, since even a bad sqrt accuracy 24832 would not be detected. 24833 248342010-03-10 Vincent Lefèvre <vincent@vinc17.net> 24835 24836 [tests/tsqrt.c] Added a comment about the x/sqrt(x^2+y^2) test. 24837 248382010-03-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24839 24840 [tsqrt.c] fixed bug reported by Sam Rawlins 24841 (https://sympa.inria.fr/sympa/arc/mpfr/2010-03/msg00007.html) 24842 Note: this "bug" had no noticeable consequences; this can just be seen 24843 as an incomplete test. 24844 248452010-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24846 24847 [NEWS] added item 24848 248492010-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24850 24851 [acinclude.m4] now also recognize "IEEE double, little endian" long-double 24852 format (not tested, should happen on ARM) 24853 24854 [acinclude.m4] added recognition of "IEEE double big endian" long double format 24855 (tested on gcc40.fsffrance.org and gcc53, both PowerPC's) 24856 248572010-02-24 Vincent Lefèvre <vincent@vinc17.net> 24858 24859 [acinclude.m4] Added test for long double = double-double (GCC/PowerPC). 24860 This test cannot currently be reliable, so we just output a warning. 24861 248622010-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24863 24864 [NEWS] minor grammar fix 24865 24866 [NEWS] be more precise about API compatibility 24867 24868 [mpfr.h] added #define mpfr_get_z_exp mpfr_get_z_2exp for compatibility 24869 248702010-02-23 Vincent Lefèvre <vincent@vinc17.net> 24871 24872 tests: added tset_z_exp to the svn:ignore property. 24873 248742010-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24875 24876 changed mpfr_get_z_exp -> mpfr_get_z_2exp (old function) 24877 mpfr_set_z_exp -> mpfr_set_z_2exp (new function) 24878 24879 added new function mpfr_set_z_exp (companion to mpfr_get_z_exp) 24880 248812010-02-18 Vincent Lefèvre <vincent@vinc17.net> 24882 24883 * Added tests/tstdint.c to test the double inclusion of mpfr.h when only 24884 the second occurrence needs <stdint.h> (this can happen when one uses 24885 several libraries that use MPFR under different conditions). 24886 * Added tstdint to the svn:ignore property of "tests". 24887 * TODO: mentions that tstdint should be added to check_PROGRAMS in 24888 the tests/Makefile.am file once this is fixed. 24889 24890 mpfr.texi: updated Section "Internals". 24891 248922010-02-16 Vincent Lefèvre <vincent@vinc17.net> 24893 24894 mpfr.texi: updated the month. 24895 24896 mpfr.h: disable the INTMAX_C / UINTMAX_C test with C++ compilers as it 24897 doesn't work well in this case (e.g. possible failure with Boost); see 24898 https://sympa.inria.fr/sympa/arc/mpfr/2010-02/msg00025.html 24899 and the whole discussion. 24900 mpfr.texi: update. 24901 249022010-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24903 24904 [configure.in] removed check for C++ and Fortran compiler (comment said to 24905 remove it for libtool >= 2.0) 24906 249072010-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24908 24909 [TODO] dummy change to check if we still get commit mails 24910 249112010-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24912 24913 [mpfr.texi] added note about mpfr_set_str 24914 249152010-01-25 Vincent Lefèvre <vincent@vinc17.net> 24916 24917 Simplified get_patches.sh; minor consequence: the trailing space in 24918 the string returned by mpfr_get_patches() when there are patches is 24919 no longer present (this trailing space wasn't desired anyway). 24920 24921 configure.in: updated message for different gmp.h and libgmp versions. 24922 See <https://sympa.inria.fr/sympa/arc/mpfr/2010-01/msg00051.html>. 24923 249242010-01-20 Vincent Lefèvre <vincent@vinc17.net> 24925 24926 FAQ.html, faq.xsl, README, TODO: slightly changed the copyright notice 24927 to make it consistent with the one of the other files. In short, "and 24928 the GNU General Public License" has been removed, but it was ambiguous 24929 (we did not say which version of the GNU GPL) and useless (for GPLv3) 24930 because the LGPLv3 is compatible with the GPLv3: 24931 https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean 24932 24933 INSTALL: 24934 * added copyright notice (at the top, like GMP); 24935 * replaced "Installing MPFR" by "Installing GNU MPFR". 24936 24937 Copyright notice update: added 2010 with 24938 perl -pi -e 's/2009 Free Software/2009, 2010 Free Software/' **/*(^/) 24939 under zsh, reverting the ChangeLog file and the mbench directory. 24940 24941 tests: added turandom to the svn:ignore property. 24942 24943 INSTALL: updated paragraphs about the search paths (in particular, 24944 --with-gmp=/usr/local is no longer chosen as an example as it does 24945 not work as expected; a note has been added about that). 24946 24947 INSTALL: rewrote a paragraph about search paths. 24948 249492010-01-18 Philippe Théveny <philippe.theveny@laposte.net> 24950 24951 [urandom.c] Fix case emin > 0. 24952 249532010-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24954 24955 [TODO] added more details for random distribution functions 24956 24957 [tprintf.c, tfprintf.c] cleaned up previous commit 24958 249592010-01-18 Vincent Lefèvre <vincent@vinc17.net> 24960 24961 tests/turandom.c: updated a test (if emin > 1 and rnd == MPFR_RNDN, 24962 then the result is necessarily 0). 24963 24964 tests/turandom.c: more tests in restricted exponent range. 24965 24966 urandom.c: corrected a comment. 24967 249682010-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24969 24970 [tprintf.c,tfprintf.c] print obtained chain in test #8 24971 (https://sympa.inria.fr/sympa/arc/mpfr/2009-12/msg00035.html) 24972 249732010-01-18 Philippe Théveny <philippe.theveny@laposte.net> 24974 24975 [urandom.c] Fix bug in setting random exponent. 24976 249772010-01-16 Vincent Lefèvre <vincent@vinc17.net> 24978 24979 urandom.c: added a FIXME comment. 24980 249812010-01-15 Vincent Lefèvre <vincent@vinc17.net> 24982 24983 urandom.c: removed unused variable k; updated a comment. 24984 249852010-01-15 Philippe Théveny <philippe.theveny@laposte.net> 24986 24987 [urandom.c] Improve generation of random exponent. 24988 24989 [urandom.c] Fix bug introduced in r6667. 24990 249912010-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 24992 24993 [TODO] added item 24994 249952010-01-15 Philippe Théveny <philippe.theveny@laposte.net> 24996 24997 [urandom.c] Fix case nextabove(0) in reduced exponent range. 24998 24999 [tests/turandom.c] Change accumulation of ternary value in the loop, it was not portable in system with sign and magnitude representation for integers. 25000 25001 [urandom.c] Move generation of a random rounding bit in a separate function. 25002 25003 [urandom.c] Remove trailing whitespace. 25004 25005 [urandom.c] Call mpfr_nextabove in maximum exponent range. 25006 250072010-01-15 Vincent Lefèvre <vincent@vinc17.net> 25008 25009 urandom.c: added a FIXME so that it is not forgotten. 25010 25011 mpfr.texi: updated the month. 25012 25013 mpfrlint: require bash. 25014 250152010-01-14 Vincent Lefèvre <vincent@vinc17.net> 25016 25017 urandom.c: clean-up (avoid a useless goto). 25018 25019 README.dev: added a paragraph (use MPFR_ASSERTN, not printf + exit). 25020 250212010-01-14 Philippe Théveny <philippe.theveny@laposte.net> 25022 25023 [mpfr.texi] Cosmetic change. 25024 25025 [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). 25026 [tests/turandom.c] Check new behavior and add a test for the inclusion in [0, 1]. 25027 250282010-01-13 Philippe Théveny <philippe.theveny@laposte.net> 25029 25030 New function mpfr_urandom. 25031 250322010-01-11 Vincent Lefèvre <vincent@vinc17.net> 25033 25034 README.dev: added a note about patches and the autotools. 25035 250362010-01-10 Vincent Lefèvre <vincent@vinc17.net> 25037 25038 Added mpfrlint test for the required autoconf versions (see r6649). 25039 250402010-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25041 25042 [README.dev] required version of autoconf did not agree with acinclude.m4 25043 250442010-01-08 Vincent Lefèvre <vincent@vinc17.net> 25045 25046 configure.in: replaced BITS_PER_MP_LIMB by GMP_NUMB_BITS (should have 25047 been done in r6645). 25048 25049 mpfrlint: check that GMP_LIMB_BITS isn't used. 25050 25051 Replaced GMP_LIMB_BITS by GMP_NUMB_BITS to use only one of these macros. 25052 250532010-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25054 25055 [configure.in] put back test BITS_PER_MP_LIMB == BYTES_PER_MP_LIMB * CHAR_BIT 25056 (this is done only with --with-gmp-build, and BYTES_PER_MP_LIMB 25057 is defined in this case in gmp-impl.h, at least in GMP 5) 25058 25059 BITS_PER_MP_LIMB -> GMP_LIMB_BITS 25060 got rid of BYTES_PER_MP_LIMB in configure.in (no longer defined by GMP) 25061 Note[VL] (mpfr-impl.h): a mpn_sqr_n() macro is defined to use mpn_mul 25062 if it is not already defined (in gmp-impl.h from GMP 4.x). 25063 250642009-12-23 Vincent Lefèvre <vincent@vinc17.net> 25065 25066 [mbench/Makefile] Patch from Patrick Pelissier to solve the -I problem 25067 with GCC. 25068 250692009-12-21 Vincent Lefèvre <vincent@vinc17.net> 25070 25071 [mbench/Makefile] Added a comment (warning about the use of -I). 25072 250732009-12-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25074 25075 patch from Patrick Pelissier 25076 250772009-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25078 25079 [scale2.c] added missing include (compilation with --with-gmp-build did fail) 25080 [exp_2.c] small improvements in Smith method: compute x^{2i} as (x^i)^2 instead 25081 of x^{i-1} * x. The error analysis is unchanged. 25082 [tuneup.c] fix for sin_cos threshold (we had a problem since mpfr_sin_cos 25083 was calling mpfr_cos, which was calling mpfr_sincos_fast in some 25084 cases 25085 [mparam_h.in] put new thresholds for Core 2 64-bit 25086 250872009-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25088 25089 [acinclude.m4] reversed order for case "quad, mais en little endian" for 25090 coherence with other cases 25091 250922009-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25093 25094 patch to recognize IEEE quad, little endian format for "long double" 25095 25096 [scale2.c] now mpfr_scale2 is included in mpfr-impl.h, instead of #including 25097 "scale2.c" twice (thus it was compiled twice) 25098 250992009-12-07 Vincent Lefèvre <vincent@vinc17.net> 25100 25101 sin_cos.c: in case of tiny inputs, keep the flags. In practice, this 25102 fixes the following bug in mpfr_sin_cos (shown by the latest additions 25103 to tsin_cos.c): if emin is the minimal exponent (MPFR_EMIN_MIN), the 25104 absolute value of the input is the minimum positive number and the 25105 rounding mode is toward 0 (or equivalent), then the underflow flag is 25106 dropped. The other exception cases (e.g., in case of reduced exponent 25107 range) are handled by mpfr_check_range(). 25108 25109 tests/tsin_cos.c: in consistency(), better error message. 25110 25111 tests/tsin_cos.c: in consistency(), improved testing on underflow case. 25112 25113 tests/tsin_cos.c: in consistency(), added testing on underflow case. 25114 25115 tests/tsin_cos.c: in consistency(), fixed flags testing. 25116 25117 tests/tsin_cos.c: in consistency(), test also the flags. 25118 25119 tests/tsin_cos.c: in consistency(), test also the returned value 25120 (the one that gives inexact-related information). 25121 251222009-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25123 25124 [tfits.c] converted to GNU coding style 25125 251262009-11-30 Vincent Lefèvre <vincent@vinc17.net> 25127 25128 README.dev: updated "To make a release". 25129 25130 uceil_exp2.c: fixed indentation. 25131 251322009-11-29 Vincent Lefèvre <vincent@vinc17.net> 25133 25134 mpfr-impl.h: got rid of broken code when _GMP_IEEE_FLOATS was defined 25135 (broken aliasing rules, yielding failures with GCC 4.5.0 20091119). 25136 251372009-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25138 25139 [tset_ld.c] now perform tests even if old gcc bug is present 25140 251412009-11-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25142 25143 [tget_d.c] removed workaround for old gcc bug. Comment was: 25144 /* workaround for gcc bug on m68040-unknown-netbsd1.4.1, 25145 where DBL_MIN gives (1-2^(-52))/2^1022 */ 25146 25147 [tadd.c, tmul.c] got rid of workaround for old gcc bug. Comment was: 25148 /* Parameter "z1" of check() used to be last in the argument list, but that 25149 tickled a bug in 32-bit sparc gcc 2.95.2. A "double" in that position is 25150 passed on the stack at an address which is 4mod8, but the generated code 25151 didn't take into account that alignment, resulting in bus errors. The 25152 easiest workaround is to move it to the start of the arg list (where it's 25153 passed in registers), this macro does that. FIXME: Change the actual 25154 calls to check(), rather than using a macro. */ 25155 25156 [strtofr.c] removed patch for old FreeBsd/Alpha bug 25157 (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=72024) 25158 251592009-11-26 Vincent Lefèvre <vincent@vinc17.net> 25160 25161 [pow_si.c] Updated comment added in r4355 concerning a bug 25162 in Sun's compiler for Solaris/x86. 25163 25164 Updated comments concerning the old FreeBSD bug 72024 on LONG_MIN / 1. 25165 251662009-11-25 Vincent Lefèvre <vincent@vinc17.net> 25167 25168 [tfprintf.c,tprintf.c] Fixed other types in function with variable 25169 arguments (even though there were no warnings on the tested machine). 25170 25171 [tfprintf.c,tprintf.c] Fixed types in function with variable arguments. 25172 251732009-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25174 25175 [tfprintf.c,tprintf.c] applied patch from Philippe Theveny 25176 [acinclude.m4] removed check for %zu, no longer needed 25177 25178 [acinclude.m4] added test for %zu 25179 [tfprintf.c,tprintf.c] added #ifdef's for NPRINTF_ZU 25180 251812009-11-25 Vincent Lefèvre <vincent@vinc17.net> 25182 25183 configure.in: corrected a comment. 25184 25185 tests/tstckintc.c: fixed types for the printf %p format specifier. 25186 251872009-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25188 25189 [tget_flt.c] replaced %a by %.8e 25190 25191 [tget_d.c,tget_ld_2exp.c] replaced %a and %La by %.16e and %.16Le 25192 25193 [tget_d.c] removed C99-specific instruction 25194 25195 [nightly-test] added -ansi -pedantic-errors 25196 251972009-11-24 Vincent Lefèvre <vincent@vinc17.net> 25198 25199 configure.in: completed the GMP CC/CFLAGS detection. 25200 25201 configure.in: added a test to check for CC and CFLAGS in gmp.h only 25202 when the user doesn't redefine them and he isn't cross-compiling. 25203 25204 configure.in: improved the GMP CC/CFLAGS detection. 25205 25206 configure.in: try to fix the GMP CC/CFLAGS detection. Not finished. 25207 25208 configure.in: replaced "test ... -o ..." (obsolete in POSIX) 25209 by "test ... || test ...". 25210 25211 configure.in: replaced "test ... -a ..." (obsolete in POSIX) 25212 by "test ... && test ...". 25213 25214 INSTALL: made instructions more clear. 25215 252162009-11-23 Vincent Lefèvre <vincent@vinc17.net> 25217 25218 README.dev: updated "To make a release". 25219 25220 README.dev: last things to do when making a release. 25221 252222009-11-22 Vincent Lefèvre <vincent@vinc17.net> 25223 25224 sin_cos.c: fixed a potential bug by changing a rnd_mode into MPFR_RNDZ 25225 in mpfr_can_round. Indeed, in r4574, the change from 25226 if (!mpfr_can_round (c, m, GMP_RNDZ, rnd_mode, MPFR_PREC (z))) 25227 to 25228 if (!mpfr_can_round (c, m, GMP_RNDN, rnd_mode, 25229 MPFR_PREC (z) + (rnd_mode == GMP_RNDN))) 25230 looks wrong to me: in RNDN, the extra bit due to rnd_mode == GMP_RNDN 25231 changes a RNDN worst case into a RNDZ worst case. 25232 Note: The second mpfr_can_round with the same problem has been fixed 25233 in r6513. 25234 25235 tests/tsin_cos.c: ported bug20091122 from the 2.4 branch to the trunk. 25236 But no failure in the trunk. 25237 252382009-11-20 Vincent Lefèvre <vincent@vinc17.net> 25239 25240 tests/tconst_pi.c: fixed types for C++. 25241 25242 Changeset r6162 broke Solaris builds. Fixed that by no longer checking 25243 INTMAX_MAX and UINTMAX_MAX to detect use of <stdint.h> / <inttypes.h>. 25244 252452009-11-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25246 25247 [cos.c] fixed case where reduced argument is zero 25248 252492009-10-30 Vincent Lefèvre <vincent@vinc17.net> 25250 25251 tcos.c: added a testcase yielding an assertion failure (this bug makes 25252 tsin_cos fail). 25253 25254 tests/tsin_cos.c: ported the consistency test from the 2.4 branch. 25255 This yields an assertion failure (Linux/x86_64). 25256 252572009-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25258 25259 [cache.c] fixed bug with directed rounding 25260 [tconst_pi.c] added test for bug with directed rounding 25261 252622009-10-21 Vincent Lefèvre <vincent@vinc17.net> 25263 25264 exceptions.c: improved a comment. 25265 25266 tpow.c: added an overflow test. 25267 25268 tpow.c: added an overflow test in RNDZ. 25269 252702009-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25271 25272 [TODO] added efficiency item 25273 252742009-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25275 25276 [lngamma.c] fixed typo, added comments about argument reduction, and replaced 25277 code using doubles 25278 25279 [TODO] added efficiency item 25280 252812009-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25282 25283 [exp.c] binary splitting is now used for prec >= MPFR_EXP_THRESHOLD 25284 (instead of prec > MPFR_EXP_THRESHOLD before). This is more 25285 consistent with the other thresholds. 25286 25287 [TODO] added efficiency item 25288 25289 [mparam_h.in] added /* bits */ for MPFR_EXP_THRESHOLD and MPFR_EXP_2_THRESHOLD 25290 252912009-10-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25292 25293 [tsin_cos.c] removed useless instruction, and added comments 25294 25295 [sin_cos.c] fixed call to mpfr_can_round (rounding mode was wrong) 25296 [tsin_cos.c] added new test 25297 25298 [li2.c] fixed bug when x is near 0 25299 [tli2.c] added new test 25300 253012009-10-09 Vincent Lefèvre <vincent@vinc17.net> 25302 25303 tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t. 25304 25305 tests/tsin_cos.c: added a comment about bug20091008, corresponding to 25306 r6507; in fact, the bug concerns only the return value (see r6444). 25307 253082009-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25309 25310 [sin_cos.c] fixed error analysis 25311 [tsin_cos.c] added new test 25312 253132009-10-07 Vincent Lefèvre <vincent@vinc17.net> 25314 25315 tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t. 25316 25317 tests/tsin_cos.c: removed trailing spaces. 25318 253192009-10-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25320 25321 [tsin_cos.c] changed binary to hexadecimal string (was too long for C89) 25322 25323 [sin_cos.c] fixed bug introduced in r6447 (some variables had their precision not updated in Ziv's loop) 25324 [tsin_cos.c] added a new test 25325 253262009-09-29 Vincent Lefèvre <vincent@vinc17.net> 25327 25328 FAQ update. 25329 253302009-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25331 25332 [mpfr.texi] added note about mpfr_can_round 25333 [tcan_round.c] added more tests 25334 253352009-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25336 25337 [README.dev] added item for new releases: we should say if they are binary 25338 and/or API compatible with previous releases (we often forgot 25339 to say it in the past) 25340 253412009-09-23 Vincent Lefèvre <vincent@vinc17.net> 25342 25343 tests: added tget_flt to the svn:ignore property. 25344 25345 tests/Makefile.am: added information about LOADLIBES. 25346 253472009-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25348 25349 [tests/Makefile.am] put back LOADLIBES=... (enables to compile a program foo.c 25350 in the test directory by simply doing "make foo") 25351 25352 [atan.c] updated the comments 25353 253542009-09-22 Vincent Lefèvre <vincent@vinc17.net> 25355 25356 atan.c: added a FIXME comment. 25357 25358 atan.c: added some assertions. 25359 253602009-09-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25361 25362 [atan.c] implemented argument reduction (cf error analysis in algorithms.tex) 25363 253642009-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25365 25366 [tests/Makefile.am] removed LOADLIBES=... 25367 253682009-09-20 Vincent Lefèvre <vincent@vinc17.net> 25369 25370 mpfrlint: check that lines aren't too long. 25371 25372 Makefile.am: line-wrap libmpfr_la_SOURCES (M-q with Emacs) for 25373 compatibility with some vendor grep. 25374 25375 Makefile.am, tests/Makefile.am: patch from Ralf Wildenhues. 25376 https://lists.gnu.org/archive/html/bug-automake/2009-09/msg00033.html 25377 253782009-09-18 Vincent Lefèvre <vincent@vinc17.net> 25379 25380 mpfr-impl.h, sin_cos.c, tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t. 25381 25382 sin_cos.c: GMP_RNDx -> MPFR_RNDx. 25383 25384 sin_cos.c: untabified. 25385 25386 frac.c, tests/tfrac.c: fixed underflow case in mpfr_frac and added 25387 testcase. 25388 253892009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25390 25391 [acos.c] initial working precision was too small 25392 253932009-09-18 Vincent Lefèvre <vincent@vinc17.net> 25394 25395 modf.c: no longer extend the exponent range at all, since there are 25396 no intermediate computations (note: the mpfr_frac bug that has just 25397 been fixed affected this change in modf.c). 25398 25399 [frac.c] Patch r6456 was incorrect: the problem with the non-significant 25400 bits had to be dealt with only in the case t = r. This is now fixed. 25401 25402 tests/tfrac.c: reverted overflow case test (was incorrect because the 25403 input was too large). 25404 25405 tests/tfrac.c: also test the overflow case. 25406 25407 tests/tfrac.c: more tests (case where the fractional part rounds to 1). 25408 254092009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25410 25411 [NEWS] added item 25412 25413 [sin.c,cos.c] use mpfr_sincos_fast when prec >= MPFR_SINCOS_THRESHOLD 25414 254152009-09-18 Vincent Lefèvre <vincent@vinc17.net> 25416 25417 tests/tfrac.c: more tests (there are also problems in rounding away 25418 from zero or equivalent). 25419 254202009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25421 25422 added tuning mechanism for mpfr_sin_cos 25423 254242009-09-18 Vincent Lefèvre <vincent@vinc17.net> 25425 25426 tests/tfrac.c: also test the ternary value (it is incorrect too). 25427 25428 frac.c: fixed bug in mpfr_frac (the non-significant bits in low limb 25429 were not cleared). 25430 25431 tests/tfrac.c: improved the testcase so that it triggers the bug for 25432 both 32 bits and 64 bits. 25433 25434 tests/tfrac.c: added a comment for latest testcase. 25435 25436 tests/tfrac.c: added testcase for bug in mpfr_frac. 25437 25438 tests/tmodf.c: typo in error message. 25439 25440 modf.c: extending the exponent range in the first two cases is useless 25441 because there are no intermediate computations (just a mpfr_set). Let's 25442 do that only for the general case. 25443 25444 tests/tmodf.c: added overflow tests. 25445 25446 modf.c: corrected a comment (rounding can yield an overflow, but not 25447 an underflow). 25448 254492009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25450 25451 [sin_cos.c] added asymptotically fast code, with threshold currently hardcoded 25452 at 20000 bits, should be determined by tuneup.c 25453 254542009-09-18 Vincent Lefèvre <vincent@vinc17.net> 25455 25456 Deleted trailing spaces. 25457 254582009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25459 25460 [modf.c] changed semantics of return value in accordance with mpfr_sin_cos 25461 254622009-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25463 25464 [sin_cos.c] more precise meaning of the return value 25465 [sinh_cosh.c] idem as above 25466 [taway.c] fixed to check the more precise return value 25467 254682009-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25469 25470 [mpfr.texi] t was not initialized in Newton's example 25471 254722009-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25473 25474 changed _binary32 into _flt for file names too: 25475 svn mv get_binary32.c get_flt.c 25476 svn mv set_binary32.c set_flt.c 25477 svn mv tests/tget_binary32.c tests/tget_flt.c 25478 25479 [TODO] removed an item 25480 [mpfr.texi] added an example for mpfr_prec_round 25481 25482 [NEWS] added mpfr_set_flt and mpfr_get_flt 25483 25484 changed suffix _binary32 -> _flt 25485 [get_binary32.c] fixed a bug in subnormal range 25486 254872009-09-15 Vincent Lefèvre <vincent@vinc17.net> 25488 25489 mpfrlint: bug fix. 25490 25491 mpfr.texi: updated the month. 25492 25493 mpfrlint: execute svn in C locale. 25494 25495 mpfrlint: check mpfr.texi's UPDATED-MONTH. 25496 254972009-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25498 25499 [tget_d.c] fixed FIXME 25500 255012009-09-15 Vincent Lefèvre <vincent@vinc17.net> 25502 25503 tget_d.c code is C99-only (bug introduced in r6424). Please fix! 25504 255052009-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25506 25507 [get_binary32.c] also forgot in previous commit 25508 25509 [set_binary32.c] file forgot in previous commit 25510 25511 added new functions mpfr_set_binary32 and mpfr_get_binary32 25512 fixed bug in mpfr_get_d and mpfr_get_decimal64 for RNDA 25513 25514 [mpfr.texi] improved description of mpfr_sum, and fixed typo 25515 255162009-09-14 Vincent Lefèvre <vincent@vinc17.net> 25517 25518 mpfr.h: added mpfr_regular_p macro. 25519 255202009-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25521 25522 [sum.c] added reference 25523 25524 [get_ld.c] fixed bug reported by Nelson Beebe 25525 https://sympa.inria.fr/sympa/arc/mpfr/2009-05/msg00061.html 25526 25527 [isregular.c] new function mpfr_regular_p 25528 [iszero.c] fixed typo in comment 25529 [tests/tisnan.c] added tests for mpfr_regular_p 25530 255312009-09-11 Vincent Lefèvre <vincent@vinc17.net> 25532 25533 vasprintf.c: changeset r6414 was incorrect, in particular under Linux 25534 (at least some platforms), where wint_t is an unsigned int, not an int. 25535 Instead, let's detect whether integer promotion will occur or not, even 25536 though the ISO C99 standard requires a wint_t type that doesn't yield 25537 an integer promotion (7.24.1#2), because mingw32 defines wint_t as an 25538 unsigned short (thus with integer promotion). 25539 255402009-09-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25541 25542 [vasprintf.c] https://sympa.inria.fr/sympa/arc/mpfr/2009-09/msg00012.html 25543 (changed __wint_type into int) 25544 255452009-09-08 Vincent Lefèvre <vincent@vinc17.net> 25546 25547 tests/tdigamma.c: added missing void in prototype. 25548 255492009-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25550 25551 [digamma.c] forgot to set sign for Psi(+Inf) 25552 255532009-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25554 25555 changed function into bernoulli.c (which was static, included 3 times) into 25556 an internal function mpfr_bernoulli_internal 25557 255582009-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25559 25560 [TODO] removed psi(=digamma) 25561 255622009-09-02 Vincent Lefèvre <vincent@vinc17.net> 25563 25564 tests/data/digamma: for the special values, use the new mode '*' 25565 (exact cases) instead of 'n'. 25566 25567 tests.c: added special support for exact cases in data_check (to test 25568 all the rounding modes and check the ternary value). 25569 25570 towards -> toward (consistency). 25571 25572 tests: added tdigamma to svn:ignore property. 25573 25574 digamma.c: moved a comment. 25575 255762009-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25577 25578 [digamma.c] fixed bug (emin/emax were not restored) 25579 [data/digamma] added special values 25580 [tests/tests.c] fix to allow putting nan in data/* files 25581 25582 [data/digamma] unitary test file for mpfr_digamma 25583 [tdigamma.c] now use data/digamma 25584 255852009-09-02 Vincent Lefèvre <vincent@vinc17.net> 25586 25587 Removed trailing whitespace. 25588 255892009-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25590 25591 bernoulli.c goes into EXTRA_DIST 25592 25593 [digamma.c] new function mpfr_digamma 25594 [lngamma.c,li2.c] factored computation of Bernoulli numbers in new file 25595 bernoulli.c (also used by digamma.c) 25596 255972009-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25598 25599 replaced obsolete GMP functions (suggested by Brian Gladman): 25600 1. mpz_div_2exp ==> mpz_fdiv_q_2exp 25601 2. mpz_div_ui ==> mpz_fdiv_q_ui 25602 3. gmp_randinit (state, GMP_RAND_ALG_LC, 128) ==> gmp_randinit_lc_2exp_size (state, 128) 25603 (Didn't replace mpn_divrem by mpn_tdiv_qr since the parameters differ, and also 25604 for efficiency reasons.) 25605 256062009-08-26 Vincent Lefèvre <vincent@vinc17.net> 25607 25608 tsprintf.c: fixed locale_da_DK test. 25609 256102009-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25611 25612 [csch.c,coth.c,csc.c,cot.c] fixed bug for tiny input and RNDA (result was 25613 rounded to zero instead of away) 25614 256152009-08-26 Vincent Lefèvre <vincent@vinc17.net> 25616 25617 tests/tsprintf.c: bug fix (uncommented an "exit(1);"). 25618 256192009-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25620 25621 [tgeneric.c] revert previous change, bug is elsewhere 25622 25623 [tgeneric.c] temporary fix in mpfr_can_round call (mpfr_can_round does not 25624 correctly handle MPFR_RNDA) 25625 256262009-08-26 Vincent Lefèvre <vincent@vinc17.net> 25627 25628 set_ld.c: replaced a struct by a union. The struct was triggering the 25629 following warning with GCC 4.4: 25630 dereferencing type-punned pointer will break strict-aliasing rules 25631 (possibly due to possible memory alignment problems). The old code 25632 looked strange anyway and unions are exactly for such kind of things. 25633 256342009-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25635 25636 [tset.c] removed unused variables 25637 256382009-08-25 Vincent Lefèvre <vincent@vinc17.net> 25639 25640 tcmp_ld.c: use "long double" constants. 25641 Note: this might solve the tcmp_ld failure reported on 25642 https://www.linuxquestions.org/questions/linux-from-scratch-13/mpfr-2-4-1-check-failures-in-lfs-6-5-rc2-746538/ 25643 (not tested). 25644 256452009-08-24 Vincent Lefèvre <vincent@vinc17.net> 25646 25647 NEWS: update (new function mpfr_set_zero, added in r6339). 25648 25649 mpfr.texi: NaN has a sign bit (in its binary representation), 25650 but as a FP datum, it does not have a sign. 25651 256522009-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25653 25654 [mpfr.texi] added mention of unspecified NaN sign bit for mpfr_set_nan 25655 256562009-08-21 Vincent Lefèvre <vincent@vinc17.net> 25657 25658 mpfr.texi: do not use @code for roundTiesToAway and binary64 as this is 25659 not code and the IEEE 754-2008 standard doesn't use special typography. 25660 25661 mpfr.texi: the sign bit of a NaN is unspecified. 25662 256632009-08-18 Vincent Lefèvre <vincent@vinc17.net> 25664 25665 Add examples into $docdir (without using a subdir, as this would be 25666 a bit bloated just to add a few files). 25667 * Added "examples" directory with a ReadMe file and 3 examples. 25668 * Makefile.am: added files from the "examples" directory and changed 25669 dist_doc_DATA into nobase_dist_doc_DATA so that the "examples" 25670 directory is not stripped in the target directory $docdir. 25671 * README: added "examples/". 25672 25673 get_str.c: corrected copyright notice, incorrectly modified in r6364. 25674 256752009-08-12 Philippe Théveny <philippe.theveny@laposte.net> 25676 25677 mpfr.texi: Fix typo. 25678 25679 get_str.c: Format a comment. 25680 25681 get_str.c vasprintf.c: Add support for the rounding away from zero mode. 25682 mpfr.texi: MPFR_RNDA mode support in printf functions. 25683 tests/tsprintf.c tests/tget_str.c: Test MPFR_RNDA support. 25684 256852009-08-06 Vincent Lefèvre <vincent@vinc17.net> 25686 25687 NEWS: update. 25688 25689 Install some documentation files. 25690 256912009-08-05 Vincent Lefèvre <vincent@vinc17.net> 25692 25693 mpfr.texi: updated section "Installing MPFR". 25694 25695 mpfr.texi: corrected a spelling mistake. 25696 25697 Since GNU Automake 1.11 is available on too few platforms, removed its 25698 requirement (reverted to 1.10 requirement: 1.10.1 was needed only for 25699 dist-lzma, which has been removed). Instead, added hardcoded dist-xz 25700 support (tested with both Automake 1.10.2 and Automake 1.11). 25701 257022009-08-04 Vincent Lefèvre <vincent@vinc17.net> 25703 25704 configure.in: replaced dist-lzma by dist-xz (the xz format is the 25705 successor of the lzma format); as a consequence, automake 1.11 is 25706 needed. 25707 257082009-07-30 Vincent Lefèvre <vincent@vinc17.net> 25709 25710 Makefile.am, tests/Makefile.am: added copyright notice (similar to 25711 the one of the generated Makefile.in file). 25712 25713 Since COPYING.LESSER makes a reference to the GPLv3, updated COPYING 25714 to the GPLv3. Autotools files are now distributed under the same license 25715 as MPFR (to avoid any reference to the GPLv2). 25716 25717 Renamed COPYING.LIB as COPYING.LESSER (GNU Coding Standards, #7.3) 25718 and updated all the references (except in ChangeLog). 25719 25720 Added algorithms.fdb_latexmk to svn:ignore property. 25721 257222009-07-30 Philippe Théveny <philippe.theveny@laposte.net> 25723 25724 tests/tset.c: With revision 6339, some tests were moved and added in the function check_special but this one was not called. 25725 25726 tests/Makefile.am: Strech check_PROGRAMS list to ease insertion of new tests. 25727 25728 Makefile.am: Sort tests in alphabetical order except the very first ones which are needed by the test suite itself. 25729 257302009-07-20 Philippe Théveny <philippe.theveny@laposte.net> 25731 25732 vasprintf.c mpfr.texi: Change behavior with %Rf and an empty precision field. The default precision is now 6 with %Rf and %Rg. 25733 tests/tprintf.c tests/tfprintf.c tests/tsprintf.c: Change tests with empty precision field and %Rf. 25734 25735 Makefile.am mpfr.h mpfr.texi set_zero.c: New function mpfr_set_zero. 25736 tests/tset.c: Replace all MPFR_ASSERTN with verbose message. Add tests for mpfr_set_zero. 25737 257382009-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25739 25740 [INSTALL] hint about patch command 25741 257422009-07-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25743 25744 [mpn_exp.c] reverted previous change (MPN_ZERO is a macro for memset, which 25745 does not forbid zero size) 25746 25747 [coth.c, tcoth.c] fixed coth(+/0) which was wrong (reported by Christopher Creutzig) 25748 25749 [mpn_exp.c] fixed bug reported by David Kirkby on Solaris (GMP compiled with 25750 Solaris compiler) 25751 257522009-07-08 Vincent Lefèvre <vincent@vinc17.net> 25753 25754 vasprintf.c: typo in a comment. 25755 257562009-07-08 Philippe Théveny <philippe.theveny@laposte.net> 25757 25758 vasprintf.c: Fix bug with %Rf, non-zero precision and a value rounded up to the next power of ten. 25759 257602009-07-08 Vincent Lefèvre <vincent@vinc17.net> 25761 25762 vasprintf.c: deleted trailing spaces. 25763 25764 tsprintf.c: added tests of some halfway cases. 25765 257662009-07-08 Philippe Théveny <philippe.theveny@laposte.net> 25767 25768 vasprintf.c: Fix bug in precision 0 with format %.0Rf (0.5 rounds to 0). 25769 257702009-07-08 Vincent Lefèvre <vincent@vinc17.net> 25771 25772 tsprintf.c: added a test that triggers an assertion failure. 25773 25774 tsprintf.c: fixed a test and added more tests for %.0Rf with the even 25775 rounding rule (shows a bug added in the latest corrections). 25776 257772009-07-07 Vincent Lefèvre <vincent@vinc17.net> 25778 25779 tsprintf.c: completed the test on emax (for %Ra and %Rb). 25780 Everything is OK. 25781 25782 tsprintf.c: my test was incorrect (I forgot the R), sorry. 25783 Still completing it... 25784 25785 tsprintf.c: comment (so that the test can be ported to the 2.4 branch). 25786 25787 tsprintf.c: started to write a test for emax, showing a bug (random 25788 output). 25789 257902009-07-06 Vincent Lefèvre <vincent@vinc17.net> 25791 25792 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 25793 25794 mpfr.texi: updated the month. 25795 25796 mpfr.texi consistency: @var{stdout} -> @code{stdout}. 25797 25798 vasprintf.c: do not use a potential function call in SAFE_ABS macro. 25799 258002009-07-06 Philippe Théveny <philippe.theveny@laposte.net> 25801 25802 vasprintf.c tests/tsprintf.c: deleted trailing spaces. 25803 258042009-06-29 Philippe Théveny <philippe.theveny@laposte.net> 25805 25806 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). 25807 tests/tsprintf.c: Add tests for rounding to next power of ten bug with %Rf or %Rg. 25808 258092009-06-26 Vincent Lefèvre <vincent@vinc17.net> 25810 25811 mp_exp_unsigned_t -> mpfr_uexp_t (internal type only). 25812 25813 mpfrlint: check the use of the obsolete mp_rnd_t type. 25814 25815 mp_rnd_t -> mpfr_rnd_t 25816 25817 Suppressed MPFR_CLEAR_FLAGS (no longer did anything). 25818 258192009-06-23 Vincent Lefèvre <vincent@vinc17.net> 25820 25821 mpfr.texi: updated the month. 25822 25823 mpfr.texi: fixed description of mpfr_get_str (clash with variables, 25824 inconsistent cases in the info format). 25825 25826 get_str.c: added a space. 25827 258282009-06-21 Vincent Lefèvre <vincent@vinc17.net> 25829 25830 vasprintf.c: corrected comments. 25831 258322009-06-19 Philippe Théveny <philippe.theveny@laposte.net> 25833 25834 vasprintf.c: convert GMP_RNDx to MPFR_RNDx. 25835 25836 vasprintf.c: Add brace to disambiguate nested if, and remove unused variable. 25837 25838 tests/tfprintf.c tests/tprintf.c: Do not test very small values with %f. 25839 25840 vasprintf.c: Fix bug when the value to be printed is rounded to the next power of ten with %Rf or %Rg. 25841 tests/tsprintf.c: Add tests for rounding to next power of ten bug. 25842 258432009-06-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25844 25845 [TODO] added new functions to implement 25846 258472009-06-16 Philippe Théveny <philippe.theveny@laposte.net> 25848 25849 sinh_cosh.c: precision of intermediate computation no more depends on precision of input variables. 25850 258512009-06-15 Vincent Lefèvre <vincent@vinc17.net> 25852 25853 mpfr.h: new MPFR_VALUE_OF macro, now used by mpfr_get_prec and 25854 mpfr_get_exp macros (this is cleaner than the old hack). 25855 258562009-06-14 Vincent Lefèvre <vincent@vinc17.net> 25857 25858 acinclude.m4: Make sure results of calculations on constants used with 25859 the fesetround() test are not precomputed by GCC (occurs on MIPS). 25860 Patch from Maciej W. Rozycki. 25861 https://sympa.inria.fr/sympa/arc/mpfr/2009-06/msg00036.html 25862 gmane.comp.lib.mpfr.general:174 25863 258642009-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25865 25866 [algorithms.tex] bounds for get_str were checked by Mark Dickinson 25867 258682009-06-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25869 25870 [algorithms.tex] fixed typo 25871 25872 [algorithms.tex] fixed and completed up to b=62 table of bounds for get_str 25873 [mpfr.texi] fixed description of case n=0 for get_str (case of powers of two 25874 bases was not coherent with the code) 25875 258762009-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25877 25878 [algorithms.tex] analyzed precisely the cases where the value is m+1 instead 25879 of m 25880 258812009-06-10 Vincent Lefèvre <vincent@vinc17.net> 25882 25883 acinclude.m4: reverted incorrect patch r6267 that makes the test 25884 no longer work on x86 (with traditional FPU, no SSE), where one 25885 should get 25886 checking for gcc float-conversion bug... yes, use -ffloat-store 25887 instead of 25888 checking for gcc float-conversion bug... no 25889 Indeed the "volatile" has the effect to have all the intermediate 25890 results x stored into memory, i.e. it is more or less equivalent 25891 to the -ffloat-store option, so that it does not allow one to test 25892 whether -ffloat-store is needed or not (which is the goal of this 25893 test). 25894 258952009-06-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25896 25897 [acinclude.m4] patch from Maciej W. Rozycki on mpfr mailing-list, 9 Jun 2009 25898 25899 added more test cases for the Bessel functions (from John Harrison paper at 25900 Arith19) 25901 259022009-06-04 Philippe Théveny <philippe.theveny@laposte.net> 25903 25904 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). 25905 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). 25906 259072009-06-03 Philippe Théveny <philippe.theveny@laposte.net> 25908 25909 mpfr-longlong.h: Update to newer GMP version (changeset 12418:12a1d0bf21f0 Sun Mar 01 23:47:31 2009 +0100), merging modifications from r4657. 25910 259112009-05-29 Vincent Lefèvre <vincent@vinc17.net> 25912 25913 vasprintf.c: do not use GMP's namespace for identifiers defined in MPFR. 25914 25915 README.dev: added: do not use the GMP namespaces... 25916 25917 mpfr.h: rewrote a comment. 25918 259192009-05-29 Philippe Théveny <philippe.theveny@laposte.net> 25920 25921 vasprintf.c: Fix bug, "%%" was not correctly displayed when used alone or before a mpfr_t output. 25922 tests/tfprintf.c tests/tprintf.c: Fix expected values for tests with "%%". 25923 25924 mpfr.texi: Restate subsection Formatted Output Functions/Format String. 25925 259262009-05-28 Philippe Théveny <philippe.theveny@laposte.net> 25927 25928 mpfr.texi: details on use of 'P' type in mpfr_printf. 25929 259302009-05-27 Philippe Théveny <philippe.theveny@laposte.net> 25931 25932 NEWS: remind bug fixes since version 2.4.0. 25933 25934 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). 25935 259362009-05-27 Vincent Lefèvre <vincent@vinc17.net> 25937 25938 mpfr.texi: updated the month. 25939 25940 tests/tfmod.c: deleted trailing whitespace. 25941 259422009-05-22 Philippe Théveny <philippe.theveny@laposte.net> 25943 25944 tests/tatan.c: Add test triggering underflow (test coverage is now 100%). 25945 259462009-05-20 Vincent Lefèvre <vincent@vinc17.net> 25947 25948 tests/tgeneric.c: for the second computation, increase the precision 25949 of the inputs in order to trigger the mpfr_fmod bug fixed in r6230 25950 (and potentially other bugs). Thanks to Eric Veach for the idea. 25951 25952 Added tbuildopt to svn:ignore property of tests. 25953 259542009-05-20 Philippe Théveny <philippe.theveny@laposte.net> 25955 25956 tests/tfmod.c: complete tests with special values. 25957 25958 tests/tfmod.c: code simplification + check ternary value too. 25959 259602009-05-20 Vincent Lefèvre <vincent@vinc17.net> 25961 25962 tests/tfmod.c: replaced NULL by (mpfr_ptr) 0 in mpfr_inits2/mpfr_clears. 25963 25964 tests/mpfr-test.h: added mpfr_cmp_ui0 macro (check that x is not a NaN). 25965 tests/tfmod.c (bug20090519): check that the results are not NaN's and 25966 replaced GMP_RNDN by MPFR_RNDN. 25967 259682009-05-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25969 25970 [tests/tfmod.c] added testcase for bug reported by Eric Veach 25971 [rem1.c] fixed bug reported by Eric Veach 25972 259732009-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 25974 25975 [TODO] added one item 25976 259772009-05-13 Laurent Fousse <laurent@komite.net> 25978 25979 Clarify the fact that mpfr_sum guarantees correct rounding. 25980 259812009-05-13 Vincent Lefèvre <vincent@vinc17.net> 25982 25983 mpfr.h: updated a comment. 25984 259852009-05-13 Philippe Théveny <philippe.theveny@laposte.net> 25986 25987 mpfr.h: Add a warning comment (removed in r6026). 25988 [merge -c 6209 from branch 2.4] 25989 259902009-05-13 Vincent Lefèvre <vincent@vinc17.net> 25991 25992 fms.c: improve the performance of memory allocations in small precision 25993 (almost identical to changeset 6195 for fma.c). 25994 259952009-05-12 Vincent Lefèvre <vincent@vinc17.net> 25996 25997 fma.c: patch by Patrick Pélissier to improve the performance of 25998 memory allocations in small precision. 25999 260002009-05-05 Philippe Théveny <philippe.theveny@laposte.net> 26001 26002 Put '#include <string.h>' in mpfr-impl.h, remove it elsewhere. 26003 Other cleanup of header inclusion. 26004 Other change (by mistake): corrections in algorithms.tex 26005 260062009-05-05 Vincent Lefèvre <vincent@vinc17.net> 26007 26008 NEWS: corrections / limit to 80 characters per line. 26009 260102009-05-05 Philippe Théveny <philippe.theveny@laposte.net> 26011 26012 get_d64.c set_d64.c: Fix types. 26013 26014 printf.c tests/tpow_all.c: <string.h> is not automatically included when compiling with --with-gmp-build option. 26015 26016 NEWS Makefile.am mpfr.h mpfr.texi buildopt.c: New functions mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p. 26017 tests/Makefile.am tests/tbuildopt.c: Add tests for mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p. 26018 260192009-05-05 Vincent Lefèvre <vincent@vinc17.net> 26020 26021 atan.c: added comments after checking r6186. 26022 260232009-05-05 Philippe Théveny <philippe.theveny@laposte.net> 26024 26025 atan.c: expand exponent range when computing arctan(Inf) and arctan(+-1). 26026 tests/tatan.c: Check underflow of arctan(Inf) and arctan(1) with reduced exponent range. 26027 260282009-05-04 Vincent Lefèvre <vincent@vinc17.net> 26029 26030 tests/tatan.c: replaced GMP_RNDN by MPFR_RNDN. 26031 260322009-04-29 Vincent Lefèvre <vincent@vinc17.net> 26033 26034 Removed trailing spaces. 26035 260362009-04-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26037 26038 [atan.c] fixed bug when x is very near but differs from 1 26039 260402009-04-29 Vincent Lefèvre <vincent@vinc17.net> 26041 26042 tests/tatan.c: added testcase for bug found by Christopher Creutzig 26043 (atan2_different_prec). 26044 260452009-04-22 Vincent Lefèvre <vincent@vinc17.net> 26046 26047 tests/tests.c (data_check): try to open the data file first from the 26048 build directory, then from the source directory. 26049 26050 init2.c: check that mp_bits_per_limb == BITS_PER_MP_LIMB (useful 26051 in case GMP is upgraded with a different ABI, e.g. 32 vs mode32 26052 on PowerPC 64). Without such a check, MPFR can give incorrect 26053 results if the ABI's don't match. 26054 26055 Improved fix for problem dealt with in r6174: use function src_fopen() 26056 (from tests.c) instead of a macro MPFR_SRCDIR. 26057 26058 Fixed problem when the srcdir value contains a word that is #define'd 26059 by the C implementation (test failure) or a comma (worse, the build of 26060 the tests terminates with an error). This can happen only when objdir 26061 and srcdir are different directories. 26062 * tests/Makefile.am (tmul_CPPFLAGS): Put srcdir pathname in quotes. 26063 * tests/tmul.c (MPFR_SRCDIR): Make the default a string. 26064 (QUOTE, NAME): Delete. 26065 (check_regression): Don't QUOTE MPFR_SRCDIR. 26066 Thanks to Sandra Loosemore for the patch. 26067 https://sympa.inria.fr/sympa/arc/mpfr/2009-04/msg00038.html 26068 260692009-04-15 Philippe Théveny <philippe.theveny@laposte.net> 26070 26071 get_f.c: remove dead code (x and z always have the same number of limbs). 26072 tests/tget_f.c: Add tests with every rounding mode, add tests with random values. 26073 26074 tests/tget_f.c: Fix typos, better error messages. 26075 260762009-04-14 Philippe Théveny <philippe.theveny@laposte.net> 26077 26078 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. 26079 26080 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). 26081 260822009-04-10 Vincent Lefèvre <vincent@vinc17.net> 26083 26084 mpfr.texi: update concerning intmax_t after the change in r6166. 26085 26086 mpfr.h: for intmax_t, also test _STDINT_H and _STDINT_H_. 26087 [merged changeset r6165 from the 2.4 branch] 26088 26089 mpfr.texi: updated the month. 26090 26091 mpfr.h: for the intmax_t detection, also test INTMAX_MAX / UINTMAX_MAX 26092 (this may be useful for users of C++ compilers, if they have defined 26093 __STDC_LIMIT_MACROS but not __STDC_CONSTANT_MACROS). 26094 mpfr.texi: improvement concerning the use of intmax_t and uintmax_t. 26095 [merged changesets r6160 and r6161 from the 2.4 branch] 26096 260972009-04-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26098 26099 [INSTALL] updated Notes on AIX/PowerPC 26100 261012009-04-08 Philippe Théveny <philippe.theveny@laposte.net> 26102 26103 NEWS mpfr.texi get_f.c: mpfr_get_f now returns the usual ternary value. 26104 tests/tget_f.c: test the ternary value and the erange flag. 26105 261062009-04-08 Vincent Lefèvre <vincent@vinc17.net> 26107 26108 tests/tget_z.c: do not assume specific values of the ternary value. 26109 get_z.c: simplified code. 26110 26111 NEWS: s/an inexact value/a ternary value/ 26112 261132009-04-08 Philippe Théveny <philippe.theveny@laposte.net> 26114 26115 NEWS mpfr.texi get_z.c: mpfr_get_z now returns an inexact value. 26116 mpfr.h: change prototype of mpfr_get_z. 26117 tests/tget_z.c: test inexact value. 26118 261192009-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26120 26121 [mpf2mpfr.h] added comment for #endif 26122 261232009-04-08 Philippe Théveny <philippe.theveny@laposte.net> 26124 26125 mpf2mpfr.h: fix typo 26126 261272009-04-02 Vincent Lefèvre <vincent@vinc17.net> 26128 26129 get_z.c: fixed title in comment. 26130 261312009-04-01 Vincent Lefèvre <vincent@vinc17.net> 26132 26133 get_z.c: detect out-of-range precision (such a detection could be missed 26134 if mpfr_exp_t > mpfr_prec_t). 26135 26136 Removed the comment from mpfr.h added in r6149, and patched get_z.c 26137 (safer code is better than a comment). 26138 26139 mpfr.h: important comment to validate the change done in r6147. 26140 26141 get_z_exp.c: updated comments. 26142 261432009-04-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26144 26145 [get_z.c] simplified the code, removed the FIXME 26146 [tget_z.c] added new test 26147 26148 [mpfr.texi] completed documentation of mpfr_get_z_exp (was incomplete for 0) 26149 [tget_z.c] added test case for 0 with emin > 0 (should give 100% coverage for 26150 get_z.c) 26151 261522009-03-30 Philippe Théveny <philippe.theveny@laposte.net> 26153 26154 strtofr.c tests/tset_str.c: Code simplification (sizeof (char) is always 1). 26155 vasprintf.c: Cast into size_t (just in case). 26156 26157 vasprintf.c: Code simplification (sizeof (char) is always 1). 26158 261592009-03-27 Philippe Théveny <philippe.theveny@laposte.net> 26160 26161 acinclude.m4: remove definition of va_copy, just detect its presence. 26162 printf.c vasprintf.c: #define a replacement of va_copy if needed (in the same way as gmp). 26163 261642009-03-26 Philippe Théveny <philippe.theveny@laposte.net> 26165 26166 acinclude.m4: Change MPFR_FUNC_PRINTF_SPEC (renamed MPFR_FUNC_GMP_PRINTF_SPEC) so that it actually checks output. 26167 261682009-03-25 Philippe Théveny <philippe.theveny@laposte.net> 26169 26170 Change base upper limit in string conversion up to 62. 26171 261722009-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26173 26174 [mpfr.texi] fixed documentation of mpfr_get_str which was wrong 26175 [tget_str.c] added test cases for odd base and tie breaking case 26176 [get_str.c] fixed typos in comments 26177 26178 [tests/random2.c] added missing mpfr-test.h (revealed by nightly tests), and 26179 removed mpfr-impl.h (already included in mpfr-test.h) 26180 I have also removed MPFR_NEED_LONGLONG_H: I don't see why it 26181 is needed, and all tests pass. 26182 261832009-03-24 Philippe Théveny <philippe.theveny@laposte.net> 26184 26185 mpfr.texi: Add a note on mpfr_printf output in binary with precision one. 26186 26187 urandomb.c mpfr-gmp.c mpfr-gmp.h: mpfr_rand_raw is now in urandom.c. 26188 mpfr-impl.h: mpfr_rand_raw is now always build as an internal function. 26189 TODO tests/tests.c tests/random2.c: Use mpfr_rand_raw instead of _gmp_rand 26190 26191 Move mpfr_random2 to tests directory, remove it from API. 26192 26193 mpfr.texi: Improve documentation in Formatted Output Functions/Format String subsection. 26194 261952009-03-24 Vincent Lefèvre <vincent@vinc17.net> 26196 26197 cos.c, sin.c: added MPFR_ASSERTN for huge expx. 26198 261992009-03-21 Vincent Lefèvre <vincent@vinc17.net> 26200 26201 mpfr.texi: corrected mpfr_strtofr documentation ("NAN()" is accepted). 26202 tests/tstrtofr.c: added a test for "NAN()". 26203 Note: the code follows the ISO C99 standard for strtod, as explained 26204 in the mpfr_strtofr documentation, so that the code was correct. 26205 [merged changeset 6131 from the 2.4 branch and changed GMP_RNDN into 26206 MPFR_RNDN] 26207 262082009-03-19 Vincent Lefèvre <vincent@vinc17.net> 26209 26210 mpfrlint: added some tests for acinclude.m4 and configure.in (sh). 26211 26212 Applied patch from Ralf Wildenhues. 26213 * configure.in: Avoid unportable (and unneeded) shell quoting. 26214 * acinclude.m4: Avoid non-POSIX shell construct. 26215 262162009-03-18 Vincent Lefèvre <vincent@vinc17.net> 26217 26218 tests/tmin_prec.c: replaced GMP_RNDN by MPFR_RNDN. 26219 262202009-03-16 Vincent Lefèvre <vincent@vinc17.net> 26221 26222 tests/tset_ld.c: removed unused variable. 26223 262242009-03-16 Philippe Théveny <philippe.theveny@laposte.net> 26225 26226 tests/tset_ld.c: Add test case for the bug fixed with r6101. 26227 262282009-03-16 Vincent Lefèvre <vincent@vinc17.net> 26229 26230 tests/tmin_prec.c: added tests. 26231 26232 tests: updated svn:ignore property. 26233 26234 min_prec.c: fixed another bug (the code was incorrect with >= 2 limbs). 26235 26236 tests/tmin_prec.c: bug fix (side effects in MPFR_ASSERTN), new tests. 26237 26238 README.dev: added a note about assertions and code with side effects. 26239 262402009-03-16 Philippe Théveny <philippe.theveny@laposte.net> 26241 26242 tests/tfprintf.c: Use a value less than 2^31-1 compatible (thus < LONG_MAX) in bug_20090316 (cf r6112). 26243 262442009-03-16 Vincent Lefèvre <vincent@vinc17.net> 26245 26246 Replaced GMP_RND* by MPFR_RND*. 26247 262482009-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26249 26250 [tests/tmin_prec.c] new file contributed from Laurent Fousse 26251 [tests/Makefile.am] added tmin_prec 26252 262532009-03-16 Vincent Lefèvre <vincent@vinc17.net> 26254 26255 min_prec.c: removed a useless test. 26256 26257 min_prec.c: fixed another bug. 26258 262592009-03-16 Philippe Théveny <philippe.theveny@laposte.net> 26260 26261 vasprintf.c: Add more debug assertion on the buffer size. 26262 26263 vasprintf.c: Fix bug_20090316 (in buffer_cat, the buffer was 1 character too small in some cases). 26264 tests/tfprintf.c: Add test for bug_20090316. 26265 262662009-03-16 Vincent Lefèvre <vincent@vinc17.net> 26267 26268 tests/tadd.c: changed GMP_RND* (from r6071) into MPFR_RND*; this should 26269 have been done when porting the patch from the 2.4 branch. 26270 262712009-03-16 Philippe Théveny <philippe.theveny@laposte.net> 26272 26273 tests/tprintf.c: Use new environment variable MPFR_CHECK_LARGEMEM for memory expensive test. 26274 262752009-03-16 Vincent Lefèvre <vincent@vinc17.net> 26276 26277 min_prec.c: bug fixed by Laurent. 26278 262792009-03-16 Philippe Théveny <philippe.theveny@laposte.net> 26280 26281 tests/tsprintf.c: Fix typo. 26282 262832009-03-16 Vincent Lefèvre <vincent@vinc17.net> 26284 26285 Fixed the prototype of mpfr_min_prec (should return a mpfr_prec_t) 26286 and its description. 26287 26288 min_prec.c: fixed a bug (but the code should be improved). 26289 26290 min_prec.c: simplified the singular cases (see other functions). 26291 262922009-03-15 Laurent Fousse <laurent@komite.net> 26293 26294 Add prototype for mpfr_min_prec in mpfr.h. 26295 26296 Add documentation for mpfr_min_prec. 26297 26298 New function mpfr_min_prec. 26299 263002009-03-15 Vincent Lefèvre <vincent@vinc17.net> 26301 26302 get_ld.c: fixed bugs in the case HAVE_LDOUBLE_IEEE_EXT_LITTLE (one found 26303 by Steve Kargl, and another one concerning the mpfr_set_emax value). 26304 263052009-03-13 Philippe Théveny <philippe.theveny@laposte.net> 26306 26307 vasprintf.c: This is probably dead code, but being uncertain, put an assert here. 26308 26309 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. 26310 26311 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. 26312 26313 vasprintf.c: Fix bug. 26314 26315 tests/tprintf.c: Add an expensive test where the output number has more than INT_MAX characters. 26316 vasprintf.c: Fix the bug triggered by the new test in tsprintf.c. 26317 26318 mpfr.texi: Do cosmetic changes and add some details on printf behavior when the precision field is empty. 26319 tests/tsprintf.c: improve code coverage. 26320 tests/tprintf.c: improve code coverage, check the behavior describe in mpfr.texi. 26321 263222009-03-12 Vincent Lefèvre <vincent@vinc17.net> 26323 26324 zeta_ui.c: correction r6090 was incorrect as there was another problem: 26325 the 3rd argument of mpz_divexact_ui is an unsigned long, not a limb. 26326 So, fixed the shift count (assuming no padding bits in unsigned long). 26327 26328 zeta_ui.c bug fix: a shift count could be >= width of type (if a limb is 26329 a long long and long long is twice the size of a long). This problem was 26330 detected by a warning on gcc40 with CFLAGS="-mpowerpc64 -mcpu=970 -O2". 26331 263322009-03-10 Vincent Lefèvre <vincent@vinc17.net> 26333 26334 tests/tprintf.c: added missing cast to void * for %p. 26335 263362009-03-09 Vincent Lefèvre <vincent@vinc17.net> 26337 26338 tests/tfprintf.c: added missing cast to void * for %p. 26339 26340 vasprintf.c: fixed bug in CONSUME_VA_ARG for case MP_LIMB_ARG (%Mu). 26341 26342 README.dev: GMP with ABI=mode32 should be tested on 64-bit PowerPC. 26343 263442009-03-06 Philippe Théveny <philippe.theveny@laposte.net> 26345 26346 vasprintf.c: now return -1 when the format string is invalid (undefined behavior in standard C99) 26347 tests/tprintf.c: Additional checks with invalid format strings. 26348 26349 mpfr.texi: Add missing conversion specifier accepted with mpfr_t variable. 26350 263512009-03-06 Vincent Lefèvre <vincent@vinc17.net> 26352 26353 add1.c: assertions on the argument values should use MPFR_ASSERTN. 26354 263552009-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26356 26357 [cache.c] improved comment for mpfr_init_cache 26358 26359 [add1.c] transformed switch() into if-then-else, to get 100% coverage 26360 263612009-03-06 Vincent Lefèvre <vincent@vinc17.net> 26362 26363 untabify 26364 26365 update-faq: change GMP_RND into MPFR_RND from the version on the web 26366 (since MPFR 3.0 hasn't been released yet, the FAQ still uses the 2.x 26367 API). 26368 263692009-03-05 Vincent Lefèvre <vincent@vinc17.net> 26370 26371 tests/tadd.c: completed the code coverage (case bk == 0 in add1.c). 26372 263732009-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26374 26375 [mpfr-impl.h,cache.c] commented out mpfr_init_cache 26376 26377 [const_catalan.c] decreased initial Ziv precision to get 100% coverage 26378 26379 [cmp2.c] added comments 26380 [tcmp2.c] added test to improve coverage to 100% 26381 26382 [atan2.c,tatan.c] reduced Ziv's initial precision and added test to have 26383 100% coverage of atan2.c 26384 26385 [atan.c] coverage should now be 100% 26386 263872009-03-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26388 26389 [algorithms.bib] added new reference 26390 [TODO] added pointers 26391 263922009-03-04 Vincent Lefèvre <vincent@vinc17.net> 26393 26394 mpfr-gmp.c (mpfr_assert_fail): output "MPFR" too in assertion failure 26395 messages. 26396 26397 Updated mpfrlint script. 26398 26399 mpfr.texi: updated month. 26400 26401 NEWS: say that the license has changed. 26402 264032009-03-03 Vincent Lefèvre <vincent@vinc17.net> 26404 26405 Updated NEWS (function mpfr_random has been removed). 26406 264072009-03-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26408 26409 GMP_RNDX -> MPFR_RNDX 26410 264112009-03-03 Vincent Lefèvre <vincent@vinc17.net> 26412 26413 tests: added taway to svn:ignore property. 26414 26415 Update to LGPL v3+, as decided by the main MPFR developers. 26416 264172009-02-27 Vincent Lefèvre <vincent@vinc17.net> 26418 26419 Untabified and deleted trailing spaces (for patches). 26420 264212009-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26422 26423 [rint.c] fixed a bug incorporated with the round away mode 26424 [tget_sj.c] fixed the tests for round away 26425 26426 [rint.c] fixed bug with round away 26427 [taway.c] new test file for round away (with random values) 26428 [tests/Makefile.am] added taway 26429 [set_z.c] GNU style 26430 264312009-02-27 Philippe Théveny <philippe.theveny@laposte.net> 26432 26433 tests/tests.c: Change test5rm (formerly test4rm) so that it checks the new 26434 GMP_RNDA rounding mode, and that the corresponding rounding towards infinity 26435 is checked with GMP_RNDZ or with GMP_RNDA in one-pass mode (now, two-pass 26436 mode). Remove a comment about a warning from gcc solved with r5057. 26437 264382009-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26439 26440 [rem1.c] fixed bug found in adding tests for round away 26441 26442 [add.c] added comment for 0 + 0 with round away 26443 264442009-02-26 Vincent Lefèvre <vincent@vinc17.net> 26445 26446 tests/texceptions.c: removed obsolete comments from r2427. 26447 264482009-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26449 26450 [mpfr.h] added comment about order of rounding modes 26451 [texceptions.c] added comments, fixed typo 26452 [tsub.c] added test, fixed typo 26453 264542009-02-26 Philippe Théveny <philippe.theveny@laposte.net> 26455 26456 Add tests with round away mode. 26457 264582009-02-26 Vincent Lefèvre <vincent@vinc17.net> 26459 26460 Updated version to 3.0.0-dev. 26461 264622009-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26463 26464 added round to away (still experimental) 26465 26466 [mpfr.h] added comments for rounding modes 26467 264682009-02-26 Vincent Lefèvre <vincent@vinc17.net> 26469 26470 Added svn:ignore property on the m4 directory (these .m4 files are 26471 generated automatically). 26472 26473 Makefile.am: updated -version-info (since mpfr_random has been removed, 26474 we already know its value). 26475 26476 Makefile.am: do not check libtool -version-info value if the VERSION 26477 file contains "-dev". 26478 26479 Makefile.am: In a "make dist", check that libtool -version-info value 26480 is up-to-date (this is a heuristic only). 26481 26482 README.dev: updated "To make a release" -- it is important to read 26483 this section entirely before making any release (even if some steps 26484 may be skipped for some particular releases). 26485 264862009-02-25 Vincent Lefèvre <vincent@vinc17.net> 26487 26488 tests/tsprintf.c: do not use VLA's (C99 only). 26489 26490 README.dev: update about patches. 26491 26492 tests/tsprintf.c: coding style: removed spurious spaces. 26493 26494 mpfr.texi: updated month. 26495 26496 printf.c: fixed assertion failures in the case buffer == NULL and 26497 size == 0 (see r5995). Also replaced MPFR_ASSERTD(buf != NULL) by 26498 MPFR_ASSERTN(buf != NULL) since buf is provided as an argument. 26499 26500 tests/tsprintf.c: added mpfr_snprintf/mpfr_vsnprintf tests with 26501 buffer == NULL and size == 0 (as allowed in C99 snprintf/vsnprintf 26502 and by the MPFR documentation). 26503 265042009-02-25 Philippe Théveny <philippe.theveny@laposte.net> 26505 26506 mpfr.texi: Fix typos. 26507 265082009-02-24 Vincent Lefèvre <vincent@vinc17.net> 26509 26510 tuneup.c: untabified. 26511 265122009-02-24 Philippe Théveny <philippe.theveny@laposte.net> 26513 26514 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). 26515 tests/tsprintf.c: Fix test of mpfr_snprintf and mpfr_vsnprintf (the wrong return value was checked). 26516 265172009-02-24 Vincent Lefèvre <vincent@vinc17.net> 26518 26519 printf.c: fix buffer overflow in mpfr_snprintf and mpfr_vsnprintf. 26520 26521 tsprintf.c: added a test showing a buffer overflow in mpfr_vsnprintf. 26522 26523 tsprintf.c: added a test showing a buffer overflow in mpfr_snprintf. 26524 265252009-02-23 Vincent Lefèvre <vincent@vinc17.net> 26526 26527 Changed how the test of MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR and 26528 MPFR_VERSION_PATCHLEVEL vs MPFR_VERSION_STRING is performed. 26529 Detailed explanations: 26530 The test was enabled only in release tarballs (suffix not present), 26531 where tests/tversion.c normally contained a "#if 1" (though this 26532 is not the case in the MPFR 2.4.0 tarball). In patches, this test 26533 should be disabled by changing the "#if 1" into "#if 0", due to 26534 the suffix. But as one should be able to apply any patches (in any 26535 order), this method was not satisfactory. The test has been moved 26536 from tests/tversion.c to tests/tests.c (in function test_version), 26537 and the suffix is now ignored in this test; the change of #if has 26538 been removed from the update-version script. 26539 265402009-02-20 Vincent Lefèvre <vincent@vinc17.net> 26541 26542 README.dev: corrected update-version usage for patches. 26543 26544 FAQ update. 26545 265462009-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26547 26548 [mparam_h.in] added default thresholds for sparc64 26549 [tuneup.c] print gcc patchlevel 26550 265512009-02-19 Vincent Lefèvre <vincent@vinc17.net> 26552 26553 speed.c, tests/texp.c: untabified. 26554 26555 mpfr.texi: improved mpfr_strtofr documentation (completing r5965). 26556 265572009-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26558 26559 [mparam_h.in] added tuning for powerpc64 26560 265612009-02-18 Philippe Théveny <philippe.theveny@laposte.net> 26562 26563 strtofr.c: fix typo. 26564 26565 strtofr.c: accept bases up to 62. 26566 mpfr.texi: modify mpfr_strtofr documentation accordingly. 26567 tests/tstrtofr.c: add tests for bases 62, 60, and 61. 26568 265692009-02-17 Philippe Théveny <philippe.theveny@laposte.net> 26570 26571 mparam_h.in: Change core2/64bit parameters. 26572 265732009-02-17 Vincent Lefèvre <vincent@vinc17.net> 26574 26575 Checks whether C99 length modifiers 'hh' and 'll' are supported by the 26576 system ('hh' is absent on alpha-OSF1-V5, bug reported by Kate Minola). 26577 [Merged changeset 5956 from the 2.4 branch.] 26578 265792009-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26580 26581 [texp.c] yet another better fix 26582 26583 [texp.c] fixed previous patch and added comment 26584 26585 [texp.c] fixed corner case test 26586 265872009-02-16 Vincent Lefèvre <vincent@vinc17.net> 26588 26589 README.dev: improved latest change. 26590 26591 README.dev: mentioned update-version for patches. 26592 265932009-02-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26594 26595 [mpfr-gfx.c] added -p option to produce a Postscript file 26596 265972009-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26598 26599 [mparam_h.in] added thresholds for ARM 26600 26601 [README.dev] added description of how to tune MPFR 26602 26603 [README.dev] added another example of using mpfr-gfx 26604 26605 [Makefile] modified Makefile to compile statically, and to allow also 26606 build directories of GMP/MPFR 26607 266082009-02-10 Philippe Théveny <philippe.theveny@laposte.net> 26609 26610 mbench/mpfr-gfx.c: add option -rPREC_RATIO for geometric progression. 26611 266122009-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26613 26614 [mparam_h.in] updated Itanium parameters (now for Itanium2) 26615 26616 [mparam_h.in] added symbol __itanium__ for Itanium[12] 26617 266182009-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26619 26620 [README.dev] fixed typo 26621 [mpfr-gfx.c] added comments in the code (might be useful) 26622 26623 [README.dev] added pointer to mbench to check the thresholds 26624 26625 [mpfr-gfx.c] now also produces a plot.gnuplot file together with plot.data 26626 26627 [mparam_h.in] updated default thresholds with gmp-4.2.4 26628 26629 [tuneup.c] fixed typo 26630 26631 [Makefile.am] added stuff to compile speed program 26632 26633 [speed.c] preliminary program to check the tuning of mpfr (based on tuneup.c) 26634 So far it only measures mpfr_mul up to 1000 bits, with increment 26635 ratio of 1.1. Requires --with-gmp-build like tuneup. 26636 Feel free to improve! 26637 26638 [mparam_h.in] allow __tune_ia64__ in addition to __ia64 26639 26640 [mparam_h.in] replaced __pentium4 by __tune_pentium4__, ... 26641 266422009-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26643 26644 [acinclude.m4] removed detection of HAVE_HOST_CORE2 26645 [mparam_h.in] replaced HAVE_HOST_CORE2 by __tune_core2__ 26646 266472009-02-06 Philippe Théveny <philippe.theveny@laposte.net> 26648 26649 tests/mpf_compat.h: complete r5922 adding missing mpz_init/mpz_clear. 26650 266512009-02-06 Vincent Lefèvre <vincent@vinc17.net> 26652 26653 TODO: updated efficiency items. 26654 266552009-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26656 26657 [TODO] added 2 efficiency items 26658 266592009-02-06 Vincent Lefèvre <vincent@vinc17.net> 26660 26661 mpfr.texi: moved MPFR_DECL_INIT specification into Section 26662 "Initialization Functions" (now in the standard MPFR API), 26663 and removed now empty Section "Advanced Functions". 26664 266652009-02-05 Vincent Lefèvre <vincent@vinc17.net> 26666 26667 mparam_h.in: updated comment to mention -march=native and -mtune=native. 26668 26669 mpfr.h: updated a comment concerning MPFR_DECL_INIT. 26670 266712009-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26672 26673 [mpf2mpfr.h] added mpz_set_f (reported by Francois Morain) 26674 26675 [mpfr.texi] moved mpfr_inits, mpfr_inits2, mpfr_clears to supported functions 26676 [TODO] added new info about MPIR 26677 266782009-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26679 26680 [TODO] added info to distinguish GMP and MPIR 26681 266822009-01-26 Vincent Lefèvre <vincent@vinc17.net> 26683 26684 Updated the version on the trunk. 26685 266862009-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26687 26688 [nightly-test] removed --disable-alloca (GMP option) 26689 266902009-01-25 Vincent Lefèvre <vincent@vinc17.net> 26691 26692 README.dev: --disable-alloca is a GMP configure option. 26693 266942009-01-21 Philippe Théveny <philippe.theveny@laposte.net> 26695 26696 tests/tsprintf.c: remove tests against libc's printf with "%a" (not in ISO C90), and with "%p" (implementation defined). 26697 [merge -c 5885 from branches/2.4] 26698 266992009-01-21 Vincent Lefèvre <vincent@vinc17.net> 26700 26701 mpfr-impl.h: avoid a compiler bug under Mac OS X Tiger + Xcode (&x == &x 26702 is false) that makes tset_d fail; this problem was introduced in r5880. 26703 267042009-01-20 Vincent Lefèvre <vincent@vinc17.net> 26705 26706 Fixed bug reported by Chris Saunders: if _GMP_IEEE_FLOATS is defined, 26707 the build of tset_ld.c fails because DOUBLE_ISNAN expects a lvalue. 26708 * mpfr-impl.h: documented that for such macros, the argument must 26709 be a lvalue, and always make sure that it is a lvalue (so that 26710 a failure doesn't depend on the environment). 26711 * tests/tset_ld.c: fixed the bug. 26712 26713 tests/tversion.c: be more tolerant when checking whether gmp.h version 26714 and libgmp version are the same (in case patch level is 0). 26715 26716 tests/tset_ld.c: added explanation of NaN-related failures in case 26717 MPFR_NANISNAN is defined. 26718 26719 Added missing void's. 26720 26721 tests/tsprintf.c: removed a blank line (for consistency with the 26722 2.4 branch). 26723 26724 vasprintf.c: deleted trailing spaces. 26725 267262009-01-19 Vincent Lefèvre <vincent@vinc17.net> 26727 26728 mpfr-impl.h: comment for DOUBLE_ISNAN with MPFR_NANISNAN defined. 26729 26730 tests/tset_d.c: fixed test of mpfr_set_d on -0 with gcc -ffast-math 26731 (the -d for d = 0.0 was giving 0.0, hence a spurious failure). 26732 26733 mpfr-impl.h: the DOUBLE_ISNAN macro wasn't working with gcc -ffast-math 26734 (at least on x86_64); fixed that by adding another test. 26735 tests/tset_ld.c: Isnan_ld wasn't working either; also the NaN test was 26736 incorrect. Now, the failure on NaN is correctly reported. 26737 26738 tests/tcmp_d.c, tests/tcmp_ld.c, tests/tset_d.c: corrected message. 26739 26740 tests/tcmp_d.c, tests/tcmp_ld.c, tests/tset_d.c: added explanations 26741 of NaN-related failures in case MPFR_NANISNAN is defined. 26742 Note: in tset_d.c, moved the NaN test before the signed-zero test 26743 to catch the failure on the NaN first. 26744 26745 acinclude.m4: improved warning message. 26746 26747 INSTALL: updated "In case of problem". 26748 26749 acinclude.m4: added a warning message for the NAN != NAN test. 26750 267512009-01-19 Philippe Théveny <philippe.theveny@laposte.net> 26752 26753 tcmp_d.c tset_d.c tcmp_ld.c: Remove tests with NaN when MPFR_NANISNAN is defined. 26754 tests.c: Add a warning in a comment that Isnan always returns 0 on systems where MPFR_NANISNAN is defined. 26755 26756 vasprintf.c: do not support 't' when NPRINTF_T is defined, HAVE_STDINT_H -> _MPFR_H_HAVE_INTMAX_T. 26757 26758 tests/tfprintf.c: renumber tests (there was two tests #9). 26759 267602009-01-19 Vincent Lefèvre <vincent@vinc17.net> 26761 26762 tests/tfprintf.c: %c takes an int argument, not a char (see C standard). 26763 26764 tests/tprintf.c, tests/tsprintf.c: 26765 * %c takes an int argument, not a char (see C standard), even though 26766 this may be equivalent due to integer promotion. 26767 * Add void in prototypes of functions taking no arguments. 26768 26769 mpfr.texi: updated references to the GMP manual. 26770 26771 mpfr.texi: typo in comment. 26772 26773 mpfr.texi: added .info extension in cross-references, to avoid the bug 26774 reported here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484740 26775 26776 mpfr.texi: added a reference to a texinfo bug in a comment. 26777 26778 mpfr.texi: added missing @code{}. 26779 26780 mpfr.texi: don't -> do not, doesn't -> does not, won't -> will not. 26781 26782 mpfr.texi: improved Section "Format String". 26783 267842009-01-19 Philippe Théveny <philippe.theveny@laposte.net> 26785 26786 tests/tsprintf.c: check if native types are really processed by libc printf. 26787 267882009-01-19 Vincent Lefèvre <vincent@vinc17.net> 26789 26790 README.dev: no longer mentions HAVE_QUAD_T since it is no longer used. 26791 267922009-01-19 Philippe Théveny <philippe.theveny@laposte.net> 26793 26794 mpfr.texi: Explicit list of type supported by mpfr_printf functions. 26795 acinclude.m4: Remove detection of type modifier 'q'. 26796 vasprintf.c: Remove support of type modifier 'q'. 26797 tests/tfprintf.c tests/tprintf.c: Remove tests with type modifier 'q'. 26798 26799 INSTALL: Warn that --with-gmp, --with-gmp-include/--with-gmp-lib, and --with-gmp-build options are mutually exclusive. 26800 configure.in: Check and fail if --with-gmp, --with-gmp-include/--with-gmp-lib, or --with-gmp-build are use simultaneously. 26801 268022009-01-19 Vincent Lefèvre <vincent@vinc17.net> 26803 26804 tests/tests.c: include <sys/fpu.h> only if need be. 26805 268062009-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26807 26808 [mpfr.texi] made difference between mpfr_set_str and mpfr_strtofr clearer 26809 (after remark from Luis Rivera) 26810 26811 [mpfr.texi] fixed order -> kind (typo found by Luis Rivera, thanks) 26812 268132009-01-16 Philippe Théveny <philippe.theveny@laposte.net> 26814 26815 tfprintf.c tprintf.c: Test double with "%f" instead of "%e" so as to avoid failure due to exponent "e+000" on MS Windows. 26816 26817 tests/tfprintf.c tests/tsprintf.c tests/tprintf.c acinclude.m4 vasprintf.c: No longer check libc's printf. 26818 26819 acinclude.m4: Check if %Ld specification is supported (not always the case with MS Windows) 26820 tests/tfprintf.c tests/tprintf.c tests/tsprintf.c: do not check %Ld specification when not available. 26821 26822 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. 26823 vasprintf.c: make #include-s for intmax_t uniform and use _MPFR_H_HAVE_INTMAX_T instead of HAVE_INTMAX_T. 26824 268252009-01-15 Philippe Théveny <philippe.theveny@laposte.net> 26826 26827 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). 26828 26829 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). 26830 268312009-01-15 Vincent Lefèvre <vincent@vinc17.net> 26832 26833 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 26834 26835 vasprintf.c: deleted trailing spaces. 26836 26837 configure.in: be more tolerant when checking whether gmp.h version 26838 and libgmp version are the same (in case patch level is 0). 26839 26840 Copyright notice update: added 2009 with 26841 perl -pi -e 's/2008 Free Software/2008, 2009 Free Software/' **/*(^/) 26842 under zsh. 26843 268442009-01-14 Vincent Lefèvre <vincent@vinc17.net> 26845 26846 Fixed remaining printf format strings. 26847 26848 tests/tadd1sp.c, tests/tsub1sp.c: fixed function prototypes. 26849 26850 tests/teq.c, tests/tests.c: fixed printf format strings. 26851 26852 tests/tcmp2.c: fixed printf format strings. 26853 268542009-01-13 Vincent Lefèvre <vincent@vinc17.net> 26855 26856 tests/tset_str.c: fixed printf format string. 26857 268582009-01-12 Vincent Lefèvre <vincent@vinc17.net> 26859 26860 mpfr.texi: consistency changes and corrections concerning the "erange" 26861 flag (do not use @code{} as this is not an identifier, @emph{} is used 26862 as this is not an English word -- but @emph{} should probably be used 26863 too for the other flag names). 26864 26865 mpfr.texi: typo. 26866 268672009-01-12 Philippe Théveny <philippe.theveny@laposte.net> 26868 26869 acinclude.m4: New macro MPFR_CHECK_PRINTF_SPEC looking for support of the "%jd", "%qd", and "%td" conversion specifications in printf and gmp_printf. 26870 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. 26871 vasprintf.c: Disable support for length modifiers not supported by libc's printf ('j' and 'q' for this time). 26872 tests/tprintf.c, tests/tfprintf.c: Disable tests for length modifiers not supported by gmp_printf ('j', 'q', and 't' for this time). 26873 26874 mpfr.texi: Fix typo. 26875 268762009-01-08 Vincent Lefèvre <vincent@vinc17.net> 26877 26878 mpfr.texi: update to January 2009. 26879 26880 Removed useless #include of gmp.h from tests/tfprintf.c and 26881 tests/tsprintf.c for consistency. 26882 268832009-01-08 Philippe Théveny <philippe.theveny@laposte.net> 26884 26885 tests/tfprintf.c: Make tests with 'M' specifier optional. 26886 mpfr.texi: Add a warning that gmp may not support 'M' specifier. 26887 vasprintf.c: Add warning comment about 'M' specifier. 26888 26889 mpfr.texi: Fix wrong definition of rounding specifiers. 26890 268912008-12-30 Vincent Lefèvre <vincent@vinc17.net> 26892 26893 out_str.c: added assert (check that base is in the required range). 26894 268952008-12-26 Vincent Lefèvre <vincent@vinc17.net> 26896 26897 README.dev: suggest "-Wformat=2". 26898 26899 zeta.c: fixed types for printf when DEBUG is defined. 26900 26901 sub1sp.c: fixed types for printf when WANT_ASSERT >= 2 and 26902 when DEBUG is defined. 26903 26904 sub1.c: fixed types for printf when DEBUG is defined. 26905 26906 set_d64.c: set T[] to unsigned int (instead of int) since its values 26907 are printed with %u. 26908 26909 add1sp.c: fixed types for printf when DEBUG is defined. 26910 26911 mpfr-impl.h: fixed MPFR_UNSIGNED_MINUS_MODULO logic and added missing 26912 parentheses. 26913 26914 div.c: fixed types for fprintf when DEBUG and/or DEBUG2 is defined. 26915 26916 div.c: fixed #ifdef. 26917 26918 round_p.c: fixed types for fprintf when WANT_ASSERT >= 2 (since 26919 mp_prec_t is unsigned, it's better to use unsigned long). 26920 26921 round_p.c: fixed types for fprintf when WANT_ASSERT >= 2. 26922 269232008-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26924 26925 [mpfr.tex] improve documentation of %P 26926 269272008-12-18 Vincent Lefèvre <vincent@vinc17.net> 26928 26929 Deleted trailing spaces. 26930 269312008-12-17 Philippe Théveny <philippe.theveny@laposte.net> 26932 26933 tests/tsprintf.c: clean-up code, improve comment, and put optional tests in tail so that they fail last. 26934 26935 tests/tsprintf.c: Add two regression tests. 26936 269372008-12-16 Philippe Théveny <philippe.theveny@laposte.net> 26938 26939 acinclude.m4, vasprintf.c, tests/tfprintf.c, tests/tprintf.c, mpfr.texi: quad_t support 26940 26941 tests/tfprintf.c: code clean-up and output improvement. 26942 tests/tprintf.c: code clean-up. 26943 Note that unsigned long long variable is not set to 1 instead of -1 which was architecture dependent. 26944 269452008-12-16 Vincent Lefèvre <vincent@vinc17.net> 26946 26947 tests/tprintf.c: 26948 * stdout_redirect is a boolean (i.e., 0 or 1). 26949 * output freopen(..., stdout) error message to stderr. 26950 269512008-12-16 Philippe Théveny <philippe.theveny@laposte.net> 26952 26953 tfprintf.c: more user-friendly messages. 26954 tprintf.c: more user-friendly messages. Warning: because stdout might be redirected, error messages are printed to stderr. 26955 269562008-12-15 Vincent Lefèvre <vincent@vinc17.net> 26957 26958 mpfr.texi: more explanations on the precision field for mpfr_printf. 26959 26960 untabify and remove trailing spaces 26961 269622008-12-15 Philippe Théveny <philippe.theveny@laposte.net> 26963 26964 mpfr.texi: more explanations on the precision field. 26965 26966 mpfr.texi: Clearly mention that the length modifier 'q' is unsupported by mpfr-*printf. 26967 vasprintf.c: Do not take quad_t as a long long but as an insupported length modifier. 26968 acinclude.m4: Remove check for quad_t. 26969 tests/tprintf.c tests/tfprintf.c: Remove tests with 'q' length modifier. 26970 269712008-12-15 Vincent Lefèvre <vincent@vinc17.net> 26972 26973 tests/tstrtofr.c: fixed a test (in case |res| > 1). 26974 26975 tests/tstrtofr.c: fixed alignment bug in error message. 26976 269772008-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26978 26979 [nightly-test] added MPFR_CHECK_LIBC_PRINTF 26980 269812008-12-15 Philippe Théveny <philippe.theveny@laposte.net> 26982 26983 acinclude.m4: Check for quad_t. 26984 vasprintf.c: Accept length modifier 'q' if HAVE_QUAD_T is defined (instead of HAVE_LONG_LONG). 26985 README.dev: Add notice for new HAVE_QUAD_T macro. 26986 269872008-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 26988 26989 [mpfr.texi] added warning about usage of mpfr_init 26990 269912008-12-15 Vincent Lefèvre <vincent@vinc17.net> 26992 26993 tests/tprintf.c: _MPFR_H_HAVE_INTMAX_T -> HAVE_STDINT_H for <stdint.h>. 26994 269952008-12-15 Philippe Théveny <philippe.theveny@laposte.net> 26996 26997 tests/tsprintf.c: Tests against libc's sprintf function are no more executed unless the MPFR_CHECK_LIBC_PRINTF is defined. 26998 26999 tests/tsprintf.c: move bugs 20080610 and 20081214 outside the function random_double. 27000 270012008-12-15 Vincent Lefèvre <vincent@vinc17.net> 27002 27003 tests/tsprintf.c: completed comment about the sign of a null exponent. 27004 27005 INSTALL: added a note saying the L modifier was added in C89 (source: 27006 C99 rationale, Section 7.19.6.1). 27007 270082008-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27009 27010 [INSTALL] more Windows-related changes 27011 27012 [INSTALL] update on Windows (from Brian Gladman) 27013 27014 [configure.in] removed useless comment 27015 270162008-12-14 Vincent Lefèvre <vincent@vinc17.net> 27017 27018 INSTALL: references to ISO (international) instead of ANSI (American). 27019 27020 tests/tsprintf.c: corrected a comment. 27021 270222008-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27023 27024 [printf.c,vasprintf.c] include config.h if HAVE_CONFIG_H is defined, to 27025 solve problem noticed by Brian Gladman 27026 270272008-12-14 Vincent Lefèvre <vincent@vinc17.net> 27028 27029 tests/tsprintf.c: untabified. 27030 270312008-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27032 27033 [INSTALL] added hint for using the MinGW runtime 27034 27035 [tsprintf.c] added new hard-coded test (needs work to overcome error in 27036 system asprintf) 27037 27038 [tsprintf.c] fixed hard-coded test (spec was missing), and print values of 27039 xi,yi,spec in case of error 27040 270412008-12-14 Vincent Lefèvre <vincent@vinc17.net> 27042 27043 INSTALL: corrections on r5730. 27044 270452008-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27046 27047 [INSTALL] added notes on Windows Vista 64 problem 27048 270492008-12-12 Vincent Lefèvre <vincent@vinc17.net> 27050 27051 README: added "compile" since it is distributed in the tarball. 27052 27053 Added "compile" to svn:ignore property (this file is installed by 27054 "automake --add-missing" due to AM_PROG_CC_C_O, added in r5710). 27055 27056 vasprintf.c: avoid an abort if field width or precision is > INT_MAX. 27057 270582008-12-12 Philippe Théveny <philippe.theveny@laposte.net> 27059 27060 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. 27061 27062 configure.in: remove line 'GCC=' in icc tests which seems to confuse libtool. 27063 270642008-12-12 Vincent Lefèvre <vincent@vinc17.net> 27065 27066 set_ld.c: rewrote exp computation. 27067 27068 vasprintf.c: avoid a possible gcc 4.1.2 bug with -ftrapv. 27069 27070 vasprintf.c: revert incorrect change in r5713. 27071 270722008-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27073 27074 [set_ld.c] fixed problem with CC=g++ on 64-bit computer: 27075 $ g++ -v 27076 Using built-in specs. 27077 Target: x86_64-linux-gnu 27078 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 27079 Thread model: posix 27080 gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) 27081 27082 [vasprintf.c] patch to MPFR_ASSERTN(...) call to avoid failure with gcc -ftrapv 27083 with gcc 4.1.2 (probably compiler error) 27084 270852008-12-12 Philippe Théveny <philippe.theveny@laposte.net> 27086 27087 Makefile.am, tmul.c: Rename macro __SRCDIR to MPFR_SRCDIR. 27088 270892008-12-11 Philippe Théveny <philippe.theveny@laposte.net> 27090 27091 configure.in: Add AM_PROG_CC_C_O needed by tmul_CPPFLAGS. 27092 tests/Makefile.am: Add tmul.dat in EXTRA_DIST and pass srcdir to tmul.c through tmul_CPPFLAGS. 27093 tests/tmul.c: Add path to tmul.dat. 27094 270952008-12-09 Vincent Lefèvre <vincent@vinc17.net> 27096 27097 INSTALL: TLS on darwin may work, but I don't know anything more. 27098 See thread <https://gcc.gnu.org/legacy-ml/gcc/2008-12/msg00107.html>. 27099 271002008-12-08 Vincent Lefèvre <vincent@vinc17.net> 27101 27102 README: CVS -> Subversion. 27103 271042008-12-03 Vincent Lefèvre <vincent@vinc17.net> 27105 27106 configure.in: format --enable-decimal-float description on 80 columns. 27107 27108 configure.in: for --enable-thread-safe, say that the system must support 27109 it (like what has been done for --enable-logging, just above). 27110 27111 INSTALL: added details about ---enable-thread-safe and TLS support. 27112 271132008-11-28 Vincent Lefèvre <vincent@vinc17.net> 27114 27115 urandomb.c: added comments and cleaned up code. 27116 mpfr.texi: improved description of mpfr_urandomb. 27117 271182008-11-26 Vincent Lefèvre <vincent@vinc17.net> 27119 27120 mpfr.texi: changed URL added in r5696 to avoid a redirection. 27121 271222008-11-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27123 27124 [mpfr.texi] added official url on ftp.gnu.org 27125 271262008-11-26 Vincent Lefèvre <vincent@vinc17.net> 27127 27128 tests/tmul.c: removed useless variable. 27129 27130 tests/tmul.c: made reading a string from file more robust. 27131 271322008-11-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27133 27134 [tmul.c] moved long strings to file tmul.dat, so that gcc -ansi 27135 -pedantic-errors works (ISO C90 does not support strings of length 27136 > 509) 27137 271382008-11-26 Vincent Lefèvre <vincent@vinc17.net> 27139 27140 tests/tinternals.c: updated tests for guaranteed C90 support, e.g. with 27141 gcc -ansi -pedantic-errors (avoid error "string length 'nnn' is greater 27142 than the length '509' ISO C90 compilers are required to support" because 27143 expression for #expr in ASSERT_FAIL macro is too long). 27144 27145 README.dev: in Section "To make a release", suggest -pedantic-errors. 27146 271472008-11-22 Vincent Lefèvre <vincent@vinc17.net> 27148 27149 r5689 undone: some casts were incorrect (mp_exp_t may be greater than 27150 mp_prec_t, so that casting a mp_exp_t into a mp_prec_t can introduce a 27151 bug). There may be bugs in some cases, but the casts fix the symptom, 27152 not the bug (unless one casts the unsigned type to a signed type that 27153 is *strictly* larger, which is not possible here). 27154 271552008-11-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27156 27157 fixed some signed/unsigned warnings with g++ (please review) 27158 271592008-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27160 27161 [nightly-test] removed MPFR_CHECK_ALL (no longer used) 27162 added possibility to choose compiler (e.g., g++) 27163 27164 [README.dev] better check ./configure CC=g++ 27165 271662008-11-21 Philippe Théveny <philippe.theveny@laposte.net> 27167 27168 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). 27169 271702008-11-21 Vincent Lefèvre <vincent@vinc17.net> 27171 27172 README: added m4 directory (since it is distributed in the tarball). 27173 271742008-11-20 Vincent Lefèvre <vincent@vinc17.net> 27175 27176 Forgot to update Makefile.am too (for r5680). 27177 27178 configure.in: added AC_CONFIG_MACRO_DIR([m4]) for r5680. 27179 271802008-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27181 27182 [mpfr-gmp.c] added comment on recent bug fix on MacOS 27183 27184 [tests] changes to make compilation work with g++ (only fixed errors, 27185 several warnings remain) 27186 271872008-11-20 Vincent Lefèvre <vincent@vinc17.net> 27188 27189 Added m4/size_max.m4 file (from gettext). 27190 27191 README.dev: paragraph on tentative definitions. 27192 271932008-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27194 27195 [mpfr-gmp.c] replace tentative definitions by real definitions, solves 27196 configure problems with mpc (see https://lists.gforge.inria.fr/pipermail/mpc-discuss/2008-November/000048.html) 27197 271982008-11-18 Vincent Lefèvre <vincent@vinc17.net> 27199 27200 hypot.c: updated a comment. 27201 27202 tests/thypot.c: added a test. 27203 27204 hypot.c: simplified an expression; cosmetic changes. 27205 272062008-11-17 Philippe Théveny <philippe.theveny@laposte.net> 27207 27208 hypot.c: Fix underflow problem when diff_exp<=MPFR_EMAX_MAX-2 using fma (provided that mpfr_fma is immune to it). 27209 27210 algorithms.tex: Fix one typo in dilogarithm section. 27211 272122008-11-12 Vincent Lefèvre <vincent@vinc17.net> 27213 27214 mpfr.texi, NEWS: update concerning mpfr_eq. 27215 27216 mpfr.texi: improved mpfr_eq documentation. 27217 272182008-11-12 Philippe Théveny <philippe.theveny@laposte.net> 27219 27220 tests/tstrtofr.c: Add more information when test bug20081028 fails. 27221 272222008-11-07 Philippe Théveny <philippe.theveny@laposte.net> 27223 27224 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. 27225 tests/tstrtofr.c: Add other test values around 1 for the bug20081028 non regression test. 27226 272272008-11-07 Vincent Lefèvre <vincent@vinc17.net> 27228 27229 strtofr.c: improved style ("exact" is a boolean). 27230 272312008-11-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27232 27233 [strtofr.c] new patch (ternary value was still wrong in some cases), should 27234 be ok now 27235 [tstrtofr.c] added new test 27236 272372008-11-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27238 27239 [strtofr.c] review of patch added in revision 5660, and added comments 27240 272412008-10-29 Vincent Lefèvre <vincent@vinc17.net> 27242 27243 Updated NEWS file. 27244 27245 strtofr.c: in r5660, as pstr_size and pstr->prec both have type size_t, 27246 changed the type of i from mp_size_t to size_t for consistency. 27247 27248 strtofr.c: reverted the change done in r3008, which led to a trivial 27249 assertion. I think the goal is to make sure that pstr_size (of type 27250 size_t) can be represented in a mp_exp_t (as required in the code). 27251 272522008-10-29 Philippe Théveny <philippe.theveny@laposte.net> 27253 27254 strtofr.c: fix bug '[#6604] incorrect directed rounding in mpfr_strtofr'. 27255 272562008-10-29 Vincent Lefèvre <vincent@vinc17.net> 27257 27258 configure.in: replaced $(...) quoting style by "`...`" since the former 27259 is not supported everywhere (and indeed is not used by the autotools): 27260 https://gmplib.org/list-archives/gmp-bugs/2008-October/001185.html 27261 27262 tests/tstrtofr.c: added bug20081028 (bug found by Christoph Lauter 27263 in mpfr_set_str; this is the corresponding bug in mpfr_strtofr). 27264 27265 tests/tstrtofr.c: corrections related to C usage. 27266 27267 tests/tset_str.c: added bug20081028 (bug found by Christoph Lauter). 27268 272692008-10-27 Vincent Lefèvre <vincent@vinc17.net> 27270 27271 mpfr.texi: updated @dircategory (request by Karl Berry). 27272 27273 This is now GNU MPFR! 27274 27275 README: CVS -> Subversion. 27276 272772008-10-23 Philippe Théveny <philippe.theveny@laposte.net> 27278 27279 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. 27280 tests/tsprintf.c: Fix wrong test value accordingly, add non-regression tests. 27281 272822008-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27283 27284 [get_d64.c,set_d64.c] added reference to TR 24732 27285 272862008-10-16 Vincent Lefèvre <vincent@vinc17.net> 27287 27288 mpfr.h: added a comment about MPFR_SIGN. 27289 272902008-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27291 27292 [mpfr.h] fixed typo, and added warning about MPFR_SIGN. 27293 Shouldn't we move it in mpfr-impl.h? 27294 272952008-10-03 Vincent Lefèvre <vincent@vinc17.net> 27296 27297 INSTALL, configure.in: corrected documentation of --with-gmp* options. 27298 272992008-10-02 Vincent Lefèvre <vincent@vinc17.net> 27300 27301 INSTALL: gave more details about --with-gmp-build. 27302 273032008-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27304 27305 [INSTALL] added warning about usage of --with-gmp-build 27306 273072008-09-21 Vincent Lefèvre <vincent@vinc17.net> 27308 27309 TODO: updated LIA-2 terminology ("pole" was in the latest public draft, 27310 "infinitary" in the final standard). 27311 273122008-09-19 Philippe Théveny <philippe.theveny@laposte.net> 27313 27314 tests/tstrtofr.c: Remove underflow test unintentionally committed with revision 5640. 27315 273162008-09-18 Philippe Théveny <philippe.theveny@laposte.net> 27317 27318 Remove obsolete mpfr_random function and replace it by mpfr_urandomb in tests. 27319 27320 Add void in prototype. 27321 273222008-09-18 Vincent Lefèvre <vincent@vinc17.net> 27323 27324 tests/tests.c: added comments about the MPFR_FPU_PREC macro. 27325 273262008-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27327 27328 [tget_str.c] replaced 'double' input by 'char*' to avoid problems with single 27329 precision (partially solves #3353) 27330 273312008-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27332 27333 [README.dev] added item about coverage of releases 27334 273352008-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27336 27337 final got rid of generic.c (bug 6199) 27338 27339 [generic.c] removed unused file 27340 273412008-09-16 Vincent Lefèvre <vincent@vinc17.net> 27342 27343 NEWS, mpfr.texi: documented the fact that mpfr_random and mpfr_random2 27344 will be suppressed in the next release. 27345 27346 ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v". 27347 273482008-09-10 Philippe Théveny <philippe.theveny@laposte.net> 27349 27350 tests/tpow_z.c: Check test for bug20080904 with the minimum possible negative exponent so as not to underflow with (future) 128 bits machine. 27351 273522008-09-06 Vincent Lefèvre <vincent@vinc17.net> 27353 27354 pow.c: fixed bug20080904 (from tpow_z.c). 27355 27356 pow.c: added log messages. 27357 273582008-09-05 Philippe Théveny <philippe.theveny@laposte.net> 27359 27360 tests/tpow_z.c: Add a test that underflows. 27361 273622008-09-05 Vincent Lefèvre <vincent@vinc17.net> 27363 27364 configure.in: updated a comment (for the next automake version). 27365 27366 NEWS: added a note about mpfr_init_gmp_rand (removed in r4953). 27367 273682008-09-04 Vincent Lefèvre <vincent@vinc17.net> 27369 27370 README.dev: update (about AM_MAINTAINER_MODE). 27371 273722008-09-02 Vincent Lefèvre <vincent@vinc17.net> 27373 27374 Updated README file. 27375 273762008-09-01 Vincent Lefèvre <vincent@vinc17.net> 27377 27378 Removed patch-libtool and updated README.dev as libtool has been fixed. 27379 27380 NEWS file update (get default $CC and $CFLAGS from gmp.h). 27381 27382 configure.in: removed a useless blank line. 27383 27384 README.dev: reverse-merged r5440 (about __GMP_CC/__GMP_CFLAGS) as said. 27385 273862008-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27387 27388 [algorithms.tex] the truncation error for rec_sqrt was correct, but the 27389 reasoning was not detailed enough 27390 273912008-08-27 Vincent Lefèvre <vincent@vinc17.net> 27392 27393 Added patch-aclocal-icc; this is a port of the patch posted on 27394 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=485421 27395 for aclocal.m4 when libtool 1.5.26-4 from Debian has been used. 27396 273972008-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27398 27399 [rec_sqrt.c] fixed bug "bad_case1" (truncation error was forgotten, when 27400 output precision was smaller than input precision) 27401 274022008-08-27 Vincent Lefèvre <vincent@vinc17.net> 27403 27404 mpfr.texi: updated the month. 27405 274062008-08-26 Vincent Lefèvre <vincent@vinc17.net> 27407 27408 tests/trec_sqrt.c: enable the tests only with MPFR 2.4.0+. 27409 27410 NEWS: noted when some changes were applied in 2.3.* versions. 27411 274122008-08-25 Vincent Lefèvre <vincent@vinc17.net> 27413 27414 README.dev: completed information about integer types. 27415 27416 README.dev: added information about mixing signed and unsigned types. 27417 27418 li2.c: avoid even more mixing between signed and unsigned types, by 27419 casting mpfr_prec_t to mp_exp_t in expressions involving mp_exp_t. 27420 This time the bug is fixed: tli2 no longer freezes in 64 bits. 27421 27422 li2.c: use an "int" instead of "unsigned int" in li2_series() to avoid 27423 mixing signed and unsigned types, which can yield implicit conversions 27424 from signed into unsigned, and maybe problems on some platforms. This 27425 doesn't fix the current freeze of tli2 on 64-bit machines, though. 27426 274272008-08-24 Vincent Lefèvre <vincent@vinc17.net> 27428 27429 tests/tgeneric.c: changed the way a warning with gcc 4.2+ is avoided 27430 (r5335), as suggested by Manuel López-Ibáñez on GCC bug 36299. 27431 274322008-08-21 Vincent Lefèvre <vincent@vinc17.net> 27433 27434 Added data_check support to mpfr_sqr. 27435 Added bad_cases support to mpfr_sqr and mpfr_sqrt. 27436 27437 tests/tsqr.c: corrected function definitions. 27438 27439 Added data_check & bad_cases support to mpfr_rec_sqrt. 27440 27441 tests/trec_sqrt.c: added bad case that makes mpfr_rec_sqrt fail. 27442 27443 mpfr-impl.h: as not all ICC versions define the __ICC macro (only 27444 the __INTEL_COMPILER macro can be defined), define the __MPFR_ICC 27445 and __MPFR_GNUC macros in another way. 27446 27447 tests/tsprintf.c: fixed compilation failure when HAVE_DENORMS isn't 27448 defined, such as with icc 10.1 on Itanium. 27449 27450 tests/tprintf.c: to allow random values to be reproducible, 27451 do not call randlimb several times in a same expression, 27452 because the evaluation order is unspecified. 27453 27454 tests/tpow_all.c: added test of mpfr_rec_sqrt (only with MPFR 2.4.0+). 27455 27456 tests/tpow_all.c: removed useless parentheses. 27457 27458 rec_sqrt.c: added logging support. 27459 27460 algorithms.tex: replaced "towards" by "toward" for consistency with 27461 the MPFR manual and the standards. 27462 27463 algorithms.tex: corrected English usage, spelling and typography 27464 in the section on mpfr_hypot. 27465 274662008-08-20 Vincent Lefèvre <vincent@vinc17.net> 27467 27468 tests/thypot.c: added a test for tiny x and y (already done by the 27469 generic tests, but not yet in the 2.3 branch in extended exponent 27470 range). 27471 27472 tests/tgeneric.c: for the special cases tested in precision p1 27473 for n <= 3, set the extended exponent range. 27474 27475 tests/thypot.c: improved error messages. 27476 27477 tests/thypot.c: perform some tests both in the current exponent range 27478 and in the extended exponent range, so that the lost-overflow bug of 27479 MPFR 2.3.1 can be triggered on 64-bit machines too. 27480 27481 tests/tpow_all.c: 27482 * In cmpres(), if z1 and z2 were both zeros, their sign wasn't tested. 27483 * Added test of mpfr_sqr and mpfr_sqrt. 27484 27485 mpfr.texi: added a paragraph on MPFR internal data. 27486 27487 pow_si.c: fixed the underflow/overflow detection for n < 0 by using 27488 a method similar to mpfr_pow_z. 27489 27490 pow_si.c: added logging support. 27491 27492 pow.c: fixed bug in mpfr_pow_general by computing correct bounds 27493 on exp(y*ln|x|). ==> tpow no longer fails in bug20080820. 27494 Note: this bug could affect only underflow cases and possibly cases 27495 near overflow. 27496 27497 tests/tpow.c: updated comment for bug20080820(). 27498 27499 tests/tpow.c: added testcase for bug mentioned in r5552. 27500 27501 pow_z.c: solves the underflow problem in round-to-nearest by using 27502 mpfr_pow_general in precision 2 (like in mpfr_pow_pos_z), but this 27503 currently fails due to a more general bug from r4940 (the rounding 27504 modes to compute an upper bound on exp(y*ln|x|) are incorrect). 27505 27506 pow_z.c: formatting. 27507 27508 pow_z.c: moved a log message. 27509 27510 pow_z.c: added log messages. 27511 27512 tests/tpow_all.c: added an underflow test of x^y with y integer < 0. 27513 27514 pow_z.c: no longer take care of the possibly lost overflow flag, as 27515 the other functions do not do this either; this general problem has 27516 been fixed in mpfr_check_range (r5545). 27517 27518 Fixed the following problem: 27519 The overflow flag can be lost in many functions called with the 27520 maximum exponent equal to MPFR_EMAX_MAX (this is the default on 27521 32-bit machines) when the temporary result (in a higher precision) 27522 is representable but once rounded, it yields an overflow. 27523 This needed a slight change of behavior of the mpfr_check_range function 27524 (defined in exceptions.c). Described this change in mpfr.texi and NEWS. 27525 27526 pow_z.c: fixed some of the underflow/overflow problems for z < 0. 27527 27528 tests/tpow_all.c: fixed mpfr_clear in overflow_inv. 27529 27530 tests/tpow_all.c: more detailed error messages. 27531 27532 tests/tpow_all.c: improved overflow_inv tests to trigger a bug 27533 in mpfr_pow_z due to incorrect rounding mode settings in r5315: 27534 on a 64-bit Linux machine, "./tpow_all 1" ends with: 27535 Bad overflow flag in overflow_inv for mpfr_pow, extended exponent range, 27536 s = 1, t = 1, GMP_RNDZ 27537 27538 tests/tpow_all.c: in overflow_inv, reduced t to [0,5] and added tests. 27539 275402008-08-19 Vincent Lefèvre <vincent@vinc17.net> 27541 27542 tests/tpow_all.c: improved error messages. 27543 27544 tests/tpow_all.c: changed the precisions in overflow_inv for clearer 27545 output (the reported failures are the same). 27546 27547 tests/tpow_all.c: information about extended exponent range wasn't 27548 always output. For simplicity to provide such an information, made 27549 ext a global variable. 27550 27551 tests/tpow_all.c: added overflow tests for x^(-1). -> Failure. 27552 27553 Fixed basic underflow checking in mpfr_pow. 27554 275552008-08-18 Vincent Lefèvre <vincent@vinc17.net> 27556 27557 mpfr-impl.h: defined macro INITIALIZED to declare that some variable 27558 is initialized before being used. 27559 README.dev: described the use of this macro. 27560 lngamma.c: replaced the dummy initialization by this macro. 27561 275622008-08-16 Vincent Lefèvre <vincent@vinc17.net> 27563 27564 pow.c: updated comments. 27565 27566 tests/tpow_all.c: added tests -> assertion failed in pow.c line 603. 27567 275682008-08-15 Vincent Lefèvre <vincent@vinc17.net> 27569 27570 tests/tpow_all.c: added test of mpfr_ui_div. 27571 27572 pow_z.c: improved comments. 27573 275742008-08-14 Vincent Lefèvre <vincent@vinc17.net> 27575 27576 mpfr.texi: additions related to MPFR caches. 27577 * Added Section "Memory Handling" mentioning caches. 27578 * Added call to mpfr_free_cache in the first example. 27579 * Updated description of function mpfr_free_cache. 27580 27581 tests/texp.c: improved an underflow test to trigger the bug fixed 27582 in r5453 on 32-bit machines too. 27583 27584 log.c: fixed a log message. 27585 27586 exp_2.c: fixed other log messages. 27587 27588 exp_2.c: fixed a log message (the format didn't correspond to the types) 27589 and improved it. 27590 275912008-08-12 Vincent Lefèvre <vincent@vinc17.net> 27592 27593 tests/tdiv.c: completed underflow test by testing negative results too. 27594 27595 mul_2si.c, div_2si.c, div_2ui.c: fixed double-rounding problem in 27596 rounding to nearest when the rounded result in unbounded exponent 27597 range is 2^(emin - 2). 27598 tests/tmul_2exp.c: test x = 15/16 too. Now tmul_2exp no longer fails 27599 (with the correction in div.c from r5515). 27600 27601 tests/tdiv.c correction: the underflow bug was in case when the 27602 result had to be zero. 27603 27604 div.c: fixed underflow bug that occurs in rounding to nearest when 27605 the rounded result in unbounded exponent range is 2^(emin - 2) and 27606 inex > 0: one got a non-zero result instead of +/-0. 27607 27608 tests/tdiv.c: added a test that triggers a bug in mpfr_div in case of 27609 underflow in rounding to nearest when the result must be non-zero. 27610 27611 div.c: added logging support. 27612 27613 tests/tmul_2exp.c: test mpfr_div_2ui too. 27614 27615 tests/tmul_2exp.c: test mpfr_div_2si too. 27616 27617 tests/tmul_2exp.c: updated underflow() test to trigger a double-rounding 27618 bug in case of underflow. 27619 27620 tests/texp.c: updated comment (the double-rounding bug triggered by 27621 underflow_up() is in mpfr_mul_2si). 27622 27623 tests/texp.c: updated underflow_up() test: added case exp(eps) ~= 1/2, 27624 which fails due to a double-rounding problem in rescaling the result. 27625 27626 tests/texp.c: improved comments in underflow_up(). 27627 276282008-08-11 Vincent Lefèvre <vincent@vinc17.net> 27629 27630 Merged vlefevre branch: 27631 svn merge -c-5445 . 27632 svn merge -r5436:HEAD .../mpfr/branches/vlefevre 27633 * pow.c: 27634 - Moved the general case from mpfr_pow() to a new internal function 27635 mpfr_pow_general(). 27636 - In this function (from old code), avoid unnecessary overflow test 27637 if the intermediate result is not an infinity (which was the case 27638 of underflow with non-zero result, thus not an overflow). 27639 - Fixed a double-rounding problem that occurred in this function in 27640 some underflow cases when rescaling the result. 27641 - Added log messages. 27642 * mpfr-impl.h: added mpfr_pow_general prototype. 27643 * pow_z.c: 27644 - The underflow case of mpfr_pow_pos_z() in rounding to nearest, 27645 which was incorrect, is now handled by calling mpfr_pow_general(), 27646 which can scale the result thus decide whether the rounded result 27647 should be 0 or nextabove(0). To avoid the exact cases of x^y with 27648 y integer (not supported by mpfr_pow_general()), rounding is done 27649 in precision 2 (this is also faster!). 27650 - Fixed underflow-related bug (case exact result = 2^(emin-2), in 27651 rounding to nearest). 27652 - Added log messages. 27653 * pow_ui.c: 27654 - Swapped parameters x and y for consistency (-> y = x^n). 27655 - Fixed the internal overflows and underflows (which could yield 27656 spurious overflows/underflows and incorrect results) by using 27657 mpfr_pow_z. 27658 * tests/tpow_all.c: 27659 - Test flags in test_others and cmpres; cmpres argument z1 can now 27660 be a null pointer (if unknown pure FP value, thus not tested). 27661 - Added a test of 2^(emin - i/4) with 0 <= i <= 12, that triggered 27662 the bugs mentioned above (and now fixed). 27663 27664 [Added during the Subversion to Git conversion] 27665 A merge commit could not be generated for Git. 27666 Branch in Git: refs/deleted/r5506/heads/vlefevre 27667 276682008-08-11 Vincent Lefèvre <vincent@vinc17.net> 27669 27670 tests/tmul_2exp.c: added underflow tests. 27671 27672 Added logging support to mpfr_{mul,div}_2{si,ui}. 27673 276742008-08-08 Vincent Lefèvre <vincent@vinc17.net> 27675 27676 mpfr-impl.h: added a space for MPFR_LOG_MSG. 27677 27678 README.dev: corrected MPFR_LOG_MSG example. 27679 27680 mpfr.h: added a comment concerning ICC. 27681 276822008-08-07 Vincent Lefèvre <vincent@vinc17.net> 27683 27684 Final code clean-up based on icc warnings. 27685 27686 Further code clean-up (and consistency) based on icc warnings: 27687 * Removed useless code. 27688 * Avoid hiding variable declarations. 27689 * Use #ifdef BOOL_MACRO instead of #if BOOL_MACRO. 27690 * In MPFR_RNDRAW_GEN macro definition, variables declared locally now 27691 start with an underscore to avoid possible conflits with parameters 27692 (and modified macro calls that use these variables). 27693 27694 round_prec.c: avoid hiding variable declaration (detected by icc). 27695 27696 pow_si.c: fixed Ziv's iteration (code from r3305) by using MPFR_ZIV_NEXT 27697 (problem detected by icc, because variable "loop" was never used). 27698 27699 mul_ui.c: removed variable that was set but never used (detected by icc, 27700 but not by gcc, probably because of early optimization). 27701 27702 inp_str.c: fixed possible implementation-defined behavior (a value 27703 from the unsigned char range -- from getc -- was stored in a char, 27704 and if the char type is signed and the value cannot be represented 27705 in a char, this is implementation-defined). 27706 27707 get_str.c: avoid hiding variable declaration (detected by icc). 27708 27709 div.c: avoid hiding variable declaration (detected by icc). 27710 27711 mpfr.h, mpfr-impl.h: avoid warnings with icc (at least icc 10.1). 27712 README.dev: added a paragraph on the test of "boolean" macros. 27713 277142008-08-05 Vincent Lefèvre <vincent@vinc17.net> 27715 27716 configure.in: dist-lzma needs automake 1.10.1. 27717 277182008-08-04 Vincent Lefèvre <vincent@vinc17.net> 27719 27720 configure.in: "make dist" generates lzma-compressed tarball too. 27721 277222008-08-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27723 27724 [exp_2.c] fixed case where cancel is negative, added comments and improved 27725 code when initial n is known to be 0 27726 277272008-08-01 Vincent Lefèvre <vincent@vinc17.net> 27728 27729 exp_2.c: MPFR_EXP -> MPFR_GET_EXP. 27730 277312008-08-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27732 27733 [exp_2.c] fixed bug20080731 27734 277352008-07-31 Vincent Lefèvre <vincent@vinc17.net> 27736 27737 Added algorithms.out to svn:ignore property. 27738 27739 tests/texp.c: added testcase for new bug found in mpfr_exp_2. 27740 27741 exp.c, exp_2.c: fixed the overflow/underflow detection. The underflow_up 27742 test in texp.c still fails for mpfr_exp_2 only, but this seems to be due 27743 to a bug in this function (incorrect error bound?). 27744 27745 tests/texp.c: added underflow tests to underflow_up; currently fail due 27746 to incorrect underflow detection in mpfr_exp (and if this detection is 27747 disabled, mpfr_exp_3 behaves correctly, but not mpfr_exp_2). 27748 277492008-07-31 Philippe Théveny <philippe.theveny@laposte.net> 27750 27751 Fix typos, improve wording. 27752 277532008-07-31 Vincent Lefèvre <vincent@vinc17.net> 27754 27755 Added logging support to mpfr_exp_2 (exp_2.c). 27756 27757 tests/texp.c: updated comment concerning the bug fixed in r5469. 27758 27759 exp.c: updated comment about the exp3.c routine. 27760 27761 exp3.c: fixed internal underflow. 27762 27763 fma.c, fms.c: added a comment about apparently incorrect scaling. 27764 27765 Added logging support to mpfr_sqr and mpfr_sqrt. 27766 277672008-07-31 Philippe Théveny <philippe.theveny@laposte.net> 27768 27769 hypot.c: Fix comment. 27770 BUGS: Add known bug for mpfr_hypot. 27771 277722008-07-30 Philippe Théveny <philippe.theveny@laposte.net> 27773 27774 algorithms.tex: Prove the correctness of the algorithm used for mpfr_hypot 27775 when the difference of inputs' exponents is less then exp_max - 2. 27776 hypot.c: Change algorithm according to its description in algorithms.tex 27777 tests/thypot.c: Fix tests (some were present but didn't trigger any error). 27778 277792008-07-30 Vincent Lefèvre <vincent@vinc17.net> 27780 27781 tests/texp.c: completed a comment. 27782 27783 tests/texp.c: updated underflow_up test of log(2^(emin - 1)) + eps: 27784 * In the old test (- log(2) < eps < 0 in GMP_RNDN), do not test 27785 the flags, as this may be incorrect on some platforms (though 27786 unlikely). Better tests will be provided later. 27787 * Added test for case eps > 0, which triggers a bug in mpfr_exp_3 27788 (underflow flag sometimes set while it shouldn't be set). 27789 27790 exp.c: completed a comment, describing how rigorous underflow/overflow 27791 detection can be done. 27792 27793 exp.c: removed an incorrect comment (corresponds to exp_2.c and already 27794 in exp_2.c). 27795 277962008-07-29 Vincent Lefèvre <vincent@vinc17.net> 27797 27798 exp.c: underflow/overflow detection is still a bit incorrect. 27799 27800 TODO: added "test underflow/overflow detection...". 27801 27802 exp.c: fixed underflow/overflow detection. 27803 27804 exp_2.c: GNU style. 27805 27806 mpfr-impl.h: make sure that mpfr_get_exp_t and mpfr_set_exp_t are 27807 correctly defined. 27808 278092008-07-26 Vincent Lefèvre <vincent@vinc17.net> 27810 27811 tests/texp.c: updated comment of underflow_up. 27812 27813 exp_2.c: solved the assertion failure by detecting a zero due to a 27814 cancellation and increasing the precision via Ziv's loop in such a 27815 case. 27816 27817 exp_2.c: added another assertion, that is checked independently of 27818 the value of MPFR_EXP_2_THRESHOLD (better for debugging). 27819 27820 exp_2.c: added an assertion (more explicit than a similar assertion 27821 that would fail later) in mpfr_exp2_aux, caught by the underflow_up 27822 test in texp.c for prec = 16 on a 64-bit Linux machine. 27823 278242008-07-25 Vincent Lefèvre <vincent@vinc17.net> 27825 27826 tests/texp.c: added a test that shows incorrect underflow detection 27827 in mpfr_exp, with possible assertion failure. 27828 27829 tests/tpow_all.c: added test of mpfr_exp2 and mpfr_exp10. 27830 27831 TODO: update. 27832 27833 TODO: added "option to use a 32-bit exponent type on LP64 machines". 27834 278352008-07-23 Vincent Lefèvre <vincent@vinc17.net> 27836 27837 acinclude.m4: updated AC_PREREQ line due to the use of AC_PROG_SED. 27838 278392008-07-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27840 27841 added reminder 27842 27843 patch from Patrick to get __GMP_CC and __GMP_CFLAGS from gmp.h 27844 (future undocumented feature for GMP 4.2.3) -> we need to check 27845 those are the names chosen by GMP 4.2.3 when it will be out 27846 278472008-07-21 Vincent Lefèvre <vincent@vinc17.net> 27848 27849 pow.c: fixed incorrect rounding in the general case when the result 27850 is negative and rnd = GMP_RNDD or GMP_RNDU (bug20080721 in tpow.c). 27851 27852 tests/tpow.c: completed test bug20080721. 27853 27854 pow.c: fixed the non-trivial cases with large integer y. 27855 27856 tests/tpow.c: added comment for bug20080721. 27857 27858 tests/tpow.c: found another bug in mpfr_pow with large integers. 27859 27860 tests/tpow_all.c: added a test that detects a bug in an underflow case. 27861 27862 tests/tpow_all.c: made the comparisons between the power functions 27863 generic to be able to add other tests. 27864 278652008-07-20 Vincent Lefèvre <vincent@vinc17.net> 27866 27867 pow_z.c: use MPFR_IS_POS(x) instead of MPFR_SIGN(x) > 0. 27868 27869 pow_si.c: corrected a comment. 27870 27871 tests/tpow_z.c: fixed NaN^0 test. 27872 27873 Fixed a bug in pow_ui.c and pow_z.c: NaN^0 returned NaN instead of 1 27874 (see documentation). Affected functions: mpfr_pow_ui, mpfr_pow_si and 27875 mpfr_pow_z (but not mpfr_pow). Added new test file tests/tpow_all.c 27876 to test all the MPFR power functions on simple and special values. 27877 278782008-07-19 Vincent Lefèvre <vincent@vinc17.net> 27879 27880 mpfr.texi: forgot the case x^(±0). 27881 27882 pow_z.c: updated comments. 27883 27884 tests/tpow_z.c: test bug20080223() didn't check that the result wasn't 27885 a NaN. Fixed. 27886 27887 tests/tsprintf.c: removed trailing whitespace. 27888 278892008-07-11 Vincent Lefèvre <vincent@vinc17.net> 27890 27891 BUGS: potential problem with integer division and pre-C99 compilers, 27892 noted by Philippe. 27893 278942008-07-08 Philippe Théveny <philippe.theveny@laposte.net> 27895 27896 Fix typos 27897 278982008-06-30 Philippe Théveny <philippe.theveny@laposte.net> 27899 27900 Fix typo (gmp macro TMP_ALLOC instead of MPFR_TMP_ALLOC). 27901 279022008-06-27 Vincent Lefèvre <vincent@vinc17.net> 27903 27904 vasprintf.c: fixed comment from r5408. 27905 279062008-06-27 Philippe Théveny <philippe.theveny@laposte.net> 27907 27908 acinclude.m4: add a check defining va_copy macro when needed. 27909 vasprintf.c: use TMP_ALLOC instead of variable-length array (C99). 27910 tests/tfprintf.c tests/tsprintf.c: #define length of array instead of const int so as to avoid variable-length array (C99). 27911 tests/tprintf.c: #define length of array instead of const int so as to avoid variable-length array (C99). 27912 remove use of function dup (dependency with <unistd.h>). 27913 279142008-06-25 Vincent Lefèvre <vincent@vinc17.net> 27915 27916 README.dev: updated "To make a release" (mention various compilers). 27917 279182008-06-23 Vincent Lefèvre <vincent@vinc17.net> 27919 27920 configure.in: added comments about icc. 27921 279222008-06-22 Vincent Lefèvre <vincent@vinc17.net> 27923 27924 TODO: added "replace the *_THRESHOLD macros by global (TLS) variables 27925 that can be changed at run time [...]". 27926 279272008-06-16 Vincent Lefèvre <vincent@vinc17.net> 27928 27929 INSTALL: updated GMP's URL (the old one no longer worked), using 27930 http://www.gnu.org/software/gmp/ as suggested by Karl Berry (see 27931 GNU policies). 27932 279332008-06-13 Vincent Lefèvre <vincent@vinc17.net> 27934 27935 mpfr.texi: changed the license for the inclusion of the manual in Debian 27936 (see <https://www.debian.org/vote/2006/vote_001). 27937 279382008-06-11 Vincent Lefèvre <vincent@vinc17.net> 27939 27940 AUTHORS: converted from ISO-8859-1 to UTF-8 (this is the standard 27941 nowadays and this is the encoding declared on InriaGforge). 27942 279432008-06-11 Philippe Théveny <philippe.theveny@laposte.net> 27944 27945 Fix typo in mpfr_printf documentation. 27946 279472008-06-11 Vincent Lefèvre <vincent@vinc17.net> 27948 27949 vasprintf.c: removed a misleading and now useless comment. 27950 27951 vasprintf.c: improved a comment. 27952 27953 tsprintf.c: typo in a comment. 27954 279552008-06-11 Philippe Théveny <philippe.theveny@laposte.net> 27956 27957 Fix comparison between mpfr string and libc string. 27958 279592008-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27960 27961 added test for bug(?) found by Vincent with icc 27962 279632008-06-10 Philippe Théveny <philippe.theveny@laposte.net> 27964 27965 Change #include <stdio.h> to #include <cstdio> when compiled with a C++ compiler. 27966 Assume that mpfr_rnd_t and wchar_t arguments in a variadic functions are converted to 'int' by C++ compilers. 27967 279682008-06-10 Vincent Lefèvre <vincent@vinc17.net> 27969 27970 mpfr-impl.h: generate an error (with a clear error message) with g++ and 27971 --enable-logging since compilation fails (--enable-logging is mainly for 27972 testing and is already incompatible with threading support anyway). 27973 279742008-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 27975 27976 the O(l^{1/2}) method to evaluate power series is due to 27977 Paterson and Stockmeyer and not Brent/Kung 27978 279792008-06-09 Vincent Lefèvre <vincent@vinc17.net> 27980 27981 Clean-up and various changes to be able to build MPFR with g++. 27982 But the following 3 tests currently fail with g++ 4.3.1: 27983 FAIL: tprintf 27984 FAIL: tsprintf 27985 FAIL: tfprintf 27986 This is an "Illegal instruction" error, so probably a bug in g++. 27987 [Edit: acinclude.m4 now uses gl_SIZE_MAX, typically from size_max.m4, 27988 but which is not installed on all machines; this will be added to the 27989 MPFR repository in changesets 5680 and 5683.] 27990 27991 vasprintf.c: do not use pointer arithmetic on void *. 27992 27993 configure.in: added -Wpointer-arith to gcc options (this warning 27994 is useful as pointer arithmetic on void * is a gcc extension and 27995 doesn't work with g++). 27996 27997 README.dev: mentioned a libtool bug with recent versions of icc. 27998 27999 sum.c: 28000 * Completed a comment about T ** and const T ** mismatch. 28001 * Removed a useless and misleading const that makes icc complain. 28002 280032008-06-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28004 28005 fixed typos 28006 280072008-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28008 28009 use DeclareMathOperator for erf and erfc 28010 28011 fixed typo, added argument reduction for atan (we should try it since I believe 28012 atan is slow wrt exp, log, sin, cos for large precisions) 28013 28014 simplified error analysis of log1p (did not match the code), and improved the 28015 code (in particular when 1+x is exact, directly call mpfr_log and avoid Ziv). 28016 280172008-06-06 Vincent Lefèvre <vincent@vinc17.net> 28018 28019 rec_sqrt.c: removed execution bit. 28020 28021 mpfr.texi: update about build problems and the FAQ. 28022 28023 mpfr.texi: added a comment about why the cross reference to GNU Libtool 28024 doesn't work from MPFR's directory. 28025 28026 mpfr.texi: added Section 4.1 "Headers and Libraries" partly based on 28027 GMP's. Note: in the generated mpfr.info file, the cross reference to 28028 libtool does not work (though GMP's info manual has exactly the same 28029 one and it works there). I couldn't figure out why. 28030 28031 mpfr.texi: make cross reference in HTML similar to texinfo's default one 28032 in PDF. 28033 280342008-06-04 Vincent Lefèvre <vincent@vinc17.net> 28035 28036 mpfr.texi: updated the month. 28037 28038 mpfrlint: check the LGPL license version. 28039 28040 mpfr.texi: updated paragraph on the license in "Introduction to MPFR". 28041 28042 mpfr.texi: updated GFDL version from 1.1 to 1.2 to match fdl.texi 28043 (this should have been done in r4059). 28044 28045 mpfrlint: check GFDL versions. 28046 28047 mpfr.texi, update-version: in the MPFR manual, replaced two 28048 http://www.mpfr.org/ by the URL corresponding to the version, 28049 which can be updated by update-version. 28050 28051 mpfr.texi: completed paragraph on MPFR vs double-precision numbers. 28052 28053 mpfr.texi: replaced each @code{mpfr} by MPFR (for consistency). 28054 280552008-06-03 Vincent Lefèvre <vincent@vinc17.net> 28056 28057 mpfr.h: fixed a comment. 28058 280592008-05-23 Vincent Lefèvre <vincent@vinc17.net> 28060 28061 tests: added tprintf to svn:ignore property. 28062 28063 Added documentation about "'var' may be used uninitialized in this 28064 function" warnings. 28065 280662008-05-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28067 28068 Added comments about int i = i trick to avoid warning about uninitialized 28069 variables. This has the advantage to generate no code, but works for gcc only. 28070 280712008-05-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28072 28073 initialize bbcp and bbcp1 to -1 (should be invalid) 28074 added MPFR_ASSERTN to check they are not -1 before reads 28075 simplified a test: (rnd == RNDN) || (rnd != RNDZ) ==> rnd != RNDZ 28076 28077 got rid of false (?) compiler warnings for uninitialized values 28078 -> we might want to revert this change if we find a better solution and/or 28079 if the problem is fixed in gcc 28080 280812008-05-20 Vincent Lefèvre <vincent@vinc17.net> 28082 28083 Reverted changeset r5355. Better patch to avoid the warnings 28084 "warning: label 'addoneulp_doit' defined but not used" in 28085 MPFR_RNDRAW_GEN by adding the dummy code in the macro itself. 28086 28087 Avoid warnings "warning: label 'addoneulp_doit' defined but not used" 28088 due to the use of MPFR_RNDRAW_GEN. Dummy source code is inserted, but 28089 this is safe, clean (optimized away) and IMHO not too obtrusive. 28090 280912008-05-08 Vincent Lefèvre <vincent@vinc17.net> 28092 28093 acinclude.m4: locally add -I$srcdir to CPPFLAGS for the thread-safe test 28094 (fixes bug #5556). 28095 280962008-04-10 Vincent Lefèvre <vincent@vinc17.net> 28097 28098 INSTALL: added a paragraph about -ffast-math / -fast compiler options. 28099 281002008-04-07 Vincent Lefèvre <vincent@vinc17.net> 28101 28102 tcmp.c: fixed some tests (if mpfr_cmp2 returns an incorrect result, 28103 the bug may be some non-reproducible behavior, so don't compute it 28104 a second time to say what the value was!) and clean-up. 28105 281062008-04-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28107 28108 fixed compiler warning 28109 281102008-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28111 28112 some other changes suggested by Patrick Pelissier for 16-bit portability 28113 28114 a few patches suggested by Patrick Pelissier to ease porting to 16-bit 28115 architectures: removed useless #include <time.h>, changed 1024 to 1024L, 28116 int i to lng i 28117 281182008-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28119 28120 added item about frac_* functions 28121 281222008-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28123 28124 fixed typo 28125 281262008-03-11 Philippe Théveny <philippe.theveny@laposte.net> 28127 28128 tests/tfprintf.c: set output to stdout when invocked with one command-line 28129 parameter. 28130 tests/tprintf.c: add IO errors processing. 28131 281322008-03-10 Philippe Théveny <philippe.theveny@laposte.net> 28133 28134 tests/tprintf.c: add tests for mpfr_printf and mpfr_vprintf. 28135 Makefile.am: add tprintf.c to check_PROGRAMS. 28136 28137 TODO: remove newly added functions 28138 vasprintf.c: change type of some variables taking care of signed/unsigned 28139 comparisons, improve conditional tests, improve buffer 28140 allocation, improve comments. 28141 tests/tfprintf.c: remove silly code. 28142 28143 acinclude.m4: add check for long long compiler support, define HAVE_LONG_LONG. 28144 vasprintf.c: raise an error when it encounter an unsupported format in format 28145 string. 28146 tests/tfprintf.c: HAVE_SDTINT_H -> _MPFR_H_HAVE_INTMAX_T 28147 28148 vasprintf.c: fix rounding bit bug with %RNa. 28149 tests/tsprintf.c: add tests for %RNa (rounding bit bug, tie case, trailing 28150 zeros in fractional part. 28151 28152 vasprintf.c: fix bug in macro CONSUME_VA_ARG with a mp_limb_t or mp_limb_t array argument 28153 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 28154 tests/tfprintf.c: add tests for %n with all kinds of type, get rid of machine dependent limits of type (use +1/-1 instead) 28155 28156 vasprintf.c: fix bug of forgotten decimal point with %#.0Rf 28157 tests/tsprintf.c: add test with %#Rf and an integer mpfr_t 28158 28159 li2.c: improve error estimation in Ziv loop. 28160 algorithm.tex:improve proof of mpfr_li2 algorithm. 28161 28162 hypot.c: change shift amount for exponents so as to avoid overflow in Ziv loop. 28163 algorithm.tex: improve proof for mpfr_hypot algorithm (unfinished). 28164 281652008-03-07 Vincent Lefèvre <vincent@vinc17.net> 28166 28167 tgeneric.c: avoid a warning with gcc 4.2+ about a test that is always 28168 true (the style of the code is now a bit better too). 28169 281702008-02-29 Philippe Théveny <philippe.theveny@laposte.net> 28171 28172 add mpfr_hypot 28173 28174 fix wrong arguments (set in r5332) 28175 28176 add missing functions 28177 28178 cosmetic changes 28179 281802008-02-28 Philippe Théveny <philippe.theveny@laposte.net> 28181 28182 add mixed format tests (with different types and different sizes) 28183 28184 vasprintf.c: fix "%%" bug 28185 tests/tsprintf.c: add a test setting "%%" bug off 28186 28187 cosmetic changes 28188 28189 use system number of bits in the significant of a double (instead of 53) 28190 281912008-02-27 Philippe Théveny <philippe.theveny@laposte.net> 28192 28193 add handle for the case exp(x) overflows but sinh(x) is representable 28194 28195 further code simplification 28196 28197 code simplification (same as in r5323) 28198 28199 code simplification. 28200 28201 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 28202 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 28203 28204 mul_d.c: restore flags set by mpfr_mul. This fixes the bug revealed by MPFR_SUSPICIOUS_OVERFLOW 28205 test/tmul_d.c: add checks for exception flags 28206 282072008-02-27 Vincent Lefèvre <vincent@vinc17.net> 28208 28209 README.dev: updated the section about new functions (added a paragraph 28210 on exception handling). 28211 282122008-02-26 Philippe Théveny <philippe.theveny@laposte.net> 28213 28214 improve proof for euclidean distance algorithm (unfinished) 28215 282162008-02-26 Vincent Lefèvre <vincent@vinc17.net> 28217 28218 pow_z.c: rewrote an ambiguous comment. 28219 28220 pow_z.c: removed obsolete comments and updated a comment. 28221 28222 pow_z.c: the same variable was used with two different meanings. 28223 Changed the type and the name of the one inside the Ziv loop 28224 (unsigned is theoretically more correct due to the bitwise OR). 28225 282262008-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28227 28228 fixed bug reported by Carl Witty (on 32-bit computers): 28229 sage: RR(1.99999999)^RR(-(2^30)) 28230 5.11264311088393e-323228495 28231 sage: RR(1.999999999)^RR(-(2^30)) 28232 0.000000000000000 28233 sage: RR(2.0)^RR(-(2^30)) 28234 2.38256490488795e-323228497 28235 282362008-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28237 28238 added bug reported by Carl Witty 28239 282402008-02-22 Philippe Théveny <philippe.theveny@laposte.net> 28241 28242 remove commented code 28243 28244 add worst cases for RNDZ and RNDU with inexact flag checking 28245 282462008-02-22 Vincent Lefèvre <vincent@vinc17.net> 28247 28248 hypot.c: added a FIXME comment. 28249 28250 algorithms.tex: one can have a better upper bound on \sqrt{x^2+y^2}-|x| 28251 (added as a comment in case this can be useful). 28252 28253 algorithms.tex: use hyperref. 28254 282552008-02-21 Philippe Théveny <philippe.theveny@laposte.net> 28256 28257 add more details in mpfr_hypot description 28258 28259 cosmetic change: display "EXP" in small capitals 28260 no more use of {\rm \EXP}, use macro \Exp everywhere 28261 282622008-02-20 Philippe Théveny <philippe.theveny@laposte.net> 28263 28264 add worst case test 28265 28266 add test with locale da_DK 28267 28268 actually trigger overflow on all architectures 28269 282702008-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28271 28272 added MPFR_SUSPICIOUS_OVERFLOW in nightly tests 28273 282742008-02-20 Vincent Lefèvre <vincent@vinc17.net> 28275 28276 hypot.c: fixed overflow flag problem in RNDD/RNDZ modes (testcase was 28277 added in r5301, and another check in r5300). 28278 28279 tests/thypot.c: added check_overflow test (currently fails in 32 bits). 28280 28281 tests/tgeneric.c: added a test that detects suspicious overflows and 28282 fails when the overflow flag is not set. This test is enabled only if 28283 the MPFR_SUSPICIOUS_OVERFLOW environment variable is set, and shows a 28284 bug in mpfr_hypot on 32-bit machines (i.e. when the current exponent 28285 range is the maximum exponent range, so that mpfr_check_range() has 28286 no effect). 28287 282882008-02-19 Philippe Théveny <philippe.theveny@laposte.net> 28289 28290 restore flag overflow dropped by MPFR_SAVE_EXPO 28291 282922008-02-18 Philippe Théveny <philippe.theveny@laposte.net> 28293 28294 use of (*__gmp_allocate_func)/(*__gmp_free_func) instead of 28295 mpfr_allocate_func/mpfr_free_func; 28296 the modification in r5281 doesn't work when mpfr is compiled with --gmp_build 28297 option. 28298 282992008-02-18 Vincent Lefèvre <vincent@vinc17.net> 28300 28301 hypot.c: it's better to scale by (Ex + Ey) / 2. 28302 28303 README.dev: now, the ChangeLog file should be in UTF-8, like in other 28304 software (not much difference in practice). 28305 283062008-02-18 Philippe Théveny <philippe.theveny@laposte.net> 28307 28308 improve code coverage 28309 28310 code simplification 28311 28312 take trailing zeros into account when separating thousands 28313 283142008-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28315 28316 fixed problem when x and y are very small 28317 283182008-02-18 Philippe Théveny <philippe.theveny@laposte.net> 28319 28320 hypot.c: set flags when returning 28321 tests/thypot.c: change custom random tests to tgeneric ones 28322 283232008-02-15 Vincent Lefèvre <vincent@vinc17.net> 28324 28325 For the terminating null pointer of the functions mpfr_inits, 28326 mpfr_inits2, mpfr_clears, always use the type mpfr_ptr (no longer 28327 void *). Updated the description of these functions in the manual 28328 (mpfr.texi). The reason is that the C standard does not guarantee 28329 that (void *) 0 has the same representation as a null pointer to 28330 a structure (and even the same size). In most C implementations, 28331 the representations are the same, but one never knows (dynamical 28332 checking is also always possible)... 28333 The change has been done with: perl -pi -e \ 28334 's/(mpfr_(clear|init)s.*)\(void *\*\) *0\)/$1(mpfr_ptr) 0)/' **/*.c 28335 under zsh. 28336 283372008-02-15 Philippe Théveny <philippe.theveny@laposte.net> 28338 28339 fix typo 28340 28341 vasprintf.c: fix buffer_sandwich (use for thousands separator) 28342 tests/tsprintf.c: add tests with "da_DK" locale 28343 28344 add generic tests 28345 28346 cosmetic changes 28347 28348 fix incorrect function call 28349 283502008-02-14 Philippe Théveny <philippe.theveny@laposte.net> 28351 28352 fix "%P" case, add test for it. 28353 283542008-02-13 Philippe Théveny <philippe.theveny@laposte.net> 28355 28356 avoid style 'f' with large numbers 28357 283582008-02-13 Vincent Lefèvre <vincent@vinc17.net> 28359 28360 tests: updated svn:ignore property. 28361 283622008-02-12 Philippe Théveny <philippe.theveny@laposte.net> 28363 28364 use of mpfr_allocate_func/mpfr_free_func instead of malloc/free 28365 28366 remove unneeded free and mpfr_clear 28367 28368 add tests for mpfr_snprintf and mpfr_vsnprintf 28369 283702008-02-12 Vincent Lefèvre <vincent@vinc17.net> 28371 28372 README.dev: added a note about freeing the memory in the tests. 28373 283742008-02-12 Philippe Théveny <philippe.theveny@laposte.net> 28375 28376 move tests of mpfr_get_str function from tout_str.c to tget_str.c 28377 28378 initialize fmt[] size 28379 28380 tfprintf.c: fix comment. 28381 tsprintf.c: fix comment and get rid of libc rand(). 28382 28383 rename tprintf.c as tsprintf.c, because it does not deal with mpfr_printf. 28384 add tests for mpfr_fprintf functions 28385 28386 remove errno setting in snprintf, it is already done in vasprintf 28387 correct grammatical faults in comment 28388 283892008-02-08 Vincent Lefèvre <vincent@vinc17.net> 28390 28391 tests/tests.c: undo r5270. 28392 28393 tests/tests.c: fixed assertion failure introduced in r5265. 28394 283952008-02-08 Philippe Théveny <philippe.theveny@laposte.net> 28396 28397 remove exponent checking 28398 28399 mpfr-gmp.h: Cancel r5261 changes removing the overload due to added test. 28400 set_uj.c: Don't call memset when len is zero. 28401 28402 improve assertion. 28403 28404 add support of thousands separator option (' flag, defined in Single UNIX Specification v2) 28405 28406 better string buffer management 28407 284082008-02-07 Vincent Lefèvre <vincent@vinc17.net> 28409 28410 In tests_default_random, allow emin and emax to be outside of the 28411 current exponent range, so that underflow/overflow checks can be 28412 done on 64-bit machines. If the resulting random number is outside 28413 of the current range, the exponent range is extended, and restored 28414 by the caller once the test has been done. 28415 In tests/tacosh.c, changed TEST_RANDOM_EMIN and TEST_RANDOM_EMAX 28416 to MPFR_EMAX_MAX for test_generic_huge, so that the intermediate 28417 overflow case in mpfr_acosh is tested on 64-bit machines. 28418 284192008-02-07 Philippe Théveny <philippe.theveny@laposte.net> 28420 28421 fix comment. 28422 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. 28423 284242008-02-06 Vincent Lefèvre <vincent@vinc17.net> 28425 28426 mpfr.h: added a comment about the mpfr_rnd_t enum. 28427 28428 mpfr-impl.h: removed MPFR_CHECK* macros as they are not used. 28429 284302008-02-05 Philippe Théveny <philippe.theveny@laposte.net> 28431 28432 MPN_ZERO (dst, n) doesn't call memset when n==0, it prevents warning when compiled with gcc -D_FORTIFY_SOURCE 28433 284342008-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28435 28436 added suggestion from Keith Briggs 28437 284382008-02-04 Philippe Théveny <philippe.theveny@laposte.net> 28439 28440 vasprintf.c: add code for %n specifier with any type 28441 tests/tprintf.c: add test for %n specifier 28442 28443 improve mention on format string restriction 28444 28445 mention restriction on type field in the format string. 28446 28447 check possible overflows in exponent part, improve comments. 28448 28449 ensure null-terminated string for (v)snprintf. 28450 284512008-02-01 Philippe Théveny <philippe.theveny@laposte.net> 28452 28453 improve mpfr_printf documentation 28454 284552008-02-01 Vincent Lefèvre <vincent@vinc17.net> 28456 28457 tests.c: fixed perror argument in data_check. 28458 284592008-02-01 Philippe Théveny <philippe.theveny@laposte.net> 28460 28461 improve error handling 28462 28463 check fscanf return value, manage error case 28464 284652008-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28466 28467 added parentheses to avoid ambiguity (suggested by Keith Briggs) 28468 284692008-02-01 Philippe Théveny <philippe.theveny@laposte.net> 28470 28471 add some "%s" format string to prevent format string attack 28472 284732008-01-31 Philippe Théveny <philippe.theveny@laposte.net> 28474 28475 fix typo 28476 284772008-01-30 Philippe Théveny <philippe.theveny@laposte.net> 28478 28479 homogeneous use of logical variable 28480 284812008-01-30 Vincent Lefèvre <vincent@vinc17.net> 28482 28483 rec_sqrt.c: use MPFR_GET_EXP instead of MPFR_EXP, and avoid the 28484 bitwise AND on a signed integer. 28485 28486 Reformat. 28487 28488 Document how to produce PDF and HTML versions of the manual. 28489 284902008-01-30 Philippe Théveny <philippe.theveny@laposte.net> 28491 28492 change to values acceptable by 32-bits machines 28493 28494 fix wrong statement in MPFR_ASSERTD 28495 284962008-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28497 28498 added compilation options suggested by Debian: 28499 http://alioth.debian.org/projects/hardening/ 28500 https://lists.debian.org/debian-devel/2007/12/msg00090.html 28501 (except -Wl,zrelro which does not seem to work) 28502 285032008-01-29 Philippe Théveny <philippe.theveny@laposte.net> 28504 28505 So as to avoid conversion error, get rid of mpfr_set_d/mpf_set_d except in random_double(). 28506 Skip conversion error in random_double(). 28507 28508 fix typo in comment 28509 28510 get rid of limitation on number of character by specifier 28511 28512 vasprintf.c: fix %Rg case 28513 tests/tprintf.c: add %Re, %Rf, and %Rg tests 28514 tests/tprintf.c: add random checking against libc 28515 285162008-01-28 Philippe Théveny <philippe.theveny@laposte.net> 28517 28518 remove (undocumented) integer conversion support for mpfr_t 28519 28520 set errno to EOVERFLOW when printf-like functions should return value exceeding INT_MAX 28521 28522 change internal name of printf-like functions under preprocessor conditionals, add explanation in comment. 28523 285242008-01-25 Vincent Lefèvre <vincent@vinc17.net> 28525 28526 TODO: added a possible class of tests. 28527 285282008-01-23 Vincent Lefèvre <vincent@vinc17.net> 28529 28530 tests.c: remove a blank line in an error message. 28531 28532 Test that the MPFR library version matches the mpfr.h version in any 28533 test file (this should avoid some bug reports that don't mention the 28534 real problem). 28535 28536 tversion.c: improved an error message. 28537 28538 acinclude.m4: fixed configure test for TLS support. 28539 28540 NEWS file update (configure test for TLS support). 28541 28542 Changes related to thread-local variables / TLS support. 28543 * Moved the MPFR_THREAD_ATTR definition from mpfr-impl.h into a new 28544 header file mpfr-thread.h, and updated Makefile.am accordingly. 28545 * Removed the compiler check __MPFR_GNUC(3,3) || __MPFR_ICC(8,1,0) 28546 as this test leaded to both false positives and false negatives 28547 concerning TLS support. Assume that __thread should be used for 28548 thread-local variables (except for the MS compiler). 28549 * Added a configure test to acinclude.m4 (in MPFR_CONFIGS). 28550 285512008-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28552 28553 added item about timings for a new release 28554 28555 mbench program written by Patrick Pelissier to measure clock cycles of MPFR 28556 (and other libraries) for small precision 28557 285582008-01-22 Vincent Lefèvre <vincent@vinc17.net> 28559 28560 NEWS: noted the changes concerning mpfr_strtofr (changesets 5146, 5147, 28561 5148, 5149, 5167, 5172, 5173). 28562 28563 mpfr-gmp.h: small fix of a macro. 28564 285652008-01-21 Vincent Lefèvre <vincent@vinc17.net> 28566 28567 mpfr-gmp.h: for temporary allocations, use alloca() if size < 16384. 28568 285692008-01-19 Vincent Lefèvre <vincent@vinc17.net> 28570 28571 mpfr.texi: inverse square root -> reciprocal square root. 28572 285732008-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28574 28575 added mpfr_rec_sqrt in mpfr.texi (forgot in last commit) 28576 285772008-01-18 Vincent Lefèvre <vincent@vinc17.net> 28578 28579 NEWS: added mpfr_rec_sqrt for MPFR 2.4.*. 28580 285812008-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28582 28583 removed rec_sqrt (done) 28584 285852008-01-17 Philippe Théveny <philippe.theveny@laposte.net> 28586 28587 vasprintf.c: merge code for "%Ra" and "%Rb" 28588 285892008-01-16 Philippe Théveny <philippe.theveny@laposte.net> 28590 28591 cosmetic change: replace "enum _arg_type" by "enum arg_t" 28592 28593 vasprintf.c: fix %g case; merge %e, %f, %g code 28594 tests/tprintf.c: add tests for %Rg 28595 28596 add MPFR_SAVE_EXPO macros 28597 28598 cosmetic changes: only one leading underscore for an identifier with file scope 28599 28600 add needed va_list argument in READ_INT macro 28601 286022008-01-16 Vincent Lefèvre <vincent@vinc17.net> 28603 28604 tests: added trec_sqrt to svn:ignore property. 28605 28606 mpfr-impl.h: when building MPFR with the GMP build directory, 28607 use TMP_ALLOC(s) instead of TMP_SALLOC(s), as we don't know 28608 whether allocations are small or big (see gmp-impl.h). 28609 286102008-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28611 28612 moved from ASSERTD to ASSERTN an assertion which does not depend on MPFR 28613 286142008-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28615 28616 this file might be useful to test mpfr_rec_sqrt... 28617 28618 rec_sqrt.c: complete rewrite, to allow to use directly the MPFR internal 28619 representation as input (without shift), and to allow different 28620 input and output precisions, without loss of efficiency 28621 other files: added new function mpfr_rec_sqrt 28622 286232008-01-14 Vincent Lefèvre <vincent@vinc17.net> 28624 28625 rec_sqrt.c: deleted trailing whitespace. 28626 28627 mpfr-gmp.{c,h}: no longer use alloca() for the temporary allocations as 28628 this can make MPFR crash in some high precisions, due to limited stack. 28629 286302008-01-14 Philippe Théveny <philippe.theveny@laposte.net> 28631 28632 add bug found by Paul Zimmermann 28633 28634 vasprintf.c: fix wrong computation of digit number with %Rf when 0 < op < 1 28635 tests/tprintf.c: simpler 10^-n case 28636 286372008-01-14 Vincent Lefèvre <vincent@vinc17.net> 28638 28639 mpfr.texi: typo. 28640 286412008-01-11 Vincent Lefèvre <vincent@vinc17.net> 28642 28643 mpfr.texi: updated month. 28644 28645 mpfr.texi: added a warning concerning huge precisions. 28646 286472008-01-10 Philippe Théveny <philippe.theveny@laposte.net> 28648 28649 fix %f case 28650 28651 cosmetic changes 28652 286532008-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28654 28655 small changes for acos/asin/atan/atan2 rounded outside their output range 28656 286572008-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28658 28659 added note about output of acos/asin/atan/atan2 which might be outside the 28660 function domain 28661 286622008-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28663 28664 new version with improved tables, use macros from mpfr-impl.h, removed tabs 28665 286662008-01-04 Vincent Lefèvre <vincent@vinc17.net> 28667 28668 Fixed return value of mpfr_strtofr in case of invalid data (it was -1, 28669 but it should be 0 since it is a ternary value and the result is 0, 28670 which is exact). Added test of the ternary value in this case. 28671 28672 mpfr.texi: better description of mpfr_strtofr. 28673 28674 NEWS update (new functions in the trunk). 28675 28676 Changes related to mpfr_strtofr. 28677 * strtofr.c: for mpfr_strtofr, data corresponding to NaN can now have 28678 an optional sign (since the documentation said that parsing followed 28679 the standard C strtod function and this change makes invalid data 28680 now valid, so that there should be no compatibility problems). 28681 * tests/tstrtofr.c: changed the test for -42P17 in base 16 (this was 28682 eventually regarded as a documentation bug); added tests. 28683 * mpfr.texi: almost completely rewrote the specification of the 28684 mpfr_strtofr function. Changes: 28685 - the binary exponent is now accepted even without the 0b or 0x 28686 prefix; 28687 - data corresponding to NaN can now have an optional sign (this was 28688 a bit ambiguous); 28689 - many other ambiguities avoided. 28690 286912008-01-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28692 28693 the function mpfr_mpn_rec_sqrt() provides a faithful approximation of the 28694 inverse square root. Some improvements can still be made, but the interface 28695 should not change, thus we can start writing the mpfr_rec_sqrt function that 28696 calls it. 28697 286982008-01-02 Vincent Lefèvre <vincent@vinc17.net> 28699 28700 FAQ update. 28701 287022008-01-01 Vincent Lefèvre <vincent@vinc17.net> 28703 28704 tgamma.c: completed test in r5159 with another one that was failing 28705 in the default exponent range. 28706 28707 delete trailing spaces. 28708 287092008-01-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28710 28711 fixed bug in case of underflow (wrong sign) 28712 287132008-01-01 Vincent Lefèvre <vincent@vinc17.net> 28714 28715 gen_inverse.h: fixed the bug reported by Kevin Rauch a few hours ago 28716 (and that was detected by the generic tests and by mpfrlint after the 28717 latest changes). 28718 28719 mpfrlint: incorrect use of mpfr_<flag>_p is also checked in .h files. 28720 28721 Copyright notice update: added 2008 with 28722 perl -pi -e 's/2007 Free Software/2007, 2008 Free Software/' **/*(^/) 28723 under zsh. 28724 28725 tgeneric.c: in the bug detection with flags set before the function 28726 call, the erange flag was set, so that no checks were performed on 28727 the return value. Fixed that by not setting the erange flag. 28728 -> Now, 7 tests fail! 28729 287302007-12-31 Vincent Lefèvre <vincent@vinc17.net> 28731 28732 tstrtofr.c: added test of -42P17 with base = 0 and 16. This currently 28733 fails with base = 16 (-42P17 is parsed as -0x42P17 instead of -42 with 28734 the remaining characters "P17"), but we could alternatively regard the 28735 mpfr_strtofr specification (in mpfr.texi) as incorrect. 28736 287372007-12-30 Vincent Lefèvre <vincent@vinc17.net> 28738 28739 mpfr.texi: corrections in the specification of mpfr_strtofr (see FIXME). 28740 28741 strtofr.c: base arguments different from 0 and 2..36 have never been 28742 accepted. So, instead of returning the confusing -1 (it's a ternary 28743 value), let's add an assert for the moment. An alternative solution 28744 is to return 0 and set the erange flag. 28745 28746 strtofr.c: minor change (in the style); a comment was ambiguous. 28747 287482007-12-29 Vincent Lefèvre <vincent@vinc17.net> 28749 28750 TODO update (tests: generic bad cases). 28751 28752 Added #if MPFR_VERSION >= MPFR_VERSION_NUM(2,4,0) conditionals to be 28753 able to test MPFR 2.3.* with the (more complete) tests from the trunk. 28754 28755 README.dev: updated item 6 of "To make a release". 28756 287572007-12-28 Vincent Lefèvre <vincent@vinc17.net> 28758 28759 mpfr.texi: updated month. 28760 287612007-12-27 Vincent Lefèvre <vincent@vinc17.net> 28762 28763 tests: check the exponent range, in particular at the end of each test. 28764 28765 texceptions.c: GNU coding style. 28766 28767 texceptions.c: restore the exponent range. 28768 28769 exp2.c: removed incorrect comment (the overflow test was OK due to the 28770 mpfr_clear_flags above, but the new test is slightly better anyway). 28771 287722007-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28773 28774 added tuning parameters for 32-bit Core 2 28775 (thanks to Patrick Pelissier and Emmanuel Thome) 28776 287772007-12-20 Vincent Lefèvre <vincent@vinc17.net> 28778 28779 tpow.c: enable testcase bug20071218. 28780 287812007-12-19 Vincent Lefèvre <vincent@vinc17.net> 28782 28783 BUGS: possible incorrect results due to internal underflow. 28784 28785 pow.c: detect all underflow cases (some of them were leading to 28786 an infinite loop, see bug20071218 in tpow.c). 28787 28788 mpfr-impl.h: updated description of MPFR_CAN_ROUND. 28789 28790 round_p.c: in comment, "round to zero" -> "round toward zero". 28791 28792 tpow.c: formatting. 28793 28794 tpow.c: added testcase for another bug found by Kevin P. Rauch. 28795 Execute tpow with an argument to enable it. 28796 287972007-12-19 Philippe Théveny <philippe.theveny@laposte.net> 28798 28799 vasprintf.c: add sprnt_fp_e for "%e" processing 28800 tests/tprintf.c: change tests for decimal output (but need further tests) 28801 28802 add checks for zero 28803 288042007-12-18 Vincent Lefèvre <vincent@vinc17.net> 28805 28806 Merged the feature-block branch to the trunk: 28807 * New MPFR_BLOCK* macros (see mpfr-impl.h) and mpfrlint check to test 28808 exception flags in a more reliable way and detect possible problems 28809 with mpfrlint. 28810 * Improved the generic tests (tests/tgeneric.c): for the second 28811 function call, sometimes set all the flags since risk of failures 28812 are known when some flags are already set. 28813 * Modified code to use these new MPFR_BLOCK* macros. This fixed bugs 28814 related to exceptions (where flags are set before the call); in 28815 particular, tcot and ty1 failed with the improved generic tests. 28816 28817 [Added during the Subversion to Git conversion] 28818 A merge commit could not be generated for Git. 28819 Branch in Git: refs/deleted/r5131/heads/feature-block 28820 288212007-12-18 Philippe Théveny <philippe.theveny@laposte.net> 28822 28823 printf.c: each mpfr_printf-like function return -1 and set erange flag in error case 28824 vasprintf.c: change types in struct char_fp 28825 vasprintf.c: add many size checking 28826 28827 simplify code, improve comments 28828 288292007-12-18 Vincent Lefèvre <vincent@vinc17.net> 28830 28831 Fixed bug in mpfr_pow_z: if x = y (same mpfr_t argument), the input 28832 argument is negative and not a power of two, z is positive and odd, 28833 an overflow or underflow occurs, and the temporary result res is 28834 positive, then the result gets a wrong sign (positive instead of 28835 negative). Testcase. 28836 28837 Fixed bug in mpfr_pow_ui (introduced in r3214): if x = y (same mpfr_t 28838 argument), the input argument is negative, n is odd, an overflow or 28839 underflow occurs, and the temporary result res is positive, then the 28840 result gets a wrong sign (positive instead of negative). Testcase. 28841 28842 pow_ui.c: fixed an assertion. 28843 28844 BUGS: update concerning overflow/underflow exceptions. 28845 288462007-12-18 Philippe Théveny <philippe.theveny@laposte.net> 28847 28848 exponent continuity with one hexadecimal digit output 28849 288502007-12-17 Philippe Théveny <philippe.theveny@laposte.net> 28851 28852 #define CASE_INT_MAX_ARG to nil when HAVE_STDINT_H is not defined 28853 28854 vasprintf.c: add sprnt_fp_b for "%b" processing 28855 tests/tprintf.c: add tests for binary output 28856 28857 fix count of characters in exponent part 28858 28859 simplify code, remove trailing spaces and improve comment 28860 288612007-12-17 Vincent Lefèvre <vincent@vinc17.net> 28862 28863 TODO: added note about the successive calls to strcat in vasprintf.c. 28864 288652007-12-17 Philippe Théveny <philippe.theveny@laposte.net> 28866 28867 add tests for 1 hexa digit output 28868 288692007-12-16 Vincent Lefèvre <vincent@vinc17.net> 28870 28871 tests/tpow.c: fixed indentation. 28872 288732007-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28874 28875 fixed typo 28876 28877 fixed bug reported by Kevin Rauch 28878 288792007-12-14 Philippe Théveny <philippe.theveny@laposte.net> 28880 28881 change display with just one hexadecimal digit 28882 288832007-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28884 28885 simplified MPFR_FAST_COMPUTE_IF_SMALL_INPUT part (in case of overlap) 28886 288872007-12-14 Philippe Théveny <philippe.theveny@laposte.net> 28888 28889 fix wrong call 28890 288912007-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28892 28893 added comments, got rid of compiler warnings 28894 28895 added warning 28896 288972007-12-14 Vincent Lefèvre <vincent@vinc17.net> 28898 28899 sin_cos.c: improved changeset 5084; in particular, added a missing cast. 28900 289012007-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28902 28903 sin_cos.c, tsin_cos.c: fixed bug occurring when arguments overlap and 28904 MPFR_FAST_COMPUTE_IF_SMALL_INPUT fails 28905 reuse.c: improved output in case of error 28906 289072007-12-14 Philippe Théveny <philippe.theveny@laposte.net> 28908 28909 improve one digit case, add comment 28910 289112007-12-14 Vincent Lefèvre <vincent@vinc17.net> 28912 28913 vasprintf.c: added a FIXME comment. Bug? 28914 28915 Minor changes concerning num_to_text. The ending \0 isn't needed. 28916 289172007-12-14 Philippe Théveny <philippe.theveny@laposte.net> 28918 28919 simplify error output code 28920 28921 add num_to_text array for hexadecimal digits 28922 28923 output errors to stdout 28924 289252007-12-13 Philippe Théveny <philippe.theveny@laposte.net> 28926 28927 vasprintf.c: group hexadecimal output processing in a new sprnt_fp_a function. 28928 tests/tprintf.c: add tests for %a case 28929 tests/tprintf.c: factorize error message output 28930 289312007-12-13 Vincent Lefèvre <vincent@vinc17.net> 28932 28933 get_d64.c: fixed comment. 28934 28935 vasprintf.c: added missing #include <string.h> (useful if MPFR is built 28936 with the GMP build directory, as mpfr-gmp.h isn't used in this case). 28937 289382007-12-13 Philippe Théveny <philippe.theveny@laposte.net> 28939 28940 Fix typos. 28941 28942 Add handle for null size case in mpfr_snprintf 28943 28944 Add some comments and assertions. 28945 28946 #define's for nan and inf strings 28947 28948 short documentation of printf-like functions. 28949 289502007-12-12 Vincent Lefèvre <vincent@vinc17.net> 28951 28952 README.dev: added information about my tool "eet" to be able to see the 28953 warnings more easily. 28954 28955 vasprintf.c: updated comment concerning the case nbchar > INT_MAX. 28956 289572007-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28958 28959 changed default return value in mpfr_jn_k0 28960 28961 fixed underflow problem in mpfr_exp_3 28962 28963 tests/tset_str.c: added command-line argument for output base 28964 jn.c: replaced double-precision LOG2 constant by binary string (more portable) 28965 28966 fixed underflow problem 28967 28968 experimental code to distinguish Core2 from AMD64 28969 28970 removed manual change to __gmpfr_emin outside the allowed range 28971 28972 added suggestion from Patrick Pelissier 28973 289742007-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28975 28976 Fixed another bug reported by Kevin Rauch (__gmpfr_emin was set smaller 28977 than the minimum allowed value, which produced an exponent wrap-around 28978 and a wrong result in mpfr_mul). Not sure if all problems are solved, 28979 nevertheless __gmpfr_emin is now in the allowed range. 28980 289812007-11-29 Vincent Lefèvre <vincent@vinc17.net> 28982 28983 Fixed indentation. 28984 28985 tests.c: in test4rm, initialize rndnext with an invalid value (meaning 28986 that rndnext will really be initialized later), and added an assert to 28987 check that this value isn't propagated to rnd. 28988 28989 tests.c: added a comment about rndnext in test4rm. 28990 28991 tests.c: added an assertion. 28992 289932007-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 28994 28995 fixed bug reported by Kevin Rauch (wrong sign in case of underflow for 28996 large negative x and large odd negative y) 28997 289982007-11-29 Philippe Théveny <philippe.theveny@laposte.net> 28999 29000 untabify and remove trailing spaces 29001 29002 fix padding error in sprnt_inf 29003 29004 factorization of special numbers output in sprnt_nan and sprnt_inf functions 29005 29006 fix comment about the size of format string buffer 29007 29008 replace memory management functions mpfr_default_* by __gmp_*_func 29009 290102007-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29011 29012 updated Core 2 thresholds (obtained with gmp-4.2.2 and Gaudry's patch) 29013 290142007-11-29 Vincent Lefèvre <vincent@vinc17.net> 29015 29016 Typo in comment. 29017 290182007-11-29 Philippe Théveny <philippe.theveny@laposte.net> 29019 29020 fix typo pointed out in revision 5044 29021 290222007-11-28 Vincent Lefèvre <vincent@vinc17.net> 29023 29024 printf.c: more comments about snprintf. 29025 29026 printf.c: added a comment concerning a warning (a bug, IMHO). 29027 29028 vasprintf.c: added FIXME comment concerning the case nbchar > INT_MAX, 29029 with a reference to POSIX. 29030 290312007-11-28 Philippe Théveny <philippe.theveny@laposte.net> 29032 29033 add explanations about buffer size 29034 29035 change __gmp_const into const 29036 290372007-11-28 Vincent Lefèvre <vincent@vinc17.net> 29038 29039 vasprintf.c: added an assert. 29040 290412007-11-28 Philippe Théveny <philippe.theveny@laposte.net> 29042 29043 fix output with space flag 29044 29045 add MPFR_ASSERTD to prevent buffer overflow 29046 29047 replace use of ptrdiff_t by size_t where possible 29048 290492007-11-27 Philippe Théveny <philippe.theveny@laposte.net> 29050 29051 factorisation of temp string alloc in buffer_pad function 29052 29053 cosmetic changes 29054 29055 compatibility of types between nbc fields and mp_exp_t 29056 fix wrong size of buffer string exp_fmt 29057 290582007-11-27 Vincent Lefèvre <vincent@vinc17.net> 29059 29060 Added initial mpfrlint sh script to check possible problems in 29061 the MPFR source. 29062 290632007-11-27 Philippe Théveny <philippe.theveny@laposte.net> 29064 29065 change 'g'/'G' to 'e'/'E' or 'f'/'F' according to C99 rules 29066 290672007-11-26 Philippe Théveny <philippe.theveny@laposte.net> 29068 29069 replace mpfr_default_(re)allocate by __gmp_(re)allocate for the returned string (freed by mpfr_free_str) 29070 29071 tprintf.c: replace __gmp_const by const 29072 290732007-11-26 Vincent Lefèvre <vincent@vinc17.net> 29074 29075 printf.c: added FIXME comment: snprintf is new in C99. It must be 29076 checked with a configure test. 29077 29078 tests: updated svn:ignore property. 29079 29080 vasprintf.c: reformat. 29081 29082 MPFR_DECIMAL_POINT now needs to have type char (because of vasprintf.c). 29083 29084 tests/tprintf.c: changeset 4996 was incorrect. Fixed. 29085 29086 README.dev: Avoid variable names "l", "I" and "O". 29087 29088 README.dev: added a note about the locales. 29089 290902007-11-26 Philippe Théveny <philippe.theveny@laposte.net> 29091 29092 printf.c: fix use of pointer of string 29093 vasprintf.c: add conditional compilation directives for wchar and wint_t 29094 vasprintf.c: add padding for special values 29095 vasprintf.c: fix output for value 1.0 and format "%Rf" 29096 vasprintf.c: replace __gmp_const by const 29097 290982007-11-26 Vincent Lefèvre <vincent@vinc17.net> 29099 29100 acinclude.m4: check wchar.h header (see below). 29101 vasprintf.c: 29102 * No longer depend on toupper (which returns locale-dependent results) 29103 to generate 'A'..'F' (see C standard). 29104 * Removed #include <ctype.h> which was hiding a bug (see below). 29105 * Added missing #include <wchar.h> if HAVE_WCHAR_H is defined. But 29106 the compilation fails if <wchar.h> doesn't exist due to the use of 29107 wchar_t and wint_t. 29108 29109 vasprintf.c: updated comments. 29110 29111 vasprintf.c: 29112 * Removed #include <stdlib.h> now useless. 29113 * Added FIXME comment. 29114 * Replaced _MP_EXP_FORMAT_SPEC (reserved) by MPFR_EXP_FORMAT_SPEC. 29115 29116 vasprintf.c: added FIXME comments. 29117 29118 vasprintf.c: fixed a typo in a comment and improved another comment. 29119 291202007-11-24 Vincent Lefèvre <vincent@vinc17.net> 29121 29122 mpfr.h: moved function declarations out of "#ifdef _MPFR_H_HAVE_VA_LIST" 29123 and/or "#ifdef _MPFR_H_HAVE_FILE" when this makes sense. 29124 29125 tests/tprintf.c: added missing "void" in function declarations. 29126 29127 Untabified and removed trailing spaces. 29128 29129 mpfr.texi: corrections (English usage and texinfo). Added corresponding 29130 notes at the end of the README.dev file. 29131 29132 mpfr.texi: s/rounding to the nearest mode/rounding to nearest mode/ 29133 29134 mpfr.texi consistency changes: "towards" -> "toward" (because this 29135 is what the IEEE-754 standard uses, and we have mpfr_nexttoward). 29136 29137 mpfr.texi: English typography corrections (no space before ":"). 29138 29139 vasprintf.c: the use of the abs function was incorrect as its argument 29140 has type int, which may be smaller than an mp_exp_t. Fixed that and 29141 replaced uceil_log10 by uceil_log10_exp_p2. 29142 29143 vasprintf.c: fixed uceil_log10 for x close to ULONG_MAX. 29144 291452007-11-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29146 29147 got rid of math.h 29148 291492007-11-23 Vincent Lefèvre <vincent@vinc17.net> 29150 29151 tests/tprintf.c: include <stdarg.h>. 29152 29153 stdarg-related corrections, as HAVE_STDARG is not standard thus must not 29154 be tested in mpfr.h! 29155 29156 tests/tprintf.c: enable the tests only if HAVE_STDARG is defined, 29157 i.e. if the printf-like functions are defined. 29158 29159 tests/tprintf.c: 29160 * Non-standard headers should be included after the standard headers 29161 (when possible). 29162 * The setlocale function is used only if <locale.h> has been included. 29163 * Use tests_start_mpfr / tests_end_mpfr; this shows a bug: 29164 tests_free(): attempt to free bad pointer 0x1801200 29165 29166 tests/tests.c: setlocale is used only if <locale.h> has been included. 29167 29168 out_str.c: remove other occurrence of <locale.h>. 29169 291702007-11-23 Philippe Théveny <philippe.theveny@laposte.net> 29171 29172 Makefile.am: add mpfr_printf-like functions 29173 mpfr.h: add mpfr_printf-like functions 29174 printf.c: printf, sprintf, snprintf, asprintf and 'v' variants 29175 vasprintf.c: vasprintf functions used by its likes 29176 mpfr.texi: add description for printf family functions 29177 tests/Makefile.am: add test for printf 29178 tests/tprintf.c: tests for printf-like functions 29179 acinclude.m4: define HAVE_LOCALE_H 29180 mpfr-impl.h: define MPFR_DECIMAL_POINT even if no locale.h 29181 strtofr.c: remove locale.h inclusion (done by mpfr-impl.h ) 29182 tests/tests.c: use HAVE_LOCALE_H 29183 291842007-11-23 Vincent Lefèvre <vincent@vinc17.net> 29185 29186 tests/tisqrt.c: test the 32-bit __gmpfr_cuberoot bound cases (9 per 29187 value) exhaustively (running tisqrt is still immediate on a recent 29188 machine). 29189 29190 tests/tisqrt.c: test the 32-bit __gmpfr_isqrt bound cases exhaustively. 29191 29192 acinclude.m4: test the availability of <string.h>. 29193 29194 acinclude.m4: test the availability of <locale.h>. 29195 29196 acinclude.m4: updated comment concerning the checked functions. 29197 29198 acinclude.m4: added memmove to the checked functions (though this test 29199 is currently useless, except for the corresponding information). 29200 29201 acinclude.m4: updated a comment concerning the function checking. 29202 29203 gmp_op.c: removed old "#include <stddef.h>" line (seems to be useless 29204 now, and note that <stdio.h> is included by default in mpfr-impl.h). 29205 29206 tests/tj0.c: fixed test. 29207 29208 jn.c: added integer overflow checking. 29209 29210 tests/memory.c: fixed copyright notice. 29211 292122007-11-21 Vincent Lefèvre <vincent@vinc17.net> 29213 29214 tests/tzeta.c: completed test of mpfr_zeta bug fixed in r4920 (the value 29215 of zeta(large negative) was also wrong in GMP_RNDU: -Inf instead of the 29216 largest negative MPFR number). 29217 292182007-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29219 29220 reverted back to rev. 4951 (otherwise we would have to free memory for all 29221 exit calls) 29222 292232007-11-20 Philippe Théveny <philippe.theveny@laposte.net> 29224 29225 use of RANDS instead of __gmp_rands 29226 tset_f.c add checking with random values 29227 292282007-11-19 Philippe Théveny <philippe.theveny@laposte.net> 29229 29230 tli2.c: fix wrong assertion in copyright motice 29231 test.c: fixed seed for reproducible errors 29232 trandom.c tpow_z.c tset_f.c: integration with GMP_CHECK_RANDOMIZE process 29233 292342007-11-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29235 29236 added missing call to tests_end_mpfr 29237 29238 got rid of mpfr_init_gmp_rand/MPFR_TEST_USE_RANDS and not-reentrant gmp 29239 random functions (mpn_random*, mpz_random*, mpf_random*). Now all tests use 29240 either RANDS (which is cleared by tests_rand_end called by tests_end_mpfr), 29241 or the gmp_randstate_t mechanism. 29242 292432007-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29244 29245 added missing mpfr_clear and tests_end_mpfr (thanks Michael Abshoff) 29246 29247 fixed problem reported by valgrind (thanks to Michael Abshoff) 29248 292492007-11-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29250 29251 fixed bug in div_ui for x=0 and u<>0 (sign of result was not set) 29252 292532007-11-06 Philippe Théveny <philippe.theveny@laposte.net> 29254 29255 algorithms.tex: fix bibtex references for dilogarithm function 29256 algorithms.bib: add references for dilogarithm function 29257 292582007-11-05 Vincent Lefèvre <vincent@vinc17.net> 29259 29260 mpfr-impl.h: removed trailing spaces. 29261 292622007-11-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29263 29264 added new macro MPFR_ALIAS 29265 292662007-11-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29267 29268 removed unused label 29269 292702007-11-04 Vincent Lefèvre <vincent@vinc17.net> 29271 29272 pow_z.c: fixed bug that occurs when x is a power of 2 and the result 29273 overflows (wrong sign); this bug has always been present (from r3215). 29274 29275 tpow.c, tpow_z.c: removed a printf that was left by mistake. 29276 29277 tpow_z.c: added testcase for the latest mpfr_pow bug (rev 4942), 29278 which is in fact a bug in mpfr_pow_z. 29279 29280 tpow.c: added testcase for new bug found by Kevin P. Rauch; removed a 29281 mpfr_dump that was left by mistake. 29282 292832007-11-03 Vincent Lefèvre <vincent@vinc17.net> 29284 29285 pow.c: removed FIXME comment. 29286 292872007-11-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29288 29289 fixed case x < 0, y large integer 29290 292912007-11-03 Vincent Lefèvre <vincent@vinc17.net> 29292 29293 pow.c: added FIXME comment. 29294 29295 tpow.c: added testcase for new bug found by Kevin P. Rauch. The problem 29296 occurs on x^y with x negative and y an integer whose exponent is > 256 29297 (so that mpfr_pow_z isn't used, and the generic code is used instead and 29298 fails because x is negative). 29299 293002007-11-02 Vincent Lefèvre <vincent@vinc17.net> 29301 29302 Fixed several bugs in mpfr_pow (from rev 3592 and 4932); added testcase. 29303 29304 tpow.c: added an overflow test in reduced exponent range 29305 (-> assertion failure in the current pow.c code). 29306 29307 mpfr-impl.h: added a comment concerning __gmpfr_one, __gmpfr_two and 29308 __gmpfr_four. 29309 29310 Bug fix: in cmp_abs.c, changed MPFR_GET_EXP into MPFR_EXP to allow 29311 exponents outside the current exponent range (needed for mpfr_pow). 29312 293132007-10-31 Vincent Lefèvre <vincent@vinc17.net> 29314 29315 Untabified and removed trailing spaces. 29316 293172007-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29318 29319 pow.c, tpow.c: fixed bugs reported by Kevin Rauch 29320 mpfr-impl.h: fixed typo 29321 29322 cosmetic changes 29323 29324 added missing \Li2 29325 293262007-10-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29327 29328 added more test cases for mpfr_li2 29329 improved MPFR_FAST_COMPUTE_IF_SMALL_INPUT case for x > 0 29330 29331 fixed bug mentioned by Kevin Rauch: mpfr_lgamma was hanging for tiny input 29332 (had to implement a complete loop in that case) 29333 29334 fixed bug reported by Kevin Rauch: wrong sign for jn(n even, large negative x) 29335 29336 removed item on mpfr_sinh_cosh (done) 29337 added more info on item on efficiency of mpfr_sin 29338 29339 added comment about function/macro in custom interface 29340 29341 jn.c: improved choice of initial precision in Taylor series (takes into 29342 account cancellation) 29343 tests/tjn.c: now "tjn p n z" evaluates j(n,z) to precision p 29344 293452007-10-27 Vincent Lefèvre <vincent@vinc17.net> 29346 29347 factorial.c: added FIXME comment. 29348 29349 gamma.c: attempt to fix wrong fix in 4918 (the maximum exponent can 29350 be > 2^30 on 64-bit machines). There may still be problems in huge 29351 precisions. 29352 293532007-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29354 29355 added note about efficiency of special functions 29356 corrected typo 29357 29358 fixed bug in zeta(large negative) reported by Kevin Rauch [wrong inexact flag] 29359 29360 fixed inefficiency reported by Kevin Rauch when x large negative (erfc -> 2) 29361 293622007-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29363 29364 fixed another bug found by Kevin Rauch: gamma(huge integer) failed on 64-bit 29365 29366 fixed bug found by Kevin Rauch (emin/emax not restored for x=1,2) 29367 29368 added test for reference values 29369 29370 reference values for li2 29371 293722007-10-26 Philippe Théveny <philippe.theveny@laposte.net> 29373 29374 algorithms.tex: description of dilogarithm algorithm 29375 li2.c: conformity with description in algorithm.tex 29376 293772007-10-23 Vincent Lefèvre <vincent@vinc17.net> 29378 29379 mpfr.texi: small change in the description of mpfr_subnormalize. 29380 293812007-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29382 29383 added more details in the description of subnormalize 29384 293852007-10-23 Vincent Lefèvre <vincent@vinc17.net> 29386 29387 subnormal.c: fixed the bugs when old_inex is INT_MIN or INT_MAX. 29388 29389 tsubnormal.c: added some tests showing bugs when old_inex is INT_MIN 29390 or INT_MAX. 29391 29392 subnormal.c: corrected comment. 29393 29394 Changeset r4904 introduced an assertion failure, but the assertion 29395 emax - emin >= PREC(x) wasn't necessary: the value of emax doesn't 29396 matter, except when the exponent is increased due to the rounding. 29397 So, we just document that if the result cannot be represented in the 29398 current exponent range, the behavior is undefined (updated mpfr.texi 29399 accordingly). Removed the assertion from subnormal.c and added a new 29400 one to have an abort if such an undefined behavior occurs. 29401 294022007-10-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29403 29404 fixed 2 bugs reported by Kevin Rauch 29405 294062007-10-22 Vincent Lefèvre <vincent@vinc17.net> 29407 29408 subnormal.c: replaced incorrect comment. 29409 29410 tests: updated svn:ignore property. 29411 294122007-10-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29413 29414 added new references 29415 294162007-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29417 29418 added asymptotic expansions 29419 294202007-10-19 Philippe Théveny <philippe.theveny@laposte.net> 29421 29422 li2.c: add Ziv's loop in li2_series 29423 tli2.c: add a function for fixed value checking 29424 294252007-10-17 Philippe Théveny <philippe.theveny@laposte.net> 29426 29427 li2.c: fix a typo and fix use of taylor series 29428 tests/tli2.c: use default random function 29429 294302007-10-16 Philippe Théveny <philippe.theveny@laposte.net> 29431 29432 add dilogarithm function 29433 294342007-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29435 29436 added item in Efficiency section 29437 29438 added table of contents 29439 removed last section (mpf/mpfr integration) 29440 294412007-10-15 Vincent Lefèvre <vincent@vinc17.net> 29442 29443 Fixed acosh(x) with x slightly larger than 1, using sqrt(2(x-1)) and 29444 a complete error analysis. 29445 29446 tests/tacosh.c: added another test with x a bit larger than 1 and 29447 prec(y) << prec(x). 29448 294492007-10-12 Vincent Lefèvre <vincent@vinc17.net> 29450 29451 acosh.c: added a comment about the fix I did in r4814. 29452 294532007-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29454 29455 added extra reference for slowness of mpfr_root 29456 294572007-10-09 Vincent Lefèvre <vincent@vinc17.net> 29458 29459 FAQ update (added Question 8). 29460 29461 mpfr.texi: another small change in Contributors section. 29462 29463 mpfr.texi: small change in Contributors section. 29464 29465 mpfr.texi: mention Fiable and AOC actions in the Contributors section. 29466 294672007-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29468 29469 added reference to ACM TOMS paper 29470 updated other references, and Contributors section 29471 29472 fixed typo in sectioning 29473 294742007-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29475 29476 removed mpfr_get_d1 from documented functions 29477 removed old commented functions 29478 29479 renamed "Rounding Mode Related Functions" to "Rounding Related Functions" 29480 put mpfr_can_round in "Rounding Related Functions" (now exported) 29481 exchanged order of sections "Miscellaneous Functions" and "Rounding Related Functions" 29482 29483 added hint for mpfr_can_round to get ternary value 29484 29485 changed mpfr_can_round() call into MPFR_CAN_ROUND() call 29486 294872007-10-05 Vincent Lefèvre <vincent@vinc17.net> 29488 29489 Updated update-version to make patches easier to produce. 29490 294912007-10-04 Vincent Lefèvre <vincent@vinc17.net> 29492 29493 Fixed a bug (found by Robert Bajema) in mpfr_atan2, which can occur if 29494 the underflow flag is set before the call and x > 0; added testcase. 29495 294962007-10-03 Vincent Lefèvre <vincent@vinc17.net> 29497 29498 mpfr.texi: improved mpfr_set_exp description too. 29499 29500 mpfr.texi: improved mpfr_get_exp documentation. 29501 29502 mpfr.texi: mantissa -> significand (to use the terminology from IEEE 754 29503 and ISO C99). 29504 29505 configure.in: better error message if libgmp is not found. 29506 295072007-10-02 Philippe Théveny <philippe.theveny@laposte.net> 29508 29509 fix some typos 29510 295112007-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29512 29513 added references 29514 295152007-09-28 Philippe Théveny <philippe.theveny@laposte.net> 29516 29517 merge fmod, remaider and remquo into a single file rem1.c. 29518 merge code into a single internal function mpfr_rem1. 29519 fix false statement in mpfr.texi: rop and op1 have the same sign for mpfr_fmod 29520 but not for mpfr_remainder and mpfr_remquo. 29521 295222007-09-26 Vincent Lefèvre <vincent@vinc17.net> 29523 29524 tests/tfmod.c: added static. 29525 295262007-09-26 Philippe Théveny <philippe.theveny@laposte.net> 29527 29528 new fmod function 29529 295302007-09-22 Vincent Lefèvre <vincent@vinc17.net> 29531 29532 tests: updated svn:ignore property. 29533 29534 GNU coding style, reformatting, exit (-1) -> exit (1). 29535 295362007-09-21 Philippe Théveny <philippe.theveny@laposte.net> 29537 29538 new mpfr_sinh_cosh function 29539 295402007-09-19 Vincent Lefèvre <vincent@vinc17.net> 29541 29542 BUGS: removed __gmpfr_isqrt bug. 29543 29544 isqrt.c: quick fix of __gmpfr_cuberoot (a full proof is needed). 29545 tests/tisqrt.c: added much more tests for __gmpfr_cuberoot. 29546 29547 tisqrt.c: improved tests. When doing 29548 touch tests.c tisqrt.c 29549 make tisqrt CFLAGS="-g -O2 -ffloat-store -DMPFR_FPU_PREC=_FPU_SINGLE" 29550 ./tisqrt 29551 with gcc 4.2.1 on a Linux/x86 machine, on gets: 29552 Error in __gmpfr_cuberoot (4251527999): got 1620 instead of 1619 29553 29554 tisqrt.c: added __gmpfr_cuberoot() tests. 29555 29556 isqrt.c: corrected the explanation. 29557 29558 isqrt.c: fixed __gmpfr_isqrt. 29559 295602007-09-18 Vincent Lefèvre <vincent@vinc17.net> 29561 29562 tests: updated svn:ignore property. 29563 29564 tests: added tisqrt.c (test file for __gmpfr_isqrt internal function). 29565 29566 BUGS: added __gmpfr_isqrt bug. 29567 29568 isqrt.c: fixed a cast and added a FIXME comment. 29569 29570 isqrt.c: GNU coding style. 29571 29572 sin.c: extend the exponent range. 29573 29574 sqr.c: set the global inexact flag. 29575 29576 sqrt.c: avoid the exponent range extension. 29577 29578 tsqr.c: added generic tests (shows that the inexact flag isn't set). 29579 29580 sqrt.c: extend exponent range (this also fixes the fact that the global 29581 inexact flag wasn't set). 29582 29583 tsqrt.c: added generic tests (shows that the inexact flag isn't set, 29584 which is a bug reported by Guillaume Revy). 29585 295862007-09-17 Philippe Théveny <philippe.theveny@laposte.net> 29587 29588 modf.c: take care of user exponent range (possible underflow/overflow) 29589 295902007-09-16 Vincent Lefèvre <vincent@vinc17.net> 29591 29592 tsin_cos.c: fixed the tiny() test. 29593 29594 sin_cos.c: fixed the overflow and cancellation problems by using 29595 MPFR_FAST_COMPUTE_IF_SMALL_INPUT from the mpfr_sin and mpfr_cos 29596 functions (I'll fix the test later). 29597 29598 tsin_cos.c: added test on tiny values. 29599 296002007-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29601 29602 Put back previous patch, now avoids overflow, and added more explanations. 29603 This is still not a definitive solution, but more efficient than 2.3.0 29604 in the case x is small. 29605 296062007-09-15 Vincent Lefèvre <vincent@vinc17.net> 29607 29608 Efficiency regression wasn't fixed correctly -> commented out the code. 29609 296102007-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29611 29612 fixed efficiency regression pointed out by Andreas Enge 29613 296142007-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29615 29616 fixed bug in mpfr_sin_cos found by Philippe: z (to save the cosine) was not 29617 allowed to be identical to the input x 29618 296192007-09-13 Philippe Théveny <philippe.theveny@laposte.net> 29620 29621 new function mpfr_modf and add restrictions on mpfr_sin_cos' variables 29622 296232007-09-11 Philippe Théveny <philippe.theveny@laposte.net> 29624 29625 add some simple test cases in tadd_d.c and friends 29626 296272007-09-10 Vincent Lefèvre <vincent@vinc17.net> 29628 29629 prepare: output a message saying that this script is obsolete. 29630 296312007-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29632 29633 added restrictions to mpfr_add_d and friends 29634 296352007-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29636 29637 removed functions mpfr_add_d ... which are done 29638 296392007-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29640 29641 added Philippe Theveny 29642 296432007-09-07 Philippe Théveny <philippe.theveny@laposte.net> 29644 29645 new arithmetic functions with a double argument 29646 296472007-09-07 Vincent Lefèvre <vincent@vinc17.net> 29648 29649 tacosh.c: added generic tests for the overflow case. 29650 29651 acosh.c: reduce the precision for ln(2); smaller error bound. 29652 29653 tgeneric.c: undefine some macros at the end. 29654 29655 acosh.c: fixed overflow bug. 29656 29657 acosh.c: mentioned bug due to overflow in mpfr_mul. 29658 tests/tacosh.c: added corresponding testcase (for 32-bit machines). 29659 29660 tacosh.c: use tests_default_random(). 29661 29662 tests.c: improved tests_default_random(). 29663 296642007-09-02 Vincent Lefèvre <vincent@vinc17.net> 29665 29666 Makefile.am: fixed get_patches rule. 29667 29668 Makefile.am: cd $(srcdir) before executing get_patches.sh (thanks to 29669 Daniel Jacobowitz for noticing this); for more information, see the 29670 note just before the get_patches.c rule. 29671 296722007-08-31 Vincent Lefèvre <vincent@vinc17.net> 29673 29674 acosh.c: added MPFR_UNLIKELY. 29675 29676 Added generic bad case tests. 29677 29678 algorithms.tex: deleted trailing spaces. 29679 29680 algorithms.tex: correction in section on mpfr_asinh: acosh -> asinh. 29681 29682 Fixed bug in mpfr_acosh for arguments slightly larger than 1; 29683 updated algorithms.tex; fixed testcase. 29684 29685 tacosh.c: added testcase for bug in mpfr_acosh (assertion failure). 29686 29687 tasin.c: increased the number of generic tests. 29688 29689 Improved generic tests by limiting the exponent range of the random 29690 numbers for some functions. 29691 296922007-08-30 Vincent Lefèvre <vincent@vinc17.net> 29693 29694 Generic tests: adjust the proportion of negative numbers returned 29695 by the random function in order to get fewer NaN cases. 29696 29697 tgeneric.c: output a warning when too few normal cases are tested 29698 (so that the random function can be improved...). 29699 29700 tests.c: function split (for future addition). 29701 29702 configure.in: updated copyright notice (for consistency). 29703 29704 Bug fix: added missing _MPFR_PROTO in mpfr-test.h. 29705 29706 tgeneric.c: updated description line. 29707 297082007-08-29 Vincent Lefèvre <vincent@vinc17.net> 29709 29710 Updated copyright notice (for an unknown reason, some files were missing 29711 from the change done in r4350). 29712 297132007-08-28 Vincent Lefèvre <vincent@vinc17.net> 29714 29715 atan2.c: as we supposed some property, let's add an assertion (which 29716 can be evaluated at compile time). 29717 29718 atan2.c: improved comment. 29719 29720 atan2.c: completed the underflow case. 29721 29722 atan2.c: fixed the underflow case except in GMP_RNDN with 29723 2^(-emin-2) < |y/x| < 2^(-emin-1). 29724 29725 tatan.c: added small-value tests in the other rounding modes. 29726 29727 atan2.c: implemented the special case where x is positive and y/x is 29728 computed exactly (solving the underflow problems in this case). 29729 29730 tatan.c: added a similar test, but with an exact division result. 29731 29732 tatan.c: fixed test. 29733 29734 README.dev: added a paragraph concerning Ziv loops. 29735 29736 tatan.c: updated comment. 29737 29738 tatan.c: extended the latest testcase to any platform (e.g. 64 bits). 29739 29740 tatan.c: added testcase from a bug reported by Christopher Creutzig. 29741 297422007-08-27 Vincent Lefèvre <vincent@vinc17.net> 29743 29744 Updated svn:ignore properties. 29745 29746 FAQ update: 29747 * The question numbers are now hardcoded instead of being generated 29748 with CSS rules. 29749 * Added the list of questions at the top. 29750 * CSS styles: a grey bar is displayed on the left of the target answer 29751 (if the browser supports the ":target" pseudo-class from CSS3). 29752 29753 faq.xsl: added a comment. 29754 29755 FAQ update. 29756 297572007-08-22 Vincent Lefèvre <vincent@vinc17.net> 29758 29759 INSTALL: added another warning concerning the --with-gmp options. 29760 For instance, under Linux, "cpp -I/usr/include -v < /dev/null" says: 29761 ignoring duplicate directory "/usr/include" 29762 as it is a non-system directory that duplicates a system directory 29763 and does not modify the include search path as wanted. 29764 297652007-08-15 Vincent Lefèvre <vincent@vinc17.net> 29766 29767 mpfr.texi: improved description of mpfr_setsign. 29768 297692007-08-14 Vincent Lefèvre <vincent@vinc17.net> 29770 29771 Added to NEWS: Thread-safe support with Microsoft Visual compiler. 29772 29773 mpfr-impl.h: if MPFR_USE_THREAD_SAFE is defined (--enable-thread-safe): 29774 * Added support for MSC (thanks to Brian Gladman). 29775 * Define MPFR_THREAD_ATTR even after #error to make the error more 29776 visible (see comment in the source). 29777 297782007-08-13 Vincent Lefèvre <vincent@vinc17.net> 29779 29780 tstckintc.c: fixed bus error on Solaris (the address of Buffer was not 29781 a multiple of 4). 29782 29783 NEWS: new functions mpfr_signbit, mpfr_setsign, mpfr_copysign. 29784 29785 Implemented changes suggested in 29786 <https://sympa.inria.fr/sympa/arc/mpfr/2007-07/msg00123.html>. 29787 * Made mpfr_copysign() like the corresponding function in IEEE 754 29788 (was an internal function until now). 29789 * Added mpfr_signbit() and mpfr_setsign(). 29790 * Documented these three functions. 29791 * Updated TODO. 29792 297932007-08-11 Vincent Lefèvre <vincent@vinc17.net> 29794 29795 Fixed mpfr_inits and mpfr_clears calls in tests/tatan.c. 29796 29797 Added check_inits_clears Perl script to check that a cast is performed 29798 for the last argument of mpfr_inits, mpfr_inits2 and mpfr_clears. 29799 298002007-08-10 Vincent Lefèvre <vincent@vinc17.net> 29801 29802 Updated version to 2.4.0-dev. 29803 29804 NEWS update. 29805 29806 ChangeLog update with "TZ=UTC svn log -v". 29807 29808 asinh.c: fixed assertion failure (see test 4 in tasinh.c, added 29809 in r4740), that was due to an exception. 29810 29811 tasinh.c: fixed test. 29812 29813 tasinh.c: added worst case that yields an assertion failure. 29814 298152007-08-09 Vincent Lefèvre <vincent@vinc17.net> 29816 29817 Added data_check support to cbrt. 29818 29819 log.c: fixed assertion failure (see test x_near_one in tlog.c, added 29820 in r4736), that was due to an exception. 29821 29822 pow.c: added MPFR_SMALL_INPUT_AFTER_SAVE_EXPO for the case where 29823 |y * log(x)| is very small (I can't really test because this code 29824 currently fails due to a bug in mpfr_log: see test x_near_one 29825 added to tlog.c as changeset 4736; this bug is also present in 29826 the 2.2 branch). 29827 29828 tlog.c: added a test leading to an assertion failure in mpfr_log. 29829 29830 tpow.c: added a test where x is close to 1. 29831 29832 Added empty file tests/data/exp10 to avoid an error with -dev versions. 29833 29834 Added a TODO concerning the description of mpfr_round_near_x. 29835 29836 Added empty files in tests/data to avoid errors with -dev versions. 29837 29838 mpfr_ui_pow fix: added a MPFR_SAVE_EXPO_UPDATE_FLAGS. 29839 29840 Added texp10.c (texp10 currently fails). 29841 29842 texp2.c: reformat and added some tests which were missing. 29843 298442007-08-08 Vincent Lefèvre <vincent@vinc17.net> 29845 29846 Added data_check calls to texpm1, tlog1p and tlog2. 29847 29848 tests/tests.c: in data_check(), mode 'Z', do not test GMP_RNDN if 29849 the precision for the directed rounding modes is MPFR_PREC_MIN. 29850 298512007-08-04 Vincent Lefèvre <vincent@vinc17.net> 29852 29853 TODO: more on mpfr_sin (and mpfr_cos). 29854 29855 TODO: update concerning sin/cos/tan. 29856 298572007-08-03 Vincent Lefèvre <vincent@vinc17.net> 29858 29859 tests/tests.c: in data_check(), check the 4 rounding modes if rnd is 'Z' 29860 (in order to test the worst cases). 29861 29862 Fixed coding style (for ansi2knr in particular). 29863 298642007-08-02 Vincent Lefèvre <vincent@vinc17.net> 29865 29866 Makefile.am: added a comment about "get_patches.c". 29867 29868 No longer set "CLEANFILES = get_patches.c" in Makefile.am so that a 29869 "make clean" doesn't remove the get_patches.c file, as rebuilding it 29870 needs a Unix shell (and some standard utilities). Anyway the update 29871 of this file should be regarded as part of the patch process, then 29872 this file is just like any other .c files. Note: "make dist" includes 29873 this file in the archives, so that concerning the build, everything 29874 is like before as long as no patches are applied. 29875 298762007-08-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29877 29878 added item about sNaN/qNaN 29879 298802007-07-31 Vincent Lefèvre <vincent@vinc17.net> 29881 29882 copysign.c: reformat, updated comment (but this function is still not 29883 documented in mpfr.texi). 29884 29885 Updated version back to 2.3.0-dev since the 2.3 branch will be recreated 29886 from the trunk (too many changes!). 29887 29888 tl2b.c: enable output even when the constants are correct. 29889 29890 Added get_patches.c to the svn:ignore property, as this file is 29891 generated. 29892 29893 Replaced l2b cache by constants, as suggested by Patrick Pelissier, 29894 to avoid efficiency problems with the stack interface and heavily 29895 threaded applications. 29896 * Added tests/tl2b.c to generate / check the constants. 29897 * tests/Makefile.am: added tl2b to check_PROGRAMS. 29898 * tests directory: added tl2b to the svn:ignore property. 29899 * mpfr-impl.h: updated the __gmpfr_l2b declaration. 29900 * free_cache.c: disabled free_l2b (since there's no longer a cache). 29901 * get_str.c: added the code generated by tl2b; for the bootstrap, one 29902 can just write: 29903 const __mpfr_struct __gmpfr_l2b[BASE_MAX-1][2] = { { { 0 } } }; 29904 Removed the code (in ceil_mul) that computed these constants. 29905 299062007-07-30 Vincent Lefèvre <vincent@vinc17.net> 29907 29908 mpfr.texi: updated the documentation of the mpfr_get_d function family. 29909 29910 Patch tracking: updated README.dev and TODO files. 29911 29912 Added support for tracking applied patches with new function 29913 mpfr_get_patches(). 29914 29915 mpfr.texi: updated the example concerning mpfr_get_version() vs 29916 MPFR_VERSION_STRING ("Warning" instead of "Error", make sure that 29917 the example fits on 80 columns in the info file). 29918 29919 mpfr.texi: updated description of mpfr_get_version(). 29920 29921 mpfr.texi: updated description of mpfr_get_version(). 29922 299232007-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29924 29925 added files that are not 100% covered by tests 29926 299272007-07-27 Vincent Lefèvre <vincent@vinc17.net> 29928 29929 coverage: added --disable-shared --enable-static to configure. 29930 29931 mpfr-impl.h: added more casts for g++. 29932 29933 Reformat. 29934 29935 Applied patch from Patrick to be able to build MPFR with g++. 29936 299372007-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29938 29939 added default thresholds for Core 2 29940 299412007-07-25 Vincent Lefèvre <vincent@vinc17.net> 29942 29943 No longer use MPFR_CHECK_ALL in tests. In '-dev' versions, assume 29944 that the data files exist and return an error whenever a file cannot 29945 be opened. In the other versions, return silently if the file cannot 29946 be opened. 29947 29948 Moved mpfr-test.h into the tests directory. 29949 299502007-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29951 29952 fixed "efficiency bug" (argument reduction was broken) 29953 299542007-07-25 Vincent Lefèvre <vincent@vinc17.net> 29955 29956 tests.c: in data_check(), made whitespace skipping consistent and 29957 check that the result value is immediately followed by a \n. 29958 29959 [tests.c] Fixed some types (the result of getc() is not necessarily 29960 representable in a char). 29961 29962 tests.c: changes in the error messages (BTW, we decided to output 29963 everything to stdout for consistency, even though messages for 29964 assertion failure are written to stderr) and replaced an abort () 29965 by an exit (1). 29966 29967 Delete trailing spaces. 29968 299692007-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29970 29971 jyn_asympt.c: new common file for asymptotic expansion in jn/yn 29972 tests/tests.c: print precisions in case of failure 29973 jn.c: now use jyn_asympt.c 29974 yn.c: now implement asymptotic expansion (jyn_asympt.c) 29975 29976 fixed more wrong entries in Gonnet's test suite 29977 299782007-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29979 29980 contribution of first neglected term to error was wrong 29981 29982 fixed wrong entry (not enough precision was used in Maple) 29983 29984 implemented asymptotic expansion for large argument in j0/j1/jn 29985 299862007-07-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 29987 29988 define MPFR_CHECK_ALL for nightly tests 29989 29990 Added code to check mpfr against Gonnet's tables when the environment variable 29991 MPFR_CHECK_ALL is defined (some table entries were checked by MuPAD) 29992 29993 added comment 29994 29995 test data files mpfr mpfr_y0 and mpfr_y1, ***not*** checked with MuPAD 29996 29997 added auxiliary MuPAD functions 29998 improved Ziv's strategy: add half of DIGITS each time 29999 30000 test data file for mpfr_tanh, checked by MuPAD 30001 30002 test data file for mpfr_tan, checked with MuPAD (except 3 indicated entries) 30003 30004 test data file for mpfr_sqrt, checked with MuPAD 30005 30006 test data file for mpfr_sinh, checked by MuPAD (except indicated lines) 30007 30008 test data file for mpfr_sin, checked by MuPAD (except tiny inputs indicated 30009 in file) 30010 30011 test data file for x^(11/4), checked with MuPAD 30012 30013 finally, I was able to check it with MuPAD 30014 30015 test data file for 2^x, checked with MuPAD 30016 30017 test data file for Pi*x, checked with MuPAD 30018 30019 test data file for mpfr_log, checked with MuPAD 30020 30021 test data files for mpfr_j0, mpfr_j1, mpfr_lgamma, mpfr_log10, 30022 ***not*** tested with MuPAD (not Dom::Interval interface) 30023 30024 test data file for 1/x, i.e., mpfr_ui_div(1,x), checked with MuPAD 30025 30026 test data file for mpfr_gamma, ***not*** checked by MuPAD 30027 30028 test data file for mpfr_exp, checked with MuPAD 30029 30030 test data files for erf and erfc (not checked by MuPAD, since Dom::Interval 30031 does not have an interface for those functions in MuPAD 3.2.0) 30032 30033 test data file for mpfr_cosh, checked with MuPAD 30034 30035 test data file for mpfr_cos, checked by MuPAD 30036 30037 test data file for mpfr_atanh, checked with MuPAD 30038 30039 test data file for atan, checked with MuPAD 30040 30041 test file for mpfr_asinh, checked with MuPAD 30042 30043 data file for mpfr_asin, checked with MuPAD using CheckData.mu 30044 30045 data file for mpfr_acosh, checked with MuPAD using CheckData.mu 30046 30047 improved output 30048 30049 MuPAD file to check a data file 30050 300512007-07-20 Vincent Lefèvre <vincent@vinc17.net> 30052 30053 Renamed mpfr_l2b as __gmpfr_l2b for consistency. 30054 300552007-07-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30056 30057 patch from Brian Gladman to build mpfr.dll 30058 30059 added copyright information about Gonnet's package 30060 30061 modified data_check() to allow comment lines starting with # 30062 30063 new (experimental) mechanism to check data files (see example in tacos.c) 30064 30065 new directory for test data 30066 30067 added test for inexact flag (bug fixed in r4630) 30068 300692007-07-18 Vincent Lefèvre <vincent@vinc17.net> 30070 30071 erfc.c, atan2.c: added missing "MPFR_SAVE_EXPO_FREE (expo);" before 30072 "return mpfr_underflow (...);". 30073 erfc.c: replaced a goto by an else. 30074 300752007-07-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30076 30077 now deal with underflow in y/x (remains to deal with overflow) 30078 30079 now can specify output base when argc > 1 30080 30081 MPFR_EQUAL -> mpfr_equal_p 30082 30083 fixed problem with erfc() near underflow region 30084 30085 atan2.c: quick-and-dirty fix for atan2(y,1) 30086 tests/tatan.c: fix tests from Christopher [x and y were interchanged] 30087 30088 added test from Ch. Creutzig 30089 30090 apply patch suggested in bug #3604 30091 300922007-07-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30093 30094 previous bug fix for tiny negative inputs in mpfr_lgamma was incorrect: 30095 result was NaN, but this was not detected by the tests since mpfr_cmp (y, NaN) 30096 is always true! 30097 300982007-07-17 Vincent Lefèvre <vincent@vinc17.net> 30099 30100 Added comments and fixed an indentation bug. 30101 301022007-07-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30103 30104 in reconstruction after computation of cos(x/2^k) for reduced argument, 30105 it may be that cos(x) is zero to the working precision. Then restart Ziv's 30106 algorithm with a larger precision. 30107 301082007-07-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30109 30110 lngamma.c: fix for small inputs 30111 tlgamma.c: added more tests from Kaveh Ghazi 30112 30113 sin_cos.c: 2nd arg of 1st mpfr_can_round call was wrong 30114 ttan.c: fixed wrong reference value 30115 30116 added comment about sinpi, etc. 30117 301182007-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30119 30120 added new test, and re-enabled test that was too slow 30121 301222007-07-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30123 30124 removed MPFR_CHECK_TINY, added MPFR_CHECK_MAX 30125 301262007-07-10 Vincent Lefèvre <vincent@vinc17.net> 30127 30128 terf.c: added testcase for bug reported by Christopher Creutzig. 30129 301302007-07-09 Vincent Lefèvre <vincent@vinc17.net> 30131 30132 Removed a #include that was probably added by mistake in r2590. 30133 30134 <stdio.h> and <limits.h> are now included unconditionally in mpfr-impl.h 30135 (removed their inclusion from the C files for consistency). 30136 301372007-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30138 30139 ternary flag was wrong in case s=1 or -1 and rounding up/nearest 30140 30141 updated algorithms.tex with new additive argument reduction for sin/cos/tan 30142 301432007-07-03 Vincent Lefèvre <vincent@vinc17.net> 30144 30145 lngamma.c: reformat and replaced mpfr_cmp(...) == 0 by mpfr_equal_p. 30146 301472007-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30148 30149 changed stdlib to stdio for NULL (see README.dev) 30150 30151 fixed bug in tlgamma and added test (need to implement Ziv's strategy in 30152 tiny case) 30153 30154 added missing include 30155 301562007-07-03 Vincent Lefèvre <vincent@vinc17.net> 30157 30158 Fixed the bug reported by David Billinghurst to the MPFR mailing-list 30159 on 2007-07-03 (memory leaks under some conditions): 30160 * moved the free_l2b() function from tests/tests.c to free_cache.c; 30161 * mpfr_free_cache() (from free_cache.c) now calls free_l2b(); 30162 * as a consequence, no longer call free_l2b() in tests_end_mpfr(); 30163 * documented the behavior in mpfr.texi (under mpfr_free_cache). 30164 30165 tj0.c: added testcase from Sisyphus (assertion failed). 30166 30167 README.dev: explain how to test the library interface compatibility. 30168 301692007-07-02 Vincent Lefèvre <vincent@vinc17.net> 30170 30171 README.dev: mentions patch-libtool and how to apply it. 30172 30173 Added patch-libtool (patch for aclocal.m4 and configure that comes from 30174 <https://lists.gnu.org/archive/html/bug-libtool/2007-07/msg00007.html> 30175 or gmane.comp.gnu.libtool.bugs:5776). 30176 30177 NEWS: mention that the shared library is now enabled by default on 2.3. 30178 30179 README.dev: updated item 2 of "To make a release". 30180 30181 Reformat. 30182 30183 Updated version to 2.4.0-dev. 30184 30185 ChangeLog update. 30186 30187 NEWS: update. 30188 301892007-07-01 Vincent Lefèvre <vincent@vinc17.net> 30190 30191 Makefile.am: updated comment concerning -version-info. 30192 30193 Added mpfr_fms based on mpfr_fma. 30194 30195 tfma.c: added a space. 30196 30197 tfma.c: typo. 30198 30199 Reformat. 30200 30201 fma.c: minor changes for consistency with the future fms. 30202 30203 Completed the implementation of mpfr_fma (except in some corner cases 30204 where overflows/underflows and huge precisions are involved at the 30205 same time). Added underflow tests. Removed item from the BUGS file 30206 (the remaining problems more or less correspond to the first item). 30207 30208 Untabified. 30209 30210 tfma.c: added overflow test to test_underflow. 30211 30212 fma.c: implemented the main cases where x * y underflows. 30213 tests/tfma.c: fixed overflow tests and added underflow tests. 30214 302152007-06-30 Vincent Lefèvre <vincent@vinc17.net> 30216 30217 NEWS: update. 30218 302192007-06-29 Vincent Lefèvre <vincent@vinc17.net> 30220 30221 BUGS: updated item on mpfr_fma. 30222 30223 fma.c: completed the cases where x*y/4 needs to be used, except the very 30224 particular cases where an underflow occurs, that remain to be done. 30225 30226 tfma.c: fixed a printf. 30227 30228 fma.c: added an assertion. 30229 30230 tfma.c: fixed overflow tests. 30231 30232 tfma.c: check NaN in test_overflow2. 30233 30234 fma.c: updated a comment. 30235 30236 tfma.c: added more overflow tests (needed to distinguish the cases 30237 where z/4 underflows or not -- see fma.c). 30238 30239 tfma.c: added tests (-> assertion failed because mpfr_fma implementation 30240 isn't complete). 30241 302422007-06-28 Vincent Lefèvre <vincent@vinc17.net> 30243 30244 acos.c: disabled change from r3145 ("Optimize mpfr_acos by choosing 30245 a better initial precision.") that was buggy. 30246 BUGS: removed mpfr_acos bug. 30247 30248 BUGS: updated item on the mpfr_acos bug. 30249 30250 BUGS: updated item on the mpfr_acos test (the bug wasn't visible on 30251 32-bit machines due to an integer overflow, but the result should 30252 have been correct anyway). 30253 30254 acos.c: fixed integer overflows; to avoid undefined behavior, I had 30255 to add an assertion that is not always satisfied (the code needs to 30256 be rewritten to take tiny arguments into account). 30257 30258 BUGS: update (mpfr_cot has just been fixed). 30259 30260 cot.c: implemented the case |x| = 2^emin. 30261 tests/tcot.c: added tests for this case, in 3 exponent ranges 30262 (as this is an overflow limit). 30263 30264 Fixed bug in div.c: rnd_mode could be modified (MPFR_INVERT_RND), but 30265 the original value was assumed in case of underflow or overflow. 30266 30267 tdiv.c: added a test showing another bug in mpfr_div. 30268 30269 cot.c: use MPFR_SAVE_EXPO_UPDATE_FLAGS, but the case +/- 2^emin could 30270 still be buggy with the current code; added a MPFR_ASSERTN (0) until 30271 it is implemented. 30272 BUGS: updated item on mpfr_cot. 30273 302742007-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30275 30276 fixed several problems with huge arguments in periodic functions 30277 mpfr_sin: complete rewrite, using mpfr_remainder for argument reduction 30278 mpfr_sin_cos: ditto 30279 302802007-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30281 30282 fixed stupid bug (subtraction of unsigned longs) 30283 30284 cos.c: implemented argument reduction by 2Pi 30285 tcos.c/tgeneric.c: reduce large exponent used when MPFR_CHECK_MAX is defined 30286 302872007-06-22 Vincent Lefèvre <vincent@vinc17.net> 30288 30289 BUGS: added bugs. 30290 30291 coth.c, sech.c: a rounding mode was incorrect. 30292 tests/tcoth.c: added underflowed_cothinf test. 30293 tests/tsech.c: added overflowed_sech0 test. 30294 30295 * gen_inverse.h: ACTION_TINY must be called after MPFR_SAVE_EXPO_MARK 30296 (this is necessary for some functions). Moved MPFR_SAVE_EXPO_FREE 30297 after the "end:" label. 30298 * coth.c, csc.c, csch.c: as a consequence, MPFR_SAVE_EXPO_UPDATE_FLAGS 30299 had to be added before "goto end;". 30300 * sec.c: a rounding mode was incorrect. 30301 * tests/tsec.c: added overflowed_sec0 test. 30302 303032007-06-21 Vincent Lefèvre <vincent@vinc17.net> 30304 30305 sin_cos.c: fixed a bug for x = 0 in reduced exponent range. 30306 tests/tsin_cos.c: added overflowed_sin_cos0 test. 30307 30308 BUGS: Some functions do not use MPFR_SAVE_EXPO_* macros, thus do not 30309 behave correctly in a reduced exponent range. 30310 30311 factorial.c: a rounding mode was incorrect. 30312 tests/tfactorial.c: added overflowed_fac0 test. 30313 30314 exp2.c: use MPFR_SMALL_INPUT_AFTER_SAVE_EXPO instead of 30315 MPFR_FAST_COMPUTE_IF_SMALL_INPUT since 1 (__gmpfr_one) isn't 30316 necessarily representable. 30317 tests/texp2.c: added overflowed_exp2_0 test. 30318 30319 exp.c: fixed problems in reduced exponent range. 30320 tests/texp.c: added overflowed_exp0 test. 30321 30322 exp.c bug fix: a rounding mode was incorrect. 30323 30324 tcos.c: fixed error message in overflowed_cos0 test. 30325 30326 tcos.c: removed an obsolete comment from the overflowed_cos0 test. 30327 30328 tcos.c: improved overflowed_cos0 test. 30329 30330 get_str.c: use MPFR_SAVE_EXPO. 30331 tests/tget_str.c: enabled the test with a reduced exponent range. 30332 30333 tget_str.c: added a test (disabled by default) with emax = 0. 30334 30335 Corrected mpfr_inits, mpfr_inits2 and mpfr_clears calls with NULL 30336 argument (-> (void *) 0). 30337 30338 tget_str.c: reformatted/corrected a function. 30339 30340 Tests: when restoring the exponent range, save emin/emax first instead 30341 of using MPFR_EMIN_MIN/MPFR_EMAX_MAX (which have no longer corresponded 30342 to the default exponent range since quite a long time). 30343 30344 BUGS: update. 30345 303462007-06-20 Vincent Lefèvre <vincent@vinc17.net> 30347 30348 Untabified and removed trailing spaces. 30349 30350 Bug fix: preprocessor # must be in the first column. 30351 30352 remquo.c bug fix: preprocessor # must be in the first column. 30353 30354 tcos.c: fixed and improved the overflowed_cos0 test. 30355 30356 cos.c bug fix: a rounding mode was incorrect. 30357 30358 cos.c: use MPFR_SMALL_INPUT_AFTER_SAVE_EXPO instead of 30359 MPFR_FAST_COMPUTE_IF_SMALL_INPUT. 30360 30361 cos.c: untabified. 30362 30363 tcos.c: added tests for x very small and emax = 0 (some of them 30364 currently fail). 30365 30366 Added a comment concerning the MPFR_SMALL_INPUT_AFTER_SAVE_EXPO macro. 30367 30368 Added MPFR_SMALL_INPUT_AFTER_SAVE_EXPO macro; updated expm1.c to use 30369 this variant (and moved MPFR_SAVE_EXPO_MARK after the test ex < 0). 30370 303712007-06-19 Vincent Lefèvre <vincent@vinc17.net> 30372 30373 Documented log(-0). 30374 30375 Added a few tests of log functions. 30376 303772007-06-18 Vincent Lefèvre <vincent@vinc17.net> 30378 30379 mpfr.texi: updated Section "Floating-Point Values on Special Numbers". 30380 303812007-06-12 Vincent Lefèvre <vincent@vinc17.net> 30382 30383 TODO: allow generic tests to run with a restricted exponent range. 30384 30385 expm1.c: fixed bug for x = -max_value due to an intermediate overflow 30386 (flags were incorrect); at the same time, potential problems due to a 30387 restricted exponent range are also fixed. 30388 30389 tgeneric.c: check the function on large arguments (±maximum_value) 30390 when the MPFR_CHECK_MAX environment variable is defined. 30391 303922007-06-11 Vincent Lefèvre <vincent@vinc17.net> 30393 30394 tests/tlgamma.c: re-enabled sign checking. 30395 303962007-06-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30397 30398 fixed problem with mpfr_lgamma for tiny negative input (and fixed use of 30399 generic test) 30400 304012007-06-05 Vincent Lefèvre <vincent@vinc17.net> 30402 30403 [mpfr.texi] Small change in new Section "Floating-Point Values on 30404 Special Numbers" (suggested by Paul). 30405 304062007-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30407 30408 fixed bug for tiny negative input (and added corresponding test) 30409 304102007-06-05 Vincent Lefèvre <vincent@vinc17.net> 30411 30412 algorithms.tex: Mulder -> Mulders. 30413 304142007-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30415 30416 added test for "Witty's bug" on 64-bit machines 30417 304182007-06-04 Vincent Lefèvre <vincent@vinc17.net> 30419 30420 div.c: GNU coding style. 30421 304222007-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30423 30424 tdiv.c: added missing mpfr_clear's, and spaces before function calls 30425 div.c: fixed bug found by Carl Witty, and added more comments 30426 304272007-06-04 Vincent Lefèvre <vincent@vinc17.net> 30428 30429 tdiv.c: oops... the result should be 1. 30430 30431 tdiv.c: added test from Carl Witty's bug report on 2007-06-03. 30432 304332007-06-01 Vincent Lefèvre <vincent@vinc17.net> 30434 30435 mpfr.texi: updated Section "Floating-Point Values on Special Numbers". 30436 30437 mpfr.texi: updated Section "Floating-Point Values on Special Numbers". 30438 30439 mpfr.texi: updated month. 30440 30441 mpfr.texi: added @: after "resp." (when it was missing). 30442 304432007-05-31 Vincent Lefèvre <vincent@vinc17.net> 30444 30445 Started a new section "Floating-Point Values on Special Numbers". 30446 30447 mpfr.texi: inf -> Inf for consistency. 30448 30449 mpfr.texi @deftypefun correction: void * -> {void *} (for the PDF). 30450 30451 mpfr.texi: consistency changes in section titles; made titles unique. 30452 30453 set_d64.c: replaced an "if" by a "#if" to avoid a gcc warning. 30454 30455 get_d64.c: use BITS_PER_MP_LIMB instead of GMP_BITS_PER_LIMB (which 30456 does not seem to exist). 30457 set_d64.c: use BITS_PER_MP_LIMB instead of mp_bits_per_limb. 30458 30459 get_d64.c, set_d64.c: improved code to avoid some warnings. 30460 30461 Untabified get_d64.c and set_d64.c. 30462 30463 get_d64.c: added missing #include. 30464 30465 BUGS: update. 30466 30467 mpfr-impl.h: improved error message when thread safe is not supported. 30468 304692007-05-30 Vincent Lefèvre <vincent@vinc17.net> 30470 30471 INSTALL: say that relative paths in configure options are not supported 30472 (autoconf doesn't seem to have support for them). 30473 30474 Documented the new behavior of mpfr_sgn (in fact, it was already partly 30475 required by the tsgn.c tests!) and added new mpfr_sgn tests. 30476 30477 TODO: added an item about the behavior of mpfr_sgn on NaN. 30478 30479 tgeneric.c: no longer check the MPFR_CHECK_TINY environment variable 30480 as all the bugs related to tiny arguments have been fixed. 30481 30482 mpfr.texi: corrections following the remarks by Nathalie Revol. 30483 304842007-05-29 Vincent Lefèvre <vincent@vinc17.net> 30485 30486 yn.c: untabify. 30487 304882007-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30489 30490 fix for small inputs in y1 30491 304922007-05-29 Vincent Lefèvre <vincent@vinc17.net> 30493 30494 Defined new macros SIGN and SAME_SIGN in mpfr-impl.h to canonicalize 30495 the ternary value and to compare such values. Use SAME_SIGN in erf.c 30496 and lngamma.c. 30497 304982007-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30499 30500 fixed problem of tiny arguments for y0 30501 30502 lngamma.c: fixed problem of tiny inputs in lngamma (still remains lgamma 30503 to deal with) 30504 erf.c: small correction (inexact flags might have been inexact :-) 30505 30506 fixed tiny input problem with csch, j0, j1 30507 30508 added special code for tiny inputs 30509 305102007-05-29 Vincent Lefèvre <vincent@vinc17.net> 30511 30512 tgeneric_ui.c: no longer check the MPFR_CHECK_TINY environment variable. 30513 30514 erf.c: removed workaround to mpfr_div_ui bug, as the bug is now fixed. 30515 30516 div_ui.c: 30517 * Cleaned up the use of the sh variable (there was a useless sh = 0, 30518 so I'm not sure that there isn't a bug...). 30519 * Added underflow check. 30520 30521 Added check of tiny arguments to tgeneric_ui.c (if MPFR_CHECK_TINY is 30522 defined, like in tgeneric.c); mpfr_div_ui currently fails due to the 30523 lack of underflow checking. 30524 305252007-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30526 30527 README.dev: fixed typo 30528 erf.c: implemented special case for tiny x, and partially get rid of double 30529 usage 30530 implemented 30531 305322007-05-28 Vincent Lefèvre <vincent@vinc17.net> 30533 30534 MPFR_RET (mpfr_check_range (...)) -> return mpfr_check_range (...) 30535 as mpfr_check_range already handles the inexact flag. 30536 Reformatting (removed trailing spaces, untabified). 30537 305382007-05-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30539 30540 fixed problem of tiny input 30541 30542 fixed problem of tiny input for coth (and new fix again for csc, which 30543 takes into account the sign of the input) 30544 30545 fixed problem of tiny inputs in mpfr_sec and mpfr_csc, 30546 by adding a SPECIAL_TINY macro in gen_inverse.h 30547 30548 the test for the tiny input case was too optimistic: fixed and added test. 30549 30550 fixed case of tiny input 30551 30552 fixed problem for tiny arguments 30553 30554 added MPFR_FAST_COMPUTE_IF_SMALL_INPUT call 30555 30556 changed 1st-order Taylor term from x to v to avoid confusion with the 30557 argument x of the function f(x), and fixed some typos 30558 30559 fixed direction of rounding for MPFR_FAST_COMPUTE_IF_SMALL_INPUT 30560 (was wrong for x < 0) 30561 30562 fixed typo 30563 30564 added call to MPFR_FAST_COMPUTE_IF_SMALL_INPUT in exp2 30565 30566 re-enabled MPFR_CHECK_TINY 30567 30568 improved documentation of mpfr_set/get_decimal64 functions 30569 fixed problem in configure.in (_Decimal64 was tested too early) 30570 305712007-05-28 Vincent Lefèvre <vincent@vinc17.net> 30572 30573 tests/tests.c: fixed two bugs concerning the timeout (including an 30574 old one: we need to call getrlimit to initialize rlim_max). 30575 305762007-05-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30577 30578 new syntax for timeouts 30579 30580 fixed typo 30581 305822007-05-28 Vincent Lefèvre <vincent@vinc17.net> 30583 30584 Added mkinstalldirs to svn:ignore property. 30585 30586 Changed --with-tests-timeout into --enable-tests-timeout as documented 30587 in the autoconf manual (--with-* are for external packages only). When 30588 this is enabled, environment variable MPFR_TESTS_TIMEOUT allows to 30589 override the default timeout (use the value 0 to disable timeouts). 30590 30591 Updated NEWS file. 30592 30593 mpfr.texi: small improvement. 30594 30595 Fixed a bug in the mpfr_cmp_ui macro occurring on NaN and the constant 0 30596 by specifying the behavior of mpfr_sgn on NaN. 30597 30598 mpfr.texi: typography corrections concerning "i.e.". 30599 30600 mpfr.texi: consistency changes. 30601 30602 mpfr.texi: more details in Section "Exceptions". 30603 30604 tgeneric.c: check the function on tiny arguments (±2^(emin-1)) when 30605 the MPFR_CHECK_TINY environment variable is defined. 30606 30607 Typo. 30608 30609 Avoid integer overflow in MPFR_FAST_COMPUTE_IF_SMALL_INPUT. 30610 306112007-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30612 30613 completed implementation of Vincent's algorithm for mpfr_remquo 30614 all tests now pass again 30615 306162007-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30617 30618 new version of mpfr_remainder, using Vincent's algorithm 30619 (still remains to deal with special arguments, and make mpfr_remquo call it) 30620 306212007-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30622 30623 added note about fms 30624 30625 fixed typo 30626 30627 fixed problem for x integer and rounding to nearest 30628 30629 workaround for bug when x is very small (check_tiny in tsin) 30630 306312007-05-22 Vincent Lefèvre <vincent@vinc17.net> 30632 30633 Updated BUGS (again). 30634 30635 Updated BUGS and TODO (mpfr_lgamma has been implemented, but see BUGS, 30636 and gamma(-integer) with integer >= 1 is defined as NaN). 30637 30638 tsin.c: check sin on +/- 2^(emin-1) (test by Christopher Creutzig). 30639 30640 tgamma.c: added test of gamma on some integral values (from Christopher 30641 Creutzig); this test is enabled only when an argument is provided. 30642 30643 fma.c: improved comments and simplified the code. 30644 30645 fma.c: implemented exponent range expansion and the main part when the 30646 multiplication overflows. The following remains to do: 30647 * when the multiplication overflows: some corner cases; 30648 * when the multiplication underflows: everything. 30649 306502007-05-21 Vincent Lefèvre <vincent@vinc17.net> 30651 30652 tlgamma.c: I re-enable the generic tests of mpfr_lgamma now, to make 30653 sure that it is fixed before the 2.3.0 release candidate. 30654 30655 tfma.c: added an overflow test (currently fails). 30656 30657 tfma.c: whitespace change. 30658 30659 tfma.c: added tests on special and exact values. 30660 306612007-05-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30662 30663 fixed error analysis in mpfr_lngamma 30664 added mpfr_inp_raw/mpfr_out_raw in TODO 30665 306662007-05-16 Vincent Lefèvre <vincent@vinc17.net> 30667 30668 TODO: fixed mpfr_fms formula to match the one on Itanium and PowerPC. 30669 306702007-05-07 Vincent Lefèvre <vincent@vinc17.net> 30671 30672 algorithms.tex: improved the description of mpfr_remquo. 30673 306742007-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30675 30676 improved description of remainder and remquo 30677 306782007-05-06 Vincent Lefèvre <vincent@vinc17.net> 30679 30680 My latest change was not completely correct... 30681 30682 Updated description of algorithm for mpfr_remainder. 30683 306842007-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30685 30686 added description of algorithm for mpfr_remainder 30687 306882007-05-04 Vincent Lefèvre <vincent@vinc17.net> 30689 30690 remquo.c: suggest to use mpz_powm. 30691 30692 remquo.c: added a comment (idea to compute the remainder much more 30693 efficiently in the case x much larger than y). 30694 306952007-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30696 30697 added assert and ideas for native implementation 30698 30699 put back test (disabled for test) 30700 30701 fixed problem when rem and x are the same variable 30702 307032007-05-04 Vincent Lefèvre <vincent@vinc17.net> 30704 30705 tremquo.c: added a test that leads to a segmentation fault. 30706 30707 tremquo.c: fixed tests (= -> ==). 30708 307092007-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30710 30711 fixed two issues found by Kaveh Ghazi: 30712 * remainder was wrong for |x/y| < 1 30713 * remainder had wrong sign when zero 30714 30715 more details of error analysis 30716 307172007-05-03 Vincent Lefèvre <vincent@vinc17.net> 30718 30719 Updated svn:ignore property. 30720 30721 Updated svn:ignore property. 30722 307232007-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30724 30725 fixed precision for command-line usage 30726 307272007-05-03 Vincent Lefèvre <vincent@vinc17.net> 30728 30729 mpfr.texi: added mpfr_lgamma. 30730 307312007-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30732 30733 added code to use tremquo with command-line arguments (tremquo x y) 30734 307352007-05-02 Vincent Lefèvre <vincent@vinc17.net> 30736 30737 configure.in: improved comment. 30738 30739 configure.in: added a comment on the AC_ARG_ENABLE(decimal-float...) 30740 part. The addition of this code was the cause of the test_CFLAGS problem 30741 (see r4425 log), but this code is still wrong. 30742 307432007-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30744 30745 modified test (2147483648 is not representable as 32-bit long in C90) 30746 307472007-05-02 Vincent Lefèvre <vincent@vinc17.net> 30748 30749 Removed unused variables. 30750 30751 get_str.c: 30752 * Removed useless prototype declaration (function no longer defined). 30753 * Fixed initializer. 30754 30755 configure.in: moved the definition of test_CFLAGS upward (it was 30756 always set to "set", either because of things added to configure.in 30757 or because of new autoconf). 30758 30759 mpfr.h: added mpfr_lgamma prototype. 30760 307612007-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30762 30763 argument quo of remquo is now a pointer to long instead of int 30764 added new functions in NEWS 30765 30766 changed order of arguments: now mpfr_remquo (r, q, x, y, rnd). 30767 307682007-05-02 Vincent Lefèvre <vincent@vinc17.net> 30769 30770 remquo.c: fixed variable name for MPFR_LOG_FUNC. 30771 307722007-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30773 30774 added mpfr_remquo and mpfr_remainder 30775 307762007-04-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30777 30778 fixed error analysis (error was over-estimated) 30779 307802007-04-26 Vincent Lefèvre <vincent@vinc17.net> 30781 30782 lngamma.c: a bit more details in the error analysis for z0 < 1. 30783 30784 lngamma.c: a bit more details in the error analysis for z0 < 1. 30785 307862007-04-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30787 30788 u was used for two different meanings in the error analysis for z0 < 1 30789 307902007-04-25 Vincent Lefèvre <vincent@vinc17.net> 30791 30792 Updated svn:ignore property. 30793 30794 Added preliminary support for mpfr_lngamma and tests. 30795 TODO: add support for negative numbers with small exponent. 30796 Re-enable the generic tests when this is done. 30797 30798 lngamma.c: There was an assertion failed, probably because the error 30799 was too large; fixed that by restarting with a larger precision. 30800 30801 lngamma.c: fixed -2k-1 <= x <= -2k test. 30802 30803 tests/tlngamma.c: added a test showing a bug in lngamma (due to the 30804 use of mpfr_get_si even when the number doesn't fit in a long). 30805 308062007-04-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30807 30808 fixed bug for negative even index in mpfr_jn (wrong sign) 30809 308102007-04-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30811 30812 added warning 30813 30814 added Bit Twiddling Hacks 30815 308162007-04-05 Vincent Lefèvre <vincent@vinc17.net> 30817 30818 MPFR manual: added a brief description of mpfr_t (this may be needed 30819 to write correct code) and mpfr_ptr (used by mpfr_sum). 30820 308212007-04-02 Vincent Lefèvre <vincent@vinc17.net> 30822 30823 Changed mpfr_{jn,yn}_si (mpfr_t res, mpfr_t x, long n, ...) into 30824 mpfr_{jn,yn} (mpfr_t res, long n, mpfr_t x, ...), as discussed by 30825 mail; fixed a typo in mpfr.texi in mpfr_{y0,y1,yn} description. 30826 308272007-03-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30828 30829 added url of GSL manual 30830 30831 fixed misunderstanding about definition of Bessel functions 30832 30833 removed Bessel functions J_n and Y_n 30834 30835 added Bessel functions of second kind (y0, y1, yn_si) 30836 30837 now test_generic calls respectively j0 and j1, not zeta! 30838 308392007-03-30 Vincent Lefèvre <vincent@vinc17.net> 30840 30841 mpfr.texi: INF -> Inf for consistency. 30842 30843 mpfr.texi: PI -> Pi for consistency. 30844 308452007-03-29 Vincent Lefèvre <vincent@vinc17.net> 30846 30847 mpfr.texi: -0 -> @minus{}0. 30848 30849 mpfr.texi: fixed bug introduced in rev 4377, which made TeX fail. 30850 30851 Added tj0, tj1 and tjn to svn:ignore property of "tests" directory. 30852 308532007-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30854 30855 mpfr_jn -> mpfr_jn_si 30856 308572007-03-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30858 30859 now check underflow for large n in mpfr_jn_si 30860 added more tests 30861 30862 added more tests (large values of n) 30863 30864 fixed another stupid bug 30865 30866 mpfr_jn -> mpfr_jn_si, with 'int' argument changed to 'long' 30867 fixed bug in mpfr_jn_si (forgot to increase working precision) 30868 308692007-03-23 Vincent Lefèvre <vincent@vinc17.net> 30870 30871 README.dev: added a warning about the meaning of the output "inexact" 30872 value in the function logging code. 30873 30874 Added log support for mpfr_add and mpfr_sub. 30875 308762007-03-23 Laurent Fousse <laurent@komite.net> 30877 30878 Correction: added missing $b_n$. 30879 308802007-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30881 30882 added Bessel functions of first kind: j0, j1, jn 30883 308842007-03-19 Vincent Lefèvre <vincent@vinc17.net> 30885 30886 MPFR manual: improved description of mpfr_get_str. 30887 308882007-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30889 30890 fixed typos in comments 30891 308922007-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30893 30894 documented restriction to n in mpfr_get_str 30895 308962007-03-13 Vincent Lefèvre <vincent@vinc17.net> 30897 30898 Updated INSTALL based on AIX/PowerPC tests and results from Julie Kurpa 30899 and information on <http://www.ess.uci.edu/esmf/FAQ.html#gcc-errors>. 30900 309012007-03-03 Vincent Lefèvre <vincent@vinc17.net> 30902 30903 README.dev: updated "To make a release" section. 30904 309052007-03-02 Vincent Lefèvre <vincent@vinc17.net> 30906 30907 Made modified paragraph on mpfr_get_str more correct from a logical 30908 point of view. 30909 309102007-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30911 30912 modified paragraph on mpfr_get_str (size of allocated string) 30913 309142007-02-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30915 30916 added tentative implementation of fmod 30917 309182007-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30919 30920 added suggestion about remquo 30921 309222007-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30923 30924 added comment 30925 30926 added C99 rationale for remquo 30927 30928 fixed error in generic error for the logarithm, and propagated new bound 30929 in algorithms.tex and source files 30930 309312007-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30932 30933 added new item 30934 309352007-02-15 Vincent Lefèvre <vincent@vinc17.net> 30936 30937 Added update-patchv script to update some files before a patch is built 30938 (script from 2.2 branch). 30939 309402007-02-14 Vincent Lefèvre <vincent@vinc17.net> 30941 30942 mpfr.texi: updated paragraph on the underflow before/after rounding. 30943 309442007-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30945 30946 added reference 30947 309482007-02-12 Vincent Lefèvre <vincent@vinc17.net> 30949 30950 mpfr.texi: added Exceptions section. 30951 30952 mpfr.texi: updated month. 30953 30954 Note that the mpfr.info file is now installed in the share subdirectory. 30955 309562007-02-10 Vincent Lefèvre <vincent@vinc17.net> 30957 30958 tests/tpow.c: removed comment since there are other <limits.h> macros 30959 in the file (and this is an old bug: the first one was introduced in 30960 rev 2783). 30961 309622007-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30963 30964 added missing include 30965 309662007-02-09 Vincent Lefèvre <vincent@vinc17.net> 30967 30968 Fixed an integer overflow in pow_si.c (detected with -ftrapv) and 30969 added a corresponding testcase in tests/tpow.c. 30970 30971 pow_si.c: another comment about the overflow detection. 30972 30973 pow_si.c: added the proof of overflow checking. 30974 30975 mpfr-impl.h: added a comment about the exponent limits for MPFR numbers. 30976 309772007-02-08 Vincent Lefèvre <vincent@vinc17.net> 30978 30979 Reimplemented mpfr_set_si_2exp and mpfr_set_ui_2exp, and mpfr_set_si 30980 and mpfr_set_ui using the 2exp versions with e = 0. This fixes a bug 30981 in corner cases (emin >= 4 and some other constraints) in mpfr_set_si 30982 and mpfr_set_ui that incorrectly lead to an underflow flag set, and 30983 fixes mpfr_set_si_2exp and mpfr_set_ui_2exp in case of overflow or 30984 underflow (replacing the r4346 fix). Added corresponding testcases. 30985 309862007-02-07 Vincent Lefèvre <vincent@vinc17.net> 30987 30988 Added "Contributed by the Arenaire and Cacao projects, INRIA." to the 30989 copyright notices and removed a few old things. 30990 309912007-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 30992 30993 added missing macro (thanks to Izhar Wallach <izharw@keddem.com>) 30994 309952007-01-20 Vincent Lefèvre <vincent@vinc17.net> 30996 30997 Fixed mpfr_set_si_2exp in case of overflow or underflow. 30998 309992007-01-19 Vincent Lefèvre <vincent@vinc17.net> 31000 31001 pow_si.c: fixed the overflow detection for x power of 2 and n negative. 31002 31003 tests/tget_f.c: fixed a test that had an integer overflow (detected 31004 with -ftrapv). 31005 31006 pow_si.c: Before fixing the bug corresponding to the testcase added in 31007 rev 4342, let's fix another one that can be detected with -ftrapv when 31008 n = LONG_MIN (since -n is not representable in this case). 31009 With wrapping, we always got the correct result because mp_exp_t is 31010 currently at most a long *and* because of side effects! 31011 31012 tests/tpow.c: added a test which fails (undetected integer overflow). 31013 31014 tests/tpow.c: new test was wrong; fixed. 31015 31016 tests/tpow.c: corrected tests and added another test. 31017 31018 tests/tpow.c: added tests. 31019 31020 pow_si.c: added an assertion. 31021 310222007-01-18 Vincent Lefèvre <vincent@vinc17.net> 31023 31024 TODO: merged both requests for mpfr_sinh_cosh. 31025 310262007-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31027 31028 added documentation for mpfr_dim (was missing) 31029 31030 added item 31031 310322007-01-17 Vincent Lefèvre <vincent@vinc17.net> 31033 31034 Replaced some computations using the type double by computations using 31035 MPFR, for mpfr_get_str, allowing it to work with an x86 processor set 31036 up in single-precision mode. 31037 310382007-01-16 Vincent Lefèvre <vincent@vinc17.net> 31039 31040 Updated comment concerning LONG_MIN / 1. 31041 310422007-01-15 Vincent Lefèvre <vincent@vinc17.net> 31043 31044 README.dev: updated "To make a release" section. 31045 310462007-01-10 Vincent Lefèvre <vincent@vinc17.net> 31047 31048 Removed mpzroot.c and rootrem.c from the repository. 31049 31050 Removed log_b2.h (has never been used) from the repository and from 31051 libmpfr_la_SOURCES in Makefile.am. 31052 31053 FAQ.html: Added details to MPF-related Q&A's. 31054 31055 Copyright notice update: added 2007. 31056 31057 * tests/tests.c: under Linux/x86, the FPU precision can be set before 31058 doing the tests (see MPFR_FPU_PREC), so that MPFR can be tested under 31059 various FP environments (2 tests currently fail with _FPU_SINGLE). 31060 * README.dev: updated "To make a release" section. 31061 * BUGS: mentioned the above bug. 31062 310632007-01-08 Vincent Lefèvre <vincent@vinc17.net> 31064 31065 mpfr.texi -> January 2007. 31066 310672007-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31068 31069 added support from LIP, and different INRIA project-teams 31070 310712007-01-03 Vincent Lefèvre <vincent@vinc17.net> 31072 31073 Minor change. 31074 310752006-12-29 Vincent Lefèvre <vincent@vinc17.net> 31076 31077 TODO: macros/functions to get/set the sign of a MPFR number. 31078 310792006-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31080 31081 remove new rootrem implementation (unclear copyright status) 31082 310832006-12-19 Vincent Lefèvre <vincent@vinc17.net> 31084 31085 Replaced mpfr_mul_2exp and mpfr_div_2exp by mpfr_mul_2ui and 31086 mpfr_div_2ui respectively (when this makes sense, of course). 31087 310882006-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31089 31090 mpfr_div_2exp -> mpfr_div_2ui 31091 31092 improved efficiency of zeta_ui(s) for 3^(-s) < 1/2*ulp(1) 31093 310942006-12-18 Vincent Lefèvre <vincent@vinc17.net> 31095 31096 mpfr.texi: update concerning MPFR_USE_EXTENSION. 31097 310982006-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31099 31100 added copyright header 31101 31102 added item 31103 311042006-12-15 Vincent Lefèvre <vincent@vinc17.net> 31105 31106 Implemented MPFR_USE_EXTENSION support. 31107 311082006-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31109 31110 improved efficiency for zeta(m) in precision p when m is large 31111 but still smaller than p, for example m=1024 and p=2048 gives a 31112 speedup of about 23 (thanks to Jim White for reporting the problem) 31113 311142006-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31115 31116 added MPFR_ZIV_INIT stuff 31117 311182006-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31119 31120 fixed typo 31121 311222006-12-05 Vincent Lefèvre <vincent@vinc17.net> 31123 31124 TODO: to be added: MPFR_USE_EXTENSION macro. 31125 311262006-11-29 Vincent Lefèvre <vincent@vinc17.net> 31127 31128 README.dev: update. 31129 31130 INSTALL: update of the "Notes on Windows 32" section. 31131 311322006-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31133 31134 added comment about last change 31135 31136 fixed warning on 64-bit machines 31137 311382006-11-26 Vincent Lefèvre <vincent@vinc17.net> 31139 31140 tests/tpow.c: added worst cases. 31141 31142 tests/troot.c: two more worst cases. 31143 311442006-11-25 Vincent Lefèvre <vincent@vinc17.net> 31145 31146 tests/troot.c: added a worst case. 31147 31148 BUGS: removed obsolete "compiler bugs" section. 31149 311502006-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31151 31152 added worst case 31153 311542006-11-25 Vincent Lefèvre <vincent@vinc17.net> 31155 31156 Partially rewrote the INSTALL file. 31157 311582006-11-24 Vincent Lefèvre <vincent@vinc17.net> 31159 31160 Makefile.am: fixed libtool's -version-info flag (and comment). 31161 31162 configure.in: check for gmp.h a bit earlier. 31163 311642006-11-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31165 31166 added --with-tests-timeout=60 for nightly tests 31167 31168 test timeout is now a configure option (e.g. --with-tests-timeout=60) 31169 31170 replaced set_d by set_str_binary (more portable) 31171 311722006-11-23 Vincent Lefèvre <vincent@vinc17.net> 31173 31174 INSTALL: several additions. 31175 311762006-11-22 Vincent Lefèvre <vincent@vinc17.net> 31177 31178 INSTALL: small update. 31179 31180 FAQ update (added a CSS counter). 31181 31182 update-faq: added a workaround for the libxslt bug 377440. 31183 31184 TODO: update concerning the patches information. 31185 311862006-11-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31187 31188 set GMP_CHECK_RANDOMIZE to get random tests 31189 311902006-11-21 Vincent Lefèvre <vincent@vinc17.net> 31191 31192 Updated README file. 31193 311942006-11-20 Vincent Lefèvre <vincent@vinc17.net> 31195 31196 README.dev: mention the version suffix. 31197 31198 Updated version to 2.3.0-dev. 31199 31200 Added version suffix support (useful for dev and rc versions). 31201 31202 Rewrote nightly-test in sh and fixed a security hole. 31203 312042006-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31205 31206 added cpu time limit of 60 seconds in tests 31207 312082006-11-20 Vincent Lefèvre <vincent@vinc17.net> 31209 31210 TODO: update. 31211 312122006-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31213 31214 added an argument to give the branch (use trunk or branches/2.2 for example) 31215 312162006-11-20 Vincent Lefèvre <vincent@vinc17.net> 31217 31218 tests/tgamma.c: restore emin and emax to their default values. 31219 312202006-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31221 31222 fixed bug in overflow test 31223 31224 fixed bug in mpfr_gamma for exact result 31225 31226 added two configure options 31227 31228 simplified test :-) 31229 312302006-11-20 Vincent Lefèvre <vincent@vinc17.net> 31231 31232 configure.in: unset GMP_CFLAGS and GMP_CC in case the user has set such 31233 environment variables for another use. 31234 31235 tests/texp2.c: fixed a problem with a value that is not necessarily 31236 representable (on platforms without long long). 31237 31238 BUGS: removed item on mpfr_eint (now fixed). 31239 31240 Untabify. 31241 312422006-11-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31243 31244 replaced double by mpfr_t (problem on 64-bit machines) 31245 31246 added more tests 31247 31248 script for nightly tests 31249 31250 fixed bug in pow (isodd -> assertion failed) 31251 fixed problem in erfc for large input 31252 reduced tests that took too much time 31253 312542006-11-19 Vincent Lefèvre <vincent@vinc17.net> 31255 31256 mpfr.texi: updated description of mpfr_eint, as the whole input domain 31257 is now supported. 31258 31259 Untabify. 31260 31261 mpfr-impl.h: added a comment about MPFR_WARNING. 31262 312632006-11-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31264 31265 fixed bug in erfc (forgot to compare result of cmp_si) 31266 fixed infinite loop in eint (test for use of asympt was not tight enough) 31267 31268 added asymptotic expansion for mpfr_eint (don't need MPFR_WARNING any more) 31269 312702006-11-18 Vincent Lefèvre <vincent@vinc17.net> 31271 31272 Added a mpfr_erfc test that shows a bug and updated BUGS file. 31273 312742006-11-17 Vincent Lefèvre <vincent@vinc17.net> 31275 31276 configure.in: Added a comment concerning GMP version checking. 31277 31278 configure.in: Before testing GMP header and library versions, set 31279 LD_RUN_PATH locally if a --with-gmp* option is used, so that the 31280 right version of the GMP library is used. There is no need to do 31281 something similar for "make check" as libtool does the job. 31282 31283 Updated mpfr_erfc documentation (now supported in whole domain). 31284 31285 BUGS: removed mpfr_pow_z bug. 31286 312872006-11-17 Vincent Lefèvre <vincent@vinc17.net> 31288 31289 Merged the new generic tests. 31290 31291 [Added during the Subversion to Git conversion] 31292 A merge commit could not be generated for Git. 31293 Branch in Git: refs/deleted/r4290/heads/new-generic-tests 31294 312952006-11-17 Vincent Lefèvre <vincent@vinc17.net> 31296 31297 Partially fixed a bug in mpfr_pow_si (overflow/underflow detection for 31298 n < 0). 31299 31300 tests/tpow_z.c: various corrections. 31301 31302 Partially fixed another bug in mpfr_pow_z (overflow/underflow detection 31303 for z < 0) and added corresponding testcases. 31304 31305 Fixed a bug in mpfr_pow_z concerning the underflow flag and added the 31306 corresponding testcase (but the case z < 0 is still buggy concerning 31307 the flags). 31308 313092006-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31310 31311 implemented asymptotic formula for erfc (fixed both slowness for large 31312 arguments, and call to MPFR_WARNING with return value NaN for huge arguments) 31313 31314 added new test 31315 313162006-11-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31317 31318 fixed problem for large negative input 31319 313202006-11-14 Vincent Lefèvre <vincent@vinc17.net> 31321 31322 TODO: slight change in the proposed mpfr_lgamma prototype (arg order). 31323 313242006-11-13 Vincent Lefèvre <vincent@vinc17.net> 31325 31326 About mpfr_lngamma/mpfr_lgamma: added mpfr_lgamma to TODO and updated 31327 mpfr_lngamma description in mpfr.texi. 31328 31329 BUGS: update. 31330 31331 tests/terf.c: added a test that yields a segfault (execute "terf 1"). 31332 313332006-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31334 31335 moved the [gs]et_decimal64 functions after the [gs]et_ld functions 31336 313372006-11-10 Vincent Lefèvre <vincent@vinc17.net> 31338 31339 mpfr.texi: changed @code{--enable-decimal-float} into @samp{...} 31340 for consistency with the other configure options. 31341 31342 mpfr.texi: updated the note concerning mpfr_eint and mpfr_erfc. 31343 313442006-11-10 Vincent Lefèvre <vincent@vinc17.net> 31345 31346 Added warnings support. 31347 * configure.in: added --enable-warnings configure option. 31348 * mpfr-impl.h: defined MPFR_WARNING(W) macro. 31349 * eint.c, erfc.c: use MPFR_WARNING instead of fprintf. 31350 * tests/Makefile.am (new-generic-tests branch): run the tests with 31351 MPFR_QUIET=1 to avoid output of useless warnings, as some tests 31352 (with large arguments) can generate such warnings, which are all 31353 expected. 31354 31355 [[Split portion of a mixed commit.]] 31356 313572006-11-10 Vincent Lefèvre <vincent@vinc17.net> 31358 31359 Added tget_set_d64 to svn:ignore property of "tests" directory. 31360 31361 TODO: "add a configure test for --enable-logging..." 31362 31363 More information for --enable-logging configure option. 31364 31365 Fixed test of logging support. 31366 31367 Removed --with-irix64 configure option and "case $OS_TYPE" code from 31368 configure.in; see 31369 https://sympa.inria.fr/sympa/arc/mpfr/2006-11/msg00009.html 31370 for the reasons. 31371 313722006-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31373 31374 added more checks with native format 31375 31376 added detection of decimal format in configure (DPD or BID) 31377 313782006-11-09 Vincent Lefèvre <vincent@vinc17.net> 31379 31380 strtofr.c: removed a useless cast (ISO C99 standard 6.2.5#3) and updated 31381 a comment as isdigit is no longer used. 31382 31383 strtofr.c fix: no longer use isdigit, as MPFR requires non-localized 31384 digits. 31385 313862006-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31387 31388 modified to work on 64-bit machines too 31389 313902006-11-09 Vincent Lefèvre <vincent@vinc17.net> 31391 31392 get_d64.c: fixed problems related to signed/unsigned values. 31393 31394 strtofr.c: fixed a bug that could occur on platforms with signed chars, 31395 when the user provides a string with negative characters (e.g. accented 31396 characters, in practice). 31397 313982006-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31399 31400 complete rewrite of mpfr_set_decimal64 and mpfr_get_decimal64: now use 31401 internal string <-> _Decimal64 conversion functions, which perform native 31402 conversion from/to BID or DPD 31403 314042006-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31405 31406 added mpfr_set_decimal64 and mpfr_get_decimal64 31407 314082006-11-08 Vincent Lefèvre <vincent@vinc17.net> 31409 31410 mpfr-impl.h: fixed a compile error if _Decimal64 is unknown. 31411 314122006-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31413 31414 added new configure option --enable-decimal-float to build mpfr_set_decimal64 31415 and mpfr_get_decimal64 (checks _Decimal64, and _GMP_IEEE_FLOATS is defined) 31416 314172006-11-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31418 31419 added --enable-decimal-float in configure, and corresponding macro 31420 WANT_DECIMAL_FLOATS 31421 314222006-11-07 Vincent Lefèvre <vincent@vinc17.net> 31423 31424 tests/tversion.c: improved error message and added gmp.h/libgmp test. 31425 31426 Fixed a small bug in tests/tversion.c (should never occur anyway). 31427 314282006-11-06 Vincent Lefèvre <vincent@vinc17.net> 31429 31430 logging.c: clean-up. 31431 314322006-11-05 Vincent Lefèvre <vincent@vinc17.net> 31433 31434 README.dev: updated things to do before a release. 31435 314362006-11-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31437 31438 added new (preliminary) conversions functions to/from decimal64 31439 31440 changed header file: stdlib.h -> stdio.h 31441 314422006-11-03 Vincent Lefèvre <vincent@vinc17.net> 31443 31444 Fixed a bug related to signed/unsigned types. 31445 31446 tgamma.c: avoid useless mpfr_get_d. 31447 31448 tpow.c: replaced a mpfr_cmp_d by a mpfr_cmp_str1. 31449 31450 lngamma.c: added a comment. 31451 31452 tlngamma.c: avoid useless mpfr_get_d. 31453 314542006-10-27 Vincent Lefèvre <vincent@vinc17.net> 31455 31456 eint.c: better overflow checking; fix: all allocated memory now freed. 31457 31458 eint.c: forgot 2 mpfr_clear's. 31459 31460 eint.c fix: and changed the #if into if. 31461 31462 eint.c fix: replaced BITS_PER_MP_LIMB by sizeof(mp_exp_t) * CHAR_BIT. 31463 31464 The current implementation of mpfr_erfc cannot compute the result for 31465 large inputs. Return NaN with the erange flag set instead of aborting. 31466 Documented this behavior in mpfr.texi. 31467 314682006-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31469 31470 improved bound for x with BITS_PER_MP_LIMB=32 31471 added bound for BITS_PER_MP_LIMB=64 31472 314732006-10-27 Vincent Lefèvre <vincent@vinc17.net> 31474 31475 The current implementation of mpfr_eint cannot compute the result for 31476 large inputs. Return NaN with the erange flag set instead of aborting. 31477 Documented this behavior in mpfr.texi. 31478 31479 tzeta.c patch 4166 should have been committed to the trunk. Fixing... 31480 314812006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31482 31483 added tests for overflows or underflows 31484 314852006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31486 31487 fixed problem for large negative s (return +Inf or -Inf) 31488 31489 [[Split portion of a mixed commit.]] 31490 314912006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31492 31493 fixed dummy error in last commit 31494 314952006-10-26 Vincent Lefèvre <vincent@vinc17.net> 31496 31497 In latest change, replaced exit(1) by abort(). 31498 314992006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31500 31501 added test for eint() 31502 added error message when input is too large in eint(), waiting for asymptotic 31503 expansion 31504 315052006-10-26 Vincent Lefèvre <vincent@vinc17.net> 31506 31507 Untabified and added a FIXME. 31508 315092006-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31510 31511 fixed overflow/underflow problems in csch and sech 31512 fixed problem for huge argument in coth 31513 315142006-10-25 Vincent Lefèvre <vincent@vinc17.net> 31515 31516 FAQ-related updates: 31517 * faq.xsl: Include styles from http://www.mpfr.org/styles/visual.css 31518 by using a system entity (but GNOME libxslt bug 345147 is still 31519 present in Debian, so don't use /*<![CDATA[*/ and /*]]>*/ yet). 31520 * update-faq: add /*<![CDATA[*/ and /*]]>*/ after calling xsltproc. 31521 * FAQ.html: update from the MPFR web site: various changes, including: 31522 + added id attributes on dt elements (FAQ items) to allow anchors; 31523 + updated FAQ for undefined references. 31524 31525 INSTALL: mention the MPFR FAQ. 31526 315272006-10-23 Vincent Lefèvre <vincent@vinc17.net> 31528 31529 Added a comment about a warning (this confused a user). 31530 315312006-10-11 Vincent Lefèvre <vincent@vinc17.net> 31532 31533 TODO: added an item about version information. 31534 315352006-10-05 Vincent Lefèvre <vincent@vinc17.net> 31536 31537 TODO: updated item. 31538 315392006-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31540 31541 added item 31542 315432006-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31544 31545 fixed wrong emax in example for mpfr_subnormalize 31546 315472006-09-07 Vincent Lefèvre <vincent@vinc17.net> 31548 31549 MPFR manual: say that errno may be set to non-zero. 31550 315512006-08-31 Vincent Lefèvre <vincent@vinc17.net> 31552 31553 tests/tests.c: typo. 31554 315552006-08-28 Vincent Lefèvre <vincent@vinc17.net> 31556 31557 Fixed texp2 overflow tests on 64-bit machines. 31558 31559 tests/reuse.c: avoid a warning; code reformatted (GNU style). 31560 315612006-08-23 Vincent Lefèvre <vincent@vinc17.net> 31562 31563 BUGS: minor update. 31564 315652006-08-21 Vincent Lefèvre <vincent@vinc17.net> 31566 31567 BUGS: updated "known bugs" section. 31568 31569 Fixed an exponent/flags-related bug in lngamma.c. 31570 31571 Updated svn:ignore property. 31572 315732006-08-20 Vincent Lefèvre <vincent@vinc17.net> 31574 31575 Fixed several problems in pow.c concerning underflows, overflows and 31576 flags (including the inexact flag, which could be incorrectly set in 31577 case of NaN), and added some testcases. Problems in pow_z.c have not 31578 been fixed yet. 31579 31580 Partial fix: The inexact flag was not always set in some functions. 31581 In particular, it is now set by mpfr_check_range (if t is not zero) 31582 since mpfr_check_range usually comes just after MPFR_SAVE_EXPO_FREE 31583 (which restores the previous flags). 31584 315852006-08-19 Vincent Lefèvre <vincent@vinc17.net> 31586 31587 Added an assertion for mpfr_exp2 and a test. 31588 315892006-08-16 Vincent Lefèvre <vincent@vinc17.net> 31590 31591 Optimized mpfr_expm1 for large (in absolute value) negative values in 31592 order to avoid the TMD (the result is very close to -1). Without this 31593 patch, mpfr_expm1 could take dozens of MBs and the new generic tests 31594 for texpm1 could take several hours instead of less than 1 second. 31595 31596 Fixed a bug in expm1 for very small negative arguments (and perhaps 31597 some very small positive arguments too); this bug is similar to the 31598 one in log1p that was recently found and fixed. It was detected by 31599 the new generic tests (not committed yet), therefore no testcases 31600 are provided. Note: the mpfr_expm1 function is still buggy (freezes 31601 on -0.10E18, prec 2 -> prec 13); this is a different bug. 31602 31603 In mpfr_exp2, the overflow flag was not set if mpfr_exp2 overflowed 31604 with x < emax. Added testcase. 31605 316062006-08-15 Vincent Lefèvre <vincent@vinc17.net> 31607 31608 The latest mpfr_exp2 fix contained a bug. Partially rewrote mpfr_exp2 31609 to fix this bug and another one (and added a corresponding testcase: 31610 exp2(10000000000.5), which was freezing). 31611 31612 Better fix for exp2 exponent range bug. 31613 31614 Fixed bug in mpfr_exp2 when the argument is an integer and emin > 1. 31615 Added a testcase to texp2. 31616 316172006-08-14 Vincent Lefèvre <vincent@vinc17.net> 31618 31619 Added tget_ld_2exp to svn:ignore property of "tests" directory 31620 (should have been done in rev 4028). 31621 31622 Fixed bug in log1p for small negative values of x and added testcase. 31623 31624 Code style correction for ansi2knr. 31625 316262006-07-25 Vincent Lefèvre <vincent@vinc17.net> 31627 31628 INSTALL: more information. 31629 31630 INSTALL: added a note about include/library paths. 31631 316322006-07-21 Vincent Lefèvre <vincent@vinc17.net> 31633 31634 INSTALL: added information about setup after the library installation. 31635 316362006-07-20 Vincent Lefèvre <vincent@vinc17.net> 31637 31638 Improved linker flag settings on darwin. 31639 316402006-07-18 Vincent Lefèvre <vincent@vinc17.net> 31641 31642 configure.in: fixed a linking problem on darwin. 31643 316442006-07-16 Vincent Lefèvre <vincent@vinc17.net> 31645 31646 One needs automake 1.6; autoreconf fails with automake 1.4. Adding 31647 the 1.6 automake option will make the error message less obfuscated, 31648 but unfortunately, one won't have the necessary automake version 31649 automatically called, even if it is installed. 31650 316512006-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31652 31653 added item 31654 31655 fixed wrong comment (thanks Keith Briggs) 31656 31657 new mpn_rootrem is still not in gmp-4.2 31658 316592006-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31660 31661 replaced <= by = 31662 316632006-06-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31664 31665 changed <= into = 31666 31667 comments from Keith Briggs 31668 316692006-06-09 Vincent Lefèvre <vincent@vinc17.net> 31670 31671 algorithms.tex: corrected several English mistakes and typography. 31672 316732006-06-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31674 31675 fixed typo 31676 31677 replaced error() by \error() 31678 316792006-06-09 Vincent Lefèvre <vincent@vinc17.net> 31680 31681 algorithms.tex: another fixed notation for roundings. 31682 316832006-06-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31684 31685 added section on Notations 31686 fixed notations for roundings 31687 316882006-06-09 Vincent Lefèvre <vincent@vinc17.net> 31689 31690 algorithms.tex: changed the page style to plain (for page numbers). 31691 316922006-06-07 Vincent Lefèvre <vincent@vinc17.net> 31693 31694 FAQ update. 31695 316962006-05-29 Vincent Lefèvre <vincent@vinc17.net> 31697 31698 Define HAVE_ATTRIBUTE_MODE if supported; useful for s390, but incomplete 31699 and will fail on platforms with gcc and CHAR_BIT != 8. 31700 317012006-05-19 Vincent Lefèvre <vincent@vinc17.net> 31702 31703 Add compiler flags (CPPFLAGS, LDFLAGS) in a consistent order. 31704 317052006-05-18 Vincent Lefèvre <vincent@vinc17.net> 31706 31707 MPFR manual consistency: Custom interface -> Custom Interface. 31708 317092006-05-17 Vincent Lefèvre <vincent@vinc17.net> 31710 31711 TODO: added a note about the change 4049 in div.c. 31712 317132006-04-18 Vincent Lefèvre <vincent@vinc17.net> 31714 31715 Removed the #ifndef __hpux from mul.c (after a test on a HP-UX machine, 31716 I got no failures, even with the old mpfr-longlong.h). 31717 31718 README.dev: added a point on mpfr-longlong.h in "To make a release". 31719 31720 Updated mpfr-longlong.h from the GMP 4.2 longlong.h file. 31721 31722 mpfr.texi: removed dot from a section title. 31723 317242006-04-11 Vincent Lefèvre <vincent@vinc17.net> 31725 31726 FAQ update. 31727 317282006-04-06 Vincent Lefèvre <vincent@vinc17.net> 31729 31730 div.c: removed the bad use of MPFR_LIMB_ZERO. 31731 31732 In get_f.c, updated the case precy + sh > precx: this one was correct, 31733 but added a comment, assertions and simplified a MPN_ZERO. 31734 317352006-04-05 Vincent Lefèvre <vincent@vinc17.net> 31736 31737 tget_f.c: test that there is no lost of accuracy when converting 31738 a mpfr_t number into a mpf_t number (test with various precisions 31739 and exponents). 31740 31741 The fix of get_f.c was wrong. This should be now OK for the case 31742 precy + sh <= precx. 31743 31744 Fixed bug in mpfr_get_f (reported by Yury Lukach) and added test. 31745 317462006-03-31 Vincent Lefèvre <vincent@vinc17.net> 31747 31748 Updated FDL to version 1.2. 31749 31750 Updated FSF address. 31751 31752 Fixed FSF address. 31753 317542006-03-30 Vincent Lefèvre <vincent@vinc17.net> 31755 31756 Another FAQ update (taking GMP 4.2 into account). 31757 31758 FAQ update. 31759 317602006-03-24 Vincent Lefèvre <vincent@vinc17.net> 31761 31762 Removed all code related to mpn_sub_nc (no longer used). 31763 31764 div.c: fixed a bug and no longer use mpn_sub_nc. 31765 31766 Some clean-up in div.c; do not steal GMP's namespace (could lead to 31767 clashes if future GMP versions define the corresponding macros). 31768 31769 Build shared libraries by default. 31770 317712006-03-23 Vincent Lefèvre <vincent@vinc17.net> 31772 31773 random2.c: minor change suggested by Patrick. 31774 31775 configure.in: typography consistency. 31776 31777 Mention --enable-thread-safe and --enable-shared in the INSTALL file 31778 since users may need them and could be confused otherwise (just seen 31779 that). Untabified the file. 31780 317812006-03-16 Vincent Lefèvre <vincent@vinc17.net> 31782 31783 TODO: new exception "division by zero" / "pole". 31784 31785 README.dev: added "Do not use C99-only features, such as...". 31786 317872006-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31788 31789 replaced 6th empty argument of MPFR_FAST_COMPUTE_IF_SMALL_INPUT by {} 31790 317912006-03-14 Vincent Lefèvre <vincent@vinc17.net> 31792 31793 In random2.c, replaced NULL by 0 (more general) and removed the 31794 now unnecessary #include <stdio.h>. 31795 317962006-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31797 31798 added missing include file 31799 318002006-03-14 Vincent Lefèvre <vincent@vinc17.net> 31801 31802 Tests: added new worst case for x^(3/2). 31803 318042006-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31805 31806 added reference to INRIA report for Zeta 31807 31808 added another reference 31809 31810 added reference 31811 318122006-02-28 Vincent Lefèvre <vincent@vinc17.net> 31813 31814 More details concerning mpfr_eq. 31815 318162006-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31817 31818 removed "but does not make much sense" 31819 31820 added contribution from Damien 31821 31822 new test file for mpfr_get_ld_2exp 31823 318242006-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31825 31826 added mpfr_get_ld_2exp (contributed by Damien Stehle) 31827 318282006-02-20 Vincent Lefèvre <vincent@vinc17.net> 31829 31830 Updated mpfr_random2 user documentation. 31831 31832 Fixed bug in mpfr_random2 when size == 0 and added testcase. 31833 31834 trandom.c: reformat. 31835 31836 trandom.c: use calloc instead of malloc and check return value. 31837 31838 mpfr_random2_raw -> static. 31839 318402006-02-17 Vincent Lefèvre <vincent@vinc17.net> 31841 31842 Added mpfr_remainder to TODO. 31843 318442006-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31845 31846 fixed wrong url 31847 318482006-02-15 Vincent Lefèvre <vincent@vinc17.net> 31849 31850 Fixed various spelling mistakes, typos... in algorithms.tex. 31851 31852 In algorithms.tex, \em -> \emph. 31853 31854 Typography corrections in algorithms.tex. 31855 31856 In algorithms.tex, added a missing blackslash. 31857 31858 In algorithms.tex, removed \date (was incorrectly used) and added the 31859 web site as a footnote. 31860 318612006-02-13 Vincent Lefèvre <vincent@vinc17.net> 31862 31863 Code reformatted. C99 comment replaced by traditional comment. 31864 318652006-02-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 31866 31867 * Added comments on all random number generator functions ; 31868 * Inlined the mpn_random2 code in mpfr_random2, to avoid the use of the 31869 same internal randstate ; added a mpfr_random2_raw (not exported at the 31870 time) to allow specification of a randstate ; 31871 * Checked normalization of the result of random2 in trandom.c 31872 318732006-01-31 Vincent Lefèvre <vincent@vinc17.net> 31874 31875 Changed a part of the documentation of mpfr_get_d_2exp, introduced in 31876 rev 4008, to specify a behavior very similar to the ISO C standard. 31877 318782006-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31879 31880 fixed documentation bug 31881 318822006-01-19 Vincent Lefèvre <vincent@vinc17.net> 31883 31884 Reverted comments on <float.h> (that were added in r3976). 31885 31886 Replaced -0.0 by a new macro DBL_NEG_ZERO. With MSVC, the negative zero 31887 no longer depends on the non-standard _chgsign function, as 31888 static double double_zero = 0.0; 31889 # define DBL_NEG_ZERO (-double_zero) 31890 has been reported to work. 31891 318922006-01-17 Vincent Lefèvre <vincent@vinc17.net> 31893 31894 Added comments. 31895 318962006-01-13 Vincent Lefèvre <vincent@vinc17.net> 31897 31898 Type clean-up. 31899 31900 The problem with the conversion was not completely fixed... Now OK. 31901 31902 Fixed conversion with a non-representable value. 31903 31904 Untabify. 31905 319062006-01-12 Vincent Lefèvre <vincent@vinc17.net> 31907 31908 More reliable tests for mpfr_set_f (x, y, GMP_RNDN) for 31909 y = 2^emax and y = 2^(emax-1). 31910 31911 Use mpfr_get_emax() instead of obsolete __mpfr_emax. 31912 31913 More reliable test for mpfr_set_f (x, y, GMP_RNDN) for y=2^ULONG_MAX. 31914 31915 Untabified. 31916 31917 Fixed a bug related to exponent range. 31918 31919 Replaced obsolete __mpfr_emax by __gmpfr_emax. 31920 319212006-01-11 Vincent Lefèvre <vincent@vinc17.net> 31922 31923 Removed add_one_ulp.c and sub_one_ulp.c (no longer used). 31924 319252006-01-10 Vincent Lefèvre <vincent@vinc17.net> 31926 31927 MPFR manual: changes from Paul concerning the ulps. 31928 31929 In the manual, replaced "exact rounding" by "correct rounding", 31930 and added a sentence on the consequence of correct rounding (as 31931 suggested by Paul). 31932 319332006-01-05 Vincent Lefèvre <vincent@vinc17.net> 31934 31935 Added ', Inc.' when missing after 'Free Software Foundation'. 31936 31937 README.dev: Added a note about copyright notices. 31938 31939 Updated the copyright notices according to the new GNU rules on: 31940 https://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices 31941 i.e. added 2006 to every MPFR file. 31942 Note: the copyright notices (currently 336) should match the regexp 31943 Copyright.* 2006 Free Software 31944 so that it will be easier to update them for the next year... 31945 319462006-01-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31947 31948 added suggestion from K. Briggs 31949 319502006-01-01 Vincent Lefèvre <vincent@vinc17.net> 31951 31952 Updated copyright line (we are now in 2006!). 31953 319542006-01-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31955 31956 use mpfr_overflow 31957 319582005-12-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31959 31960 fixed bug in mpfr_set_f for huge argument 31961 319622005-12-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31963 31964 bug fix in mpfr_get_f 31965 319662005-12-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31967 31968 updated comment for float.h (_chgsign) 31969 31970 fixed bug found by Vincent (worst-case) 31971 31972 patch for Visual C (does not compile -0.0 properly) 31973 31974 patch for Visual C (-0.0) 31975 319762005-12-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31977 31978 fixed typo 31979 319802005-12-16 Vincent Lefèvre <vincent@vinc17.net> 31981 31982 Better definition for mpf_set_prec_raw (so that the value is kept). 31983 319842005-12-08 Vincent Lefèvre <vincent@vinc17.net> 31985 31986 Updated a comment. 31987 31988 Added test cases for a bug introduced on 2005-01-29 in sin.c rev 3248. 31989 31990 README.dev: remember to test MPFR on the worst cases. 31991 319922005-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 31993 31994 added lemma + reference 31995 319962005-11-25 Vincent Lefèvre <vincent@vinc17.net> 31997 31998 Removed mpfr_div bug from BUGS (as it has been fixed). 31999 32000 Added consistency tests for mpfr_div (e.g. to test small-size divisors). 32001 320022005-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32003 32004 fixed efficiency bug for small divisor (division had same cost than for 32005 divisor of the same size than the result) 32006 320072005-11-23 Vincent Lefèvre <vincent@vinc17.net> 32008 32009 Updated FAQ. 32010 32011 faq.xsl: add copyright information to the downloaded FAQ. 32012 32013 Added information about the patches to the INSTALL file. 32014 32015 BUGS: Noted the slow division when the precision of the divisor 32016 is small compared to the precision of the target. 32017 320182005-11-21 Vincent Lefèvre <vincent@vinc17.net> 32019 32020 Fixed a bug preventing the compilation of MPFR with GMP 4.1.90 32021 (non-public development version) without the build directory. 32022 32023 Fixed memory leak in mpfr_mpn_rootrem(). 32024 320252005-11-09 Vincent Lefèvre <vincent@vinc17.net> 32026 32027 Added a note about running the trunk tests in a branch. 32028 32029 Make trunk tests work with MPFR 2.2 (branch), by testing the version. 32030 32031 Removed .cvsignore file (useless after the switch to Subversion). 32032 32033 Added a MPFR_UNLIKELY. 32034 32035 In mpfr_round_near_x, use the new MPFR_RNDRAW_GEN with a correct middle 32036 handler instead of MPFR_RNDRAW_EVEN so that the correction of the wrong 32037 rounding is no longer necessary (BTW, the wrong rounding could have lead 32038 to problems in case of intermediate underflow/overflow -- not checked). 32039 32040 mpfr_round_near_x test completed. 32041 32042 Added a test for mpfr_cbrt, from the following failure with MPFR 2.2 32043 and gcc 4.0.2 under Linux/m68k: 32044 Seed GMP_CHECK_RANDOMIZE=1131612275 (include this in bug reports) 32045 results differ for x=1.1000e-2 prec=5 rnd_mode=GMP_RNDN 32046 got 1.1000e-1 32047 expected 1.0111e-1 32048 approx 0.101110001001100E0 32049 FAIL: tcbrt 32050 320512005-11-04 Vincent Lefèvre <vincent@vinc17.net> 32052 32053 Improved note r3493 concerning mpfr_set_d/ld. 32054 32055 More information in the "Reporting Bugs" section. 32056 32057 Added a comment about the macros MPFR_RNDRAW* and the labels. 32058 32059 Moved definitions of struct __gmpfr_cache_s and mpfr_cache_t, and 32060 declarations of mpfr_init_cache, mpfr_clear_cache and mpfr_cache 32061 from mpfr.h to mpfr-impl.h as they are internal (not documented). 32062 320632005-11-03 Vincent Lefèvre <vincent@vinc17.net> 32064 32065 Eliminated the case inex == 0. 32066 32067 Started to write code to test mpfr_round_near_x. 32068 32069 Typos & English usage. 32070 32071 Fixed typos. 32072 320732005-11-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32074 32075 added hint on forbidden variable name 32076 32077 added "tune" item for new releases 32078 32079 done make tune for amd64 with gmp-4.1.4 32080 320812005-11-02 Vincent Lefèvre <vincent@vinc17.net> 32082 32083 Merged the changes from branch vlefevre: 32084 * mpfr-impl.h: Added MPFR_RNDRAW_GEN based on MPFR_RNDRAW and 32085 MPFR_RNDRAW_EVEN codes, but taking an additional argument: a 32086 handler executed in rounding to nearest mode when the value 32087 is the middle of two consecutive numbers in dest precision. 32088 MPFR_RNDRAW and MPFR_RNDRAW_EVEN are now defined by a "call" 32089 to MPFR_RNDRAW_GEN. 32090 * cache.c: Clean-up and use MPFR_RNDRAW_GEN instead of 32091 MPFR_RNDRAW_EVEN to avoid an unnecessary correction in the 32092 halfway case. 32093 * hypot.c: Fixed mpfr_hypot when the rounding mode is to nearest, 32094 x is "much larger" than y, and x is the middle of two consecutive 32095 numbers in the target precision. 32096 * tests/thypot.c: Added the corresponding testcase. 32097 32098 [Added during the Subversion to Git conversion] 32099 A merge commit could not be generated for Git. 32100 Branch in Git: refs/deleted/r3930/heads/vlefevre 32101 321022005-11-02 Vincent Lefèvre <vincent@vinc17.net> 32103 32104 Updated svn:ignore property. 32105 321062005-11-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32107 32108 fixed remaining problems 32109 32110 declared variables as mp_prec_t instead of int 32111 use MPFR_MPZ_SIZEINBASE2 instead of mpz_sizeinbase 32112 321132005-11-02 Vincent Lefèvre <vincent@vinc17.net> 32114 32115 Reverted the latest change to constant.c: removed MPFR_THREAD_ATTR as 32116 these constants can be shared. Removed MPFR_THREAD_ATTR from mpfr-impl.h 32117 too (this should have been the right correction for rev 3838 concerning 32118 the type mismatch). Thanks to Patrick for noticing this. 32119 321202005-10-31 Vincent Lefèvre <vincent@vinc17.net> 32121 32122 Added an MPFR_UNLIKELY (suggested by Patrick) and an MPFR_ASSERTN. 32123 321242005-10-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32125 32126 factored calls to gmp_alloc 32127 removed unused variables 32128 32129 improved atan (now can cut series before 2^m) 32130 revised error analysis and code of tanh 32131 321322005-10-31 Vincent Lefèvre <vincent@vinc17.net> 32133 32134 Reformat (GNU coding style). 32135 32136 Fixed MPFR_INT_CEIL_LOG2 (in mpfr-impl.h) and __gmpfr_int_ceil_log2 32137 (in int_ceil_log2.c) when the argument is a power of 2, and added a 32138 test (new test file tests/tinternals.c). This made a bug appear in 32139 div_ui.c and mul_ui.c; fixed that too. 32140 32141 Added a test that fails after fixing MPFR_INT_CEIL_LOG2. 32142 321432005-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32144 32145 improved exp_3 (binary-splitting algorithm) 32146 321472005-10-30 Vincent Lefèvre <vincent@vinc17.net> 32148 32149 Fixed padding-bit test. 32150 32151 3 corrections in cos.c concerning maxi: 32152 * corrected a comment; 32153 * failed if sizeof(int) <= sizeof(long) / 2; 32154 * now take possible padding bits into account. 32155 321562005-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32157 32158 patched root.c to use rootrem.c with gmp-4.1.90 32159 added comment in exp3.c 32160 added more initial guard bits in agm 32161 32162 now tune Mulders short square (not yet used) 32163 improved mpfr_cos 32164 321652005-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32166 32167 updated code for gmp-dev 32168 321692005-10-26 Vincent Lefèvre <vincent@vinc17.net> 32170 32171 Removed .cvsignore file (useless after the switch to Subversion). 32172 321732005-10-25 Vincent Lefèvre <vincent@vinc17.net> 32174 32175 More portable update-version script (use perl instead of sed). 32176 321772005-10-24 Vincent Lefèvre <vincent@vinc17.net> 32178 32179 First revision after the switch to Subversion: 32180 * Removed fixperm as it is now useless. 32181 * Updated README and README.dev files. 32182 32183 Update. 32184 321852005-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32186 32187 documented algorithm used in mpfr_agm and fixed code accordingly 32188 321892005-10-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32190 32191 added efficiency item 32192 32193 now mpzroot/rootrem compile without gmp internal headers 32194 321952005-10-07 Vincent Lefèvre <vincent@vinc17.net> 32196 32197 Disabled new rootrem/mpz_root as compilation fails (headers can't 32198 be found). 32199 32200 Temporary optimization (patch from Patrick Pelissier). 32201 322022005-10-06 Vincent Lefèvre <vincent@vinc17.net> 32203 32204 One of the tests was using the fabs function, but -lm isn't given when 32205 generating the executable, making the linking fail under HP-UX. Fixed 32206 by not using this fabs function. 32207 322082005-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32209 32210 small improvement in sign detection 32211 32212 improved mpfr_root, using the new mpn_rootrem code written with Torbjo"rn 32213 322142005-09-29 Vincent Lefèvre <vincent@vinc17.net> 32215 32216 Update. 32217 32218 Fixed bug in mpfr_set_ui macro when parameters are expressions 32219 with side effects. 32220 322212005-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32222 32223 fixed missing accent 32224 322252005-09-28 Vincent Lefèvre <vincent@vinc17.net> 32226 32227 Small optimization. 32228 32229 Test the sign of 0. 32230 322312005-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32232 32233 fixed infinite loop for lngamma(2) 32234 322352005-09-28 Vincent Lefèvre <vincent@vinc17.net> 32236 32237 Updated libmpfr_la_LDFLAGS (note: it shouldn't be incremented again 32238 before the 2.3.0 release). 32239 322402005-09-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32241 32242 new function: Zeta with integer argument 32243 322442005-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32245 32246 new function mpfr_zeta_ui for integer argument 32247 322482005-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32249 32250 added brief description of algorithm for mpfr_zeta 32251 322522005-09-18 Vincent Lefèvre <vincent@vinc17.net> 32253 32254 Mentioned problems with the Tru64 make and other minor changes. 32255 322562005-09-17 Vincent Lefèvre <vincent@vinc17.net> 32257 32258 Fixed the GMP linking test: replaced __gmp_version, which corresponds 32259 to a variable, by __gmpz_init (suggested by the GMP documentation), 32260 which corresponds to a function, as the auto tools assume the symbol 32261 corresponds to a function. It was failing with the AIX linker. 32262 322632005-09-16 Vincent Lefèvre <vincent@vinc17.net> 32264 32265 Untabify. 32266 32267 Update. 32268 32269 Untabify. 32270 322712005-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32272 32273 added missing documentation for mpfr_get_f and mpfr_pow_z 32274 322752005-09-16 Vincent Lefèvre <vincent@vinc17.net> 32276 32277 Fixed typos found by Tomonori Kouya. 32278 322792005-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32280 32281 fixed stupid bug (coth was computing 1/tan instead of 1/tanh) 32282 322832005-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32284 32285 fixed overflow problem for large precision 32286 32287 added log(precz) in initial precision 32288 322892005-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32290 32291 fixed bug in exp(-eps) for rounding toward zero (test was also wrong...) 32292 322932005-09-13 Vincent Lefèvre <vincent@vinc17.net> 32294 32295 Updated "To make a release". 32296 32297 Minor update. 32298 32299 Added missing MPFR_THREAD_ATTR. 32300 323012005-09-11 Vincent Lefèvre <vincent@vinc17.net> 32302 32303 Avoid a conflict with GMP. 32304 32305 Reverted to previous mparam_h.in and mul.c, and applied Patrick's 32306 patch instead. 32307 32308 Update. 32309 32310 Added #include <string.h> for memmove (see ISO C99 standard). 32311 32312 Minor change. 32313 32314 Fixed uninitialized variable (with gcc -std=c99). 32315 32316 Fixed a #ifdef (when --enable-assert isn't used). 32317 32318 Update. 32319 32320 Changed the MPFR_ASSERTD into a MPFR_ASSERTN for MPFR_INT_CEIL_LOG2 32321 since the assertion cannot be guaranteed for every C implementation. 32322 323232005-09-10 Patrick Pélissier <patrick.pelissier@gmail.com> 32324 32325 Fix spelling mistake. 32326 32327 Add new note about MPFR_TMP_DECL 32328 323292005-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32330 32331 reduced default of MPFR_MUL_THRESHOLD by 1, since now MPFR_MUL_THRESHOLD+1 32332 is considered in mul.c 32333 323342005-09-09 Vincent Lefèvre <vincent@vinc17.net> 32335 32336 Fixed another LaTeX error. 32337 32338 Update. 32339 32340 Updated "To make a release". 32341 32342 Use (mpz_t *) 0 instead of NULL (this is not less clear and this 32343 works with the native SunOS 4 C compiler). 32344 323452005-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32346 32347 avoid . in mpf_set_str (locale-sensitive) 32348 32349 cleanup of gamma and lngamma 32350 323512005-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32352 32353 MUL_THRESHOLD -> MUL_THRESHOLD+1 (to allow MUL_THRESHOLD=0, needed for 32354 tuneup.c) 32355 32356 fixed LaTeX error 32357 323582005-09-08 Vincent Lefèvre <vincent@vinc17.net> 32359 32360 Fix. 32361 32362 Update. 32363 32364 Added fixperm script to fix the file permissions broken by CVS. 32365 32366 Update. 32367 323682005-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32369 32370 added one item 32371 323722005-09-08 Vincent Lefèvre <vincent@vinc17.net> 32373 32374 Update. 32375 32376 Fix: readded dependencies. 32377 323782005-09-06 Vincent Lefèvre <vincent@vinc17.net> 32379 32380 More detailed error message. 32381 32382 Change for ansi2knr. 32383 32384 Code clean-up (again). 32385 32386 Use GMP's allocate functions instead of C's. Code clean-up. 32387 32388 Reformat. 32389 323902005-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32391 32392 missing set_emin 32393 32394 added missing call to MPFR_TEST_USE_RANDS() [3 blocks non-freed] 32395 323962005-09-06 Vincent Lefèvre <vincent@vinc17.net> 32397 32398 Fixed a bug (detected after mpfr_set_str_binary has been fixed) 32399 in tests/tsub.c introduced in 1.6 (2001-10-19). 32400 32401 mpfr_set_str_binary was buggy and inefficient. Let's use mpfr_strtofr. 32402 32403 Replaced unsigned long bit-fields (GCC extension) by insigned int 32404 bit-fields. 32405 324062005-09-05 Vincent Lefèvre <vincent@vinc17.net> 32407 32408 MPN_COPY now calls memcpy only if dst != src (otherwise this is an 32409 undefined behavior), and if WANT_ASSERT is defined, it checks that 32410 there is no overlap. 32411 324122005-09-02 Vincent Lefèvre <vincent@vinc17.net> 32413 32414 Avoid MIPSpro / IRIX64 (incorrect) optimizations for DOUBLE_ISNAN. 32415 32416 More portable DOUBLE_ISNAN (useful for MIPSpro under IRIX64). 32417 324182005-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32419 32420 improved trade-off between fac_ui and gamma when argument is integer 32421 324222005-09-02 Vincent Lefèvre <vincent@vinc17.net> 32423 32424 Reformat. 32425 324262005-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32427 32428 fixed remaining problem in gamma 32429 removed LogGamma from TODO 32430 324312005-09-02 Vincent Lefèvre <vincent@vinc17.net> 32432 32433 Do not put expressions with side effects in MPFR_ASSERTN. 32434 324352005-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32436 32437 now uses lngamma code for x < 1 too 32438 added new tests from Kenneth Wilder 32439 32440 added another test 32441 32442 removed useless prototype 32443 324442005-08-31 Vincent Lefèvre <vincent@vinc17.net> 32445 32446 Fixed memory leak (missing MPFR_TMP_FREE in a particular case). 32447 32448 Fixed the code formatting. 32449 32450 Updated Point 6 of "To make a release". 32451 32452 Fixed memory leak (missing MPFR_TMP_FREE in a particular case). 32453 324542005-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32455 32456 added lngamma 32457 32458 added new test (emax) 32459 32460 now random tests also use x >= 1 32461 32462 added SAVE_EXPO stuff 32463 32464 new function lngamma 32465 32466 now uses lngamma code for x > 1 32467 32468 added lngamma 32469 324702005-08-31 Vincent Lefèvre <vincent@vinc17.net> 32471 32472 Updated version to 2.3.0. 32473 32474 Fix for the following problem: #error is not sufficient with cc 32475 on IRIX64, and autoconf 2.59 doesn't cope with that. 32476 324772005-08-30 Vincent Lefèvre <vincent@vinc17.net> 32478 32479 Added .cvsignore files. 32480 32481 Unobfuscated 2 assertions. 32482 32483 Fixed indentation and some comments. 32484 32485 Recommitted the patch (without discarding previous modifications). 32486 32487 Reverted to the previous version, as the patch discarded previous 32488 modifications. 32489 324902005-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32491 32492 added two new tests 32493 32494 patch from Patrick to solve efficiency problem when one operand is sparse 32495 (e.g. from ui_pow_ui) 32496 324972005-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32498 32499 check for overflow/underflow in pow and gamma 32500 325012005-08-24 Vincent Lefèvre <vincent@vinc17.net> 32502 32503 When WANT_ASSERT >= 2: the corresponding messages are now output 32504 to stderr instead of stdout. 32505 32506 Update. 32507 32508 Improved C compliance when mp_limb_t and uintmax_t have the same size 32509 (concerning >> BITS_PER_MP_LIMB); some other small improvements. 32510 32511 No longer assume that a mp_limb_t fits in an unsigned long (this 32512 is not true under IRIX, where a mp_limb_t has 64 bits and a long 32513 has 32 bits by default). In round_p.c, error messages are output 32514 to stderr instead of stdout. 32515 325162005-08-23 Vincent Lefèvre <vincent@vinc17.net> 32517 32518 Update. 32519 32520 This was wrong. Let's do it even more like the 2.1 branch. 32521 32522 Update. 32523 32524 Patch 1.25 didn't work under OSF1 with cc. Let's do it like 32525 the 2.1 branch (it now does work under OSF1 with cc). 32526 325272005-08-21 Vincent Lefèvre <vincent@vinc17.net> 32528 32529 Better locale support (for the decimal point in string conversions 32530 and input/output). 32531 325322005-08-18 Vincent Lefèvre <vincent@vinc17.net> 32533 32534 Update. 32535 32536 Misc changes (spelling, typography...). 32537 32538 Removed trailing spaces (better for future patches, as such spaces 32539 are sometimes stripped). 32540 32541 Converted tabs to spaces with expand. 32542 32543 Updated copyright line. 32544 32545 Support C implementations giving an incorrect value for the precision 32546 of long double or where long doubles are implemented with FP expansions 32547 (like under Mac OS X), as in the 2.1 branch. 32548 32549 Updated mpfr_get_ld: removed useless and non-portable hacks, fixed 32550 bugs, and slightly changed the behavior for the x87 extended format 32551 (we shouldn't return long double's with more precision than really 32552 supported, e.g. on FreeBSD and NetBSD). 32553 32554 Added an assertion. 32555 325562005-08-17 Vincent Lefèvre <vincent@vinc17.net> 32557 32558 Reformatted (GNU style). 32559 325602005-08-17 Patrick Pélissier <patrick.pelissier@gmail.com> 32561 32562 Improve the warning message by adding the lines: 32563 "we cannot run a program linked with GMP (if you cannot 32564 see the version numbers above)." 32565 325662005-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32567 32568 added pointer for gamma 32569 32570 fixed comments (code did not change) 32571 32572 added formula for gamma function 32573 32574 fixed last test (expected result was wrong) 32575 32576 fixed bug for tiny input 32577 32578 added test case 32579 325802005-08-12 Patrick Pélissier <patrick.pelissier@gmail.com> 32581 32582 Reintroduce the computing of the dependencies. 32583 325842005-08-11 Vincent Lefèvre <vincent@vinc17.net> 32585 32586 Added MPFR_DOUBLE_SPEC (not used yet, except for warning messages). 32587 325882005-08-10 Vincent Lefèvre <vincent@vinc17.net> 32589 32590 Completed the documentation of mpfr_strtofr (concerning the exponent). 32591 32592 Removed double spaces in mpfr_strtofr description (this matters 32593 for the info format). 32594 32595 Added a temporary test for non-IEEE-754 double's. 32596 325972005-08-09 Patrick Pélissier <patrick.pelissier@gmail.com> 32598 32599 Fix bug for pre-ansi compiler. 32600 32601 Remove redundant entries. 32602 326032005-08-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32604 32605 fixed bug in mpfr_sin (possible wrong inexact flag for rounding to nearest) 32606 added items in NEWS and TODO 32607 326082005-08-05 Patrick Pélissier <patrick.pelissier@gmail.com> 32609 32610 Update information 32611 32612 Rename mpfr_stack to mpfr_custom_ 32613 326142005-08-03 Vincent Lefèvre <vincent@vinc17.net> 32615 32616 Added/updated copyright information. 32617 326182005-08-03 Vincent Lefèvre <vincent@vinc17.net> 32619 32620 Update. 32621 32622 [[Split portion of a mixed commit.]] 32623 326242005-08-02 Patrick Pélissier <patrick.pelissier@gmail.com> 32625 32626 Remove "Stack Interface" from TODO. 32627 326282005-08-01 Patrick Pélissier <patrick.pelissier@gmail.com> 32629 32630 Add test file for mpfr_subnormalize 32631 32632 Add documentation for MPFR stack interface 32633 32634 Add a new test to avoid potential problems if mp_limb_t != long. 32635 326362005-08-01 Vincent Lefèvre <vincent@vinc17.net> 32637 32638 Update. 32639 326402005-07-26 Patrick Pélissier <patrick.pelissier@gmail.com> 32641 32642 Add first version of MPFR stack interface. 32643 Need to check if everything is ok, specially the test. 32644 32645 Fix and clean up logging for GCC 4.0.x 32646 32647 Clean up code. 32648 32649 Improve logging: 32650 + The file is not created if there is nothing to log. 32651 + Add new ENVIRONMENT variables: MPFR_LOG_ALL and MPFR_LOG_STAT. 32652 32653 Add experimental code (Disabled). 32654 32655 Fix comment 32656 32657 Add a new regression test (to fix). 32658 326592005-07-22 Patrick Pélissier <patrick.pelissier@gmail.com> 32660 32661 Fix bug for high values of input (assertion failed) 32662 because erf(x) ~ 1, so 1-erf(x) ~ 0, and we can't 32663 get the EXP of tmp. 32664 326652005-07-18 Patrick Pélissier <patrick.pelissier@gmail.com> 32666 32667 Fix bug (AC_INIT version wasn't updated). 32668 Display a note about libtool version before quitting. 32669 32670 Clean up. 32671 Add comment. 32672 Add a new test: check if the charset has consecutive values. 32673 326742005-07-12 Vincent Lefèvre <vincent@vinc17.net> 32675 32676 Updated documentation of mpfr_strtofr. 32677 326782005-07-12 Patrick Pélissier <patrick.pelissier@gmail.com> 32679 32680 Fix an overflow bug (use of int instead of unsigned long). 32681 Optimize code (5% faster). 32682 326832005-07-11 Vincent Lefèvre <vincent@vinc17.net> 32684 32685 Fixed locale bug. Function strncasecmp is no longer used. 32686 326872005-07-09 Vincent Lefèvre <vincent@vinc17.net> 32688 32689 In the tests, set the locale to the current one. This allows to test 32690 MPFR under various locales, showing a bug in the parse_string function 32691 due to the use of the strncasecmp function ('i' and 'I' don't match 32692 with LC_ALL="tr_TR.ISO8859-9"). 32693 326942005-07-07 Patrick Pélissier <patrick.pelissier@gmail.com> 32695 32696 Improve displayed warning if GMP versions differ. 32697 326982005-07-06 Patrick Pélissier <patrick.pelissier@gmail.com> 32699 32700 Add a solution for a problem. 32701 327022005-07-05 Vincent Lefèvre <vincent@vinc17.net> 32703 32704 Added in-place tests for atan(+/-0). 32705 327062005-07-05 Patrick Pélissier <patrick.pelissier@gmail.com> 32707 32708 Fix bug of signed 0. 32709 Optimize code. (20% for 53 bits). 32710 32711 Improve test for signed 0. 32712 327132005-06-28 Patrick Pélissier <patrick.pelissier@gmail.com> 32714 32715 Simplify a condition which was always true. 32716 (p is always negative). 32717 32718 Add assertion. 32719 32720 Simplify code for final step (when i== n0): 32721 since we do n0-i=0 steps, atan(Ak/2^k) ~= Ak/2^k. 32722 So we could speed up the final computation (9% faster). 32723 32724 Optimize: when computing arctan(p/2^r) simplify 32725 p/2^r if p is even. 32726 Clean up and remove tabi table. It was useless. 32727 327282005-06-22 Patrick Pélissier <patrick.pelissier@gmail.com> 32729 32730 Clean up configure and acinclude: 32731 + Remove useless test in MPFR_CONFIGS (Check for valid NAN). 32732 Its result is not use by MPFR. 32733 + Remove useless macros (AC_CHECK_OS, AC_CHECK_MACH and AC_MY_HEADERS). 32734 + Move detection of math/rint,round,floor,ceil to MPFR_CONFIGS. 32735 327362005-06-20 Vincent Lefèvre <vincent@vinc17.net> 32737 32738 GNU coding style. 32739 327402005-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32741 32742 improved m=0 case when b is a power of 2 32743 327442005-06-15 Patrick Pélissier <patrick.pelissier@gmail.com> 32745 32746 Replace mpfr_div_2ui call by SET_EXP/GET_EXP 32747 since it can't overflow. 32748 32749 Speed up a few (from 10822 to 10600). 32750 32751 Update 32752 327532005-06-14 Patrick Pélissier <patrick.pelissier@gmail.com> 32754 32755 Replace check for a power of 2 for the high limb by a check 32756 for "high bit limb" for the high limb. 32757 32758 Fix bug in mul_ui (always alloc buffer instead of trying to reuse it). 32759 32760 Add new test (failed). 32761 32762 Add Fast case for u==1 32763 Add Fast case for u a power of 2 (Call mul/div_2si). 32764 32765 Fix bug (use of GCC specific attribute). 32766 327672005-06-13 Patrick Pélissier <patrick.pelissier@gmail.com> 32768 32769 Rechnage the meaning of root for k=0. 32770 32771 Fix bug with x<0 and k even 32772 32773 Add special case for k==0 32774 Add test for special case k==0 32775 327762005-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32777 32778 added assertion 32779 327802005-06-13 Patrick Pélissier <patrick.pelissier@gmail.com> 32781 32782 Improve efficiency of initial call to mpfr_cache. 32783 32784 Add new check (+INF -INF --> NAN). 32785 327862005-06-10 Patrick Pélissier <patrick.pelissier@gmail.com> 32787 32788 Fix bug of NAN and INF. 32789 Fix bug in documentation (mpfr_sum wasn't exactly what is described). 32790 Improve test. 32791 Change internal names. 32792 Clean up. 32793 32794 Fix bug: check if mpfr_log returns 0. 32795 327962005-06-08 Patrick Pélissier <patrick.pelissier@gmail.com> 32797 32798 Replace MPFR_EXP to MPFR_GET_EXP 32799 Use GROUP function 32800 Use MPFR_MPZ_SIZEINBASE2 32801 Factorize the mpfr_mul_2exp chain. 32802 32803 Replace int to mp_prec_t for precision... 32804 32805 Fix warning due to comparison of unsigned and signed integers. 32806 32807 Fix warnings due to comparison between signed and unsigned. 32808 Reinclude string.h for strtofr. 32809 328102005-06-08 Vincent Lefèvre <vincent@vinc17.net> 32811 32812 Fixed bug introduced with the new internal format on 2003-10-27. 32813 32814 Updated comments. 32815 328162005-06-08 Patrick Pélissier <patrick.pelissier@gmail.com> 32817 32818 Fix introduced bug due to missing NULL. 32819 32820 Fix introduced bug (NULL not defined). 32821 32822 Clean up use of stdio.h: 32823 it is now included by mpfr-impl iff DEBUG is defined or WANT_ASSERT is 32824 defined. 32825 32826 Fix warnings. 32827 32828 Clean up code. 32829 32830 Improve checking if WANT_ASSERT >= 2 32831 328322005-06-07 Patrick Pélissier <patrick.pelissier@gmail.com> 32833 32834 Fix wrong assertion. 32835 32836 Improve test by adding special cases. 32837 32838 MPFR_GET_EXP was wrongly defined and does nothing due to recursive 32839 macro (mpfr_get_exp is also defined to be a fast macro). Fix this 32840 by removing the macro call in MPFR_GET_EXP in case of ASSERT >= 1. 32841 2 tests failed now! 32842 32843 Clean up and improve check. 32844 32845 Handle case n==0 and n==1 as special cases. 32846 32847 Simplify test to use tgeneric. 32848 Add note about Worst Case of const_catalan up to 100,000,000 32849 32850 Use GROUP functions. 32851 32852 Improve coverage. 32853 32854 Fix bug in MPFR_GROUP_REPREC_3. 32855 328562005-06-06 Patrick Pélissier <patrick.pelissier@gmail.com> 32857 32858 Improve coverage 32859 32860 Improve coverage test 32861 32862 Remove mpfr_sub_one_ulp from MPFR library. 32863 Keep the C file until we are sure it not needed anymore. 32864 32865 Improve coverage. 32866 32867 Remove mpfr_add_one_ulp from MPFR library. 32868 The function is still in the CVS. 32869 32870 Add experimental code (disabled). 32871 For 5000 bits, gamma(12.5) takes 4s instead of 18s. 32872 But it changes the error analysis... 32873 32874 Reduce use of intermediary variables. 32875 32876 Improve comment of previous change. 32877 32878 Use FastCompute if x is positive and big, ie it uses 32879 Zeta(x)=1+1/2^X+O(1/3^x) 32880 328812005-06-03 Patrick Pélissier <patrick.pelissier@gmail.com> 32882 32883 Add new and faster trivial case for y <= 1 and n <= 1 32884 328852005-06-02 Patrick Pélissier <patrick.pelissier@gmail.com> 32886 32887 Forget those two. Update from FSF site. 32888 32889 Finish updating files. 32890 32891 Change the address of the FSF. 32892 32893 Optimize it a few by avoiding calling fac_ui for each iteration 32894 of the main loop. 32895 32896 Reduce # of vars inside the main loop. 32897 Use GROUP function. 32898 Improve overflow problems (Use of int instead of mp_prec_t). 32899 32900 Improve efficiency by removing 2 variables (Loop uses only 4 vars). 32901 Use GROUP. 32902 32903 Add support for MPFR_GROUP functions. 32904 32905 Add attribute const and noreturn for function (via macros). 32906 Add new macros GROUP_INIT_6 and GROUP_REPREC_6 for zeta and gamma. 32907 329082005-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 32909 32910 added missing functions from gnumeric 32911 329122005-06-02 Patrick Pélissier <patrick.pelissier@gmail.com> 32913 32914 Update stack-interface. 32915 Remove round_near_x item. 32916 Add new functions to implement. 32917 Reformat file. 32918 32919 Fix input precision of mp_prec_t. 32920 May be outside 'int' range. So it uses 'long' instead and 32921 a proper check. 32922 329232005-05-25 Vincent Lefèvre <vincent@vinc17.net> 32924 32925 Added coding recommendations concerning C++ compilers. 32926 329272005-05-23 Patrick Pélissier <patrick.pelissier@gmail.com> 32928 32929 Final version of MPFR_GROUP macros. 32930 32931 Improve coverage test. 32932 329332005-05-20 Patrick Pélissier <patrick.pelissier@gmail.com> 32934 32935 Remove variable t which wasn't used! 32936 329372005-05-18 Patrick Pélissier <patrick.pelissier@gmail.com> 32938 32939 Replace TMP_ALLOC by MPFR_TMP_ALLOC 32940 Replace TMP_DECL by MPFR_TMP_DECL 32941 Replace TMP_MARK by MPFR_TMP_MARK 32942 Replace TMP_FREE by MPFR_TMP_FREE 32943 Add support for GMP's TMP_SALLOC. 32944 32945 New way of handling exact value. 32946 Fix bug of wrong rounding and wrong ternary value if the power 32947 is exact, but at an upper precision than the working precision. 32948 Now it computes the power exactly if it detects it is exact. 32949 32950 Precise that 1 is not the only value. 32951 329522005-05-18 Vincent Lefèvre <vincent@vinc17.net> 32953 32954 an 1 -> a 1. 32955 329562005-05-18 Patrick Pélissier <patrick.pelissier@gmail.com> 32957 32958 Add a note about special case 1 32959 32960 Add assertions 32961 Remove useless function is_odd_even. 32962 32963 Fix bug: returning 1 didn't take the rounding mode into account. 32964 Simplify dependencies of mpfr_pow. 32965 32966 Fix bug of overflow 32967 Fix bug of wrong ternary value in case of overflow 32968 Add test cases. 32969 32970 Fix bug of overflow. 32971 Fix bug of ternary value in case of overflow. 32972 32973 Clean up previous patch. 32974 32975 Fix bug of overflow. 32976 Fix bug of ternary value in case of overflow. 32977 Still some bugs... 32978 329792005-05-17 Patrick Pélissier <patrick.pelissier@gmail.com> 32980 32981 Rewrite the way of handling overflow. 32982 Fix bug due to overflow. 32983 Fix bug due to wrong ternary value. 32984 32985 Typo. 32986 32987 Fix bug of overflow. 32988 Still a problem if exp(x) is near the limit of EMAX_MAX. 32989 32990 Add new macro MPFR_SAVE_DECL_UPDATE_FLAGS 32991 32992 Improve way of handling overflow (still not perfect but far better). 32993 Improve coverage test. 32994 32995 Improve coverage test. 32996 329972005-05-17 Vincent Lefèvre <vincent@vinc17.net> 32998 32999 hypot(±oo, NaN) now returns +oo, as in ISO C99 (wasn't documented). 33000 330012005-05-17 Patrick Pélissier <patrick.pelissier@gmail.com> 33002 33003 Improve coverage test. 33004 33005 Remove useless test. 33006 33007 Improve coverage test. 33008 33009 Improve coverage 33010 33011 Improve coverage test. 33012 33013 Add CFLAGS -g. 33014 33015 Clean up 33016 33017 Improve coverage tests. 33018 33019 Improve coverage test. 33020 33021 Special a condition by the simplified one. 33022 33023 Improve coverage test (Forget to test tiny functions). 33024 33025 Typo 33026 33027 Add 'coverage' script. 33028 33029 Add 'static' 33030 33031 Reformating code. 33032 Fix potential (?) overflow for very large precision. 33033 Various tiny optimizations 33034 Improve the initial estimation of the needed precision. 33035 33036 Extract constants (__gmpfr_one, two and four) from log.c to constant.c 33037 Fix bug in MPFR_SET_ONE. 33038 33039 Remove a space. 33040 330412005-05-16 Vincent Lefèvre <vincent@vinc17.net> 33042 33043 Typography + spelling. 33044 33045 Note that mpfr_out_str has slightly changed. 33046 330472005-05-16 Patrick Pélissier <patrick.pelissier@gmail.com> 33048 33049 asin, atan, atanh are not slow anymore for small input. 33050 Remove it in the TODO. 33051 330522005-05-14 Vincent Lefèvre <vincent@vinc17.net> 33053 33054 Fixed a bug due to a typo on a variable name. It produced a 33055 segmentation fault in the tests on Linux/ppc (uninitialized data were 33056 read), not always reproducible when stepping with gdb. 33057 330582005-05-13 Patrick Pélissier <patrick.pelissier@gmail.com> 33059 33060 Add support for MPFR_FAST_COMPUTE_IS_SMALL_INPUT 33061 33062 Add support for FAST_COMPUTE_IS_SMALL_INPUT. 33063 33064 Add round_near_x support for small arguments. 33065 33066 Add new internal function mpfr_round_near_x. 33067 330682005-05-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33069 33070 added missing documentation for mpfr_hypot 33071 330722005-05-13 Patrick Pélissier <patrick.pelissier@gmail.com> 33073 33074 Add a \n for all error strings. 33075 33076 Fix copyright date. 33077 33078 Fix some problems when you define mpfr_prec_t to be an unsigned short. 33079 Now all tests passed when mpfr_prec_t is defined to be an unsigned short 33080 on a 32 bit CPU! 33081 330822005-05-12 Vincent Lefèvre <vincent@vinc17.net> 33083 33084 Detect/avoid potential integer overflows. 33085 330862005-05-12 Patrick Pélissier <patrick.pelissier@gmail.com> 33087 33088 Fix typos. 33089 330902005-05-11 Patrick Pélissier <patrick.pelissier@gmail.com> 33091 33092 Same patch for exp_3. 33093 33094 Fix bug when exp(x) is near the limit of an overflow or an 33095 underflow (mpfr_exp_2 didn't allow an overflow/underflow in its 33096 internal loop). 33097 Add corresponding test case. exp_3 may need similar patchs. 33098 330992005-05-11 Vincent Lefèvre <vincent@vinc17.net> 33100 33101 Update (with reformatting so that the logs are readable on 80 columns). 33102 331032005-05-11 Patrick Pélissier <patrick.pelissier@gmail.com> 33104 33105 Fix bug due to wrong assertion. 33106 331072005-05-10 Patrick Pélissier <patrick.pelissier@gmail.com> 33108 33109 1. Change the prototype of mpfr_can_round to use const. 33110 2. Change the prototype of mpfr_round_raw_2 (remove first argument since it is 33111 useless). 33112 3. Change round_raw_generic to use preprocessor if rather than compiler 33113 to detect if flag == 1 or 0 33114 4. mpfr_round_raw_xxx use const attribute too. 33115 5. Remove mpfr_round_raw_3 since it is unused by MPFR. 33116 6. Add first prototype of MPFR_FAST_COMPUTE_IF_SMALL. 33117 33118 Update. 33119 33120 Fix a bug in the product of 2limbs per 2 limbs. 33121 Add new regression test. 33122 33123 Fix problem with mingw: if the configure detects MS-Windows, it skips the 33124 tests which try to link against GMP within the configure, hoping the Makefile 33125 works. The main problem is that we need libtool inside the configure to link 33126 against GMP. 33127 331282005-05-09 Patrick Pélissier <patrick.pelissier@gmail.com> 33129 33130 Improve random tests. 33131 331322005-05-04 Patrick Pélissier <patrick.pelissier@gmail.com> 33133 33134 Replace initial estimation of K0 from sqrt (p/2) 33135 to sqrt(p/16). It seems to be 30% faster for 5000 bits, and 5% faster 33136 for 50 bits. 33137 331382005-05-04 Vincent Lefèvre <vincent@vinc17.net> 33139 33140 Reformatted the code. 33141 331422005-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33143 33144 fixed dummy init2 followed by set_prec 33145 331462005-05-04 Vincent Lefèvre <vincent@vinc17.net> 33147 33148 Added LIA-2 functions to implement. 33149 331502005-05-04 Patrick Pélissier <patrick.pelissier@gmail.com> 33151 33152 Add functions mpfr_sech, mpfr_coth and mpfr_csch. 33153 33154 init2 alloc what is needed, not 2 (more efficient). 33155 331562005-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33157 33158 improved const_euler and eint 33159 removed dependency from input precision in several functions 33160 fixed two bugs in pow (detection of exact cases) 33161 331622005-05-04 Patrick Pélissier <patrick.pelissier@gmail.com> 33163 33164 Update to reflect the current state. 33165 331662005-05-03 Patrick Pélissier <patrick.pelissier@gmail.com> 33167 33168 Fix computing of `sup` to reflect what is described in algorithms.tex. 33169 33170 Tiny optimization of mpfr_atan. 33171 On opteron with p=53, from 9231 / 18049.89 / 81758 to 9004 / 17522.76 / 78601. 33172 331732005-05-03 Vincent Lefèvre <vincent@vinc17.net> 33174 33175 Fixed a problem in test_small (already done in the 2.1 branch) 33176 when long double = double. 33177 331782005-05-03 Patrick Pélissier <patrick.pelissier@gmail.com> 33179 33180 Improve detection again (use callback). 33181 33182 Improve previous change. 33183 33184 Add detection of function round, rint, ceil, floor and nearbyint at configure 33185 time so that spe206 which defines itself as C99 compliant can build the 33186 trint test. 33187 33188 Update (Move bugs to potential). 33189 331902005-05-03 Vincent Lefèvre <vincent@vinc17.net> 33191 33192 Fixed the mpfr_hypot bug, and re-enabled the test_large_small test. 33193 331942005-05-02 Vincent Lefèvre <vincent@vinc17.net> 33195 33196 Update. 33197 33198 Mention the mpfr_hypot bug. 33199 33200 Added a test showing a bug, enabled when TEST_LARGE_SMALL is defined 33201 (to avoid a freeze with make check). 33202 332032005-05-02 Patrick Pélissier <patrick.pelissier@gmail.com> 33204 33205 Fix bug. 33206 33207 Remove useless function f. 33208 33209 Fix a bug: the test to detect EVEN_rounding was wrong. 33210 33211 Update example of use of mpfr_subnormalize. 33212 33213 mpfr_cmp_str checks for NAN. 33214 Add macro mpfr_cmp0 in mpfr-test. 33215 33216 Undo previous change for tgeneric. 33217 troot uses tgeneric_ui instead. 33218 332192005-05-01 Patrick Pélissier <patrick.pelissier@gmail.com> 33220 33221 Add new functions in reuse test. 33222 332232005-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33224 33225 added efficiency item 33226 33227 added mpfr_eint 33228 332292005-04-29 Patrick Pélissier <patrick.pelissier@gmail.com> 33230 33231 Add something to do :) 33232 332332005-04-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33234 33235 added comment about efficiency of atan 33236 332372005-04-29 Vincent Lefèvre <vincent@vinc17.net> 33238 33239 The FAQ is now distributed with MPFR. Use update-faq to update it 33240 from the MPFR web site. 33241 332422005-04-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33243 33244 commented out argument reduction analysis for arctan (was wrong) 33245 332462005-04-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33247 33248 wrong commit, put revision 1.37 back 33249 33250 wrong commit, put back revision 1.47 33251 33252 added error analysis for Geoff's argument reduction for arctan 33253 332542005-04-27 Vincent Lefèvre <vincent@vinc17.net> 33255 33256 Added a note about mpfr_set_d and mpfr_set_ld. 33257 33258 Define MPFR_VERSION_STRING using the update-version script 33259 (works with any compiler). 33260 332612005-04-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33262 33263 added internal interface 33264 33265 added suggestion from Geoff 33266 33267 added MPFR_VERSION_STRING 33268 332692005-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33270 33271 added new item 33272 33273 improved expm1/log1p for small argument 33274 33275 improved to taken account of case |x| small (reported by Keith Briggs) 33276 332772005-04-25 Vincent Lefèvre <vincent@vinc17.net> 33278 33279 Added a missing "-" and replaced a few "-" by @minus{}. 33280 33281 Added a note for mpfr_cmp functions. 33282 332832005-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33284 33285 fixed bug with tiny number 33286 332872005-04-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33288 33289 removed done item 33290 332912005-04-22 Patrick Pélissier <patrick.pelissier@gmail.com> 33292 33293 Add a macro for mpfr_const_catalan for internal use. 33294 33295 Fix typos. 33296 332972005-04-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33298 33299 removed Root, updated eint* 33300 33301 added sec, csc, cot 33302 33303 proposal for exponential integral definition 33304 33305 added mpfr_root, removed from TODO 33306 33307 added mpfr_root 33308 333092005-04-21 Vincent Lefèvre <vincent@vinc17.net> 33310 33311 Update. 33312 33313 Added the ability to change the control word when compiling tset_ld 33314 with -DWITH_FPU_CONTROL=1 and executing tset_ld with an argument 33315 (not used in the automatical tests yet). 33316 33317 Added test_small (the same as in the 2.1 branch). 33318 33319 Updated a comment and reformatted the code. 33320 333212005-04-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33322 33323 added explanation 33324 333252005-04-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33326 33327 adjusted initial guard digits for const_catalan to avoid failure for prec<=10^4 33328 33329 updated documentation and improved tests for mpfr_const_catalan 33330 33331 removed Catalan's constant (done) 33332 33333 added Catalan's constant 33334 33335 added efficiency items suggested by Geoff Bailey 33336 33337 fixed minor problem (wrong rounding mode for x=0, y<0), thanks Geoff Bailey 33338 333392005-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33340 33341 added one efficiency item 33342 33343 completely rewritten algorithm and error analysis for acosh 33344 (did not match those in acosh.c) 33345 33346 algorithm and error bound did not match those of algorithm.tex!!! 33347 33348 added missing functions for Magma 33349 33350 changed semantics of mpfr_get_str for ndigits=0 33351 333522005-04-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33353 33354 added one item (efficiency) 33355 333562005-04-14 Patrick Pélissier <patrick.pelissier@gmail.com> 33357 33358 Fix atan2 to fit C99 semantic. 33359 33360 Fix typos. 33361 33362 Add TODO. 33363 33364 Add documentation for mpfr_subnormalize. 33365 33366 Fix bugs. 33367 333682005-04-13 Patrick Pélissier <patrick.pelissier@gmail.com> 33369 33370 Apply Guillaume's patch about mpfr_div_ui. 33371 Fix a bug in tsi_op (forget to clean memory). 33372 33373 Add function mpfr_subnormalize (To Test!!!!!) 33374 33375 Add TODO. 33376 33377 Fix wrong comment. 33378 333792005-04-07 Patrick Pélissier <patrick.pelissier@gmail.com> 33380 33381 Reenable tests. 33382 33383 Add documentation about mpfr_atan2. 33384 33385 Improve test suite by adding new random values. 33386 33387 Add random tests (tgeneric + random2). 33388 333892005-04-05 Vincent Lefèvre <vincent@vinc17.net> 33390 33391 Test with -ansi when making a release. 33392 33393 Typo. 33394 333952005-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33396 33397 replaced // comments by /* ... */ 33398 333992005-04-04 Patrick Pélissier <patrick.pelissier@gmail.com> 33400 33401 Add note about mpfr_neg 33402 33403 Add function mpfr_atan2 33404 334052005-03-31 Patrick Pélissier <patrick.pelissier@gmail.com> 33406 33407 Change to add future function mpfr_sqrhigh_n. 33408 33409 Add documentation for mpfr_erfc. 33410 33411 Add items. 33412 33413 Add function mpfr_erfc. 33414 Add a note about auto-checking correctness of MPFR. 33415 334162005-03-30 Vincent Lefèvre <vincent@vinc17.net> 33417 33418 Added a testcase (the one added to the 2.1 branch). 33419 334202005-03-30 Patrick Pélissier <patrick.pelissier@gmail.com> 33421 33422 Use random2 instead of random. 33423 334242005-03-30 Vincent Lefèvre <vincent@vinc17.net> 33425 33426 Weaker conditions for return 0 in mpfr_round_p. 33427 334282005-03-30 Patrick Pélissier <patrick.pelissier@gmail.com> 33429 33430 Add generic test for functions which looks 33431 inexact = MPFR_TOTO (rop, op, INTEGER, RND); 33432 33433 Add ceil(log2(size)) bits to initial precision to avoid 33434 committing in error for huge operands. 33435 334362005-03-30 Vincent Lefèvre <vincent@vinc17.net> 33437 33438 Added a test (corresp. to the one added on 2005-03-25 in tpow_z.c). 33439 334402005-03-29 Vincent Lefèvre <vincent@vinc17.net> 33441 33442 Reformatted code (GNU style, untabify...). 33443 334442005-03-29 Patrick Pélissier <patrick.pelissier@gmail.com> 33445 33446 Tiny update. 33447 Add group functions macros. 33448 33449 Replace test ('p <= i') by assertion ('p > i). 33450 334512005-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33452 33453 fixed bug in pow_ui (and pow_z): missing factor 2 in error bound 33454 fixed bug in gamma of negative integer 33455 334562005-03-25 Patrick Pélissier <patrick.pelissier@gmail.com> 33457 33458 Add info. 33459 33460 Add new internal function for debugging reasons. 33461 33462 Forget to free x and y 33463 33464 Add failed regression test. 33465 33466 Improved version. 33467 33468 Undo previous change (I was wrong). 33469 Add new regression test. 33470 334712005-03-24 Patrick Pélissier <patrick.pelissier@gmail.com> 33472 33473 Fix wrong extimated precision. 33474 It is log2(n+2) ulps so that log2(log2(n+2)) bits! 33475 33476 Add checking. 33477 334782005-03-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33479 33480 added new test 33481 334822005-03-23 Patrick Pélissier <patrick.pelissier@gmail.com> 33483 33484 Remove an signed integer trap overflow (GCC 4 + '-ftrapv'). 33485 33486 Don't use Mulder at n+1 for MPFR_MUL_THRESHOLD+1 33487 33488 Reduce the threshold for AMD64. 33489 334902005-03-22 Patrick Pélissier <patrick.pelissier@gmail.com> 33491 33492 Initial version of Short Division. 33493 33494 Fix bug on HP-UX. 33495 longlong's umul_ppmm seems to be buggy on such a system. 33496 Don't use it under HP-UX. 33497 334982005-03-21 Patrick Pélissier <patrick.pelissier@gmail.com> 33499 33500 Add case where bn == 1 and bn == 2 by using longlong.h. 33501 Modify tuneup to start with prec=2*BITS_PER_MP_LIMB+1 33502 Fix bug in computing the estimated precision when you switch from N limbs to N+1 limbs. 33503 Add regression tests. 33504 335052005-03-19 Vincent Lefèvre <vincent@vinc17.net> 33506 33507 Typo. 33508 335092005-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33510 33511 added one efficiency item 33512 335132005-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33514 33515 added two property-tests 33516 335172005-03-17 Vincent Lefèvre <vincent@vinc17.net> 33518 33519 Fixed a bug for mpfr_atanh(x) with 1 < |x| < 2 (found by Matt Reddick). 33520 335212005-03-14 Patrick Pélissier <patrick.pelissier@gmail.com> 33522 33523 Update 33524 33525 Improve test: compare between mpfr_round_p and mpfr_can_round. 33526 33527 Replace mpfr_can_round (..., GMP_RNDN, GMP_RNDZ, ...) to fast replacement 33528 mpfr_round_p. 33529 33530 Remove a FIXME. 33531 33532 Add new internal function mpfr_round_p which is a fast replacement 33533 to mpfr_can_round (x, y, GMP_RNDN, GMP_RNDZ, ...) 33534 33535 Improve an error message. 33536 335372005-03-10 Patrick Pélissier <patrick.pelissier@gmail.com> 33538 33539 Fix bug: tmp may have changed in mulhigh code. 33540 Restore it before calling mpn_mul. 33541 335422005-03-09 Patrick Pélissier <patrick.pelissier@gmail.com> 33543 33544 Better defaults threshold. 33545 33546 Handle case where Prec(a) ~ estimated prec of mulhigh. 33547 Add one extra limb, and still uses mulhigh. 33548 33549 Fix bug: compute Mulder Threshold from n/2+1 instead of (n+1)/2 33550 33551 Forget ';;' in switch. 33552 33553 Add '-v' for tuneup. 33554 33555 Add assertion. 33556 33557 Improve checking 33558 Add test. Short Mulder product failed for this. 33559 33560 Improve full assertion mode (Check mpfr_mul). 33561 335622005-03-08 Patrick Pélissier <patrick.pelissier@gmail.com> 33563 33564 Move GLIBC detection from mpfr-impl to logging.c 33565 33566 Add log info. 33567 33568 Improve default threshold. 33569 33570 Add Mulder Short product for mpfr_mul. 33571 Update algorithm.tex to describe the estimated error. 33572 33573 Add an assert. 33574 Cosmetic change. 33575 33576 Update default values. 33577 33578 Clean up macro namespace. 33579 33580 Cosmetics change. 33581 335822005-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33583 33584 new function mpfr_get_f 33585 335862005-03-08 Patrick Pélissier <patrick.pelissier@gmail.com> 33587 33588 Fix bug in case of reuse of variable (a,b,a) with Exp(b)=Exp(a)+Prec(b). 33589 Move copy of mantissa after test. 33590 335912005-03-07 Patrick Pélissier <patrick.pelissier@gmail.com> 33592 33593 Add tune for mpfr_mulhigh 33594 Add --with-mulhigh-size option at configure time. 33595 335962005-03-04 Patrick Pélissier <patrick.pelissier@gmail.com> 33597 33598 Fix bug due to wrong estimation of (get_d (x) / LOG2). 33599 TODO: Rexamine the algorithm of mpfr_exp_2! 33600 33601 Transform DEBUG message to LOG message. 33602 33603 Improve it. 33604 33605 Tune mpfr_exp_2 now! 33606 336072005-03-03 Patrick Pélissier <patrick.pelissier@gmail.com> 33608 33609 Fix bugs. 33610 33611 Update it. 33612 New code for mpfr_mul. 33613 336142005-03-02 Patrick Pélissier <patrick.pelissier@gmail.com> 33615 33616 Add new default threshold for different CPU. 33617 33618 Update for tune. 33619 33620 Fix bug in estimated error (See previous ChangeLog). 33621 336222005-02-24 Patrick Pélissier <patrick.pelissier@gmail.com> 33623 33624 Add tune program for MPFR. 33625 Do make tune instead of make. 33626 BUT you need to have configure MPFR with --with-gmp-build=... 33627 (It uses internal libspeed.la of GMP). 33628 Tuning is slow... 33629 33630 Add note. 33631 336322005-02-22 Patrick Pélissier <patrick.pelissier@gmail.com> 33633 33634 Tiny optimization 33635 33636 Update 33637 33638 Add logging. 33639 33640 Reduce InterObject dependency by moving mul_si, div_si and si_div 33641 to the unique function they used. 33642 Improve mul_ui by inlining the rounding. 33643 336442005-02-21 Patrick Pélissier <patrick.pelissier@gmail.com> 33645 33646 Improve test to 1. 33647 336482005-02-21 Vincent Lefèvre <vincent@vinc17.net> 33649 33650 Updated copyright lines. 33651 33652 Code reindented / reformatted. 33653 33654 Fixed a bug for u == 0 and x == +0 introduced in ui_sub.c 1.23, 33655 when 0 was taken into account as a special case: the sign of the 33656 result 0 was incorrect. -> Consider the case u == 0 first. 33657 336582005-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33659 33660 added generic tests in tpow 33661 336622005-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33663 33664 fixed bug (variable used twice for different things) 33665 33666 more changes for interface with NTL 33667 336682005-02-18 Patrick Pélissier <patrick.pelissier@gmail.com> 33669 33670 Likely a test. 33671 33672 Update 33673 336742005-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33675 33676 added interface for NTL 33677 336782005-02-16 Vincent Lefèvre <vincent@vinc17.net> 33679 33680 Update. 33681 33682 Suppress some spaces. 33683 336842005-02-16 Patrick Pélissier <patrick.pelissier@gmail.com> 33685 33686 Reenable underflow tests. 33687 33688 Update 33689 336902005-02-16 Vincent Lefèvre <vincent@vinc17.net> 33691 33692 Removed texinfo.tex, as it can be installed by autoreconf -i. 33693 336942005-02-16 Patrick Pélissier <patrick.pelissier@gmail.com> 33695 33696 Fix LOADLIBES so that it works (it doesn't due to libtool change). But it 33697 still needs to have s static version of MPFR. 33698 336992005-02-16 Vincent Lefèvre <vincent@vinc17.net> 33700 33701 autoreconf -> autoreconf -i 33702 337032005-02-16 Patrick Pélissier <patrick.pelissier@gmail.com> 33704 33705 Fix wrong integer types. 33706 337072005-02-16 Vincent Lefèvre <vincent@vinc17.net> 33708 33709 Spelling mistakes & reformatted code. 33710 337112005-02-15 Vincent Lefèvre <vincent@vinc17.net> 33712 33713 Reformatted code. 33714 337152005-02-15 Patrick Pélissier <patrick.pelissier@gmail.com> 33716 33717 Improve initial prec. 33718 33719 Remove code. 33720 Add special case if t=1. 33721 33722 mpfr_set doesn't produce an EVEN inexact flag. 33723 Fix this. 33724 33725 USe of mpfr_nexttozero. 33726 33727 Fix bug: use x instead of xf in LOG. 33728 33729 Log input and output of functions. 33730 33731 Fix bug of overflow in tan. 33732 33733 Use of MPFR_LOG_FUNC. 33734 33735 Do not print final log message if there was no call. 33736 33737 Add ZivLoop for sign 33738 337392005-02-14 Patrick Pélissier <patrick.pelissier@gmail.com> 33740 33741 Fix bug: during the display of a logged var, logging is turn off. 33742 33743 Add MPFR_LOG_FUNC 33744 Use mpfr_cos as testing example. 33745 33746 Add ZivLoop controller for constantes. 33747 Augment exponent range in the cache. 33748 Remove it in const_pi. 33749 33750 Add generic ZivLoop controller. 33751 337522005-02-14 Laurent Fousse <laurent@komite.net> 33753 33754 Document mpfr_sum returned int value. 33755 337562005-02-14 Patrick Pélissier <patrick.pelissier@gmail.com> 33757 33758 Clean up code. 33759 Add generic ZivLoop controller. 33760 337612005-02-14 Laurent Fousse <laurent@komite.net> 33762 33763 Consider return value's precision for rounding in mpfr_sum. 33764 337652005-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33766 33767 removed garbage 33768 337692005-02-14 Patrick Pélissier <patrick.pelissier@gmail.com> 33770 33771 Clean up 33772 Add ZivLoop 33773 33774 Remove malloc/free. 33775 Use of MPFR_INT_CEIL_LOG2 33776 Add ZivLoop controller. 33777 33778 Clean up code. 33779 Fix bug with Exponent range. 33780 Add ZivLoop controller. 33781 33782 Cleanup code. 33783 337842005-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33785 33786 further efficiency improvement (avoid mpz_init/mpz_clear) 33787 337882005-02-14 Patrick Pélissier <patrick.pelissier@gmail.com> 33789 33790 Add ZivLoop controller. 33791 Clean up code. 33792 Optimize it by removing the # of used vars. 33793 33794 Add ZivLoop controller. 33795 337962005-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33797 33798 new faster algorithm for log(2) 33799 338002005-02-11 Patrick Pélissier <patrick.pelissier@gmail.com> 33801 33802 Remove detection of C++ and Fortran due to libtool. 33803 ---- 33804 Note (VL, 2010-02-08): this removal by an always false test was working 33805 with libtool 1.5.26, but doesn't work with libtool 2.2 to 2.2.6b (used 33806 by the MPFR 2.4.{0,1,2} tarballs). 33807 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=568520 33808 33809 Clean up configure (simpler). 33810 Still a bug with CXXCPP to solve. 33811 33812 Clean up const_log2 code. 33813 338142005-02-10 Patrick Pélissier <patrick.pelissier@gmail.com> 33815 33816 Add log for other functions. 33817 Add ZivLoop too. 33818 Cleanup exp3. 33819 338202005-02-09 Patrick Pélissier <patrick.pelissier@gmail.com> 33821 33822 Update for ICC (disable shared since it doesn't work). 33823 33824 The previous fixs don't work. New one which works but is VERY ugly. 33825 33826 Fix again to avoid fail on laurent5... 33827 33828 Set CXXCPP to "g++ -E" to avoid detection (which may fail on some systems). 33829 33830 Reduce the tested compiler for C++ and Fortran to the minimum. 33831 33832 Update GMP detection to be much more libtool compatible. 33833 As a consequence some tests using AC_RUN_IFELSE may fail due to ugly things 33834 like LD_LIBRARY_PATH no set or wrong selection of libgmp. 33835 So they just produce a warning, not a fatal error. 33836 TODO: Check if we can avoid those problems... 33837 338382005-02-08 Patrick Pélissier <patrick.pelissier@gmail.com> 33839 33840 Remove automake and libtool files. 33841 Use `automake --add-missing --copy -i` to generate them. 33842 33843 Add support for ansi2knr 33844 33845 Add support for Shared Library in MPFR (both Unix and Windows) by using libtool. 33846 Improve configure (remove unused macros, make dist produce .zip and .bz2) 33847 Update update-version to modify configure.in too. 33848 33849 Update NEWS. 33850 338512005-02-04 Vincent Lefèvre <vincent@vinc17.net> 33852 33853 Update. 33854 338552005-02-04 Patrick Pélissier <patrick.pelissier@gmail.com> 33856 33857 Add forgotten functions to reuse test. 33858 33859 Improve reuse tests (Include 1, -1, 1/2, 2, PI and PI/2 now). 33860 33861 Fix bug of atan(-1) (wrong sign). 33862 338632005-02-03 Patrick Pélissier <patrick.pelissier@gmail.com> 33864 33865 Remove unused option --disable-cache. 33866 33867 Add option "thread-safe" to configure. 33868 Limited to use with GCC and ICC (using extension __thread). 33869 33870 Add description of added functions. 33871 33872 mpfr.h doesn't export anymore any globals. 33873 It doesn't define MPFR_FLAGS too. 33874 33875 Change user interface for mpfr_const_pi, mpfr_const_log2 and 33876 mpfr_const_euler. No more access to the cache itself. 33877 Create dummy functions which call the cache, and rename old 33878 functions to "_internal". 33879 Internally, it doesn't change at all (You still call directly 33880 the cache instead of the dummy function which calls the cache). 33881 33882 Add functions mpfr_set_overflow, mpfr_set_underflow, mpfr_set_erangeflag, 33883 mpfr_set_inexflag, mpfr_set_nanflag 33884 33885 Rename internal functions mpfr_set_overflow in mpfr_overflow and 33886 mpfr_set_underflow in mpfr_underflow so that we can add new functions 33887 mpfr_set_underflow and mpfr_set_overflow (which set the global flags). 33888 33889 Add support for logging. 33890 Add support for ZivLoop. 33891 Improve efficiency if prec(op) >> prec(rop), and rop ~= 0 33892 33893 Fix wrong place for MPFR_LOG_BEGIN. 33894 33895 Rename MPFR_LOG_BADCASE in MPFR_LOG_ZIV 33896 33897 Reduce the size of some lines (more than 80 chars). 33898 338992005-02-02 Patrick Pélissier <patrick.pelissier@gmail.com> 33900 33901 Fix again. My previous fix was incorrect. 33902 33903 Fix wrong order of include system files. 33904 (printf.h is not available everywhere). 33905 339062005-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33907 33908 inexact flag was inexact :-) 33909 339102005-02-02 Patrick Pélissier <patrick.pelissier@gmail.com> 33911 33912 Move mpfr_nexttozero and mpfr_nexttoinf from static to mpfr-impl. 33913 Use them in sub1 and sin. 33914 33915 Add forgotten logging file. 33916 Add description of new macros in README.dev 33917 33918 Add support for ZivLoop controller and logging. 33919 33920 Add experimental logging feature. 33921 Add ZivLoop controller. 33922 33923 Forget that mpf doesn't have mpf_free_str. 33924 Fix this. 33925 33926 Fix bug of sub1 if dest=src2 and src1 >> src2 33927 => Fix problem of mpfr_sin 33928 339292005-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33930 33931 added two tests 33932 339332005-02-01 Patrick Pélissier <patrick.pelissier@gmail.com> 33934 33935 Now MPFR tries to get GMP's CC and CFLAGS from its build directory. 33936 33937 Add AC_COPYRIGHT 33938 Clean up AC_ARG_ENABLE handling 33939 Add `--enable-logging` option. 33940 339412005-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33942 33943 added item 33944 339452005-01-31 Patrick Pélissier <patrick.pelissier@gmail.com> 33946 33947 Fix a wrong assertion when double == long double. 33948 33949 Add loop counter 33950 Check if the result is 0 (Due to new algorithm, it may be 0) 33951 and in that case, increase a lot the precision. 33952 339532005-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33954 33955 changed algorithm for mpfr_sin (to get inexact flag) 33956 339572005-01-29 Vincent Lefèvre <vincent@vinc17.net> 33958 33959 Fixed a sign bug in mpfr_exp (found by Mark J Watkins). 33960 339612005-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33962 33963 solved efficiency problem in mpfr_sin_sign for x near Pi 33964 339652005-01-28 Vincent Lefèvre <vincent@vinc17.net> 33966 33967 Removed tests/tdump.c (was no longer used and mpfr_dump is already 33968 tested in toutimpl.c). 33969 33970 Updated copyright line. 33971 339722005-01-28 Patrick Pélissier <patrick.pelissier@gmail.com> 33973 33974 Clean up code (due to mix with Paul changes). 33975 33976 Improve inexact code since sin & cos can't be exact if x != 0 33977 339782005-01-28 Vincent Lefèvre <vincent@vinc17.net> 33979 33980 Removed a useless test in macro MPFR_UNSIGNED_MINUS_MODULO. 33981 339822005-01-28 Patrick Pélissier <patrick.pelissier@gmail.com> 33983 33984 Much faster worst case (ie result near 0 or 1). 33985 339862005-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 33987 33988 speed-up special case where approximation is 1 or -1 33989 339902005-01-28 Vincent Lefèvre <vincent@vinc17.net> 33991 33992 Updated comments about the rounding modes. 33993 339942005-01-28 Patrick Pélissier <patrick.pelissier@gmail.com> 33995 33996 Fix bug and optimize code. 33997 33998 FIx a warning (Wrong proto between declaration and implementation : 33999 forget some const). 34000 340012005-01-28 Vincent Lefèvre <vincent@vinc17.net> 34002 34003 Updated copyright line. 34004 34005 Updated copyright lines. 34006 340072005-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34008 34009 fixed efficiency problem in case of cos(Pi) 34010 340112005-01-28 Patrick Pélissier <patrick.pelissier@gmail.com> 34012 34013 Fix bug if dest==src. 34014 Transform some MPFR_ASSERTN to MPFR_ASSERTD. 34015 340162005-01-27 Patrick Pélissier <patrick.pelissier@gmail.com> 34017 34018 Fix a buffer overflow. 34019 34020 New version of mpfr_set_ld and mpfr_get_ld for IEEE Extended Little Endian. 34021 (Due to problem on x86 with extended precision). 34022 340232005-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34024 34025 partially fixed memory leak 34026 34027 test for huge cancellation was misplaced 34028 34029 fixed memory leak 34030 34031 fixed inefficiency problem for x near from Pi 34032 34033 casts to allow compilation with g++ 34034 34035 added missing cast 34036 34037 added missing casts 34038 340392005-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34040 34041 fixed bug (overlap in mpn_divrem) 34042 340432005-01-24 Vincent Lefèvre <vincent@vinc17.net> 34044 34045 Removed tests/Makefile.in from CVS. 34046 340472005-01-24 Patrick Pélissier <patrick.pelissier@gmail.com> 34048 34049 Fix bug reported by Eric Buchlin by using new function 34050 mpfr_pow_z. 34051 34052 Add new function mpfr_pow_z and its test file. 34053 34054 Fix overflows problems. 34055 Clean up overflow handling. 34056 Maybe some bugs remain... 34057 340582005-01-24 Vincent Lefèvre <vincent@vinc17.net> 34059 34060 Update. 34061 340622005-01-24 Patrick Pélissier <patrick.pelissier@gmail.com> 34063 34064 Add an explicit reference to mpfr_dump so that 34065 you can use this function inside the tests with GDB, even if 34066 you don't use it in the tests. 34067 340682005-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34069 34070 added check before mpz_get_si() call 34071 340722005-01-24 Vincent Lefèvre <vincent@vinc17.net> 34073 34074 Update. 34075 34076 Corrections on the typography. 34077 34078 Corrected English usage. 34079 34080 Typos. 34081 340822005-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34083 34084 added LOADLIBES=... 34085 340862005-01-21 Vincent Lefèvre <vincent@vinc17.net> 34087 34088 Updated Copyright line. 34089 340902005-01-20 Patrick Pélissier <patrick.pelissier@gmail.com> 34091 34092 Fix again this previous patch! 34093 340942005-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34095 34096 fixed problems in get_str for huge exponent 34097 340982005-01-20 Patrick Pélissier <patrick.pelissier@gmail.com> 34099 34100 Update longlong from GMP 4.1.4 (problem with opteron). 34101 341022005-01-18 Patrick Pélissier <patrick.pelissier@gmail.com> 34103 34104 Fix bug in case n==0 or n==1 (Reported and fixed by Laurent Fousse). 34105 341062005-01-14 Patrick Pélissier <patrick.pelissier@gmail.com> 34107 34108 Add comments 34109 Fix bug in my patch (Need tests). 34110 34111 Optimize mpfr_atan_aux by removing all power of 2 in the sum to 34112 reduce the size of the multiplication, normalize the input to extract 34113 as many zeros as possible and add a special case if the input is 1 34114 (after normalisation). But it doesn't optimize too much... 34115 I need to invertigate a few more too understand what is still costly. 34116 It seems that mpz_mul is the most called function. 34117 34118 Improve and fix tanh for big floats. 34119 34120 Fix bug in some corner case (Just hope it doesn't add new bugs). 34121 It should be much faster in these cases too. 34122 34123 Remove warning 34124 34125 Tiny update 34126 34127 Fix bug (Forget a debug line). 34128 341292005-01-13 Patrick Pélissier <patrick.pelissier@gmail.com> 34130 34131 Fix overflow bug 34132 Optimize code 34133 34134 Fix bug in mpn_sub_nc in case the compiler optimize too much. 34135 341362005-01-12 Patrick Pélissier <patrick.pelissier@gmail.com> 34137 34138 Add forgotten 2005 copyright line. 34139 34140 Fix problem of `mpn_sub_nc' which may or may not be defined in libgmp.a 34141 (Add a test in the configure and a new macro MPFR_HAVE_MPN_SUB_NC) 34142 Add MPFR_LOG2_BIT_PER_MP_LIMB macro 34143 34144 Massive optimization of mpfr_atan (20x faster than 2.1.0 at 53 bits!) 34145 Minor optimization of mpfr_acos 34146 341472005-01-11 Patrick Pélissier <patrick.pelissier@gmail.com> 34148 34149 Fix typo 34150 34151 Reduce size of code 34152 Optimize a few too. 34153 34154 Forget 2005 ! 34155 34156 Improve and fix detection of NAN and GCC bug. 34157 341582005-01-04 Patrick Pélissier <patrick.pelissier@gmail.com> 34159 34160 new version (completely rewritten) by Paul Zimmermann. 34161 34162 Fix forgotten '2005' Line. 34163 34164 Fix wrong inexact value (regression). 34165 FIXME: It seems that adding MPFR_GET_EXP (xp) bits is too much 34166 (since previously it always add 0, but the results were quite 34167 always exact - this bug was only discovered under rare case). 34168 341692005-01-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34170 34171 added item (mpfr_printf) 34172 341732005-01-04 Patrick Pélissier <patrick.pelissier@gmail.com> 34174 34175 Optimize mpfr_exp2 by inlining some code, and by avoiding using 34176 mpz_sizeinbase. 34177 34178 Remove unused code. 34179 Remove _MPFR_PROTO for static functions. 34180 Other cosmetic change. 34181 34182 Remove _MPFR_PROTO for static functions. 34183 34184 Remove unused code. 34185 34186 Optimize mpfr_get_d. 34187 34188 Add a new configuration to check before releasing MPFR. 34189 34190 Fix problem of tab with ncurses. 34191 34192 Likely some tests 34193 34194 Fix bug if not gmp-impl.h (mpn_sub_nc is internal). 34195 Move MPFR_SET_EXP after checking the exponent range. 34196 Minor change in the way to return the ternary value. 34197 341982005-01-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34199 34200 changed tab[] into *tab (and removed 'tab' in mpfr.h) 34201 342022004-12-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34203 34204 new version (completely rewritten) 34205 34206 improved coverage (and fixed bug) 34207 342082004-12-21 Patrick Pélissier <patrick.pelissier@gmail.com> 34209 34210 Fixed errors reported by Nelson H. F. Beebe 34211 (forget to include sys/fpu.h if defined and math.h if std=c99). 34212 342132004-12-20 Patrick Pélissier <patrick.pelissier@gmail.com> 34214 34215 Fix wrong integer type and a test. 34216 34217 Add some assertion. 34218 34219 Unlikely one test. 34220 Fix wrong integer type 34221 34222 Reindent the code. 34223 342242004-12-17 Patrick Pélissier <patrick.pelissier@gmail.com> 34225 34226 Optimize mpfr_tan 34227 34228 Optimize the computing of the sign of sinus if GET_EXP(x) < 0 34229 34230 Optimize mpfr_cos. 34231 From 3363 / 21663.99 / 79727 to 3139 / 18920.58 / 69624 (opteron). 34232 34233 Fix precision used to test long double. 34234 Now it is sizeof(long_double)*CHAR_BIT instead of fixed 113. 34235 34236 FIx wrong integer types 34237 Add an assertion. 34238 34239 Likely / Unlikely some code. 34240 34241 Fix problem with long double with ICC (Wrong x86 processor flag). 34242 342432004-12-16 Patrick Pélissier <patrick.pelissier@gmail.com> 34244 34245 Fix wrong integer types. 34246 34247 Fix bug. 34248 34249 Optimize mpfr_acos by choosing a better initial precision. 34250 34251 Optimize mpfr_asin by improving the choice of the initial precision. 34252 34253 Optimize mpfr_atan. 34254 342552004-12-15 Patrick Pélissier <patrick.pelissier@gmail.com> 34256 34257 Fix problem with GCC 4.0 20041212. 34258 34259 Remove thread attribute until I found a good way to use it. 34260 34261 Test 34262 34263 Add 'const' attribute to table. 34264 34265 Remove unused file. 34266 34267 New way of detecting GMP libraray, which should be more portable. 34268 342692004-12-14 Patrick Pélissier <patrick.pelissier@gmail.com> 34270 34271 Remove useless assembly code. 34272 34273 Add "MPFR_USE_NO_MACRO" user macro: it allows the user to link 34274 directly with MPFR functions rather than using Macros to access 34275 them. It doesn't define MPFR variable inside mpfr.h too. 34276 Fix set.c and cmp.c in consequences. 34277 Fix mpf2mpfr.h to use mpfr_get_default_rounding_mode () if needed. 34278 342792004-12-13 Patrick Pélissier <patrick.pelissier@gmail.com> 34280 34281 Improved prototype. 34282 34283 Fix bug of overflow (I hope). 34284 34285 Update mpfr_set_q overflow problem. 34286 34287 Fix wrong integer types. 34288 342892004-12-10 Patrick Pélissier <patrick.pelissier@gmail.com> 34290 34291 Optimize by increasing with BITS_PER_MP_LIMB instead of log2(prec) 34292 34293 Clean up code (Fix integer types + rewrite some code). 34294 Optimize the code by reducing the number of used variables inside the loop. 34295 34296 Replace mpfr_neg to MPFR_CHANGE_SIGN. 34297 34298 Cosmetic changes. 34299 34300 Clean the code. 34301 Avoid mixing integer types. 34302 Fix bug of overflow if Pi is in the range but not Pi/2. 34303 34304 Clean up the code (Removing useless variables and avoid mixing wrong integer types). 34305 Optimize the code by improving memory allocation scheme and by incrementating by 34306 BITS_PER_MP_LIMB in case of an error instead of MPFR_INT_CEIL_LOG2 (prec). 34307 Fix an overflow bug for X=+/-1 (If PI is inside the exponent range, but not PI/2). 34308 343092004-12-09 Patrick Pélissier <patrick.pelissier@gmail.com> 34310 34311 Simplify MPFR_SIGN by removing unnecessary ( ). 34312 34313 Add support for new attribute sentinel in incoming GCC 4.0 34314 34315 Optimize initial precision in case of EXP(x) < 0. 34316 34317 Optimize mpfr_set4. 34318 Inline rounding in mpfr_set4 and mpfr_cache 34319 mpfr_set4 doesn't return MPFR_EVEN_INEX (It was undocumented before). 34320 Fix problems with tests (Avoid mixing MPFR_EVEN_INEX and 1). 34321 Add MPFR_RNDRAW_EVEN for rounding with MPFR_EVEN_INEX inexact support 34322 343232004-12-08 Patrick Pélissier <patrick.pelissier@gmail.com> 34324 34325 Optimize mpfr_mul by inlining and rewriting the rounding. 34326 It seems that GCC option `-frename-registers` for mpfr_mul / Athlon XP 34327 improves its performance (But it decreases it on Pentium4)... 34328 343292004-12-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34330 34331 first try to implement Mulders' algorithm 34332 343332004-11-29 Patrick Pélissier <patrick.pelissier@gmail.com> 34334 34335 Update TODO. 34336 343372004-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34338 34339 added new tests for corner cases 34340 34341 added algo for pi 34342 343432004-11-25 Patrick Pélissier <patrick.pelissier@gmail.com> 34344 34345 Change initial term if exp(a)<0. 34346 34347 Simplify the inner loop. 34348 34349 Change initial precision if EXP(op) < 0. 34350 343512004-11-23 Patrick Pélissier <patrick.pelissier@gmail.com> 34352 34353 Optimize code and rewrite the rounding part. 34354 FIXME: It seems that the previous rounding code was buggy. Still I am not sure. 34355 34356 Improve tests. 34357 343582004-11-19 Patrick Pélissier <patrick.pelissier@gmail.com> 34359 34360 Improve the initial value of prec: 10% improvement (?) on average. 34361 34362 Improve coverage test. 34363 34364 Fix bug for mpfr_ui_pow_ui (Wrong inexact flag). 34365 34366 Improve coverage tests. 34367 34368 Fix typos in INSTALL. 34369 Sort README.dev, and add a new section about How to write a MPFR function. 34370 Add a link to README.dev in mpfr-impl.h. 34371 34372 Fix a bug on some compilators: 34373 First MPFR_SAVE_EXPO_DECL, then TMP_DECL. 34374 343752004-11-18 Patrick Pélissier <patrick.pelissier@gmail.com> 34376 34377 Fix an overflow bug. 34378 34379 Fix bug with inexact flag. 34380 FIXME: Maybe still a bug with inexact flag if overflow in mpfr_mul_2exp ? 34381 34382 Remove mpfr_save_emin_emax and mpfr_restore_emin_emax 34383 from MPFR library since they are useless. 34384 34385 Forget to remove rndraw.c test. 34386 34387 Replace use of mpfr_save_emin_emax () / mpfr_restore_emin_emax() 34388 by MPFR_SAVE_EXPO macros (DECL, MARK and FREE) which are faster 34389 and thread safe. 34390 34391 Enable fast computing. 34392 343932004-11-18 Vincent Lefèvre <vincent@vinc17.net> 34394 34395 Fix: GMP -> MPFR Copying Conditions (noted by Patrick). 34396 343972004-11-18 Patrick Pélissier <patrick.pelissier@gmail.com> 34398 34399 Reorder the file and put sections to make it cleaner and more readable. 34400 34401 Reduce number of used variables. 34402 Optimize code and clean it. 34403 344042004-11-18 Vincent Lefèvre <vincent@vinc17.net> 34405 34406 In HTML, suppress the non-existing link to GMP. 34407 344082004-11-18 Patrick Pélissier <patrick.pelissier@gmail.com> 34409 34410 Add a prototype of own TMP_ALLOC. Don't know if it is a good idea. 34411 To enable it, just build MPFR with MPFR_USE_OWN_TMP_ALLOC. 34412 344132004-11-17 Patrick Pélissier <patrick.pelissier@gmail.com> 34414 34415 Fix bug with TMP_MARK. 34416 344172004-11-16 Patrick Pélissier <patrick.pelissier@gmail.com> 34418 34419 Optimize the code: 34420 + Special case for n == 2 34421 + The first squaring is done using the original input. 34422 34423 Add new assertion to check. 34424 34425 Likely / Unlikely some tests. 34426 344272004-11-15 Patrick Pélissier <patrick.pelissier@gmail.com> 34428 34429 Add unused code (Still needs a proof). 34430 34431 Add macro version for small functions: 34432 mpfr_get_prec, mpfr_get_exp, mpfr_get_default_rounding_mode, 34433 mpfr_get_default_prec and mpfr_set_ui 34434 34435 Refix another bug (The same). 34436 34437 Fix a bug (Use __gmpfr_ceil_log2 instead of MPFR_INT_CEIL_LOG2). 34438 344392004-11-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34440 34441 added algorithm for mpfr_sqrt 34442 improved algorithm for mpfr_div 34443 34444 use MPFR_SET_EXP/MPFR_GET_EXP instead of MPFR_EXP(r)++ 34445 344462004-11-12 Vincent Lefèvre <vincent@vinc17.net> 34447 34448 Bug fix: delayed all the initializations after the singular test. 34449 344502004-11-11 Vincent Lefèvre <vincent@vinc17.net> 34451 34452 Untabified the source. 34453 34454 The test MPFR_GET_EXP(u) != MPFR_EMAX_MAX is no longer necessary 34455 since we decided to lower MPFR_EMAX_MAX to avoid such tests. 34456 344572004-11-10 Patrick Pélissier <patrick.pelissier@gmail.com> 34458 34459 Remove use of CNST_LIMB and TMP_ALLOC_LIMB which are GMP internal. 34460 Add MPFR_LIMB_ZERO. 34461 344622004-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34463 34464 new simpler and faster code 34465 344662004-11-10 Patrick Pélissier <patrick.pelissier@gmail.com> 34467 34468 Replace __gmpfr_ceil_log2 by MPFR_INT_CEIL_LOG2 when possible. 34469 34470 Add __extension__ to avoid warning useless in GCC. 34471 344722004-11-03 Vincent Lefèvre <vincent@vinc17.net> 34473 34474 Update. 34475 344762004-11-03 Patrick Pélissier <patrick.pelissier@gmail.com> 34477 34478 Fix wrong Visual C++ code. 34479 344802004-11-02 Vincent Lefèvre <vincent@vinc17.net> 34481 34482 Code checking for GMP library wasn't working (always returning "yes"?). 34483 344842004-10-27 Vincent Lefèvre <vincent@vinc17.net> 34485 34486 Updated copyright line. 34487 34488 Added a bug and updated copyright line. 34489 34490 Update. 34491 34492 Removed the definitions of DBL_POS_INF/DBL_NEG_INF/DBL_NAN for 34493 Visual C++ as they were incorrect. Modified DOUBLE_ISINF(x) so 34494 that infinities are no longer used (this should fix a part of 34495 the problem for Visual C++). If IEEE 754 is not supported, one 34496 should probably use the standard INFINITY macro instead of 34497 (1.0/0.0), since (1.0/0.0) is specific to IEEE 754. 34498 34499 Applied patch by Steve M. Robbins for non-IRIX MIPS systems 34500 (originally for MPFR 2.0.3). 34501 345022004-10-26 Vincent Lefèvre <vincent@vinc17.net> 34503 34504 Reformatted the code. 34505 34506 Replaced mpfr_set_emin/emax by set_emin/emax in tests to check 34507 the return value; defined set_emin/emax in "tests/tests.c". 34508 Fix: added missing #include <string.h> in "tests/tests.c". 34509 Removed variable names in prototypes in "mpfr-test.h". 34510 345112004-10-22 Vincent Lefèvre <vincent@vinc17.net> 34512 34513 Reformatted the code -> GNU style. 34514 34515 Update. 34516 345172004-10-22 Patrick Pélissier <patrick.pelissier@gmail.com> 34518 34519 Declaration of "tests_rand_start" and "tests_rand_end" with the same storage class specifier 34520 in tests.c (static missing line 65 and 109). 34521 345222004-10-21 Vincent Lefèvre <vincent@vinc17.net> 34523 34524 Bug fixed: cast to unsigned char instead of int for isspace (no, 34525 these are not "psycho" systems, just systems with signed chars). 34526 Untabified the source. 34527 345282004-10-20 Patrick Pélissier <patrick.pelissier@gmail.com> 34529 34530 Improve ICC CFLAGS by removins meaningless warnings. 34531 34532 Remove some warnings on some "psycho" systems. 34533 34534 Update the chapter "Make a release". 34535 34536 Fix bug when you build MPFR outside source directory. 34537 Add function src_fopen to open a file in the source directory, which 34538 may be different from the current directory. 34539 34540 Fix a typo. 34541 345422004-10-19 Vincent Lefèvre <vincent@vinc17.net> 34543 34544 Another correction (English). 34545 34546 Minor correction. 34547 345482004-10-19 Patrick Pélissier <patrick.pelissier@gmail.com> 34549 34550 Update NEWS to reflect the change in mpfr_set_str. 34551 34552 Update mpfr_set_str to be much more like strtofr. 34553 Update the documentation to reflect the changes. 34554 345552004-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34556 34557 changed contributors section 34558 345592004-10-19 Patrick Pélissier <patrick.pelissier@gmail.com> 34560 34561 Add a line about binary compatibility. 34562 345632004-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34564 34565 changed "contributors" section 34566 34567 changed rights (remove executable permission) 34568 345692004-10-18 Vincent Lefèvre <vincent@vinc17.net> 34570 34571 Misc corrections: 34572 + spelling mistakes 34573 + consistency: in direction @var{rnd} -> in the direction @var{rnd} 34574 + @code{NULL} pointer -> null pointer (as in the C standard) 34575 + in the example for mpfr_inits2 / mpfr_clears: NULL -> (void *) 0 34576 as NULL isn't necessarily a pointer. 34577 345782004-10-18 Patrick Pélissier <patrick.pelissier@gmail.com> 34579 34580 Update 34581 34582 Change "unsigned int" to "int" for base in proto of strtofr. 34583 Change set_str to use strtofr (Fix a bug too). 34584 Limit base to 36 in strtofr (since get_str is limited to 36). 34585 Update documentation to reflect the changes. 34586 mpfr_get_d1 is moved to section internal in the documentation. 34587 Update the tests. 34588 34589 Hard code NAN, +INF and -INF values for MVC. 34590 34591 Fix problem on systems where "/dev/null" doesn't exist. 34592 345932004-10-16 Vincent Lefèvre <vincent@vinc17.net> 34594 34595 Misc corrections. 34596 345972004-10-15 Vincent Lefèvre <vincent@vinc17.net> 34598 34599 Updated the section "To make a release". 34600 34601 Updated the version on the trunk. 34602 34603 Update. 34604 34605 Update for 2.1.0. 34606 346072004-10-13 Vincent Lefèvre <vincent@vinc17.net> 34608 34609 Added a comment about autoreconf and a bug in Debian (now fixed). 34610 346112004-10-12 Patrick Pélissier <patrick.pelissier@gmail.com> 34612 34613 Add a note about Windows 64. 34614 346152004-10-11 Patrick Pélissier <patrick.pelissier@gmail.com> 34616 34617 Update documentation. 34618 34619 Improve Windows installation. 34620 34621 Add a line about "near" and "far". 34622 346232004-10-07 Patrick Pélissier <patrick.pelissier@gmail.com> 34624 34625 Add support for ".lib" since it seems to work. 34626 Display GMP version inside the configure. 34627 346282004-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34629 34630 added one new test 34631 346322004-10-04 Vincent Lefèvre <vincent@vinc17.net> 34633 34634 Added worst cases. 34635 346362004-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34637 34638 added new tests (worst-case) 34639 346402004-10-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34641 34642 added new worst-cases (directed rounding) 34643 34644 added new function to implement (dilog) 34645 346462004-09-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34647 34648 fixed bug in get_str_aux when one extra digit 34649 346502004-09-30 Vincent Lefèvre <vincent@vinc17.net> 34651 34652 Added functions mpfr_rint_round, mpfr_rint_trunc, mpfr_rint_ceil, 34653 mpfr_rint_floor. 34654 346552004-09-30 Patrick Pélissier <patrick.pelissier@gmail.com> 34656 34657 Add new test (One failed). 34658 346592004-09-30 Vincent Lefèvre <vincent@vinc17.net> 34660 34661 The cast to uintmax_t wasn't really useful, so I removed it. 34662 Added a comment. 34663 34664 The real fix for sizeof(intmax_t) == sizeof(mp_limb_t). 34665 346662004-09-30 Patrick Pélissier <patrick.pelissier@gmail.com> 34667 34668 Fix a bug if sizeof(intmax_t) == sizeof(mp_limb_t) 34669 346702004-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34671 34672 added worst-case 34673 346742004-09-29 Patrick Pélissier <patrick.pelissier@gmail.com> 34675 34676 cmp(x,y) if x=NAN or y=NAN returns 0 and erange flag. 34677 34678 Update documentation and NEWS to reflect new functions 34679 and functionality. 34680 34681 Improve assertion. 34682 34683 Add mpfr_clear_erangeflag and mpfr_erangeflag_p. 34684 Add test for theses two functions. 34685 mpfr_get_[s/u][i/j] have a deterministic behavior in case of OVERFLOW. 34686 (Return the MINIMUM or the MAXIMUM in the current type, and set 34687 ERANGE_flag). 34688 34689 Add mpfr_uintmax_p and mpfr_intmax_p. 34690 34691 Update INSTALL about C++ 34692 Update TODO and VERSION. 34693 34694 Move mpfr_inits from mpfr-impl to mpfr.h. 34695 Add doc too. 34696 346972004-09-28 Patrick Pélissier <patrick.pelissier@gmail.com> 34698 34699 Reindent the sources (again). 34700 34701 Fix how to detect overflow so that it can be build with GCC -ftrapv 34702 option without any bugs (In the previous code, the overflow was 34703 detected afterwards, whereas, now, it is detected before). 34704 Fix also another real problem of overflow (Addition of two signed integers). 34705 34706 Rename this variable again. 34707 34708 Replace variable 'near' to 'the_real_near' since MSVC incorrectly 34709 recognize "far" and "near" as obsolete keywords (100% incorrect, and 34710 clearly MSVC fault but it doesn't cost many things to change the name). 34711 347122004-09-27 Patrick Pélissier <patrick.pelissier@gmail.com> 34713 34714 Fix typo in the documentation about get_ functions. 34715 34716 Retab the sources. 34717 347182004-09-27 Vincent Lefèvre <vincent@vinc17.net> 34719 34720 Added mpfr_get_uj and mpfr_get_sj in the changes 2.0.3 -> 2.1.0. 34721 34722 Added an item about the future MPFR_FLAGS_ERANGE flag. 34723 34724 New functions mpfr_get_sj and mpfr_get_uj, with tests. 34725 347262004-09-27 Patrick Pélissier <patrick.pelissier@gmail.com> 34727 34728 Remove MPFR_NEED_LONGLONG_H macro. 34729 347302004-09-26 Vincent Lefèvre <vincent@vinc17.net> 34731 34732 Added a cast to avoid an integer overflow. 34733 347342004-09-24 Vincent Lefèvre <vincent@vinc17.net> 34735 34736 Fixed integer overflow. 34737 34738 Fixed bugs (like those in mpfr_get_ui). 34739 34740 The standard autoreconf script should now be used instead of prepare. 34741 347422004-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34743 34744 forgot to check for 0 34745 34746 now use mpfr_rint() 34747 347482004-09-24 Patrick Pélissier <patrick.pelissier@gmail.com> 34749 34750 Update doc of mpfr_get_str (Minimum space is 7). 34751 347522004-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34753 34754 fixed double-rounding bug in get_ui 34755 347562004-09-23 Patrick Pélissier <patrick.pelissier@gmail.com> 34757 34758 Prevent from multiple inclusion. 34759 mpf_init inits to 0 rather than NAN. 34760 34761 Fix some tiny problems. 34762 347632004-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34764 34765 added item on rounding to odd 34766 347672004-09-21 Patrick Pélissier <patrick.pelissier@gmail.com> 34768 34769 Fix a bug in FreeBsd 5.20 / Alpha / Gcc 3.3.3. 34770 Not a MPFR bug, but add some code to avoid it. 34771 Reference: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=72024 34772 34773 Add a new test and clarify a comment. 34774 34775 Update Assertion for pow2. 34776 347772004-09-20 Patrick Pélissier <patrick.pelissier@gmail.com> 34778 34779 Update NEWS. 34780 34781 Update TODO due to new function mpfr_strtofr 34782 34783 Add ICC detection && support. 34784 Remove some potential warnings in the test files. 34785 34786 Add mpfr_strtofr function. 34787 Add mpfr_strtofr test file. 34788 Add mpfr_strtofr documentation. 34789 34790 Improve GMP.h vs libgmp.a version checking. 34791 347922004-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34793 34794 added one entry (new function 1/sqrt(x)) 34795 347962004-09-17 Patrick Pélissier <patrick.pelissier@gmail.com> 34797 34798 Use LIBS instead of LDADD for libraries (GMP). 34799 34800 Min GMP version is 4.1.0 now. 34801 348022004-09-16 Patrick Pélissier <patrick.pelissier@gmail.com> 34803 34804 Add a check if both gmp.h and libgmp.a have the same version. 34805 34806 Fix a typo. 34807 348082004-09-15 Patrick Pélissier <patrick.pelissier@gmail.com> 34809 34810 Add a forgotten regression test "1.2.3" 34811 348122004-09-15 Vincent Lefèvre <vincent@vinc17.net> 34813 34814 Update from the autotools-dev Debian package. 34815 34816 Update. 34817 348182004-09-14 Patrick Pélissier <patrick.pelissier@gmail.com> 34819 34820 Add 2 new macros for handling correctly overflow. 34821 348222004-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34823 34824 fixed bug (several '.' allowed in mantissa) 34825 348262004-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34827 34828 added notes for Windows 34829 348302004-09-02 Patrick Pélissier <patrick.pelissier@gmail.com> 34831 34832 Add a line about Dynamic Version of MPFR. 34833 348342004-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34835 34836 added warnings about init functions (mpf wrt mpfr) 34837 348382004-08-31 Patrick Pélissier <patrick.pelissier@gmail.com> 34839 34840 Update documentations. 34841 34842 Rename mpz_set_fr to mpfr_get_z. 34843 Provide a conditionnal macro for mpz_set_fr. 34844 34845 Add doc for mpfr_sqr. 34846 34847 Fix month. 34848 348492004-08-26 Patrick Pélissier <patrick.pelissier@gmail.com> 34850 34851 Add a new test to check overflow. 34852 348532004-08-24 Patrick Pélissier <patrick.pelissier@gmail.com> 34854 34855 Try to retype correctly the functions (replace int by the correct type). 34856 Still some works to do. 34857 348582004-08-23 Patrick Pélissier <patrick.pelissier@gmail.com> 34859 34860 Add description of what does MPFR_INT_CEIL_LOG2. 34861 34862 Move __gmpfr_isqrt and __gmpfr_cuberoot to another file. 34863 Clean up the code of mpfr_exp_2: remove DEBUG condition to use TRACE, ASSERT and DUMP. 34864 Use MPFR_INT_CEIL_LOG2 instead of __gmpfr_ceil_log2. 34865 34866 Improve a comment. 34867 34868 Add MPFR_INT_CEIL_LOG2 macro and __gmpfr_int_ceil_log2 function 34869 (don't use function but macro). 34870 34871 Fix 2 typos. 34872 348732004-08-19 Patrick Pélissier <patrick.pelissier@gmail.com> 34874 34875 Fix a bug on 64-bits introduced due to huger MPFR_EMAX_MAX. 34876 34877 Add new functions: mpfr_get_emin_min, mpfr_get_emax_max, mpfr_get_emin_max and 34878 mpfr_get_emax_min. 34879 Add documentation and explanation about potential portability problem when 34880 you mpfr_set_emin and mpfr_set_emax. 34881 348822004-07-28 Vincent Lefèvre <vincent@vinc17.net> 34883 34884 Added mpfr-longlong.h to libmpfr_a_SOURCES so that it is distributed 34885 with make dist. 34886 34887 Added mpfr-gmp.h to libmpfr_a_SOURCES so that it is distributed 34888 with make dist. 34889 348902004-07-26 Patrick Pélissier <patrick.pelissier@gmail.com> 34891 34892 Add a new section. 34893 348942004-07-20 Patrick Pélissier <patrick.pelissier@gmail.com> 34895 34896 Add function mpfr_sqr (TODO: Make doc) 34897 348982004-07-19 Patrick Pélissier <patrick.pelissier@gmail.com> 34899 34900 Fix an unsigned/signed comparison. 34901 34902 Improve the emulation of mpn_sqr_n and fix some typos. 34903 349042004-07-16 Patrick Pélissier <patrick.pelissier@gmail.com> 34905 34906 Remove unused item "rnd_mode" in cache struct. 34907 34908 Renamme mpfr_version to mpfr_get_version to be more GMP compatible. 34909 Add macro mpfr_version. 34910 34911 Likely some tests. 34912 349132004-07-15 Patrick Pélissier <patrick.pelissier@gmail.com> 34914 34915 Add a speciliation for set_si for GCC. 34916 349172004-07-09 Patrick Pélissier <patrick.pelissier@gmail.com> 34918 34919 Try to optimize a few agm by rewriting a few the loop. 34920 34921 Likely / Unlikely some tests using gcov. 34922 349232004-07-06 Patrick Pélissier <patrick.pelissier@gmail.com> 34924 34925 Remove some unused code. 34926 Add MPFR_LMIB_PER_DOUBLE 34927 Add MPFR_DUMP 34928 Add MPFR_TRACE 34929 34930 Likely some tests. 34931 34932 Used static precision for the array of limb for double. 34933 34934 Likely some tests / Other minor optimisations. 34935 34936 Minor modifications. 34937 34938 Unlikely a test so that it is faster when you call theses functions 34939 with the same dest and source which is the common case in MPFR. 34940 34941 Likely a test to optimize when dest and src are the same 34942 (which is very likely inside MPFR). 34943 34944 Likely a test (since cache should always work fine). 34945 349462004-06-28 Patrick Pélissier <patrick.pelissier@gmail.com> 34947 34948 Add some likely, and use a static table instead of a dynamic one. 34949 349502004-06-16 Patrick Pélissier <patrick.pelissier@gmail.com> 34951 34952 Unlikely some tests. 34953 349542004-06-10 Patrick Pélissier <patrick.pelissier@gmail.com> 34955 34956 Likely / Unlikely the code. 34957 34958 Respace some macro. 34959 34960 Retab some lines. 34961 34962 Optimize a bit. 34963 34964 Fix an overflow bug. 34965 349662004-06-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34967 34968 fixed bug in mpfr_exp_3 (wrong assert) 34969 349702004-05-27 Patrick Pélissier <patrick.pelissier@gmail.com> 34971 34972 Fix typos. 34973 34974 Update doc. 34975 349762004-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34977 34978 fixed problem for x near from Pi/2 (the internal precision should take 34979 into account the cancellation) 34980 349812004-05-18 Patrick Pélissier <patrick.pelissier@gmail.com> 34982 34983 Improve tests for sin. 34984 349852004-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 34986 34987 mpfr_sin_sign() should use at least MPFR_GET_EXP() bits 34988 349892004-05-17 Patrick Pélissier <patrick.pelissier@gmail.com> 34990 34991 Remove an item. 34992 349932004-05-12 Patrick Pélissier <patrick.pelissier@gmail.com> 34994 34995 Add a potential test (Too slow). 34996 34997 Simplify the code. 34998 349992004-05-11 Patrick Pélissier <patrick.pelissier@gmail.com> 35000 35001 Remove a C++ comment. 35002 350032004-05-10 Patrick Pélissier <patrick.pelissier@gmail.com> 35004 35005 Remove a forgotten "assertd" which isn't useful anymore. 35006 350072004-05-07 Patrick Pélissier <patrick.pelissier@gmail.com> 35008 35009 Optimize cos. 35010 350112004-05-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35012 35013 improved initial value of working precision (did not take into account 35014 2K lost bits for large arguments) 35015 350162004-05-06 Patrick Pélissier <patrick.pelissier@gmail.com> 35017 35018 Fix overflow and add corresponding tests. 35019 35020 Fix a bug in a formula. 35021 35022 Optimize it a bit. 35023 35024 Fix overflow problems. 35025 35026 Fix overflow bug. 35027 350282004-05-05 Patrick Pélissier <patrick.pelissier@gmail.com> 35029 35030 Remove the double vars. (Use fixed instead). 35031 35032 Add a note about tanh. 35033 35034 Fix a bug in cas of overflow in tanh. 35035 35036 Optimize a few by reducing the # of used vars. 35037 35038 Fix critical bugs due to different kind of overflow in cosh. 35039 35040 Add MPFR_TMP_INIT_ABS macro. 35041 35042 Optimize cosh a few by removing an unused intermedary var. 35043 35044 Fix a critical bug in case of overflow. 35045 350462004-05-04 Patrick Pélissier <patrick.pelissier@gmail.com> 35047 35048 Fix a critical bug in cos in case you have set the float range for the exponents. 35049 35050 Optimize a few cos. 35051 35052 Optimize the way of computing initial precision. 35053 35054 Add a test to check an overflow in const_pi (called by log in case of emulation of the float type). 35055 35056 Move to ASSERT mode some code. 35057 35058 Push/Pop emin/emax so that an overflow can't occur in mpfr_set_z(x,pi,r) 35059 Add test too. 35060 35061 Add some UNLIKELY to the while. 35062 35063 Add some UNLIKELY to the tests. 35064 35065 Fix an overflow bug in add1sp. 35066 350672004-04-29 Patrick Pélissier <patrick.pelissier@gmail.com> 35068 35069 Fix a typo in AC_MY_LIBS. 35070 350712004-04-28 Patrick Pélissier <patrick.pelissier@gmail.com> 35072 35073 Add mpfr_cmp as a real function, not only a macro. 35074 35075 Add mpfr_set and mpfr_abs as real functions. 35076 350772004-04-27 Patrick Pélissier <patrick.pelissier@gmail.com> 35078 35079 When using GCC, optimize certain common comparisons. 35080 350812004-04-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35082 35083 added one item 35084 350852004-04-27 Patrick Pélissier <patrick.pelissier@gmail.com> 35086 35087 Minor Optimizations. 35088 35089 Fix a bug (Use nextbeloz instead of sub_one_ulp). 35090 350912004-04-21 Patrick Pélissier <patrick.pelissier@gmail.com> 35092 35093 Add option in configure: --disable-cache 35094 to disable the use of the cache for the const. 35095 35096 Fix a typo. 35097 35098 Add preliminary generic code to handle cached const. 35099 Move const_pi, const_log2 to use this generic cache, 35100 which fix bugs of the previous implementation. 35101 const_euler is now cached too. 35102 35103 Fix a bug (If x = Nan, the new new precision wasn't set). 35104 35105 Fix a typo bug. 35106 351072004-04-20 Patrick Pélissier <patrick.pelissier@gmail.com> 35108 35109 Add new test about the cache: new bug to fix. 35110 35111 Add forgotten file for mpfr_zero_p. 35112 35113 Add mpfr_zero_p. 35114 Add macros for mpfr_inf_p, mpfr_nan_p and mpfr_zero_p. 35115 Add macro for mpfr_sgn. 35116 Update doc. 35117 Add new tests. 35118 35119 Fix a bug in a proto. 35120 35121 Fix a bug when both op are < 0 (It seems it was my fault). 35122 Add a test to check it. 35123 351242004-04-09 Patrick Pélissier <patrick.pelissier@gmail.com> 35125 35126 Fix a bug (Remove useless function). 35127 351282004-04-08 Patrick Pélissier <patrick.pelissier@gmail.com> 35129 35130 Fix another bug (Maybe the last?). 35131 35132 Fix a tiny bug. 35133 35134 Update memory allocations scheme without gmp-impl.h. 35135 Now the semantic of the memory allocation scheme is the same 35136 with and without gmp-impl, as it should be. 35137 351382004-04-07 Patrick Pélissier <patrick.pelissier@gmail.com> 35139 35140 For add/sub_type functions where type is a type without signed zeros, 35141 specify the expected result when both operands are 0. 35142 35143 Modify a few the allocation scheme without gmp-impl.h 35144 Add pseudo-constants __MPFR_EXP_NAN, __MPFR_EXP_ZERO and __MPFR_EXP_INF 35145 for future (?) inlining of some functions. 35146 351472004-04-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35148 35149 fixed problem when overflow in destination exponent happens 35150 351512004-04-07 Patrick Pélissier <patrick.pelissier@gmail.com> 35152 35153 Fix a bug in case a mpz_t == 0 (mpz_sizeinbase(0Z,2)==0 and MPFR_PREC_MIN=2). 35154 35155 Fix a bug in case of pow(2E1000000,-10); 35156 351572004-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35158 35159 fixed problem (cmpabs doesn't work for x=0) 35160 351612004-03-26 Patrick Pélissier <patrick.pelissier@gmail.com> 35162 35163 Change from MP_LIMB_T_ONE to MPFR_LIMB_ONE and/or MPFR_LIMB_MASK. 35164 35165 Improve comments. 35166 35167 Fix a bug. 35168 35169 Move detecting macros (__MPFR_GCC, __MPFR_STDC, __MPFR_GLIBC and __MPFR_GMP) from mpfr to mpfr-impl 35170 351712004-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35172 35173 removed blank 35174 351752004-03-22 Vincent Lefèvre <vincent@vinc17.net> 35176 35177 Test write access to CVS. 35178 351792004-03-18 Patrick Pélissier <patrick.pelissier@gmail.com> 35180 35181 Fix a bug in a string. 35182 351832004-03-17 Patrick Pélissier <patrick.pelissier@gmail.com> 35184 35185 Add documentation of 'j' functions. 35186 35187 Fix (?) definition of MPFR_PREC_MAX. 35188 35189 Change the order of the tests. 35190 35191 Rename mpfr_exp3 in mpfr_exp_3. 35192 Update THRESHOLD for mpfr_exp. 35193 Add MPFR_EXP_THRESHOLD. 35194 351952004-03-16 Patrick Pélissier <patrick.pelissier@gmail.com> 35196 35197 Add new option "--with-gmp-build=" 35198 35199 Update INSTALL 35200 35201 Fix a bug (Forget to cast to mp_exp_t). 35202 35203 Update comment 35204 35205 Add mpz_set_fr function and its test. 35206 352072004-03-15 Patrick Pélissier <patrick.pelissier@gmail.com> 35208 35209 Add new functions: 35210 mpfr_set_sj_2exp, mpfr_set_sj 35211 mpfr_set_uj_2exp, mpfr_set_uj 35212 35213 Fix a compiler bug (limb !=0 instead of limb). 35214 35215 Fix a cast problem on some systems (sizeof(mp_limb_t) > sizeof(unsigned long)). 35216 352172004-03-12 Patrick Pélissier <patrick.pelissier@gmail.com> 35218 35219 Remove use of abort (They can create core dump on some systems). 35220 35221 Fix bug of inexact flag for acos(0). 35222 35223 Update. 35224 352252004-03-11 Patrick Pélissier <patrick.pelissier@gmail.com> 35226 35227 Fix bug about forgotten MPFR_INVERT_RND. 35228 Add test too. 35229 35230 Add doc about HAVE_STDINT_H 35231 352322004-03-10 Patrick Pélissier <patrick.pelissier@gmail.com> 35233 35234 Fix doc about MPFR_DECL_INIT. 35235 35236 Fix the declaration of 'MPFR_DECL_INIT' 35237 35238 Add 'MPFR_DECL_INIT' macro. 35239 35240 Rename NEAREST_AWAY in GMP_RNDNA. 35241 35242 Add the description of mpfr_set_ui_2exp and mpfr_set_si_2exp. 35243 352442004-03-09 Patrick Pélissier <patrick.pelissier@gmail.com> 35245 35246 Add mpfr_set_si_2exp and mpfr_set_ui_2exp and their tests. 35247 35248 Add doc about mpfr_cmp_f function 35249 35250 Add mpfr_cmp_f and its test. 35251 35252 Add mpfr_cmp_ld and its test 35253 35254 Add doc of 2 macros. 35255 35256 Add mpfr_cmp_ui and mpfr_cmp_si as real functions 35257 (The macros are still defined and used). 35258 35259 Add mpfr_add_si, mpfr_sub_si, mpfr_si_sub, mpfr_mul_si, mpfr_div_si and 35260 mpfr_si_div. 35261 Add the corresponding test. 35262 35263 Add `mpfr_cmp_q` and `mpfr_cmp_z`. 35264 35265 Clean up configure 35266 35267 Add ASSERT for NAN. 35268 352692004-02-27 Patrick Pélissier <patrick.pelissier@gmail.com> 35270 35271 Add documentation for MPFR_VERSION 35272 352732004-02-26 Patrick Pélissier <patrick.pelissier@gmail.com> 35274 35275 Optimize a few mpfr_mul. 35276 35277 Add Laurent Fousse in the AUTHORS file. 35278 352792004-02-26 Vincent Lefèvre <vincent@vinc17.net> 35280 35281 Fixed a bug in check2b and added a test; add1.c coverage is now 35282 complete. 35283 352842004-02-25 Vincent Lefèvre <vincent@vinc17.net> 35285 35286 Improved coverage. 35287 35288 Improved coverage. 35289 35290 Bugs fixed in a test function -> improved coverage. 35291 352922004-02-25 Patrick Pélissier <patrick.pelissier@gmail.com> 35293 35294 Optimize mpfr_round_raw_? 35295 35296 Simplify the code. 35297 352982004-02-24 Vincent Lefèvre <vincent@vinc17.net> 35299 35300 Avoid integer overflow. 35301 35302 Ported code clean-up to trunk. 35303 353042004-02-24 Patrick Pélissier <patrick.pelissier@gmail.com> 35305 35306 Remove some warnings. 35307 MPFR can be compiled (but not checked!) with a C++ compiler. 35308 35309 Improve test coverage. 35310 353112004-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35312 35313 further simplification of the code (replaced one in-place shift and copy 35314 by out-of-place shift or copy) 35315 353162004-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35317 35318 use GMP_RND_MAX instead of hard-coded constant 35319 35320 simplified the code of div.c and improved coverage 35321 353222004-02-23 Patrick Pélissier <patrick.pelissier@gmail.com> 35323 35324 Rename 'longlong.h' in 'mpfr-longlong.h' so that when MPFR is built 35325 within GMP it uses GMP's 'longlong.h' rather than MPFR's copy. 35326 353272004-02-23 Vincent Lefèvre <vincent@vinc17.net> 35328 35329 Update. 35330 353312004-02-23 Patrick Pélissier <patrick.pelissier@gmail.com> 35332 35333 Add mpfr_free_cache (2). 35334 35335 Add mpfr_free_cache. 35336 35337 Add mpfr_free_str function. 35338 35339 Remove a warning. 35340 35341 Reorder the declarations of the functions. 35342 Remove duplicate declarations. 35343 Remove mpfr_factorial. 35344 353452004-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35346 35347 patch from Guillaume Hanrot 35348 353492004-02-23 Patrick Pélissier <patrick.pelissier@gmail.com> 35350 35351 Improve coverage tests. 35352 Fix 2 underflow bugs. 35353 35354 Update comment 35355 35356 Improve comments. 35357 35358 Add a comment. 35359 353602004-02-22 Vincent Lefèvre <vincent@vinc17.net> 35361 35362 Added tests. 35363 353642004-02-20 Laurent Fousse <laurent@komite.net> 35365 35366 Changed mpfr_sum to use unsigned long instead of unsigned int. More tests. 35367 353682004-02-20 Patrick Pélissier <patrick.pelissier@gmail.com> 35369 35370 mpfr_neg (b, b, r) for b=NAN didn't set NAN flag. 35371 35372 mpfr_sgn is no longer a macro. 35373 353742004-02-19 Patrick Pélissier <patrick.pelissier@gmail.com> 35375 35376 Fix bug with exact rationnal arguments (0.5+3/2 freezes). 35377 353782004-02-18 Vincent Lefèvre <vincent@vinc17.net> 35379 35380 Update from the autotools-dev Debian package (2004-01-05). 35381 35382 Fixed a bug in mpfr_set_f for 0 (wrong sign) and added the test. 35383 353842004-02-18 Patrick Pélissier <patrick.pelissier@gmail.com> 35385 35386 Fix bug if you build MPFR with ASSERT. 35387 353882004-02-17 Patrick Pélissier <patrick.pelissier@gmail.com> 35389 35390 Reduce the number of used variables. 35391 353922004-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35393 35394 improved again documentation 35395 35396 simplified rounding 35397 35398 improved documentation of *inexp 35399 354002004-02-17 Patrick Pélissier <patrick.pelissier@gmail.com> 35401 35402 Simplify the random code. 35403 35404 Optimize it a few. 35405 35406 Add 2004 in copyright line. 35407 35408 Add a section which describes the needed macros for building MPFR. 35409 354102004-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35411 35412 added comment about probability of normalized product 35413 354142004-02-17 Vincent Lefèvre <vincent@vinc17.net> 35415 35416 Added a note about the ternary value, important in practice. 35417 354182004-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35419 35420 fixed 2 bugs and added test 35421 35422 added comment about return value 35423 354242004-02-17 Patrick Pélissier <patrick.pelissier@gmail.com> 35425 35426 Try so support GMP as a Shared Library. 35427 354282004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35429 35430 improved error message 35431 354322004-02-16 Patrick Pélissier <patrick.pelissier@gmail.com> 35433 35434 Fix the computing of the error for mpq_add and mpq_sub. 35435 354362004-02-16 Vincent Lefèvre <vincent@vinc17.net> 35437 35438 Added more tests (improved tadd1.c coverage). 35439 354402004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35441 35442 added cancellation test for add_q 35443 354442004-02-16 Vincent Lefèvre <vincent@vinc17.net> 35445 35446 Added tests (improved tadd1.c coverage). 35447 354482004-02-16 Patrick Pélissier <patrick.pelissier@gmail.com> 35449 35450 Fix bug of add_q and sub_q with special values (NAN, INF and ZERO). 35451 354522004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35453 35454 deal with overflow/underflow in mpfr_div 35455 35456 added hard-coded tests 35457 354582004-02-16 Vincent Lefèvre <vincent@vinc17.net> 35459 35460 When the precisions are the same, test both mpfr_add1sp and mpfr_add1. 35461 35462 Added overflow check. 35463 354642004-02-16 Patrick Pélissier <patrick.pelissier@gmail.com> 35465 35466 Optimize add1sp, sub1sp and div. 35467 Improve coverage test for sub1sp. 35468 354692004-02-16 Vincent Lefèvre <vincent@vinc17.net> 35470 35471 Removed unused label. 35472 35473 Really reverted to rev. 1.54 + kept optimization + commented out 35474 is_odd_even. 35475 354762004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35477 35478 take into account possible out-of-range exponent 35479 35480 revert to rev 1.54 code for case x infinite 35481 (was less efficient but simpler) 35482 35483 fixed bug with in-place computation 35484 354852004-02-16 Vincent Lefèvre <vincent@vinc17.net> 35486 35487 Code clean-up and fix to avoid warnings. 35488 354892004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35490 35491 changed back to C99 standard for special values of x^y 35492 35493 added test for *function* mpfr_round 35494 35495 check return value of fopen 35496 354972004-02-16 Vincent Lefèvre <vincent@vinc17.net> 35498 35499 Removed the no longer used label "fin" and fixed the indentation. 35500 35501 Fix: MPFR_NOT_ZERO -> MPFR_NOTZERO. 35502 35503 Commented out the now useless "double uo, vo;". 35504 355052004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35506 35507 improved coverage tests 35508 355092004-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35510 35511 new coverage tests 35512 35513 improved coverage test 35514 355152004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35516 35517 improved coverage test 35518 35519 improved test coverage 35520 35521 improved test coverage 35522 35523 improved test coverage 35524 355252004-02-13 Patrick Pélissier <patrick.pelissier@gmail.com> 35526 35527 Fix a bug in taddsp (Forget to check if random does not generate zero). 35528 355292004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35530 35531 improved editing style 35532 35533 improved test coverage 35534 35535 partly rewritten, and improved test coverage 35536 355372004-02-13 Vincent Lefèvre <vincent@vinc17.net> 35538 35539 Added tests for mpfr_mul_2si and mpfr_div_2si + corrections. 35540 35541 Replaced mpfr_mul_2exp and mpfr_div_2exp by mpfr_mul_2ui and 35542 mpfr_div_2ui as the 2exp form is obsolete. 35543 355442004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35545 35546 removed warnings 35547 355482004-02-13 Patrick Pélissier <patrick.pelissier@gmail.com> 35549 35550 Add test for mpfr_cmpabs 35551 Add test for mpfr_fits_ 35552 Add test for internal dumping functions. 35553 Improve coverage test for exceptions / set / check. 35554 355552004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35556 35557 improved coverage 35558 35559 removed Kevin, added missing accent 35560 35561 improved coverage test 35562 355632004-02-12 Patrick Pélissier <patrick.pelissier@gmail.com> 35564 35565 Rewrite (simplify) mpfr_dump. 35566 Change its proto. 35567 Fix mpf_dump macro in mpf2mpfr. 35568 35569 Remove MPFR_ASSERTN(0) and add MPFR_ASSERTD(last condition) instead. 35570 355712004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35572 35573 improved coverage 35574 35575 improved coverage 35576 35577 improved cov. test 35578 35579 improved cov. test 35580 35581 improved coverage test 35582 35583 improved coverage test 35584 35585 improved test coverage 35586 355872004-02-12 Patrick Pélissier <patrick.pelissier@gmail.com> 35588 35589 Improve coverage of const_pi and const_log2 (Test for prec > 20000). 35590 355912004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35592 35593 fixed tiny bugs for corner cases 35594 improved test coverage 35595 355962004-02-12 Patrick Pélissier <patrick.pelissier@gmail.com> 35597 35598 + Add mpfr_add1sp which provides addition when all the operands have the same precision. 35599 + Add new test files for mpfr_copysign and mpfr_min and mpfr_max. 35600 + Add test for mpfr_exp10 in tests/texp.c 35601 + Improve coverage of div_2ui.c and mul_2ui.c 35602 + Add a forgotten ASSERT in mpfr_sqrt 35603 356042004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35605 35606 improved test coverage 35607 replaced mpfr_get_d1 by mpfr_get_si 35608 35609 improved coverage test 35610 35611 added new coverage test 35612 356132004-02-12 Patrick Pélissier <patrick.pelissier@gmail.com> 35614 35615 Fix some mistakes. 35616 35617 Add a description of the gcov tool. 35618 356192004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35620 35621 now 100% of coverage of sub1.c 35622 35623 new test file for mpfr_dim 35624 356252004-02-06 Patrick Pélissier <patrick.pelissier@gmail.com> 35626 35627 Replace AS_HELP_STRING to AC_HELP_STRING (obsolete) 35628 35629 Add forgotten copyright 2004 line. 35630 Add a small documentation about mpfr_sum. 35631 35632 Added mpfr_sum function. 35633 35634 + Better support of non IEEE doubles. 35635 + 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). 35636 356372004-02-06 Vincent Lefèvre <vincent@vinc17.net> 35638 35639 Update. 35640 35641 Updated MPFR URL. 35642 35643 Added the changes from version 2.0.1 to version 2.0.2. 35644 35645 Added: "3) Update the NEWS file.". 35646 356472004-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35648 35649 fixed bug in get_str (case pow2, rnd=up or down) 35650 356512004-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35652 35653 fixed problem (s1 = s-1 inexact) 35654 35655 fixed problem in gamma/factorial 35656 35657 added new tests for agm and hypot (+ fixed bugs) 35658 356592004-01-29 Patrick Pélissier <patrick.pelissier@gmail.com> 35660 35661 Add GMP_RND_MAX so that a for loop of the rounding modes looks like: 35662 for(int r = 0 ; r < GMP_RND_MAX ; r++) 35663 356642004-01-28 Patrick Pélissier <patrick.pelissier@gmail.com> 35665 35666 Better supports of non IEEE-754 floats (don't use anymore ieee_double_extract if _GMP_IEEE is not set). 35667 356682004-01-28 Vincent Lefèvre <vincent@vinc17.net> 35669 35670 Added comments and a temporary fix. 35671 356722004-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35673 35674 fixed bugs in atan cbrt erf 35675 added new hard-coded tests 35676 356772004-01-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35678 35679 removed argument reduction in sin(Pi*s/2) [delegated to mpfr_sin] 35680 35681 print inputs of test2 in binary form 35682 commented out test for 0.8 (input is not exactly representable) 35683 356842004-01-26 Patrick Pélissier <patrick.pelissier@gmail.com> 35685 35686 + Internal functions of zeta are now declared as static. 35687 + Add new tests which fail. 35688 356892004-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35690 35691 added several hard-coded tests (and fixed bugs found) 35692 356932004-01-20 Patrick Pélissier <patrick.pelissier@gmail.com> 35694 35695 Fix tiny bug of Concept Index / Rounding Modes. 35696 35697 Update minor things. 35698 356992004-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35700 35701 minor change in contributions 35702 35703 added Patrick in the main contributors 35704 357052004-01-20 Vincent Lefèvre <vincent@vinc17.net> 35706 35707 Fixed spelling mistake. 35708 357092004-01-20 Patrick Pélissier <patrick.pelissier@gmail.com> 35710 35711 Reorder the documentation. 35712 357132004-01-19 Kevin Ryde <user42@zip.com.au> 35714 35715 # Add a remark to mpf_strto. 35716 35717 # Drop my thought about addmul instead of fma. The latter takes a 35718 # separate destination and is hence not the same as what mpn and mpz 35719 # addmul do. 35720 357212004-01-19 Patrick Pélissier <patrick.pelissier@gmail.com> 35722 35723 Update tests to remove the use of double when possible. 35724 35725 Reenable the cmp between inexact flags. 35726 35727 Add mpfr_get_default_rounding_mode. 35728 Add the tests for mpfr_get/set_default_rounding_mode. 35729 Fix mpfr_set_default_rounding_mode. 35730 357312004-01-19 Vincent Lefèvre <vincent@vinc17.net> 35732 35733 _mpfr_ceil -> mpfr_ceil_double + check for overflow. 35734 35735 Moved the mpfr_mpn_exp function to a new file "mpn_exp.c" as it is 35736 used by both "get_str.c" and "set_str.c". 35737 357382004-01-16 Patrick Pélissier <patrick.pelissier@gmail.com> 35739 35740 Update it to remove the use of float/double. 35741 357422004-01-15 Patrick Pélissier <patrick.pelissier@gmail.com> 35743 35744 Add a new check in tget_str.c. 35745 35746 Add new macros. 35747 35748 Readd stdio.h in case of DEBUG mode. 35749 35750 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. 35751 357522004-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35753 35754 fixed problem in case m=0 and b=2^k (lost bits from 1st digit were not taken 35755 into account) 35756 35757 mpn_exp -> mpfr_mpn_exp 35758 357592004-01-15 Vincent Lefèvre <vincent@vinc17.net> 35760 35761 Removed gammaPiAGMformula.c (old version, no longer used). 35762 357632004-01-14 Vincent Lefèvre <vincent@vinc17.net> 35764 35765 Changed some error messages into assertions. 35766 Removed some useless #include's. 35767 357682004-01-14 Patrick Pélissier <patrick.pelissier@gmail.com> 35769 35770 Continue to port tests so that they don't use double. 35771 357722004-01-09 Patrick Pélissier <patrick.pelissier@gmail.com> 35773 35774 Update the tests to reduce the use of floats. 35775 35776 Remove unused files mpfi.c and mpfi.h 35777 35778 Update test. 35779 Don't use floats anymore. 35780 35781 Add RND_RAND 35782 Add SIGN_RAND 35783 35784 + Simplify the singular code. 35785 + Fix potential type errors. (Used mpfr_prec_t instead of mpfr_uexp_t). 35786 357872004-01-08 Patrick Pélissier <patrick.pelissier@gmail.com> 35788 35789 + Add a new test file for checking functions mpfr_add/sub/mul/div_q/z (from gmp_op.c). 35790 + Fix bugs of mpfr_add/sub/mul/div_q/z. 35791 357922004-01-07 Vincent Lefèvre <vincent@vinc17.net> 35793 35794 -0 -> @minus{}0. 35795 35796 Specifications for mpfr_min and mpfr_max. 35797 35798 Updated MPFR_INTPREC_MAX definition, as mpfr_prec_t has changed. 35799 358002004-01-07 Patrick Pélissier <patrick.pelissier@gmail.com> 35801 35802 Add a new test between sub1 and sub1sp. 35803 35804 Fix copyright line. 35805 358062004-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35807 35808 fixed wrong sign of inexact flag 35809 358102004-01-07 Vincent Lefèvre <vincent@vinc17.net> 35811 35812 Added casts to size_t so that integers representing a size get 35813 this type as soon as possible. 35814 358152004-01-07 Patrick Pélissier <patrick.pelissier@gmail.com> 35816 35817 Use MPFR_ASSERTN(0) instead of abort. 35818 35819 Fix the definition of MPFR_PREC_MAX 35820 358212004-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35822 35823 added new test to check bug repair 35824 35825 fixed bug (wrong inexact flag) for rounding to nearest when sh=0 and 35826 first trailing limbs coincide 35827 358282004-01-07 Patrick Pélissier <patrick.pelissier@gmail.com> 35829 35830 Fix copyright lines (2004). 35831 35832 Fix bug of sub1sp.c on sparck. 35833 Add new tests for sub1sp. 35834 Reenable sub1sp for mpfr_add / mpfr_sub. 35835 35836 Change output format of mpfr_print_mant_binary. 35837 358382004-01-07 Vincent Lefèvre <vincent@vinc17.net> 35839 35840 Clarified comment. 35841 358422004-01-06 Vincent Lefèvre <vincent@vinc17.net> 35843 35844 Updated copyright line. 35845 35846 Added mpfr_version function and test. 35847 35848 The mpfr_print_rnd_mode return type is const char *, not char *. 35849 358502004-01-06 Patrick Pélissier <patrick.pelissier@gmail.com> 35851 35852 Update the copyright line of the source files to 2004. 35853 35854 Add the tests to check if 0 for signed class with unsigned 0 is set to 0+. 35855 358562004-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35857 35858 specified sign of zero in mpfr_set_* 35859 35860 removed test using denorms 35861 358622003-12-22 Patrick Pélissier <patrick.pelissier@gmail.com> 35863 35864 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). 35865 35866 Change comment. 35867 35868 + Rearrange the code to be more "compatible" with broken systems. 35869 + Preprocessing checks are done in init2.c since GMP constants can't be used in preprocessing #if. 35870 35871 Use MPFR_UNSIGNED_MINUS_MODULO when needed. 35872 35873 Explicit support for K&R C since ansi2knr can't be used. 35874 358752003-12-20 Kevin Ryde <user42@zip.com.au> 35876 35877 (tests_rand_start): Use gmp_randinit_default not the 35878 RANDS macro, to cope with new non-seeding MT setup by RANDS. 35879 358802003-12-19 Patrick Pélissier <patrick.pelissier@gmail.com> 35881 35882 Support of MPFR_PREC_FORMAT. 35883 Fix a bug in case mp_prec_t = unsigned short. 35884 358852003-12-19 Vincent Lefèvre <vincent@vinc17.net> 35886 35887 Update due to a change in mpfr.h. 35888 358892003-12-19 Patrick Pélissier <patrick.pelissier@gmail.com> 35890 35891 + Modify Version to 2.1.0. 35892 + Add MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR and MPFR_VERSION_PATCHLEVEL in mpfr.h 35893 + Add MPFR_VERSION_NUM and MPFR_VERSION to check Mpfr version. 35894 35895 Remove one warning in mpf_compat.h 35896 Create a new macro: MPFR_RET_NEVER_GO_HERE 35897 Modify ui_sub/div to use it to make Insure++ happy. 35898 358992003-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35900 35901 updated mpfr_root entry 35902 359032003-12-19 Vincent Lefèvre <vincent@vinc17.net> 35904 35905 Added update-version script to update the MPFR version. 35906 359072003-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35908 35909 removed one item, added one 35910 359112003-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35912 35913 removed unused target "tests" 35914 35915 removed AC_DEFINE(hpux) [not used any more] 35916 359172003-12-15 Kevin Ryde <user42@zip.com.au> 35918 35919 (EXTRA_DIST): Add round_raw_generic.c. 35920 359212003-12-15 Patrick Pélissier <patrick.pelissier@gmail.com> 35922 35923 + Optimize a few div.c 35924 + Remove some warnings in asin.c, atan.c. 35925 + Include limits.h before gmp-impl.h in mpfr-impl.h 35926 + mpfr-tests.h doesn't include anumore standard include files. 35927 + Test files include only standard includes and mpfr-tests.h. 35928 + Add some forgotten mpfr_clear in mpf[r]_compat. 35929 + Remove some warnings in the tests. 35930 359312003-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35932 35933 removed unused arguments 35934 35935 removed AC_DEFINE(__STDC__) for OSF 35936 35937 removed MISCFLAGS (not used any more) 35938 359392003-12-14 Kevin Ryde <user42@zip.com.au> 35940 35941 Quote AC_DEFUN names, for automake 1.8. 35942 359432003-12-10 Patrick Pélissier <patrick.pelissier@gmail.com> 35944 35945 + Add a new test in case of underflow. 35946 + Fix bug in case of underflow for sub1 / sub1sp (mpfr_powerof2 could be called with invalid numbers). 35947 359482003-12-09 Patrick Pélissier <patrick.pelissier@gmail.com> 35949 35950 + Fixed bugs of mpfr_print_mant_binary on 64 bits CPU (1L instead of 1). 35951 + Fixed bugs of mpfr_sub1sp on 64-bits CPU (mp_limb_t instead of int). 35952 35953 + Add function mpfr_print_mantissa_binary, for debugging reason. 35954 + Rename MPFR_ALLOC_SIZE in MPFR_MALLOC_SIZE. 35955 + Add conditionnal -DSMALL directive in mpfr-impl.h. 35956 + Add new function: sub1sp. 35957 Subtraction in case of all the ops have the same prec. 35958 + Add its test (tsub1sp). 35959 + Modify a few the tests to avoid comparing mpfr results with double, for portability reason. 35960 359612003-12-05 Vincent Lefèvre <vincent@vinc17.net> 35962 35963 Added mpfr_exp10 function. 35964 359652003-12-01 Patrick Pélissier <patrick.pelissier@gmail.com> 35966 35967 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). 35968 MPFR now should work well on non-IEEE machines. 35969 359702003-12-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35971 35972 added suggestion for 2 new functions 35973 35974 added entry (portability) 35975 359762003-11-25 Patrick Pélissier <patrick.pelissier@gmail.com> 35977 35978 Optimize a few add1.c/sub1.c by using MPFR_LIKELY / MPFR_UNLIKELY. 35979 359802003-11-21 Patrick Pélissier <patrick.pelissier@gmail.com> 35981 35982 Remove some warnings and potential errors (Comparison between signed and unsigned). 35983 35984 + Add new internal function: mpfr_check. 35985 + Add the corresponding test file. 35986 + Translate mpfr_set_d to mpfr_set_str / mpfr_set_ui in the tests for portability reasons. 35987 359882003-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 35989 35990 use integers instead of double's 35991 359922003-11-21 Vincent Lefèvre <vincent@vinc17.net> 35993 35994 Notes about not using mpfr_set_d in the tests. 35995 359962003-11-19 Patrick Pélissier <patrick.pelissier@gmail.com> 35997 35998 Optimization of mpfr_mul. 35999 Tiny optimization of mpfr_pow (The case y=0 has been put inside the MPFR_ARE_SINGULAR block). 36000 Tiny optimisation of mpfr_set_ui. 36001 360022003-11-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36003 36004 fixed bug in case exact result 36005 36006 added new tests 36007 360082003-11-18 Patrick Pélissier <patrick.pelissier@gmail.com> 36009 36010 Optimize round_raw_generic by reducing the number of redundant tests. 36011 360122003-11-17 Patrick Pélissier <patrick.pelissier@gmail.com> 36013 36014 * Optimize a few div.c and mul.c. 36015 * Reorder the tests. 36016 * Remove mpfr_round_raw_generic and create 4 new functions which replace it, for efficiency reasons. 36017 * Add round_raw_generic.c which is the generic file to create the 4 new functions. 36018 * 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). 36019 * Add new MACRO: MPFR_UNSIGNED_MINUS_MODULO. 36020 * Optimize mpfr_can_round_raw. 36021 * Some new defines in mpfr.h to increase compatibility with MPFR v2.0.1 and above. 36022 360232003-11-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36024 36025 fixed bug in pow_si (exact result, case z = x) 36026 36027 added test to check bug fix (bug was in mpfr_pow) 36028 36029 added new test to check for bug fix (output precision > input precisions) 36030 36031 just improved editing style 36032 36033 fixed bug for output precision > max(input precisions) 36034 360352003-11-14 Vincent Lefèvre <vincent@vinc17.net> 36036 36037 Ported the gcc-3.3 bug detection patch to the trunk. 36038 360392003-11-07 Patrick Pélissier <patrick.pelissier@gmail.com> 36040 36041 Fix a stupid bug (diff_exp is not equal to the difference of prec) 36042 360432003-11-07 Vincent Lefèvre <vincent@vinc17.net> 36044 36045 Initialize the exp field. 36046 360472003-11-07 Patrick Pélissier <patrick.pelissier@gmail.com> 36048 36049 Some minor optimizations. 36050 Optimization of mul.c / sub1.c. 36051 Some clean up in the header files. 36052 360532003-11-05 Patrick Pélissier <patrick.pelissier@gmail.com> 36054 36055 Fix some bugs (Use MPFR_ASSERT(1) instead of MPFR_ASSERT(0)) 36056 Optimize swap.c and copysign.c. 36057 36058 Optimize mpfr_prec_round. 36059 Optimize mpfr_set (Case of both src & dest have the same precision). 36060 Start optimizing mpfr_sub1. 36061 36062 Add a real function for mpfr_sgn (not a call to mpfr_cmp_ui_2exp). 36063 Add a test for mpfr_sgn. 36064 Change the proto of mpfr_add1 and mpfr_sub1 by removing the last arg. 36065 Simplify the logic of the sign in mpfr_sub1. 36066 Tiny speed up for cmp/set/sqrt. 36067 mpfr-impl auto include all the needed local header files (gmp, gmp-impl, mpfr). 36068 360692003-11-04 Vincent Lefèvre <vincent@vinc17.net> 36070 36071 Merged the mpfr-2-0-2-branch pow_ui.c changes to the trunk. 36072 36073 The check_inf test wasn't called. Added 2 missing mpfr_clear and \n. 36074 360752003-11-04 Patrick Pélissier <patrick.pelissier@gmail.com> 36076 36077 + Remove MPFR_CLEAR_NAN and MPFR_CLEAR_INF. Only use MPFR_CLEAR_FLAGS. 36078 MPFR_SET_INF, MPFR_SET_ZERO and MPFR_SET_ZERO must clear the flags before setting them. 36079 + Add a new test in tacosh.c : check Inf / Nan flags. 36080 + Use MPFR_IS_SINGULAR in all the remaining files. 36081 + Fix the use of MPFR_CLEAR_FLAGS. 36082 + mpfr-impl.h auto include gmp.h, gmp-impl.h, mpfr.h and limits.h. 36083 + Rename _PROTO to _MPFR_PROTO, and remove _GMP_PROTO. 36084 + Add MPFR_INT_SIGN macro. 36085 + Encapsulate a few more the sign. 36086 360872003-10-30 Vincent Lefèvre <vincent@vinc17.net> 36088 36089 MPFR_RET_NAN -> MPFR_RET(0). 36090 360912003-10-28 Patrick Pélissier <patrick.pelissier@gmail.com> 36092 36093 Use of MPFR_UNLIKELY and MPFR_IS_SINGULAR for fast detection of special values (Nan, Inf or Zero). 36094 Start to encapsulate the sign to be independent of the representation (Must be 1 or -1). 36095 360962003-10-27 Patrick Pélissier <patrick.pelissier@gmail.com> 36097 36098 Change the internal format of MPFR: ZERO, INF and NAN have special values of exp. 36099 Rename MPFR_ESIZE in MPFR_LIMB_SIZE. 36100 Rename MPFR_ABSZISE in MPFR_ALLOC_SIZE. 36101 Rename MPFR_INIT in MPFR_TMP_INIT (INIT1 too). 36102 "mpfr.h" includes <gmp.h> if GMP isn't detected. 36103 Change the way of detecting stdio.h (To check). 36104 Use mpfr namespace for new definitions in "mpfr.h". 36105 361062003-10-27 Vincent Lefèvre <vincent@vinc17.net> 36107 36108 Another fix, for acosh(-INF). 36109 36110 Fixed exit status. 36111 361122003-10-21 Vincent Lefèvre <vincent@vinc17.net> 36113 36114 Merged the mpfr-2-0-2-branch changes to the trunk. 36115 361162003-10-20 Vincent Lefèvre <vincent@vinc17.net> 36117 36118 Merged the mpfr-2-0-2-branch changes to the trunk. 36119 361202003-10-17 Vincent Lefèvre <vincent@vinc17.net> 36121 36122 Merged the mpfr-2-0-2-branch changes to the trunk. 36123 361242003-10-16 Vincent Lefèvre <vincent@vinc17.net> 36125 36126 Update. 36127 36128 Updated version on trunk. 36129 36130 Update. 36131 36132 Fixed several bugs. 36133 36134 Added XDEBUG support (like in set_d.c). 36135 361362003-10-15 Vincent Lefèvre <vincent@vinc17.net> 36137 36138 Replaced all non-ASCII characters by an equivalent 7-bit sequence 36139 to support unpatched texinfo.tex files. 36140 361412003-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36142 36143 removed #define DEBUG (turned on accidentally) 36144 361452003-10-15 Vincent Lefèvre <vincent@vinc17.net> 36146 36147 Bug on the ternary value was fixed by Paul Zimmermann on 2003-10-14. 36148 361492003-10-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36150 36151 added preamble about ternary flag for special functions 36152 36153 now uses #include "tgeneric.c" everywhere 36154 (and modified test_generic to check also the inexact flag) 36155 36156 check_nan() is back 36157 36158 removed old unused code 36159 36160 fixed tests for x=0 36161 removed composition tests (were already in-between #if 0 ... #endif) 36162 36163 replaced mpfr_can_round (approx, err, rnd1, GMP_RNDN, prec) 36164 by mpfr_can_round (approx, err, rnd1, GMP_RNDZ, prec + 1) 36165 which in addition guarantees a correct inexact flag 36166 36167 added new items (version number, rounding modes) 36168 36169 added comment about --enable-alloca=debug 36170 361712003-10-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36172 36173 added section "Problems due to compiler bugs" 36174 36175 change in can_round calls to get correct inexact flag for rounding to nearest 36176 361772003-10-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36178 36179 fixed bug in mpfr_pow found by Ming J. Tsai (overflow) 36180 361812003-10-08 Vincent Lefèvre <vincent@vinc17.net> 36182 36183 Removed useless inclusion of standard headers and some #ifdef DEBUG 36184 code. Partial reindentation. 36185 36186 Added a #include <stddef.h> because size_t is used. 36187 361882003-10-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36189 36190 reduced test time 36191 36192 reduced test time 36193 36194 reduced test time 36195 361962003-10-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36197 36198 fixed comment of mpfr_round_raw_generic 36199 36200 replaced ABSSIZE by ESIZE (ABSSIZE is the allocated size, and should be 36201 used only in functions init, set_prec, round_prec) 36202 36203 fixed bug in allocation for in-place operation 36204 36205 inexact flag should now be correct for directed rounding 36206 fixed a bug for mpfr_atan(-Inf) [gave +Pi/2 instead of -Pi/2] 36207 36208 added test for atan(-Inf) 36209 36210 use macros to avoid possible problem with float input 36211 36212 new proposal for mpfr_can_round 36213 36214 mpfr_mul_2exp/mpfr_div_2exp are not obsolete 36215 362162003-10-05 Vincent Lefèvre <vincent@vinc17.net> 36217 36218 Clearer mpfr_eq documentation (thanks to Kevin Ryde for the remark). 36219 362202003-10-03 Vincent Lefèvre <vincent@vinc17.net> 36221 36222 MPFR_ASSERTN rewritten to avoid "statement with no effect" warnings 36223 with gcc when the assertion is always true. 36224 36225 Optimization (thanks to Patrick Pelissier), as the allocated size 36226 may be larger than the size used by the significant bits. 36227 36228 Updated installation notes. 36229 36230 Infinities are now accepted in mpfr_cmpabs. Updated its definition 36231 in the source (no longer sign(abs(b) - abs(c))). 36232 362332003-10-02 Vincent Lefèvre <vincent@vinc17.net> 36234 36235 Use @url{} for URLs. 36236 36237 As suggested by PZ: 36238 o documentation of mpfr_fits_* functions moved to the section 36239 on conversions; 36240 o grouped some mpfr_pow special cases; 36241 o explanation concerning the meaning of rnd in mpfr_frac. 36242 36243 Updated documentation. In particular, mpfr_set_str_raw renamed 36244 as mpfr_set_str_binary. This function and mpfr_print_binary are 36245 now internal functions. mpfr_print_binary no longer prints the 36246 non-significant 0 bits. Updated the source to match the manual. 36247 mpfr_print_binary has been completely rewritten (now directly 36248 prints to stdout, without using an intermediate string). In 36249 mpfr_set_str_binary, replaced atol by strtol + error checking. 36250 362512003-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36252 36253 added paragraph on support/grants 36254 added help for mpfr_erf 36255 362562003-10-02 Vincent Lefèvre <vincent@vinc17.net> 36257 36258 Make node titles match section titles, and updated menus and xrefs. 36259 Added a line break after @samp{uninstall}. 36260 362612003-10-01 Vincent Lefèvre <vincent@vinc17.net> 36262 36263 Corrections in the MPFR manual (PZ & VL). Functions mpfr_const_pi, 36264 mpfr_const_log2 and mpfr_zeta now return a ternary value. Updated 36265 TODO file. 36266 362672003-09-30 Vincent Lefèvre <vincent@vinc17.net> 36268 36269 Added a bug related to the ternary value and worst cases. 36270 36271 Added exponent range support. 36272 36273 Corrections up to Section 5.6 (PZ & VL). 36274 36275 Re-added the assert on the exponent, but replacing MPFR_EMIN_MIN by 36276 MP_EXP_T_MIN (this makes more sense): an assertion failed would mean 36277 that the exponent is not representable (an undefined behavior in the 36278 ISO C standard). If need be, we could choose to return MP_EXP_T_MIN 36279 in such a case, or perhaps MP_EXP_T_MAX to signal an error. The 36280 mantissa would still be meaningful. 36281 362822003-09-30 Patrick Pélissier <patrick.pelissier@gmail.com> 36283 36284 Update TODO & mpfr_set_prec. 36285 362862003-09-29 Vincent Lefèvre <vincent@vinc17.net> 36287 36288 Corrections up to Section 4. 36289 36290 Added authors Kevin Ryde and Patrick Pelissier. 36291 36292 Removed "known problems" that are no longer problems. 36293 362942003-09-26 Vincent Lefèvre <vincent@vinc17.net> 36295 36296 Removed bugs related to the tests and to the exponents 36297 as they no longer occur. Updated some potentials bugs. 36298 362992003-09-25 Vincent Lefèvre <vincent@vinc17.net> 36300 36301 Removed mpfr_inits, mpfr_inits2, mpfr_clears from the documentation. 36302 Moved their prototypes to mpfr-impl.h (internal functions until 36303 decided otherwise). 36304 363052003-09-25 Patrick Pélissier <patrick.pelissier@gmail.com> 36306 36307 Modify 'r' arg of GENERIC from int to long (min 32 bits). 36308 363092003-09-25 Vincent Lefèvre <vincent@vinc17.net> 36310 36311 8-bit ISO-8859-1 characters + consistent spelling. 36312 36313 Update. 36314 36315 Changed the remaining stderr to stdout. 36316 363172003-09-24 Vincent Lefèvre <vincent@vinc17.net> 36318 36319 Changed some stderr to stdout. 36320 36321 Added documentation for mpfr_greater_p, mpfr_greaterequal_p, 36322 mpfr_less_p, mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p 36323 and mpfr_unordered_p. 36324 36325 Added tests for mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p, 36326 mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p. 36327 36328 Added a few more tests (involving mpfr_nexttoward). The tests for 36329 the mpfr_nextabove, mpfr_nextbelow and mpfr_nexttoward functions 36330 should now be sufficient. 36331 36332 Added generic tests for mpfr_nextabove and mpfr_nextbelow. 36333 Fixed a bug in next.c related to assertion checks. 36334 36335 Accept (case-insensitive) NaN and Inf in input for bases <= 16 for 36336 backward compatibility in these bases (for bases > 16, we cannot 36337 guaranty backward compatibility with the current wanted behavior). 36338 Added tests. 36339 363402003-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36341 36342 added one item from Kevin 36343 363442003-09-24 Vincent Lefèvre <vincent@vinc17.net> 36345 36346 Added support for some top-bit-set characters in the .texi source. 36347 36348 Added information on special values for mpfr_pow. 36349 363502003-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36351 36352 added MAKEINFOFLAGS = --enable-encoding to get 8-bit characters in mpfr.info 36353 36354 used ISO-8859-1 in AUTHORS 36355 and @`e, @"o in mpfr.texi (waiting for code for ISO-8859-1 compatibility) 36356 363572003-09-24 Kevin Ryde <user42@zip.com.au> 36358 36359 (MPFR_C_LONG_DOUBLE_FORMAT): Remove conftest* temporary 36360 files. 36361 363622003-09-24 Vincent Lefèvre <vincent@vinc17.net> 36363 36364 Fixed comparisons (cases @NaN@ and @Inf@). 36365 363662003-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36367 36368 two updates 36369 363702003-09-22 Vincent Lefèvre <vincent@vinc17.net> 36371 36372 Updated mpfr_pow description. 36373 363742003-09-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36375 36376 changed __gmp_const into const in *.c 36377 [Torbjo"rn: Please use __gmp_const just in user header files, plain C const in other files.] 36378 363792003-09-22 Vincent Lefèvre <vincent@vinc17.net> 36380 36381 Removed 36382 36383 - allow the ISO C "P" exponent separator for base 16 in input functions 36384 36385 (already done). 36386 363872003-09-22 Vincent Lefèvre <vincent@vinc17.net> 36388 36389 Implemented the following: 36390 - use (LDBL_MAX/2)+(LDBL_MAX/4*LDBL_EPSILON) instead of loop in tset_ld 36391 to get largest power of 2 that fits in a long double 36392 36393 Added some MPFR_ASSERTN and improved a comment. 36394 36395 Avoid string literals longer than 509 characters (ISO C89 limit). 36396 36397 (test_set_underflow, test_set_overflow): Cleaner fix (for pre-C99 36398 compilers). 36399 364002003-09-22 Kevin Ryde <user42@zip.com.au> 36401 36402 (test_set_underflow, test_set_overflow): Use 36403 "static" on "r" to allow non-constant initializers. 36404 364052003-09-21 Kevin Ryde <user42@zip.com.au> 36406 36407 (Converting Floats): In mpfr_get_d_2exp, the rounding mode 36408 is given, it doesn't use the default mode. 36409 36410 (Assigning Floats): In mpfr_set_str and mpfr_set_str_raw, 36411 show "const" not "__gmp_const". 36412 (Simultaneous Float Init & Assign): In mpfr_init_set_str, ditto. 36413 36414 (Rounding Modes): Add blank line around @itemize. 36415 36416 (Miscellaneous Float Functions): In mpfr_urandomb and 36417 mpfr_random, use @math and @le. 36418 364192003-09-20 Kevin Ryde <user42@zip.com.au> 36420 36421 (Assigning Floats): In mpfr_set_*, remove remarks about 36422 long being rounded (this should be clear already), about rounding of 36423 decimal double constants like 0.1 (too basic to appear here), 36424 (Converting Floats): In mpfr_get_d_2exp, remove remark about exp 36425 exceeding IEEE exponent range (should be clear already). 36426 364272003-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36428 36429 updated items: removed conversion from/to float (obsolete) 36430 36431 got rid of <math.h> dependency in mpfr_zeta 36432 36433 mpfr_round_prec is now obsolete 36434 new function mpfr_prec_round replaces it 36435 364362003-09-18 Vincent Lefèvre <vincent@vinc17.net> 36437 36438 Fix for C implementations with 16-bit int. 36439 364402003-09-18 Patrick Pélissier <patrick.pelissier@gmail.com> 36441 36442 Optimization of macros MPFR_IS_INF, MPFR_IS_NAN and MPFR_IS_FP 36443 364442003-09-18 Vincent Lefèvre <vincent@vinc17.net> 36445 36446 Removed a comment that should have been removed in revision 1.8. 36447 364482003-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36449 36450 No longer perform the pre-check for exactness when first division step was 36451 actually a complete division. This introduced way too much overhead. 36452 36453 replaced test stream==0 by stream==NULL 36454 364552003-09-15 Vincent Lefèvre <vincent@vinc17.net> 36456 36457 Fixed a bug in mpfr_can_round_raw and added other mpfr_can_round 36458 tests. 36459 36460 Added a test to tests/tcan_round.c and assertions to round_prec.c. 36461 364622003-09-14 Vincent Lefèvre <vincent@vinc17.net> 36463 36464 Fixed mpfr_set_overflow, added tests for mpfr_set_underflow 36465 and mpfr_set_overflow, and reverted exp.c. 36466 364672003-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36468 36469 overflow with round to zero was incorrect 36470 364712003-09-11 Vincent Lefèvre <vincent@vinc17.net> 36472 36473 New functions mpfr_inits, mpfr_inits2 and mpfr_clears to initialize or 36474 free several floating-point numbers (written by Patrick Pélissier). 36475 364762003-09-09 Vincent Lefèvre <vincent@vinc17.net> 36477 36478 Replaced malloc/free by __gmp_allocate_func/__gmp_free_func in 36479 mpfr_zeta_pos. zeta.c still uses math (libm) functions -> TODO: 36480 remove this dependence. 36481 36482 Added a test that makes MPFR crash (coming from the mpfr_zeta crash). 36483 36484 Case that crashes MPFR (coming from test_generic) -> function test1. 36485 36486 Ended up by simplifying mpfr_ui_pow to fix it completely (with a 36487 call to mpfr_pow, in a way similar to other ui functions). There 36488 isn't significant differences with the old code anyway, and the 36489 case integer^integer wasn't optimized like in mpfr_pow. 36490 The test tui_pow now passes, but the test tzeta now fails! 36491 36492 Code clean-up and reindented. Replaced a 8 by CHAR_BIT, 36493 as CHAR_BIT isn't necessarily equal to 8. The bug seems 36494 to occur on all machines. 36495 364962003-09-08 Vincent Lefèvre <vincent@vinc17.net> 36497 36498 Added a test to reproduce a bug (to be fixed later) on all 64-bit 36499 machines. 36500 36501 Added a cast (useful under Linux/alpha). 36502 365032003-09-01 Vincent Lefèvre <vincent@vinc17.net> 36504 36505 Changes (Patrick Pelissier's suggestions): 36506 _ mpfr_print_rnd_mode now has __gmp_const char * return type; 36507 _ some corrections in mpfr.texi, documentencoding set. 36508 365092003-08-30 Kevin Ryde <user42@zip.com.au> 36510 36511 #Corrections to initial checkin. 36512 36513 (EXTRA_libfrtests_a_SOURCES): Add amd64.asm. 36514 36515 New file. 36516 36517 Correction to: 36518 (MPFR_CONFIGS): Add amd64-*-* to x86 test objects. 36519 36520 (tests_machine_prec_long_double): Add amd64 to the 36521 comments. 36522 36523 (MPFR_CONFIGS): Add amd64-*-* to x86 test objects. 36524 36525 (check_set_get): Improve error messages. 36526 36527 (ld_trace): New function. 36528 36529 (ldbl_max_struct): Use octal character constants, since hex 36530 is an ANSI-ism. 36531 365322003-08-07 Vincent Lefèvre <vincent@vinc17.net> 36533 36534 Avoid a potential overflow. 36535 365362003-08-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36537 36538 fixed pb found by Damien Fisher 36539 365402003-07-24 Vincent Lefèvre <vincent@vinc17.net> 36541 36542 If the exponent of the number is meaningless (src = NaN, inf or 0), 36543 0 is stored in expptr (behavior similar to the ISO C frexp function). 36544 365452003-07-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36546 36547 added one item 36548 365492003-07-19 Kevin Ryde <user42@zip.com.au> 36550 36551 (check_PROGRAMS): Add tget_d_2exp.c. 36552 36553 New file, partly derived from tget_d.c. 36554 36555 (mpfr_get_d_2exp): Ensure 0.5 <= abs(ret) < 1.0 is respected 36556 when rounding away from zero. 36557 36558 (d_trace): New function. 36559 36560 (Converting Floats): mpfr_get_d_2exp stores to a long. 36561 36562 (mpfr_get_d_2exp): Store exp in a long, same as 36563 mpz_get_d_2exp and mpf_get_d_2exp. 36564 365652003-07-15 Vincent Lefèvre <vincent@vinc17.net> 36566 36567 Updated comment. 36568 365692003-07-08 Vincent Lefèvre <vincent@vinc17.net> 36570 36571 Correction in a comment (patch by Torbjorn). 36572 365732003-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36574 36575 can_round returns 0 for NaN/Inf 36576 36577 fixed Uninitialized memory read in mpfr_can_round 36578 (when b is NaN or Inf) 36579 365802003-06-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36581 36582 fixed array bound write (need 6+1 characters in s1 to represent -@inf@ + \0) 36583 365842003-06-28 Kevin Ryde <user42@zip.com.au> 36585 36586 Add "const" to IEEE byte sequence data. 36587 36588 (tests_rand_end): Remove explicit __gmp_rands 36589 clearing, it's what RANDS_CLEAR does already. 36590 365912003-06-26 Kevin Ryde <user42@zip.com.au> 36592 36593 # Clarify nan/inf bits under efficiency. 36594 # Add mpfr_get_d3 ieee portability. 36595 # Add mpfr_random not wanted in mpf integration. 36596 365972003-06-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36598 36599 moved macros for [L]DBL_MANT_DIG in mpfr-impl.h 36600 366012003-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36602 36603 fixed several problems noticed by Kevin 36604 36605 changed test for 2^1024, using LDBL_MAX_EXP 36606 366072003-06-25 Kevin Ryde <user42@zip.com.au> 36608 36609 # Add efficiency of separate flag bit operations. 36610 366112003-06-24 Kevin Ryde <user42@zip.com.au> 36612 36613 Remove file, no longer used. 36614 36615 (libmpfr_a_SOURCES): Remove mpfr-math.h. 36616 36617 (MPFR_DBL_INFP, MPFR_DBL_INFM, MPFR_DBL_NAN): Make private 36618 definitions based on IEEE byte sequences, in particular avoid HUGE_VAL 36619 from mpfr-math.h since that's not infinity on hppa1.1-hp-hpux10. 36620 Remove includes of mpfr-math.h, math.h and stddef.h. 36621 36622 (check_inf_nan): New test. 36623 36624 (MPFR_C_LONG_DOUBLE_FORMAT): Use octal char constants, 36625 '\xHH' is an ANSI-ism. 36626 366272003-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36628 36629 check 2^1024 only when sizeof(long double) > sizeof(double) 36630 36631 correction to previous patch 36632 36633 correction to previous patch: problem was that x and u can be 0, 36634 then MPFR_PREC() undefined 36635 366362003-06-24 Kevin Ryde <user42@zip.com.au> 36637 36638 (tests_start_mpfr): Make stdout and stderr unbuffered. 36639 36640 (check_inexact): For pz, use at least MPFR_PREC_MIN 36641 since this is required by mpfr_set_prec. 36642 36643 # Correction to: 36644 # (check_inexact): For pz, use at least MPFR_PREC_MIN 36645 # since this is required by mpfr_set_prec. 36646 36647 (check_inexact): For pz, use at least MPFR_PREC_MIN 36648 since this is required by mpfr_set_prec. 36649 366502003-06-23 Kevin Ryde <user42@zip.com.au> 36651 36652 Remove mingw portability of random/rand48, no longer used. 36653 36654 Remove __setfpucw, no longer used. 36655 Remove mpfr_integer_p, done. 36656 Remove gmp rand functions in test programs, done. 36657 Remove MPFR_CHECK_RANDOMIZE, done (as GMP_CHECK_RANDOMIZE). 36658 366592003-06-21 Vincent Lefèvre <vincent@vinc17.net> 36660 36661 mpfr_random is deprecated. 36662 366632003-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36664 36665 changed since mpfr_random now can return 0 36666 366672003-06-20 Vincent Lefèvre <vincent@vinc17.net> 36668 36669 The distribution should now be uniform (mpfr_random implemented 36670 by calling mpfr_urandomb). 36671 36672 Take the current exponent range into account in mpfr_urandomb 36673 (which now returns an int). 36674 36675 Bug fix. 36676 366772003-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36678 36679 moved _gmp_rands_initialized stuff from tests_end_mpfr() to tests_rand_end() 36680 36681 reduced default number of tests 36682 improved style 36683 36684 reduced default number of tests 36685 improved style 36686 366872003-06-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36688 36689 fixed bug in mpfr_exp2_aux2 (spe175.testdrive.hp.com) 36690 36691 improved style 36692 36693 added more information in case of failure 36694 36695 removed randseed() stuff [obsolete now we use the GMP mechanism] 36696 36697 added memory test mechanism 36698 36699 added new test from Parks 36700 36701 fixed allocation problem (forgot to clear) 36702 367032003-06-19 Vincent Lefèvre <vincent@vinc17.net> 36704 36705 Removed drand48/lrand48/srand48 prototypes. 36706 367072003-06-18 Kevin Ryde <user42@zip.com.au> 36708 36709 Don't use mpz_get_d1, since a 53-bit double is not 36710 enough when long is 64-bits. 36711 36712 Don't use mpz_get_d1, since a 53-bit double is not 36713 enough when long is 64-bits. 36714 367152003-06-13 Kevin Ryde <user42@zip.com.au> 36716 36717 Use autoconf recommended style for time.h with 36718 sys/time.h. 36719 36720 (MPFR_CONFIGS): Require AC_HEADER_TIME, add 36721 AC_CHECK_HEADERS of sys/time.h. 36722 36723 (MPFR_CONFIGS): Add AC_CHECK_FUNCS of gettimeofday. 36724 367252003-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36726 36727 moved disabled test to "special" code 36728 36729 added reference to Higham 36730 36731 improved error analysis on erf 36732 36733 improved indentation 36734 367352003-06-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36736 36737 added support for random see 36738 (when env. variable GMP_CHECK_RANDOMIZE set) 36739 367402003-06-12 Vincent Lefèvre <vincent@vinc17.net> 36741 36742 Replaced misc random functions by GMP ones. 36743 36744 Added function randlimb(). 36745 36746 Fixed a few bugs concerning special values, code simplified. 36747 367482003-06-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36749 36750 added error function 36751 367522003-06-11 Vincent Lefèvre <vincent@vinc17.net> 36753 36754 Make x positive + some minor changes. 36755 36756 New version written by Torbjorn Granlund. 36757 367582003-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36759 36760 updated formular for erf 36761 added url for Abramowitz & Stegun 36762 367632003-06-10 Vincent Lefèvre <vincent@vinc17.net> 36764 36765 Added a comment concerning NO_MATH_DEFS. 36766 367672003-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36768 36769 made test faster 36770 36771 reduced test time 36772 36773 reduced time of test 36774 36775 reduced time 36776 367772003-06-09 Kevin Ryde <user42@zip.com.au> 36778 36779 Patch by Torbjorn: use puts not putchar, to avoid GNUPro compiler bug. 36780 367812003-06-08 Kevin Ryde <user42@zip.com.au> 36782 36783 Disable "8093416094703476*2^(-1075)" because mips64 36784 SGI cc doesn't seem to like the value (a denorm). 36785 36786 Include <stddef.h> before <math.h>, to avoid problems with 36787 gcc 3.2 on hppa2.0w-hp-hpux11.11. 36788 36789 (random): Remove prototype, since it conflicts with 36790 stdlib.h on osf4. 36791 367922003-05-28 Vincent Lefèvre <vincent@vinc17.net> 36793 36794 Added prototypes of non-standard functions that weren't always defined. 36795 36796 MPFR_EXP_CHECK is now defined when WANT_ASSERT is defined. 36797 367982003-05-26 Vincent Lefèvre <vincent@vinc17.net> 36799 36800 The special case s = 1 is taken into account (the previous code 36801 seemed to work, but perhaps not for rigorous reasons). 36802 36803 Added test for case s = 1. 36804 36805 (mpfr_round_prec): Bug fixed (case zero wasn't taken into account) 36806 and 'assertion failed' avoided. 36807 36808 Update related to MPFR_GET_EXP and MPFR_SET_EXP. 36809 36810 MPFR_GET_EXP (r) -> exp. 36811 36812 Function mpfr_swap rewritten using memcpy. 36813 36814 Updates/optimizations related to MPFR_GET_EXP and MPFR_SET_EXP. 36815 36816 Updates/optimizations related to MPFR_GET_EXP and MPFR_SET_EXP. 36817 368182003-05-23 Vincent Lefèvre <vincent@vinc17.net> 36819 36820 Code clean-up. Assertion failed avoided. 36821 368222003-05-22 Vincent Lefèvre <vincent@vinc17.net> 36823 36824 Update. 36825 36826 Macros MPFR_EXP_INVALID (invalid exponent value) and MPFR_EXP_CHECK 36827 added. Code update to use MPFR_GET_EXP and MPFR_SET_EXP instead of 36828 MPFR_EXP to allow more bug detection related to special values. 36829 Macros MPFR_SET_NAN, MPFR_SET_INF, MPFR_SET_ZERO and MPFR_INIT set 36830 the exponent of the number to MPFR_EXP_INVALID if MPFR_EXP_CHECK 36831 is defined. Compile with -DMPFR_EXP_CHECK and make check to see 36832 the potential problems; currently, 40 of 76 tests fail. 36833 368342003-05-21 Vincent Lefèvre <vincent@vinc17.net> 36835 36836 #include "gmp-impl.h" added. 36837 36838 MPFR_ASSERTD: use MPFR_ASSERTN instead of ASSERT_ALWAYS so that 36839 it can be used as an expression. 36840 New macros MPFR_GET_EXP and MPFR_SET_EXP (they should almost 36841 completely replace MPFR_EXP). 36842 368432003-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36844 36845 added test 'special' 36846 36847 fixed bug when n_bits larger than size*BITS_PER_MP_LIMB 36848 368492003-05-18 Vincent Lefèvre <vincent@vinc17.net> 36850 36851 Bugs fixed (special cases). 36852 368532003-05-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36854 36855 removed dummy test tdump 36856 36857 compatibility with mpf is done 36858 36859 updated mpfr_cmp_d 36860 added mpfr_cmp_d in mpf2mpfr.h and mpfr.texi 36861 368622003-05-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 36863 36864 Added cmp_d.c, tcmp_d.c. 36865 36866 Added cmp_d/tcmp_d. 36867 368682003-04-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36869 36870 moved test for NaN/Inf 36871 36872 added Riemann Zeta function (contribution from Jean-Luc Re'my) 36873 368742003-04-08 Kevin Ryde <user42@zip.com.au> 36875 36876 Move macros down below @copying. 36877 36878 Add @: after various abbreviations. 36879 368802003-04-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36881 36882 fixed pb with count_leading_zeros (n=0) 36883 36884 added test for bug found by Franky Backeljauw 36885 36886 fixed bug found by Franky 36887 368882003-03-28 Vincent Lefèvre <vincent@vinc17.net> 36889 36890 Added some asserts. 36891 368922003-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36893 36894 fixed pb found by Will Galway <galway@pims.math.ca> (continued) 36895 368962003-03-28 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 36897 36898 Patches from W. Galway. 36899 369002003-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36901 36902 fixed reference to Plouffe/Bailey/Borwein formula 36903 369042003-03-27 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 36905 36906 Credits for the pi formula modified. 36907 369082003-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36909 36910 changed back "unsigned char *" to "char *" 36911 369122003-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36913 36914 char * -> const unsigned char * for mpfr_set_str, mpfr_set_str_raw, 36915 and mpfr_init_set_str 36916 369172003-03-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36918 36919 removed unused variable 36920 369212003-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36922 36923 fixed documentation bug in mpfr_log2 (exact results) 36924 36925 changed new test in 'check4' style 36926 369272003-03-17 Vincent Lefèvre <vincent@vinc17.net> 36928 36929 Update concerning underflow problems. 36930 369312003-03-17 Kevin Ryde <user42@zip.com.au> 36932 36933 (main): Comment out underflows(), until it works. 36934 36935 Comment out an assert tickled for an f with exponent 36936 near MPFR_EMIN_MIN. 36937 369382003-03-16 Kevin Ryde <user42@zip.com.au> 36939 36940 (LONGDOUBLE_NAN_ACTION): New version for IEEE quad big 36941 endian, fixing HP cc. 36942 (WANT_LONGDOUBLE_VOLATILE): New define for when LONGDOUBLE_VOLATILE is 36943 wanted. 36944 (WANT_GMPFR_LONGDOUBLE_VOLATILE): New define for when 36945 __gmpfr_longdouble_volatile is wanted. 36946 36947 Use WANT_GMPFR_LONGDOUBLE_VOLATILE. 36948 36949 (MPFR_C_LONG_DOUBLE_FORMAT): Add IEEE quad big endian, 36950 check long double exists before testing. 36951 369522003-03-14 Vincent Lefèvre <vincent@vinc17.net> 36953 36954 Added underflow test showing a bug in mpfr_pow. 36955 369562003-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36957 36958 fixed bug for x=1 36959 369602003-03-14 Vincent Lefèvre <vincent@vinc17.net> 36961 36962 This wasn't a compiler bug; mpfr_pow is really buggy. 36963 Added some asserts to show that. 36964 36965 The infinite loop concerning 1^0.5 was probably due to a bug in the 36966 compiler [cc (GCC) 3.2.3 20030309 (Debian prerelease)]: adding some 36967 printf's changes the values of the variables and the correct result 36968 is returned. 36969 369702003-03-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36971 36972 fixed sign problem in particular_cases() 36973 36974 declared mpfr_ui_pow_is_exact as static 36975 36976 gnu-style 36977 369782003-03-13 Vincent Lefèvre <vincent@vinc17.net> 36979 36980 Removed some useless and inaccurate tests on NaN, infinities, zeros 36981 (as the behavior of mpfr_pow on such particular cases has changed); 36982 similar tests were added to "tests/tpow.c". 36983 36984 Test of mpfr_pow: particular cases. Bugs. 36985 369862003-03-12 Vincent Lefèvre <vincent@vinc17.net> 36987 36988 Special cases for mpfr_pow(). 36989 369902003-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 36991 36992 when stream=NULL, use stdout (as indicated in the documentation) 36993 369942003-03-03 Vincent Lefèvre <vincent@vinc17.net> 36995 36996 mpfr_sin_sign -> static. 36997 36998 Useless declaration removed. 36999 37000 Special cases for mpfr_pow: like Section F.9.4.4 of the 37001 ISO C99 standard. 37002 37003 Prototype fixed. 37004 370052003-02-27 Vincent Lefèvre <vincent@vinc17.net> 37006 37007 mpfr_set_str now accepts a binary exponent for base 16 37008 (as defined by the ISO C99 standard). 37009 37010 Comment concerning the installation of MPFR: done. 37011 37012 New recommendation to install MPFR. 37013 370142003-02-24 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 37015 37016 Replaced NaN, Inf by @NaN@, @Inf@ [for bases > 24]. 37017 370182003-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37019 37020 added one test 37021 370222003-02-21 Vincent Lefèvre <vincent@vinc17.net> 37023 37024 Fixed cast (though unnecessary). 37025 370262003-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37027 37028 added one test 37029 370302003-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37031 37032 added mpf_compat, mpfr_compat 37033 37034 test files for mpf-mpfr compatibility 37035 37036 added mpfr_init_set_str 37037 37038 added "const" to char* arg. of mpfr_init_set_str 37039 37040 added macros for new mpfr functions 37041 changed some old macros 37042 37043 mpfr_isinteger -> mpfr_integer_p 37044 37045 document new functions (fits_*, get_ui, get_si, get_d_2exp) 37046 added integer_p that was not documented 37047 37048 mpfr_isinteger -> mpfr_integer_p 37049 new functions: mpfr_fits_*, mpfr_get_ui, mpfr_get_si, mpfr_get_d_2exp 37050 37051 added mpfr_get_d_2exp 37052 37053 new functions mpfr_fits_* and mpfr_get_ui/si 37054 37055 new functions mpfr_fits_* and mpfr_get_[us]i 37056 370572003-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37058 37059 check for +/-0.0 after variable set to NaN 37060 370612003-01-25 Vincent Lefèvre <vincent@vinc17.net> 37062 37063 Suppressed the underscores of AC_CHECK_LIBM in comments, otherwise 37064 aclocal 1.4-p6 includes libtool code in aclocal.m4 and this leads 37065 to compilation problems. 37066 370672003-01-25 Kevin Ryde <user42@zip.com.au> 37068 37069 (_MPFR_H_HAVE_FILE): Copy FILE define tests from gmp.h, adds 37070 Borland, Microsoft and Apple MPW. 37071 37072 (libmpfr_a_SOURCES): Add volatile.c. 37073 37074 New file. 37075 37076 (Isnan_ld): New function based on LONGDOUBLE_NAN_ACTION, use it 37077 instead of LONGDOUBLE_ISNAN. 37078 37079 (LONGDOUBLE_ISNAN): Remove. 37080 37081 (LONGDOUBLE_ISNAN): Remove this, use LONGDOUBLE_NAN_ACTION instead. 37082 37083 (LONGDOUBLE_NAN_ACTION): New macro. 37084 370852003-01-24 Kevin Ryde <user42@zip.com.au> 37086 37087 Allow "e" exponent in base<=10 not <10. Restrict "E" 37088 exponent to base<=10 too, since digits are not case sensitive. 37089 370902003-01-24 Vincent Lefèvre <vincent@vinc17.net> 37091 37092 Prototypes: use static. Some code reformatting. 37093 37094 The sign wasn't set when the result was zero. 37095 370962003-01-24 Kevin Ryde <user42@zip.com.au> 37097 37098 Reject "", "+" and "-", also fixing an attempt to allocate a 0 length 37099 block in these cases. 37100 37101 Clear NAN and INF flags when setting result to zero. 37102 371032003-01-24 Vincent Lefèvre <vincent@vinc17.net> 37104 37105 Fixed prototypes (use static...). 37106 37107 Missing #include. 37108 371092003-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37110 37111 workaround for gcc bug on m68040-unknown-netbsd1.4.1 37112 37113 added cast to double 37114 371152003-01-23 Kevin Ryde <user42@zip.com.au> 37116 37117 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37118 not "double" nans and infs. 37119 371202003-01-22 Kevin Ryde <user42@zip.com.au> 37121 37122 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37123 not "double" nans and infs. 37124 37125 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37126 not "double" nans and infs. 37127 37128 Use tests_start_mpfr / tests_end_mpfr. 37129 37130 Use tests_start_mpfr / tests_end_mpfr. 37131 37132 Use tests_start_mpfr / tests_end_mpfr. 37133 (check_large): Use __gmp_free_func to free mpfr_get_str result. 37134 37135 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37136 not "double" nans and infs. Use tests_start_mpfr / tests_end_mpfr. 37137 37138 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37139 not "double" nans and infs. 37140 37141 Remove tests involving "double" nans and infs, covered by check_nan. 37142 37143 Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests, 37144 not "double" nans and infs. 37145 371462003-01-18 Kevin Ryde <user42@zip.com.au> 37147 37148 Move log_b2.h from include_HEADERS to libmpfr_a_SOURCES, it doesn't 37149 want to be installed. 37150 37151 Correction to memory leak fix, need "result" for final rounding. 37152 371532003-01-17 Kevin Ryde <user42@zip.com.au> 37154 37155 Fix two memory leaks. 37156 37157 (LDADD): Add $(MPFR_LIBM). 37158 37159 Remove -lm setups, now handled by MPFR_CHECK_LIBM. 37160 37161 (MPFR_CHECK_LIBM): New macro. 37162 (MPFR_CONFIGS): Use it. 37163 371642003-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37165 37166 added copyright notices and license statements 37167 37168 now use __gmpfr_floor_log2 instead of floor/log to get rid of math.h 37169 37170 removed unused function dagm(), and get rid of math.h 37171 added tests for NaN, Inf's 37172 371732003-01-17 Vincent Lefèvre <vincent@vinc17.net> 37174 37175 Re-added $OBJEXT, using AC_REQUIRE([AC_OBJEXT]) for old autoconf. 37176 371772003-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37178 37179 put back math.h 37180 37181 added back math.h (for sqrt) 37182 37183 added log_b2.h in include_HEADERS 37184 37185 added tsin_cos 37186 37187 added #ifdef HAVE_DENORMS for denormalized test 37188 37189 removed math.h 37190 37191 added year 2003 in copyright line 37192 removed math.h 37193 37194 added 2003, removed math.h 37195 37196 added 2003 37197 37198 removed math.h 37199 37200 added year 2003 37201 removed math.h 37202 37203 patch for compiler bug on hppa2.0w-hp-hpux11.11 37204 372052003-01-16 Vincent Lefèvre <vincent@vinc17.net> 37206 37207 Macro LONGDOUBLE_ISNAN wasn't defined. 37208 372092003-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37210 37211 now always define Isnan 37212 37213 moved LONGDOUBLE_ISNAN to mpfr-test.h 37214 37215 removed check from isnan 37216 37217 replaced isnan() by Isnan() 37218 372192003-01-16 Vincent Lefèvre <vincent@vinc17.net> 37220 37221 AC_PREREQ(2.50) added (useful when both autoconf 2.13 and autoconf 37222 2.50 are installed, with a wrapper to select the required version). 37223 37224 Comment in mpfr_test_init: s/preprocessor/compiler/. 37225 372262003-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37227 37228 fixed pb in mpfr_test_init with the compiler optimizing too much 37229 (this happened on Alpha with -O1 or higher) 37230 372312003-01-15 Vincent Lefèvre <vincent@vinc17.net> 37232 37233 Standard prototype only. Particular cases added. 37234 372352003-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37236 37237 moved common prototype for mpn_exp in mpfr-impl.h 37238 37239 removed spurious ; after MPFR_ESIZE 37240 added prototype for mpn_exp 37241 37242 removed items done 37243 37244 new tests from Alain Delplanque 37245 37246 new version using mpn_set_str 37247 [written by Alain Delplanque, edited by Paul Zimmermann] 37248 372492003-01-15 Vincent Lefèvre <vincent@vinc17.net> 37250 37251 Replace $OBJEXT by o (as $OBJEXT isn't defined everywhere). 37252 37253 A ` must be quoted to avoid an error with Autoconf 2.13. 37254 37255 Use type mp_prec_t for precisions. 37256 37257 Source re-indented. 37258 37259 Several bugs fixed concerning the particular cases. 37260 <stdio.h> and <stdlib.h> not included by default. 37261 int mpfr_gamma _PROTO ... removed (was useless). 37262 372632003-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37264 37265 get rid of ceil() call, that requires -lm 37266 372672003-01-14 Kevin Ryde <user42@zip.com.au> 37268 37269 Force LDBL_MANT_DIG on IEEE extended, to avoid problems with 37270 some i386 gcc. 37271 37272 Avoid problems with bad LDBL_MAX and LDBL_MANT_DIG on some i386 gcc. 37273 37274 (MPFR_C_LONG_DOUBLE_FORMAT): New macro. 37275 (MPFR_CONFIGS): Use it. 37276 372772003-01-11 Vincent Lefèvre <vincent@vinc17.net> 37278 37279 Required casts added (and switch from uint to ulong); 37280 in particular, useful on Alpha. 37281 372822003-01-10 Kevin Ryde <user42@zip.com.au> 37283 37284 # Add a copyright year. 37285 37286 Tolerate empty argv[1], which can arise from ancient bash executing 37287 the libtool shared library wrapper script. 37288 37289 Tolerate empty argv[1], which can arise from ancient bash executing 37290 the libtool shared library wrapper script. 37291 37292 Avoid unnecessary extra power of 2 squaring, so as not to provoke an 37293 overflow exception when result is in range. 37294 372952003-01-10 Vincent Lefèvre <vincent@vinc17.net> 37296 37297 Extended precision detection fixed. 37298 372992003-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37300 37301 fixed possible overflow when EXP=1024 37302 37303 rewritten to avoid overflows 37304 37305 added one test 37306 373072003-01-08 Kevin Ryde <user42@zip.com.au> 37308 37309 # Add a copyright year. 37310 37311 #Add a copyright year. 37312 37313 (mpn_exp): Don't store -1 in a uint then return it as a long. 37314 Fixes systems such as alpha where sizeof(uint)!=sizeof(long). 37315 37316 (AC_CHECK_HEADERS): Remove fpu_control.h, no longer required. 37317 37318 Use tests_machine_prec_long_double. 37319 Use LDBL_MAX for largest value and to find largest power of 2. 37320 37321 (__setfpucw, _FPU_EXTENDED, etc): Remove these setups. 37322 (tests_machine_prec_double, tests_machine_prec_long_double, 37323 x86_fstcw, x86_fldcw): Add prototypes. 37324 37325 (tests_machine_prec_double, tests_machine_prec_long_double): New functions. 37326 (mpfr_test_init): Replace __setfpucw with tests_machine_prec_double. 37327 37328 (MPFR_CONFIGS): Add tests/x86.asm support. 37329 37330 (X86_PATTERN): New define, supporting acinclude.m4. 37331 37332 Add x86.asm support. 37333 37334 New file. 37335 373362003-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37337 37338 fixed pb for underflow and rounding to nearest 37339 37340 added macro LONGDOUBLE_ISNAN 37341 use LONGDOUBLE_ISNAN in set_ld instead of cast to double and DOUBLE_ISNAN 37342 (did raise exception under freebsd) 37343 373442003-01-07 Vincent Lefèvre <vincent@vinc17.net> 37345 37346 Added assertions that can be resolved at compile time: the exponents 37347 must be representable in a long int (IMHO, this limitation should be 37348 avoided in a clean way). 37349 373502003-01-06 Kevin Ryde <user42@zip.com.au> 37351 37352 Remove mpfr_get_ld, done. 37353 37354 Remove mpfr_set_machine_rnd_mode, done. 37355 373562003-01-06 Vincent Lefèvre <vincent@vinc17.net> 37357 37358 Bug fix: __mpfr_emax -> __gmpfr_emax. 37359 373602003-01-06 Kevin Ryde <user42@zip.com.au> 37361 37362 Use separate function calls to second strncasecmp and strncmp 37363 for consistency and to avoid gcc warnings. 37364 373652003-01-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37366 37367 fixed infinite loop for 2^integer 37368 373692003-01-06 Vincent Lefèvre <vincent@vinc17.net> 37370 37371 Use digit_value_in_base for the part after the '.'. 37372 37373 Static function digit_value_in_base is now compatible with any locale. 37374 373752003-01-03 Kevin Ryde <user42@zip.com.au> 37376 37377 (<sys/fpu.h>) [__mips]: Move from mpfr-test.h to tests/tests.c, 37378 and conditionalize with HAVE_SYS_FPU_H. 37379 37380 (AC_CHECK_HEADERS): Add sys/fpu.h. 37381 37382 (HAVE_DENORMS) [__mips]: Remove this, let the configure test decide. 37383 37384 Use separate function calls to strncasecmp and strncmp, rather than 37385 ?: on function pointers, since the latter demands declarations not 37386 present on SunOS. Both forms are optimized the same by gcc. 37387 373882003-01-03 Vincent Lefèvre <vincent@vinc17.net> 37389 37390 Added some potential bugs (mpfr_exp2 is known to have such a bug). 37391 373922003-01-02 Kevin Ryde <user42@zip.com.au> 37393 37394 Add gmp-impl.h for __gmp_free_func. 37395 373962002-12-16 Vincent Lefèvre <vincent@vinc17.net> 37397 37398 Suppress some #define and fix symbol names (makes code cleaner): 37399 perl -pi -e 's/__mpfr_flags/__gmpfr_flags/g' **/*.{c,h} 37400 perl -pi -e 's/__mpfr_emin/__gmpfr_emin/g' **/*.{c,h} 37401 perl -pi -e 's/__mpfr_emax/__gmpfr_emax/g' **/*.{c,h} 37402 perl -pi -e 's/__mpfr_default_fp_bit_precision/__gmpfr_default_fp_bit_precision/g' **/*.{c,h} 37403 perl -pi -e 's/__gmp_default_rounding_mode/__gmpfr_default_rounding_mode/g' **/*.{c,h} 37404 perl -pi -e 's/__mpfr_const_log2_prec/__gmpfr_const_log2_prec/g' **/*.{c,h} 37405 perl -pi -e 's/__mpfr_const_pi_prec/__gmpfr_const_pi_prec/g' **/*.{c,h} 37406 perl -pi -e 's/_mpfr_ceil_log2/__gmpfr_ceil_log2/g' **/*.{c,h} 37407 perl -pi -e 's/_mpfr_floor_log2/__gmpfr_floor_log2/g' **/*.{c,h} 37408 perl -pi -e 's/_mpfr_ceil_exp2/__gmpfr_ceil_exp2/g' **/*.{c,h} 37409 perl -pi -e 's/_mpfr_isqrt/__gmpfr_isqrt/g' **/*.{c,h} 37410 perl -pi -e 's/_mpfr_cuberoot/__gmpfr_cuberoot/g' **/*.{c,h} 37411 perl -pi -e 's/^#define __gmpfr_.*\n//' *.h 37412 374132002-12-13 Vincent Lefèvre <vincent@vinc17.net> 37414 37415 Update. 37416 37417 IEEE 754 / IEEE P754 -> IEEE 754-1985. 37418 37419 Correction. 37420 37421 Added a note about the signed zero. 37422 37423 Assertion re-added. 37424 37425 Update for new version of automake/autoconf. 37426 37427 depcomp script added for new version of automake. 37428 374292002-12-12 Kevin Ryde <user42@zip.com.au> 37430 37431 Don't -D define PACKAGE_VERSION etc, to avoid conflict with gmp config.h. 37432 374332002-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37434 37435 added paragraph about accuracy 37436 37437 rewritten unclear paragraph about precision 37438 37439 added one item 37440 37441 use MPN_NORMALIZE_NOT_ZERO instead of loop 37442 374432002-12-11 Vincent Lefèvre <vincent@vinc17.net> 37444 37445 Added #include "mpfr.h" (needed by mpfr-test.h as it uses 37446 mp_rnd_t in one of the prototypes). 37447 374482002-12-10 Vincent Lefèvre <vincent@vinc17.net> 37449 37450 Patch by Torbjorn Granlund <tege@swox.com>: Don't use TMP_ allocation 37451 mechanism for fixed size objects. Resulting streamlining. Misc 37452 addressing changes to work around GNUPro bugs. 37453 Patch by VL: Some other changes in mpfr_set_d. 37454 374552002-12-07 Vincent Lefèvre <vincent@vinc17.net> 37456 37457 (mpfr_const_euler_S, mpfr_const_euler_R) 37458 Make declaration match prototype (patch by Torbjorn Granlund). 37459 374602002-12-04 Vincent Lefèvre <vincent@vinc17.net> 37461 37462 Update from ftp://ftp.gnu.org/pub/gnu/config/ 37463 374642002-12-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37465 37466 Use @ifnottex/@end iffnotex instead of @ifinfo/@end ifinfo 37467 374682002-12-02 Vincent Lefèvre <vincent@vinc17.net> 37469 37470 Fix rnd_mode.c (again). 37471 374722002-12-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37473 37474 put redefinitions of external symbols just before prototypes 37475 37476 updated 37477 37478 added new known bugs 37479 374802002-11-29 Kevin Ryde <user42@zip.com.au> 37481 37482 Add notes on mpf_t maintaining actual size for efficiency. 37483 37484 Remove mpfr_set_machine_rnd_mode task. 37485 37486 Tweak some math formatting for tex. 37487 37488 (mpfr_set_machine_rnd_mode): Move prototype to mpfr-test.h. 37489 37490 (libfrtests_a_SOURCES): Add rnd_mode.c. 37491 37492 (libmpfr_a_SOURCES): Remove rnd_mode.c. 37493 37494 Remove file, moved to tests directory. 37495 37496 New file, moved from top-level directory. 37497 37498 (Rounding Modes): Remove mpfr_set_machine_rnd_mode. 37499 37500 Use GNU style code layout. 37501 37502 Use GNU style code layout. 37503 375042002-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37505 37506 redefined external symbols in the __gmpfr namespace 37507 375082002-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37509 37510 added one fprintf in case of error 37511 375122002-11-25 Vincent Lefèvre <vincent@vinc17.net> 37513 37514 mpfr_set_machine_rnd_mode fixed to compile on some architectures 37515 (e.g. ARM). Now returns an int. 37516 37517 Bug fixed. 37518 375192002-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37520 37521 removed all tests that compare to libm 37522 37523 changed to distinguish mpfr failures from libm failures 37524 37525 added 3 tests that make libm fail under HP-PA 37526 375272002-11-23 Vincent Lefèvre <vincent@vinc17.net> 37528 37529 Update. 37530 375312002-11-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37532 37533 forgot to remove debug statement 37534 37535 fixed bug (infinite loop) for exact powers 37536 375372002-11-21 Kevin Ryde <user42@zip.com.au> 37538 37539 More on tuned thresholds, more on config.h etc, new section on mpf/mpfr 37540 integration. 37541 375422002-11-20 Vincent Lefèvre <vincent@vinc17.net> 37543 37544 Code clean-up. 37545 375462002-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37547 37548 fixed some problems found by insure 37549 37550 forgotten fclose() call 37551 37552 fixed array bound write 37553 375542002-11-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37555 37556 fixed non-ansi features 37557 37558 added explicit cast 37559 375602002-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37561 37562 added mpfr_cbrt 37563 375642002-10-20 Vincent Lefèvre <vincent@vinc17.net> 37565 37566 Update. 37567 375682002-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37569 37570 fixed bug with wrong sign detection 37571 375722002-10-19 Vincent Lefèvre <vincent@vinc17.net> 37573 37574 Some fixes to avoid overflows. 37575 375762002-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37577 37578 fixed bug for large arguments 37579 37580 improved code for rounding to nearest 37581 37582 fixed bug for EXP(x) > EMAX/2 37583 37584 modified description of hypot and cbrt 37585 375862002-10-18 Vincent Lefèvre <vincent@vinc17.net> 37587 37588 Update. 37589 37590 Added test showing bug in sign detection. 37591 37592 Added newline. 37593 37594 Bug in mpfr_hypot. 37595 37596 Added test that makes mpfr_hypot fail. 37597 37598 Precision Nt: int -> mp_prec_t. 37599 37600 Added some tests. 37601 37602 main () -> main (void). 37603 376042002-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37605 37606 added tcbrt.c, test file for mpfr_cbrt 37607 37608 fixed overflow problem 37609 37610 completely rewritten using mpz_root 37611 37612 added cbrt 37613 376142002-10-17 Vincent Lefèvre <vincent@vinc17.net> 37615 37616 C9X -> ISO/IEC 9899:1999 (ISO C99). 37617 37618 Cases NaN and -0.0 taken into account. 37619 376202002-10-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37621 37622 added check for +0 and -0 37623 37624 added one test (2^1024) 37625 37626 fixed bug when overflow for double type 37627 37628 added mpfr_set_ld and mpfr_get_ld 37629 376302002-10-16 Vincent Lefèvre <vincent@vinc17.net> 37631 37632 Fix for -0.0. 37633 376342002-10-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37635 37636 constants for mpfr_get_str and mpfr_set_str 37637 376382002-10-16 Vincent Lefèvre <vincent@vinc17.net> 37639 37640 Obsolete comment removed. 37641 37642 Removed log_b2.h as it doesn't seem to be necessary. 37643 376442002-10-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37645 37646 added prototype for mpfr_get_ld 37647 37648 added mpfr_get_ld and tests for set_ld/get_ld 37649 37650 added cast to long double 37651 376522002-10-16 Vincent Lefèvre <vincent@vinc17.net> 37653 37654 Update (tset_ld). 37655 37656 Test removed as the minimal precision for a long double is something 37657 like 10 decimal digits. Anyway, there are implementations for which 37658 long double = double = IEEE double precision. 37659 37660 DBL_MANT_DIG and LDBL_MANT_DIG are normally defined by <float.h>. 37661 376622002-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37663 37664 added mpfr_set_ld and test file 37665 376662002-10-13 Vincent Lefèvre <vincent@vinc17.net> 37667 37668 Bug in mpfr_sin (and perhaps other functions): error analysis. 37669 37670 Bug fixed (found by Dmitrii Baksheyev): atan(1) cannot be exact. 37671 376722002-10-08 Kevin Ryde <user42@zip.com.au> 37673 37674 Remove mpfr_get_str using mpn_get_str (done). 37675 Remove no grepping for __setfpucw, done (near enough). 37676 New thread-safety section, add const_pi and const_log2 caching. 37677 New portability section, add mingw random and _mpfr_ceil_log2 IEEE-ism. 37678 37679 (AC_MY_LIBS): Show the filename in the error message. 37680 376812002-10-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37682 37683 mpfr_get_default_prec was missing (thanks to F. Morain) 37684 376852002-09-30 Vincent Lefèvre <vincent@vinc17.net> 37686 37687 Removed get_str.c bug, as the mpfr_get_str function has 37688 completely been rewritten. 37689 376902002-09-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37691 37692 fixed wrong inexact flag for a - b where a and b are of different signs 37693 and EXP(a) < EXP(b) 37694 37695 added test for inexact flag (bug found by Andreas Enge) 37696 376972002-09-23 Kevin Ryde <user42@zip.com.au> 37698 37699 (mpfr_init, mpfr_init2, mpfr_set_prec): Make void return, these always 37700 succeed. 37701 377022002-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37703 37704 fixed various tiny problems 37705 37706 added more tests for mpfr_urandomb, and for small precision 37707 37708 fixed bugs in mpfr_random2 (wrong exponent, invalid numbers) 37709 37710 added checks for mpfr_random2 37711 37712 cmp_abs -> cmpabs (for compatibility with mpz) 37713 377142002-09-21 Kevin Ryde <user42@zip.com.au> 37715 37716 (Converting Floats): Don't refer to the internal _mp_free_func with 37717 mpfr_get_str. 37718 37719 (Special Functions, Internals): Make these into nodes. 37720 377212002-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37722 37723 now accept uppercase letters too 37724 37725 added test for uppercase letters 37726 377272002-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37728 37729 now mpfr_agm returns an int (inexact flag) 37730 377312002-09-13 Vincent Lefèvre <vincent@vinc17.net> 37732 37733 Some more information. 37734 377352002-09-12 Vincent Lefèvre <vincent@vinc17.net> 37736 37737 On HP-UX, use the +allowunsats switch for ld, otherwise ld complains 37738 that some GMP symbols are unsatisfied. 37739 377402002-09-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37741 37742 fixed bug in reflection formula for x<1 37743 377442002-08-23 Vincent Lefèvre <vincent@vinc17.net> 37745 37746 MPFR now needs GMP 4.1 or higher. 37747 377482002-08-22 Kevin Ryde <user42@zip.com.au> 37749 37750 (__mpfr_nan): Clarify comments about HP C and alpha. 37751 37752 (_MPFR_NAN_BYTES, _MPFR_INFP_BYTES, _MPFR_INFM_BYTES): 37753 Use HAVE_DOUBLE_IEEE_LITTLE_ENDIAN etc to select endianness, not a big 37754 block of #ifdefs. 37755 377562002-08-12 Vincent Lefèvre <vincent@vinc17.net> 37757 37758 strcasecmp.c -> strcasecmp.c & strncasecmp.c 37759 377602002-08-07 Kevin Ryde <user42@zip.com.au> 37761 37762 Use $(top_builddir) consistently with libmpfr.a, for the benefit of 37763 srcdir!=builddir. 37764 377652002-08-02 Vincent Lefèvre <vincent@vinc17.net> 37766 37767 Don't touch user specified flags (CFLAGS). [patch by Kevin Ryde] 37768 377692002-07-30 Vincent Lefèvre <vincent@vinc17.net> 37770 37771 Better check for strcasecmp and strncasecmp. Bug fixed. 37772 377732002-07-28 Vincent Lefèvre <vincent@vinc17.net> 37774 37775 Functions mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p, 37776 mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p. 37777 37778 Use AUTOMAKE_OPTIONS = gnu [suggested by Kevin Ryde] 37779 37780 check target -> TESTS = $(check_PROGRAMS) [suggested by Kevin Ryde] 37781 37782 strcasecmp and strncasecmp -> mpfr_strcasecmp and mpfr_strncasecmp 37783 if they are provided by MPFR. 37784 37785 TMP_MARK missing (patch by Kevin Ryde). 37786 377872002-07-26 Vincent Lefèvre <vincent@vinc17.net> 37788 37789 Update. 37790 37791 Update (mainly concerning CVS use). 37792 37793 Prototype of mpfr_setmax and mpfr_setmin changed (exponent given). 37794 In mpfr_exp for x ~= 0, add_one_ulp and sub_one_ulp are no longer 37795 used (sub_one_ulp was incorrect). These cases should now be faster. 37796 Small fix in mpfr_nextabove, mpfr_nextbelow and mpfr_nexttoward. 37797 37798 New internal functions mpfr_setmin and mpfr_setmax. 37799 New functions mpfr_nextabove, mpfr_nextbelow, mpfr_nexttoward. 37800 Small fix in mpfr_sub_one_ulp. 37801 378022002-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37803 37804 improved the computation of g = ceil((e-1)/log_2(beta)), using two tables 37805 378062002-07-25 Vincent Lefèvre <vincent@vinc17.net> 37807 37808 Function mpfr_check_range now propagates the inexact ternary value. 37809 Function mpfr_restore_emin_emax OR's the saved flags with the current 37810 flags, as this is more useful in general. 37811 Macro MPFR_RESTORE_RET removed (no longer useful). 37812 378132002-07-24 Vincent Lefèvre <vincent@vinc17.net> 37814 37815 Change concerning an assertion, due to GMP limitation. 37816 378172002-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37818 37819 gnu indentation 37820 37821 reduce range of tests (did take too much time) 37822 37823 added plenty of new cases, now covers all lines of get_str.c 37824 37825 updated documentation of mpfr_get_str 37826 37827 completely new version, written by Alain Delplanque and Paul Zimmermann. 37828 It now directly uses mpn_get_str, with subquadratic complexity. 37829 About 3 times faster than previous version in most cases. 37830 378312002-07-24 Vincent Lefèvre <vincent@vinc17.net> 37832 37833 Bug fixed: unsigned int variables changed to int to avoid operations 37834 with mixed signed/unsigned variables and unwanted casts. 37835 37836 Function mpfr_frac and tests added. 37837 37838 Bug fixed (0 was forgotten). 37839 37840 Optimization: mpfr_trunc no longer used! 37841 37842 mpfr_isinteger extended to non-fp numbers and to zero. 37843 37844 Simpler test. 37845 378462002-07-23 Vincent Lefèvre <vincent@vinc17.net> 37847 37848 Re-adding mul.c with fixed permissions. 37849 37850 Temporarily removing mul.c in order to try to fix its permissions. 37851 37852 Function mpfr_check_range improved in the underflow case. 37853 378542002-07-22 Vincent Lefèvre <vincent@vinc17.net> 37855 37856 Update. 37857 378582002-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37859 37860 now dump in base 2 37861 37862 forgot one free() call 37863 378642002-07-22 Vincent Lefèvre <vincent@vinc17.net> 37865 37866 mpfr_pow bug removed. 37867 37868 Reindentation. 37869 37870 pow.c: bug fixed (in the call to mpfr_can_round). 37871 tpow.c: mpfr_clear added. 37872 37873 Modified the two tests to make the bug appear. 37874 378752002-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37876 37877 added two tests 37878 378792002-07-19 Vincent Lefèvre <vincent@vinc17.net> 37880 37881 Updated note concerning rcs2log. 37882 37883 Line mpfr_get_exp / mpfr_set_exp removed. 37884 378852002-07-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37886 37887 added function check_large 37888 378892002-07-15 Vincent Lefèvre <vincent@vinc17.net> 37890 37891 Update from ftp://ftp.gnu.org/pub/gnu/config/ 37892 378932002-07-14 Vincent Lefèvre <vincent@vinc17.net> 37894 37895 Add __sparc__ (patch by Nix <nix@esperi.demon.co.uk>). 37896 37897 Note about randomized tests. 37898 378992002-07-04 Vincent Lefèvre <vincent@vinc17.net> 37900 37901 Bug concerning the rounding of pow(). 37902 37903 mpfr_pow() didn't work when the exponent was a negative integer. 37904 37905 mpfr_get_z_exp() didn't work when the MPFR number was negative. 37906 37907 New functions mpfr_get_exp and mpfr_set_exp. 37908 379092002-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37910 37911 removed duplicated entry (thread-safe) 37912 37913 added new items 37914 37915 added special cases 37916 37917 added one reference (nocite) 37918 37919 added one reference 37920 37921 fixed bug in return value 37922 37923 new additions 37924 37925 added pointer to mpfr_inp_str in mpfr_set_str 37926 379272002-06-26 Vincent Lefèvre <vincent@vinc17.net> 37928 37929 Update. 37930 37931 MP_LIMB_T_HIGHBIT -> MPFR_LIMB_HIGHBIT. 37932 MPFR is now compatible with GMP 4.1. 37933 379342002-06-15 Vincent Lefèvre <vincent@vinc17.net> 37935 37936 Added: make MPFR thread-safe. 37937 379382002-06-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37939 37940 fixed bug found by Gerardo Ballabio 37941 37942 added one test (bug in mpfr-2.0.1 found by Gerardo Ballabio) 37943 379442002-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37945 37946 added mpfr_modf 37947 379482002-06-12 Vincent Lefèvre <vincent@vinc17.net> 37949 37950 Added modf (to implement). 37951 379522002-06-08 Vincent Lefèvre <vincent@vinc17.net> 37953 37954 check: Apply a hack to the parameter order to make sparc gcc 2.95.2 37955 happy (patch by Kevin Ryde) + static added. 37956 37957 Patch by Kevin Ryde. 37958 37959 Suppress tests if sqrt is not affected by mpfr_set_machine_rnd_mode 37960 (patch by Kevin Ryde). 37961 37962 Update. 37963 37964 fdl.texi added. 37965 37966 Patch by Kevin Ryde (and Vincent Lefevre). 37967 mpfr.texi: Change license to FDL, use @copying per texinfo 4.2. 37968 Use @dircategory, @direntry, @documentdescription. 37969 Move @contents to start of file. 37970 (VERSION, UPDATED): New variables. 37971 (m, GMPtimes, times): New macros. 37972 (Float Arithmetic): Fix html output. Reported by Richard Dawe. 37973 (GNU Free Documentation License): New appendix. 37974 379752002-06-06 Vincent Lefèvre <vincent@vinc17.net> 37976 37977 Use gmp-impl.h to get MPFR_HAVE_FESETROUND (reported by Kevin Ryde). 37978 379792002-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 37980 37981 patch for mpfr.texi 37982 37983 patch from Richard Dawe <richdawe@bigfoot.com> to generate HTML 37984 37985 added mpfr_gamma in libmpfr 37986 379872002-06-05 Vincent Lefèvre <vincent@vinc17.net> 37988 37989 Check for isnan. 37990 379912002-05-29 Vincent Lefèvre <vincent@vinc17.net> 37992 37993 Bug fixed (possible integer overflow). 37994 37995 Bug fixed (possible integer overflow). 37996 37997 Bug fixed (possible integer overflow). 37998 37999 Note added for mpfr_check_range. Bug fixed. 38000 38001 Sign wasn't set (reported by Dmitrii Baksheyev). 38002 Types fixed and code clean-up. 38003 38004 Types fixed and code clean-up. 38005 380062002-05-27 Vincent Lefèvre <vincent@vinc17.net> 38007 38008 Patch by Kevin Ryde for memory leak checking + misc declaration fixes. 38009 Code moved from mpfr-test.h to tests.c. 38010 380112002-05-14 Vincent Lefèvre <vincent@vinc17.net> 38012 38013 Ternary flag for mpfr_agm. 38014 38015 Copyright line updated. 38016 380172002-05-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38018 38019 ternary flag for mpfr_agm? 38020 38021 update wrt mpfr_set_machine_rnd_mode 38022 38023 added mathematical description of arithmetico-geometric mean 38024 380252002-05-08 Vincent Lefèvre <vincent@vinc17.net> 38026 38027 The problem on a G4 PowerPC was a bug in gcc; this is now tested 38028 in configure (float-conversion bug) and -ffloat-store is used if 38029 need be. 38030 380312002-05-06 Vincent Lefèvre <vincent@vinc17.net> 38032 38033 Problem on the G4 PowerPC. 38034 380352002-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38036 38037 fixed problem (infinite loop) in mpfr_pow for exact powers 38038 38039 fixed errors found by Sylvain Pion 38040 380412002-04-27 Vincent Lefèvre <vincent@vinc17.net> 38042 38043 not relevant -> undefined. 38044 38045 Some changes concerning the internals and zeros 38046 (including remarks by Kevin Ryde). 38047 380482002-04-25 Vincent Lefèvre <vincent@vinc17.net> 38049 38050 Check if HUGE_VAL is supported. 38051 38052 Changes in mpfr_set_str. 38053 380542002-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38055 38056 update 38057 38058 mpfr_set_str doesn't require any more a final '\0' 38059 and return the number of characters read 38060 38061 modified tests for special values 38062 380632002-04-24 Vincent Lefèvre <vincent@vinc17.net> 38064 38065 Description updated. 38066 38067 mpfr_cmp_abs no longer an internal function and described in mpfr.texi. 38068 In mpfr.texi, a @var{} was forgotten. 38069 38070 mpfr_cmp_abs can now be called on zero numbers. 38071 38072 Structures are used to get correct alignment. 38073 380742002-04-23 Vincent Lefèvre <vincent@vinc17.net> 38075 38076 _MPFR_INF*_BYTES fix. On alpha, use a "double" for the bytes, 38077 to avoid a mis-conversion on alpha gcc 3.0.2. (Kevin Ryde) 38078 38079 Underflow semantics changed (not tested). 38080 38081 Code simplified due to change in the maximum exponent range. 38082 380832002-04-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38084 38085 modifs from Andreas 38086 380872002-04-22 Vincent Lefèvre <vincent@vinc17.net> 38088 38089 Union -> array + cast because of the HP compiler. 38090 380912002-04-20 Vincent Lefèvre <vincent@vinc17.net> 38092 38093 Avoid constant floating expression, as this doesn't give the correct 38094 result with gcc on some Alpha machines. (patch by Paul Zimmermann) 38095 380962002-04-19 Vincent Lefèvre <vincent@vinc17.net> 38097 38098 RAND_MAX defined if not already defined (as it should be). 38099 38100 Include config.h, for the benefit of test programs not using 38101 gmp-impl.h (Kevin Ryde). 38102 381032002-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38104 38105 added tests in mpfr_test_init for denorms and extended precision 38106 38107 mpfr_init and mpfr_init2 now return an int 38108 381092002-04-19 Vincent Lefèvre <vincent@vinc17.net> 38110 38111 Exponent range saved/restored. Returns NaN when the numerator 38112 or the denominator is too large for MPFR. 38113 38114 Added some assertions (any unsigned long must be representable 38115 in a mp_limb_t). 38116 38117 SAFE_ABS changed so that it can be used for any unsigned type. 38118 381192002-04-18 Vincent Lefèvre <vincent@vinc17.net> 38120 38121 Added code to prevent possible integer overflow when the input number 38122 is very large. 38123 38124 New values for exponent range. 38125 381262002-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38127 38128 call get_d with rounding mode in check2, to avoid problems near +Inf 38129 38130 2147483647 -> INT_MAX 38131 38132 improved ulp() to deal with infinities 38133 and fixed tadd/check2 to deal with infinities 38134 381352002-04-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38136 38137 improved documentation of mpfr_set_precset_prec. 38138 381392002-04-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38140 38141 fixed documentation of cosh/sinh/tanh 38142 381432002-04-16 Vincent Lefèvre <vincent@vinc17.net> 38144 38145 mpfr_cmp_ui_2exp and mpfr_cmp_si_2exp rewritten. 38146 Prototype changed. 38147 38148 Use AC_CANONICAL_HOST and $host instead of $OS_TYPE and $MACHTYPE 38149 (patch suggested by Kevin Ryde). 38150 38151 Added files from ftp.gnu.org for automake and AC_CANONICAL_HOST. 38152 381532002-04-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38154 38155 replaced 2.2e-307 by DBL_MIN 38156 381572002-04-15 Vincent Lefèvre <vincent@vinc17.net> 38158 38159 Typo: Gnu -> GNU. 38160 38161 Update for future 2.0.2. 38162 38163 Update for mpfr 2.0.1. 38164 38165 Back to version 2.0.1, updated documentation. 38166 38167 Post-release commit. 38168 38169 Update for mpfr 2.0.1. 38170 38171 mpfr_cmp_ui_2exp and mpfr_cmp_si_2exp can no longer be called with a NaN. 38172 Misc bugs fixed. 38173 381742002-04-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38175 38176 added main changes in version 2.0.1 38177 381782002-04-15 Vincent Lefèvre <vincent@vinc17.net> 38179 38180 Update for "make dist". 38181 38182 COPYING -> COPYING.LIB and GPL re-added. 38183 38184 Update. 38185 38186 Removed switches -g -O2 as already done by configure. 38187 381882002-04-14 Vincent Lefèvre <vincent@vinc17.net> 38189 38190 Update. 38191 38192 Removed useless @iftex... 38193 38194 Update. 38195 38196 When q = 0, +0 is returned. 38197 381982002-04-13 Vincent Lefèvre <vincent@vinc17.net> 38199 38200 Update for the next pre-release. 38201 38202 Support for NaN and Inf (case insensitive) in mpfr_set_str. Tests. 38203 38204 Bug fixed. 38205 38206 Update for the next pre-release. 38207 38208 Misc changes. Use of AC_CACHE_CHECK. 38209 382102002-04-12 Vincent Lefèvre <vincent@vinc17.net> 38211 38212 Code clean-up. 38213 38214 Update for the next pre-release. 38215 38216 New tests. 38217 38218 mpfr_get_d* fixed. 38219 38220 Types fixed in const_log2.c (this fixes the tconst_log2 crash). 38221 38222 Added a note about the native SunOS 4 C compiler. 38223 382242002-04-11 Vincent Lefèvre <vincent@vinc17.net> 38225 38226 Type fixed. 38227 38228 mpfr_set_d bug fixed, but other bugs still remain... 38229 38230 NULL was undeclared on some architectures (reported by Torbjorn Granlund). 38231 38232 #include ordering changed for Windows + Cygwin 32. 38233 38234 LDFLAGS changed on HP-UX. 38235 38236 Update for the next pre-release. 38237 38238 Subnormal test in different rounding modes + fix. 38239 38240 Function MPFR_CONFIGS. 38241 38242 Tests added. 38243 38244 get_d.c partly rewritten (Paul Zimmermann). 38245 38246 #include ordering fixed. 38247 38248 Check for gcc float-conversion bug. 38249 382502002-04-10 Vincent Lefèvre <vincent@vinc17.net> 38251 38252 Added comment for mpfr_round_raw_generic (about using 1-bit precision). 38253 38254 Update (thanks to Nathalie Revol). 38255 38256 Update for the next pre-release. 38257 38258 HAVE_FESETROUND renamed to MPFR_HAVE_FESETROUND to avoid possible 38259 name conflict. 38260 38261 Added missing headers in libmpfr_a_SOURCES. 38262 382632002-04-09 Vincent Lefèvre <vincent@vinc17.net> 38264 38265 Update for the next pre-release. 38266 38267 Possible tconst_log2 crash under Solaris. 38268 38269 Under OSF, use option -ffloat-store only when the compiler is gcc. 38270 38271 include_HEADERS should contain only mpfr.h and mpf2mpfr.h. 38272 38273 Added code to support fesetround under Solaris. 38274 38275 "In case of problem" update. 38276 38277 Old URL removed. 38278 38279 Renaming: DIR -> GMPINSTALL, GMPDIR -> GMPBUILD. Bug on IRIX updated. 38280 38281 Removed note about stack-alloc.h. 38282 38283 Check for fenv.h -> check for fesetround. 38284 38285 Added note concerning patch submission. 38286 382872002-04-08 Vincent Lefèvre <vincent@vinc17.net> 38288 38289 Note about overflows. Functions mpfr_{div,mul}_{si,ui} described. 38290 382912002-04-07 Vincent Lefèvre <vincent@vinc17.net> 38292 38293 Update for the next (and last?) pre-release. 38294 38295 Stricter test for HAVE_INFS. 38296 38297 Update. 38298 38299 Added note about IRIX. 38300 38301 Update for the next pre-release. 38302 38303 mpfr_get_d -> mpfr_get_d1 and mpfr_get_d2 -> mpfr_get_d. 38304 383052002-04-06 Vincent Lefèvre <vincent@vinc17.net> 38306 38307 Update for the next pre-release. 38308 38309 Update. 38310 383112002-04-05 Vincent Lefèvre <vincent@vinc17.net> 38312 38313 New file from Paul. 38314 38315 COPYING.LIB removed. 38316 38317 COPYING.LIB -> COPYING. 38318 38319 README.dev added. 38320 383212002-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38322 38323 put back label removed by error 38324 38325 removed _FPU_RC_NEAREST ... for x86 (not used any more, now use fenv.h) 38326 38327 removed nested TMP_MARK's (problems when configuring gmp with --disable-alloca) 38328 38329 fixed pb with two markers (with --disable-alloca) 38330 383312002-04-05 Vincent Lefèvre <vincent@vinc17.net> 38332 38333 Removed (not used). 38334 383352002-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38336 38337 use AC_CHECK_HEADERS to check for fenv.h 38338 and AC_CHECK_FUNCS to check for lrand48 38339 383402002-04-04 Vincent Lefèvre <vincent@vinc17.net> 38341 38342 Added "VERSION" and "prepare" descriptions. 38343 383442002-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38345 38346 fixed bugs found by Nathalie 38347 383482002-04-04 Vincent Lefèvre <vincent@vinc17.net> 38349 38350 Update for the next pre-release. 38351 38352 Removed check for extended precision, as no longer used. 38353 383542002-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38355 38356 added check for denormalized numbers 38357 38358 added new functions to implement 38359 383602002-04-03 Vincent Lefèvre <vincent@vinc17.net> 38361 38362 Update for the next pre-release. 38363 38364 -ffloat-store is a gcc option. 38365 38366 Added 4th argument to AC_TRY_RUN. 38367 38368 Re-fix. 38369 383702002-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38371 38372 added check for fpu_control.h 38373 38374 added missing cast to double 38375 383762002-04-02 Vincent Lefèvre <vincent@vinc17.net> 38377 38378 [ ] used around error message. 38379 38380 Update. 38381 38382 Check BITS_PER_MP_LIMB and BYTES_PER_MP_LIMB. 38383 38384 sqrtrem.c removed. 38385 38386 New ChangeLog file (generated by rcs2log). 38387 38388 Suppress PACKAGE and VERSION definitions for the compiler. 38389 383902002-04-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38391 38392 old file 38393 383942002-03-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38395 38396 more "internal" changes suggested by Vincent 38397 38398 added suggestions from Kevin in "internals" 38399 384002002-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38401 38402 added test for denorms 38403 38404 on a 32-bit machine, denormalized numbers with high 32 bits to 0 38405 were flushed to zero 38406 384072002-03-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38408 38409 sign of sin(-1) was not set 38410 38411 added check for asin(-1) 38412 38413 added one test 38414 38415 previous fix was completely wrong 38416 38417 fixed pb in cmp_si when i = -2^31 (then beware that -1 * i < 0 !!!) 38418 38419 added check for underflow 38420 384212002-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38422 38423 - use mpfr_test_init to initialize hardware floats 38424 - use #ifdef HAVE_INFS when using DBL_NAN, ... 38425 - fixed some problems with wrongly converted f-p values (esp. under IRIX) 38426 38427 use AC_TRY_CPP instead of AC_TRY_RUN for fenv.h 38428 (otherwise fails on Itanium) 38429 38430 added function mpfr_test_init to initialize full IEEE behaviour 38431 38432 put back simple algorithm that computes x*y exactly and then 38433 directly calls mpfr_add, to avoid wrong inexact flags 38434 38435 added 2002 in copyright line 38436 38437 fixed problem on x86 (set precision to double to avoid double rounding) 38438 38439 added check for valid 1/0, denormalized, and extended precision 38440 384412002-03-26 Vincent Lefèvre <vincent@vinc17.net> 38442 38443 New-style comment removed. 38444 384452002-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38446 38447 added a description of the mpfr_t type in "Internals" 38448 384492002-03-26 Vincent Lefèvre <vincent@vinc17.net> 38450 38451 #include <unistd.h> removed. Redefined macros ABS removed. 38452 38453 Patch by Kevin Ryde + misc fixes. 38454 384552002-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38456 38457 replaced getpid() by time(NULL) 38458 38459 MPFR_SIZE and sign were incorrectly set [thanks Kevin] 38460 38461 added check_nan (from Kevin) 38462 38463 fixed bug for sqrt(-0) found by Kevin [NaN flag not cleared] 38464 384652002-03-22 Vincent Lefèvre <vincent@vinc17.net> 38466 38467 Error message now copes with extended precision. 38468 384692002-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38470 38471 added test in configure for checking rand48 functions (HAVE_RAND48) 38472 and fenv.h (HAVE_FENV) 38473 added mpfr_set_machine_rnd_mode (if fenv.h exists) 38474 replaced TEST by HAVE_FENV 38475 384762002-03-22 Vincent Lefèvre <vincent@vinc17.net> 38477 38478 Missing #include. 38479 38480 MPFR_RETNAN shouldn't be used as no value is returned. 38481 38482 Regarde 0 as positive rather than negative (though it's better not to use it). 38483 38484 Memory leak (patch by Kevin Ryde). 38485 384862002-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38487 38488 replaced rand/lrand48, drand48, srand/srand48 by macros 38489 LONG_RAND, DBL_RAND, SEED_RAND 38490 and time(NULL) by getpid() 38491 38492 added macros LONG_RAND, DBL_RAND, SEED_RAND 38493 38494 added VERSION and mpfr-math.h for "make dist" 38495 384962002-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38497 38498 new functions 38499 38500 now use macros DBL_NAN, DBL_POS_INF, DBL_NEG_INF, 38501 and functions mpfr_set_nan, mpfr_set_inf 38502 38503 defined macros for 0/0, 1/0, -1/0 38504 38505 added new functions mpfr_set_nan and mpfr_set_inf 38506 385072002-03-19 Vincent Lefèvre <vincent@vinc17.net> 38508 38509 File VERSION added. Contains the next version (currently 2.0.1). 38510 configure.in updated accordingly. 38511 38512 Macros MPFR_DBL_NAN, MPFR_DBL_INFP and MPFR_DBL_INFM. 38513 385142002-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38515 38516 MP_LIMB_T_HIGHBIT -> ULONG_HIGHBIT 38517 38518 moved code under #ifdef 38519 38520 moved code under #ifdef TEST 38521 38522 remove variable sizer (not used) 38523 38524 Library GPL -> Lesser GPL 38525 38526 updated 38527 385282002-03-17 Vincent Lefèvre <vincent@vinc17.net> 38529 38530 Some changes in the types. 38531 385322002-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38533 38534 changed Nt variable to signed 38535 385362002-03-17 Vincent Lefèvre <vincent@vinc17.net> 38537 38538 Bugs fixed. 38539 385402002-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38541 38542 added back mpfr_sin_cos 38543 38544 new version (adapted from sin.c) 38545 38546 added tests for tan(3*Pi/4) and tan(7*Pi/4) 38547 38548 fixed bug for tan(3*Pi/4) [wrong sign] 38549 38550 added test for log(10^n) 38551 38552 fixed infinite loop problem for log(10^n) 38553 385542002-03-13 Vincent Lefèvre <vincent@vinc17.net> 38555 38556 Fix (patch by Kevin Ryde). 38557 38558 Do not read the exponent if it has no meaning. 38559 385602002-03-12 Vincent Lefèvre <vincent@vinc17.net> 38561 38562 mpfr_random update (patch by Kevin Ryde). 38563 38564 2 more known bugs. 38565 38566 mpfr_a{cos,sin,tan} documentation at a better place. 38567 38568 Some mpfr_clear added (patch by Kevin Ryde). 38569 385702002-03-11 Vincent Lefèvre <vincent@vinc17.net> 38571 38572 mpfr_get_d3 partially rewritten (to follow the new specifications). 38573 tget_d.c updated because of changes in get_d.c. 38574 38575 Return a null pointer if rnd_mode is an invalid rounding mode. 38576 385772002-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38578 38579 set sign before calling mpfr_check_range 38580 38581 stupid typo in previous commit 38582 38583 removed expx (not used) 38584 38585 fixed typo (ai [potentially unsigned] replaced by i) 38586 385872002-03-11 Vincent Lefèvre <vincent@vinc17.net> 38588 38589 New mpfr_get_d, mpfr_get_d2, mpfr_get_d3. 38590 385912002-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38592 38593 added return 38594 385952002-03-11 Vincent Lefèvre <vincent@vinc17.net> 38596 38597 set_d.c split into get_d.c and set_d.c 38598 385992002-03-11 David Daney <david.daney@inria.fr> 38600 38601 add cbrt in fonctionnality 38602 386032002-03-11 Vincent Lefèvre <vincent@vinc17.net> 38604 38605 Bug removed. 38606 38607 #include changes. 38608 386092002-03-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38610 38611 fixed problem when te=ti=1 (i.e. t=0) found by Kevin Ryde 38612 38613 simplified test4() 38614 386152002-03-06 Vincent Lefèvre <vincent@vinc17.net> 38616 38617 Update. 38618 38619 Update. 38620 38621 Patch by Kevin Ryde concerning nodes/menus. 38622 386232002-03-05 Vincent Lefèvre <vincent@vinc17.net> 38624 38625 Casts fixed. 38626 386272002-03-04 Vincent Lefèvre <vincent@vinc17.net> 38628 38629 File renaming. 38630 38631 Copyright line changed. 38632 386332002-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38634 38635 updated 38636 38637 changed name of mpz_set_fr to mpfr_get_z_exp 38638 386392002-02-28 Vincent Lefèvre <vincent@vinc17.net> 38640 38641 Removed some <math.h> dependencies. 38642 38643 Fixed. 38644 38645 mpfr_get_d rewritten (still needs to be fixed when the result is a subnormal). 38646 386472002-02-27 Vincent Lefèvre <vincent@vinc17.net> 38648 38649 mpfr_get_d2 tested. 38650 38651 Update. 38652 38653 New tests. 38654 38655 Additional flags for gcc + minor changes. 38656 38657 Minor update. 38658 386592002-02-25 Vincent Lefèvre <vincent@vinc17.net> 38660 38661 mpfr_get_d2 prototype changed (mp_exp_t instead of long). 38662 __mpfr_scale2 fixes: checks for integer overflows, signed zeros, exact 38663 rounding for subnormals in the rounding to the nearest mode (problems 38664 due to multiple roundings avoided). 38665 mpfr_get_d2: signed zeros taken into account. This function still needs 38666 to be rewritten (because of multiple roundings). 38667 386682002-02-21 Vincent Lefèvre <vincent@vinc17.net> 38669 38670 _mpfr_ceil_log2, _mpfr_floor_log2, _mpfr_ceil_exp2 in separate files. 38671 386722002-02-19 Vincent Lefèvre <vincent@vinc17.net> 38673 38674 Fixes, code clean-up and some asserts against integer overflows. 38675 Code need to be checked. 38676 386772002-02-14 Vincent Lefèvre <vincent@vinc17.net> 38678 38679 mpfr_{div,mul}_2exp -> mpfr_{div,mul}_2ui. 38680 38681 Partial code clean-up and some asserts against integer overflows (2). 38682 386832002-02-13 Vincent Lefèvre <vincent@vinc17.net> 38684 38685 Partial code clean-up and some asserts against integer overflows. 38686 38687 MP_EXP_T_MAX and MP_EXP_T_MIN defined. 38688 38689 Macros IS_POW2 and NOT_POW2. 38690 386912002-02-12 Vincent Lefèvre <vincent@vinc17.net> 38692 38693 Use mpfr_save_emin_emax and MPFR_RESTORE_RET. 38694 38695 Update due to changes in mpfr_get_str. 38696 38697 mpfr_get_str: the returned exponent for 0 is 0 (like in frexp()). 38698 mpz_set_fr.c: comment added. 38699 out_str.c: minor changes. 38700 38701 Update. 38702 38703 Bug fixed and other changes. 38704 38705 NULL -> null pointer and other small changes. 38706 38707 mpfr_get_str: null pointer returned in case of error, NaN taken into account. 38708 387092002-02-11 Vincent Lefèvre <vincent@vinc17.net> 38710 38711 mpfr_set_str partially rewritten to cope with integer overflows. 38712 The rounding code hasn't been fixed yet. 38713 387142002-02-08 Vincent Lefèvre <vincent@vinc17.net> 38715 38716 Typo. 38717 38718 mpfr_set_str: base must be between 2 and 36. 38719 387202002-02-06 David Daney <david.daney@inria.fr> 38721 38722 change the return values 38723 38724 Change the test return values 38725 387262002-02-06 Vincent Lefèvre <vincent@vinc17.net> 38727 38728 Some optimizations. 38729 387302002-02-04 Vincent Lefèvre <vincent@vinc17.net> 38731 38732 Misc bug fixes and code clean-up. 38733 38734 Misc bug fixes and code clean-up. 38735 387362002-02-03 Vincent Lefèvre <vincent@vinc17.net> 38737 38738 For the value 0, return __mpfr_emin instead of 0. 38739 387402002-02-01 Vincent Lefèvre <vincent@vinc17.net> 38741 38742 Misc bug fixes and code clean-up. 38743 387442002-02-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 38745 38746 Patch. 38747 387482002-01-30 Vincent Lefèvre <vincent@vinc17.net> 38749 38750 Bux fixed. 38751 38752 mpfr_set_z rewritten. 38753 38754 Update concerning mpfr_round_prec, mpfr_rint, mpfr_ceil, mpfr_floor, 38755 mpfr_round and mpfr_trunc. 38756 38757 Tests added (mpfr_trunc, mpfr_floor, mpfr_ceil, mpfr_round). 38758 38759 mpfr_rint, mpfr_trunc, mpfr_floor, mpfr_ceil, mpfr_round rewritten. 38760 387612002-01-25 Vincent Lefèvre <vincent@vinc17.net> 38762 38763 mpfr_round -> mpfr_round_prec. 38764 38765 Code reformatted. 38766 387672002-01-23 Vincent Lefèvre <vincent@vinc17.net> 38768 38769 MAX, MIN, ABS macros undefined before being redefined. 38770 Fix in ABS macro. 38771 387722002-01-22 Vincent Lefèvre <vincent@vinc17.net> 38773 38774 Example with high bit set. 38775 38776 Fix (Kevin Ryde). 38777 38778 MPFR_PREC_MAX redefined. 38779 MPFR_INTPREC_MAX defined (internal maximum precision). 38780 Some integer overflow detection. 38781 387822002-01-21 Vincent Lefèvre <vincent@vinc17.net> 38783 38784 Set sign of sqrt(0). 38785 Support for exponent range. 38786 38787 can_round type changed: char -> int. 38788 Case sqrt(0) improved. 38789 38790 Bug fixes: 38791 * return 1 -> MPFR_RET_NAN 38792 * a MPFR_CLEAR_INF was missing. 38793 387942002-01-20 Vincent Lefèvre <vincent@vinc17.net> 38795 38796 New macro MPFR_RESTORE_RET. 38797 387982002-01-18 Vincent Lefèvre <vincent@vinc17.net> 38799 38800 Code clean-up (goto suppressed). 38801 38802 Cases 0 * 0 + 0. 38803 38804 Nt: int -> mp_prec_t 38805 38806 <> changed back to "". 38807 388082002-01-18 David Daney <david.daney@inria.fr> 38809 38810 change "" -> <> in headers 38811 38812 Change indentation + replace "" -> <> in header 38813 388142002-01-17 Vincent Lefèvre <vincent@vinc17.net> 38815 38816 Particular cases rewritten. 38817 38818 Test "__hpux", not "hpux". Mask off mrand48 return value to 31 bits 38819 to work around sloppy mpfr #include practices. (Torbjorn Granlund) 38820 38821 #include fixes (Torbjorn Granlund). 38822 388232002-01-16 Vincent Lefèvre <vincent@vinc17.net> 38824 38825 Comments were incorrect. 38826 388272002-01-15 Vincent Lefèvre <vincent@vinc17.net> 38828 38829 Note concerning mpfr_trunc, mpfr_floor and mpfr_ceil. 38830 388312002-01-14 Vincent Lefèvre <vincent@vinc17.net> 38832 38833 Special cases. 38834 388352002-01-12 Vincent Lefèvre <vincent@vinc17.net> 38836 38837 Patches by Kevin Ryde for K&R compilers 38838 and other fixes in prototypes. 38839 388402002-01-10 Vincent Lefèvre <vincent@vinc17.net> 38841 38842 Test check_min added. 38843 38844 Test check_max added. 38845 38846 Spelling: "canceled" 38847 388482002-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38849 38850 GMP_PROTO change was already done by Vincent 38851 38852 prepare change PROTO -> GMP_PROTO 38853 388542002-01-04 Vincent Lefèvre <vincent@vinc17.net> 38855 38856 The precision can no longer be 1. 38857 38858 __GMP_PROTO defined if not already defined. 38859 38860 Optimization: mpfr_cmp2 now accepts any combination of real arguments 38861 and computes the sign of |b| - |c| (in addition to the number of 38862 cancelled bits); mpfr_add, mpfr_sub, mpfr_sub1, mpfr_agm and some 38863 tests updated to take this change into account. 38864 388652001-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38866 38867 added check for sin(3*Pi/2) 38868 38869 fixed bug for sin(3*Pi/2) 38870 388712001-12-19 Vincent Lefèvre <vincent@vinc17.net> 38872 38873 Global NaN flag set when result is NaN. 38874 388752001-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38876 38877 forgot to clear nan flag for Inf 38878 38879 changed description of mpfr_cmp to correspond to the implementation: 38880 NaNs are not allowed 38881 38882 fixed mpfr_cmp2 : there was a bug noticed by Nicolas Magaud and Didier 38883 Bondyfalat for inputs: 38884 100 011 111 38885 100 010 110 38886 where it gave 8 instead of 5. 38887 388882001-12-19 Vincent Lefèvre <vincent@vinc17.net> 38889 38890 Better comments. 38891 388922001-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38893 38894 added "PI and the AGM" 38895 388962001-12-06 Vincent Lefèvre <vincent@vinc17.net> 38897 38898 Files renamed (log in base 2 and 10). 38899 38900 Files renamed (constants). 38901 38902 File aclocal.m4 removed, as generated by aclocal (called by prepare). 38903 38904 Files log_base_*.c renamed. 38905 38906 Functions (constants) renamed. 38907 38908 Files configure, Makefile.in, tests/Makefile.in removed. 38909 Use the `prepare' script to generate them. 38910 38911 Removed 2 bugs. 38912 38913 Initial release. 38914 389152001-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38916 38917 added arc-tangent (from Mathieu) 38918 38919 added paragraph on asin and acos from Mathieu Dutour 38920 38921 added tacos 38922 38923 in check5, test NaNs before calling mpfr_cmp 38924 38925 added acos 38926 38927 added acos.c 38928 38929 added acos (from Mathieu Dutour) 38930 38931 use now new sqrtrem from gmp-4.0 38932 38933 improved test (avoid mpfr_get_d) 38934 38935 removed isnan prototype 38936 38937 added stdlib.h for exit 38938 389392001-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38940 38941 test NaN before Inf 38942 changed precision to 2 for test 38943 389442001-11-30 Vincent Lefèvre <vincent@vinc17.net> 38945 38946 Cast added. 38947 389482001-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38949 38950 added a new test (worst case) 38951 38952 nouvelle version de Mathieu Dutour, 38953 corrigeant certains bugs avec les pires cas de Vincent 38954 389552001-11-30 Vincent Lefèvre <vincent@vinc17.net> 38956 38957 #include order changed. 38958 38959 Misc fixes. 38960 38961 Unused variables. 38962 389632001-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 38964 38965 start tests with precision 2 instead of 1 38966 38967 start from precision 2 38968 38969 big rewrite to fix problems when the estimate base exponent is too small 38970 38971 fixed detection of exact cases (in particular 0) 38972 38973 now use MPFR_PREC_MIN 38974 38975 exptol is now of type mp_exp_t 38976 38977 rewritten part with Taylor series 38978 38979 changed MPFR_PREC_MIN to 2 38980 38981 updated wrt MPFR_PREC_MIN/MPFR_PREC_MAX 38982 38983 case x=0 was forgotten 38984 38985 now use MPFR_PREC_MIN 38986 38987 added comment 38988 389892001-11-30 Vincent Lefèvre <vincent@vinc17.net> 38990 38991 mpfr_set_z rewritten to support overflows/underflows and ternary value. 38992 38993 0 -> set to +0. 38994 38995 Better sign comparison. 38996 389972001-11-29 Vincent Lefèvre <vincent@vinc17.net> 38998 38999 Use MPFR_SET_POS. 39000 39001 Bug fixed concerning integer overflows. 39002 390032001-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39004 39005 added comment 39006 39007 fixed bug for small precision, where r can be >= 1 39008 390092001-11-29 Vincent Lefèvre <vincent@vinc17.net> 39010 39011 Functions mpfr_{mul,div}_2{si,ui} added. 39012 Functions mpfr_{mul,div}_2exp still exist for backward compatibility; 39013 they are obsolete and should not be used any longer. 39014 390152001-11-28 Vincent Lefèvre <vincent@vinc17.net> 39016 39017 Particular cases (NaN and signed zeros). 39018 39019 Init variables to NaN instead of 0. 39020 39021 Possible integer overflow fixed. 39022 39023 Particular cases fixed. 39024 390252001-11-25 Vincent Lefèvre <vincent@vinc17.net> 39026 39027 Overflow support. 39028 39029 K&R -> ISO C prototype. 39030 39031 mpfr_div_2exp rewritten. 39032 39033 mpfr_mul_2exp rewritten. 39034 39035 Overflow support. 39036 39037 Casts to size_t added (safer and could be required in the future). 39038 390392001-11-23 Vincent Lefèvre <vincent@vinc17.net> 39040 39041 Minor change. 39042 39043 mpfr_mul partially rewritten: 39044 * Integer overflows almost completely avoided. 39045 * Now supports signed zeros and overflows. 39046 Not tested yet. 39047 390482001-11-22 Vincent Lefèvre <vincent@vinc17.net> 39049 39050 mpfr_can_round_raw: integer overflows checked and code duplication avoided. 39051 39052 More bugs. 39053 39054 mpfr_can_round and mpfr_can_round_raw: prototypes changed. 39055 390562001-11-21 Vincent Lefèvre <vincent@vinc17.net> 39057 39058 Bug fixed. 39059 39060 mpfr_add_one_ulp and mpfr_sub_one_ulp changed. 39061 39062 Added MPFR_PREC_MIN and MPFR_PREC_MAX. 39063 39064 Error test -> assert. 39065 mp_prec_t -> mp_size_t. 39066 390672001-11-20 Vincent Lefèvre <vincent@vinc17.net> 39068 39069 Test added. 39070 39071 mpfr_round rewritten. 39072 mpfr_round_raw_generic: NULL changed to 0 as not necessarily defined. 39073 39074 Added macro MPFR_SET_ABSSIZE. 39075 39076 mpfr_round: Check for overflow. 39077 390782001-11-17 Vincent Lefèvre <vincent@vinc17.net> 39079 39080 Some type changes. 39081 390822001-11-16 Vincent Lefèvre <vincent@vinc17.net> 39083 39084 Integer overflows checked. 39085 39086 MPFR_ASSERTN instead of fprintf + exit. 39087 39088 GMP assert mechanism: macros changed until GMP is fixed. 39089 390902001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39091 39092 version -> 2002 39093 removed executable flag 39094 39095 mpfr_print_raw -> mpfr_print_binary 39096 39097 split from init.c 39098 390992001-11-16 David Daney <david.daney@inria.fr> 39100 39101 remove math.h 39102 39103 remve math.h 39104 391052001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39106 39107 added one test 39108 391092001-11-16 David Daney <david.daney@inria.fr> 39110 39111 remove math.h 39112 391132001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39114 39115 init -> init + init2. 39116 391172001-11-16 David Daney <david.daney@inria.fr> 39118 39119 remove math.h 39120 391212001-11-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39122 39123 Ajoute retours chariots dans div.c, etc. 39124 39125 if () remplace par if ( ==0) ou if ( != 0) 39126 391272001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39128 39129 removed K&R function headers 39130 391312001-11-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39132 39133 Beuh ? 39134 39135 return -> MPFR_RET, patch d'un leak dans inp_str.c 39136 391372001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39138 39139 changed to use GMP assert mechanism 39140 391412001-11-16 David Daney <david.daney@inria.fr> 39142 39143 remove stdio.h math.h 39144 391452001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39146 39147 assert -> MPFR_ASSERT 39148 391492001-11-16 David Daney <david.daney@inria.fr> 39150 39151 remove stdio math .h 39152 39153 remove stdio.h math.h 39154 391552001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39156 39157 ASSERT_ALWAYS -> MPFR_ASSERTN 39158 39159 added COPYING.LIB 39160 39161 replaced by GPL 39162 391632001-11-16 David Daney <david.daney@inria.fr> 39164 39165 remove limits.h 39166 391672001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39168 39169 changed Library GPL to Lesser GPL 39170 39171 GNU Lesser General Public License, version 2.1 39172 391732001-11-16 David Daney <david.daney@inria.fr> 39174 39175 remove limits.h math.h 39176 391772001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39178 39179 now treats all *.h 39180 391812001-11-16 David Daney <david.daney@inria.fr> 39182 39183 remove the proto, remove math.h 39184 391852001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39186 39187 removed DEBUG's 39188 39189 removed old patch for GMP 2.xx 39190 39191 GNU MP -> MPFR 39192 39193 added year 2001 in copyright line 39194 39195 added year 2001 in copyright line 39196 39197 added year 2001 in copyright line 39198 removed #if __STDC__ 39199 39200 now two separate files cos.c and sin.c 39201 39202 added year 2001 in copyright line 39203 39204 updated 39205 39206 old version, removed 39207 39208 added isinf and isnum (split from isnan) 39209 39210 new files (split from isnan.c) 39211 39212 removed prototype already in mpfr.h 39213 39214 translated french comments to english 39215 39216 added mpfr_sub 39217 39218 added static to local functions 39219 39220 1 -> MP_LIMB_T_ONE 39221 39222 1 -> BITS_PER_MP_LIMB 39223 39224 added static to local functions 39225 removed prototype already in mpfr.h 39226 39227 removed mpfr_exp2_si (not used) 39228 39229 added static to local functions 39230 translated french comments to english 39231 39232 translated french comments to english 39233 removed prototype already in mpfr.h 39234 39235 initialized inexact to 0 39236 39237 used TMP_ALLOC 39238 translated french comments to english 39239 39240 simplified test 39241 39242 moved inf_p and number_p to different files 39243 39244 added static to local functions 39245 explained threshold 39246 39247 removed prototypes already in mpfr.h 39248 39249 does not include stdio.h any more 39250 39251 added stdio.h 39252 39253 1 -> BITS_PER_MP_LIMB 39254 1 << (BITS_PER_MP_LIMB - 1) -> MP_LIMB_T_HIGHBIT 39255 39256 removed french comment 39257 39258 added static to local functions 39259 39260 removed prototype already in mpfr.h 39261 39262 1 -> BITS_PER_MP_LIMB 39263 translated french comments to english 39264 added static to local functions 39265 39266 1 -> BITS_PER_MP_LIMB 39267 39268 1 -> BITS_PER_MP_LIMB 39269 translated french comments to english 39270 39271 1 -> BITS_PER_MP_LIMB 39272 added static to local functions 39273 39274 removed proto already in mpfr.h 39275 39276 1 -> MP_LIMB_T_ONE 39277 39278 added stdio.h 39279 392802001-11-15 Vincent Lefèvre <vincent@vinc17.net> 39281 39282 add.c -> add.c & add1.c 39283 sub.c -> sub.c & sub1.c + some changes. 39284 392852001-11-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39286 39287 iff the results are exact -> iff the result is exact 39288 392892001-11-10 Vincent Lefèvre <vincent@vinc17.net> 39290 39291 GNU coding style. K&R function headers removed. 39292 39293 MP_LIMB_T_ONE defined. 39294 mp_size_unsigned_t defined. 39295 Important bugs fixed (in particular when int has fewer than 32 bits). 39296 Still unavoidable possible bugs due to the fact that mp_size_t is signed. 39297 392982001-11-09 David Daney <david.daney@inria.fr> 39299 39300 add tests file for gamma 39301 39302 add gamma function an other version 39303 39304 add gamma function 39305 393062001-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39307 39308 mis a` jour valeur de retour de mpfr_tan 39309 393102001-11-09 Vincent Lefèvre <vincent@vinc17.net> 39311 39312 Some -'s missing in floating-point. 39313 393142001-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39315 39316 modifs suite aux remarques de Nathalie 39317 393182001-11-08 David Daney <david.daney@inria.fr> 39319 39320 remove some name of variables 39321 393222001-11-08 Vincent Lefèvre <vincent@vinc17.net> 39323 39324 cmp2.c: Integer overflows checked. 39325 39326 Update. 39327 39328 Fix. 39329 393302001-11-08 David Daney <david.daney@inria.fr> 39331 39332 suppress variable name in dim min max 39333 39334 export isinteger in the file isinteger.c 39335 39336 exporte pow_si from pow2.c to pow_si.c 39337 39338 rename pow2.c in pow.c (source for mpfr_pow) 39339 39340 add ui_pow_ui.c (initially in pow.c) 39341 39342 add pow_ui.c file (initially in pow.c) 39343 393442001-11-08 Vincent Lefèvre <vincent@vinc17.net> 39345 39346 mpfr_cmp2: return type changed to mp_prec_t. 39347 393482001-11-08 David Daney <david.daney@inria.fr> 39349 39350 add function test4 for 3 input test + fma tests 39351 393522001-11-08 Vincent Lefèvre <vincent@vinc17.net> 39353 39354 Macros added. 39355 39356 MP_LIMB_T_MAX instead of (mp_limb_t) -1 (a little nicer...). 39357 393582001-11-06 Vincent Lefèvre <vincent@vinc17.net> 39359 39360 Code clean-up. 39361 393622001-11-05 Vincent Lefèvre <vincent@vinc17.net> 39363 39364 Prototypes for K&R C. 39365 39366 mpfr_round_raw_generic prototype fixed. 39367 393682001-11-01 David Daney <david.daney@inria.fr> 39369 39370 clear xp for Nan Inf or 0 are returned 39371 39372 clear variable if an error is return 39373 39374 clear x for Nan inf 0 return 39375 39376 clear x for Nan Inf 0 return 39377 39378 clear te 39379 393802001-11-01 Vincent Lefèvre <vincent@vinc17.net> 39381 39382 Added prototype. 39383 39384 Bug fixed. 39385 393862001-11-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39387 39388 fixed MLK's 39389 39390 fixed MLK's in mpfr_isinteger 39391 39392 fixed MLK's 39393 39394 fixed missing mpfr_clear's 39395 39396 added missing mpfr_clear 39397 39398 added clear's in bug_ddefour 39399 39400 added mpfr_clear's 39401 39402 fixed MLK's 39403 394042001-10-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39405 39406 fixed MLK for Inf or Nan 39407 39408 fixed MLK in check_case_2 39409 394102001-10-31 David Daney <david.daney@inria.fr> 39411 39412 rename factorial -> fac_ui 39413 394142001-10-30 Fabrice Rouillier <Fabrice.Rouillier@inria.fr> 39415 39416 Change mpfr_<op>_mpz to mpfr_<op>_z 39417 Change mpfr_<op>_mpq to mpfr_<op>_q 39418 where <op> is mul,div,add,sub 39419 394202001-10-30 David Daney <david.daney@inria.fr> 39421 39422 correct factorial -> fac_ui in comments 39423 39424 rename tfactorial -> fac_ui 39425 39426 rename factorial -> fac_ui 39427 394282001-10-27 Vincent Lefèvre <vincent@vinc17.net> 39429 39430 Bug fixed. 39431 394322001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39433 39434 drand -> drand48 39435 39436 put MAX_PREC back to 100 39437 39438 added test for inexact flag 39439 39440 use MPFR_RET_NAN and MPFR_RET 39441 39442 removed MPFR_DEBUG_LEVEL definition 39443 39444 mpfr_set_q and mpfr_abs now return an int 39445 mpfr_pow_ui and mpfr_ui_pow_ui now implement exact rounding 39446 updated the documentation of the mpfr_*pow* functions 39447 removed some internal functions 39448 39449 implemented exact rounding (but no ternary flag) 39450 394512001-10-26 David Daney <david.daney@inria.fr> 39452 39453 add some flags 39454 39455 mixed version between DD and Pau => (gestion des flag inexacte dirige) 39456 39457 rien 39458 394592001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39460 39461 MAX_PREC included 39462 39463 implemented inexact flag 39464 394652001-10-26 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39466 39467 Clearing high part of rem2. 39468 394692001-10-26 Fabrice Rouillier <Fabrice.Rouillier@inria.fr> 39470 39471 adds gmp_op.c 39472 394732001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39474 39475 mpfr_set_q now returns an int 39476 39477 added test for inexact flag 39478 394792001-10-26 Fabrice Rouillier <Fabrice.Rouillier@inria.fr> 39480 39481 Adds the file gmp_op.c containing the implementations of operations between 39482 mpfr and mpz/mpq data 39483 394842001-10-26 David Daney <david.daney@inria.fr> 39485 39486 err <0 => is now tester 39487 394882001-10-26 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39489 39490 Patch for bits shifted out when the high word of the quotient is nonzero. 39491 Induced error on inexact flag (and hence on rounding in some cases). 39492 394932001-10-26 David Daney <david.daney@inria.fr> 39494 39495 add copysign.c 39496 394972001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39498 39499 added one test 39500 395012001-10-26 David Daney <david.daney@inria.fr> 39502 39503 simplify dim 39504 39505 add exact flag 39506 39507 err => long int 39508 395092001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39510 39511 added one test 39512 39513 cosmetic changes 39514 39515 can_round return 0 for b=0 39516 395172001-10-26 David Daney <david.daney@inria.fr> 39518 39519 add thypot 39520 39521 add coopysign 39522 39523 add copysign 39524 39525 correct mp_prec_t err => long int 39526 39527 correst mp_prec_t err => long int 39528 395292001-10-26 Fabrice Rouillier <Fabrice.Rouillier@inria.fr> 39530 39531 Add multiplication/division/addition/subtraction by mpz and mpq 39532 395332001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39534 39535 added two tests 39536 fixed bug in generic tests (one more bit is needed to get an exact result) 39537 39538 fixed pb with exact results not detected (ck was < 0) 39539 395402001-10-26 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39541 39542 Rien. 39543 39544 Patch for the computation of the u_lo + r part of the remainder when u_lo = 0. 39545 395462001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39547 39548 added test for inexact flag 39549 39550 fixed pbs with inexact flag 39551 39552 now mpfr_div and mpfr_ui_div return an int 39553 39554 implemented ternary flag in mpfr_ui_div 39555 39556 removed unnecessary CLEAR_FLAGS 39557 used MPFR_RET_NAN 39558 39559 reduced number of tests 39560 39561 removed unnecessary CLEAR_FLAGS 39562 39563 improved mpfr_compare 39564 fixed wrong function name for mpfr_log2 39565 39566 rewritten to implement ternary inexact flag 39567 39568 fixed generic test (pb with double rounding) 39569 39570 increased MAX_PREC 39571 395722001-10-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39573 39574 Changed the type of err from mp_prec_t (unsigned) to int. 39575 39576 Added tests for inexact flag. 39577 39578 Patch for even rounding. 39579 395802001-10-25 David Daney <david.daney@inria.fr> 39581 39582 rien 39583 39584 rien 39585 395862001-10-25 Vincent Lefèvre <vincent@vinc17.net> 39587 39588 Warning avoided. 39589 395902001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39591 39592 added tfma 39593 39594 slong -> t 39595 39596 nouvelew version (without loop) 39597 395982001-10-25 David Daney <david.daney@inria.fr> 39599 39600 rien 39601 39602 rien 39603 39604 change 39605 396062001-10-25 Vincent Lefèvre <vincent@vinc17.net> 39607 39608 Bug fixed. 39609 396102001-10-25 David Daney <david.daney@inria.fr> 39611 39612 correct bugs with reuse 39613 39614 test for log2 log10 pow 39615 396162001-10-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39617 39618 La division nouvelle est arrivee. 39619 396202001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39621 39622 ajoute' nouveau test 39623 396242001-10-25 Vincent Lefèvre <vincent@vinc17.net> 39625 39626 Bug fixed. 39627 396282001-10-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39629 39630 round_raw, round_raw2 -> round_raw_generic. Macros to simulate previous 39631 behaviour. Even rounding returns +- MPFR_EVEN_INEX. 39632 396332001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39634 39635 fixed pb with mpfr_log10(a, a) with a=-Inf 39636 39637 added two tests 39638 39639 added one test 39640 396412001-10-25 David Daney <david.daney@inria.fr> 39642 39643 add log2 and log10 39644 39645 correction for reuse 39646 39647 coorection for reuse 39648 396492001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39650 39651 test file for testing exceptions 39652 396532001-10-25 Vincent Lefèvre <vincent@vinc17.net> 39654 39655 mpfr_add1 completely rewritten. Overflows are checked. 39656 The ternary value should now be supported (but it hasn't been tested yet). 39657 396582001-10-25 David Daney <david.daney@inria.fr> 39659 39660 new version 39661 396622001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39663 39664 added one test 39665 39666 add possibility to define a random function (default is mpfr_random) 39667 to get random variables in specific ranges 39668 39669 now use tgeneric.c 39670 39671 added texceptions 39672 39673 documented exception mechanism (with Vincent Lefe`vre) 39674 39675 changed stupid test (was computing only 200!) 39676 39677 implemented inexact flag 39678 39679 1999 -> 2001 39680 39681 check overflow 39682 39683 added two tests 39684 39685 implemented overflow/underflow 39686 396872001-10-25 David Daney <david.daney@inria.fr> 39688 39689 correct atanh(INF)=INF exact 39690 39691 correct test inf for atanh 39692 396932001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39694 39695 added warning for mpfr_set_d 39696 396972001-10-25 David Daney <david.daney@inria.fr> 39698 39699 correct bug in tests file (test of atanh for + or - Inf) 39700 397012001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39702 39703 added tadd_ui (forgotten?) 39704 39705 added special test 39706 39707 fixed bug in rounding part when rounding towards 0 (infinite loop due to bn<an) 39708 39709 added one special test 39710 397112001-10-24 David Daney <david.daney@inria.fr> 39712 39713 correct the Nan case 39714 39715 add the function mpfr_dim 39716 39717 add function mpfr_min and mpfr_max 39718 39719 correct these tesats files 39720 39721 correct some bugs 39722 397232001-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39724 39725 added EXTRA_DIST= tgeneric.c 39726 397272001-10-24 David Daney <david.daney@inria.fr> 39728 39729 remove tfma 39730 39731 add tfma 39732 39733 acosh revue et corrige...+beau 39734 397352001-10-23 David Daney <david.daney@inria.fr> 39736 39737 add mpfr_log10 39738 39739 add log_base_10 39740 39741 add tlog_base_10 39742 39743 add test file for log_base_10 function 39744 39745 correct a bug in mpfr_log10 section 39746 39747 add help of log10 + fma 39748 39749 correct particular cases 39750 39751 improve the clear flags 39752 39753 correction dans l'entete 39754 397552001-10-21 Vincent Lefèvre <vincent@vinc17.net> 39756 39757 Some changes to avoid warnings. 39758 39759 Bug fixed (char -> int). 39760 397612001-10-19 Vincent Lefèvre <vincent@vinc17.net> 39762 39763 Update. 39764 39765 Bugs fixed concerning the "inexact" ternary value. 39766 397672001-10-19 David Daney <david.daney@inria.fr> 39768 39769 suppress thypot tgeneric 39770 39771 suppress sample 39772 397732001-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39774 39775 void -> int as return value for mpfr_add_ui 39776 39777 added ternary flag 39778 39779 void -> int for mpfr_add and mpfr_add_ui 39780 397812001-10-19 David Daney <david.daney@inria.fr> 39782 39783 add test for hypot 39784 39785 add some test 39786 39787 add some functions 39788 39789 add some proto 39790 39791 add test file for pow 39792 39793 add the help for pow and pow_si 39794 39795 add the function pow and pow_si 39796 397972001-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39798 39799 added two tests for 0-c and c-0 with prec(c) > prec(a) 39800 398012001-10-19 Vincent Lefèvre <vincent@vinc17.net> 39802 39803 Removed #include <stdio.h>, "return 0;" replaced by "MPFR_RET(0);". 39804 39805 mpfr_add1 and mpfr_sub1 prototypes moved to mpfr-impl.h (to detect clashes). 39806 Bug fix concerning the inexact ternary value in mpfr_sub. 39807 mpfr_add now returns an int (inexact ternary value unsupported if true add). 39808 39809 Update. 39810 39811 Underflow/overflow check. 39812 39813 Documentation updated. 39814 39815 Comment added. 39816 39817 MPFR_RET(0) replaced by MPFR_RET_NAN. 39818 39819 Macro MPFR_RET_NAN. 39820 398212001-10-18 Vincent Lefèvre <vincent@vinc17.net> 39822 39823 Code clean-up in mpfr_round_raw (well... IMHO). 39824 398252001-10-18 David Daney <david.daney@inria.fr> 39826 39827 take in account of CHAR_BIT in ui_pow 39828 398292001-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39830 39831 cast to mp_limb_t was missing 39832 398332001-10-18 Vincent Lefèvre <vincent@vinc17.net> 39834 39835 BITS_PER_CHAR replaced by the standard CHAR_BIT. 39836 398372001-10-18 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39838 39839 *** empty log message *** 39840 398412001-10-18 David Daney <david.daney@inria.fr> 39842 39843 add test of ui_pow 39844 39845 add the help of ui_pow 39846 39847 add the function pow(unsign long int, mpfr_t) 39848 398492001-10-18 Vincent Lefèvre <vincent@vinc17.net> 39850 39851 Improved configure.in. 39852 configure generated by Autoconf 2.52. 39853 398542001-10-18 David Daney <david.daney@inria.fr> 39855 39856 ajout du flag inexact 39857 398582001-10-18 Vincent Lefèvre <vincent@vinc17.net> 39859 39860 fixed and improved check for gmp.h/gmp-impl.h/config.h/gmp-mparam.h/longlong.h 39861 and corresponding error message 39862 398632001-10-18 David Daney <david.daney@inria.fr> 39864 39865 add the help on log2 39866 39867 add the test file of the log2 (log in base 2) 39868 39869 ajout de log2 (log en base 2) 39870 39871 correst tanh(0) 39872 398732001-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39874 39875 added two more tests 39876 39877 wrong sign passed to mpfr_can_round (mp_limb_t may be unsigned) 39878 398792001-10-18 David Daney <david.daney@inria.fr> 39880 39881 correct a bug for sinh(Inf) 39882 398832001-10-17 David Daney <david.daney@inria.fr> 39884 39885 correct syntax of tanh.c 39886 39887 correct an error 39888 39889 correct few things 39890 39891 little patch for cosh 39892 39893 add the test function of expm1 39894 39895 add the test of the function log1p 39896 39897 add the function expm1 39898 39899 add the function log1p 39900 39901 add to mpfr.texi log1p and expm1 39902 39903 actualisation de exp2.c 39904 39905 actualisation de exp2 39906 399072001-10-17 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 39908 39909 New tests in tdiv.c. 39910 39911 New division in div.c, old one renamed in mpfr_div2. Remains to implement 39912 exact/inexact flag. Should not be *that* hard. 39913 399142001-10-16 David Daney <david.daney@inria.fr> 39915 39916 ajout de functions pow, fma, hypot etc etc 39917 399182001-10-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39919 39920 added fma.c 39921 39922 added prototypes for mpfr_fma and mpfr_hypot 39923 39924 small changes for inexact flag 39925 39926 added some cases for Inf 39927 implement (partly) inexact flag 39928 399292001-10-16 David Daney <david.daney@inria.fr> 39930 39931 ajout hypot 39932 39933 ajout de fma 39934 399352001-10-16 Vincent Lefèvre <vincent@vinc17.net> 39936 39937 Comment: // --> /* ... */ 39938 399392001-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39940 39941 generic test file 39942 39943 added cast to (void*) for new functions returning an int 39944 39945 added test for inexact flag 39946 39947 now use tgeneric.c 39948 added more tests 39949 39950 now use tgeneric.c 39951 39952 fixed test of return values for infinities: foo(+/-Inf) is *exact* 39953 39954 now also try with negative numbers 39955 39956 implement ternary inexact flag 39957 39958 implement inexact flag 39959 39960 return type is now int for mpfr_mul_2exp and mpfr_div_2exp 39961 39962 return type is now int for more functions 39963 39964 sign was not set 39965 39966 rewritten completely mpfr_can_round_raw 39967 39968 documented mpfr_set4 39969 39970 return non-zero if malloc failed 39971 39972 cosmetic changes 39973 39974 implement ternary inexact flag 39975 39976 avoid one variable 39977 399782001-10-12 David Daney <david.daney@inria.fr> 39979 39980 correction d'erreurs sur les notations + correction de la regle 9 39981 399822001-10-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 39983 39984 fixed MPFR_ASSERT 39985 documented MPFR_ASSERTN and MPFR_ASSERTD 39986 39987 added test for mpfr_init_set_f prototype 39988 39989 added test for inexact flag 39990 corrected a wrong test 39991 39992 cosmetic change 39993 39994 added tsub_ui (did exist but forgotten in Makefile) and tset (new file) 39995 39996 test file for mpfr_set, initial version 39997 39998 void -> int as return value for several functions 39999 and explained the ternary return value 40000 40001 implemented inexact flag 40002 40003 void -> int as return value for new functions implementing inexact flag 40004 40005 implemented inexact flag in mpfr_set_d 40006 40007 implemented inexact flag in mpfr_round 40008 40009 completely rewritten 40010 40011 computation of inexact flag now directly uses mpfr_round_raw 40012 40013 added 'if' in MPFR_ASSERT to avoid compiler warning 40014 40015 put initial value in variables which may be used without being initialized 40016 40017 updated things done, added Rounding section 40018 400192001-10-11 David Daney <david.daney@inria.fr> 40020 40021 ajout de log1p et expm1 40022 400232001-10-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40024 40025 reduced number of random tests (took too much time) 40026 40027 added random tests for inexact flag 40028 40029 implemented inexact flag 40030 40031 added random tests for inexact flag 40032 400332001-10-11 David Daney <david.daney@inria.fr> 40034 40035 ajout du log generic et de fma 40036 400372001-10-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40038 40039 inexact flag was wrong in some cases 40040 40041 added random tests for inexact flag 40042 40043 reduced number of loops per precision from 100 to 10 40044 (test was too long) 40045 40046 improved check for gmp-impl.h/config.h/gmp-mparam.h/longlong.h 40047 and corresponding error message 40048 40049 stack-alloc.h no longer needed (will be included in gmp-impl.h) 40050 40051 stack-alloc.h is no longer needed (will be included in gmp-impl.h) 40052 400532001-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40054 40055 added proof of rules 40056 40057 fixed buggy test 40058 400592001-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40060 40061 fixed bug for b + d where b=2^900+2^500+2^110, d=2^900-2^500-2^110 40062 400632001-10-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40064 40065 fixed bug in mpfr_set_d on 64-bit machines 40066 400672001-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40068 40069 fixed a few problems in mpfr_set_d for sizer < MPFR_LIMBS_PER_DOUBLE 40070 40071 added paper of Brent and McMillan 40072 40073 does not call compare_exp2_exp3 when argc=4 40074 40075 added one item 40076 40077 now mpfr_set_prec returns 1 instead of producing an error in case prec=0 40078 400792001-09-27 David Daney <david.daney@inria.fr> 40080 40081 New version with new generic function + / * etc 40082 400832001-09-20 Vincent Lefèvre <vincent@vinc17.net> 40084 40085 BUGS updated. 40086 400872001-09-13 Vincent Lefèvre <vincent@vinc17.net> 40088 40089 Prototype changes. 40090 40091 <strings.h> -> <string.h> (ISO C). 40092 40093 #include added. 40094 40095 #include added/removed. 40096 40097 GCC option -Wno-implicit removed and prototype added to mpfr-impl.h 40098 400992001-09-12 Vincent Lefèvre <vincent@vinc17.net> 40100 40101 INCLUDES in Makefile.am: -I$(top_srcdir) and @INCLUDES@ swapped. 40102 This defines the following precedence for the tests: 40103 1) MPFR directories 40104 2) User-defined directory 40105 3) GMP include directory 40106 This allows the user to override the GMP longlong.h file with the 40107 gcc-3 one, by using: INCLUDES="-I.../include" ./configure ... 40108 40109 #include order fixed. 40110 40111 Tests added (in particular, inex value). 40112 40113 Bug fixed. 40114 401152001-09-11 Vincent Lefèvre <vincent@vinc17.net> 40116 40117 MPFR_RET: definition changed to avoid warning. 40118 40119 Inexact ternary value for mpfr_set4, mpfr_set_ui and mpfr_set_si. 40120 40121 Macro SAFE_ABS. 40122 40123 Inexact ternary value and flag for mpfr_set_underflow, mpfr_set_overflow 40124 and mpfr_check_range. 40125 40126 Macro MPFR_RET added. Ternary value for mpfr_set4. 40127 40128 New flags. 40129 401302001-09-10 Vincent Lefèvre <vincent@vinc17.net> 40131 40132 Parameter added to mpfr_round_raw: pointer to inexact ternary value. 40133 401342001-09-10 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40135 40136 Zqwiuyt 40137 40138 Zorgs. 40139 40140 Gleurbs. 40141 40142 Patch grotesque. 40143 40144 Patch for the case SIZE(r) < MPFR_LIMBS_PER_DOUBLE. 40145 401462001-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40147 40148 test file for mpfr_tan 40149 40150 fixed a few typos 40151 40152 added mpfr_tan 40153 40154 added ttan 40155 40156 added the tangent 40157 40158 added tan.c 40159 40160 tangent function 40161 401622001-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40163 40164 removed mpfr_sin and mpfr_cos (now separate implementations) 40165 40166 removed sin_cos 40167 40168 added sine and cosine 40169 40170 removed sin_cos, added sin and cos 40171 40172 removed mpfr_sin_cos 40173 40174 removed sin_cos, added sin and cos 40175 40176 removed tsin_cos, added tsin and tcos 40177 40178 test files for mpfr_cos and mpfr_sin 40179 40180 new implementation of mpfr_sin, using mpfr_cos 40181 40182 new (faster) implementation of mpfr_cos 40183 401842001-09-06 Vincent Lefèvre <vincent@vinc17.net> 40185 40186 Fix: flags set in mpfr_set_{under,over}flow(). 40187 40188 Cases where the result is 0 fixed. 40189 Integer overflow checked in mpfr_sub. 40190 40191 In add.c: use mpfr_cmp_abs instead of mpfr_cmp3; x - x fixed for GMP_RNDD. 40192 40193 Compare the absolute values of two nonzero FP numbers. 40194 401952001-09-05 Vincent Lefèvre <vincent@vinc17.net> 40196 40197 mpfr_cmp3 changed and integer overflows checked. 40198 401992001-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40200 40201 added efficiency item 40202 402032001-09-03 Vincent Lefèvre <vincent@vinc17.net> 40204 40205 Cases [+-]0 + [+-]0 fixed (depending on the rounding mode). 40206 402072001-08-29 Vincent Lefèvre <vincent@vinc17.net> 40208 40209 Optimization + overflow support. 40210 40211 Case +0 + -0 fixed. 40212 402132001-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40214 40215 added one test 40216 40217 another test from Norbert 40218 40219 another fix (final copy when xsize > ysize was wrong) 40220 402212001-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40222 40223 added several tests for case (1b) 40224 40225 another fix (previous one was incomplete) 40226 40227 added one more test (from Norbert) 40228 402292001-08-28 Vincent Lefèvre <vincent@vinc17.net> 40230 40231 Bug fixed. 40232 40233 Bug fixed and update to check the exponents. 40234 402352001-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40236 40237 added test for 53 <= xprec, yprec <= 128 40238 40239 added multiple tests for 53 <= xprec, yprec <= 128 40240 40241 was completely wrong for ysize > xsize 40242 40243 added faster formula in exp(-8*n) for Euler's constant 40244 402452001-08-25 Vincent Lefèvre <vincent@vinc17.net> 40246 40247 Assertion support with debug level. 40248 40249 Some support for exponent change and exceptions. 40250 402512001-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40252 40253 added constant ALPHA (for mpfr_const_euler) 40254 40255 added euler/teuler 40256 40257 added teuler 40258 40259 added euler.c 40260 40261 fixed pb with c2 = c2old << dif with dif negative 40262 40263 fixed bug for (2^53+4) - 1 40264 40265 added new test from Norbert Mueller 40266 40267 fixed pb: sh becomes "negative" 40268 40269 included Euler's constant 40270 40271 bibtex file for algorithms.tex 40272 40273 test file for mpfr_const_euler 40274 40275 computation of Euler's constant 0.577... 40276 40277 added missing prototype 40278 40279 mpfr_const_euler returns an int 40280 40281 added mpfr_const_euler 40282 402832001-08-22 Vincent Lefèvre <vincent@vinc17.net> 40284 40285 Tests added. 40286 40287 Bugs fixed (particular cases). 40288 40289 "mant(c) != 1/2" test was broken. 40290 40291 check fixed. Check added: 2^53 + 1 --> 2^53. 40292 40293 Update. 40294 402952001-08-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40296 40297 added one test 40298 40299 fixed stupid bug when dif < 0 40300 403012001-08-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40302 40303 added mpfr_asin 40304 40305 added missing cast 40306 40307 test file for mpfr_asin 40308 40309 arc-sine, contributed by Mathieu Dutour 40310 40311 added mpfr_asin 40312 40313 new name for file tarctan.c 40314 40315 renamed to tatan.c 40316 40317 renamed tarctan.c into tatan.c 40318 added tasin.c 40319 40320 renamed arctan.c to atan.c 40321 added asin.c 40322 40323 new name for file arctan.c 40324 40325 moved to atan.c 40326 40327 low significant bit is in ap[0] and not in ap[an-1] !!! 40328 403292001-08-13 Vincent Lefèvre <vincent@vinc17.net> 40330 40331 Cleaner MPFR_SET_SAME_SIGN. 40332 40333 Macros MPFR_SET_SAME_SIGN, MPFR_INIT and MPFR_INIT1 changed to expressions. 40334 403352001-08-10 Vincent Lefèvre <vincent@vinc17.net> 40336 40337 Bugs fixed (wrong types). 40338 40339 Macros mpfr_init_set_* changed to expressions. 40340 40341 Makefile.in update. 40342 403432001-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40344 40345 edited wrt GNU style 40346 40347 fixed stupid bug: ceil(a/b) isn't (a+b-1)/a but simply a/b for a negative! 40348 40349 fixed array bound write (bn < an + cancel1 + 1) 40350 40351 macros MPFR_NOTZERO and MPFR_ISZERO did not work properly with 64-bit words 40352 403532001-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40354 40355 fixed bug for output base 2^k 40356 40357 added one test 40358 40359 added a section for the exponential 40360 40361 fixed bug when dividend is 0 40362 403632001-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40364 40365 moved TMP_FREE 40366 40367 added 2 things 40368 403692001-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40370 40371 added mpfr.info to files to remove for "make distclean" 40372 403732001-06-23 Vincent Lefèvre <vincent@vinc17.net> 40374 40375 Non-existent C source references removed. 40376 40377 Macros MPFR_INIT and MPFR_INIT1 fixed. 40378 403792001-06-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40380 40381 nested double TMP_DECL's 40382 403832001-06-14 David Daney <david.daney@inria.fr> 40384 40385 A few patches. 40386 403872001-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40388 40389 added mpfr_sin and mpfr_cos 40390 corrected in the documentation some exact values 40391 403922001-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40393 40394 removed 2 tabs 40395 40396 added change explaining the LGPL with non-free programs 40397 403982001-05-31 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40399 40400 Patch for the case b = 0 or c = 0. 40401 404022001-05-23 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40403 40404 Added DDefour's bug. 40405 404062001-05-22 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40407 40408 Patch in the case MPFR_PREC(b) > MPFR_PREC(a)+cancel. 40409 404102001-05-10 Vincent Lefèvre <vincent@vinc17.net> 40411 40412 fixed bug in mpfr.texi 40413 404142001-05-10 David Daney <david.daney@inria.fr> 40415 40416 correction du bug donne par vincent + ajout des aides des fonctions hyperbolic 40417 404182001-05-09 David Daney <david.daney@inria.fr> 40419 40420 *** empty log message *** 40421 404222001-04-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40423 40424 log(0) now returns 0 (exact infinity) 40425 404262001-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40427 40428 fixed pbs with NaN/Inf 40429 40430 fixed new bug found by Nathalie Revol (case when add_one_ulp produces a carry) 40431 40432 added new bug found by Nathalie Revol 40433 40434 fixed bug for 1.0000... - 0.000001 for rounding up or nearest 40435 404362001-04-17 Nathalie Revol <Nathalie.Revol@inria.fr> 40437 40438 Case where argument < 0 included, NR 17-04-2001 40439 404402001-04-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40441 40442 added new (special) tests 40443 40444 test file for mpfr_sub 40445 40446 added tsub 40447 404482001-04-06 David Daney <david.daney@inria.fr> 40449 40450 change old exp2 (conflict with 2^x) to exp_2 40451 404522001-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40453 40454 0 -> GMP_RNDN 40455 40456 check apart the case c=0 (otherwise some low significant limbs may be 40457 non zero, which may produce a wrong result) 40458 40459 mpfr_exp2 -> mpfr_exp_2 40460 40461 mpfr_exp2 -> mpfr_exp_2 40462 404632001-04-05 David Daney <david.daney@inria.fr> 40464 40465 reactualise .h 40466 40467 change header 40468 40469 change reuse to suppress factorial 40470 40471 suppress of timing in makefile 40472 40473 add the old exp2 function and file renamed by exp_2 40474 40475 change makefile for new functions 40476 40477 change make file test for hyperbolic function exp2 and factorial 40478 40479 add new test file for hyperbolic function 40480 40481 add test file for new function 40482 40483 add function 40484 40485 new file function 40486 40487 new function file 40488 404892001-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40490 40491 new version with cmp2.c 40492 40493 fixed pb with inexact flag when 'int' and 'mp_limb_t' has different sizes 40494 404952001-04-05 David Daney <david.daney@inria.fr> 40496 40497 fixed bug for mpfr_cmp_ui (Inf, 0) 40498 40499 fixed bug for mpfr_set_ui (x, 0) [was giving -0] 40500 405012001-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40502 40503 added algorithm for mpfr_cmp2 40504 40505 added cmp2.c 40506 40507 fixed bug when diff_exp >= BITS_PER_MP_LIMB 40508 40509 added new test for worst cases: 1 - 1/2^i and (1 + 1/2^i) - 1/2^i 40510 40511 changed return value of mpfr_cmp2 40512 40513 new file for mpfr_cmp2 40514 40515 moved mpfr_cmp2 to separate file cmp2.c 40516 40517 added several tests, and a routine that generates worst cases 40518 40519 two changes suggested by Kevin Ryde 40520 405212001-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40522 40523 new version from new Makefile.am 40524 405252001-03-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40526 40527 added new test 40528 40529 fixed new bug in mpfr_cmp2 found by Fabrice 40530 405312001-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40532 40533 added new test 40534 40535 fixed bug found by Nathalie Revol 40536 405372001-03-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40538 40539 added 2 items 40540 40541 added test for mpfr_cmp_ui (-0, 0) 40542 40543 now prints -0 for -0 40544 405452001-03-19 Nathalie Revol <Nathalie.Revol@inria.fr> 40546 40547 Comparison between 0- and 0 now returns 0, NR 19-03-2001 40548 405492001-03-16 Vincent Lefèvre <vincent@vinc17.net> 40550 40551 added cast to avoid a warning 40552 405532001-03-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40554 40555 added tests for inexact return value 40556 40557 tiny bug in inexact value determination 40558 40559 mpfr_mul now returns an int 40560 405612001-03-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40562 40563 description of algorithms 40564 40565 reorganized 40566 405672001-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40568 40569 added few things 40570 40571 added arc-tangent 40572 40573 added tarctan 40574 40575 added test to mpfr_arctan 40576 40577 added header 40578 40579 test file for mpfr_arctan 40580 40581 removed math.h 40582 40583 arctangent function (contributed by Mathieu Dutour, done slight changes) 40584 40585 added Mathieu Dutour in contributors 40586 40587 added mpfr_arctan 40588 40589 added one test 40590 40591 fixed bug in mpfr_can_round_raw, when err > bn*BITS_PER_MP_LIMB 40592 40593 now tset_str <number> <prec> is possible 40594 405952001-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40596 40597 fixed bug for Infinity (was testing zero before) 40598 405992001-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40600 40601 replaced (mp_limb_t) 4294967295 by CNST_LIMB(0xFFFFFFFF) 40602 406032001-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40604 40605 forgot to declare q in mpfr_get_d2 when BITS_PER_MP_LIMB=64 40606 406072001-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40608 40609 removed fprintf() when unexpected end of string 40610 40611 added undef's to avoid warnings at compilation 40612 406132001-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40614 40615 removed mpfr_set_machine_rnd_mode 40616 406172001-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40618 40619 changed "int main(..)" to two lines 40620 40621 now initialize str_is_null correctly 40622 40623 added more tests 40624 40625 don't change MPFR_SIZE when allocated size is enough 40626 40627 updated specification of mpfr_sgn 40628 40629 changed definition of mpfr_sgn to get rid of MPFR_NOTZERO 40630 40631 size of freed block by __gmp_free_func was wrong 40632 40633 added tisnan and tget_d 40634 40635 fixed bug for Inf (recognized as an ordinary number) 40636 40637 new test file 40638 406392001-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40640 40641 check overflow in _mpfr_ceil_exp2 40642 406432001-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40644 40645 added prototype for Ulp 40646 40647 changed _d to _p, added mpfr_number_p 40648 40649 changed MPN_COPY into MPN_COPY_INCR/MPN_COPY_DECR in mpfr_round_raw 40650 40651 added tests for one of arguments NULL 40652 40653 moved mpfr_sgn to mpfr.h (defined in manual) 40654 40655 use MPZ_REALLOC 40656 40657 added const to 2nd argument of mpfr_set_str 40658 40659 added set_ui.c 40660 40661 added cast to "unsigned long" for ai = ABS(i) 40662 moved mpfr_set_ui to separate file 40663 40664 now when str==NULL return a block which is exactly strlen(str)+1 bytes long 40665 40666 fixed problems with old K&R compilers (_PROTO missing) 40667 406682001-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40669 40670 added more items 40671 406722001-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40673 40674 fixed ulp computation 40675 406762001-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40677 40678 changed behaviour for "tlog N": prints only differences with increasing ulps 40679 40680 fixed pb in mpfr_get_d2 for 64-bit machines: in q + res/MP_BASE_AS_DOUBLE, 40681 q seems first to be cast into a double, which gives more than one ulp of 40682 error 40683 406842001-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40685 40686 added guard to prevent multiple inclusion 40687 40688 fixed bug in mpfr_cmp2 (found on the IA64) 40689 406902001-01-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40691 40692 added tests for 0 in mpfr_set_str_raw 40693 40694 fixed bug for +0000E0 40695 40696 incorporated changes from Kevin/Torbjorn for GMP 3.2 40697 40698 truncate the last uk (when the precision is not a power of 2) 40699 40700 _mp_allocate_func -> _gmp_allocate_func 40701 40702 _mp_reallocate_func -> _gmp_reallocate_func 40703 40704 __gmp_default_fp_bit_precision -> __mpfr_default_fp_bit_precision 40705 40706 _mp_xxx_func -> _gmp_xxx_func 40707 40708 removed mpfr_srandom 40709 40710 sprintf -> fprintf 40711 _mp_free_func -> _gmp_free_func 40712 40713 _mp_reallocate_func -> __gmp_reallocate_func 40714 40715 added paragraph on NaN and infinities, docu on mpfr_nan_d and mpfr_inf_d 40716 removed mpfr_srandom 40717 some renamings 40718 40719 removed srandom 40720 __gmp_default_fp_bit_precision -> __mpfr_default_fp_bit_precision 40721 added protocols for mpfr_get_default_prec, mpfr_nan_d and mpfr_inf_d 40722 40723 removed superfluous TMP_FREE(marker) 40724 40725 _mp_xxx_func -> _gmp_xxx_func 40726 40727 _mp_free_func -> _gmp_free_func 40728 40729 functions to check for NaN and infinities 40730 40731 added isnan.c, removed srandom.h 40732 40733 added two items from Kevin 40734 40735 add 2 items 40736 40737 0.4 -> 1.0 40738 407392001-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40740 40741 added one test for large operands 40742 40743 fixed bug in _mpfr_ceil_exp2 (underflow when exp < -1022) 40744 407452000-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40746 40747 remove what was done 40748 40749 added mpfr-test.h 40750 40751 added Vincent 40752 40753 1.1 -> 2001 40754 40755 cast for _mpfr_floor_log2 was on the wrong side 40756 40757 added one test 40758 40759 simplified _mpfr_floor_log2 40760 40761 code was wrong for infinity 40762 40763 only editing 40764 40765 added special() cases 40766 40767 removed #if 0 (on Alpha with cc the enclosed code was still used 40768 since the # was not in the first column) 40769 40770 changes for version 1.1 40771 40772 added one test (exp2 vs exp3) 40773 40774 changed c from mp_limb_t into unsigned long in mpfr_exp2_aux2 40775 (otherwise bugs on IRIX -n32) 40776 40777 added one test 40778 40779 fixed wrong combination of conditions for Infinity 40780 40781 added mpfr-test.h for MIPS 40782 407832000-12-22 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40784 40785 Modified macro calls 40786 407872000-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40788 40789 added cast (int) to random() to avoid warning on Solaris 40790 40791 added <string.h> 40792 40793 tiny change at the end of main routine (suggested by Guillaume) 40794 40795 added one test 40796 40797 added two more tests 40798 40799 fixed bug when c does not overlap with a, b is negative and GMP_RNDN 40800 40801 moved prototypes for mpfr_set4 and mpfr_cmp3 to mpfr.h 40802 40803 fixed bug in mpfr_cmp2 when d=0 and lots of bits match 40804 40805 updated for version 1.1 40806 408072000-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40808 40809 test file for power functions 40810 40811 test file for in-place operations 40812 40813 unsigned char (or int) -> mp_rnd_t 40814 40815 unsigned char -> mp_rnd_t 40816 40817 unsigned int -> mp_rnd_t 40818 40819 k2r -> ansi style 40820 removed #include <math.h> by defining auxiliary functions 40821 fixed several tiny remaining bugs with NaN/Inf 40822 40823 updated description of mpfr_cmp* and mpfr_sin_cos 40824 40825 added MPFR_SIGN 40826 40827 added MPFR_CLEAR_NAN 40828 MPFR_RESET_INF -> MPFR_CLEAR_INF 40829 moved MPFR_SIGN to mpfr.h 40830 added prototypes for log2/isqrt/cuberoot functions 40831 40832 added reuse, tcmp2, teq, tpow, trandom, ttrunc 40833 40834 removed isnan(), ... 40835 40836 removed gmp-impl.h, isnan(), ... 40837 40838 removed gmp-impl, isnan(), ... 40839 40840 removed cputime stuff 40841 40842 k&r -> ansi style 40843 40844 removed isnan() decl. 40845 40846 MINNORM -> mpfr-test.h 40847 40848 ulp -> mpfr-test.h 40849 40850 removed isnan() declaration 40851 40852 now use MINNORM and MAXNORM 40853 40854 max, min -> macros 40855 40856 added new tests 40857 40858 added MINNORM, MAXNORM, MIN, MAX, ABS 40859 408602000-12-20 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40861 40862 A few basic patches. 40863 40864 Added support for PPC/Linux 40865 40866 Patch for wrong prototype. 40867 40868 Added prototypes for all test files. 40869 408702000-12-18 Vincent Lefèvre <vincent@vinc17.net> 40871 40872 Warnings suppressed on Alpha/OSF1. 40873 408742000-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40875 40876 added mpfr-test.h 40877 40878 back to 1.3 40879 40880 auxiliary test files 40881 40882 moved to main directory 40883 40884 auxiliary test functions 40885 40886 changed name of mpfr struct fields: _mp_d -> _mpfr_d 40887 (to detect conflicts with mpf) 40888 fixed a few problems in non-STDC headers 40889 moved definitions of mpfr-impl.h to mpfr-test.h and created a real mpfr-impl.h 40890 408912000-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40892 40893 removed tzeta 40894 40895 explained how to enter NaN/Inf with mpfr_set_str_raw 40896 40897 removed zeta.c 40898 40899 added 'to do' for NaN/Inf flags 40900 40901 clear NaN/Inf flags of result 40902 40903 improved indentation 40904 40905 adapted to NaN/Inf 40906 40907 nothing (only better indenting) 40908 40909 adapted to NaN/Inf 40910 removed warnings 40911 40912 adapted to NaN/Inf 40913 40914 removed warnings 40915 40916 clear NaN/Inf flags in normal case 40917 40918 adapted to NaN/Inf 40919 40920 added prototype for mpfr_srandom 40921 40922 now uses directly mpn_random, to avoid all problems with include files 40923 40924 added 4 tests 40925 40926 _mp_d -> MPFR_MANT 40927 40928 added error message when memory allocation fails 40929 40930 added error message when memory allocation fails 40931 40932 _mp_d -> MPFR_MANT 40933 40934 0 -> NULL 40935 40936 added error message if memory allocation fails 40937 40938 _mp_d -> PTR 40939 40940 _mp_prec -> MPFR_PREC 40941 _mp_d -> MPFR_MANT 40942 40943 added mpfr_swap 40944 40945 removed MPFR_SET_IS_FP (not used) 40946 409472000-12-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40948 40949 A few patches. 40950 409512000-12-15 Vincent Lefèvre <vincent@vinc17.net> 40952 40953 MPFR_CHANGE_SIGN modified to avoid a possible side effect. 40954 409552000-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 40956 40957 warning: x is a MPF not a MPFR! 40958 409592000-12-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40960 40961 Modification of the order of includes in random.c 40962 409632000-12-15 Vincent Lefèvre <vincent@vinc17.net> 40964 40965 Added some warning flags for GCC. 40966 409672000-12-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40968 40969 Header file for srandom() 40970 40971 Patches for compiler warnings. 40972 40973 Yet another patch for include files. 40974 40975 Permutation of includes to avoid warnings due to careless multiple definition 40976 of ULONG_MAX. 40977 409782000-12-14 Vincent Lefèvre <vincent@vinc17.net> 40979 40980 Bug fixed concerning the flags. 40981 40982 Bugs fixed (in case char is signed and accented characters are given). 40983 40984 Include "urandom.h". Old code removed. 40985 40986 Take into account Inf, Nans ; clear the flags of the return variable 40987 in most function calls. 40988 40989 Use urandom(). 40990 40991 Take into account Inf, Nans ; clear the flags of the return variable 40992 in most function calls. 40993 409942000-12-14 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 40995 40996 Yet another random patch. 40997 40998 Replaced random by rand. 40999 410002000-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41001 41002 fixed pb with mp_ptr vs mp_srcptr 41003 410042000-12-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41005 41006 Take into account Inf, Nans ; clear the flags of the return variable 41007 in most function calls. Tests updated accordingly 41008 41009 Take into account Inf, Nans ; clear the flags of the return variable 41010 in most function calls. 41011 410122000-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41013 41014 check that we can round the cosine too 41015 410162000-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41017 41018 removed TIMING stuff 41019 ensures prec_x >= 0 41020 41021 we need m >= 2 in mpfr_exp2_aux2 41022 41023 forgot TMP_MARK(marker) 41024 41025 forgot TMP_MARK(marker) or free'd in wrong order 41026 41027 forgot TMP_MARK(marker) 41028 41029 fixed mpf_reldiff, mpf_urandomb and mpf_t 41030 41031 added stack-alloc.h when --disable-alloca 41032 410332000-12-11 Vincent Lefèvre <vincent@vinc17.net> 41034 41035 out_str.c: <string.h> included 41036 set_d.c: (0./0.) instead of sqrt(-1) for NaN (doesn't need <math.h>) 41037 set_d.c: () added for macros Infp and Infm 41038 410392000-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41040 41041 shortened string in mpfr_set_str_raw which was greater than precision 41042 41043 replaced isnan/isinf/math.h (not portable, for example isinf does not exist 41044 on Sparc) by new macros from mpfr.h 41045 41046 added an error message when the mantissa is larger than the precision 41047 (in mpfr_set_str_raw) 41048 41049 added macros to recognize doubles that are NaNs and infinities 41050 (isinf is not portable and requires math.h) 41051 41052 in case the destination precision is less than that of the operands, 41053 and the 1st iteration fails, increase directly the precision to the maximum 41054 of that of the operands, otherwise divisions by 1.0 may need lots of 41055 iterations 41056 41057 added 'return' after dealing with infinities 41058 41059 added wish from JC Fauge`re 41060 410612000-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41062 41063 mpfr_init/mpfr_init2 initialize to 0 (compatibility with mpf) 41064 41065 fixed bug in mpfr_cmp2 when return value is k*BITS_PER_MP_LIMB-1 41066 41067 added new test for mpfr_cmp2 41068 41069 now ABSSIZE uses only 29 bits 41070 410712000-12-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41072 41073 added some explanations how to free the memory space allocated by mpfr_get_str 41074 41075 fixed one bug found by N. Mueller (MPFR_ABSSIZE(u) was used instead of usize) 41076 41077 added one more test from N. Mueller 41078 410792000-12-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41080 41081 cleaned calls to mpfr_extract 41082 41083 added new line 41084 41085 added error message when _mp_allocate_func returns 0 41086 41087 added header for mpfr_extract 41088 41089 - documented what function does 41090 - cleaned code 41091 - added header about license... 41092 41093 replaced log(2.0) by LOG2 [first step in getting rid of math.h] 41094 41095 added extern "C" { ... } for inclusion in C++ 41096 removed old KARATSUBA threshold for gmp 2.0.2 41097 41098 fixed bug in mpfr_cmp3 (when b=0, s not taken into account) 41099 41100 added swap/tswap 41101 41102 test file for new function mpfr_swap 41103 41104 added new function mpfr_swap 41105 41106 changed copyright to Free Software Foundation 41107 41108 added possible bug in mpfr_get_str 41109 41110 now all is in mpfr.h 41111 41112 return value was wrong for input non-zero (should return 1 = inexact) 41113 41114 fixed/improved doc. of mpfr_sin_cos and mpfr_urandomb 41115 41116 removed macro for mpfr_init_set_str_raw 41117 41118 added prototype for mpfr_sin_cos 41119 41120 sign of result was not correctly (re)set 41121 41122 added test to check sign of square root 41123 411242000-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41125 41126 gained a factor of 2 in most cases (replaced initial constant factor=2 41127 for additional bits for cos(x) by log(n)) 41128 41129 added tsin_cos 41130 41131 fixed potential problem in mpfr_sub1 (k=0 and kc<0) 41132 41133 test file for sin/cos 41134 411352000-11-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41136 41137 forgot cast to int before comparison between imax (can be negative) and an 41138 41139 returned value was one too small in case d=1 41140 41141 added new test from N. Mueller 41142 41143 added return for case of infinities 41144 41145 added macro MPFR_RESET_INF 41146 41147 don't forget to reset infinity flag if set! 41148 41149 fixed bug in mpfr_cmp2: wrong limb considered after cp[cn--] when 41150 cp[cn] was not 111...111 41151 41152 fixed bug when imax>an 41153 411542000-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41155 41156 added macro MPFR_IS_ZERO 41157 411582000-11-21 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41159 41160 Infinis, premiere tentative (tests) 41161 41162 Infinis, premiere tentative. 41163 411642000-11-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41165 41166 added one remark from GH 41167 41168 removed mpfr_cmp2 41169 411702000-11-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41171 41172 Added support for Inf. Modified zeta. 41173 411742000-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41175 41176 protection of macros done 41177 41178 shell-script to replace xxx by yyy in all source files 41179 41180 protected macros: xxx -> MPFR_xxx 41181 41182 protected all macros: xxx -> MPFR_xxx 41183 411842000-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41185 41186 fichier d'include pour mpfi.c 41187 41188 interval arithmetic level (1st version) 41189 41190 added two suggestions from Ben Hinkle 41191 411922000-10-19 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41193 41194 Bof. 41195 41196 Suppression de vieilleries. 41197 41198 1 << 31 -> ((unsigned int)1) << 31. 41199 41200 Correction de prototypes faux dans le cas ou on n'est pas -D__STDC__. 41201 412022000-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41203 41204 malloc -> *_mp_allocate_func or TMP_ALLOC 41205 41206 mpfr_t -> mpfr_ptr or mpfr_srcptr 41207 412082000-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41209 41210 removed -> all is in texp.c 41211 41212 added comparison between exp2 and exp3 41213 41214 take also the target precision into account for the guard bits 41215 41216 new faster version with O(n^(1/3)*M(n)) algorithm 41217 41218 adjusted exp2-exp3 threshold for new faster version of mpfr_exp2 41219 41220 added mpz_set_fr.c 41221 41222 added tdump 41223 41224 fixed pb for op=0 (added \0 at the end of string) 41225 41226 use strlen to determine memory to free 41227 41228 test file for mpfr_dump 41229 41230 removed karasqrt.c, added sqrtrem.c 41231 41232 kara_sqrtrem -> mpn_sqrtrem_new 41233 41234 now replaced by new code in sqrtrem.c 41235 41236 now uses new code mpn_sqrtrem_new 41237 41238 new version of fast MPN square root 41239 (should be integrated in a future release of GNU MP) 41240 412412000-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41242 41243 added another example from N. Mueller 41244 41245 fixed another ABW bug 41246 41247 fixed two Array Bound Writes 41248 41249 fixed one Array Bound Read (to_nearest, bp=cp and k>=cn) 41250 41251 added 2 new tests from Norbert Mueller 41252 412532000-09-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41254 41255 added new test 41256 41257 fixed Array Bound Write 41258 412592000-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41260 41261 added some words about the inclusion of mpfr.h 41262 41263 we need to better protect macros 41264 41265 removed MPFR_OBJECTS (does not work) 41266 41267 added $(MPFR_OBJECTS) in libmpfr_a_LIBADD 41268 41269 added $(MPFR_OBJECTS) in libmpfr_a_DEPENDENCIES 41270 41271 added contributions from Emmanuel Jeandel and Thom Mulders 41272 41273 added Thom Mulders 41274 41275 routines for naive/fast short multiplication, 41276 contributed by Thom Mulders (ETH Zu"rich) 41277 412782000-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41279 41280 added new test for overlapping x, y 41281 41282 fixed problem when x=y 41283 412842000-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41285 41286 added pb from Norbert Muller 41287 41288 fixed SEGV (mpn_lshift doesn't seem to like src_size=0) 41289 41290 now prints "failed" when test file doesn't return 0 41291 412922000-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41293 41294 replaced mpn_divrem by mpn_tdiv_qr for gmp 3 or later 41295 and avoid copy of one operand when possible 41296 41297 updated (make check, make install) 41298 41299 described each file 41300 41301 News for version 1.0 41302 413032000-08-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41304 41305 fixed bug for 0.9999999999... 41306 41307 added test for 0.99999999999999999 41308 413092000-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41310 41311 added mpfr_swap 41312 41313 now store last computed value together with last rounding mode 41314 413152000-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41316 41317 target ps -> mpfr.ps 41318 41319 added $(srcdir) to trunc.c for sub-directory compilation 41320 413212000-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41322 41323 removed some memory leaks 41324 41325 solved memory leaks with T[i] and qtoj[i] 41326 41327 updated (done autoconf, faster mpfr_exp, sin/cos) 41328 41329 updated for version 1.0 41330 41331 COPYING.LIB -> COPYING 41332 41333 renamed back (wanted for "make dist") 41334 41335 renamed back to COPYING (wanted for "make dist") 41336 41337 GNU Library General Public License 41338 41339 renamed to COPYING.LIB, according to mpfr.texi 41340 41341 result was free'd twice when good=1 41342 41343 put information about authors 41344 41345 PACKAGE and VERSION are not defined any more 41346 41347 gmp-mparam.h is required too 41348 41349 IRIX make does not recognize $< (MISCFLAGS) 41350 41351 do not define PACKAGE and VERSION in AM_INIT_AUTOMAKE, 41352 this avoids conflicts with GMP 3.1 config.h 41353 [thanks to Kevin Ryde] 41354 41355 updated for GMP 3.1 41356 41357 MP_BASE_AS_DOUBLE already defined in gmp-impl.h 41358 41359 nb_terms[0] was not initialized 41360 41361 fixed some FNH (free not in heap) problems for binary splitting method 41362 (prec >= 30000) 41363 41364 gmp.info -> mpfr.info 41365 41366 set_dfl_rnd.* -> set_rnd.* (to avoid conflict with set_dfl_prec.* on DOS 8.3) 41367 41368 now automatically generated by configure 41369 41370 added if (__GNU_MP_VERSION < 3) for mpn_divrem_1-bug patch 41371 41372 set_dfl_rnd -> set_rnd 41373 41374 new name of set_dfl_rnd.c (avoids clash with set_dfl_prec.c on DOS 8.3) 41375 41376 renamed to set_rnd.c (otherwise truncates like set_dfl_prec.c on 41377 a DOS 8.3 filesystem) 41378 41379 setfilename: gmp.info -> mpfr.info 41380 41381 replaced path for libmpfr.a by $(top_builddir) 41382 test files are now in check_PROGRAMS instead of bin_PROGRAMS (they don't need 41383 to be installed) 41384 41385 replaced back BITS_PER_MP_LIMB by mp_bits_per_limb 41386 (not important in test files) 41387 413882000-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41389 41390 replaced macros for mpfr_init_set_si by "do { ... } while (0)" so 41391 they'll work in an if/else like 41392 41393 if (foo) 41394 mpfr_init_set_si (f, -123, GMP_RNDN); 41395 else 41396 bar (); 41397 41398 [thanks to Kevin Ryde] 41399 414002000-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41401 41402 replaced mp_bits_per_limb by BITS_PER_MP_LIMB (constant) 41403 414042000-08-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41405 41406 added mpf2mpfr.h 41407 41408 define check2 only with -DTEST 41409 41410 updated for new configure from Emmanuel Jeandel, to GMP 3.xxx 41411 and removed errors with texinfo 41412 41413 solaris --> __sparc__ 41414 41415 ifdef IRIX64 -> ifdef __mips 41416 41417 IRIX/make does not understand $< : expanded to trunc.c 41418 41419 use standard macro for Alpha 41420 414212000-07-13 Emmanuel Jeandel <emmanuel.jeandel@loria.fr> 41422 41423 autoconf options described 41424 41425 timestamp modified 41426 41427 timestamp changed 41428 41429 nothing to say 41430 41431 Timestamp 41432 41433 Small bug fixed 41434 41435 Timestamp modified ? 41436 41437 Timestamp modified 41438 41439 Nothing 41440 41441 New release 41442 41443 Bugs fixed 41444 41445 Bug fixed 41446 41447 sin_cos added 41448 41449 New algorithm, new wrapper 41450 414512000-07-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41452 41453 replaced 0 by GMP_RNDN 41454 41455 fixed (hopefully) bug for 1/1 in precision 32, 64, ... 41456 41457 added test for 1/1 in precision 32 or 64 41458 414592000-07-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41460 41461 use mpfr_print_rnd_mode now 41462 414632000-07-11 Emmanuel Jeandel <emmanuel.jeandel@loria.fr> 41464 41465 Bug Fixed, and installation guide made 41466 41467 Fixed bug 41468 41469 Bug Fixed with Solaris make 41470 41471 strings.h added 41472 41473 Deps included 41474 41475 Bug Fixed 41476 41477 Bug fixed 41478 41479 Bug Fixed 41480 41481 First Release 41482 41483 *** empty log message *** 41484 41485 First Release 41486 41487 First release 41488 41489 Added sin_cos 41490 41491 First Release 41492 414932000-06-29 Emmanuel Jeandel <emmanuel.jeandel@loria.fr> 41494 41495 Memory problems fixed 41496 41497 Memory Leaks Fixed 41498 414992000-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41500 41501 added prototype for mpfr_sub_ui 41502 41503 now use mpfr macros 41504 41505 be careful not to call mpn_sub_n/mpn_sub_1 with a size 0 41506 41507 fixed to free an entire number of limbs 41508 41509 test file for sub_ui 41510 415112000-06-28 Emmanuel Jeandel <emmanuel.jeandel@loria.fr> 41512 41513 mpfr_exp3 and mpfr_extract added to Makefile 41514 41515 First Release 41516 415172000-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41518 41519 distinguish between mpfr failure and difference with sqrt() 41520 41521 ensures random numbers given to sqrt() are positive 41522 41523 adapted for freebsd 41524 41525 modified drand to avoid false NaNs (makes SEGV under FreeBSD) 41526 41527 added entry for FreeBSD, removed -pedantic option 41528 41529 added one test 41530 41531 added new tests 41532 41533 added prototype for mpfr_set_prec_raw 41534 41535 removed work done 41536 41537 fixed several bugs 41538 41539 merged different roundings in case diff_exp<PREC(a), dif<=PREC(c) 41540 41541 removed printf for argc=1 41542 41543 added one test 41544 41545 make ceil.o,floor.o,trunc.o depend on trunc.c 41546 415472000-06-20 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41548 41549 Various patches for leaks, UMR and (one) BUS. 41550 415512000-06-19 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41552 41553 This patch suppresses a few mem leaks. 41554 41555 Suppressed memory leaks. 41556 41557 Patch for 1 << (BITS_PER_MP_LIMB - x) when x is 0 (produces inexact results 41558 on PPCs). 41559 415602000-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41561 41562 arguments of gmp_randinit were in wrong order 41563 415642000-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41565 41566 Patch in the case when n_bits is a multiple of 32. 41567 415682000-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41569 41570 added patch to get denorms on IRIX64 41571 41572 put instruction to get denormalized numbers on IRIX64 out of #ifdef TEST 41573 41574 fixed bug occurring on LinuxPPC (1 << 32) 41575 41576 added one test (bug on LinuxPPC) 41577 41578 added one test 41579 41580 fixed several problems 41581 41582 added more tests 41583 415842000-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41585 41586 Patches for the case where the precision is a multiple of the word size. 41587 415882000-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41589 41590 fixed another bug 41591 41592 added one test 41593 41594 added prototype for mpz_set_fr 41595 41596 improved choice of initial precision 41597 41598 added mpz_set_fr (conversion from mpfr to mpz) 41599 41600 added return type 'int' for main 41601 416022000-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41603 41604 Added TESTFLAGS to the main Makefile. Added ttrunc. 41605 41606 Minor patch (put to 0 the nonsignificant bits). 41607 41608 Added declaration of trunc, ceil, floor. 41609 41610 Tests for trunc, ceil, floor. 41611 41612 Added TESTFLAGS variable to the compile instruction, for use as 41613 make "TESTFLAGS=-DTEST" 41614 416152000-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41616 41617 1 -> (mp_limb_t) 1 [pb on 64-bit machines] 41618 reduced number of tests to 1000 41619 416202000-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41621 41622 Display of statistics is only toggled if a number of tests to be performed 41623 is given. Shameful hack, but is getopt really portable ? 41624 41625 Added trandom, teq 41626 41627 Added random2, urandomb 41628 41629 Added div_2exp to the (very rough) test. 41630 41631 Very basic statistical tests for random, random2, urandomb. 41632 41633 Patch for random (libc's random() is on 31 bits only) 41634 41635 Test for mpfr_eq. 41636 41637 Patch a few incoherences of eq.c wrt the manual + adapt to mpfr usual semantics 41638 416392000-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41640 41641 header file providing cputime() function 41642 41643 test file comparing mpfr_exp and mpfr_exp2 41644 41645 O(n^(1/3)*log(n)) algorithm using Brent's method 41646 and Brent-Kung's O(sqrt(t)) algorithm to evaluate 41647 a power series of order t [exact rounding not yet finished] 41648 416492000-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41650 41651 fixed bug in mpfr_round (wrong sign) 41652 41653 fixed bug in mpfr_round: did not check allocated space was large enough 41654 41655 main -> int main 41656 41657 added #ifdef TEST: if not defined (default), then function 41658 mpfr_set_machine_rnd_mode is not defined 41659 41660 added #ifdef TEST to disable comparison with machine arithmetic 41661 by default (i.e. calls to mpfr_set_machine_rnd_mode) 41662 41663 removed longlong.h (not needed) 41664 41665 now deals with NaN 41666 41667 RND_MODE -> rnd_mode 41668 41669 mpfr_init is now a function (no more a macro) 41670 41671 printf -> fprintf 41672 added mpfr_init as function 41673 41674 changed (x) -> x 41675 fixed several typos 41676 41677 removed printf 41678 416792000-05-26 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41680 41681 added ifdef TEST 41682 41683 removed debug line 41684 41685 added one test 41686 41687 added 2 new tests 41688 41689 little change 41690 41691 more changes 41692 41693 added ifdef TEST 41694 41695 does not use machine rounding mode any more 41696 41697 added 7 new tests 41698 41699 fixed typo in printf format 41700 41701 fixed several rounding problems 41702 41703 rewritten case dif<=0 and PREC(b)>PREC(a) (merged all roundings) 41704 41705 removed DEBUG, VERBOSE ifdef's 41706 41707 fixed (hopefully) the case dif<=0, PREC(b)>PREC(a), directed rounding 41708 41709 replaced (mp_limb_t)1 by macro ONE 41710 fixed bug for GMP_RNDN with overlap=1 41711 41712 removed misplaced comment 41713 41714 added one test 41715 41716 does not use rnd_mode.c by default 41717 41718 removed unused label 41719 41720 fixed more tiny bugs 41721 417222000-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41723 41724 use mpfr_print_rnd_mode now 41725 41726 added one test 41727 41728 added more tests 41729 41730 removed TMP_ALLOC stuff 41731 41732 fixed new bug when a <- b - c with tiny c 41733 41734 fixed bug in a <- b-c when c very small but does not overlap with a 41735 41736 removed 'inline' (does not compile on Alpha with gcc 2.8.1) 41737 41738 added include file unistd.h 41739 41740 fixed warning with long arguments 41741 41742 initial version 41743 41744 added tests for mpfr_set_str 41745 41746 now returns 0 if all works 41747 41748 changed to return the error in ulps 41749 41750 added new functions mpfr_set_str and mpfr_inp_str 41751 41752 added prototypes for set_str, inp_str 41753 changed return value for mpfr*pow* 41754 41755 separated functions with/without rounding argument 41756 41757 added tabs 41758 41759 added set_str.o and inp_str.o 41760 417612000-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41762 41763 initial version 41764 41765 added rule for sub_ui.o 41766 41767 use only one file (trunc.c) for ceil, floor, trunc 41768 41769 now use trunc.c for all 3 functions (ceil, floor, trunc) 41770 41771 added ifdef to avoid warning at compilation 41772 41773 removed unused variable 41774 41775 fixed output type for mpfr_ui_div 41776 41777 removed 3rd argument (use PREC(rop) instead) 41778 added include longlong.h 41779 41780 stupid typo: ABSSIZE -> ABSSIZE(x) 41781 41782 change due to new semantics of mpfr_init_set* macros 41783 41784 now makes an error when precision too large wrt allocated space 41785 41786 added new implemented functions 41787 41788 - added macro for mpfr_sgn 41789 - removed argument 'p' in mpfr_init_set* macros for compatibility with mpf 41790 41791 updated wrt new functions 41792 41793 added sub_ui 41794 41795 added new test files 41796 41797 new test files 41798 41799 added new tests 41800 41801 improved tests 41802 41803 new functions (compatibility with mpf) 41804 41805 added 4th arg (was missing in non-stdc def) 41806 41807 added new functions (compatibility with mpf) 41808 41809 added several prototypes 41810 41811 fixed remaining bug (case overlap=5, dif>0) 41812 41813 added add_ui, sqrt_ui, ui_div, ui_sub, reldiff 41814 418152000-05-21 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41816 41817 Compatibility mpf/mpfr, second part. Ceil, floor, trunc. Yet untested. 41818 41819 Include file for compatibility module mpf -> mpfr. 41820 41821 Compatibility with mpf. WARNING: THESE FUNCTIONS ARE UNTESTED IN THEIR PRESENT 41822 FORM. THEY *DO* COMPILE HOWEVER. 41823 418242000-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41825 41826 removed unused variables 41827 41828 removed ';' 41829 41830 added return 41831 41832 added calls to mpf[r]_clear, and rewrote to avoid memory leaks 41833 41834 added calls to free 41835 41836 corrected comment about field mp_size 41837 418382000-05-12 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41839 41840 added tests for negative numbers 41841 41842 added one test 41843 41844 fixed pb with rounding of negative numbers 41845 418462000-05-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41847 41848 added mpfr_abs 41849 41850 test file for mpfr_abs 41851 41852 added mpfr_abs (macro using mpfr_set4) 41853 41854 updated wrt done/new tasks 41855 418562000-05-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41857 41858 added two tests 41859 41860 split mpfr_init2 into mpfr_init and mpfr_set_prec 41861 41862 removed karadiv.o 41863 41864 replaced mpn_divrem_n by mpn_divrem (efficient in GMP 3.0) 41865 41866 not needed any more with GMP 3.0 41867 41868 removed mpn_divrem_n stuff, now that Burnikel/Ziegler algorithm is in GMP 3.0 41869 41870 added one test 41871 418722000-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41873 41874 completely rewritten (changed semantics) 41875 41876 initialized variable bh to avoid warning at compilation 41877 41878 added prototype for mpfr_set_default_rounding_mode 41879 41880 fixed pb in mpfr_cmp_ui_2exp for i=0 41881 41882 updated according to meeting from May 4, 2000 41883 41884 updated for AIX 41885 41886 updated for AIX (thanks to Gerardo Ballabio) 41887 418882000-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41889 41890 added one test 41891 41892 fixed bug found by G. Ballabio for b=0 and 0<c<1 41893 41894 added info for GMP2 vs GMP3 41895 418962000-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41897 41898 added -ffloat-store for Alpha/OSF 41899 41900 added cast to mp_limb_t (bug on Alpha in tadd with -O2) 41901 41902 added one test 41903 41904 removed #if 0 41905 41906 swapped gmp-impl.h and longlong.h for GMP 3.0 41907 419082000-04-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41909 41910 added more tests 41911 41912 fixed pb when target precision is less than integer length 41913 41914 fixed problem not solved so far, i.e. when adding round bit 41915 produces a change of exponent 41916 419172000-04-13 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41918 41919 fixed computation of ulps 41920 41921 removed variable xrw in mpfr_round_raw (not used) 41922 41923 replaced 1st my by my+sh in mpfr_round_raw call 41924 41925 added 2 more tests 41926 419272000-04-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 41928 41929 Correction d'un bug quand le carry contient tous les bits significatifs. 41930 419312000-02-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 41932 41933 improved indentation 41934 mpfr_pi -> mpfr_const_pi 41935 41936 added one test 41937 41938 mpfr_pi -> mpfr_const_pi 41939 41940 use mpfr_cmp_ui instead of SIGN 41941 41942 mpfr_log2 -> mpfr_const_log2 41943 41944 added -O2 compilation flag 41945 added set_q 41946 41947 convert rational (mpz_q) to floating-point (mpfr_t) 41948 41949 removed things which were done 41950 41951 unsigned char -> mp_rnd_t 41952 SIGN -> MPFR_SIGN 41953 41954 use PREC() macro instead of _mp_prec, and corrected size to free 41955 41956 SIGN -> MPFR_SIGN 41957 41958 unsigned char -> mp_rnd_t 41959 SIGN -> MPFR_SIGN 41960 added non standard C header 41961 41962 unsigned char -> mp_rnd_t 41963 41964 unsigned long int -> mp_prec_t 41965 41966 renamed to mpfr_const_log2 41967 unsigned char -> mp_rnd_t 41968 41969 unsigned char -> mp_rnd_t 41970 SIGN -> MPFR_SIGN 41971 unsigned long int -> mp_prec_t 41972 41973 unsigned char -> mp_rnd_t 41974 unsigned long int -> mp_prec_t 41975 41976 unsigned char -> mp_rnd_t 41977 41978 renamed to mpfr_const_pi 41979 unsigned char -> mp_rnd_t 41980 41981 unsigned char -> mp_rnd_t 41982 added non standard C header 41983 41984 SIGN -> MPFR_SIGN 41985 41986 added non standard C header 41987 41988 unsigned char -> mp_rnd_t 41989 SIGN -> MPFR_SIGN 41990 unsigned long int -> mp_prec_t 41991 41992 unsigned char -> mp_rnd_t 41993 SIGN -> MPFR_SIGN 41994 41995 unsigned long int -> mp_prec_t 41996 41997 har -> mp_rnd_t 41998 41999 changed rounding mode to mp_rnd_t 42000 420012000-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42002 42003 now distinguish between true mpfr errors and possible errors from libm.a 42004 42005 now use print_rnd_mode 42006 42007 added suggestion from JP Merlet 42008 42009 added print_rnd_mode.c 42010 42011 added more tests 42012 42013 fixed bug(s) found by Jean-Pierre Merlet 42014 42015 changed prototype of mpfr_set_f (takes now only 3 arguments) 42016 420172000-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42018 42019 added karasqrt.o 42020 42021 added prototype for kara_sqrtrem 42022 added redefinition of KARATSUBA_MUL_THRESHOLD (if not defined) 42023 removed definition of LOG_MP_BITS_PER_LIMB (was not used) 42024 42025 changed return type to mp_size_t and included mpfr.h 42026 42027 moved definition of KARATSUBA_MUL_THRESHOLD (if not defined) to mpfr.h 42028 42029 implements Katatsuba square root 42030 42031 now use kara_sqrtrem instead of mpn_sqrtrem 42032 42033 fixed bug when high limb of quotient is zero 42034 420352000-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42036 42037 added one test [did fail on alpha] 42038 42039 added cast to mp_limb_t in front of 1<<sh 42040 42041 modified to be compatible with gmp-2.0.2 42042 42043 added further sqrt pb on alpha 42044 42045 swapped longlong.h and gmp-impl.h (pb on alpha) 42046 42047 added test for bug in sub.c found by JP Merlet on Solaris 42048 42049 fixed mpn_rshift which could have 0 as shift argument 42050 (caused bug in exp on Solaris found by JP Merlet) 42051 42052 moved debug messages to stdout 42053 420542000-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42055 42056 added prototype for mpn_divrem_n (Burnikel-Ziegler algorithm) 42057 42058 use mpn_divrem_n (Burnikel-Ziegler algorithm) instead of mpn_divrem 42059 when rsize=rrsize 42060 42061 added karadiv.c (to be removed when incorporated in GMP) 42062 42063 Burnikel-Ziegler division 42064 420652000-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42066 42067 added further examples from V. Lefe`vre 42068 420691999-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42070 42071 added macri VERSION for target dist 42072 42073 added new tests from V. Lefe`vre 42074 42075 improved interface: tdiv N for doing N random tests 42076 42077 added one test 42078 42079 DEBUG2 -> DEBUG 42080 42081 added debug instructions 42082 42083 fixed nasty bug in mpfr_cmp2 (case cc=1) 42084 42085 replaced printf by fprintf for error 42086 420871999-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42088 42089 added new tests for large input 42090 42091 fixed bug for large input 42092 42093 rewritten the error analysis: 42094 - now analyzes the cancellation a posteriori 42095 - takes into account errors from rounding and initial approximation 42096 42097 added tests from Vincent Lefe`vre 42098 42099 no warning any more for negative exponent (thanks to V. Lefe`vre) 42100 421011999-12-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42102 42103 fixed bug found by V. Lefe`vre (when n<0, we have to compute 42104 an upper bound of log(2) instead of a lower bound) 42105 42106 added new test (bug found by V. Lefe`vre) 42107 421081999-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42109 42110 added suggestion from V. Lefe`vre 42111 42112 added several remarks from Vincent Lefe`vre 42113 42114 corrected many typos found by Vincent Lefe`vre 42115 421161999-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42117 42118 removed executable rights 42119 42120 improved GMP link (thanks to Vincent Lefe`vre) 42121 added pointer to Alpha-Linux f-p problems 42122 42123 removed executable right on file 42124 421251999-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42126 42127 put back test for x=y 42128 42129 modified to avoid y=-0.0 42130 42131 modified test procedure to return 53 when x=y 42132 42133 mpfr_cmp2(b,c) now returns PREC(b) if b=c, even if c=0 42134 42135 added one test 42136 42137 added test under Cygwin 42138 42139 $make -> $MAKE 42140 42141 removed *rand48 prototypes (pb under Cygwin) 42142 42143 removed *rand48 prototypes 42144 42145 removed lrand48 prototype (pb under Cygwin) 42146 42147 added rounding instructions for Cygnus compiler under Windows 42148 42149 added dummy *rand48 functions for CYGWIN 42150 42151 added info about gmp-mparam.h 42152 42153 incorporated data for CYGWIN 42154 421551999-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42156 42157 added one test 42158 42159 added boundary cases from paper from Michael Parks 42160 421611999-10-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42162 42163 now set sign correctly 42164 42165 added test to check sign is correctly set 42166 42167 added worst case for arg. reduction 42168 42169 fixed bug when initial approx. floor(x/log(2)) is too large 42170 421711999-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42172 42173 now use macros for Linux case, and added ifdef for _ISOC9X_SOURCE 42174 42175 changed target dist to create archive in a directory 42176 421771999-10-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42178 42179 added targets doc and dist 42180 42181 added documentation and contact for problems 42182 42183 file for installation of mpfr 42184 42185 added more tests 42186 42187 now deal with 0 and fixed bug on 64-bit machine 42188 42189 moved to sqrt.c 42190 42191 now use directly mpn_sqrtrem (previously sqrt3.c) 42192 42193 updated prototypes of mpfr_div/mpfr_sqrt 42194 42195 removed div3 and sqrt3 42196 42197 div3 -> div 42198 42199 moved to div.c 42200 42201 replaced implementation using Goldschmidt's algorithm 42202 by that using directly mpn_divrem (previously div3.c) 42203 42204 sqrt3 -> sqrt 42205 42206 GNU Library Public License 42207 422081999-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42209 42210 removed printf statement 42211 42212 added ABS for SIZ(z) when z<0 42213 42214 removed special 'exact' stuff for n=0 42215 42216 fixed prototype of random 42217 422181999-07-30 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42219 42220 replaced GNU MPFR by MPFR (not yet the GNU label) 42221 42222 added copyright notice 42223 422241999-07-09 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42225 42226 added one test with prec=160 42227 42228 error term is N+1 and not N 42229 42230 fixed bug in case sh=0 42231 422321999-07-08 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42233 42234 completely rewritten mpfr_can_round_raw, which costs now O(1) 42235 --- or more probably O(log n) --- instead of O(n) 42236 422371999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42238 42239 changed mpfr_init2 to mpfr_set_prec 42240 42241 added one test 42242 42243 added prototype for mpfr_add1 42244 42245 added mpfr_clear 42246 422471999-07-07 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42248 42249 sqrt3 now returns an exact / inexact flag. 42250 42251 sqrt3 now returns an exact/inexact flag. 42252 422531999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42254 42255 fix UMR (missing 0 terminating string) 42256 42257 put initialization of exponent back (avoids some UMRs) 42258 42259 fixed array bound write bug 42260 42261 added one test 42262 42263 added several tests, and does not print on stdout when no argument 42264 42265 fixed several bugs 42266 422671999-07-07 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42268 42269 Added an example which causes an ABW in mpz_get_str. 42270 422711999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42272 42273 moved drand to mpfr-impl.h and added test in large precision 42274 42275 added tout_str 42276 422771999-07-07 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42278 42279 Problem with the exponents in the destructive case. 42280 422811999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42282 42283 more changes from G. Hanrot 42284 42285 use now drand48 instead of drand 42286 42287 simply set to zero the non-significant bits, don't call mpfr_round_raw 42288 42289 upgrade from bug fixes from Guillaume Hanrot 42290 42291 stores now last computed value together with its rounding mode 42292 42293 checks now destructive version 42294 422951999-07-07 Sylvie Boldo <sylvie.boldo@inria.fr> 42296 42297 changes on random 42298 42299 using div3 42300 42301 using sqrt3 42302 423031999-07-06 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42304 42305 HPUX support, 2nd try. 42306 42307 Patch for the (very seldom encountered) case of even rounding. 42308 423091999-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42310 42311 added def. for random/srandom, which do not exist under HPUX 42312 42313 store now computed values 42314 42315 _mpfr_log2_* -> __mpfr_log2_* 42316 42317 merged machine rounding instructions for Sun and HP 42318 42319 patch for HPUX (no random function) 42320 42321 added print_rnd_mode 42322 42323 fixed prototype of mpfr_print_rnd_mode 42324 42325 improved ulp to deal with case a=0.0 42326 42327 added return 0 to main 42328 423291999-07-06 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42330 42331 Forgotten casts. 42332 42333 Added sqrt3 + tentative support for Alpha linux. 42334 42335 The word added when the exponent is odd was sometimes uninitialized. 42336 42337 Initial version. 42338 42339 Added mpfr_sqrt3. 42340 423411999-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42342 42343 added several functions, and updated others 42344 42345 changed prototype of mpfr_log 42346 42347 returns now an int instead of void 42348 42349 removed initialization of exponent 42350 42351 special case for exp(0) 42352 42353 added test for exp(0) 42354 423551999-07-06 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42356 42357 config.in -> ./config.in 42358 423591999-07-05 Sylvie Boldo <sylvie.boldo@inria.fr> 42360 42361 new, quick & clean 42362 423631999-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42364 42365 added two tests and converted to double's 42366 423671999-07-05 Sylvie Boldo <sylvie.boldo@inria.fr> 42368 42369 more checking ways 42370 423711999-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42372 42373 distinguishes now between true errors and differences with libm.a 42374 (which may fail too) 42375 42376 removed mpf stuff in check 42377 42378 added some mpfr_clear's 42379 42380 changed defs of random/srandom to work on Alpha 42381 42382 mpfr_init2 -> mpfr_set_prec in check64 42383 42384 added function dbl 42385 42386 added prototypes for mpfr_cmp3 and mpfr_set4 42387 42388 use mpfr_set4 now (no modification of const parameters any more) 42389 42390 return 0 in mpfr_can_round_raw 42391 42392 introduced auxiliary function mpfr_set4 42393 42394 fixed possible bug (testing sign of unsigned long) in mpfr_mul_ui 42395 42396 replaced PREC(r) by prec (which was defined but not used) 42397 42398 moved drand and ulp to mpfr-impl 42399 42400 moved ulp to mpfr-impl.h 42401 and used input routine 'dbl' in some tests 42402 42403 modified one test to avoid rounding from double input routines 42404 42405 introduced auxiliary function mpfr_cmp3(x,y,sign) to compare x and sign*y 42406 42407 moved drand and ulp to mpfr-impl.h 42408 42409 mpfr_sub now calls directly mpfr_add1/mpfr_sub1 (no modification of 42410 const parameters any more) 42411 42412 moved drand to mpfr-implh.h 42413 42414 use mpfr_cmp3 instead of mpfr_cmp (avoids warning due to modification of 42415 const parameters) 42416 42417 moved drand to mpfr-impl.h and removed warnings 42418 42419 use the result of mpfr_can_round 42420 42421 moved drand and ulp to mpfr-impl.h 42422 42423 moved drand to mpfr-impl.h 42424 42425 moved drand to mpfr-impl and removed warnings 42426 42427 added include of math.h 42428 42429 moved drand and ulp to mpfr-impl.h 42430 42431 include file for mpfr developers only 42432 42433 long -> int in drand 42434 42435 adapted drand to sizeof(long)=64 42436 42437 config.in -> ./config.in (otherwise don't work under IRIX) 42438 42439 removed warnings 42440 42441 patch for GMP bug when UDIV_NEEDS_NORMALIZATION=1 42442 424431999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42444 42445 Correction of a typo. 42446 424471999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42448 42449 fixed horrible hack yp[-1] 42450 424511999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42452 42453 Support of IRIX64 (n32/64 modes) plus cosmetic modifications. 42454 424551999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42456 42457 added one test, and adapted to ANSI C 42458 424591999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42460 42461 Yet Another Backslash Forgotten... 42462 42463 Bug le plus stupide de tous les temps corrige. Ca marchait sous Solaris... 42464 424651999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42466 42467 added one test and removed warnings 42468 424691999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42470 42471 Added mpfr_div3. 42472 42473 Added div3.c 42474 424751999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42476 42477 fixed bug when sizeof(long) <> sizeof(mp_limb_t) 42478 and removed DEBUG2 stuff 42479 42480 added one test, and removed warnings 42481 424821999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42483 42484 Added div3.c, initial release. 42485 42486 Patch of the patch :) 42487 42488 Pattern matching rules in tests Makefile for non-GNU make (eg Solaris) 42489 424901999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42491 42492 adapted to enable denormalized numbers on IRIX64, added one test and 42493 removed warnings 42494 42495 changed type of 3rd arg. 'neg' of mpfr_can_round_raw from char to int 42496 (pb with signed char's on some machines, e.g. IRIX64) 42497 42498 adapted to IRIX64 (enable denorm. numbers) and removed warnings 42499 42500 adapted to IRIX64 (enable denormalized numbers) and removed warnings 42501 42502 adapted to IRIX64 (no denormalized by default) and removed warnings 42503 42504 unsigned long -> mp_limb_t 42505 425061999-07-02 Sylvie Boldo <sylvie.boldo@inria.fr> 42507 42508 unused variables 42509 42510 unused variable 42511 425121999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42513 42514 added ifdef to avoid warning "unused variable" on 64-bit machine 42515 42516 added def. of swapRM to avoid warning on IRIX64 42517 42518 1UL -> ((mp_limb_t) 1) 42519 42520 changed type of mask to mp_limb_t in mpfr_round_raw2 42521 42522 adapted for denormalized on IRIX64 42523 now test NaNs too 42524 425251999-07-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42526 42527 Due to the representation of 0 it might have happened that 0 != 0. 42528 42529 Patch mpfr_set -> MPN_COPY 42530 42531 Patch when prec < 32. 42532 425331999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42534 42535 fixed bugs for 64-bit machines 42536 42537 added casts to mp_limb_t 42538 42539 added cast to mp_limb_t for shifts 42540 425411999-07-01 Sylvie Boldo <sylvie.boldo@inria.fr> 42542 42543 prints nothing is everything is allright 42544 42545 memory gestion 42546 42547 one single bug 42548 42549 more bad cases 42550 425511999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42552 42553 added some certified tests 42554 42555 added one test to check that 1*y = y 42556 425571999-07-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42558 42559 Patch of an MLK due to multiple initialization of the same variables without 42560 freeing them in-between. 42561 42562 Same as in sqrt (allocation problem). 42563 425641999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42565 42566 fixed bug due to shift=0 in mpn_rshift 42567 425681999-07-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42569 42570 (Temporary) patch for memory gestion in sqrt.c 42571 425721999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42573 42574 mpfr_init -> mpfr_init2 42575 42576 initialize temporary variables with current precision 42577 425781999-06-30 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42579 42580 Unbelievably stupid bug fixed. 42581 42582 Two patches : one for an UMR which actually had no effect, one for an FNH in 42583 old code.. 42584 425851999-06-30 Sylvie Boldo <sylvie.boldo@inria.fr> 42586 42587 new bug 42588 42589 there were some conflicts 42590 42591 there were some conflicts 42592 42593 memory gestion 42594 425951999-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42596 42597 replaced outputs by direct comparison when no argument 42598 42599 modified to do only certified test when no argument 42600 42601 modified to do only tests with precomputed values when no argument 42602 42603 does exact rounding only for n=0 42604 426051999-06-29 Jean-Luc Rémy <Jean-Luc.Remy@loria.fr> 42606 42607 added zeta/tzeta 42608 42609 added prototypes for mpfr_exp and mpfr_zeta 42610 42611 computes Riemann function Zeta(s) 42612 first version: only works for s=2 with PREC(result)=53 and rnd_mode=nearest 42613 42614 test file for mpfr_zeta 42615 42616 added prototype for mpfr_set_default_prec 42617 42618 file renamed zeta.c 42619 42620 first version: computes Zeta(2) with fixed precision 53 bits and round 42621 to nearest 42622 426231999-06-29 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42624 42625 Patch in the case when the number of bits is a multiple of the word size. 42626 42627 Patch in the case when the low words of the product are zero. 42628 426291999-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42630 42631 changed arguments of mpfr_round_raw (continued) 42632 42633 changed arguments of mpfr_round_raw (now uses precision instead of size) 42634 42635 modified wrt warnings at compilation 42636 42637 modified description of mpfr_get_str for n_digits=0 42638 42639 now performs an exact output when n_digits=0 42640 426411999-06-28 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42642 42643 Yet another corrected prototype. 42644 426451999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42646 42647 Prototypes et quelques causes de warnings corriges. 42648 42649 Modifs cosmetiques. 42650 42651 Fichier vide. 42652 426531999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42654 42655 do not print anything when no argument 42656 42657 use GMP allocate/free functions instead of malloc/free 42658 42659 do not print anything on stdout 42660 42661 put correctly sign with macro CHANGE_SIGN 42662 426631999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42664 42665 Ajoute la dépendance de libmpfr.a pour le Makefile des tests. 42666 426671999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42668 42669 correctly handle case sizer=1 in mpfr_set_d 42670 42671 corrected allocated size in mpfr_round 42672 42673 make clean does not remove config.in any more 42674 426751999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42676 42677 Correction d'un UMR en inversant le while (sans incidence tres probablement). 42678 426791999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42680 42681 added four tests 42682 42683 adapted mpfr_set_d to case where allocated limbs > significant limbs 42684 42685 fixed bug for b=2^n and c very small 42686 426871999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42688 42689 Some limbs of the result where not set to zero as they should. 42690 426911999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42692 42693 added prototypes, and errors to stderr 42694 42695 binary file -> remove it 42696 42697 use PREC(x) instead of ABSSIZE(x) to get number of significant limbs 42698 adapted to different numbers of significant limbs for x and y 42699 42700 fixed pbs with ABSSIZE(x) wrt PREC(x) in mpfr_round 42701 42702 added pointer to exponent, removed test with sprintf 42703 42704 removed DEBUG stuff 42705 42706 use PREC(x) instead of ABSSIZE(x) to get the number of significant limbs 42707 42708 do 10^6 tests if no argument 42709 427101999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42711 42712 J'avais oublie -g... 42713 42714 Ajoute des flags de paranoiaque schizophrene. 42715 427161999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42717 42718 now prints nothing with no argument 42719 42720 added texp and tdiv_ui 42721 42722 test file for div_ui, initial revision 42723 42724 commented out "avant arrondi..." 42725 42726 clear res1/res2 42727 427281999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42729 42730 Patches an ABR. 42731 42732 Patch of an ABR. 42733 42734 Patch in the case n = 0. 42735 42736 Patch for a memory leak. 42737 427381999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42739 42740 added two tests for exact roots 42741 42742 removed DEBUG stuff and fixed pb with exact root and GMP_RNDZ 42743 427441999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42745 42746 Correction d'un ABR. 42747 427481999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42749 42750 added test for prec=53 bits, removed output for argc==1 42751 427521999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42753 42754 Initial revision. 42755 427561999-06-24 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42757 42758 Patched an Array Bound Read. 42759 42760 Corrected an Array Bound Read when all the bits are significative. 42761 427621999-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42763 42764 i -> s in tests on mpfr_cmp_si 42765 42766 fixed pb in mpfr_cmp_si_2exp (case b=0 or i=0) 42767 42768 & -> && 42769 42770 removed 3rd arg. of mpfr_set_prec 42771 42772 treats case b=c in mpfr_sub(a,b,c) 42773 42774 removed 3rd argument in mpfr_set_prec 42775 reallocates only when more limbs are needed 42776 42777 removed 3rd arg. of mpfr_set_prec 42778 42779 added some mpfr_clear's that were missing 42780 42781 removed 3rd argument from mpfr_set_prec 42782 42783 removed 3rd argument of mpfr_set_prec 42784 42785 changed prototype of mpfr_set_prec (no rounding mode needed any more) 42786 42787 added test for case of missing exponent 42788 and if one argument, print it as a double 42789 42790 fixed bug when exponent was missing (wrong result when part before 42791 binary point is not zero) 42792 42793 added tests from JM Muller and V Lefevre 42794 427951999-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42796 42797 corrected bad case in mpfr_can_round_raw where rnd1=GMP_RNDN 42798 and err is a multiple of BITS_PER_MP_LIMB (was modifying an 42799 extra limb perhaps not allocated) 42800 428011999-06-23 Sylvie Boldo <sylvie.boldo@inria.fr> 42802 42803 qq bugs d'arrondis 42804 428051999-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42806 42807 added exp and div_ui 42808 42809 added test of exp(Pi*sqrt(163)/3)-640320 [texp 0.0 prec] 42810 42811 test file for mpfr_exp, initial revision 42812 42813 added two tests 42814 42815 removed printf's and added one test for leading '+' 42816 42817 now allows leading '+' 42818 428191999-06-23 Sylvie Boldo <sylvie.boldo@inria.fr> 42820 42821 nettoye 42822 428231999-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42824 42825 removed printf 42826 42827 removed printf's 42828 42829 added tests for large precision (tlog x prec rnd) 42830 42831 added test for exact division 42832 42833 mpfr_cmp -> mpfr_cmp2 42834 42835 removed printf, added exit on error 42836 42837 initial revision 42838 42839 cleaned local variables 42840 42841 changed prototype of mpfr_div (now returns int) 42842 42843 now deals correctly with exact division 42844 removed DEBUG stuff 42845 returns 0/1 according to exact division 42846 428471999-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42848 42849 fixed bug found by F. Rouillier: x * Z(2/x) -> 0 [carry from mpfr_round_raw] 42850 428511999-06-22 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42852 42853 Fill with 0 the part added in case of a larger reallocation. 42854 42855 Rajoute le bug report de Fabrice. 42856 428571999-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42858 42859 fixed bug in mpfr_can_round when prec or err are multiples of BITS_PER_MP_LIMB 42860 42861 added test to check sign of result 42862 42863 fixed bug: wrong sign when SIGN(a)<0 at beginning 42864 428651999-06-22 Sylvie Boldo <sylvie.boldo@inria.fr> 42866 42867 avec plein de cas d'erreurs 42868 42869 marche bien 42870 42871 Marche bien 42872 428731999-06-21 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42874 42875 Corrected prototype of mpfr_can_round_raw. 42876 42877 Various patches. 42878 42879 Added prototype for mpfr_can_round_raw 42880 42881 Added mpfr_can_round_raw ; mpfr_can_round just calls it. 42882 42883 Declaration mpfr_print_rnd_mode.c 42884 42885 print_rnd_mode.c -> mpfr_print_rnd_mode.c 42886 42887 Print the rounding mode. 42888 42889 Changement de semantique (plus d'arrondi) et alloc + free -> realloc. 42890 428911999-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42892 42893 initial revision 42894 42895 added one test 42896 42897 now deal with carry from mpfr_round_raw 42898 42899 fixed problem with count_leading_zeros undefined for 0 42900 42901 store computed value and try to reuse it for next calls 42902 42903 added test cn>= in mpfr_cmp2 42904 42905 added mpfr_sub_one_ulp 42906 429071999-06-18 Sylvie Boldo <sylvie.boldo@inria.fr> 42908 42909 tests par rapport aux doubles 42910 42911 pour decouvrir les erreurs 42912 42913 version qui marche 42914 429151999-06-18 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42916 42917 special cases NaN and 0 42918 42919 fixed a few errors 42920 429211999-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42922 42923 added tests for n=0 and d=0 42924 42925 added test for 0.0/1.0 42926 42927 SET_NAN(q) -> SET_NAN(Q) 42928 42929 added one exact root with rounding towards zero 42930 42931 added one test 42932 42933 added two tests 42934 42935 patch to detect exact roots (otherwise problem with rounding to zero) 42936 42937 changed way zero is represented : most sign. limb is zero 42938 42939 added special case for zero 42940 42941 special case for zero 42942 42943 special cases for NaN and zero 42944 42945 special case when one of the arguments is zero 42946 42947 added bug found by S. Boldo and fixed (pb in mpfr_round_raw2) 42948 42949 fixed bug in mpfr_round_raw2 which was returning other values than 0 or 1 42950 429511999-06-17 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42952 42953 Corrected a potential problem in add(a, a, a); 42954 42955 Corrected a potential problem in sub(a, a, a); 42956 429571999-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42958 42959 SET_NAN(x) -> SET_NAN(X) 42960 429611999-06-17 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42962 42963 Patch in cmp2 for some dirty cases (2^a + 2^b <-> 2^a + z, z << 2^a, b << a) 42964 429651999-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42966 42967 added test to check bug found by JL Remy 42968 42969 added TMP_DECL/TMP_MARK/TMP_FREE in mpfr_sub1 to deal with case 42970 where destination=source 42971 429721999-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42973 42974 Bug dans set_d(0) ; la mantisse n'est pas initialisee a 0 correctement. 42975 42976 Gere differemment les problemes d'egalite entre destinations et arguments. 42977 42978 Rajoute log.o et tlog 42979 42980 Vire fichier inutile. 42981 429821999-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42983 42984 added new tests 42985 42986 fixed bug for overlap=k*mp_bits_per_limb, k>=1 42987 429881999-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 42989 42990 Vire Makefile de CVS. 42991 42992 Vire les Makefile de CVS. 42993 429941999-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr> 42995 42996 added one test and random init. 42997 42998 added one test 42999 43000 added tests for cases where destination = source 43001 43002 cases NaN and destination=source 43003 43004 now iterates if one cannot round after 1st try, 43005 and deals with case destination = source 43006 43007 mpfr_can_round again and again 43008 43009 added case of NaN 43010 43011 added macro SET_ZERO 43012 43013 now allows destination = source 43014 430151999-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43016 43017 Vire les tests de cvs. 43018 430191999-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43020 43021 printf -> fprintf 43022 43023 error message when destination equals source (case not yet treated) 43024 43025 now uses the given rounding mode internally instead of always GMP_RNDZ 43026 43027 now rounding to nearest should be correct 43028 430291999-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43030 43031 Encore et toujours mpfr_can_round... 43032 43033 Nettoyage. 43034 43035 Patch pour mpfr_can_round. 43036 430371999-06-15 Sylvie Boldo <sylvie.boldo@inria.fr> 43038 43039 sans instructions de debuggage 43040 43041 rajout de log.o et tlog 43042 43043 rajout de tlog 43044 43045 ajout du log 43046 43047 *** empty log message *** 43048 43049 premiere version du log 43050 430511999-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43052 43053 now recognizes division by exact power of 2 43054 43055 added mpfr_cmp_[us]i_2exp 43056 43057 added mpfr_[us]i_2exp 43058 43059 added mpfr_cmp_[us]i_2exp 43060 430611999-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43062 43063 Correction de bug (pas msb normalise). 43064 430651999-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43066 43067 fixed mistake in error analysis (does not change code) 43068 430691999-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43070 43071 Ajout de random.o dans les objets. 43072 43073 random.c : engendre un mpfr_t dans [0, 1[. GH, 15/06 43074 TODO : un random qui engendre un mpfr_t avec exposant gaussien centre. 43075 430761999-06-15 Jean-Luc Rémy <Jean-Luc.Remy@loria.fr> 43077 43078 changed return value to void 43079 430801999-06-14 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43081 43082 Ajoute les modes d'arrondi RNDN et RNDD. 43083 43084 Correction du prototype de mpfr_mul_ui 43085 43086 Correction du prototype de mpfr_mul_ui 43087 430881999-06-14 Sylvie Boldo <sylvie.boldo@inria.fr> 43089 43090 *** empty log message *** 43091 430921999-06-14 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43093 43094 added several files 43095 43096 added several prototypes 43097 43098 added set_z, add_one_ulp 43099 43100 added mpfr_get_d2 which only considers the mantissa 43101 43102 now uses mpfr_get_d2 (no side effect on arguments) 43103 43104 test file for mpfr_log2 43105 43106 test file for mpfr_set_z 43107 43108 test file for mpfr_pi 43109 43110 computes log(2) 43111 43112 add one ulp 43113 43114 set a mpfr from an integer 43115 43116 computes Pi to n bits 43117 431181999-06-14 Sylvie Boldo <sylvie.boldo@inria.fr> 43119 43120 *** empty log message *** 43121 431221999-06-11 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43123 43124 Initial revision of mpfr documentation 43125 431261999-06-10 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43127 43128 Patch d'un mpfr_set_d dans tsqrt.c ; GH, 100699 43129 43130 Patch d'un mpfr_set_d dans get_str.c ; GH, 100699 43131 43132 Tentative de configuration automatique, v. initiale. GH, 100699 43133 431341999-06-10 Sylvie Boldo <sylvie.boldo@inria.fr> 43135 43136 *** empty log message *** 43137 431381999-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr> 43139 43140 added tout_str 43141 43142 Initial revision. 43143 43144 added out_str.c and pow.c 43145 43146 added proto for mpfr_pow_ui and mpfr_ui_pow_ui 43147 43148 Initial revision. 43149 43150 added include <stdio.h> (needed for FILE in mpfr.h) 43151 43152 added proto for mpfr_out_str 43153 43154 function to print a mpfr to a stream. Initial revision. 43155 43156 changed proto of mpfr_get_str: 2nd arg is mp_exp_t*, not char* 43157 43158 now conforms to the specification 43159 431601999-06-09 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr> 43161 43162 tset_i -> tset_si dans le Makefile de tests. 43163 43164 Version corrigee de mmpfr. 43165 43166 Makefile qui devrait fonctionner pour tous. 43167 43168 Correction de warnings dans tmul_2exp.c 43169 43170 Initial revision 43171