La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 1 - GESTION DES PARCOURS DE L’ESPACE DE YAO 2 - TEST DE VALIDITE DES DIRECTIVES ORDER AIDE A LA GESTION DES PARCOURS DE L’ESPACE SOUS LE LOGICIEL YAO.

Présentations similaires


Présentation au sujet: "1 1 - GESTION DES PARCOURS DE L’ESPACE DE YAO 2 - TEST DE VALIDITE DES DIRECTIVES ORDER AIDE A LA GESTION DES PARCOURS DE L’ESPACE SOUS LE LOGICIEL YAO."— Transcription de la présentation:

1 1 1 - GESTION DES PARCOURS DE L’ESPACE DE YAO 2 - TEST DE VALIDITE DES DIRECTIVES ORDER AIDE A LA GESTION DES PARCOURS DE L’ESPACE SOUS LE LOGICIEL YAO 3 - GENERATION AUTOMATIQUE DES DIRECTIVES ORDER

2 2 1 - GESTION DES PARCOURS DE L’ESPACE DE YAO 1.1 - Module 1.2 - Directives « ctin » 1.4 - Directives « order » 1.3 - Graphe des connexions

3 3 Entrée_1 Entrée_2 Sortie_1 Sortie_2 Sortie_3 f 1 (Entrée_1, Entrée_2) f 2 (Entrée_1) f 3 (Entrée_1, Entrée_2) Module YAO

4 4 a a a a bb bb 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 1 2 1 1 2 1 1 2 1 i = 1i = 2 j = 1 j = 2

5 5 1 - GESTION DES PARCOURS DE L’ESPACE DE YAO 1.1 - Module 1.2 - Directives « ctin » 1.4 - Directives « order » 1.3 - Graphe des connexions

6 6 ctin b 1 from a 2i-1j ctin b 2 from b 1i+1j-1 ctin a 1 from a 1i-1j ctin a 2 from a 3i-1j+1 Directives ctin du fichier de description

7 7 a a a a bb bb 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 1 2 1 1 2 1 1 2 1 i = 1i = 2 j = 1 j = 2

8 8 ctin b 1 from a 2i-1j ctin b 2 from b 1i+1j-1 ctin a 1 from a 1i-1j ctin a 2 from a 3i-1j+1 Directives ctin du fichier de description

9 9 a a a a bb bb 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 1 2 1 1 2 1 1 2 1 i = 1i = 2 j = 1 j = 2

10 10 ctin b 1 from a 2i-1j ctin b 2 from b 1i+1j-1 ctin a 1 from a 1i-1j ctin a 2 from a 3i-1j+1 Directives ctin du fichier de description

11 11 a a a a bb bb 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 1 2 1 1 2 1 1 2 1

12 12 ctin b 1 from a 2i-1j ctin b 2 from b 1i+1j-1 ctin a 1 from a 1i-1j ctin a 2 from a 3i-1j+1 Directives ctin du fichier de description

13 13 a a a a bb bb 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 1 2 1 1 2 1 1 2 1

14 14 1 - GESTION DES PARCOURS DE L’ESPACE DE YAO 1.1 - Module 1.2 - Directives « ctin » 1.4 - Directives « order » 1.3 - Graphe des dépendances

15 Information retenue sur les directives ctin (-1, 0)==>b a ctinb1froma2i-1j Module source Module cible Postionnement relatif du module source par rapport au Module cible

16 16 ctin b 1 from a 2i-1j ctin b 2 from b 1i-1j+1 ctin a 1 from a 1i-1j ctin a 2 from a 3i-1j+1 a (-1, 0) ==> b a (-1, 0) ==> a a (-1, +1) ==> a b (+1,-1) ==> b Module source ==> Module cible Information retenue sur les directives ctin

17 17 Maillage Graphe Connexions a b a b a b a b a b a b a b a b a b a b a ( ) ==> b b (, ) ==> b +1 a (, ) ==> a 0, 0 0 +1, -1, +1 -1, GRAPHE DES DEPENDANCES a (, ) ==> a +1 0-1,

18 18 Graphe a b 0 +1, -1, +1 -1, 0 a (-1, 0) ==> b a (-1, 0) ==> a a (-1, +1) ==> a b (+1,-1) ==> b GRAPHE DES DEPENDANCES

19 19 a a a a bb bb 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 2 3 1 2 1 1 2 1 1 2 1 1 2 1

20 20 1 - GESTION DES PARCOURS DE L’ESPACE DE YAO 1.1 - Module 1.2 - Directives « ctin » 1.4 - Directives « order » 1.3 - Graphe des connexions

21 21 Directives ctin Directives order

22 22 order modinspace forder order forder order forder Instruction order Directive « order » Structure d’une directive order Instruction order order forder Instruction order

23 23 Paramètres : Y[Sens_parcours][Dimension] A = sens de parcours dans l’ordre croissant B = sens de parcours dans l’ordre décroissant 1 = i 2 = j 3 = k Sens de parcours Dimension Ex : YB2 : parcours de l’axe de la dimension « j » dans le sens décroissant (de Nj à 1) YA1 : parcours de l’axe de la dimension « i » dans le sens croissant (de 1 à Ni)

24 24 for i:1  Ni for j:Nj  1 order YA1 forder Directive orderBoucle for for i: 1  Ni end for order YA1 order YB2 forderend for forderend for

25 25 Graphe des dépendances a b 0 +1, -1, +1 -1, order YA1 order YA2 a forder order YB1 order YA2 b forder 0-1, Directive « order » valide for i: 1  Ni for j:1  Nj a end for for i:Ni  1 for j:1  Nj b end for

26 26 Maillage Graphe Connexions a b a b a b a b a b a b a b a b a b a b a ( ) ==> b b (, ) ==> b +1 a (, ) ==> a 0, 0 0 +1, -1, +1 -1, GRAPHE DES DEPENDANCES a (, ) ==> a +1 0-1,

27 27 a b 0 -1, -1, +1 -1, 0 order YA1 order YA2 a b forder Graphe des dépendancesDirective « order » valide a b 0 +1, -1, +1 -1, order YA1 order YA2 a forder order YB1 order YA2 b forder 0-1,

28 28 1 - GESTION DES PARCOURS DE L’ESPACE DE YAO 2 - TEST DE VALIDITE DES DIRECTIVES ORDER AIDE A LA GESTION DES PARCOURS DE L’ESPACE SOUS LE LOGICIEL YAO 3 - GENERATION AUTOMATIQUE DES DIRECTIVES ORDER

29 29 2 - TEST DE VALIDITE DES DIRECTIVES ORDER 2.1 – Principe du test 2.2 – Compatibilité du sens de parcours de l’espace et des connexions 2.3 – Prise en compte de l’ordonnancement des modules 2.4 – Prise en compte de l’ordonnancement des boucles 2.6 – Résultats 2.5 – Analyse de la directive order et procédure de test

30 30 Directives ctin Directives order YA1 YB2

31 31 Directives ctin Directives order YB1 YA2

32 32 2 - TEST DE VALIDITE DES DIRECTIVES ORDER 2.1 – Principe du test 2.2 – Compatibilité du sens de parcours de l’espace et des connexions 2.3 – Prise en compte de l’ordonnancement des modules 2.4 – Prise en compte de l’ordonnancement des boucles 2.6 – Résultats 2.5 – Analyse de la directive order et procédure de test

33 33 for i in 1  Ni a b end for order YA1 a b forder Directive orderBoucle « for » Conformité du sens de parcours : test élémentaire i 1, i 2, i3i3 {} Itérations (Ni=3) b1 b1 b2b2 b3b3 a1a1 a2a2 a3a3 Ordre de calcul des modules b2a1 b3a2 nécessite a (-1) ==> b nécessite b2a3 b1a2 nécessite a (+1) ==> b nécessite

34 34 for i in Ni  1 a b end for order YB1 a b forder Directive orderBoucle « for » i 3, i 2, i1i1 {} Itérations (Ni=3) Ordre de calcul des modules b2a1 b3a2 nécessite a (-1) ==> b nécessite b2a3 b1a2 nécessite a (+1) ==> b nécessite b3 b3 b2b2 b1b1 a3a3 a2a2 a1a1 Conformité du sens de parcours : test élémentaire

