English version

CariBlog – Blog sur les pages recherche de Vincent Lefèvre et l'arithmétique des ordinateurs

[XML]

[2010-09-07 13:57:16 UTC]
Patch 4 pour GNU MPFR 3.0.0

(CariBlog – MPFR – Logiciels)

Le patch 4 de GNU MPFR 3.0.0 est disponible dans la section bugs de la page de MPFR 3.0.0. Il corrige les problèmes suivants dans les macros mpfr_cmp_ui, mpfr_cmp_si, mpfr_set_ui et mpfr_set_si pour les compilateurs basés sur GCC:

  • Dans la macro mpfr_cmp_ui pour les compilateurs basés sur GCC, quand le second argument est une expression constante de value nulle, le premier argument est évalué deux fois, rendant le comportement incorrect quand l'évaluation du premier argument a des effets secondaires. La macro mpfr_cmp_si utilise mpfr_cmp_ui, et est donc affectée par ce bug. Notez que bien que mpfr_cmp_ui et mpfr_cmp_si soient décrites comme des fonctions, elles sont aussi implémentées en tant que macros dans mpfr.h (sauf en cas de bug comme ici, une implémentation par une macro ne devrait pas introduire de différence dans le comportement).

  • Un problème beaucoup moins important est que les macros mpfr_cmp_si et mpfr_set_si pour les compilateurs basés sur GCC (dans mpfr.h) peuvent produire des avertissements (warnings) quand du code utilisateur est compilé avec l'option -Wconversion.

  • Ces macros mpfr_cmp_ui, mpfr_cmp_si, mpfr_set_ui et mpfr_set_si pour les compilateurs basés sur GCC peuvent avoir un comportement incorrect si du code utilisateur avec comportement indéfini demande un comportement spécifié par une certaine extension non standard de C (comme avec l'utilisation de l'option -fwrapv de GCC) et que l'appel est fait avec un argument qui demande une conversion implicite vers unsigned long ou long.

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

(CariBlog – MPFR – Logiciels)

Le patch 3 de GNU MPFR 3.0.0 est disponible dans la section bugs de la page de MPFR 3.0.0. Il corrige la détection de l'underflow dans la fonction mpfr_gamma.

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

(CariBlog – MPFR – Logiciels)

Les patch 1 et patch 2 de GNU MPFR 3.0.0 sont disponibles dans la section bugs de la page de MPFR 3.0.0.

  • Le patch 1 corrige les cas spéciaux suivants de la fonction mpfr_out_str: La valeur entière retournée par mpfr_out_str est incorrecte sur NaN et les infinis. De plus, les erreurs de sortie ne sont pas prises en compte, et si une telle erreur se produit, la valeur retournée est incorrecte (elle aurait dû être 0).

  • Le patch 2 corrige un problème de compilation sur certains environnements comme Solaris avec le compilateur de Sun; il peut être vu avec make check, où une erreur typique est que le symbole alloca est indéfini. Ce problème a été introduit dans MPFR 3.0.0 (il n'était pas présent dans les versions précédentes).

[2010-06-11 21:52:20 UTC]
GNU MPFR 3.0.0 est sortie

(CariBlog – MPFR – Logiciels)

La bibliothèque GNU MPFR 3.0.0 (boudin aux pommes) est sortie. Les changements par rapport aux versions 2.4.*:

  • MPFR 3.0.0 est incompatible avec les versions précédentes au niveau du binaire, mais (presque) compatible au niveau de l'API. Plus précisément, les fonctions obsolètes mpfr_random et mpfr_random2 ont été retirées, la signification du type de retour de la fonction mpfr_get_f a changé, et le type de retour de la fonction mpfr_get_z est maintenant int au lieu de void. En pratique, cela ne devrait pas casser de code existant.

  • MPFR est maintenant distribuée sous la GNU Lesser General Public License version 3 ou ultérieure (LGPL v3+).

  • Les modes d'arrondi GMP_RNDx sont maintenant MPFR_RNDx (GMP_RNDx gardés pour la compatibilité).

  • Un nouveau mode d'arrondi (MPFR_RNDA) est disponible pour arrondir à l'opposé de zéro (away from zero).

  • Le type des modes d'arrondi est maintenant mpfr_rnd_t (comme dans les versions précédentes, mpfr_rnd_t et mp_rnd_t sont acceptés, mais mp_rnd_t pourrait être retiré dans le futur).

  • Le type pour la précision est maintenant mpfr_prec_t (comme dans les versions précédentes, mpfr_prec_t et mp_prec_t sont acceptés, mais mp_prec_t pourrait être retiré dans le futur) et il est maintenant signé (il était non signé dans MPFR 2.*, mais cela n'était pas documenté). En pratique, ce changement ne devrait pas affecter les codes existants qui ne supposaient rien sur le type pour la précision.

  • MPFR a maintenant son type pour l'exposant mpfr_exp_t, qui est actuellement le même que le mp_exp_t de GMP.

  • Les fonctions mpfr_random et mpfr_random2 ont été retirées.

  • mpfr_get_f et mpfr_get_z retournent maintenant une valeur ternaire.

  • mpfr_strtofr accepte maintenant les bases de 37 à 62.

  • mpfr_custom_get_mantissa a été renommée en mpfr_custom_get_significand (mpfr_custom_get_mantissa est toujours disponible via un #define).

  • Les fonctions mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj, mpfr_get_z et mpfr_get_z_2exp n'ont plus de cas avec comportement indéfini; dans ces cas, le comportement est maintenant spécifié, et en particulier, le drapeau erange est positionné.

  • Nouvelles fonctions mpfr_buildopt_tls_p et mpfr_buildopt_decimal_p donnant des informations sur les options utilisées à la compilation de MPFR.

  • Nouvelle fonction mpfr_regular_p.

  • Nouvelle fonction mpfr_set_zero.

  • Nouvelle fonction mpfr_digamma.

  • Nouvelle fonction mpfr_ai (incomplète, expérimentale).

  • Nouvelles fonctions mpfr_set_flt et mpfr_get_flt pour convertir depuis/vers le type float.

  • Nouvelle fonction mpfr_urandom.

  • Nouvelle fonction mpfr_set_z_2exp (compagnon de mpfr_get_z_2exp, renommée à partir de la fonction mpfr_get_z_exp des versions précédentes).

  • Amélioration de la vitesse pour des grands opérandes des fonctions trigonométriques (mpfr_sin, mpfr_cos, mpfr_tan, mpfr_sin_cos): gain d'un facteur environ 2,5 pour 105 chiffres, d'à peu près 5 pour 106 chiffres.

  • Amélioration de la vitesse pour des grands opérandes des fonctions trigonométriques inverses (arcsin, arccos, arctan): facteur d'environ 2 pour 103 chiffres, jusqu'à 2,7 pour 106 chiffres.

  • Quelques fichiers de documentation sont installés dans $docdir.

  • La détection d'un répertoire de compilation de GMP (plus précisément, les fichiers d'en-têtes internes de GMP) était précédemment effectuée séparément de l'utilisation de l'option de configure --with-gmp-build. Ceci n'était pas cohérent avec la documentation et avec d'autres parties du script configure. Ainsi, à partir de MPFR 3.0.0, les fichiers d'en-têtes internes de GMP sont maintenant utilisés si et seulement si l'option de configure --with-gmp-build est donnée.

  • Le script configure reconnaît certains formats long double supplémentaires (double big endian, double little endian, double-double big endian).

  • Manuel de MPFR: une section API Compatibility a été ajoutée.

  • Correction de bugs.

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

(CariBlog – MPFR – Logiciels)

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

(CariBlog)

SCAN 2010 (GAMM-IMACS International Symposium on Scientific Computing, Computer Arithmetic and Validated Numerics) se tiendra à l'ENS-Lyon du 27 au 30 septembre 2010.

Soumission de résumé jusqu'au vendredi 16 avril 2010.

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

(CariBlog)

D'après l'annexe F de la norme ISO C99 (et la norme IEEE 754-2008, mais pas encore référencée par la norme C), pow(-0.0,0.5) doit retourner +0, alors que sqrt(-0.0) doit retourner -0. La seconde forme était en fait définie par l'ancienne norme IEEE 754-1985 et en pratique, elle est implémentée en matériel (par les processeurs). En suivant une discussion dans la liste de développement de GCC, j'ai remarqué que GCC transforme pow(x,0.5) en sqrt(x) même pour la valeur -0, ce qui n'est pas correct. GCC 4.3.* et 4.4.3 (mais pas GCC 4.2.*) sont affectés par ce bug, que j'ai rapporté. Il a été corrigé quelques heures plus tard.

[2010-03-02 09:25:48 UTC]
Migration et interruption planifiée d'INRIAGforge

(CariBlog – MPFR – Logiciels)

INRIAGforge, qui héberge le dépôt Subversion de MPFR, va être mis à jour le 8 mars. À cause de cette migration, les pages web sur INRIAGforge seront indisponibles le 8 mars de 13:30 à 16:30 CET (12:30 à 15:30 UTC), et l'accès au dépôt Subversion sera indisponible de 16:30 à 17:30 CET (15:30 à 16:30 UTC).

Le site web de MPFR et la liste de diffusion ne sont pas hébergés sur INRIAGforge, et ne seront donc pas affectés.

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

(CariBlog – Informatique)

Le livre Handbook of Floating-Point Arithmetic, écrit par plusieurs membres d'Arénaire (dont moi-même), est disponible depuis quelques semaines.

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.

Une autre page sur le livre, avec des liens et errata.

[2010-01-29 00:00:01 UTC]
Arrêt planifié des serveurs mpfr.org et de la liste de diffusion de MPFR

(CariBlog – MPFR)

Nous avons reçu une annonce disant que l'ensemble des systèmes informatiques du Loria sera arrêté du vendredi 5 février à 17:00 (16:00 UTC) au dimanche 7 février à 19:00 (18:00 UTC). Le serveur web mpfr.org et la liste de diffusion de MPFR seront affectés par cet arrêt. Merci pour votre compréhension.

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

(CariBlog – MPFR – Logiciels)

Le patch 3 de MPFR 2.4.2 est disponible dans la section bugs de la page de MPFR 2.4.2. Il permet de compiler MPFR avec les fichiers internes de GMP 5 (c'est nécessaire à cause d'un changement interne à GMP), i.e. en utilisant l'option --with-gmp-build. Note: la plupart des utilisateurs n'a pas besoin de ce patch.

[2010-01-07 23:51:53 UTC]
Interruption planifiée d'InriaGforge

(CariBlog – MPFR – Logiciels)

Interruption planifiée d'InriaGforge: le 2010-01-14, de 17:00 à 19:00 heure française (16:00 à 18:00 UTC), le site InriaGforge et tous les services associés seront indisponibles pour cause d'opérations de maintenance sur les serveurs.

Le site web et la liste de diffusion de MPFR ne seront pas affectés.

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

(CariBlog – MPFR – Logiciels)

Les patch 1 et patch 2 de MPFR 2.4.2 sont disponibles dans la section bugs de la page de MPFR 2.4.2.

  • Le patch 1 corrige un bug mineur: le drapeau underflow n'est pas positionné quand la fonction mpfr_sin_cos est appelée sur le plus petit nombre strictement positif ou son opposé en arrondi vers zéro ou équivalent.

  • Le patch 2 permet de compiler MPFR sur les processeurs MIPS avec GCC 4.4 ou version ultérieure.

[2009-11-30 17:23:19 UTC]
GNU MPFR 2.4.2 est sortie

(CariBlog – MPFR – Logiciels)

La bibliothèque GNU MPFR 2.4.2 (andouillette sauce moutarde, patch level 2) est sortie. Les changements par rapport à la version 2.4.1:

  • Correctif de sécurité dans les fonctions de sortie formatée (débordement de tampon).

  • Fonctions de sortie formatée: 6 est maintenant la valeur par défaut pour un champ de précision vide avec %Rf.

  • Meilleure portabilité du script configure.

  • Détection des types intmax_t et uintmax_t.

  • Amélioration de la documentation: mpfr_get_z_exp, mpfr_strtofr, mpfr_get_str et fonctions de sortie formatée.

  • Message plus précis en cas d'échec d'assertion.

  • Mise à jour du test tcmp_ld pour tester réellement les long double.

  • Quelques fichiers de documentation sont installés dans $docdir.

  • Suppression de mpfr_init_cache (fonction non utilisée et non documentée).

  • Correction de la façon dont $CC / $CFLAGS sont obtenus grâce à gmp.h (__GMP_CC / __GMP_CFLAGS).

  • Correction de bugs.

  • Notez aussi que GCC 4.4.0 (seulement cette version obsolète) ne compile pas MPFR 2.4.2 correctement; ce problème est détecté par make check (échec de tget_z et tpow_all).

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

(CariBlog – MPFR – Logiciels)

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 – Logiciels)

[2009-09-28 12:18:28 UTC]
Annonce RAIM'09: 3es rencontres Arithmétique de l'Informatique Mathématique

(CariBlog)

Les 3es rencontres Arithmétique de l'Informatique Mathématique (RAIM'09) auront lieu à Lyon, au Laboratoire de l'Informatique du Parallélisme (ENS Lyon), du lundi 26 au mercredi 28 octobre 2009. Ces rencontres sont organisées dans le cadre du Groupe de Travail Arithmétique du GDR Informatique Mathématique, pôle Calcul Formel, Arithmétique et Géométrie.

