Version française

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

All blog items.


[2022-04-05 23:32:32 UTC]
New Function mpfr_rootn_si in the Development Version of GNU MPFR

(CariBlog – MPFR – Software)

I have just implemented the mpfr_rootn_si function in the development version of GNU MPFR. It provides the rootn function of the IEEE 754 standard (which appeared in the 2008 revision). It completes the mpfr_rootn_ui function, which was providing rootn for non-negative values of n only.

[2021-11-19 22:59:17 UTC]
GNU MPFR and Migration to Inria GitLab

(CariBlog – MPFR – Software)

As announced last month in its mailing-list, the GNU MPFR sources have been hosted at (Inria GitLab) since 2021-10-15, after InriaForge closed. There are now two separate Git repositories:

Not all the work related to this migration has been completed yet.

On InriaForge, we were using Subversion as the version control system, so that the single repository, composed of the sources (trunk/branches/tags) and some special misc directory, had to be converted to two Git repositories. I had first done an attempt with git svn, but an analysis of the obtained Git repository for the sources revealed important issues, caused mainly by the following particularities of the Subversion repository.

  • Some files and directories (for the directories, these were branches) were replaced (on purpose), i.e. deleted, then re-added with a different history (possibly new), either in the same commit or later. The git svn tool was considering that these were the same files or branches, thus was generating a completely incorrect history (as a consequence, the diff implied by the generated commit was also completely incorrect, even though the resulting contents were correct).

  • Before Subversion, CVS was used as the version control system, and the CVS repository was converted to Subversion with cvs2svn on 2005-10-24. Unfortunately, cvs2svn had bugs (or was it CVS itself?), and generated an incorrect history for tags (we did not notice this issue at that time, but anyway, it is not clear that we could have done anything to avoid it), in particular with some files coming from the associated branch and others coming from the trunk.

So I decided to use Eric S. Raymond's excellent reposurgeon tool to fix everything, but also to add some metadata, such as the Subversion revisions to each commit message (since such revisions are sometimes referenced), together with the affected branch (since Git cannot retrieve this information). For this repository conversion with reposurgeon, I found various issues (some of them also due to the particularities of the MPFR's Subversion repository, and all of them fixed rather quickly) and did some merge requests. Some files and scripts I wrote for this conversion can be found in the mpfr-conversion.tar.xz archive. Note that there was only one operation between what are now two repositories: Subversion revision 12528, where a file was moved from /misc to /trunk/tools; I checked that it was correctly handled by reposurgeon (but of course, in the Git repositories, this just appears as an addition on one side and as a deletion on the other side, without any link between these two generated operations).

[2021-04-23 17:06:28 UTC]
Patch 12 for GNU MPFR 4.1.0

(CariBlog – MPFR – Software)

Patch 12 of GNU MPFR 4.1.0 is available in the bugs section of the MPFR 4.1.0 page. It fixes some issues with the mpfr_get_str_ndigits function.

[2021-03-09 18:59:08 UTC]
Patches 10 and 11 for GNU MPFR 4.1.0

(CariBlog – MPFR – Software)

Patches 10 and 11 of GNU MPFR 4.1.0 are available in the bugs section of the MPFR 4.1.0 page. The main bug, fixed by patch 10 (among potential compilation failures in unusual cases): the mpfr_set macro (which, by default, is used in place of the function) evaluates its second argument twice.

[2021-02-19 12:55:57 UTC]
Scheduled Outage Concerning

(CariBlog – MPFR)

Due to power outage, the server hosting will be switched off from Tuesday 23 February 2021, 17:00 CET (16:00 UTC) to Wednesday 24 February 2021, 18:00 CET (17:00 UTC), except unpredictable incident. Only the website will be affected. The MPFR mailing-list and InriaForge will still work.

[2021-02-17 21:28:21 UTC]
Patches 8 and 9 for GNU MPFR 4.1.0

(CariBlog – MPFR – Software)

Patches 8 and 9 of GNU MPFR 4.1.0 are available in the bugs section of the MPFR 4.1.0 page.

[2021-02-11 22:34:12 UTC]
7 Patches for GNU MPFR 4.1.0

(CariBlog – MPFR – Software)