35 35 for k in 1  Nk for i in Ni  1 for j in Nj  1 order YA3 order YB1 order YB2 Directive orderBoucles « for » Itérations (Ni=3, Nj=3, Nk=3) k 1 i 3 j 3, k 1 i 3 j 2, k 1 i 2 j 2, k 1 i 2 j 3, k 1 i 1 j 3, k 1 i 2 j 1, k 1 i 3 j 1, k 1 i 1 j 2, k 1 i 1 j 1, k 2 i 3 j 2, k 2 i 3 j 1, k 2 i 2 j 3, k 2 i 2 j 2, k 2 i 2 j 1, k 2 i 3 j 3, k 2 i 1 j 2, k 2 i 1 j 1, k 3 i 3 j 1, k 2 i 1 j 3, k 3 i 3 j 2, k 3 i 2 j 3, k 3 i 2 j 2, k 3 i 1 j 2, k 3 i 3 j 3, k 3 i 1 j 3, k3i1j1k3i1j1 k 3 i 2 j 1, { } Conformité du sens de parcours : critère d’arrêt

36 36 m2(i, j, k) = m1(i-1, j-1, k-1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i-1, j, k-1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i-1, j+1, k-1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i+1, j-1, k-1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i+1, j, k-1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i+1, j+1, k-1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i, j-1, k-1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i, j+1, k-1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i, j, k-1) => i 2 j 2 k 2 nécessite k 1 i 3 j 3, k 1 i 3 j 2, k 1 i 2 j 2, k 1 i 2 j 3, k 1 i 1 j 3, k 1 i 2 j 1, k 1 i 3 j 1, k 1 i 1 j 2, k 1 i 1 j 1, k 2 i 3 j 2, k 2 i 3 j 1, k 2 i 2 j 3, k 2 i 2 j 2, k 2 i 2 j 1, k 2 i 3 j 3, k 2 i 1 j 2, k 2 i 1 j 1, k 3 i 3 j 1, k 2 i 1 j 3, k 3 i 3 j 2, k 3 i 2 j 3, k3i2j2,k3i2j2, k 3 i 1 j 2, k 3 i 3 j 3, k 3 i 1 j 3, k3i1j1k3i1j1 k 3 i 2 j 1, { } k1i3j3k1i3j3 k1i3j2k1i3j2 k1i2j2k1i2j2 k1i2j3k1i2j3 k1i1j3k1i1j3 k1i2j1k1i2j1 k1i3j1k1i3j1 k1i1j2k1i1j2 k1i1j1k1i1j1 m1( *, *, k-1) ==> m2 Dépendances possibles entre les modules avec K = -1 Itérations (order YA3 order YB1 order YB2)

37 37 1 – Si le sens de parcours de la première dimension traversée est conforme à la valeur spécifiée dans la connexion, alors l’ordre séquentiel des itérations assure que, quel que soit le sens de parcours des dimensions suivantes, toutes les dépendances seront satisfaites. Arrêt des tests, la connexion est réalisable

38 38 m2(i, j, k) = m1(i-1, j-1, k+1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i-1, j, k+1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i-1, j+1, k+1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i+1, j-1, k+1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i+1, j, k+1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i+1, j+1, k+1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i, j-1, k+1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i, j+1, k+1) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i, j, k+1) => i 2 j 2 k 2 nécessite k 1 i 3 j 3, k 1 i 3 j 2, k 1 i 2 j 2, k 1 i 2 j 3, k 1 i 1 j 3, k 1 i 2 j 1, k 1 i 3 j 1, k 1 i 1 j 2, k 1 i 1 j 1, k 2 i 3 j 2, k 2 i 3 j 1, k 2 i 2 j 3, k2i2j2,k2i2j2, k 2 i 2 j 1, k 2 i 3 j 3, k 2 i 1 j 2, k 2 i 1 j 1, k 3 i 3 j 1, k 2 i 1 j 3, k 3 i 3 j 2, k 3 i 2 j 3, k3i2j2,k3i2j2, k 3 i 1 j 2, k 3 i 3 j 3, k 3 i 1 j 3, k3i1j1k3i1j1 k 3 i 2 j 1, { } m1( *, *, k+1) ==> m2 k3i3j3k3i3j3 k3i3j2k3i3j2 k3i2j2k3i2j2 k3i2j3k3i2j3 k3i1j3k3i1j3 k3i2j1k3i2j1 k3i3j1k3i3j1 k3i1j2k3i1j2 k3i1j1k3i1j1 Dépendances possibles entre les modules avec K = +1 Itérations (order YA3 order YB1 order YB2)

39 39 1 – Si le sens de parcours de la première dimension traversée est conforme à la valeur spécifiée dans la connexion, alors l’ordre séquentiel des itérations assure que, quel que soit le sens de parcours des dimensions suivantes, toutes les dépendances seront satisfaites. Arrêt des tests, la connexion est réalisable 2 – Si le sens de parcours de la première dimension traversée n’est pas conforme à la valeur spécifiée dans la connexion, alors l’ordre séquentiel des itérations assure que, quel que soit le sens de parcours des dimensions suivantes, aucune dépendance ne sera satisfaite. Arrêt des tests : la directive order est invalide

40 40 m2(i, j, k) = m1(i-1, j-1, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i-1, j, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i-1, j+1, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i+1, j-1, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i+1, j, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i+1, j+1, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i, j-1, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i, j+1, k) => i 2 j 2 k 2 nécessite k 1 i 3 j 3, k 1 i 3 j 2, k 1 i 2 j 2, k 1 i 2 j 3, k 1 i 1 j 3, k 1 i 2 j 1, k 1 i 3 j 1, k 1 i 1 j 2, k 1 i 1 j 1, k 2 i 3 j 2, k 2 i 3 j 1, k 2 i 2 j 3, k2i2j2,k2i2j2, k 2 i 2 j 1, k 2 i 3 j 3, k 2 i 1 j 2, k 2 i 1 j 1, k 3 i 3 j 1, k 2 i 1 j 3, k 3 i 3 j 2, k 3 i 2 j 3, k3i2j2,k3i2j2, k 3 i 1 j 2, k 3 i 3 j 3, k 3 i 1 j 3, k3i1j1k3i1j1 k 3 i 2 j 1, { } m1( *, *, 0 ) ==> m2 k2i3j3k2i3j3 k2i3j2k2i3j2 k2i2j3k2i2j3 k2i1j3k2i1j3 k2i2j1k2i2j1 k2i3j1k2i3j1 k2i1j2k2i1j2 k2i1j1k2i1j1 Dépendances possibles entre les modules avec K = 0 Itérations (order YA3 order YB1 order YB2)

41 41 1 – Si le sens de parcours de la première dimension traversée est conforme à la valeur spécifiée dans la connexion, alors l’ordre séquentiel des itérations assure que, quel que soit le sens de parcours des dimensions suivantes, toutes les dépendances seront satisfaites. Arrêt du test : la connexion est réalisable 2 – Si le sens de parcours de la première dimension traversée n’est pas conforme à la valeur spécifiée dans la connexion, alors l’ordre séquentiel des itérations assure que, quel que soit le sens de parcours des dimensions suivantes, aucune dépendance ne sera satisfaite. Arrêt du test : la directive order est invalide 3 – Si la valeur de la connexion est nulle pour la première dimension traversée, alors on ne peut statuer : certaines dépendances pourront être satisfaites et d’autres non. Poursuite du test avec l’axe suivant de la directive order

42 42 m2(i, j, k) = m1(i+1, j-1, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i+1, j, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i+1, j+1, k) => i 2 j 2 k 2 nécessite k 1 i 3 j 3, k 1 i 3 j 2, k 1 i 2 j 2, k 1 i 2 j 3, k 1 i 1 j 3, k 1 i 2 j 1, k 1 i 3 j 1, k 1 i 1 j 2, k 1 i 1 j 1, k 2 i 3 j 2, k 2 i 3 j 1, k 2 i 2 j 3, k2i2j2,k2i2j2, k 2 i 2 j 1, k 2 i 3 j 3, k 2 i 1 j 2, k 2 i 1 j 1, k 3 i 3 j 1, k 2 i 1 j 3, k 3 i 3 j 2, k 3 i 2 j 3, k3i2j2,k3i2j2, k 3 i 1 j 2, k 3 i 3 j 3, k 3 i 1 j 3, k3i1j1k3i1j1 k 3 i 2 j 1, { } m1( +1, *, 0 ) ==> m2 k2i3j3k2i3j3 k2i3j2k2i3j2 k2i3j1k2i3j1 Dépendances possibles entre les modules avec i = +1, k = 0 Itérations (order YA3 order YB1 order YB2)