La date limite d'inscription est fixée au lundi 12 octobre 2009.

L'inscription est sans frais, mais nécessaire à des fins d'organisation. Le formulaire est accessible sur le site web des rencontres.

Cette édition est organisée autour de cinq thèmes:

Ces rencontres comportent également deux cours d'une heure sur des domaines proches:

Le programme détaillé est disponible depuis le site web des rencontres.

[2009-09-17 22:25:30 UTC]
Arrêt planifié des serveurs mpfr.org et de la liste de diffusion de MPFR

(CariBlog – MPFR)

J'ai reçu l'annonce suivante. En résumé, l'ensemble des systèmes informatiques du Loria sera arrêté du vendredi 18 septembre à 18:00 (16:00 UTC) au samedi 19 septembre à 20:00 (18:00 UTC). Le serveur web mpfr.org et la liste de diffusion de MPFR seront affectés par cet arrêt. Merci pour votre compréhension.

[2009-06-21 00:28:51 UTC]
Serveur web de MPFR injoignable

(CariBlog – MPFR)

Pour une raison inconnue, le serveur web de MPFR (mpfr.org) est injoignable depuis l'après-midi du samedi 20 juin (au moins); d'autres serveurs hébergés au Loria sont aussi affectés. Ceci peut durer jusqu'à lundi. Désolé pour le dérangement.

[Mise à jour] C'est reparti depuis 2009-10-22 07:00 UTC. C'était dû à une coupure de courant.

[2009-06-15 17:32:37 UTC]
Articles d'Arith-19 disponibles

(CariBlog)

Quelques informations après la conférence Arith-19... Les articles peuvent être récupérés depuis la page du programme du site web d'Arith-19. La date limite pour le numéro spécial est le 2009-08-03.

[2009-03-23 22:05:16 UTC]
École d'été CNC'2 sur MPFR et MPC

(CariBlog – MPFR)

Nous (Andreas Enge, Vincent Lefèvre, Philippe Théveny et Paul Zimmermann) organisons une école d'été sur MPFR et MPC les 25 et 26 juin, après la précédente édition d'octobre 2007, qui a connu un franc succès. Cette école est destinée aux chercheurs ou ingénieurs du public ou privé qui désirent appréhender ces bibliothèques. Cette école consistera en moitié d'exposés et moitié de travaux pratiques sur machine, où les participants apprendront comment utiliser au mieux MPFR et MPC sur de petits exercices. Les participants sont aussi invités à venir avec leurs propres problèmes.

A priori l'école sera en français, cependant si des participants non francophones s'inscrivent, il est possible qu'elle soit en anglais.

[Mise à jour 2009-03-30] Il est maintenant possible de s'inscrire (date limite d'inscription le 19 juin, ou le 29 mai avec hébergement).

[2009-03-10 03:29:27 UTC]
Patches 3 et 4 pour MPFR 2.4.1

(CariBlog – MPFR – Logiciels)

Les patch 3 et patch 4 de MPFR 2.4.1 sont disponibles dans la section bugs de la page de MPFR 2.4.1.

  • Le patch 3 ajoute des casts dans les tests. Avec la plupart des implémentations C (voire toutes), les tests ne devraient pas être affectés par ces casts manquants.

  • Le patch 4 corrige le bug suivant. Un type est incorrect dans le fichier vasprintf.c. En pratique, cela peut faire planter MPFR lorsque le spécifieur M (pour les fonctions de sortie formatée) est utilisé et qu'un limb n'a pas la même taille qu'un pointeur (e.g. quand GMP a été compilé avec ABI=mode32 sur PowerPC G5).

[2009-03-05 13:12:34 UTC]
Actualités concernant MPFR

(CariBlog – MPFR – Logiciels)

[2009-02-28 01:48:53 UTC]
Patch 1 pour MPFR 2.4.1

