Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parGiselle Baudry Modifié depuis plus de 9 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.