Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en...

46
Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et Marie Curie (Paris 6) Séminaire SPIRAl/SALSA 1 juin 2007, Paris S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 1 / 40

Transcript of Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en...

Page 1: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Algorithme de Horner compensé en précision finieet applications

Stef Graillat

LIP6/PEQUAN - Université Pierre et Marie Curie (Paris 6)

Séminaire SPIRAl/SALSA1 juin 2007, Paris

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 1 / 40

Page 2: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Plan de l’exposé

1 Motivations

2 Évaluation précise de polynômes

3 Applications

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 2 / 40

Page 3: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Plan de l’exposé

1 Motivations

2 Évaluation précise de polynômes

3 Applications

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 3 / 40

Page 4: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Motivations générales

Proposer des algorithmes et des logiciels :plus précis que ceux utilisant les précisions de la norme IEEE 754B on veut que la précision vérifie une «version améliorée» del’estimation empirique classiqueefficace en terme de performance sans sacrifier la portabilitéB on utilise seulement la précision IEEE 754 simple ou doubleavec une borne d’erreur pour contrôler la précision du résultatB borne d’erreur dynamique et certifiée calculable en précision finie

Un exemple : le schéma de Horner pour l’évaluation polynomiale→ le schéma de Horner compensé1

1SG, N. Louvet, Ph. Langlois. Compensated Horner Scheme. Research Report, 2005

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 4 / 40

Page 5: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Imprécision dans l’évaluation polynomiale

Évaluation du polynôme p(x) = (x − 2)3 = x3 − 6x2 + 12x − 8 pourenviron 200 points au voisinage de x = 2 en simple et double précision

1.99 1.992 1.994 1.996 1.998 2 2.002 2.004 2.006 2.008 2.01−2

−1.5

−1

−0.5

0

0.5

1

1.5

2x 10−6

évaluation en simple précisionévaluation en double précision

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 5 / 40

Page 6: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Problématique en précision finie (1/2)

But : Résoudre des problèmes numériques en étant précis et fiableComprendre l’influence de la précision finie sur la qualité numérique dulogiciel scientifique pour contrôler et limiter ses effets néfastes

résultat imprécis ;instabilité numérique.

Améliorer la précision des résultats

Comment être plus précis à faible coût

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 6 / 40

Page 7: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Problématique en précision finie (2/2)

Comprendre l’influence de la précision finie sur la qualité numérique dulogiciel scientifique pour contrôler et limiter ses effets néfastes :

Contrôler les effets de la précision finie :Comment mesurer la difficulté de résolution d’un problème ?Comment apprécier la fiabilité de l’algorithme de résolution ?Comment estimer la précision de la solution calculée ?

Limiter les effets de la précision finieComment améliorer la précision de la solution ?

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 7 / 40

Page 8: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Analyse d’erreur

x = G (y)

x = G (y)

Espace de données D

yG

Espace des résultats R

G Erreur directe

Analyse directeAnalyse inverseconsiste à identifier x à la solution d’un problème perturbé :x = G (y + ∆y).

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 8 / 40

Page 9: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Analyse d’erreur

x = G (y)

x = G (y)

Espace de données D

y + ∆y

y

Erreur inverse

G

GEspace des résultats R

G Erreur directe

Analyse directeAnalyse inverseconsiste à identifier x à la solution d’un problème perturbé :x = G (y + ∆y).

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 8 / 40

Page 10: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Intérêt de l’analyse inverse

Comment estimer la précision de la solution calculée ?Au premier ordre, on a l’estimation empirique :

erreur directe . conditionnement × erreur inverse.

Comment mesurer la difficulté de résolution d’un problème ?Le conditionnement caractérise la sensibilité de la solution d’un problème àdes perturbations sur les données.

Conditionnement : K (P, y) := limε→0

sup∆y∈P(ε)

{‖∆x‖R‖∆y‖D

}Comment apprécier la fiabilité de l’algorithme de résolution ?L’erreur inverse mesure la distance entre le problème que l’on aeffectivement résolu et le problème initial.

Erreur inverse : η(x) = min∆y∈D