(CariBlog – MPFR – Logiciels)

Le patch 1 de MPFR 2.4.1 est disponible dans la section bugs de la page de MPFR 2.4.1. Il corrige un bug dans les fonctions de reste (mpfr_fmod, mpfr_remainder et mpfr_remquo): ces fonctions arrondissent le résultat avant de changer son signe quand l'entrée x est négative. La conséquence est que dans les modes d'arrondi non symétriques (GMP_RNDD et GMP_RNDU), le résultat est arrondi dans la mauvaise direction.

[2009-02-26 23:40:19 UTC]
GNU MPFR 2.4.1 est sortie

(CariBlog – MPFR – Logiciels – Sécurité)

Suite à un débordement de tampon (buffer overflow) que j'ai découvert un peu par hasard lors de la relecture du source des fonctions de sortie formatée de MPFR (car je pensais avoir trouvé un bug dans mpfr_printf, alors qu'il s'agissait en fait d'un joli effet secondaire quelque part dans mon code), pouvant avoir des conséquences d'un point de vue de la sécurité, nous avons décidé de sortir immédiatement cette nouvelle version: GNU MPFR 2.4.1. Les changements par rapport à la version 2.4.0:

  • Correctif de sécurité dans mpfr_snprintf et mpfr_vsnprintf (débordement de tampon).

  • Configure: nouvelles vérifications des modificateurs de longueur hh et ll (nouveaux dans C99) car hh est absent sur alpha-OSF1-V5.

  • Diverses corrections dans le manuel de MPFR. En particulier, mpfr_inits, mpfr_inits2, mpfr_clears et MPFR_DECL_INIT sont dans l'API publique depuis MPFR 2.4.0.

[2009-02-03 11:52:05 UTC]
Arrêt des serveurs mpfr.org et liste de diffusion de MPFR

(CariBlog – MPFR)

À cause d'une coupure de courant, les serveurs hébergeant mpfr.org et la liste de diffusion de MPFR seront arrêtés à partir de 17:00 UTC aujourd'hui le 3 février jusqu'à 08:00 UTC demain le 4 février.

Notez que les serveurs InriaGforge (Subversion...) ne seront pas affectés.

[2009-01-27 02:32:43 UTC]
GNU MPFR 2.4.0 est sortie

(CariBlog – MPFR – Logiciels)

