Version française

CariBlog – Blog on Vincent Lefèvre's Research Pages and Computer Arithmetic

All blog items.

[XML]

[2010-07-10 01:05:04 UTC]
Patch 3 for GNU MPFR 3.0.0

(CariBlog – MPFR – Software)

Patch 3 of GNU MPFR 3.0.0 is available in the bugs section of the MPFR 3.0.0 page. It fixes the underflow detection in the mpfr_gamma function.

[2010-07-03 07:45:54 UTC]
Patches 1 and 2 for GNU MPFR 3.0.0

(CariBlog – MPFR – Software)

Patch 1 and patch 2 of GNU MPFR 3.0.0 are available in the bugs section of the MPFR 3.0.0 page.

  • Patch 1 fixes the following special cases of the mpfr_out_str function: The integer value returned by mpfr_out_str is incorrect on NaN and infinities. Moreover output errors are not handled, and if such an error occurs, the return value is incorrect (it should have been 0).

  • Patch 2 fixes a compilation problem on some environments such as Solaris with Sun's compiler; this can be seen with make check, where a typical error is the symbol alloca being undefined. This problem has been introduced in MPFR 3.0.0 (it was not present in previous versions).

[2010-06-11 21:52:20 UTC]
GNU MPFR 3.0.0 is Released

(CariBlog – MPFR – Software)