{‖∆y‖D : x = G (y + ∆y)}

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 9 / 40

Page 11: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Intérêt de l’analyse inverse

Comment estimer la précision de la solution calculée ?Au premier ordre, on a l’estimation empirique :

erreur directe . conditionnement × erreur inverse.

Comment mesurer la difficulté de résolution d’un problème ?Le conditionnement caractérise la sensibilité de la solution d’un problème àdes perturbations sur les données.

Conditionnement : K (P, y) := limε→0

sup∆y∈P(ε)

{‖∆x‖R‖∆y‖D

}Comment apprécier la fiabilité de l’algorithme de résolution ?L’erreur inverse mesure la distance entre le problème que l’on aeffectivement résolu et le problème initial.

Erreur inverse : η(x) = min∆y∈D

{‖∆y‖D : x = G (y + ∆y)}

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 9 / 40

Page 12: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Intérêt de l’analyse inverse

Comment estimer la précision de la solution calculée ?Au premier ordre, on a l’estimation empirique :

erreur directe . conditionnement × erreur inverse.

Comment mesurer la difficulté de résolution d’un problème ?Le conditionnement caractérise la sensibilité de la solution d’un problème àdes perturbations sur les données.

Conditionnement : K (P, y) := limε→0

sup∆y∈P(ε)

{‖∆x‖R‖∆y‖D

}Comment apprécier la fiabilité de l’algorithme de résolution ?L’erreur inverse mesure la distance entre le problème que l’on aeffectivement résolu et le problème initial.

Erreur inverse : η(x) = min∆y∈D

{‖∆y‖D : x = G (y + ∆y)}

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 9 / 40

Page 13: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Plan de l’exposé

1 Motivations

2 Évaluation précise de polynômes

3 Applications

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 10 / 40

Page 14: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Nombres à virgule flottante

Un nombre flottant normalisé x ∈ F est un nombre qui s’écrit sous la forme

x = ± x0.x1 . . . xp−1︸ ︷︷ ︸mantisse

×be , 0 ≤ xi ≤ b − 1, x0 6= 0

b : la base, p : précision, e : exposant vérifiant emin ≤ e ≤ emax

Précision machine ε = b1−p, |1+ − 1| = ε

Approximation de R par F, arrondi fl : R → FSoit x ∈ R alors

fl(x) = x(1 + δ), |δ| ≤ u.

L’unité d’arrondi u vaut u = ε/2 pour l’arrondi au plus près.

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 11 / 40

Page 15: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Modèle standard de l’arithmétique à virgule flottante

Soient x , y ∈ F,

fl(x ◦ y) = (x ◦ y)(1 + δ), |δ| ≤ u, ◦ ∈ {+,−, ·, /}

Norme IEEE 754 (1985)

Type Taille Mantisse Exposant Unité d’arrondi IntervalleSimple 32 bits 23+1 bits 8 bits u = 2−24 ≈ 5, 96× 10−8 ≈ 10±38

Double 64 bits 52+1 bits 11 bits u = 2−53 ≈ 1, 11× 10−16 ≈ 10±308

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 12 / 40

Page 16: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Pour une évaluation plus précise

Évaluation de p(x) plus précise : le schéma de Horner compensé etl’estimation empirique compenséeUne borne améliorée et certifiée de l’erreurLes résultats théoriques et expérimentaux montrent que

précision : identique à celle obtenue si les calculs avaient été effectuésavec deux fois la précision courante,vitesse : deux fois plus rapide que l’implémentation double-double deréférence

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 13 / 40

Page 17: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Plus de précision, comment ?

Augmenter la précision interne des calculs :de façon matérielle

précision étendue sur l’architecture x86de façon logicielle

expansions de longueur finie : double-double (Briggs, Bailey, Hida, Li),quad-double (Bailey, Hida, Li)expansions de longueur variable : Priest, Shewchukprécision arbitraire : MP, MPFUN/ARPREC, MPFR