La bibliothèque GNU MPFR 2.4.0 (andouillette sauce moutarde) est sortie. Les changements par rapport aux versions 2.3.*:

  • MPFR est maintenant un paquet GNU.

  • Changements dans le comportement de mpfr_strtofr et dans sa documentation concernant des cas particuliers où le code et la documentation étaient contradictoires; ce changement est aussi présent dans MPFR 2.3.1.

  • Le comportement de mpfr_check_range a changé: si la valeur est un infini inexact, le drapeau overflow est positionné (au cas où il aurait été perdu); ce changement est aussi présent dans MPFR 2.3.2.

  • La fonction mpfr_init_gmp_rand (définie seulement lorsque MPFR est construite avec l'option de configure --with-gmp-build) n'est plus définie du tout. Cette fonction était privée et non documentée, et était utilisée seulement dans la suite de tests de MPFR. Un code utilisateur qui l'appellerait est considéré comme incorrect et peut échouer en conséquence. L'exécution de l'ancienne suite de tests sur MPFR 2.4.0 peut aussi échouer.

  • Nouvelles fonctions:

    • entre un nombre MPFR et un double: mpfr_add_d, mpfr_sub_d, mpfr_d_sub, mpfr_mul_d, mpfr_div_d, mpfr_d_div;

    • entrées/sorties formatées: mpfr_printf, mpfr_fprintf, mpfr_vprintf, mpfr_vfprintf, mpfr_sprintf, mpfr_snprintf, mpfr_vsprintf, mpfr_vsnprintf, mpfr_asprintf, mpfr_vasprintf;

    • mpfr_sinh_cosh, mpfr_li2, mpfr_modf, mpfr_fmod, mpfr_rec_sqrt.

  • Test de configuration pour le support TLS.

  • Récupération des valeurs par défaut de $CC et $CFLAGS dans le gmp.h (__GMP_CC / __GMP_CFLAGS, disponibles à partir de GMP 4.2.3).

  • Documentation du fait que mpfr_random et mpfr_random2 seront supprimées dans la prochaine version, et que la spécification de mpfr_eq pourra changer dans la prochaine version (pour compatibilité avec la couche mpf de GMP).

  • Correction de bugs.

[2009-01-21 14:34:10 UTC]
MPFR 2.4.0 Release Candidate 3

(CariBlog – MPFR – Logiciels)

The third release candidate of MPFR 2.4.0 is available. Note that if MPFR is built using GMP's build directory, the compilation of the tests will fail with an error like: error: invalid lvalue in unary `&'. This problem has been fixed in the trunk (and the release will have the fix, after some more tests).

Also, the MPFR web site will not be reachable on January 23 between 06:00 and 06:30 UTC.

[2008-12-21 16:12:59 UTC]
Mes dernières publications

(CariBlog)

[2008-12-12 17:43:11 UTC]
MPFR 2.4.0 Release Candidate

(CariBlog – MPFR – Logiciels)

[2008-12-01 23:59:28 UTC]
Migration du service InriaGforge

(CariBlog – MPFR)

Le service InriaGforge va migrer le 4 décembre. Ceci affectera le dépôt Subversion de MPFR (mais pas le site web mpfr.org, ni la liste de diffusion de MPFR, qui sont hébergés ailleurs).

[2008-10-28 17:24:05 UTC]
Les effets de la contraction d'expressions flottantes en C

(CariBlog)

J'ai ajouté un petit programme C de test de l'effet de la contraction en FMA sur mes pages d'arithmétique des ordinateurs. Il montre que sous certaines conditions, on peut avoir des expressions du style 1.1 × 1.1 - 1.1 × 1.1 dont l'évaluation ne donne pas 0, ce qui peut donner des bugs subtiles, notamment si le résultat est un nombre négatif et qu'on en prend la racine carrée...

Sur un sujet similaire (mais seulement sur des expressions constantes et sans exemple d'échec en pratique), voir le Defect Report #300.

[2008-09-13 08:20:31 UTC]
MPFR 2.3.2 est sortie

(CariBlog – MPFR – Logiciels)

La bibliothèque MPFR 2.3.2 est sortie. Les changements par rapport à la version 2.3.1:

  • Corrections de bugs; voir la page de MPFR 2.3.1.

  • Amélioration du manuel de MPFR.

  • Le comportement de mpfr_check_range a changé: si la valeur est un infini inexact, le drapeau overflow est positionné (au cas où il aurait été perdu).

  • La fonction mpfr_init_gmp_rand (définie seulement lorsque MPFR est compilée sans l'option de configure --with-gmp-build) n'est plus du tout définie. Cette fonction était privée et non documentée, et n'était utilisée que dans la suite de tests de MPFR. Du code utilisateur qui l'appellerait est considéré comme incorrect et peut échouer en conséquence. Faire tourner l'ancienne suite de tests sur MPFR 2.3.2 peut aussi échouer.

[2008-07-01 23:51:02 UTC]
Nouvelles: révision de la norme IEEE 754, CFP Arith'19

(CariBlog)
  • Le comité de révision des normes IEEE (RevCom) a approuvé P754 (révision de la norme IEEE 754) à l'unanimité, qui a ensuite été approuvée par le IEEE-SA Standards Board le 12 juin 2008.

  • Appel à communications pour Arith'19 (19th IEEE Symposium on Computer Arithmetic). Date limite: 2008-10-15. Conférence: 8-10 juin 2009, Portland, Oregon, USA.

[2008-05-11 00:55:16 UTC]
Patch 1 pour MPFR 2.3.1

(CariBlog – MPFR – Logiciels)

Le patch 1 de MPFR 2.3.1 est disponible dans la section bugs de la page de MPFR 2.3.1. Il corrige un bug dans le test de configure concernant les threads (activé lorsque l'option --enable-thread-safe est donnée): ce test échoue systématiquement quand le répertoire objet (build) est différent du répertoire source. Notez que si vous avez déjà pu compiler MPFR 2.3.1, alors vous n'avez pas besoin de ce patch.

[2008-01-29 17:55:34 UTC]
MPFR 2.3.1 est sortie

(CariBlog – MPFR – Logiciels)

La bibliothèque MPFR 2.3.1 est sortie. Les changements par rapport à la version 2.3.0:

  • Changements dans le comportement de mpfr_strtofr et dans sa documentation concernant des cas particuliers où le code et la documentation ne correspondaient pas.

  • Corrections de bugs; voir la page de MPFR 2.3.0.

  • Test de configuration pour le support TLS.

  • Amélioration du manuel de MPFR.

[2008-01-23 23:23:24 UTC]
MPFR 2.3.1 Release Candidate 2

(CariBlog – MPFR – Logiciels)

[2007-12-29 18:38:54 UTC]
MPFR 2.3.1 Release Candidate

(CariBlog – MPFR – Logiciels)

[2007-12-09 22:17:16 UTC]
Status of Floating-Point Related Bugs I Reported

(CariBlog – Logiciels – Unix/Linux)

[2007-12-03 22:44:06 UTC]
Prochains événements liés à l'arithmétique des ordinateurs

(CariBlog)

Une courte note sur les prochains événements liés à l'arithmétique des ordinateurs.

[2007-10-23 10:45:14 UTC]
Patches 1 à 4 pour MPFR 2.3.0

(CariBlog – MPFR – Logiciels)

Les patches 1 à 4 sont disponibles dans la section bugs de la page de MPFR 2.3.0.

Le premier patch est nécessaire quand le répertoire de compilation est différent du répertoire source. Le deuxième patch corrige un échec d'assertion dans mpfr_acosh sur des arguments légèrement plus grands que 1 (ce bug ne peut se produire que si la précision de la destination est strictement inférieure à la précision de l'argument d'entrée), mais je ne suis pas sûr de l'analyse d'erreur; un meilleur patch sera publié plus tard. Le troisième patch corrige un bug important dans mpfr_atan2, qui se produit lorsque le drapeau underflow est positionné avant l'appel de la fonction. Le quatrième patch corrige divers bugs dans mpfr_subnormalize.

[2007-10-01 23:16:02 UTC]
Nouveau bug dans Microsoft Excel

(CariBlog)

Un bug dans Microsoft Excel 2007 a récemment été découvert, qui a pour effet de donner 100 000 au lieu de 65 535 et 100 001 au lieu de 65 536 après certains calculs. Il s'agit en fait uniquement d'un bug d'affichage, dû à une conversion incorrecte de la base 2 vers la base 10 (la valeur stockée en interne est correcte). Détails au sujet de ce bug sur le blog consacré à Microsoft Excel.

Rappelons que Microsoft Excel avait déjà eu dans le passé un bug similaire, mais lors de l'entrée d'un nombre (conversion incorrecte de la base 10 vers la base 2) au lieu de l'affichage: taper 1,40737488355328 dans Excel 3.0 à 7.0 donnait 0,64 (cf aussi support de Microsoft et via Google).

Des puissances de deux interviennent dans les deux cas: 65536 = 216 et 1,40737488355328 = 247 / 1014.

Après la découverte de ce nouveau bug, certains se sont empressés de dire qu'il faut passer à OpenOffice. Mais OpenOffice a lui aussi ses problèmes, comme le fait d'essayer de corriger les erreurs d'arrondi, qui peut donner des résultats surprenants et cacher des bugs côté utilisateur (cf discussion sur la liste users-fr). Ceci dit, je ne sais pas si Excel fait le même genre de choses. Il y a des raisons de passer à OpenOffice, mais elles sont tout autres.

[2007-08-29 17:20:54 UTC]
MPFR 2.3.0 est sortie

(CariBlog – MPFR – Logiciels)

La bibliothèque MPFR 2.3.0 est sortie. Les principaux changements par rapport aux versions 2.2.*:

  • Le fichier mpfr.info est maintenant installé dans le sous-répertoire share (comme requis par le Filesystem Hierarchy Standard); voir la sortie de ./configure --help.

  • La bibliothèque partagée est maintenant activée par défaut. Si la construction de MPFR échoue sur votre plateforme, essayez l'option --disable-shared de configure pour désactiver la bibliothèque partagée.

  • Support thread-safe pour le compilateur Visual de Microsoft.

  • Nouvelles fonctions mpfr_j0, mpfr_j1, mpfr_jn, mpfr_y0, mpfr_y1, mpfr_yn, mpfr_lgamma, mpfr_remainder, mpfr_remquo, mpfr_fms, mpfr_signbit, mpfr_setsign, mpfr_copysign, mpfr_get_patches.

  • Amélioration des fonctions mpfr_sin, mpfr_cos et mpfr_sin_cos (réduction d'argument).

  • Manuel de MPFR plus détaillé.

  • Amélioration des tests (make check).

  • Correction de bugs.

[2007-08-13 18:04:30 UTC]
MPFR 2.3.0 Release Candidate 2

(CariBlog – MPFR – Logiciels)

[2007-07-11 09:09:33 UTC]
École CEA-EDF-INRIA Calcul numérique certifié

(CariBlog – MPFR)

Une école CEA-EDF-INRIA sur le thème du calcul numérique certifié aura lieu au Loria (Nancy) les 25 et 26 octobre 2007.

Le but de cette école est de sensibiliser aux problèmes posés par les calculs numériques via l'utilisation d'arithmétique flottante (erreur d'arrondi, précision limitée, débordement de capacité, etc.) et de proposer quelques outils innovants sur ce thème, avec en particulier une formation à la bibliothèque MPFR de calcul flottant en précision arbitraire.

Public visé: ingénieurs ou chercheurs, du domaine public ou privé. Attention! Le nombre de participants est limité.

[2007-05-30 23:27:17 UTC]
Publications récentes

(CariBlog)

Mes papiers les plus récents:

  • Worst cases of a periodic function for large arguments, écrit avec Guillaume Hanrot, Damien Stehlé et Paul Zimmermann. À paraître dans les actes d'Arith-18 en juin 2007.

    Résumé: Cet article étudie le problème de trouver les cas difficiles de l'arrondi d'une fonction périodique sur de grands opérandes flottants. Plus précisément, on s'intéresse à des opérandes de taille telle que l'approximation polynomiale locale n'a plus d'intérêt. Il s'agit d'un des derniers obstacles à l'objectif de garantir le calcul efficace de fonctions transcendantes avec arrondi correct, sur l'ensemble du domaine couvert par la norme IEEE-754. Nous présentons le premier algorithme non naïf pour ce problème, de complexité heuristique O(20.676 p) pour une précision de p bits. Nous montrons l'efficacité de l'algorithme sur la plus grande binade en double précision IEEE-754 pour la fonction sinus, et donnons certains mauvais cas correspondants. Nous espérons que la totalité des pires cas des fonctions trigonométriques sur l'ensemble de leur domaine pourront être trouvés dans les prochaines années, tâche qui semblait hors de portée jusqu'à présent.

    Lien sur HAL/CCSD.

  • Some notes on the possible under/overflow of the most common elementary functions, écrit avec Jean-Michel Muller. Mai 2007.

    Résumé: The purpose of this short note is not to describe when underflow or overflow must be signalled (it is quite clear that the rules are the same as for the basic arithmetic operations). We just want to show that for some of the most common functions and floating-point formats, in many cases, we can know in advance that the results will always lie in the range of the numbers that are representable by normal floating-point numbers, so that in these cases there is no need to worry about underflow or overflow. Note that when it is not the case, an implementation is still possible using a run-time test.

    Lien sur HAL/CCSD.

  • Computing integer powers in floating-point arithmetic, écrit avec Peter Kornerup et Jean-Michel Muller. Mai 2007.

    Résumé: We introduce two algorithms for accurately evaluating powers to a positive integer in floating-point arithmetic, assuming a fused multiply-add (fma) instruction is available. We show that our log-time algorithm always produce faithfully-rounded results, discuss the possibility of getting correctly rounded results, and show that results correctly rounded in double precision can be obtained if extended-precision is available with the possibility to round into double precision (with a single rounding).

    Lien sur HAL/CCSD.

[2007-05-16 21:02:37 UTC]
Conférence ARITH18 (25-27 juin 2007) à Montpellier, France

(CariBlog)

ARITH18 - 18e conférence IEEE sur l'arithmétique des ordinateurs, 25-27 juin 2007, Montpellier, France. Date limite d'inscription à prix réduit: 25 mai 2007.

Bien sûr, j'y serai!

[2007-04-17 11:38:34 UTC]
Nouvelle catégorie: Lyon

(Blog – Lyon)

J'ai ajouté une nouvelle catégorie: Lyon, au sujet de la ville de Lyon (événements...). Quatre anciens billets ont été classés dans cette catégorie.

Note: il n'est pas encore possible d'effectuer du filtrage par catégorie au niveau du serveur, mais ça viendra peut-être un jour...

[2007-02-17 12:08:37 UTC]
Patches 2 à 5 pour MPFR 2.2.1

(CariBlog – MPFR – Logiciels)

Les patches 2 à 5 sont disponibles dans la section bugs de la page de MPFR 2.2.1. Les trois premiers corrigent divers problèmes liés aux exceptions, et le patch 5 met à jour le manuel de MPFR: le répertoire d'installation par défaut du fichier info a changé et ce patch le met à jour dans le manuel, et il ajoute une nouvelle section Exceptions et la description manquante de la fonction mpfr_dim (qui a été ajoutée dans MPFR 2.0.1).

[2007-02-12 12:54:20 UTC]
Changement oublié dans MPFR 2.2.1

(CariBlog – MPFR – Logiciels)

Les changements de MPFR 2.2.0 à 2.2.1 ne mentionnaient pas le changement suivant:

Le fichier mpfr.info est maintenant installé dans le sous-répertoire share (comme requis par le Filesystem Hierarchy Standard); voir la sortie de ./configure --help.

J'ai mis à jour la page web de MPFR, les fichiers NEWS et corrigé les fichiers mpfr.texi (à la fois dans le tronc et dans la branche 2.2). Les utilisateurs devraient s'assurer que leur variable d'environnement INFOPATH a une valeur correcte, e.g. /usr/local/share/info:/usr/local/info (dans cet ordre, au cas où de vieux fichiers resteraient dans /usr/local/info).

C'était un changement dans autoconf 2.59c (plus d'information dans le fichier NEWS d'autoconf).

[2007-02-03 23:43:30 UTC]
Identification des patches pour MPFR 2.2.1

(CariBlog – MPFR – Logiciels)

Comme cela a été demandé, les patches fournis pour MPFR modifient maintenant la chaîne de version en y ajoutant un suffixe (-p1, -p2, et ainsi de suite), de manière à ce qu'on puisse savoir quels patches ont été appliqués. Pour des raisons pratiques, tous les fichiers où la version apparaît ne sont pas patchés, mais la chaîne de version mise à jour est disponible avec la macro MPFR_VERSION_STRING (fichier d'en-tête mpfr.h) et la fonction mpfr_get_version (bibliothèque).

[2007-02-03 12:54:56 UTC]
Patch 1 pour MPFR 2.2.1

(CariBlog – MPFR – Logiciels)

Le patch 1 est disponible dans la section bugs de la page de MPFR 2.2.1. Il ajoute la macro mpfr_init_set_ld, qui est documentée dans le manuel de MPFR.

[2007-01-31 11:41:35 UTC]
École Jeunes Chercheurs Informatique Mathématique

(CariBlog)

L'École Jeunes Chercheurs Informatique Mathématique (ex École Jeunes Chercheurs en Algorithmique et Calcul Formel) se tiendra cette année à Nancy, au LORIA, du 19 au 23 mars 2007. Date limite d'inscription et de soumission d'un exposé: 2 mars 2007.

[2007-01-31 11:34:56 UTC]
Présentations des Rencontres Arithmétique de l'Informatique Mathématique

(CariBlog)

Les présentations des Rencontres Arithmétique de l'Informatique Mathématique (qui ont eu lieu à Montpellier les 22-25 janvier) sont maintenant disponibles.

[2007-01-17 05:47:17 UTC]
Comportement de INT_MIN % -1

(CariBlog)

C'est un bug de GCC apparemment connu depuis longtemps, mais il vient seulement d'être rapporté sur le BTS de GCC (bug 30484), suite à une discussion sur ce sujet dans la liste de diffusion de développement de GCC. Selon la norme C ISO, INT_MIN % -1 a la valeur 0, mais j'obtiens les résultats suivants sur mes diverses machines:

  • Exception virgule flottante sous Linux/x86, avec gcc 4.1.2 (prerelease).

  • 2147483647 sous Linux/PowerPC (G4), avec gcc 4.1.2 (prerelease).

  • -2147483648 sous Mac OS X PowerPC G5, avec gcc 4.0.1 d'Apple (Xcode 2.4.1).

Mais sur mon Zaurus (Linux/ARM), j'obtiens la valeur correcte 0. J'ai utilisé le programme suivant:

#include <limits.h>
#include <stdio.h>

int main (void)
{
  volatile int i = INT_MIN, j = -1;
  printf ("%d\n", i % j);
  return 0;
}

Quand on obtient un comportement incorrect en C, c'est pareil avec Perl, en utilisant le script suivant:

#!/usr/bin/env perl

use integer;

$x = -2147483648;
$y = -1;
print "$x % $y = ", $x % $y, "\n";

Si quelqu'un a un véritable code qui peut échouer à cause de ce bug, qu'il le signale! Pour MPFR, on avait été confronté à des bugs sur d'autres cas particuliers (e.g. sur 0 + LONG_MIN, LONG_MIN / 1 et LONG_MIN / (-2)).

[2006-12-04 22:08:48 UTC]
Analyse du bug Debian 153548 dans la glibc

(CariBlog)

Nouvelle page: mon analyse du bug Debian 153548 dans la glibc. J'y explique pourquoi seules quelques valeurs sont (complètement) fausses.

[2006-11-29 12:27:53 UTC]
MPFR 2.2.1 est sortie

(CariBlog – MPFR – Logiciels)

La bibliothèque MPFR 2.2.1 est sortie. Les principaux changements par rapport à la version 2.2.0:

  • Nombreuses corrections de bugs (voir la page de MPFR 2.2.0 pour la liste).

  • Mise à jour du mpfr-longlong.h à partir du fichier longlong.h de GMP 4.2.

  • Déplacement de certaines déclarations internes de mpfr.h à mpfr-impl.h.

  • Utilisation de -search_paths_first sur Darwin (Mac OS X) pour corriger le comportement à l'édition de liens.

  • Amélioration du make check: tests génériques beaucoup plus complets.

  • Amélioration du fichier INSTALL et du manuel de MPFR.

[2006-09-13 21:27:57 UTC]
Livre Arithmétique des ordinateurs (1989) de Jean-Michel Muller en libre accès

(CariBlog)

Après 17 ans, le livre Arithmétique des ordinateurs de Jean-Michel Muller est maintenant en libre accès, sous forme de pages scannées (Jean-Michel ayant utilisé à l'époque un logiciel de traitement de texte propriétaire au lieu de TeX).

[2006-08-28 21:29:06 UTC]
Patch 16 pour MPFR 2.2.0

(CariBlog – MPFR – Logiciels)

Le patch 16 est disponible sur la page de MPFR 2.2.0. Il corrige l'échec du test texp2.

[2006-08-23 22:52:21 UTC]
Patch 15 pour MPFR 2.2.0

(CariBlog – MPFR – Logiciels)

Le patch 15 est disponible sur la page de MPFR 2.2.0. Il corrige plusieurs bugs, principalement liés à des cas particuliers, exceptions et flags globaux.

[2006-07-25 23:57:45 UTC]
Patches 13 et 14 pour MPFR 2.2.0

(CariBlog – MPFR – Logiciels)

Les patches 13 et 14 sont disponibles sur la page de MPFR 2.2.0. Ils corrigent des problèmes concernant les chemins vers les fichiers d'en-têtes et de bibliothèques (include paths / library paths).

[2006-05-26 23:28:26 UTC]
Patches 11 et 12 pour MPFR 2.2.0

(CariBlog – MPFR – Logiciels)

Les patches 11 et 12 sont disponibles sur la page de MPFR 2.2.0. Ils corrigent divers problèmes avec la division et avec la fonction mpfr_get_f.

De plus, des répertoires peuvent être ajoutés dans un ordre incohérent à CPPFLAGS et LDFLAGS, ce qui peut produire une bibliothèque incorrecte dans certains cas. Ce problème est corrigé dans le dépôt Subversion. Mais vous pouvez toujours obtenir un avertissement (warning) disant que gmp.h et libgmp semblent avoir des versions différentes ou que vous ne pouvez pas exécuter un programme lié avec GMP. Le test n'est pas assez fiable en pratique et l'avertissement peut être confus; par conséquent, the code lié à ce test doit être changé ou retiré. Cependant la bibliothèque MPFR devrait toujours être construite correctement.

[2006-05-12 17:54:45 UTC]
Interface Perl à Maple

(CariBlog – Informatique – Logiciels – Unix/Linux)

J'ai écrit un petit module Perl qui fournit une interface Perl à Maple et masque la plupart des problèmes avec Maple que j'ai pu rencontrer. Il est disponible depuis ma page Maple, qui donne quelques explications.

[2006-05-02 19:09:26 UTC]
Annonce: compétition amicale More Digits

(CariBlog)

Une compétition amicale de logiciels à arithmétique réelle exacte aura lieu à Nancy pendant la conférence RNC7. Le but est de mesurer les performances de divers paquets de calcul numérique sur un ensemble de défis, avec l'accent mis surtout sur la précision des résultats. Tous les paquets capables de faire de la précision arbitraire sont les bienvenus pour la compétition...

[2006-04-20 10:04:34 UTC]
Site web de MPFR indisponible pendant quelques heures

(CariBlog – MPFR)

Le site web de MPFR sera indisponible à partir de 2006-04-20 16:00 UTC pendant quelques heures, à cause d'une mise à jour du réseau où le site web est hébergé (Loria). Le site web du projet sur InriaGforge et le dépôt Subversion ne sont pas concernés par cette coupure réseau.

[2006-04-17 22:51:02 UTC]
Nouvelle page sur Maple (et utilisation avec Perl)

(CariBlog – Informatique – Logiciels – Unix/Linux)

J'ai ajouté une nouvelle page sur Maple. Pour le moment, elle ne contient qu'une section sur comment utiliser Maple avec le langage Perl sous Unix (Linux ou Solaris), en utilisant soit des pipes, soit un pseudo-terminal (pty).

[2006-03-01 12:22:38 UTC]
Patch 9 pour MPFR 2.2.0

(CariBlog – MPFR – Logiciels)

Cela date d'une semaine, mais j'ai oublié de l'annoncer ici... Le patch 9 est disponible sur la page de MPFR 2.2.0. Il corrige un petit bug dans la fonction mpfr_random2. En pratique, ce bug n'a probablement aucun effet.

[2006-01-16 00:28:34 UTC]
Patch 8 pour MPFR 2.2.0

(CariBlog – MPFR – Logiciels)

Le patch 8 est disponible sur la page de MPFR 2.2.0. Il corrige des bugs dans les fonctions mpfr_get_f et mpfr_set_f de conversion avec la couche mpf de GMP: mpfr_get_f donne une mauvaise valeur quand le résultat a un exposant négatif et mpfr_set_f ne supporte pas les overflows. Si vous n'utilisez pas mpf, ce patch vous sera probablement inutile.

[2006-01-12 17:40:00 UTC]
Recrutements sur des postes scientifiques au Loria

(CariBlog)

[2005-12-24 16:35:19 UTC]
Patch 7 pour MPFR 2.2.0

(CariBlog – MPFR – Logiciels)

Le patch 7 est disponible sur la page de MPFR 2.2.0. Il corrige un bug d'arrondi dans la fonction mpfr_sin pour certains pires cas (comme ceux utilisés pour tester la bibliothèque standard C).

[2005-11-26 17:25:43 UTC]
Conférences RNC7 et Arith'18

(CariBlog)

Deux annonces de conférences:

  • 10–12 juillet 2006: RNC7 au Loria, Nancy, France.

  • 25–27 juin 2007: Arith'18 (18th IEEE Symposium on Computer Arithmetic) à Montpellier, France.

[2005-11-25 01:57:45 UTC]
Patch 6 pour MPFR 2.2.0

(CariBlog – MPFR – Logiciels)

Le patch 6 est disponible sur la page de MPFR 2.2.0. Il corrige un important problème d'efficacité dans mpfr_div lorsque le diviseur a une précision bien plus petite que celle du dividende; ce problème a été introduit lors de la réécriture du code de la division pour MPFR 2.2.0, si bien que les versions précédentes de MPFR ne sont pas affectées.

[2005-11-24 01:15:09 UTC]
Nouvelles liées à MPFR

(CariBlog – MPFR – Logiciels)
  • J'ai reçu la médaille du Loria, avec les autres membres de l'équipe MPFR, pour avoir gagné la compétition amicale Many Digits.

  • Nous venons de publier un rapport de recherche sur MPFR (lien sur HAL).

  • Le patch 5 pour MPFR 2.2.0 est disponible. Ce patch corrige divers problèmes (voir la page web pour les détails).

  • Une nouvelle version de MPFI (1.3.4-RC1) est disponible. C'est la première version à supporter MPFR 2.2.0. Merci Fabrice pour cette mise à jour!

[2005-10-26 00:04:01 UTC]
Bibliothèque MPFR déplacée sur InriaGforge

(CariBlog – MPFR – Logiciels)

L'ancien dépôt CVS de MPFR est fermé. La bibliothèque MPFR est maintenant hébergée sur InriaGforge. Dans le même temps, le dépôt a été converti à Subversion.

Voir les informations concernant InriaGforge, MPFR et Subversion sur le site web de MPFR.

[2005-10-11 16:40:50 UTC]
Bibliothèque DPE disponible sur InriaGforge

(CariBlog)

Page du projet DPE.

La bibliothèque DPE fournit des nombres à virgule flottante avec de grands exposants. Un nombre DPE est représenté par une paire (d, e), où d est un flottant dans [1/2, 1[, et e est l'exposant correspondant (type int), représentant d × 2e.

DPE est développée par Patrick Pélissier et Paul Zimmermann dans le projet SPACES (Loria / INRIA Lorraine).

[2005-10-05 23:11:53 UTC]
L'équipe MPFR a gagné la compétition amicale Many Digits

(CariBlog – MPFR – Logiciels)

L'équipe MPFR, dont je fais partie, a gagné la compétition amicale Many Digits, qui s'est déroulée les 3 et 4 octobre 2005 à l'Université Radboud de Nimègue (Pays-Bas).

Pour le problème 20, la formule donnant cos(π/17), que je connaissais car étant dans ma liste de 17, a été très utile. J'étais aussi intéressé par le problème 17, pour lequel j'ai pu passer de N = 4 à N = 5 en hackant la fonction zeta_ui écrite par Paul, pour calculer ζ(3) et ζ(5) en même temps et éviter ainsi de faire certains calculs identiques en double.

[2005-10-05 22:36:02 UTC]
Patch 3 pour MPFR 2.2.0

(CariBlog – MPFR – Logiciels)

Pour les utilisateurs de Darwin (Mac OS X) souhaitant construire une bibliothèque dynamique, un nouveau patch est disponible sur la page de MPFR 2.2.0. Au moment de la sortie de MPFR 2.2.0, il y avait un bug dans la libtool utilisée pour générer le script configure de MPFR, empêchant la création de bibliothèques partagées sur Darwin. Ce script peut être corrigé par ce patch (merci à Dave Morrison); alternativement, les utilisateurs peuvent exécuter autoreconf s'ils ont les outils nécessaires.

Les utilisateurs de l'arbre CVS ne sont pas affectés par ce problème puisqu'ils doivent exécuter ces outils sur leur propre machine.

[2005-09-29 17:49:16 UTC]
Patches 1 et 2 pour MPFR 2.2.0

(CariBlog – MPFR – Logiciels)

Deux patches sont disponibles sur la page de MPFR 2.2.0.

Le paquet Debian libmpfr-dev 2.2.0.dfsg.1-1 a été téléchargé; il contient ces deux patches, mais ne contient plus la documentation à cause de la politique de Debian concernant la licence de la documentation.

[2005-09-28 22:51:48 UTC]
La double précision de Kaffe sous Linux/x86 corrigée

(CariBlog – Java – Logiciels)

Sous Linux/x86, comme d'autres JVM, la Kaffe Virtual Machine calculait de manière interne en précision étendue, alors que ce n'est pas admis par les spécifications de Java. Ce problème a été corrigé dans le paquet Debian 1.1.6-2 (je ne sais rien concernant les autres distributions Linux).

Pour plus d'information sur ce bug et les problèmes liés à la précision étendue sous Linux/x86, veuillez voir ma page Linux et la précision étendue sur les processeurs x86. Je viens aussi d'y ajouter une référence sur mon papier The Euclidean division implemented with a floating-point division and a floor, qui donne un exemple particulièrement utile pour des programmes écrits en ECMAScript (souvent mentionné en tant que Javascript) ou utilisant XPath.

[2005-09-20 19:51:35 UTC]
MPFR 2.2.0 est sortie

(CariBlog – MPFR – Logiciels)

La bibliothèque MPFR 2.2.0 est sortie. Les principaux changements par rapport aux versions 2.1.*:

  • Correction de bugs.

  • Nouvelles fonctions: mpfr_set_overflow, mpfr_set_underflow, mpfr_set_inexflag, mpfr_set_erangeflag, mpfr_set_nanflag, mpfr_erfc, mpfr_atan2, mpfr_pow_z, mpfr_subnormalize, mpfr_const_catalan, mpfr_sec, mpfr_csc, mpfr_cot, mpfr_root, mpfr_eint, mpfr_get_f, mpfr_sech, mpfr_csch, mpfr_coth, mpfr_lngamma.

  • Nouvelle macro: MPFR_VERSION_STRING.

  • Les variables exportées de MPFR ont été retirées de mpfr.h (elles n'étaient pas documentées, donc les programmes respectant l'API fonctionnent toujours).

  • Les fonctions mathématiques sont plus rapides (en moyenne et au pire).

  • Meilleur support pour le type long double.

  • Support bibliothèque partagée.

  • Fonctionne avec les threads (si la bibliothèque a été construite avec l'option --enable-thread-safe de configure).

  • Possibilité de tracer MPFR (journaux).

  • Changement de la sémantique de mpfr_out_str et mpfr_get_str quand le paramètre indiquant le nombre de chiffres vaut 0.

  • Meilleur support des locales.

La compatibilité binaire avec les versions précédentes est préservée si vous n'utilisez pas de fonctionnalités non documentées.

[2005-09-11 12:50:45 UTC]
Présentations à Arith'17 disponibles

(CariBlog)

Les présentations à Arith'17 sont disponibles sur le site web de la conférence et sur ce miroir.

[2005-08-03 17:55:10 UTC]
MPFR 2.1.2 est sortie

(CariBlog – MPFR – Logiciels)

La bibliothèque MPFR 2.1.2 est sortie. Il s'agit d'une version de corrections de bugs, incluant les 12 patches de la version 2.1.1.

Vous pouvez la télécharger dans l'un des trois formats d'archive suivants:

Cette nouvelle version apparaîtra bientôt comme paquet Debian.

[2005-08-03 17:50:03 UTC]
Compétition amicale Many Digits

(CariBlog)

Une compétition amicale/session de benchmark pour examiner l'état de l'art dans les diverses implémentations d'arithmétique réelle exacte se tiendra à l'Université de Radboud, Nijmegen, Pays-Bas, le 4 octobre 2005.

Tous les logiciels interactifs capables de manipuler les fonctions élémentaires en précision arbitraire sont invités à participer. De plus, toutes les bibliothèques de calcul en précision arbitraire dans n'importe quel langage de programmation sont les bienvenus pourvu que le participant écrive un programme/interface approprié.

Une participation à distance est possible. Voir l'appel à participation (date limite d'enregistrement: 26 août).

[2005-07-17 23:53:32 UTC]
Pages d'index du blog réduites

(Blog)

Les pages d'index du blog sont maintenant réduites à 15 billets. L'ensemble des billets est maintenant disponible sur une nouvelle page. De nouvelles améliorations viendront plus tard...

[2005-07-11 22:07:51 UTC]
Patch 11 pour MPFR 2.1.1

(CariBlog – MPFR – Logiciels)

Un nouveau patch est disponible sur la page de MPFR 2.1.1. Il corrige un bug pouvant se produire avec certaines locales, e.g. avec la locale turque tr_TR.ISO8859-9, où les caractères ASCII I et i ne correspondent pas (la version minuscule de I est le i sans point).

J'ai découvert ce bug après avoir lu un fichier de développement de Mutt, où des problèmes similaires peuvent se produire si les développeurs ne font pas attention. Comme souvent, en faisant les tests, j'ai découvert un autre bug, dans zsh.

[2005-07-07 13:52:57 UTC]
Patches 8 à 10 pour MPFR 2.1.1

(CariBlog – MPFR – Logiciels)

Trois nouveaux patches (depuis le 2005-05-12) sont disponibles sur la page de MPFR 2.1.1.

[2005-07-07 07:56:03 UTC]
Nouveau sur mes pages web sur l'arithmétique des ordinateurs

(CariBlog)

Depuis ces derniers mois:

[2005-06-03 17:51:55 UTC]
Annonces diverses

(CariBlog)

Annonces diverses que j'ai reçues dans ma boîte-aux-lettres...

[2005-05-27 07:49:12 UTC]
Algorithme SLZ — résultats (pires cas pour 2x en précision étendue)

(CariBlog – Tests exhaustifs des fonctions élémentaires)

J'ai écrit une page sur les résultats de la recherche de pires cas (pour le dilemme du fabricant de tables) de la fonction 2x en précision étendue x86 (64 bits de mantisse), entre 1/2 et 1.

[2005-05-05 21:28:20 UTC]
Patch 7 pour MPFR 2.1.1

(CariBlog – MPFR – Logiciels)

Un nouveau patch est disponible sur la page de MPFR 2.1.1. Il corrige un bug dans la fonction mpfr_div_ui.

[2005-04-22 15:15:17 UTC]
Patches 3 à 6 pour MPFR 2.1.1

(CariBlog – MPFR – Logiciels)

Quatre nouveaux patches (depuis le 2005-03-09) sont disponibles sur la page de MPFR 2.1.1.

[2005-04-15 17:17:39 UTC]
Site web de MPFR indisponible pendant 4–5 jours

(CariBlog – MPFR – Logiciels)

À cause d'une coupure de courant au niveau du Loria, le site web de MPFR est indisponible jusqu'au 20 avril, à environ 07:30 UTC (09:30 heure française). Les courriers électroniques à destination du Loria ne seront pas perdus ni rejetés, mais ne pourront pas être lus avant la remise en route des serveurs.

[2005-03-17 15:45:22 UTC]
La division euclidienne implémentée avec une division flottante et une partie entière

(CariBlog)

Les transparents de ma présentation aux journées Arinews des 7-8 mars 2005 sont disponibles sur ma page recherche.

Un rapport de recherche donnant plus de détails est en cours d'écriture. Le résumé:

Nous étudions des conditions sous lesquelles la division euclidienne peut être implémentée à l'aide d'une division flottante suivie d'une fonction floor. Nous montrons qu'avec des hypothèses raisonnables, le mode d'arrondi vers le bas peut toujours être utilisé, et que le mode d'arrondi au plus près peut être utilisé dans la plupart des cas usuels. Ces résultats peuvent être utiles pour n'importe quel langage, mais surtout pour les langages, comme ECMAScript, qui n'ont pas de division entière et qui arrondissent toujours au plus près.

[2005-03-09 17:32:44 UTC]
Patches 1 et 2 pour MPFR 2.1.1

(CariBlog – MPFR – Logiciels)

Deux patches sont disponibles sur la page de MPFR 2.1.1. Ils ont été appliqués dans le paquet Debian libmpfr-dev 2.1.1-2.

[2005-03-03 14:28:39 UTC]
La double précision de JamVM sous Linux/x86 corrigée

(CariBlog – Java – Logiciels)

Sous Linux/x86, comme d'autres JVM, JamVM calculait de manière interne en précision étendue, alors que ce n'est pas admis par les spécifications de Java. Je viens d'apprendre que ce problème a été corrigé dans la version 1.2.1 (2004-12-02). À ma connaissance, il s'agit de la deuxième JVM libre à être corrigée et à calculer maintenant correctement.

Pour plus d'information sur ce bug et les problèmes liés à la précision étendue sous Linux/x86, veuillez voir ma page Linux et la précision étendue sur les processeurs x86.

[2005-02-23 17:01:47 UTC]
MPFR 2.1.1 est sortie

(CariBlog – MPFR – Logiciels)

La bibliothèque MPFR 2.1.1 est sortie. Il s'agit d'une version de corrections de bugs, incluant les 17 patches de la version 2.1.0.

Vous pouvez la télécharger dans l'un des trois formats d'archive suivants:

Cette nouvelle version apparaîtra bientôt comme paquet Debian.

[2005-02-21 17:56:27 UTC]
Patch 17 pour MPFR 2.1.0

(CariBlog – MPFR – Logiciels)

J'ai trouvé un nouveau bug dans MPFR 2.1.0: la fonction mpfr_ui_sub appliquée à l'entier 0 et au nombre flottant +0 donne +0 au lieu de −0; ce bug a été introduit dans MPFR 2.1.0, il n'est donc pas présent dans les versions précécentes. Le patch est disponible sur la page de MPFR 2.1.0.

[2005-02-17 18:08:09 UTC]
Patches 14 à 16 pour MPFR 2.1.0

(CariBlog – MPFR – Logiciels)

Trois nouveaux patches sont disponibles sur la page de MPFR 2.1.0.

[2005-02-07 17:50:55 UTC]
Annonces diverses

(CariBlog)

Annonces diverses que j'ai reçues dans ma boîte-aux-lettres...

[2005-02-02 17:49:24 UTC]
Patch 13 pour MPFR 2.1.0

(CariBlog – MPFR – Logiciels)

Un 13e patch est disponible sur la page de MPFR 2.1.0.

J'ai détecté le bug grâce aux pires cas de la fonction sinus en double précision, dont certains faisaient échouer le nouveau code se trouvant sur le tronc CVS (future version 2.2.0).

[2005-02-02 00:24:00 UTC]
Patches pour MPFR 2.1.0

(CariBlog – MPFR – Logiciels)

12 patches sont disponibles sur la page de MPFR 2.1.0.

[2005-02-01 23:47:05 UTC]
Test de fonctions mathématiques de la bibliothèque standard C

(CariBlog – vinc17)

Plusieurs plateformes ajoutées sur la page des tests de fonctions mathématiques de la bibliothèque standard C. J'ai aussi ajouté les temps de test pour chaque plateforme (sauf quelques anciennes, qui ne sont plus disponibles).

Je me suis aperçu que l'option -ffloat-store était nécessaire pour gcc 3.4 sous Linux/x86. En effet, les résultats de certaines fonctions de la bibliothèque mathématique sont et restent en précision étendue après affectation. Ce n'est pas conforme à la norme ISO/IEC 9899:1999 (langage C); il s'agit d'un bug de gcc (toutes versions). Cette option est maintenant systématiquement utilisée avec gcc.

[2005-01-15 12:01:54 UTC]
Formats de fichiers de mes publications et transparents

(CariBlog – vinc17)

J'ai ajouté une nouvelle page sur les formats des versions électroniques de mes publications et transparents. Elle parle de négociation de contenu par HTTP et de problèmes avec le visualiseur postscript/PDF gv, en particulier.

[2005-01-06 23:11:35 UTC]
Le bug de rint dans la glibc sur PowerPC corrigé

(CariBlog)

Le bug 602 de la glibc powerpc rint() function is buggy in the rounding toward -inf and +inf modes (fonction rint() sur PowerPC buggée dans les modes d'arrondi vers -inf et +inf) vient d'être complètement corrigé dans le CVS. Merci!

[2004-12-13 09:02:54 UTC]
Programmes de test de l'arithmétique flottante

(CariBlog – vinc17)

Ajout de la page Programmes de test de l'arithmétique flottante. J'ai aussi mis à jour tst-ieee754.c car le test des affectations en précision étendue ne montrait plus de bug dans gcc 3.4, probablement à cause d'une nouvelle optimisation liée aux fonctions statiques; le test a été amélioré et le bug est toujours là dans gcc.

[2004-12-05 12:45:33 UTC]
Test de fonctions mathématiques de la bibliothèque standard C

(CariBlog – vinc17)

Page des tests de fonctions mathématiques de la bibliothèque standard C: j'ai ajouté la machine dixsept.loria.fr (Pentium 4 modèle 3, i.e. Prescott), qui donne les mêmes résultats que les autres processeurs Pentium 4, comme attendu.

[2004-11-06 03:29:33 UTC]
MPFR 2.1.0 est sortie

(CariBlog – MPFR – Logiciels)

La bibliothèque MPFR 2.1.0 est sortie.

Téléchargez-la (MD5: 9174f5e0cd43f2253b5779743368c8f2). MPFR 2.1.0 est aussi disponible en paquet Debian officiel (distribution unstable seulement).

[2004-10-17 21:41:15 UTC]
Test de fonctions mathématiques de la bibliothèque standard C

(CariBlog – vinc17)

J'ai ajouté les résultats de 5 machines supplémentaires à testdrive.hp.com sur la page des tests de fonctions mathématiques de la bibliothèque standard C:

  • spe191 (PA-RISC 8800 sous HP-UX).

  • spe145 (Alpha EV56 sous OSF1 4.0).

  • spe206 (Alpha EV67 sous OSF1 5.1).

  • spe176 (Intel Itanium 2 sous HP-UX).

  • spe189 (AMD Opteron 248 sous GNU/Linux). D'après les résultats, cette machine utilise les fonctions mathématiques (en partie avec arrondi exact) de la bibliothèque glibc.

[2004-09-17 17:36:33 UTC]
Ouverture de mon blog!

(Blog)

Voici mon nouveau blog général. Il n'y a pas de sujet particulier, mais pour ceux qui ne sont intéressés que par certains sujets, j'ajouterai des mécanismes de filtrages côté serveur suivant certaines catégories. Vous pouvez déjà faire du filtrage côté client (à l'aide de votre lecteur de flux RSS, ou à l'aide des CSS pour la version web, par exemple).

Mon blog déjà existant sur l'arithmétique des ordinateurs et mes pages recherche est intégré à ce blog général, mais les anciennes URL restent valides et constituent actuellement le seul filtrage au niveau serveur.

Certaines entrées ne seront qu'en français et se retrouveront donc non traduites dans la version anglaise de mon blog; un filtrage sur la langue au niveau serveur est aussi prévu.

[2004-09-13 12:16:57 UTC]
MPFR sous Microsoft Windows

(CariBlog – MPFR – Logiciels)

Le fichier INSTALL de l'arbre CVS de MPFR contient de nouvelles notes d'installation pour utiliser MPFR sous Microsoft Windows. En particulier, nous recommandons d'utiliser MinGW au lieu de Cygwin.

[2004-09-13 10:25:22 UTC]
RNC6: premier appel à participation

(CariBlog)

Le premier appel à participation à la 6e conférence Real Numbers and Computers (RNC6), du 15 au 17 novembre 2004, Schloß Dagstuhl, Allemagne, se trouve sur le site web de la conférence.

[2004-09-08 17:04:34 UTC]
Nouvelle page: Multiplication par des constantes entières

(CariBlog – vinc17)

Contenu: introduction, publications, liens vers quelques implémentations des divers algorithmes. La page web...

[2004-09-04 10:18:48 UTC]
Page publications: mise à jour des liens...

(CariBlog – vinc17)

Plusieurs modifications sur ma page publications:

  • Mise en place de liens alternatifs.

  • Négociation HTTP sur le format (postscript ou PDF) à utiliser pour les liens principaux.

  • Traductions dans la page en français.

[2004-08-24 13:00:10 UTC]
Les tests exhaustifs des fonctions élémentaires et le bug du pipe d'OpenMosix

(CariBlog – Tests exhaustifs des fonctions élémentaires)

À cause d'un bug concernant les pipes sous OpenMosix (enfin, probablement celui-là), mes programmes de recherche de pires cas pour l'arrondi exact (cf introduction au dilemme du fabricant de tables) donnaient parfois des résultats incorrects, non détectables a priori, sur le cluster ble.ens-lyon.fr; j'avais mentionné ce problème dans les transparents de ma présentation lors des journées au vert SPACES 2004. C'était probablement dû à une perte de données lors des communications par pipe entre mes programmes et Maple. Le plus souvent, les pipes (pas seulement dans mes programmes) se bloquaient simplement, sans provoquer de résultats incorrects. Après installation d'une nouvelle version du noyau par les administrateurs système, de nouveaux tests effectués hier ont confirmé que ces problèmes ont complètement disparu.

Déjà il y a plusieurs années, une mémoire défectueuse d'un serveur de fichiers avait provoqué des erreurs dans mes programmes, heureusement détectées. Ce genre d'erreurs se produisant aléatoirement, il faudra vraiment faire tous les tests au moins deux fois, sur des machines différentes.

[2004-08-23 08:31:38 UTC]
La double précision de SableVM sous Linux/x86 corrigée

(CariBlog – Java – Logiciels)

Sous Linux/x86, comme d'autres JVM, SableVM calculait de manière interne en précision étendue, alors que ce n'est pas admis par les spécifications de Java. Grzegorz B. Prokopski a corrigé ce problème dans le paquet Debian 1.1.6-4 en plaçant le FPU en arrondi double précision (au bon endroit dans le code C). Merci à lui.

À ma connaissance, SableVM est la première implémentation JVM libre à être corrigée et à calculer maintenant correctement.

Pour plus d'information sur ce bug et les problèmes liés à la précision étendue sous Linux/x86, veuillez voir ma page Linux et la précision étendue sur les processeurs x86.

[2004-08-19 00:09:55 UTC]
Les derniers changements sur mes pages recherche

(CariBlog – vinc17)

[2004-08-17 21:49:04 UTC]
Blog sur l'arithmétique des ordinateurs et les pages recherche de mon site web

(CariBlog – Blog)

Voici mon blog sur l'arithmétique des ordinateurs ainsi que l'évolution de mes pages recherche de mon site web. Je ne sais pas encore comment il va évoluer... D'un point de vu technique, il est pour le moment maintenu à l'aide de scripts et de feuilles de styles XSLT. Concernant le contenu, il est possible que je fasse dans le futur un blog plus général, dans lequel il sera intégré (avec filtrage par mots clés). Il devrait être à la fois en français et en anglais.



webmaster@vinc17.org