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.
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.
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.
MPFR 2.3.1 Release Candidate 2 is available.
MPFR 2.3.1 Release Candidate is available.
GNU C library (glibc): printf doesn't take the rounding mode into account opened on 2007-09-19.
Perl: floating-point binary-decimal conversion bugs opened on 2007-11-19.
Debian / GNU C library (glibc): libc6: strtod("-0", 0) returns +0.0 instead of -0.0 fixed in Debian on 2007-11-23.
Debian / zsh: zsh: printf %g -0 outputs 0 instead of -0 fixed in Debian on 2007-11-25.
FreeBSD: output of long double subnormals (with printf) is wrong by a factor 2 fixed in HEAD on 2007-12-09.
Une courte note sur les prochains événements liés à l'arithmétique des ordinateurs.
Séminaire Dagstuhl 08021: Numerical Validation in Current Hardware Architectures, 6-11 janvier 2008.
8e conférence sur les nombres réels et ordinateurs (RNC8), 7-9 juillet 2008, Saint-Jacques-de-Compostelle, Espagne. Date limite de soumission: 8 février 2008 22 février 2008 (date limite étendue).
First challenge in the forecast of solar power, compétition amicale dans le cadre de RNC8.
2es Rencontres Arithmétique de l'Informatique Mathématique (RAIM) du GDR Informatique Mathématique, 3-5 juin 2008, Lille.
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.
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.
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.
MPFR 2.3.0 Release Candidate 2 is available.
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é.
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.
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.
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).
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!
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...
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).
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).
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).
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.
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.
Les présentations des Rencontres Arithmétique de l'Informatique Mathématique (qui ont eu lieu à Montpellier les 22-25 janvier) sont maintenant disponibles.
INT_MIN % -1C'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, a la valeur 0, mais j'obtiens les résultats suivants sur mes diverses machines:INT_MIN % -1
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 et LONG_MIN / 1).LONG_MIN / (-2)
Nouvelle page: mon analyse du bug Debian 153548 dans la glibc. J'y explique pourquoi seules quelques valeurs sont (complètement) fausses.
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.
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).
Le patch 16 est disponible sur la page de MPFR 2.2.0. Il corrige l'échec du test texp2.
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.
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).
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.
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.
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...
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.
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).
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.
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.
Une page web Recrutements sur des postes scientifiques au Loria a été ouverte.
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).
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.
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!
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.
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).
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).
Les résultats et les temps et classements finaux détaillés.
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.
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.
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.
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.
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.
Les présentations à Arith'17 sont disponibles sur le site web de la conférence et sur ce miroir.
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:
mpfr-2.1.2.tar.bz2 (signature, MD5: 4e2b64fe2263d093bd809820221289a8),
mpfr-2.1.2.tar.gz (signature, MD5: d3bf773894478bf71af87f681b6819a1),
mpfr-2.1.2.zip (signature, MD5: 2f29793940d782e313d4eb8ba2f30e8d).
Cette nouvelle version apparaîtra bientôt comme paquet Debian.
Many DigitsUne 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).
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...
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.
Trois nouveaux patches (depuis le 2005-05-12) sont disponibles sur la page de MPFR 2.1.1.
Depuis ces derniers mois:
[Mars] Test de fonctions mathématiques de la bibliothèque standard C: deux nouvelles fonctions testées (cube et racine cubique).
[Mai] Linux/86 et la précision étendue: mises à jour diverses.
[Juin] Mes transparents pour la conférence Arith'17 sont disponibles.
Annonces diverses que j'ai reçues dans ma boîte-aux-lettres...
2005-06-15: Call For Papers Real Numbers, special issue of Theoretical Informatics and Applications (dead-line postponed to June 15).
2005-09-01: Call For Papers More Accurate Computation: Methods and Software at SAC 2006.
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.
Un nouveau patch est disponible sur la page de MPFR 2.1.1. Il corrige un bug dans la fonction mpfr_div_ui.
Quatre nouveaux patches (depuis le 2005-03-09) sont disponibles sur la page de MPFR 2.1.1.
À 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.
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.
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.
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.
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:
mpfr-2.1.1.tar.bz2 (MD5: 843422d90349800ee721f6710d051c87),
mpfr-2.1.1.tar.gz (MD5: b7eb5932ab86c78d13ed0569ad26af38),
mpfr-2.1.1.zip (MD5: b999dea40758ea5fecf6afb1b65dacf4).
Cette nouvelle version apparaîtra bientôt comme paquet Debian.
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.
Trois nouveaux patches sont disponibles sur la page de MPFR 2.1.0.
Annonces diverses que j'ai reçues dans ma boîte-aux-lettres...
2005-03: Journées Arinews les 7 et 8 mars 2005 à l'ENS Lyon, France.
2005-04: École Jeunes Chercheurs en Algorithmique et Calcul Formel, 4-8 avril 2005, Montpellier, France.
2005-07: SNC 2005: International Workshop on Symbolic-Numeric Computation, 19-21 juillet 2005, Xi'an, Chine (conférence satellite d'ISSAC 2005).
2005-09: CASC'2005: The 8th International Workshop on Computer Algebra in Scientific Computing, 12-16 septembre 2005, Kalamata, Grèce. Date limite pour les soumissions: 1er avril 2005.
Possibilité de postdoc, ENS Lyon, France.
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).
12 patches sont disponibles sur la page de MPFR 2.1.0.
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.
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.
rint dans la glibc sur PowerPC corrigé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!
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.
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.
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).
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.
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.
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.
Contenu: introduction, publications, liens vers quelques implémentations des divers algorithmes. La page web...
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.
À 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.
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-06-30: ajout de la page Linux et la précision étendue sur les processeurs x86.
2004-07-26: ajout des résultats pour le Zaurus SL-C860 sur la page des tests de fonctions mathématiques de la bibliothèque standard C.
2004-08-15: ajout des détails pour chaque machine pour la page des tests de fonctions mathématiques de la bibliothèque standard C.
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.