Corriger les erreurs d’arrondis :sommation compensée (Kahan,1965) et doublement compensée(Priest,1991), etc.sommation et produit scalaire : Ogita, Rump et Oishi (2005)→ résultat avec une précision identique à celle obtenue si on faisait lescalculs avec 2 fois la précision courante

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 14 / 40

Page 18: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Plus de précision, comment ?

Augmenter la précision interne des calculs :de façon matérielle

précision étendue sur l’architecture x86de façon logicielle

expansions de longueur finie : double-double (Briggs, Bailey, Hida, Li),quad-double (Bailey, Hida, Li)expansions de longueur variable : Priest, Shewchukprécision arbitraire : MP, MPFUN/ARPREC, MPFR

Corriger les erreurs d’arrondis :sommation compensée (Kahan,1965) et doublement compensée(Priest,1991), etc.sommation et produit scalaire : Ogita, Rump et Oishi (2005)→ résultat avec une précision identique à celle obtenue si on faisait lescalculs avec 2 fois la précision courante

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 14 / 40

Page 19: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

À précision courante ...

Estimation empirique pour les algorithmes inverses-stables :

précision du résultat ≈ conditionnement × précision de calcul

1 précision IEEE-754 : double (u = 2−53 ≈ 10−16)2 Conditionnement pour l’évaluation de p(x) =

∑ni=0 aix i :

cond(p, x) =

∑ni=0 |ai ||x |i

|∑n

i=0 aix i |=

p(|x |)|p(x)|

, toujours ≥ 1.

3 Précision de la solution p(x) :

|p(x)− p(x)||p(x)|

≤ α(n)× cond(p, x)× u

avec α(n) ≈ 2n

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 15 / 40

Page 20: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Que signifie doubler la précision courante ?

Estimation empirique compensée :

précision du résultat . précision + conditionnement× précision2

Trois régimes pour la précision de l’évaluation de p(x) :1) conditionnement ≤ 1/u : la précision de p(x) est optimale

|p(x)−p(x)||p(x)| ≈ u

105 1010 1015 1020 1025 1030 1035

10−18

10−16

10−14

10−12

10−10

10−8

10−6

10−4

10−2

100

γ2n

cond u+γ2n2 cond

Conditionnement et erreur directe relative

Conditionnement

Err

eur d

irect

e re

lativ

e

schéma de Horner classiqueschéma de Horner compensé

1/u 1/u2

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 16 / 40

Page 21: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Que signifie doubler la précision courante ?

Estimation empirique compensée :

précision du résultat . précision + conditionnement× précision2

Trois régimes pour la précision de l’évaluation de p(x) :2) 1/u ≤ conditionnement ≤ 1/u2 : la précision de p(x)

|p(x)−p(x)||p(x)| ≈ cond× u2

105 1010 1015 1020 1025 1030 1035

10−18

10−16

10−14

10−12

10−10

10−8

10−6

10−4

10−2

100

γ2n

cond u+γ2n2 cond

Conditionnement et erreur directe relative

Conditionnement

Err

eur d

irect

e re

lativ

e

schéma de Horner classiqueschéma de Horner compensé

1/u 1/u2

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 16 / 40

Page 22: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Que signifie doubler la précision courante ?

Estimation empirique compensée :

précision du résultat . précision + conditionnement× précision2

Trois régimes pour la précision de l’évaluation de p(x) :3) perte totale de précision quand conditionnement > 1/u2.

105 1010 1015 1020 1025 1030 1035

10−18

10−16

10−14

10−12

10−10

10−8

10−6

10−4

10−2

100

γ2n

cond u+γ2n2 cond

Conditionnement et erreur directe relative

Conditionnement

Err

eur d

irect

e re

lativ

e

schéma de Horner classiqueschéma de Horner compensé

1/u 1/u2

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 16 / 40

Page 23: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Algorithme de Horner classique

Algorithme 1 (Algorithme de Horner classique)

function res = Horner(p, x)sn = anfor i = n − 1 : −1 : 0

pi = fl(si+1 · x) % erreur d’arrondi πisi = fl(pi + ai ) % erreur d’arrondi σi

endres = s0

γn = nu/(1− nu) ≈ nu