Patches 1 to 7 of GNU MPFR 4.1.0 are available in the bugs section of the MPFR 4.1.0 page.

[2021-01-15 17:54:07 UTC]
Scheduled Outage Concerning

(CariBlog – MPFR)

Happy New Year to everyone!

Due to power outage, the server hosting will be switched off from Friday 22 January 2021, 16:00 CET (15:00 UTC) to Monday 25 January 2021, 10:00 CET (09:00 UTC), except unpredictable incident. Only the website will be affected. The MPFR mailing-list and InriaForge will still work.

[2020-06-13 15:26:21 UTC]
GNU MPFR 4.1.0 Release Candidate

(CariBlog – MPFR – Software)

The GNU MPFR 4.1.0 release candidate is available.

Note that the default CFLAGS value for GCC uses an option that has been introduced in GCC 4.1 (released in 2006). So, if you want to build MPFR with a GCC version less than 4.1, you need to provide an explicit CFLAGS. This issue will be fixed in the final release.

[2020-03-31 20:56:38 UTC]
New Patches for GNU MPFR 4.0.2

(CariBlog – MPFR – Software)

Patches 2 to 6 of GNU MPFR 4.0.2 are available in the bugs section of the MPFR 4.0.2 page. The main ones fix underflow/overflow issues that could be visible with the following functions: mpfr_set_ui_2exp, mpfr_set_si_2exp, mpfr_set_uj_2exp, mpfr_set_sj_2exp, mpfr_fmma, mpfr_fmms, mpfr_fma, mpfr_fms.

[2020-02-12 16:39:01 UTC] Server Down

(CariBlog – MPFR – Software)

The server is currently down (amongst other virtualized servers, hosted at the same place). This is due to unexpected issues following a maintenance concerning the NAS that was done yesterday (2020-02-11 at 17:00 UTC). We still do not know when the server will be back online.

You can still obtain the GNU MPFR source code from the GNU FTP site and from InriaForge.

[Update] The server is now up.

[2019-11-04 00:30:17 UTC]
Nouvelle page web sur le jeu Neopolis

(vinc17 – Lyon – CariBlog)

J'ai écrit une nouvelle page web sur Neopolis, jeu créé par Ben Kaltenbaek, Roland Lamidieu et Lucas Odion, et lancé à Lyon en mars 2019 sous le nom Metropolis, avant d'être renommé en Neopolis en juillet.

J'y donne des informations en tant que joueur aux 5 parties qui ont eu lieu à Lyon, dont celle en cours depuis le début du mois.

J'y ai aussi ajouté une section sur un bug d'affichage, pour lequel j'ai trouvé une explication probable, liée à une mauvaise méthode de calcul en virgule flottante (les valeurs particulières affectées par ce bug correspondent à mon explication).

[2019-04-04 15:58:16 UTC]
New Paper Accurate Complex Multiplication in Floating-Point Arithmetic

(CariBlog – MPFR)

I have a new paper, written with Jean-Michel Muller: Accurate Complex Multiplication in Floating-Point Arithmetic. It has been accepted at the 26th IEEE Symposium on Computer Arithmetic (ARITH 26), which will take place on 10–12 June 2019 in Kyoto, Japan. Abstract:

We deal with accurate complex multiplication in binary floating-point arithmetic, with an emphasis on the case where one of the operands in a double-word number. We provide an algorithm that returns a complex product with normwise relative error bound close to the best possible one, i.e., the rounding unit u.

For testing, comparisons have been done with the naive algorithm in the binary64 (double precision) and binary128 (quadruple precision) formats, and with implementations based on GNU MPFR, on x86_64 and POWER9 machines (the latter is currently the only processor with hardware binary128 support).

[2019-02-02 22:20:20 UTC]
GNU MPFR 4.0.2 is Released

(CariBlog – MPFR – Software)

The GNU MPFR 4.0.2 library (dinde aux marrons, patch level 2) has been released. In addition to bug fixes, this version corrects the mpfr_get_str description in the manual in order to follow the historical behavior and GMP's mpf_get_str function.

[2019-01-09 17:52:18 UTC]
GNU MPFR 4.0.2 Release Candidate

(CariBlog – MPFR – Software)