43 43 1 – Si le sens de parcours de la première dimension traversée est conforme à la valeur spécifiée dans la connexion, alors l’ordre séquentiel des itérations assure que, quel que soit le sens de parcours des dimensions suivantes, toutes les dépendances seront satisfaites. Arrêt du test : la connexion est réalisable 2 – Si le sens de parcours de la première dimension traversée n’est pas conforme à la valeur spécifiée dans la connexion, alors l’ordre séquentiel des itérations assure que, quel que soit le sens de parcours des dimensions suivantes, aucune dépendance ne sera satisfaite. Arrêt du test : la directive order est invalide 3 – Si la valeur de la connexion est nulle pour la première dimension traversée, alors on ne peut statuer : certaines dépendances pourront être satisfaites et d’autres non. Poursuite du test avec l’axe suivant de la directive order

44 44 m2(i, j, k) = m1(i-1, j-1, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i-1, j, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i-1, j+1, k) => i 2 j 2 k 2 nécessite k 1 i 3 j 3, k 1 i 3 j 2, k 1 i 2 j 2, k 1 i 2 j 3, k 1 i 1 j 3, k 1 i 2 j 1, k 1 i 3 j 1, k 1 i 1 j 2, k 1 i 1 j 1, k 2 i 3 j 2, k 2 i 3 j 1, k 2 i 2 j 3, k2i2j2,k2i2j2, k 2 i 2 j 1, k 2 i 3 j 3, k 2 i 1 j 2, k 2 i 1 j 1, k 3 i 3 j 1, k 2 i 1 j 3, k 3 i 3 j 2, k 3 i 2 j 3, k3i2j2,k3i2j2, k 3 i 1 j 2, k 3 i 3 j 3, k 3 i 1 j 3, k3i1j1k3i1j1 k 3 i 2 j 1, { } m1( -1, *, 0 ) ==> m2 k2i1j3k2i1j3 k2i1j2k2i1j2 k2i1j1k2i1j1 Dépendances possibles entre les modules avec i = -1 et k = 0 Itérations (order YA3 order YB1 order YB2)

45 45 1 – Si le sens de parcours de la première dimension traversée est conforme à la valeur spécifiée dans la connexion, alors l’ordre séquentiel des itérations assure que, quel que soit le sens de parcours des dimensions suivantes, toutes les dépendances seront satisfaites. Arrêt du test : la connexion est réalisable 2 – Si le sens de parcours de la première dimension traversée n’est pas conforme à la valeur spécifiée dans la connexion, alors l’ordre séquentiel des itérations assure que, quel que soit le sens de parcours des dimensions suivantes, aucune dépendance ne sera satisfaite. Arrêt du test : la directive order est invalide 3 – Si la valeur de la connexion est nulle pour la première dimension traversée, alors on ne peut statuer : certaines dépendances pourront être satisfaites et d’autres non. Poursuite du test avec l’axe suivant de la directive order

46 46 m2(i, j, k) = m1(i, j-1, k) => i 2 j 2 k 2 nécessite m2(i, j, k) = m1(i, j+1, k) => i 2 j 2 k 2 nécessite k 1 i 3 j 3, k 1 i 3 j 2, k 1 i 2 j 2, k 1 i 2 j 3, k 1 i 1 j 3, k 1 i 2 j 1, k 1 i 3 j 1, k 1 i 1 j 2, k 1 i 1 j 1, k 2 i 3 j 2, k 2 i 3 j 1, k 2 i 2 j 3, k2i2j2,k2i2j2, k 2 i 2 j 1, k 2 i 3 j 3, k 2 i 1 j 2, k 2 i 1 j 1, k 3 i 3 j 1, k 2 i 1 j 3, k 3 i 3 j 2, k 3 i 2 j 3, k3i2j2,k3i2j2, k 3 i 1 j 2, k 3 i 3 j 3, k 3 i 1 j 3, k3i1j1k3i1j1 k 3 i 2 j 1, { } m1( 0, *, 0 ) ==> m2 k2i2j3k2i2j3 k2i2j1k2i2j1 Dépendances possibles entre les modules avec i = 0 et k = 0 Itérations (order YA3 order YB1 order YB2)

47 47 1 – Si le sens de parcours de la première dimension traversée est conforme à la valeur spécifiée dans la connexion, alors l’ordre séquentiel des itérations assure que, quel que soit le sens de parcours des dimensions suivantes, toutes les dépendances seront satisfaites. Arrêt du test : la connexion est réalisable 2 – Si le sens de parcours de la première dimension traversée n’est pas conforme à la valeur spécifiée dans la connexion, alors l’ordre séquentiel des itérations assure que, quel que soit le sens de parcours des dimensions suivantes, aucune dépendance ne sera satisfaite. Arrêt du test : la directive order est invalide 3 – Si la valeur de la connexion est nulle pour la première dimension traversée, alors on ne peut statuer : certaines dépendances pourront être satisfaites et d’autres non. Poursuite du test avec l’axe suivant de la directive order

48 48 m2(i, j, k) = m1(i, j+1, k) => i 2 j 2 k 2 nécessite k 1 i 3 j 3, k 1 i 3 j 2, k 1 i 2 j 2, k 1 i 2 j 3, k 1 i 1 j 3, k 1 i 2 j 1, k 1 i 3 j 1, k 1 i 1 j 2, k 1 i 1 j 1, k 2 i 3 j 2, k 2 i 3 j 1, k 2 i 2 j 3, k2i2j2,k2i2j2, k 2 i 2 j 1, k 2 i 3 j 3, k 2 i 1 j 2, k 2 i 1 j 1, k 3 i 3 j 1, k 2 i 1 j 3, k 3 i 3 j 2, k 3 i 2 j 3, k3i2j2,k3i2j2, k 3 i 1 j 2, k 3 i 3 j 3, k 3 i 1 j 3, k3i1j1k3i1j1 k 3 i 2 j 1, { } m1( 0, +1, 0 ) ==> m2 k2i2j3k2i2j3 Dépendances possibles entre les modules avec i = 0, j = +1 et k = 0 Itérations (order YA3 order YB1 order YB2)

49 49 m2(i, j, k) = m1(i, j-1, k) => i 2 j 2 k 2 nécessite k 1 i 3 j 3, k 1 i 3 j 2, k 1 i 2 j 2, k 1 i 2 j 3, k 1 i 1 j 3, k 1 i 2 j 1, k 1 i 3 j 1, k 1 i 1 j 2, k 1 i 1 j 1, k 2 i 3 j 2, k 2 i 3 j 1, k 2 i 2 j 3, k2i2j2,k2i2j2, k 2 i 2 j 1, k 2 i 3 j 3, k 2 i 1 j 2, k 2 i 1 j 1, k 3 i 3 j 1, k 2 i 1 j 3, k 3 i 3 j 2, k 3 i 2 j 3, k3i2j2,k3i2j2, k 3 i 1 j 2, k 3 i 3 j 3, k 3 i 1 j 3, k3i1j1k3i1j1 k 3 i 2 j 1, { } m1( 0, -1, 0 ) ==> m2 k2i2j1k2i2j1 Dépendances possibles entre les modules avec i = 0, j = -1 et k = 0 Itérations (order YA3 order YB1 order YB2)

50 50 2 - TEST DE VALIDITE DES DIRECTIVES ORDER 2.1 – Principe du test 2.2 – Compatibilité du sens de parcours de l’espace et des connexions 2.3 – Prise en compte de l’ordonnancement des modules 2.4 – Prise en compte de l’ordonnancement des boucles 2.6 – Résultats 2.5 – Analyse de la directive order et procédure de test

51 order Y** m1 forder order Y** m2 forder order Y** m1m2 forder PRISE EN COMPTE DE L’ORDONNANCEMENT DES MODULES Connexion m1 (0, 0, 0) ==> m2 : directives order valides

52 order Y** m2 forder order Y** m1 forder order Y** m2m1 forder PRISE EN COMPTE DE L’ORDONNANCEMENT DES MODULES Connexion m1 (0, 0, 0) ==> m2 : directives order invalides

53 53 2 - TEST DE VALIDITE DES DIRECTIVES ORDER 2.1 – Principe du test 2.2 – Compatibilité du sens de parcours de l’espace et des connexions 2.3 – Prise en compte de l’ordonnancement des modules 2.4 – Prise en compte de l’ordonnancement des boucles 2.6 – Résultats 2.5 – Analyse de la directive order et procédure de test

54 54 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder m1 ( 0, 0, -1) ==> m3 2.3 - PRISE EN COMPTE DES BOUCLES Modules situés dans des boucles différentes