|p(x)− Horner(p, x)||p(x)|

≤ γ2n cond(p, x)

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 17 / 40

Page 24: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Transformations exactes pour la somme

x = fl(a ± b) ⇒ a ± b = x + y avec y ∈ F,

Algorithmes de Dekker (1971) et Knuth (1974)

Algorithme 2 (Transformation exacte pour la somme de 2 flottants,nécessite |a| ≥ |b|)function [x , y ] = FastTwoSum(a, b)

x = fl(a + b)y = fl((a − x) + b)

Algorithme 3 (Transformation exacte pour la somme de 2 flottants)

function [x , y ] = TwoSum(a, b)x = fl(a + b)z = fl(x − a)y = fl((a − (x − z)) + (b − z))

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 18 / 40

Page 25: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Transformations exactes pour le produit (1/2)

x = fl(a · b) ⇒ a · b = x + y avec y ∈ F,

Algorithme TwoProduct de Veltkamp et Dekker (1971)

a = x + y et x et y ne se chevauchent pas avec |y | ≤ |x |.

Algorithme 4 (Séparation exacte d’un flottant en deux parties)

function [x , y ] = Split(a, b)factor = fl(2s + 1) % u = 2−p , s = dp/2ec = fl(factor · a)x = fl(c − (c − a))y = fl(a − x)

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 19 / 40

Page 26: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Transformations exactes pour le produit (2/2)

Algorithme 5 (Transformation exacte pour le produit de 2 flottants)

function [x , y ] = TwoProduct(a, b)x = fl(a · b)[a1, a2] = Split(a)[b1, b2] = Split(b)y = fl(a2 · b2 − (((x − a1 · b1)− a2 · b1)− a1 · b2))

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 20 / 40

Page 27: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Transformations exactes pour la somme et le produit

Étant donnés a, b, c ∈ F,FMA(a, b, c) est l’arrondi au plus près de a · b + c ∈ FADD3(a, b, c) est l’arrondi au plus près de a + b + c ∈ F

Algorithme 6 (Transformation exacte pour la somme de 2 flottants)

function [x , y ] = TwoSumADD3(a, b)x = fl(a + b)y = ADD3(a, b,−x)

Algorithme 7 (Transformation exacte pour le produit de 2 flottants)

function [x , y ] = TwoProductFMA(a, b)x = fl(a · b)y = FMA(a, b,−x)

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 21 / 40

Page 28: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Transformation exacte pour le schéma de Horner

Algorithme 8 (Transformation exacte pour le schéma de Horner)

function [Horner(p, x), pπ, pσ] = EFTHorner(p, x)sn = anfor i = n − 1 : −1 : 0

[pi , πi ] = TwoProduct(si+1, x)[si , σi ] = TwoSum(pi , ai )Soit πi le coefficient de degré i de pπ

Soit σi le coefficient de degré i de pσ

endHorner(p, x) = s0

p(x) = Horner(p, x) + (pπ + pσ)(x)

avec pπ(x) =n−1∑i=0

πix i et pσ(x) =n−1∑i=0

σix i avec πi et σi dans F

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 22 / 40

Page 29: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Algorithme de Horner compensé

Algorithme 9 (Algorithme de Horner compensé)

function res = CompHorner(p, x)[h, pπ, pσ] = EFTHorner(p, x)c = Horner(pπ + pσ, x)res = fl(h + c)

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 23 / 40

Page 30: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Précision de l’algorithme de Horner compensé

Théorème 1Soient p un polynôme de degré n à coefficients flottants et x un nombreflottant. Alors en absence d’underflow, on a

|CompHorner(p, x)− p(x)||p(x)|

≤ u + γ22n cond(p, x).

argument clé de la preuve :

(pπ + pσ)(|x |) ≤ γ2np(|x |)

on a une borne similaire en présence d’underflow

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 24 / 40

Page 31: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Simulations numériques

Évaluation de pn(x) = (x − 1)n pour x = fl(1.333) et n = 3, . . . , 42

105 1010 1015 1020 1025 1030 1035

10−18

10−16

10−14

10−12

10−10

10−8

