Sipe est une mini-bibliothèque sous forme de fichier d'en-tête C permettant d'effectuer des calculs à virgule flottante en base 2 à très basses précisions avec arrondi correct. Par défaut, l'arrondi se fait au plus près (avec la règle d'arrondi pair). À partir de 2013-09, l'arrondi peut se faire vers zéro; l'utilisateur ne peut choisir la direction d'arrondi qu'à la compilation.
Le but d'un tel outil est de faire des preuves d'algorithmes/propriétés ou des calculs de bornes d'erreur fines dans ces précisions par des tests exhaustifs, afin de les généraliser à des précisions supérieures. Les opérations actuellement supportées sont l'addition, la soustraction, la multiplication (éventuellement avec le terme d'erreur), le FMA/FMS (optionnel, voir le code), et diverses comparaisons et conversions.
Sipe signifiait à l'origine
Small Integer Plus Exponent
à cause de la façon dont
elle était implémentée, mais ce n'est plus la seule implémentation.
Fichier source (version de développement): sipe.h
Une courte documentation se trouve au début du fichier.
Versions archivées:
test-sipe.c, pour tester Sipe avec la bibliothèque GNU MPFR (vous aurez aussi besoin de version-info.h).
minasm.c, pour la preuve de l'optimalité de l'algorithme TwoSum. Pour plus d'information, voir le rapport de recherche suivant (2010): Peter Kornerup, Vincent Lefèvre, Nicolas Louvet, Jean-Michel Muller, On the Computation of Correctly-Rounded Sums (les sources des programmes écrits pour les tests sont fournis en annexe). Noter qu'une version plus courte de ce rapport de recherche a été publiée dans IEEE Transactions on Computers.
Vincent Lefèvre, SIPE: Small Integer Plus Exponent, rapport de recherche INRIA RR-7832, décembre 2011. [PDF]
Vincent Lefèvre, SIPE: Small Integer Plus Exponent, Proceedings of the 21th IEEE Symposium on Computer Arithmetic (ARITH-21) (sources fournis en annexe), avril 2013. [PDF]
Vincent Lefèvre, présentation de Sipe à ARITH-21, en PDF, avril 2013.
Vincent Lefèvre, Sipe: a Mini-Library for Very Low Precision Computations with Correct Rounding, prépublication, septembre 2013.