Correctly rounded multiplication by arbitrary precision constants
Résumé
We introduce an algorithm for multiplying a floating-point number $x$ by a constant $C$ that is not exactly representable in floating-point arithmetic. Our algorithm uses a multiplication and a fused multiply accumulate instruction. We give methods for checking whether, for a given value of $C$ and a given floating-point format, our algorithm returns a correctly rounded result for any $x$. When it does not, our methods give the values $x$ for which the multiplication is not correctly rounded.
Nous proposons un algorithme permettant de multiplier un nombre virgule flottante x par une constante C qui n’est pas exactement représentable en virgule flottante.Notre algorithme nécessite la disponibilité d’une instruction “multiplication-accumulation”. Nous donnons des méthodes pour tester si,pour une constante C et un format virgule flottante donnés, notre algorithme donnera un arrondi correct pour toutes les valeurs de x.Quand ce n’est pas le cas,nos méthodes permettent de connaître toutes les valeurs de x pour lesquelles la multiplication par C n’est pas arrondie correctement.
Fichier principal
RR-5354.pdf (257.91 Ko)
Télécharger le fichier
RR2004-44.pdf (474.3 Ko)
Télécharger le fichier
Loading...