10−6

10−4

10−2

100

γ2n

cond u+γ2n2 cond

Conditionnement et erreur directe relative

Conditionnement

Err

eur d

irect

e re

lativ

e

schéma de Horner classiqueschéma de Horner compensé

1/u 1/u2

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 25 / 40

Page 32: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Mesure de performances

Nous comparonsHorner : algorithme de Horner en double précision IEEE 754CompHorner : algorithme de Horner compenséDDHorner : algorithme de Horner avec les double-double

Tous les tests de performances ont été fait en langage C avec la doubleprécision IEEE 754Pour chaque polynôme pn avec n variant 3 à 42 :

on effectue 100 tests mesurant le nombre de cycles,on garde la valeur moyenne, la valeur minimum et la valeur maximumdes 10 plus petits nombres de cycles.

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 26 / 40

Page 33: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Mesure de performances

Pentium 4 : 3.0GHz, 1024kB cache L2 - GCC 3.4.1ratio minimum moyen maximum théorique

CompHorner/Horner 1.5 2.9 3.2 13DDHorner/Horner 2.3 8.4 9.4 17

Intel Celeron : 2.4GHz, 256kB cache L2 - GCC 3.4.1ratio minimum moyen maximum théorique

CompHorner/Horner 1.4 3.1 3.4 13DDHorner/Horner 2.3 8.4 9.4 17

→ algorithme de Horner compensé = algorithme de Horner avec lesdouble-double sans renormalisation

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 27 / 40

Page 34: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Borne d’erreur certifiée en arithmétique flottante

Théorème 2Soient p un polynôme de degré n à coefficients flottants, x un nombreflottant et res = CompHorner(p, x) l’évaluation précise par l’algorithme deHorner compensé de p en x. L’erreur directe absolue commise lors del’évaluation vérifie

|CompHorner(p, x)− p(x)| ≤fl((u|res|+ (γ4n+2HornerSum(|pπ|, |pσ|, |x |) + 2u2|res|))).

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 28 / 40

Page 35: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Précision de la borne certifiée pour p5(x) = (x − 1)5

0.99 0.992 0.994 0.996 0.998 1 1.002 1.004 1.006 1.008 1.0110−36

10−34

10−32

10−30

10−28

10−26

10−24Précision des borne d’erreur

Argument x

Err

eur a

bsol

ueerreur directe réelleborne d’erreur directe calculéeborne d’erreur a priori

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 29 / 40

Page 36: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Plan de l’exposé

1 Motivations

2 Évaluation précise de polynômes

3 Applications

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 30 / 40

Page 37: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Applications

L’évaluation polynomiale précise est utilisée dansl’évaluation des fonctions élémentairesl’évaluation par interpolation polynomialela géométrie algorithmique (intersection de surface, prédicatsgéométriques)le calcul scientifique (calcul des racines de polynômes)robotique (polynômes à plusieurs variables)

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 31 / 40

Page 38: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Prédicats géométriques

Le prédicat Orient3D : détermine si un point D est du côté droit ou gauchedu plan orienté défini par A, B et C . Le résultat dépend du signe dudéterminant

Orient3D(a, b, c, d) = signe

∣∣∣∣∣∣∣∣ax ay az 1bx by bz 1cx cy cz 1dx dy dz 1

∣∣∣∣∣∣∣∣→ revient à évaluer un polynôme à plusieurs variables.

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 32 / 40

Page 39: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Approximation de racines simples par la méthode de Horner(1/2)

Polynôme p(z) =∑n

i=0 aiz i avec une racine simple x

Définition 1Étant donné un polynôme p et un racine simple x, on définit leconditionnement de la racine par

cond(p, x) = limε→0

sup{|∆x |ε|x |

: |∆ai | ≤ ε|ai |}

.

Théorème 3On a la relation suivante

cond(p, x) =p(|x |)

|x ||p′(x)|.

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 33 / 40

Page 40: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Approximation de racines simples par la méthode de Horner(2/2)

Algorithme de Newton pour les racines simples :

Algorithme 10

x0 = ξ