55 55 j 1 i 3 k 3, j 1 i 3 k 2, j 1 i 3 k 1, j 1 i 3 k 3, j 1 i 3 k 1, j 1 i 2 k 3, j 1 i 2 k 2, j 1 i 2 k 1, j 1 i 2 k 3, j 1 i 2 k 1, j 1 i 1 k 3, j 1 i 1 k 2, j 1 i 1 k 1, j 1 i 1 k 3, j 1 i 1 k 1, j 2 i 3 k 3, j 2 i 3 k 2, j 2 i 3 k 1, j 2 i 3 k 3, j 2 i 3 k 1, j 2 i 2 k 3, j 2 i 2 k 2, j 2 i 2 k 1, j 2 i 2 k 3, j 2 i 2 k 1, j 2 i 1 k 3, j 2 i 1 k 2, j 2 i 1 k 1, j 2 i 1 k 3, j 2 i 1 k 1, j 3 i 3 k 3, j 3 i 3 k 2, j 3 i 3 k 1, j 3 i 3 k 3, j 3 i 3 k 1, j 3 i 2 k 3, j 3 i 2 k 2, j 3 i 2 k 1, j 3 i 2 k 3, j 3 i 2 k 1, j 3 i 1 k 3, j 3 i 1 k 2, j 3 i 1 k 1, j 3 i 1 k 3, j 3 i 1 k 1, YA2 YB1 YB3 YA3 m1m3

56 56 j 1 i 3 k 3, j 1 i 3 k 2, j1i3k*j1i3k* j 1 i 3 k 1, j 1 i 2 k 3, j 1 i 2 k 2, j1i2k*j1i2k* j 1 i 2 k 1, j 1 i 1 k 3, j 1 i 1 k 2, j1i1k*j1i1k* j 1 i 1 k 1, j 2 i 3 k 3, j 2 i 3 k 2, j2i3k*j2i3k* j 2 i 3 k 1, j 2 i 2 k 3, j 2 i 2 k 2, j2i2k*j2i2k* j 2 i 2 k 1, j 2 i 1 k 3, j 2 i 1 k 2, j2i1k*j2i1k* j 2 i 1 k 1, j 3 i 3 k 3, j 3 i 3 k 2, j3i3k*j3i3k* j 3 i 3 k 1, j 3 i 2 k 3, j 3 i 2 k 2, j3i2k*j3i2k* j 3 i 2 k 1, j 3 i 1 k 3, j 3 i 1 k 2, j3i1k*j3i1k* j 3 i 1 k 1, YA2 YB1 YB3 YA3 m1m3

57 57 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder m1 ( 0, 0, -1) ==> m3 Il faut tester l’ordonnancement des blocs d’instruction de la dimension pour laquelle le module source et le module cible ne sont pas situés dans la même boucle : test de l’ordonnancement des boucles. 2.3 - PRISE EN COMPTE DES BOUCLES Ordre séquentiel des boucles

58 58 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder m1 ( 0, 0, -1) ==> m3 Invalider la directive order sur la foie du sens de parcours de la troisième dimension est une erreur  test de conformité du sens de parcours inadapté. Le test pertinent ici porte sur l’ordonnancement des boucles dans lesquels sont situés les modules de la connexion. 2.3 - PRISE EN COMPTE DES BOUCLES Valider la directive sur la seule foie de l’ordonnancement des modules est également une erreur  test d’ordonnancement des modules inadapté.

59 59 2 - TEST DE VALIDITE DES DIRECTIVES ORDER 2.1 – Principe du test 2.2 – Compatibilité du sens de parcours de l’espace et des connexions 2.3 – Prise en compte de l’ordonnancement des modules 2.4 – Prise en compte de l’ordonnancement des boucles 2.6 – Résultats 2.5 – Analyse de la directive order et procédure de test

60 60 noDim[0] : dimension du premier axe traversé : i, j ou k noDim[1] : dimension du second axe traversé : i, j ou k noDim[2] : dimension du troisième axe traversé : i, j ou k valDim[0] : sens de parcours du premier axe traversé: -1 ou +1 valDim[1] : sens de parcours du second axe traversé: -1 ou +1 valDim[2] : sens de parcours du troisième axe traversé: -1 ou +1 ANALYSE DE LA DIRECTIVE ORDER Chaque module se voit attribuer les informations relatives à la partie de la directive order où il est intégré. 1 - Test de conformité du sens de parcours : attributs noDim et valDim 2 - Test d’ordonnancement des boucles : attribut noLoop noLoop[0] : numéro de boucle du premier axe traversé: compteur de boucles noLoop[1] : numéro de boucle du second axe traversé: compteur de boucles noLoop[2] : numéro de boucle du troisième axe traversé: compteur de boucles 3 - Test d’ordonnancement des modules : attribut noSeq noSeq : ordre de calcul du module: compteur de modules

61 61 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder noDim[2] = k valDim[2] = +1 noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 noLoop[0] = 1noLoop[1] = 2noLoop[2] = 3 ANALYSE DE LA DIRECTIVE ORDER

62 62 m1.noDim[0] = j m1.valDim[0] = - 1 m1.noLoop[0] = 1 m1.noDim[1] = i m1.valDim[1] = +1 m1.noLoop[1] = 2 m1.noDim[2] = k m1.valDim[2] = +1 m1.noLoop[2] = 3 m1.noSeq = 1 m2.noDim[0] = j m2.valDim[0] = - 1 m2.noLoop[0] = 1 m2.noDim[1] = k m2.valDim[1] = -1 m2.noLoop[1] = 2 m2.noDim[2] = i m2.valDim[2] = +1 m2.noLoop[2] = 3 m2.noSeq = 2 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder noDim[2] = k valDim[2] = +1 noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 noLoop[0] = 1noLoop[1] = 2noLoop[2] = 3 ANALYSE DE LA DIRECTIVE ORDER

63 63 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 noLoop[0] = 1noLoop[1] = 2 ANALYSE DE LA DIRECTIVE ORDER noDim[2] = k valDim[2] = +1 noLoop[2] = 3

64 64 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 noLoop[0] = 1noLoop[1] = 2 ANALYSE DE LA DIRECTIVE ORDER noDim[2] = k valDim[2] = -1 noLoop[2] = 4

65 65 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 noLoop[0] = 1noLoop[1] = 2 ANALYSE DE LA DIRECTIVE ORDER noDim[2] = k valDim[2] = -1 noLoop[2] = 4 m3.noDim[0] = j m3.valDim[0] = - 1 m3.noLoop[0] = 1 m3.noDim[1] = k m3.valDim[1] = -1 m3.noLoop[1] = 2 m3.noDim[2] = i m3.valDim[2] = +1 m3.noLoop[2] = 4 m3.noSeq = 3

66 66 ATTRIBUTS DES MODULES APRES ANALYSE DE LA DIRECTIVE ORDER m1.noDim[0] = j m1.valDim[0] = - 1 m1.noLoop[0] = 1 m1.noDim[1] = i m1.valDim[1] = +1 m1.noLoop[1] = 2 m1.noDim[2] = k m1.valDim[2] = +1 m1.noLoop[2] = 3 m1.noSeq = 1 m2.noDim[0] = j m2.valDim[0] = - 1 m2.noLoop[0] = 1 m2.noDim[1] = k m2.valDim[1] = -1 m2.noLoop[1] = 2 m2.noDim[2] = i m2.valDim[2] = +1 m2.noLoop[2] = 3 m2.noSeq = 2 m3.noDim[0] = j m3.valDim[0] = - 1 m3.noLoop[0] = 1 m3.noDim[1] = k m3.valDim[1] = -1 m3.noLoop[1] = 2 m3.noDim[2] = i m3.valDim[2] = +1 m3.noLoop[2] = 4 m3.noSeq = 3

67 67 ANALYSE DES DIRECTIVES CTIN ctin m3 1 from m2 1 i j k - 1 t ctin m1 2 from m2 2 i j k t ctin m2 2 from m1 5 i - 1 j - 1 k - 1 tm1 (+1, 0, -1) ==> m2

68 68 BS == BC BS < BC SC == 0SC == SO no_axe++ no_axe == nb_axes connexion réalisable order invalide NS < NC attributs m1 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 attributs m2 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 3 noLoop[1] = 2 noLoop[2] = 3 no_axe = 0 début ANALYSE DE LA CONNEXIONm1(+1, 0, ) ==>m2 noSeq = 1 noSeq = 2 NON OUI NON OUI NON

69 69 BS == BC BS < BC SC == 0SC == SO no_axe++ no_axe == nb_axes connexion réalisable order invalide NS < NC attributs m1 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 attributs m2 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 3 noLoop[1] = 2 noLoop[2] = 3 no_axe = 0 début ANALYSE DE LA CONNEXIONm1(+1, 0, ) ==>m2 noSeq = 1 noSeq = 2 NON OUI NON OUI NON

