Sipe: a Mini-Library for Very Low Precision Computations with Correct Rounding
Abstract
Sipe is a mini-library in the form of a C header file, to perform radix-2 floating-point computations in very low precisions with correct rounding, either to nearest or toward zero. The goal of such a tool is to do proofs of algorithms/properties or computations of tight error bounds in these precisions by exhaustive tests, in order to try to generalize them to higher precisions. The currently supported operations are addition, subtraction, multiplication (possibly with the error term), fused multiply-add/subtract (FMA/FMS), and miscellaneous comparisons and conversions. \sipe provides two implementations of these operations, with the same API and the same behavior: one based on integer arithmetic, and a new one based on floating-point arithmetic. Timing comparisons have been done with hardware IEEE-754 floating point and with GNU MPFR.
Sipe est une mini-bibliothèque sous forme de fichier d'en-tête C permettant d'effectuer des calculs en virgule flottante en base 2 à très basses précisions avec arrondi correct, soit au plus près, soit vers zéro. 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 terme d'erreur), le FMA/FMS, et diverses comparaisons et conversions. Sipe fournit deux implémentations de ces opérations, avec la même API et le même comportement: une basée sur l'arithmétique entière, et une nouvelle basée sur l'arithmétique à virgule flottante. Des comparaisons de temps de calcul ont été faites avec la virgule flottante IEEE 754 du processeur et avec GNU MPFR.
Domains
Computer ArithmeticOrigin | Files produced by the author(s) |
---|
Loading...