The GNU MPFR 3.0.0 library (boudin aux pommes) has been released. The changes from the 2.4.* versions:

  • MPFR 3.0.0 is binary incompatible with previous versions, but (almost) API compatible. More precisely the obsolete functions mpfr_random and mpfr_random2 have been removed, the meaning of the return type of the function mpfr_get_f has changed, and the return type of the function mpfr_get_z is now int instead of void. In practice, this should not break any existing code.

  • MPFR is now distributed under the GNU Lesser General Public License version 3 or later (LGPL v3+).

  • Rounding modes GMP_RNDx are now MPFR_RNDx (GMP_RNDx kept for compatibility).

  • A new rounding mode (MPFR_RNDA) is available to round away from zero.

  • The rounding mode type is now mpfr_rnd_t (as in previous versions, both mpfr_rnd_t and mp_rnd_t are accepted, but mp_rnd_t may be removed in the future).

  • The precision type is now mpfr_prec_t (as in previous versions, both mpfr_prec_t and mp_prec_t are accepted, but mp_prec_t may be removed in the future) and it is now signed (it was unsigned in MPFR 2.*, but this was not documented). In practice, this change should not affect existing code that assumed nothing on the precision type.

  • MPFR now has its own exponent type mpfr_exp_t, which is currently the same as GMP's mp_exp_t.

  • Functions mpfr_random and mpfr_random2 have been removed.

  • mpfr_get_f and mpfr_get_z now return a ternary value.

  • mpfr_strtofr now accepts bases from 37 to 62.

  • mpfr_custom_get_mantissa was renamed to mpfr_custom_get_significand (mpfr_custom_get_mantissa is still available via a #define).

  • Functions mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj, mpfr_get_z and mpfr_get_z_2exp no longer have cases with undefined behavior; in these cases, the behavior is now specified, and in particular, the erange flag is set.

  • New functions mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p giving information about options used at MPFR build time.

  • New function mpfr_regular_p.

  • New function mpfr_set_zero.

  • New function mpfr_digamma.

  • New function mpfr_ai (incomplete, experimental).

  • New functions mpfr_set_flt and mpfr_get_flt to convert from/to the float type.

  • New function mpfr_urandom.

  • New function mpfr_set_z_2exp (companion to mpfr_get_z_2exp, which was renamed from mpfr_get_z_exp in previous versions).

  • Speed improvement for large operands in the trigonometric functions (mpfr_sin, mpfr_cos, mpfr_tan, mpfr_sin_cos): speedup of about 2.5 for 105 digits, of about 5 for 106 digits.

  • Speed improvement for large operands of the inverse trigonometric functions (arcsin, arccos, arctan): about 2 for 103 digits, up to 2.7 for 106 digits.

  • Some documentation files are installed in $docdir.

  • The detection of a GMP build directory (more precisely, the internal header files of GMP) was previously done separately from the use of the --with-gmp-build configure option. This was not consistent with the documentation and with other parts of the configure script. So, as of MPFR 3.0.0, the internal header files of GMP are now used if and only if the --with-gmp-build configure option is given.

  • The configure script recognizes some extra long double formats (double big endian, double little endian, double-double big endian).

  • MPFR manual: added API Compatibility section.

  • Bug fixes.

[2010-06-06 23:44:07 UTC]
GNU MPFR 3.0.0 Release Candidate 2

(CariBlog – MPFR – Software)

[2010-04-10 21:52:48 UTC]
SCAN 2010

(CariBlog)

SCAN 2010 (GAMM-IMACS International Symposium on Scientific Computing, Computer Arithmetic and Validated Numerics) will take place at ENS-Lyon, France, September 27-30, 2010.

Abstract submission until Friday, April 16, 2010.

[2010-03-18 21:04:02 UTC]
pow(-0.0,0.5) vs sqrt(-0.0) and GCC

(CariBlog)

According to the Annex F of the ISO C99 standard (and the IEEE 754-2008 standard, but not yet referenced by the C standard), pow(-0.0,0.5) shall return +0, while sqrt(-0.0) shall return -0. The latter was actually defined by the old IEEE 754-1985 standard and in practice, it is implemented in hardware (by the processors). Following a discussion in the GCC development list, I noticed that GCC transformed pow(x,0.5) into sqrt(x) even for the value -0, which is incorrect. GCC 4.3.* and 4.4.3 (but not GCC 4.2.*) are affected by this bug, which I reported. It was fixed a few hours later.

[2010-03-02 09:25:48 UTC]
INRIAGforge Service Migration and Scheduled Downtime

(CariBlog – MPFR – Software)

INRIAGforge, which hosts the MPFR repository, will be updated on March 8. Due to this migration, the web pages on INRIAGforge will be unavailable on March 8 from 13:30 to 16:30 CET (12:30 to 15:30 UTC), and access to the Subversion repository will be unavailable from 16:30 to 17:30 CET (15:30 to 16:30 UTC).

The MPFR web site and mailing-list are not hosted on INRIAGforge, thus will not be affected.

[2010-02-17 12:46:43 UTC]
Our Book Handbook of Floating-Point Arithmetic

(CariBlog – Computing)

The Handbook of Floating-Point Arithmetic, written by several members of Arénaire (including me), has been available for a few weeks.

Floating-point arithmetic is by far the most widely used way of implementing real-number arithmetic on modern computers. Although the basic principles of floating-point arithmetic can be explained in a short amount of time, making such an arithmetic reliable and portable, yet fast, is a very difficult task. From the 1960s to the early 1980s, many different arithmetics were developed, but their implementation varied widely from one machine to another, making it difficult for nonexperts to design, learn, and use the required algorithms. As a result, floating-point arithmetic is far from being exploited to its full potential.

This handbook aims to provide a complete overview of modern floating-point arithmetic, including a detailed treatment of the newly revised (IEEE 754-2008) standard for floating-point arithmetic. Presented throughout are algorithms for implementing floating-point arithmetic as well as algorithms that use floating-point arithmetic. So that the techniques presented can be put directly into practice in actual coding or design, they are illustrated, whenever possible, by a corresponding program.

Key topics and features include:

  • Presentation of the history and basic concepts of floating-point arithmetic and various aspects of the past and current standards

  • Development of smart and nontrivial algorithms, and algorithmic possibilities induced by the availability of a fused multiply-add (FMA) instruction, e.g., correctly rounded software division and square roots

  • Implementation of floating-point arithmetic, either in software—on an integer processor—or hardware, and a discussion of issues related to compilers and languages

  • Coverage of several recent advances related to elementary functions: correct rounding of these functions and computation of very accurate approximations under constraints

  • Extensions of floating-point arithmetic such as certification, verification, and big precision

Handbook of Floating-Point Arithmetic is designed for programmers of numerical applications, compiler designers, programmers of floating-point algorithms, designers of arithmetic operators, and more generally, students and researchers in numerical analysis who wish to better understand a tool used in their daily work and research.

Another page on the book, with links and errata.

[2010-01-29 00:00:01 UTC]
mpfr.org and MPFR Mailing-List Server Scheduled Downtime

(CariBlog – MPFR)

We have received an announce saying that the computer systems at the Loria will be stopped from Friday, February 5 at 17:00 (16:00 UTC) to Sunday, February 7 at 19:00 (18:00 UTC). The mpfr.org web server and the MPFR mailing-list will be affected by this downtime. Sorry for the inconvenience.

[2010-01-12 00:11:12 UTC]
Patch 3 for GNU MPFR 2.4.2

(CariBlog – MPFR – Software)

Patch 3 of MPFR 2.4.2 is available in the bugs section of the MPFR 2.4.2 page. It allows one to build MPFR with the GMP 5 internal files (necessary due to an internal change in GMP), i.e. when using the --with-gmp-build option. Note: most users don't need this patch.

[2010-01-07 23:51:53 UTC]
InriaGforge Scheduled Downtime

(CariBlog – MPFR – Software)

InriaGforge scheduled downtime: on 2010-01-14, from 16:00 to 18:00 UTC, the InriaGforge site and all associated services will be unavailable due to maintenance operations on servers.

The MPFR web site and mailing-list will not be affected.

[2009-12-18 17:59:44 UTC]
Patches 1 and 2 for GNU MPFR 2.4.2

(CariBlog – MPFR – Software)

Patch 1 and patch 2 of MPFR 2.4.2 are available in the bugs section of the MPFR 2.4.2 page.

  • Patch 1 fixes a minor bug: the underflow flag is not set when calling the mpfr_sin_cos function on the minimum positive number or its opposite with rounding toward zero or equivalent.

  • Patch 2 allows one to build MPFR on MIPS processors with GCC 4.4 and later.

[2009-11-30 17:23:19 UTC]
GNU MPFR 2.4.2 is Released

(CariBlog – MPFR – Software)

The GNU MPFR 2.4.2 library (andouillette sauce moutarde, patch level 2) has been released. The changes from the 2.4.1 version:

  • Security fix in formatted output functions (buffer overflow).

  • Formatted output functions: 6 is now the default value for empty precision field with %Rf.

  • Better portability of configure script.

  • Detection of intmax_t and uintmax_t types.

  • Improved documentation: mpfr_get_z_exp, mpfr_strtofr, mpfr_get_str and formatted output functions.

  • Improved message in case of assertion failure.

  • Updated tcmp_ld test to really test the long double.

  • Some documentation files are installed in $docdir.

  • Removed mpfr_init_cache (unused and undocumented function).

  • Fixed the way $CC / $CFLAGS are got from gmp.h (__GMP_CC / __GMP_CFLAGS).

  • Bug fixes.

  • Also note that GCC 4.4.0 (only this obsolete version) does not build MPFR 2.4.2 correctly; this problem is detected by make check (failures in tget_z and tpow_all).

[2009-11-26 00:17:02 UTC]
GNU MPFR 2.4.2 Release Candidate 3

(CariBlog – MPFR – Software)

The third release candidate of GNU MPFR 2.4.2 is available.

The main problem found in the second release candidate (also present in previous MPFR versions): When gcc is installed, gmp.h contains __GMP_CC / __GMP_CFLAGS information, and GMP has been compiled with a compiler somewhat incompatible with gcc (this can be the default on some machines), then the build of MPFR can fail. The reason is that the configure script detected the presence of gcc before the compiler from __GMP_CC was chosen (replaced gcc), so that the script did some settings related to gcc (due to some autoconf macro), such as selecting gcc-specific options for dependency tracking.

[2009-11-23 00:04:13 UTC]
GNU MPFR 2.4.2 Release Candidate 2

(CariBlog – MPFR – Software)


webmaster@vinc17.org