70 70 ANALYSE DES DIRECTIVES CTIN ctin m3 1 from m2 1 i j k - 1 t ctin m1 2 from m2 2 i j k t m2 (0, 0, -1) ==> m3 ctin m2 2 from m1 5 i - 1 j - 1 k - 1 tm1 (+1, 0, -1) ==> m2

71 71 BS == BC BS < BC SC == 0SC == SO no_axe++ no_axe == nb_axes connexion réalisable order invalide NS < NC attributs m2 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 attributs m2 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 3 noLoop[1] = 2 noLoop[2] = 4 no_axe = 0 début ANALYSE DE LA CONNEXIONm2( 0,0,) ==>m3 noSeq = 2 noSeq = 3 NON OUI NON OUI NON OUINON

72 72 BS == BC BS < BC SC == 0SC == SO no_axe++ no_axe == nb_axes connexion réalisable order invalide NS < NC attributs m2 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 attributs m3 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 3 noLoop[1] = 2 noLoop[2] = 4 no_axe = 0 début ANALYSE DE LA CONNEXIONm2 ( 0,0,) ==>m3 noSeq = 2 noSeq = 3 NON OUI NON OUI NON OUINON

73 73 BS == BC BS < BC SC == 0SC == SO no_axe++ no_axe == nb_axes connexion réalisable order invalide NS < NC attributs m2 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 attributs m3 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 3 noLoop[1] = 2 noLoop[2] = 4 no_axe = 0 début ANALYSE DE LA CONNEXIONm2( 0, 0,) ==>m3 noSeq = 2 noSeq = 3 NON OUI NON OUI NON OUINON

74 74 ANALYSE DES DIRECTIVES CTIN ctin m3 1 from m2 1 i j k - 1 t ctin m1 2 from m2 2 i j k t m2 (0, 0, -1) ==> m3 m2 (0, 0, 0) ==> m1 ctin m2 2 from m1 5 i - 1 j - 1 k - 1 tm1 (+1, 0, -1) ==> m2

75 75 BS == BC BS < BC SC == 0SC == SO no_axe++ no_axe == nb_axes connexion réalisable order invalide NS < NC attributs m2 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 attributs m1 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 3 noLoop[1] = 2 noLoop[2] = 3 no_axe = 0 début ANALYSE DE LA CONNEXIONm2( 0,0, 0) ==>m1 noSeq = 3 NON OUI NON OUI NON OUINON

76 76 BS == BC BS < BC SC == 0SC == SO no_axe++ no_axe == nb_axes connexion réalisable order invalide NS < NC attributs m2 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 attributs m1 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 3 noLoop[1] = 2 noLoop[2] = 3 no_axe = 0 début noSeq = 3 ANALYSE DE LA CONNEXIONm2( 0,0, 0) ==>m1 NON OUI NON OUI NON OUINON

77 77 BS == BC BS < BC SC == 0SC == SO no_axe++ no_axe == nb_axes connexion réalisable order invalide NS < NC attributs m2 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 attributs m1 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 3 noLoop[1] = 2 noLoop[2] = 3 no_axe = 0 début noSeq = 2 noSeq = 1 ANALYSE DE LA CONNEXIONm2( 0,0, 0) ==>m1 NON OUI NON OUI NON OUINON

78 78 forder ANALYSE DE LA DIRECTIVE ORDER DIRECTIVE ORDER INVALIDE « connexion m2 ( 0, 0, 0) ==> m1 irréalisable » order YA2 order YB1 order YB3 forder order YA3 order YB1 m3 m1 m2

79 79 noDim[2] = k valDim[2] = +1 I - ANALYSE DE LA DIRECTIVE ORDER noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder

80 80 noDim[2] = k valDim[2] = +1 I - ANALYSE DE LA DIRECTIVE ORDER noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 m1.noDim[0] = j m1.valDim[0] = - 1 m1.noDim[1] = i m1.valDim[1] = +1 m1.noDim[2] = k m1.valDim[2] = +1 m2.noDim[0] = j m2.valDim[0] = - 1 m2.noDim[1] = i m2.valDim[1] = +1 m2.noDim[2] = k m2.valDim[2] = +1 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder

81 81 noDim[2] = k valDim[2] = +1 I - ANALYSE DE LA DIRECTIVE ORDER noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder

82 82 noDim[2] = k valDim[2] = -1 I - ANALYSE DE LA DIRECTIVE ORDER noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder

83 83 noDim[2] = k valDim[2] = -1 I - ANALYSE DE LA DIRECTIVE ORDER noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder m3.noDim[0] = j m3.valDim[0] = - 1 m3.noDim[1] = i m3.valDim[1] = +1 m3.noDim[2] = k m3.valDim[2] = -1

84 84 m1.noDim[0] = j m1.valDim[0] = - 1 m1.noDim[1] = i m1.valDim[1] = +1 m1.noDim[2] = k m1.valDim[2] = +1 m2.noDim[0] = j m2.valDim[0] = - 1 m2.noDim[1] = i m2.valDim[1] = +1 m2.noDim[2] = k m2.valDim[2] = +1 m3.noDim[0] = j m3.valDim[0] = - 1 m3.noDim[1] = i m3.valDim[1] = +1 m3.noDim[2] = k m3.valDim[2] = -1 ATTRIBUTS DES MODULES APRES ANALYSE DE LA DIRECTIVE ORDER

85 85 II - ANALYSE DES DIRECTIVES CTIN ctin m3 1 from m2 1 i j k - 1 t ctin m1 2 from m2 2 i j k t ctin m2 2 from m1 5 i - 1 j - 1 k - 1 t ctin m3 2 from m1 4 i j k + 1 t ctin m2 1 from m1 1 i j k + 1 t ctin m1 1 from m1 2 i - 1 j k - 1 t ctin m3 1 from m1 3 i j k - 1 t m1 (0, 0,+1) ==> m2

86 86 Sens_Connexion == 0 Sens_Connexion = ms(noDim[no_axe]) Sens_Order = ms.valDim[no_axe] Sens_Connexion == Sens_Order no_axe++ Connexion réalisable Order invalide OUI NON OUI NON no_axe = 0 ANALYSE DE LA CONNEXIONm1( 0,0, +1 ) ==>m2 attributs m1 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1

87 87 Sens_Connexion == 0 Sens_Connexion = ms(noDim[no_axe]) Sens_Order = ms.valDim[no_axe] Sens_Connexion == Sens_Order no_axe++ Connexion réalisable Order invalide OUI NON OUI NON no_axe = 0 ANALYSE DE LA CONNEXIONm1( 0,0, attributs m1 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 +1 ) ==>m2

88 88 Sens_Connexion == 0 Sens_Connexion = ms(noDim[no_axe]) Sens_Order = ms.valDim[no_axe] Sens_Connexion == Sens_Order no_axe++ Connexion réalisable Order invalide OUI NON OUI NON no_axe = 0 attributs m1 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 ANALYSE DE LA CONNEXIONm1( 0,0, +1 ) ==>m2

89 89 II - ANALYSE DES DIRECTIVES CTIN ctin m3 1 from m2 1 i j k - 1 t ctin m1 2 from m2 2 i j k t ctin m2 2 from m1 5 i - 1 j - 1 k - 1 t ctin m3 2 from m1 4 i j k + 1 t ctin m2 1 from m1 1 i j k + 1 t ctin m1 1 from m1 2 i - 1 j k - 1 t ctin m3 1 from m1 3 i j k - 1 t m1 (0, 0,+1) ==> m2 m1 (-1, 0,-1) ==> m1

90 90 Sens_Connexion == 0 Sens_Connexion = ms(noDim[no_axe]) Sens_Order = ms.valDim[no_axe] Sens_Connexion == Sens_Order no_axe++ Connexion réalisable Order invalide OUI NON OUI NON no_axe = 0 ANALYSE DE LA CONNEXIONm1(,0, ) ==>m1 attributs m1 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1

91 91 Sens_Connexion == 0 Sens_Connexion = ms(noDim[no_axe]) Sens_Order = ms.valDim[no_axe] Sens_Connexion == Sens_Order no_axe++ Connexion réalisable Order invalide OUI NON OUI NON no_axe = 0 Order invalide NON ANALYSE DE LA CONNEXIONm1(,0, ) ==>m1 attributs m1 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1

92 92 ANALYSE DE LA DIRECTIVE ORDER DIRECTIVE ORDER INVALIDE « connexion m1 (-1, 0, -1) ==> m1 irréalisable » order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder

93 93 II - ANALYSE DES DIRECTIVES CTIN ctin m3 1 from m2 1 i j k - 1 t ctin m1 2 from m2 2 i j k t ctin m2 2 from m1 5 i - 1 j - 1 k - 1 t ctin m3 2 from m1 4 i j k + 1 t ctin m2 1 from m1 1 i j k + 1 t ctin m1 1 from m1 2 i - 1 j k - 1 t ctin m3 1 from m1 3 i j k - 1 t m1 (0, 0,+1) ==> m2 m1 (-1, 0,-1) ==> m1 m1 ( 0, 0, -1) ==> m3

94 94 Sens_Connexion == 0 Sens_Connexion = ms(noDim[no_axe]) Sens_Order = ms.valDim[no_axe] Sens_Connexion == Sens_Order no_axe++ Connexion réalisable Order invalide OUI NON OUI NON no_axe = 0 ANALYSE DE LA CONNEXIONm1( 0,0, ) ==>m3 attributs m1 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1

95 95 Sens_Connexion == 0 Sens_Connexion = ms(noDim[no_axe]) Sens_Order = ms.valDim[no_axe] Sens_Connexion == Sens_Order no_axe++ Connexion réalisable Order invalide OUI NON OUI NON no_axe = 0 ANALYSE DE LA CONNEXIONm1( 0,0, ) ==>m3 attributs m1 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1

96 96 Sens_Connexion == 0 Sens_Connexion = ms(noDim[no_axe]) Sens_Order = ms.valDim[no_axe] Sens_Connexion == Sens_Order no_axe++ Connexion réalisable Order invalide OUI NON OUI NON no_axe = 0 ANALYSE DE LA CONNEXIONm1( 0,0, ) ==>m3 attributs m1 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1

97 97 Sens_Connexion == 0 Sens_Connexion = ms(noDim[no_axe]) Sens_Order = ms.valDim[no_axe] Sens_Connexion == Sens_Order no_axe++ Connexion réalisable Order invalide OUI NON OUI NON no_axe = 0 ANALYSE DE LA CONNEXIONm1( 0,0, ) ==>m3 attributs m1 valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1

98 98 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder noDim[2] = k valDim[2] = +1 ANALYSE DE LA DIRECTIVE ORDER noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 noLoop[0] = 1noLoop[1] = 2noLoop[2] = 3

99 99 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder noDim[2] = k valDim[2] = +1 ANALYSE DE LA DIRECTIVE ORDER noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 noLoop[0] = 1noLoop[1] = 2noLoop[2] = 3 m1.noDim[0] = j m1.valDim[0] = - 1 m1.noLoop[0] = 1 m1.noDim[1] = i m1.valDim[1] = +1 m1.noLoop[1] = 2 m1.noDim[2] = k m1.valDim[2] = +1 m1.noLoop[2] = 3 m2.noDim[0] = j m2.valDim[0] = - 1 m2.noLoop[0] = 1 m2.noDim[1] = i m2.valDim[1] = + 1 m2.noLoop[1] = 2 m2.noDim[2] = k m2.valDim[2] = +1 m2.noLoop[2] = 3

100 100 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder ANALYSE DE LA DIRECTIVE ORDER noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 noLoop[0] = 1noLoop[1] = 2 noDim[2] = k valDim[2] = +1 noLoop[2] = 3

101 101 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder ANALYSE DE LA DIRECTIVE ORDER noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 noLoop[0] = 1noLoop[1] = 2 noDim[2] = k valDim[2] = -1 noLoop[2] = 4

102 102 m3.noDim[0] = j m3.valDim[0] = - 1 m3.noLoop[0] = 1 m3.noDim[1] = i m3.valDim[1] = +1 m3.noLoop[1] = 2 m3.noDim[2] = k m3.valDim[2] = -1 m3.noLoop[2] = 4 order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder ANALYSE DE LA DIRECTIVE ORDER noDim[1] = i valDim[1] = +1 noDim[0] = j valDim[0] = -1 noLoop[0] = 1noLoop[1] = 2 noDim[2] = k valDim[2] = -1 noLoop[2] = 4

103 103 ATTRIBUTS DES MODULES APRES ANALYSE DE LA DIRECTIVE ORDER m1.noDim[0] = j m1.valDim[0] = - 1 m1.noLoop[0] = 1 m1.noDim[1] = i m1.valDim[1] = +1 m1.noLoop[1] = 2 m1.noDim[2] = k m1.valDim[2] = +1 m1.noLoop[2] = 3 m2.noDim[0] = j m2.valDim[0] = - 1 m2.noLoop[0] = 1 m2.noDim[1] = i m2.valDim[1] = +1 m2.noLoop[1] = 2 m2.noDim[2] = k m2.valDim[2] = +1 m2.noLoop[2] = 3 m3.noDim[0] = j m3.valDim[0] = - 1 m3.noLoop[0] = 1 m3.noDim[1] = k m3.valDim[1] = -1 m3.noLoop[1] = 2 m3.noDim[2] = i m3.valDim[2] = +1 m3.noLoop[2] = 4

104 104 II - ANALYSE DES DIRECTIVES CTIN ctin m3 1 from m2 1 i j k - 1 t ctin m1 2 from m2 2 i j k t ctin m2 2 from m1 5 i - 1 j - 1 k - 1 t ctin m3 2 from m1 4 i j k + 1 t ctin m2 1 from m1 1 i j k + 1 t ctin m1 1 from m1 2 i - 1 j k - 1 t ctin m3 1 from m1 3 i j k - 1 t m1 (0, 0,+1) ==> m2 m1 (-1, 0,-1) ==> m1 m1 ( 0, 0, -1) ==> m3

105 105 ANALYSE DE LA CONNEXION Sens_Connexion == 0 Sens_O = ms.valDim[no_axe] Sens_C == Sens_O no_axe++ Connexion réalisable Order invalide attributs m1 OUI NON OUI NON no_axe = 0 Sens_C = ms( ms.noDim[no_axe]) ==> mc valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 m1( 0, 0, ) ==>m3 attributs m3 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 3 noLoop[1] = 2 noLoop[2] = 4 BS = ms.noLoop[no_axe] / BC = mc.noLoop[no_axe] BS == BC BS < BC OUI NON OUI

106 106 ANALYSE DE LA CONNEXION Sens_Connexion == 0 Sens_O = ms.valDim[no_axe] Sens_C == Sens_O no_axe++ Connexion réalisable Order invalide attributs m1 OUI NON OUI NON no_axe = 0 Sens_C = ms( ms.noDim[no_axe]) ==> mc valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 m1( 0, 0, ) ==>m3 attributs m3 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 3 noLoop[1] = 2 noLoop[2] = 4 BS = ms.noLoop[no_axe] / BC = mc.noLoop[no_axe] BS == BC BS < BC OUI NON OUI

107 107 ANALYSE DE LA CONNEXION Sens_Connexion == 0 Sens_O = ms.valDim[no_axe] Sens_C == Sens_O no_axe++ attributs m1 OUI NON OUI NON no_axe = 0 Sens_C = ms(ms.noDim[no_axe]) ==> mc valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 m1( 0,0,) ==>m3 attributs m3 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 3 noLoop[1] = 2 noLoop[2] = 4 BS == BC OUI NON BS = ms.noLoop[no_axe] / BC = mc.noLoop[no_axe] Order invalide BS < BC NON OUI Connexion réalisable

108 108 II - ANALYSE DES DIRECTIVES CTIN ctin m3 1 from m2 1 i j k - 1 t ctin m1 2 from m2 2 i j k t ctin m2 2 from m1 5 i - 1 j - 1 k - 1 t ctin m2 2 from m3 1 i j k + 1 t m3 ( 0, 0, +1) ==> m2 ctin m2 1 from m1 1 i j k + 1 t ctin m1 1 from m1 2 i - 1 j k - 1 t ctin m3 1 from m1 3 i j k - 1 t m1 (0, 0,+1) ==> m2 m1 (-1, 0,-1) ==> m1 m1 ( 0, 0, -1) ==> m3

109 109 ANALYSE DE LA CONNEXION Sens_Connexion == 0 Sens_O = ms.valDim[no_axe] Sens_C == Sens_O no_axe++ Connexion réalisable Order invalide attributs m3 OUI NON OUI NON no_axe = 0 Sens_C = ms( ms.noDim[no_axe]) ==> mc valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 m3( 0, 0, +1) ==>m2 attributs m2 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 4 noLoop[1] = 2 noLoop[2] = 3 BS = ms.noLoop[no_axe] / BC = mc.noLoop[no_axe] BS == BC BS < BC OUI NON OUI

110 110 ANALYSE DE LA CONNEXION Sens_Connexion == 0 Sens_O = ms.valDim[no_axe] Sens_C == Sens_O no_axe++ Connexion réalisable attributs m3 OUI NON OUI NON no_axe = 0 Sens_C = ms( ms.noDim[no_axe]) ==> mc valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 m3( 0, 0, +1 ) ==>m2 attributs m2 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 4 noLoop[1] = 2 noLoop[2] = 3 BS = ms.noLoop[no_axe] / BC = mc.noLoop[no_axe] BS == BC OUI NON Order invalide BS < BC NON OUI

111 111 ANALYSE DE LA CONNEXION Sens_Connexion == 0 Sens_O = ms.valDim[no_axe] Sens_C == Sens_O no_axe++ attributs m3 OUI NON OUI NON no_axe = 0 Sens_C = ms(ms.noDim[no_axe]) ==> mc valDim[0] = -1 noDim[0] = j noDim[1] = i noDim[2] = k valDim[1] = +1 valDim[2] = +1 m3( 0,0, +1 ) ==>m2 attributs m2 noLoop[0] = 1 noLoop[1] = 2 noLoop[2] = 4 noLoop[1] = 2 noLoop[2] = 3 BS == BC OUI NON BS = ms.noLoop[no_axe] / BC = mc.noLoop[no_axe] Order invalide BS < BC NON OUI Connexion réalisable

112 112 ANALYSE DE LA DIRECTIVE ORDER DIRECTIVE ORDER INVALIDE « connexion m3 ( 0, 0, -1) ==> m2 irréalisable » order YA2 order YB1 order YB3 m1 m2 forder order YA3 m3 forder

113 113 2 - TEST DE VALIDITE DES DIRECTIVES ORDER 2.1 – Principe du test 2.2 – Compatibilité du sens de parcours de l’espace et des connexions 2.3 – Prise en compte de l’ordonnancement des modules 2.4 – Prise en compte de l’ordonnancement des boucles 2.6 – Résultats 2.5 – Analyse de la directive order et procédure de test

114 114 1 - GESTION DES PARCOURS DE L’ESPACE DE YAO 2 - TEST DE VALIDITE DES DIRECTIVES ORDER AIDE A LA GESTION DES PARCOURS DE L’ESPACE SOUS LE LOGICIEL YAO 3 - GENERATION AUTOMATIQUE DES DIRECTIVES ORDER

115 115 3.4 - Définition du sens de parcours des axes 3.5 - Définition de l’ordre de calcul des modules 3.1 - Supprimer les dépendances simples 3.2 - Supprimer les dépendances mutuelles 3.3 - Information retenue sur les graphes 3.7 - Parcours complet d’un espace 3.8 - Résultats - Perspectives 3.6 - Phase itérative et phase récursive 3 - GENERATION AUTOMATIQUE DES DIRECTIVES ORDER

116 116 Maillage Graphe Connexions d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c a c d b a ( ) ==> b b (, ) ==> c 0 d (, ) ==> a +1, 0 +1, +1 -1, +1 -1, b ( ) ==> c SENS DE PARCOURS COMMUN

117 117 Maillage Graphe Connexions d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c c d b d (, ) ==> c +1 c (, ) ==> b +1 +1, -1, 1 2 3 b (, ) ==> a +1 a ABSENCE DE SENS DE PARCOURS COMMUN +1,

118 118 3.4 - Définition du sens de parcours des axes 3.5 - Définition de l’ordre de calcul des modules 3.1 - Supprimer les dépendances simples 3.2 - Supprimer les dépendances mutuelles 3.3 - Information retenue sur les graphes 3.7 - Parcours complet d’un espace 3.8 - Résultats - Perspectives 3.6 - Phase itérative et phase récursive 3 - GENERATION AUTOMATIQUE DES DIRECTIVES ORDER

119 119 a c d b 0, 0, 0, -1, -1 COMPOSANTE FORTEMENT CONNEXE (CFC) 1 – Les modules d’une CFC sont forcément situés dans le même nid de boucles 2 – La dépendance

120 120 Maillage Graphe Connexions d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c a c d b a () ==> d b (,) ==> a 0 c (,) ==> d 0 d (,) ==> c +1, 0 +1 0, 0, 0, -1, COMPOSANTE FORTEMENT CONNEXE (CFC)

121 121 Maillage Graphe Connexions d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c a c d b a () ==> d b (,) ==> a 0 c (,) ==> d 0 d (,) ==> c +1, 0 +1 0, 0, 0, -1, COMPOSANTE FORTEMENT CONNEXE (CFC) a () ==> d b () ==> a c () ==> d

122 122 Maillage Graphe Connexions COMPOSANTE FORTEMENT CONNEXE (CFC) d a b c d a b c d a b c a c d b a () ==> d b () ==> a c () ==> d

123 123 Maillage Graphe Connexions d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c a c d b 0, -1, -1, 0, 0, a ( ) ==> d, +1 d ( ) ==> c, 0 c ( ) ==> d, 0 c ( ) ==> b, b ( ) ==> a, 0 a ( ) ==> b, 0 CFC IMBRIQUEES COMPATIBLES

124 124 Maillage Graphe Connexions d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c a c d b d ( ) ==> c c ( ) ==> d b ( ) ==> a a ( ) ==> b CFC IMBRIQUEES COMPATIBLES

125 125 Maillage Graphe Connexions d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c a c d b +1 0, -1, -1, 0, +1 0, a ( ) ==> d, d ( ) ==> c, 0 +1 c ( ) ==> d, 0 +1 c ( ) ==> b, b ( ) ==> a, 0 a ( ) ==> b, 0 CFC IMBRIQUEES INCOMPATIBLES

126 126 Maillage Graphe Connexions d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c a c d b +1 +1 d ( ) ==> c +1 c ( ) ==> d +1 b ( ) ==> a a ( ) ==> b CFC IMBRIQUEES INCOMPATIBLES

127 127 Maillage Graphe Connexions d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c a c d b +1 0, -1, 0, 0, +1 0, a ( ) ==> d, 0 d ( ) ==> c, 0 +1 c ( ) ==> d, 0 +1 c ( ) ==> b, b ( ) ==> a, 0 a ( ) ==> b, 0 CFC IMBRIQUEES INCOMPATIBLES ORDONNANCEES

128 128 Maillage Graphe Connexions d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c a c d b +1 +1 d ( ) ==> c +1 c ( ) ==> d +1 b ( ) ==> a a ( ) ==> b a ( ) ==> d CFC IMBRIQUEES INCOMPATIBLES ORDONNANCEES

129 129 3.4 - Définition du sens de parcours des axes 3.5 - Définition de l’ordre de calcul des modules 3.1 - Supprimer les dépendances simples 3.2 - Supprimer les dépendances mutuelles 3.3 - Information retenue sur les graphes 3.7 - Parcours complet d’un espace 3.8 - Résultats - Perspectives 3.6 - Phase itérative et phase récursive 3 - GENERATION AUTOMATIQUE DES DIRECTIVES ORDER

130 130 CFC3D i = -1 j = -1 k = +1 c a 0, -1, b CFC3D i = -1 j = 0 k = 0 c a b CFC3D i = -1 j = 2 k = 2 c a b 1 - Sens de parcours défini 2 - Sens de parcours libre 3 - Sens de parcours indéfini -1, +1 0 0, 0 -1,0,0 -1, +1, 0,-1,+1 0,-1,+1 0, 0 -1, +1,

131 131 CFC3D j = -1 i = 2 k = 2 c a +1, b CFC3D j = -1 k = +1 i = 2 CFC3D k = +1 i = 2 j = 2 0,+1 -1, +1 +1, -1, 0 +1 +1, 0 -1, c a b c a b CFC3D i = -1 j = -1 k = +1 c a 0, b CFC3D i = -1 j = 2 k = 2 CFC3D i = -1 k = +1 j = 2 -1, +1 +1, +1 -1, -1, +1, +1 0, -1, 0 +1 c a 0, b c a b

132 132 CFC3D i = 0 j = 0 k = -1 CFC2D j = 0 k = -1 CFC1D k = -1 mod : a b Une structure par dimension a b 0,0,0 0,0,-1 a b 0,0 0,-1 a b 0

133 133 3.4 - Définition du sens de parcours des axes 3.5 - Définition de l’ordre de calcul des modules 3.1 - Supprimer les dépendances simples 3.2 - Supprimer les dépendances mutuelles 3.3 - Information retenue sur les graphes 3.7 - Parcours complet d’un espace 3.8 - Résultats - Perspectives 3.6 - Phase itérative et phase récursive 3 - GENERATION AUTOMATIQUE DES DIRECTIVES ORDER

134 134 b d a c -1, -1, 0, 0, 0, +1 -1, -1, 0, +10, +10, +1, 0, +1, 0, +1 -1, CFC3D j = -1