xi+1 = xi − p(xi )p′(xi )

; xi+1 = xi − CompHorner(p,xi )p′(xi )

Théorème 4Si ξ est suffisamment proche de x alors l’erreur relative décroît jusqu’aupremier i pour lequel

|xi − x ||x |

≤ u + cond(p, x)u2

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 34 / 40

Page 41: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Et les polynômes à coefficients complexes ?

p(z) =n∑

j=0

ajz j , aj ∈ C, z = x + iy ∈ C

→ Écrire p(z) = pr (x , y) + iqi (x , y) avec pr et qr à coefficients réels puisévaluer pr et qr avec l’algorithme de Horner précédent

Pb : nécessite des manipulations formelles

⇒ il faut de nouvelles transformations exactes pour les complexes

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 35 / 40

Page 42: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Transformations exactes complexes (1/2)

Pour x , y ∈ F + iF,

fl(x ◦ y) = (x ◦ y)(1 + ε1), pour ◦ ∈ {+,−} et |εν | ≤ u,

etfl(x · y) = (x · y)(1 + ε1), |ε1| ≤

√2γ2.

Algorithme 11 (Transformation exacte pour la somme de 2 flottantsx = a + ib and y = c + id)

function [s, e] = TwoSumCplx(x , y)[s1, e1] = TwoSum(a, c)[s2, e2] = TwoSum(b, d)s = s1 + is2e = e1 + ie2

x + y = s + e, s = fl(x + y), |e| ≤ u|s|, |e| ≤ u|x + y |S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 36 / 40

Page 43: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Transformations exactes complexes (2/2)

Algorithme 12 (Transformation exacte pour le produit de 2 flottantsx = a + ib and y = c + id)

function [p, e, f , g ] = TwoProductCplx(x , y)[z1, h1] = TwoProduct(a, c)[z2, h2] = TwoProduct(b, d)[z3, h3] = TwoProduct(a, d)[z4, h4] = TwoProduct(b, c)[z5, h5] = TwoSum(z1,−z2)[z6, h6] = TwoSum(z3, z4)p = z5 + iz6e = h1 + ih3f = −h2 + ih4g = h5 + ih6

x · y = p + e + f + g p = fl(x · y), |e + f + g | ≤√

2γ2|x · y |S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 37 / 40

Page 44: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Conclusion et perspectives

Le schéma de Horner compensé fournitune précision double de la précision courante,un algorithme deux fois plus rapide que la version double-double,une borne d’erreur dynamique et certifiée.

Développements passés, en cours et futursschéma de Horner compensé : underflow, avec FMA, pour le FMAmême technique avec la méthode de Newton pour d’autres problèmes

La future révision de la norme IEEE 754 devrait inclure les fonctionstailadd, tailsubtract et tailmultiply qui calculent l’erreur d’arrondipour l’addition, la soustraction et la multiplication.

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 38 / 40

Page 45: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Références I

Nicholas J. Higham.Accuracy and stability of numerical algorithms.Society for Industrial and Applied Mathematics (SIAM), Philadelphia,PA, second edition, 2002.

Takeshi Ogita, Siegfried M. Rump, and Shin’ichi Oishi.Accurate sum and dot product.SIAM J. Sci. Comput., 26(6) :1955–1988, 2005.

Douglas M. Priest.On Properties of Floating Point Arithmetics : Numerical Stability andthe Cost of Accurate Computations.PhD thesis, Mathematics Department, University of California,Berkeley, CA, USA, November 1992.

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 39 / 40

Page 46: Algorithme de Horner compensé en précision finie et ... · Algorithme de Horner compensé en précision finie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et

Références II

Jonathan Richard Shewchuk.Adaptive precision floating-point arithmetic and fast robust geometricpredicates.Discrete Comput. Geom., 18(3) :305–363, 1997.

Françoise Tisseur.Newton’s method in floating point arithmetic and iterative refinementof generalized eigenvalue problems.SIAM J. Matrix Anal. Appl., 22(4) :1038–1057, 2001.

S. Graillat (Univ. Paris 6) Algorithme de Horner compensé 40 / 40