Produit précis de nombres flottants
Stef Graillat
LIP6/PEQUAN - Université Pierre et Marie Curie (Paris 6)
RAIM’08, 2eRencontres Arithmétique de l’Informatique Mathématique
Lille, France, 3-5 juin 2008
S. Graillat (Univ. Paris 6) Produit précis de nombres flottants 1 / 29
Motivations
Déterminant d’une matrice triangulaire
T=
t11 t12 ··· t1n
t22 t2n
....
.
.
tnn
.
det(T) =
n
Y
i=1
tii .
Évaluation polynomiale pour un polynôme representé par ses racines
p(x) = anQn
i=1(xxi)
Exemple de Sterbenz dans son livre Floating-point computation
S. Graillat (Univ. Paris 6) Produit précis de nombres flottants 2 / 29
Que sont les transformations exactes (EFT) ?
Arithmétique à virgule flottante conforme à la norme IEEE 754 avec
arrondi au plus près avec unité d’arrondi u(ni underflow ni overflow)
Les transformations exactes sont des algorithmes calculant les erreurs
d’arrondi générées par les opérations élémentaires
a,ben entrée F,ab=(ab) + e,avec eF
Algorithmes clé pour des calculs précis
expansions de longueur fixe : double-double (Briggs, Bailey, Hida, Li),
quad-double (Bailey, Hida, Li)
expansions de longueur arbitraire : Priest, Shewchuk
algorithmes compensés : Kahan, Priest, Ogita-Rump-Oishi,
Graillat-Langlois-Louvet
S. Graillat (Univ. Paris 6) Produit précis de nombres flottants 3 / 29
Transformations exactes pour la somme
x=(a±b)a±b=x+ywith yF,
Algorithmes de Dekker (1971) et Knuth (1974)
Algorithme 1 (Transformation exacte pour la somme de 2 flottants
avec |a| ≥ |b|)
function [x,y]=FastTwoSum(a,b)
x=(a+b)
y=((ax) + b)
Algorithme 2 (Transformation exacte pour la somme de 2 flottants)
function [x,y]=TwoSum(a,b)
x=(a+b)
z=(xa)
y=((a(xz)) + (bz))
S. Graillat (Univ. Paris 6) Produit précis de nombres flottants 4 / 29
Transformations exactes pour le produit (1/3)
x=(a·b)a·b=x+yavec yF,
Algorithme TwoProduct de Veltkamp et Dekker (1971)
a=x+yand xet yne se chevauchent pas avec |y| ≤ |x|.
Algorithme 3 (Séparation exacte d’un flottant en deux parties)
function [x,y]=Split(a,b)
factor = (2s+1) % u=2p,s=dp/2e
c=(factor ·a)
x=(c(ca))
y=(ax)
S. Graillat (Univ. Paris 6) Produit précis de nombres flottants 5 / 29
1 / 29 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !