summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Other changes concerning the memory limit for the tests.vlefevre2016-06-093-6/+16
| | | | | | | | | | * Export the tests_memory_limit variable so that it can be accessed in test programs (e.g. read by tversion as mentioned below, or modified by a test program when executed with particular arguments). * In tversion, print a warning when the memory limit has been modified (with the MPFR_TESTS_MEMORY_LIMIT environment variable). git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10460 280ebfd0-de03-0410-8827-d642c229c3f4
* [tests/memory.c] The MPFR_TESTS_MEMORY_LIMIT environment variable canvlefevre2016-06-091-4/+17
| | | | | | | now contain an integer specifying the memory limit for the tests, or 0 for unlimited, the default still being 2^22 = 4 MB. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10459 280ebfd0-de03-0410-8827-d642c229c3f4
* [tests/tsum.c] Improved check3:vlefevre2016-06-081-29/+40
| | | | | | | | * Also do the tests with output precision MPFR_PREC_MIN; this completes the value coverage for tsum. * Also compare the flags. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10457 280ebfd0-de03-0410-8827-d642c229c3f4
* Value coverage for tsum: After r9984 to differentiate sq > MPFR_PREC_MINvlefevre2016-06-081-1/+1
| | | | | | | | and sq == MPFR_PREC_MIN, 42 tests were not done for sq == MPFR_PREC_MIN on a 64-bit machine. In the check4 test, changed a 2 to MPFR_PREC_MIN. This reduces to 12 tests that are not done. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10456 280ebfd0-de03-0410-8827-d642c229c3f4
* Merged the "ubf" branch into the trunk:vlefevre2016-06-0719-283/+799
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * limited implementation of "unbounded floats" (numbers with a mpz_t exponent), which could be completed in the future, in particular to handle intermediate overflows/underflows in polynomial evaluation; * rewrote mpfr_fmma and mpfr_fmms to use them, and added tests; * restored the MPFR 3.1- exponent range for compatibility; * restored some tests that were based on this exponent range. The choice for the UBF implementation was to use a compatible structure: the same as the mpfr_t one, with an additional field at the end, used only when the exponent field _mpfr_exp has some special value. Thus some functions such as addition and subtraction just needed minor changes to support UBF, and no code was duplicated. This means that on MPFR numbers (the usual case), one has a few more tests than before, but with known branch probabilities. In practice, this should not be visible, at least in most applications. This was more or less confirmed by timings (even with many additions/subtractions in low precision, this was difficult to say, as timings were influenced by various parameters that we cannot control). git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10454 280ebfd0-de03-0410-8827-d642c229c3f4
| * Merged the latest change from the trunk (r10452).ubfvlefevre2016-06-071-1/+1
| |\ | |/ |/| | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10453 280ebfd0-de03-0410-8827-d642c229c3f4
* | [tools/mbench/Makefile] Added multiarch support for GMP.vlefevre2016-06-071-1/+1
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10452 280ebfd0-de03-0410-8827-d642c229c3f4
| * [src/mpfr-impl.h] Updated a comment (removing a FIXME).vlefevre2016-06-071-1/+3
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10451 280ebfd0-de03-0410-8827-d642c229c3f4
| * Merged the latest change from the trunk (r10449).vlefevre2016-06-071-6/+4
| |\ | |/ |/| | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10450 280ebfd0-de03-0410-8827-d642c229c3f4
* | [tests/tprintf.c] Removed tests of native %'g and %'f (from r8292)vlefevre2016-06-071-6/+4
| | | | | | | | | | | | | | as the ' flag is an extension from Single UNIX Specification and in particular, they fail with MinGW under Wine. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10449 280ebfd0-de03-0410-8827-d642c229c3f4
| * Merged the latest changes from the trunk.vlefevre2016-06-072-4/+28
| |\ | |/ |/| | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10448 280ebfd0-de03-0410-8827-d642c229c3f4
* | [tests/tlgamma.c] Typo in comment.vlefevre2016-06-071-1/+1
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10447 280ebfd0-de03-0410-8827-d642c229c3f4
* | [src/uceil_log2.c] Added a comment. Cosmetic changes.vlefevre2016-06-071-3/+5
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10446 280ebfd0-de03-0410-8827-d642c229c3f4
* | [tests/tlgamma.c] Corrected updated comment from r10444.vlefevre2016-06-071-2/+4
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10445 280ebfd0-de03-0410-8827-d642c229c3f4
* | [tests/tlgamma.c] Updated comment of the test added in r10442.vlefevre2016-06-061-1/+2
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10444 280ebfd0-de03-0410-8827-d642c229c3f4
* | [src/uceil_log2.c] Correction in __gmpfr_ceil_log2, avoiding anvlefevre2016-06-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | incorrect result with tcc: x.s.exp is declared as an unsigned bit-field, so that tcc considers that x.s.exp - 1023 is unsigned. However, since all the values of x.s.exp are representable in an int, according to the integer promotion rules, x.s.exp should be converted to an int, so that the subtraction is signed. So, this appears to be a bug in tcc. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10443 280ebfd0-de03-0410-8827-d642c229c3f4
* | [tests/tlgamma.c] Added a test causing a "too much memory" error withvlefevre2016-06-061-0/+19
| | | | | | | | | | | | | | tcc 0.9.27~git20151227.933c223-1 (there's already one in special(), but this one is a simpler, standalone test). git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10442 280ebfd0-de03-0410-8827-d642c229c3f4
| * Merged the latest change from the trunk (r10440).vlefevre2016-06-061-4/+6
| |\ | |/ |/| | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10441 280ebfd0-de03-0410-8827-d642c229c3f4
* | [acinclude.m4] When checking if __float128 is available, we now alsovlefevre2016-06-061-4/+6
| | | | | | | | | | | | | | | | check whether C99 constants (in particular the __float128 ones, such as 0x1.fp+16383q) are supported since this is now required with the __float128 support. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10440 280ebfd0-de03-0410-8827-d642c229c3f4
| * Merged the latest changes from the trunk.vlefevre2016-06-066-18/+60
| |\ | |/ |/| | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10439 280ebfd0-de03-0410-8827-d642c229c3f4
* | [src/add1.c] Simplified code: removed fb = 1 since it was already 1vlefevre2016-06-061-5/+1
| | | | | | | | | | | | in the "if (fb > 0)" branch. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10435 280ebfd0-de03-0410-8827-d642c229c3f4
* | [src/set_float128.c] Fix: removed the divisions by zero, replacing themvlefevre2016-06-061-8/+9
| | | | | | | | | | | | | | by comparisons with the maximum finite binary128 number. Changes to be similar to the handling of infinities in "src/set_ld.c". git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10434 280ebfd0-de03-0410-8827-d642c229c3f4
* | [TODO] Faithful rounding: small correction.vlefevre2016-06-061-2/+2
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10433 280ebfd0-de03-0410-8827-d642c229c3f4
* | [TODO] Added "faithful rounding", with information about its definitionvlefevre2016-06-061-0/+18
| | | | | | | | | | | | and implementation. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10432 280ebfd0-de03-0410-8827-d642c229c3f4
* | [src/{fits_intmax.c,fits_s.h}] In comments, fit → fits.vlefevre2016-06-032-2/+2
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10431 280ebfd0-de03-0410-8827-d642c229c3f4
* | [src/set_float128.c] Added FIXME comment: The mpfr_set_float128 codevlefevre2016-06-031-0/+4
| | | | | | | | | | | | generates a divide-by-zero exception. Suggest a solution. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10430 280ebfd0-de03-0410-8827-d642c229c3f4
* | [tests/tset_float128.c] Take into account failures in division by 0vlefevre2016-06-031-7/+30
| | | | | | | | | | | | | | and absence of signed zeros. Also fixed the code checking the sign of 0 (mpfr_sgn cannot be used for that since it returns 0 for ±0). git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10429 280ebfd0-de03-0410-8827-d642c229c3f4
| * Merged the latest change from the trunk (r10426 fix).vlefevre2016-06-031-1/+5
| |\ | |/ |/| | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10427 280ebfd0-de03-0410-8827-d642c229c3f4
* | [src/set_d.c] Added some assertions and fixed a 32-bit shift countvlefevre2016-06-031-1/+5
| | | | | | | | | | | | when GMP_NUMB_BITS == 32. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10426 280ebfd0-de03-0410-8827-d642c229c3f4
| * Merged the latest changes from the trunk (C++ compatibility).vlefevre2016-06-033-22/+29
| |\ | |/ |/| | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10425 280ebfd0-de03-0410-8827-d642c229c3f4
* | [tests/tset_float128.c] C++ compatibility.vlefevre2016-06-031-21/+21
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10424 280ebfd0-de03-0410-8827-d642c229c3f4
* | [tests/tlog.c] Added a cast to mpfr_rnd_t for C++ compatibility.vlefevre2016-06-031-1/+1
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10423 280ebfd0-de03-0410-8827-d642c229c3f4
* | added reference for Lambert W functionzimmerma2016-06-031-0/+7
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10417 280ebfd0-de03-0410-8827-d642c229c3f4
| * [tests/tfmma.c] Forgot a cast to mpfr_rnd_t for C++ compatibility.vlefevre2016-06-031-1/+1
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10422 280ebfd0-de03-0410-8827-d642c229c3f4
| * [src/add1.c] Completed UBF support. Note: due to the restrictionvlefevre2016-06-031-5/+10
| | | | | | | | | | | | | | on the exponent values, diff_exp does not need to be the unsigned integer type mpfr_uexp_t (mpfr_exp_t is sufficient). git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10421 280ebfd0-de03-0410-8827-d642c229c3f4
| * [tests/tfmma.c] Correction.vlefevre2016-06-031-1/+1
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10420 280ebfd0-de03-0410-8827-d642c229c3f4
| * [tests/tfmma.c] Test (1/2)x + (1/2)x = x near underflow.vlefevre2016-06-031-1/+60
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10419 280ebfd0-de03-0410-8827-d642c229c3f4
| * [tests/tfmma.c] Replaced precision 64 by GMP_NUMB_BITS (to make surevlefevre2016-06-031-4/+4
| | | | | | | | | | | | | | | | that the add1sp and sub1sp conditions are satisfied with the current src code, these tests may rely on the fact that there are no trailing bits, i.e. that the precision is a multiple of GMP_NUMB_BITS). git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10418 280ebfd0-de03-0410-8827-d642c229c3f4
| * [src/{add,sub}.c] Consider UBF numbers as special cases so thatvlefevre2016-06-032-14/+44
| | | | | | | | | | | | | | | | mpfr_sub1sp and mpfr_add1sp, which do not support UBF, are never called on UBF numbers. This should also (very slightly) speed up the normal cases. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10416 280ebfd0-de03-0410-8827-d642c229c3f4
| * [src/mpfr-impl.h] UBF support: added MPFR_IS_SINGULAR_OR_UBF andvlefevre2016-06-031-0/+5
| | | | | | | | | | | | MPFR_ARE_SINGULAR_OR_UBF macros. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10415 280ebfd0-de03-0410-8827-d642c229c3f4
| * [tests/tfmma.c] Added test cases where the precision of the resultvlefevre2016-06-021-46/+63
| | | | | | | | | | | | | | is twice the precision of each input, which can currently involve add1sp.c and sub1sp.c code. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10403 280ebfd0-de03-0410-8827-d642c229c3f4
| * Merged the latest changes from the trunk.vlefevre2016-06-022-8/+10
| |\ | |/ |/| | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10397 280ebfd0-de03-0410-8827-d642c229c3f4
* | [src/exceptions.c] Fixed the MPFR_LOG_FUNC in mpfr_underflow andvlefevre2016-06-021-4/+2
| | | | | | | | | | | | mpfr_overflow (x is not an input in these functions). git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10396 280ebfd0-de03-0410-8827-d642c229c3f4
* | [src/sub1.c] In r10347, logging was introduced instead of #ifdef DEBUGvlefevre2016-06-021-4/+8
| | | | | | | | | | | | | | | | and printf. Removed 2 MPFR_LOG_VAR, as the variable is not normalized yet. Re-added #ifdef DEBUG for the MPFR_LOG_MSG's since this may be too low level and not much useful except in case of bugs. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10395 280ebfd0-de03-0410-8827-d642c229c3f4
* | fixed typoszimmerma2016-05-301-2/+2
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10390 280ebfd0-de03-0410-8827-d642c229c3f4
| * [src/sub1.c] Forgot a \n in a log message.vlefevre2016-05-301-1/+1
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10391 280ebfd0-de03-0410-8827-d642c229c3f4
| * [src/sub1.c] Added UBF support.vlefevre2016-05-301-42/+58
| | | | | | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10389 280ebfd0-de03-0410-8827-d642c229c3f4
| * Merged the latest changes (in particular the fix in sub1.c) from thevlefevre2016-05-3014-91/+357
| |\ | |/ |/| | | | | | | trunk. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf@10388 280ebfd0-de03-0410-8827-d642c229c3f4
* | [tests/tsub.c] Added comments for check_max_almosteven (latestvlefevre2016-05-301-0/+23
| | | | | | | | | | | | test case, added in r10383). git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10386 280ebfd0-de03-0410-8827-d642c229c3f4
* | [src/sub1.c] Fixed bug in mpfr_sub1 (real subtraction b - c, |b| > |c|):vlefevre2016-05-292-5/+139
| | | | | | | | | | | | | | | | | | | | | | In MPFR_RNDN (rounding to nearest), when |b| is the midpoint between the maximum number and 2^emax (the maximum number + 1 ulp) and c is small, the obtained result is an infinity (with overflow) instead of ± the maximum number (no overflow). The cause is that an overflow is generated too early (in the rounding code). [tests/tsub.c] Added test cases. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10383 280ebfd0-de03-0410-8827-d642c229c3f4