135 135 b d a c 0, 0, -1, +1 0, +1 +1, +1, +1 -1, CFC3D j = -1 i = 2 k = 2

136 136 b d a c 0, 0, -1, +1 0, +1 0, +1 +1,+1,-1, +1 CFC2D i = -1 CFC2D k = 2 i = +1 k = 2

137 137 b d a c +1 CFC1D k = +1 k = -1 k = +1 mod : a mod : b CFC1D mod : d CFC1D mod : c

138 138 CFC3D j = -1 i = 2 k = 2 CFC2D i = -1 k = 2 CFC2D i = +1 k = 2 CFC1D k = +1 CFC1D k = -1 CFC1D k = -1 CFC1D k = +1 order YA2 forder order YA1 forder order YB3 a forder order YA3 d forder order YB1 forder order YA3 b forder order YB3 c forder mod : amod : dmod : bmod : c

139 139 b d a c -1, -1, 0, 0, 0, -1, +1 0, -1,-1, 0, +10, +10, +1, 0,+1, 0,-1, +1 0, CFC3D i = -1 j = 2 k = 2

140 140 b d a c 0, 0, -1, +1 0, +1 0, +1 +1,+1,-1, +1 CFC2D j = -1 CFC2D k = 2 j = +1 k = 2

141 141 b d a c +1 CFC1D k = +1 k = -1 k = +1 mod : a mod : b CFC1D mod : d CFC1D mod : c

142 142 CFC3D i = -1 j = 2 k = 2 CFC2D j = -1 k = 2 CFC2D j = +1 k = 2 CFC1D k = +1 CFC1D k = -1 CFC1D k = -1 CFC1D k = +1 order YA1 forder order YA2 forder order YB3 a forder order YA3 d forder order YB2 forder order YA3 b forder order YB3 c forder mod : amod : dmod : bmod : c

143 143 3.4 - Définition du sens de parcours des axes 3.5 - Définition de l’ordre de calcul des modules 3.1 - Supprimer les dépendances simples 3.2 - Supprimer les dépendances mutuelles 3.3 - Information retenue sur les graphes 3.7 - Parcours complet d’un espace 3.8 - Résultats - Perspectives 3.6 - Phase itérative et phase récursive 3 - GENERATION AUTOMATIQUE DES DIRECTIVES ORDER

144 144 b f a c -1, -1, 0, 0, 0 0 +1 0,+1, +1 0, CFC3D i = -1 j = 2 k = 2 d 0, 0,-1, 0, e +1 0, 0

145 145 b c 0,0 +1 CFC2D j = -1 k = 2 d 0, -1, d CFC1D k = 0 b c 0+1 CFC1D k = +1 mod : d mod : c b

146 146 f a 0, +1, +1 e 0,+10,0 CFC2D j = +1 k = 2 CFC1D k = +1 mod : f e f e +10 a CFC1D k = 0 mod : a

147 147 CFC3D i = -1 j = 2 k = 2 CFC2D j = -1 k = 2 CFC1D k = 0 mod : d CFC1D k = +1 mod : c b CFC2D j = +1 k = 2 CFC1D k = +1 mod : f e CFC1D k = 0 mod : a order YA1 forder order YA2 forder order Y*3 d forder order YB3 c b forder order YB2 forder order YB3 f e forder order Y*3 a forder

148 148 3.4 - Définition du sens de parcours des axes 3.5 - Définition de l’ordre de calcul des modules 3.6 - Phase itérative et phase récursive 3.1 - Supprimer les dépendances simples 3.2 - Supprimer les dépendances mutuelles 3.3 - Information retenue sur les graphes 3.7 - Parcours complet d’un espace 3.8 - Résultats - Perspectives 3 - GENERATION AUTOMATIQUE DES DIRECTIVES ORDER

149 149 Recherche d1 s1 Fixation CFC3D Réduction CFC3D Fixé Tri CFC2D Pour chaque CFC2D Recherche d2 s2 Si s2 est défini Recherche d2 s2 Fixation CFC 2D Fixation CFC 3D Recherche d3 s3 Si s2 est défini Fixation CFC 3D Recherche d3 s3 Si s3 est défini Fixation CFC 2D Réduction CFC2D Fixé Tri CFC1D Pour chaque CFC1D Recherche s3 Fixation CFC 1D Tri CFC1D Phase itérative Phase récursive

150 150 b f a c +1, 0 0, +1, 0 0, +1, 0, 0, 0 CFC3D i = -1 j = +1 k = -1 d 0, 0, 0, e 0, 0, -1, -1,

151 151 b f a c +1, 0 0, +1, 0 0, +1, 0, 0, 0 CFC3D i = -1 d 0,0 0, e 0 0, -1, -1,

152 152 f a +1, 0 0, 0 e 0, CFC2D j = +1 a CFC1D k = 0 mod : a f e 0 CFC1D k = -1 mod : e f

153 153 b c +1, 0, d 0, 0, CFC2D j = +1 b CFC1D k = 0 mod : b c d 0 CFC1D k = -1 mod : d c

154 154 CFC3D i = -1 CFC2D j = +1 CFC2D j = +1 CFC1D k = 0 mod : a CFC1D k = -1 mod : e f CFC1D k = 0 mod : b CFC1D k = -1 mod : d c order YA1 forder order YB2 forder order Y*3 a forder order YA3 e f forder order YB2 forder order Y*3 b forder order YA3 d c forder

155 155 CFC3D i = -1 j = +1 k = -1 CFC2D j = +1 k = -1 CFC2D j = +1 k = -1 CFC1D k = -1 CFC1D k = -1 CFC1D k = -1 CFC1D k = -1 order YA1 order YB2 forder order YA3 a forder mod : a mod : e fmod : bmod : d c e fbd c

156 156 order YA1 order YA2 forder order YB3 a forder e fbd c order YA1 forder order YB2 forder order Y*3 a forder order YA3 e f forder order YB2 forder order Y*3 b forder order YA3 d c forder Lecture exhaustive des CFCLecture partielle des CFC

157 157 For i:1  Ni For j:Nj  1 End for For k:1  Nk a End for e fbd c For i:1  Ni End for For j:Nj  1 End for For k:1  Nk a End for For k:1  Nk e f End for For j:Nj  1 End for For k:1  Nk b End for For k:1  Nk d c End for Lecture exhaustive des CFCLecture partielle des CFC

158 158 3.4 - Définition du sens de parcours des axes 3.5 - Définition de l’ordre de calcul des modules 3.1 - Supprimer les dépendances simples 3.2 - Supprimer les dépendances mutuelles 3.3 - Information retenue sur les graphes 3.7 - Parcours complet d’un espace 3.8 - Résultats - Perspectives 3.6 - Phase itérative et phase récursive 3 - GENERATION AUTOMATIQUE DES DIRECTIVES ORDER

159 159 Graphe de l’espace a b c d e m no p q f g hi j k l r

160 160 3.4 - Définition du sens de parcours des axes 3.5 - Définition de l’ordre de calcul des modules 3.1 - Supprimer les dépendances simples 3.2 - Supprimer les dépendances mutuelles 3.3 - Information retenue sur les graphes 3.7 - Parcours complet d’un espace 3.8 - Résultats - Perspectives 3.6 - Phase itérative et phase récursive 3 - GENERATION AUTOMATIQUE DES DIRECTIVES ORDER

161 161 Graphe a b c d e m no p q f g hi j k l r

162 162 m no a -1,-1, 0, -1, 0,+1, 0,0+1, 0 +1, -1, +1 CFC3D j = -1 k = -1 i = +1 m no a -1, +1, 0 Graphe de la CFC 3D Fixée

163 163 o a -1, 0+1, +1 CFC2D k = -1 i = +1 a o CFC1D i = 0 mod : a CFC1D i = 0 mod : o

164 164 m CFC2D m CFC1D k = 0 mod : m n CFC2D n CFC1D k = 0 mod : n i = 0 k = 0 i = 0 k = 0

165 165 CFC1D i = 0 mod : o CFC1D i = 0 mod : a CFC2D k = -1 i = +1 CFC1D k = 0 mod : m CFC1D k = 0 mod : n CFC2D i = 0 k = 0 CFC2D i = 0 k = 0 CFC3D j = -1 k = -1 i = +1 order YA2 order YA3 forder order YB1 o forder amn


Télécharger ppt "1 1 - GESTION DES PARCOURS DE L’ESPACE DE YAO 2 - TEST DE VALIDITE DES DIRECTIVES ORDER AIDE A LA GESTION DES PARCOURS DE L’ESPACE SOUS LE LOGICIEL YAO."

Présentations similaires


Annonces Google