diff --git a/slides/cours_19.md b/slides/cours_19.md
new file mode 100644
index 0000000000000000000000000000000000000000..6650ceb865b810c781302870e5e9455f4a3de150
--- /dev/null
+++ b/slides/cours_19.md
@@ -0,0 +1,893 @@
+---
+title: "Arbres AVL"
+date: "2025-03-28"
+---
+
+# Rappel: Algorithme d'insertion
+
+* Insérer le noeud comme d'habitude.
+* Mettre à jour les facteurs d'équilibre jusqu'à la racine (ou au premier
+  noeud déséquilibré).
+* Rééquilibrer le noeud si nécessaire.
+
+# Rappel: les cas de déséquilibre
+
+::: columns
+
+:::: column
+
+## Cas 1a
+
+* `u`, `v`, `w` même hauteur.
+* déséquilibre en `B` après insertion dans `u`
+
+![Après insertion](figs/cas1a_gauche.png)
+
+::::
+
+:::: column
+
+## Cas 1a
+
+* Comment rééquilibrer?
+
+. . .
+
+* ramène `u`, `v` `w` à la même hauteur.
+* `v` à droite de `A` (gauche de `B`)
+
+![Après équilibrage](figs/cas1a_droite.png)
+
+::::
+
+:::
+
+# Rappel: Les cas de déséquilibre
+
+
+::: columns
+
+:::: column
+
+## Cas 2a
+
+* `h(v1)=h(v2), h(u)=h(w)`.
+* déséquilibre en `C` après insertion dans `v2`
+
+![Après insertion](figs/cas2a_gauche.png)
+
+::::
+
+:::: column
+
+## Cas 2a
+
+* Comment rééquilibrer?
+
+. . .
+
+* ramène `u`, `v2`, `w` à la même hauteur (`v1` pas tout à fait).
+* `v2` à droite de `B` (gauche de `C`)
+* `B` à droite de `A` (gauche de `C`)
+* `v1` à droite de `A` (gauche de `B`)
+
+![Après équilibrage](figs/cas2a_droite.png)
+
+::::
+
+:::
+
+# Rappel: Rééquilibrage
+
+## Rotation simple
+
+![On verra un peu après les rotations.](figs/rotation_gauche_droite.png)
+
+# Rappel: La rotation gauche-droite
+
+## Le cas 2a/b
+
+![La double rotation de l'enfer.](figs/double_rotation_gauche_droite.png)
+
+# Un petit exercice
+
+* Insérer les nœuds suivants dans un arbre AVL
+
+```
+25 | 60 | 35 | 10 | 5 | 20 | 65 | 45 | 70 | 40 
+    | 50 | 55 | 30 | 15
+```
+
+```
+
+
+
+
+
+
+
+
+
+
+```
+
+# La suppression dans un arbre AVL
+
+\Huge La suppression dans un arbre AVL
+
+# Suppression dans un arbre AVL
+
+::: columns
+
+:::: column
+
+## Algorithme par problème: supprimer 10
+
+```{.mermaid format=pdf width=400 loc=figs/}
+graph TD;
+    id0((8))-->id1((4));
+    id0-->id2((10));
+    id1-->id3((2));
+    id1-->id4((6));
+    id3-->id5((1));
+    id3-->id6((  ))
+    id4-->id7((  ))
+    id4-->id8((7))
+    id2-->id9((9))
+    id2-->id10((14))
+    id10-->id11((12))
+    id10-->id12((16))
+    style id6 fill:#fff,stroke:#fff
+    style id7 fill:#fff,stroke:#fff
+```
+
+::::
+
+:::: column
+
+. . .
+
+## Algorithme par problème: supprimer 10
+
+```{.mermaid format=pdf width=400 loc=figs/}
+graph TD;
+    id0((8))-->id1((4));
+    id0-->id2((12));
+    id1-->id3((2));
+    id1-->id4((6));
+    id3-->id5((1));
+    id3-->id6((  ))
+    id4-->id7((  ))
+    id4-->id8((7))
+    id2-->id9((9))
+    id2-->id10((14))
+    id10-->id11((  ))
+    id10-->id12((16))
+    style id6 fill:#fff,stroke:#fff
+    style id7 fill:#fff,stroke:#fff
+    style id11 fill:#fff,stroke:#fff
+```
+
+::::
+
+:::
+
+# Suppression dans un arbre AVL
+
+
+::: columns
+
+:::: column
+
+## Algorithme par problème: supprimer 8
+
+```{.mermaid format=pdf width=400 loc=figs/}
+graph TD;
+    id0((8))-->id1((4));
+    id0-->id2((12));
+    id1-->id3((2));
+    id1-->id4((6));
+    id3-->id5((1));
+    id3-->id6((  ))
+    id4-->id7((  ))
+    id4-->id8((7))
+    id2-->id9((9))
+    id2-->id10((14))
+    id10-->id11((  ))
+    id10-->id12((16))
+    style id6 fill:#fff,stroke:#fff
+    style id7 fill:#fff,stroke:#fff
+    style id11 fill:#fff,stroke:#fff
+```
+
+::::
+
+:::: column
+
+. . .
+
+## Algorithme par problème: rotation de 12
+
+```{.mermaid format=pdf width=400 loc=figs/}
+graph TD;
+    id0((9))-->id1((4));
+    id0-->id2((12));
+    id1-->id3((2));
+    id1-->id4((6));
+    id3-->id5((1));
+    id3-->id6((  ))
+    id4-->id7((  ))
+    id4-->id8((7))
+    id2-->id9((  ))
+    id2-->id10((14))
+    id10-->id11((  ))
+    id10-->id12((16))
+    style id6 fill:#fff,stroke:#fff
+    style id7 fill:#fff,stroke:#fff
+    style id9 fill:#fff,stroke:#fff
+    style id11 fill:#fff,stroke:#fff
+```
+
+::::
+
+:::
+
+# Suppression dans un arbre AVL
+
+::: columns
+
+:::: column
+
+## Algorithme par problème: rotation de 12
+
+```{.mermaid format=pdf width=400 loc=figs/}
+graph TD;
+    id0((9))-->id1((4));
+    id0-->id2((14));
+    id1-->id3((2));
+    id1-->id4((6));
+    id3-->id5((1));
+    id3-->id6((  ))
+    id4-->id7((  ))
+    id4-->id8((7))
+    id2-->id9((12))
+    id2-->id10((16))
+    style id6 fill:#fff,stroke:#fff
+    style id7 fill:#fff,stroke:#fff
+```
+
+::::
+
+:::: column
+
+. . .
+
+1. On supprime comme d'habitude.
+2. On rééquilibre si besoin à l'endroit de la suppression.
+
+* Facile non?
+
+. . .
+
+* Plus dur....
+
+::::
+
+:::
+
+# Suppression dans un arbre AVL 2.0
+
+::: columns
+
+:::: column
+
+## Algorithme par problème: suppression de 30
+
+```{.mermaid format=pdf width=400 loc=figs/}
+graph TD;
+    id0((50))-->id1((30));
+    id0-->id2((100));
+    id1-->id3((10));
+    id1-->id4((40));
+    id3-->id5((  ));
+    id3-->id6((20))
+    id2-->id7((80))
+    id2-->id8((200))
+    id7-->id9((70))
+    id7-->id10((90))
+    id9-->id11((60))
+    id9-->id12((  ))
+    id8-->id13((  ))
+    id8-->id14((300))
+    style id5 fill:#fff,stroke:#fff
+    style id12 fill:#fff,stroke:#fff
+    style id13 fill:#fff,stroke:#fff
+```
+
+::::
+
+:::: column
+
+. . .
+
+## Algorithme par problème: rotation GD autour de 40
+
+```{.mermaid format=pdf width=400 loc=figs/}
+graph TD;
+    id0((50))-->id1((40));
+    id0-->id2((100));
+    id1-->id3((10));
+    id1-->id4((  ));
+    id3-->id5((  ));
+    id3-->id6((20))
+    id2-->id7((80))
+    id2-->id8((200))
+    id7-->id9((70))
+    id7-->id10((90))
+    id9-->id11((60))
+    id9-->id12((  ))
+    id8-->id13((  ))
+    id8-->id14((300))
+    style id4 fill:#fff,stroke:#fff
+    style id5 fill:#fff,stroke:#fff
+    style id12 fill:#fff,stroke:#fff
+    style id13 fill:#fff,stroke:#fff
+```
+
+::::
+
+:::
+
+# Suppression dans un arbre AVL 2.0
+
+::: columns
+
+:::: column
+
+## Argl! 50 est déséquilibré!
+
+```{.mermaid format=pdf width=400 loc=figs/}
+graph TD;
+    id0((50))-->id1((20));
+    id0-->id2((100));
+    id1-->id3((10));
+    id1-->id4((40));
+    id2-->id7((80))
+    id2-->id8((200))
+    id7-->id9((70))
+    id7-->id10((90))
+    id9-->id11((60))
+    id9-->id12((  ))
+    id8-->id13((  ))
+    id8-->id14((300))
+    style id12 fill:#fff,stroke:#fff
+    style id13 fill:#fff,stroke:#fff
+```
+
+::::
+
+:::: column
+
+. . .
+
+## Algorithme par problème: rotation DG autour de 50
+
+```{.mermaid format=pdf width=400 loc=figs/}
+graph TD;
+    id0((80))-->id1((50));
+    id0-->id2((100));
+    id1-->id3((20));
+    id1-->id4((70));
+    id3-->id5((10));
+    id3-->id6((40));
+    id4-->id9((60))
+    id4-->id10((  ))
+    id2-->id7((90))
+    id2-->id8((200))
+    id8-->id13((  ))
+    id8-->id14((300))
+    style id10 fill:#fff,stroke:#fff
+    style id13 fill:#fff,stroke:#fff
+```
+
+::::
+
+:::
+
+# Résumé de la suppression
+
+1. On supprime comme pour un arbre binaire de recherche.
+2. Si un nœud est déséquilibré, on le rééquilibre.
+    * Cette opération peut déséquilibrer un autre nœud.
+3. On continue à rééquilibrer tant qu'il y a des nœuds à équilibrer.
+
+
+# Les arbres quaternaires
+
+\Huge Les arbres quaternaires
+
+
+# Les arbres quaternaires
+
+## Définition
+
+Arbre dont chaque nœud a 4 enfants ou aucun. 
+
+![Un exemple d'arbre quaternaire.](figs/quad_ex.svg)
+
+# Les arbres quaternaires
+
+## Cas d'utilisation
+
+Typiquement utilisés pour représenter des données bidimensionnelles.
+
+Son équivalent tri-dimensionnel est l'octree (chaque nœud a 8 enfants ou aucun).
+
+## Cas d'utilisation: images
+
+* Stockage: compression.
+* Transformations: symétries, rotations, etc.
+
+## Cas d'utilisation: simulation
+
+* Indexation spatiale.
+* Détection de collisions.
+* Simulation de galaxies, Barnes-Hut.
+
+# Exemple de compression
+
+::: columns
+
+:::: {.column width=30%}
+
+## Comment représenter l'image
+
+![Image noir/blanc.](figs/board_blacked_parts.svg)
+
+::::
+
+:::: {.column width=70%}
+
+## Sous la forme d'un arbre quaternaire?
+
+. . .
+
+![L'arbre quaternaire correspondant.](figs/quad_img.svg)
+
+**Économie?**
+
+. . .
+
+Image 64 pixels, arbre 25 nœuds.
+
+::::
+
+:::
+
+
+# Structure de données
+
+::: columns
+
+:::: {.column width=50%}
+
+## Pseudo-code?
+
+. . .
+
+```python
+struct node
+    info
+    node sup_gauche, sup_droit,
+        inf_gauche, inf_droit
+```
+
+![Un nœud d'arbre quaternaire.](figs/quad_struct.svg)
+
+::::
+
+:::: {.column width=50%}
+
+## En C?
+
+. . .
+
+```C
+struct _node {
+    int info;
+    struct _node *sup_left;
+    struct _node *sup_right;
+    struct _node *inf_left;
+    struct _node *inf_right;
+};
+```
+
+* Pourquoi le `*` est important?
+
+. . .
+
+* Type récursif => taille inconnue à la compilation.
+
+::::
+
+:::
+
+# Une fonctionnalité simple
+
+\footnotesize
+
+## La fonction `est_feuille(noeud)`
+
+* Problème avec cette implémentation?
+
+```python
+bool est_feuille(noeud) 
+    retourne
+        est_vide(sup_gauche(noeud)) &&
+        est_vide(sup_droit(noeud)) &&
+        est_vide(inf_gauche(noeud)) &&
+        est_vide(inf_droit(noeud))
+```
+
+. . .
+
+* Inutile d'avoir 4 conditions (soit 4 enfants soit aucun!)
+* Facile d'en oublier un!
+* Comment changer la structure pour que ça soit moins terrible?
+
+. . .
+
+```python
+struct node
+    info
+    node enfant[4]
+```
+
+# Structure de données
+
+## En C?
+
+. . .
+
+```C 
+typedef struct _node {
+    int info;
+    struct _node *child[4];
+} node;
+```
+
+## Fonction `is_leaf(node *tree)`?
+
+. . .
+
+```C 
+bool is_leaf(node *tree) {
+    return (NULL == tree->child[0]); // only first matters
+}
+```
+
+# Problème à résoudre
+
+* Construire un arbre quaternaire à partir d'une image:
+    * Créer l'arbre (allouer la mémoire pour tous les nœuds),
+    * Le remplir avec les valeurs des pixels.
+* Compression de l'image:
+    * Si les pixels sont les mêmes dans le quadrant on supprime le sous-arbre (sans perte)
+    * Si les pixels dévient pas trop on supprime le quadrant (avec perte)
+
+# Création de l'arbre
+
+## Comment créer un arbre de profondeur `prof` (3min)?
+
+. . .
+
+```python
+arbre creer_arbre(prof)
+    n = nouveau_noeud() # alloue la mémoire
+    si prof > 0
+        pour i = 0 à 3
+            n.enfant[i] = creer_arbre(prof-1)
+    retourne n
+```
+
+## En `C` (3 min, matrix)?
+
+. . .
+
+```C
+node *qt_create(int depth) {
+    node *n = calloc(1, sizeof(node));
+    if (depth > 0) {
+        for (int i = 0; i < 4; ++i) {
+            n->child[i] = qt_create(depth-1);
+        }
+    }
+    return n;
+}
+```
+
+# Le nombre de nœuds?
+
+## Comment implémenter la fonction (pseudo-code, 5min, matrix)?
+
+. . .
+
+```C
+entier nombre_nœuds(arbre)
+    si est_feuille(arbre)
+        retourne 1
+    sinon
+        somme = 1
+        pour i de 0 à 3
+            somme += nombre_nœuds(arbre.enfant[i])
+        retourne somme
+```
+
+# Le nombre de nœuds?
+
+## Comment implémenter la fonction en C (3min, matrix)?
+
+. . .
+
+```C
+int size(node *qt) {
+    if (is_leaf(qt)) {
+        return 1;
+    } else {
+        int sum = 1;
+        for (int i = 0; i < 4; ++i) {
+            sum += size(qt->child[i]);
+        }
+        return sum;
+    }
+}
+```
+
+# La profondeur en C?
+
+## Implémentation (5min, matrix)
+
+. . .
+
+\footnotesize
+
+```C
+int max(int x, int y) {
+   return  (x >= y ? x : y);
+}
+int max_depth(int depths[4]) {
+    int m = depths[0];
+    for (int i = 1; i < 4; ++i) {
+        m = max(m, depths[i]);
+    }
+    return m;
+}
+int depth(node *qt) {
+    int depths[] = {0, 0, 0, 0};
+    if (is_leaf(qt)) {
+        return 0;
+    } else {
+        for (int i = 0; i < 4; ++i) {
+            depths[i] = depth(qt->child[i]);
+        }
+        return 1 + max_depth(depths);
+    }
+}
+```
+
+# Fonctions utiles (1/4)
+
+## Comment remplir un arbre depuis une matrice?
+
+```
+   SG=0  |  SD=1
+ 21 | 12 | 4 |  4
+  9 |  7 | 4 |  4
+-----------------
+  1 |  1 | 0 | 31
+  1 |  1 | 3 | 27
+   IG=2  |  ID=3
+```
+
+## Quel arbre cela représente?
+
+. . .
+
+![L'arbre correspondant](figs/quad_img_simple.svg)
+
+# Fonctions utiles (2/4)
+
+* On veut transformer une ligne/colonne en feuille.
+* Comment?
+
+::: columns
+
+:::: {.column width=40%}
+
+## Soit `ligne=2`, `colonne=3`
+
+```
+   SG=0  |  SD=1
+ 21 | 12 | 4 |  4
+  9 |  7 | 4 |  4
+-----------------
+  1 |  1 | 0 | 31
+  1 |  1 | 3 | 27
+   IG=2  |  ID=3
+```
+
+::::
+
+:::: {.column width=70%}
+
+## Trouver un algorithme
+
+![Déterminer un algorithme.](figs/quad_img_simple.svg)
+
+* Quelle feuille pour 31 (`li=2`, `co=3`)?
+* Plus important: quel chemin?
+
+. . .
+
+* `co -> G/D`, `li -> S/I`,
+* `2 * (li / 2) + co / 2 -> 2 * 1 + 1 = 3`
+* `2 * ((li % 2) / 1) + (co % 2) / 1 -> 2 * 0 + 1 = 1`
+* Comment généraliser?
+
+::::
+
+:::
+
+# Fonctions utiles (3/4)
+
+::: columns
+
+:::: {.column width=40%}
+
+## Soit `ligne=2`, `colonne=3`
+
+```
+   SG=0  |  SD=1
+ 21 | 12 | 4 |  4
+  9 |  7 | 4 |  4
+-----------------
+  1 |  1 | 0 | 31
+  1 |  1 | 3 | 27
+   IG=2  |  ID=3
+```
+
+::::
+
+:::: {.column width=70%}
+
+## Trouver un algorithme (prendre plusieurs exemples, 15min, matrix)
+
+![Déterminer un algorithme.](figs/quad_img_simple.svg)
+
+* Comment généraliser?
+
+. . .
+
+```C
+noeud position(li, co, arbre)
+    d = profondeur(arbre);
+    tant_que (d >= 1)
+        index = 2 * ((li % 2^d) / 2^(d-1)) +
+            (col % 2^d) / 2^(d-1)
+        arbre = arbre.enfant[index]
+        d -= 1
+    retourne arbre
+```
+
+
+::::
+
+:::
+
+# Fonctions utiles (4/4)
+
+\footnotesize
+
+## Pseudo-code
+
+```C
+noeud position(li, co, arbre)
+    d = profondeur(arbre);
+    tant_que (d >= 1)
+        index = 2 * ((li % 2^d) / 2^(d-1)) +
+            (col % 2^d) / 2^(d-1)
+        arbre = arbre.enfant[index]
+        d -= 1
+    retourne arbre
+```
+
+## Écrire le code `C` correspondant (5min, matrix)
+
+```C
+
+
+
+
+
+
+
+
+
+
+
+```
+
+# Remplir l'arbre
+
+## A partir d'une matrice (pseudo-code, 5min, matrix)?
+
+. . .
+
+```C
+arbre matrice_à_arbre(matrice)
+    arbre = creer_arbre(profondeur)
+    pour li de 0 à nb_lignes(matrice)
+        pour co de 0 à nb_colonnes(matrice)
+            noeud = position(li, co, arbre)
+            noeud.info = matrice[co][li]
+    retourne arbre
+```
+
+. . .
+
+## A partir d'une matrice (C, 5min, matrix)?
+
+. . .
+
+\footnotesize
+
+```C
+node *matrix_to_qt(int nb_li, int nb_co, int matrix[nb_li][nb_co], int depth)
+{
+    node *qt = qt_create(depth);
+    for (int li = 0; li < nd_li; ++li) {
+        for (int co = 0; co < nd_co; ++co) {
+            node *current = position(li, co, qt);
+            current->info = matrix[li][co];
+        }
+    }
+    return qt;
+}
+```
+
+
+# Remplir la matrice
+
+## A partir de l'arbre (pseudo-code, 3min, matrix)?
+
+. . .
+
+```C
+matrice arbre_à_matrice(arbre)
+    matrice = creer_matrice(nb_lignes(arbre), nb_colonnes(arbre))
+    pour li de 0 à nb_lignes(matrice)
+        pour co de 0 à nb_colonnes(matrice)
+            noeud = position(li, co, arbre)
+            matrice[co][li] = noeud.info
+    retourne matrice
+```
+
+. . .
+
+## A partir de l'arbre (C, 3min, matrix)?
+
+. . .
+
+\footnotesize
+
+```C
+void qt_to_matrix(node *qt, int nb_li, int nb_co, int matrix[nb_li][nb_co])
+    for (int li = 0; li < nd_li; ++li) {
+        for (int co = 0; co < nd_co; ++co) {
+            node *current = position(li, co, qt);
+            matrix[li][co] = current->info;
+        }
+    }
+```
+
+
diff --git a/slides/figs/board_blacked_parts.svg b/slides/figs/board_blacked_parts.svg
new file mode 100644
index 0000000000000000000000000000000000000000..50d056aa58cc54b474049bfa27e4064318724b5a
--- /dev/null
+++ b/slides/figs/board_blacked_parts.svg
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="42.597916mm"
+   height="42.597916mm"
+   viewBox="0 0 42.597916 42.597916"
+   version="1.1"
+   id="svg5"
+   inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
+   sodipodi:docname="board_blacked_parts.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview7"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     inkscape:pagecheckerboard="0"
+     inkscape:document-units="mm"
+     showgrid="true"
+     inkscape:zoom="0.94867184"
+     inkscape:cx="274.06737"
+     inkscape:cy="28.987895"
+     inkscape:window-width="1920"
+     inkscape:window-height="1050"
+     inkscape:window-x="0"
+     inkscape:window-y="30"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid824"
+       originx="-26.326041"
+       originy="-42.201041" />
+  </sodipodi:namedview>
+  <defs
+     id="defs2" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-26.326042,-42.201042)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 26.458333,42.333333 H 68.791666"
+       id="path859" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 26.458333,42.333333 V 84.666666"
+       id="path861" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 26.458333,84.666666 H 68.791666 V 42.333333"
+       id="path863" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 31.75,42.333333 V 84.666666"
+       id="path865" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 37.041667,42.333334 V 84.666667"
+       id="path865-3" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 47.625,42.333333 V 84.666666"
+       id="path865-6" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 52.916667,42.333333 V 84.666669"
+       id="path865-7" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 58.208333,42.333333 V 84.666669"
+       id="path865-5" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 63.5,42.333337 v 42.33333"
+       id="path865-35" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 42.333333,42.333333 V 84.666666"
+       id="path865-62" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 26.458327,79.375 h 42.33333"
+       id="path865-9" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 26.458328,74.083333 H 68.791657"
+       id="path865-3-1" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 26.458327,63.5 h 42.33333"
+       id="path865-6-2" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 26.458327,58.208333 h 42.33334"
+       id="path865-7-7" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 26.458327,52.916667 h 42.33334"
+       id="path865-5-0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 26.458331,47.624996 H 68.791657"
+       id="path865-35-9" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 26.458327,68.791667 h 42.33333"
+       id="path865-62-3" />
+    <rect
+       style="fill:#000000;stroke:#000205;stroke-width:0.499999;stroke-linecap:square;fill-opacity:1"
+       id="rect1808"
+       width="21.166666"
+       height="21.166666"
+       x="26.458334"
+       y="42.333336" />
+    <rect
+       style="fill:#000000;fill-opacity:1;stroke:#000205;stroke-width:0.499999;stroke-linecap:square"
+       id="rect1832"
+       width="10.583333"
+       height="10.583333"
+       x="26.458334"
+       y="74.083336" />
+    <rect
+       style="fill:#000000;fill-opacity:1;stroke:#000205;stroke-width:0.499999;stroke-linecap:square"
+       id="rect1834"
+       width="10.583333"
+       height="10.583333"
+       x="58.208332"
+       y="63.5" />
+    <rect
+       style="fill:#000000;fill-opacity:1;stroke:#000205;stroke-width:0.499999;stroke-linecap:square"
+       id="rect1836"
+       width="5.2916665"
+       height="5.2916665"
+       x="63.5"
+       y="79.375" />
+    <rect
+       style="fill:#000000;fill-opacity:1;stroke:#000205;stroke-width:0.499999;stroke-linecap:square"
+       id="rect1838"
+       width="5.2916665"
+       height="5.2916665"
+       x="47.625"
+       y="42.333336" />
+    <rect
+       style="fill:#000000;fill-opacity:1;stroke:#000205;stroke-width:0.499999;stroke-linecap:square"
+       id="rect1840"
+       width="5.2916665"
+       height="5.2916665"
+       x="52.916668"
+       y="47.625" />
+  </g>
+</svg>
diff --git a/slides/figs/quad_ex.svg b/slides/figs/quad_ex.svg
new file mode 100644
index 0000000000000000000000000000000000000000..97df5857f5562caea16ae7a7de30b16a2b11cd00
--- /dev/null
+++ b/slides/figs/quad_ex.svg
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="566pt" height="260pt" viewBox="0.00 0.00 566.00 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
+<title>G</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-256 562,-256 562,4 -4,4"/>
+<!-- 0 -->
+<g id="node1" class="node">
+<title>0</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-234" rx="27" ry="18"/>
+<text text-anchor="middle" x="243" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- sg1 -->
+<g id="node2" class="node">
+<title>sg1</title>
+<ellipse fill="none" stroke="#000000" cx="135" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="135" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000">67</text>
+</g>
+<!-- 0&#45;&gt;sg1 -->
+<g id="edge1" class="edge">
+<title>0-&gt;sg1</title>
+<path fill="none" stroke="#000000" d="M223.6918,-221.1278C206.6445,-209.763 181.5981,-193.0654 162.4656,-180.3104"/>
+<polygon fill="#000000" stroke="#000000" points="164.4031,-177.3956 154.1411,-174.7607 160.5201,-183.2199 164.4031,-177.3956"/>
+</g>
+<!-- sd1 -->
+<g id="node3" class="node">
+<title>sd1</title>
+<ellipse fill="none" stroke="#000000" cx="207" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="207" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000">32</text>
+</g>
+<!-- 0&#45;&gt;sd1 -->
+<g id="edge2" class="edge">
+<title>0-&gt;sd1</title>
+<path fill="none" stroke="#000000" d="M234.2854,-216.5708C230.0403,-208.0807 224.8464,-197.6929 220.1337,-188.2674"/>
+<polygon fill="#000000" stroke="#000000" points="223.237,-186.6477 215.6343,-179.2687 216.976,-189.7782 223.237,-186.6477"/>
+</g>
+<!-- ig1 -->
+<g id="node4" class="node">
+<title>ig1</title>
+<ellipse fill="none" stroke="#000000" cx="279" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="279" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- 0&#45;&gt;ig1 -->
+<g id="edge3" class="edge">
+<title>0-&gt;ig1</title>
+<path fill="none" stroke="#000000" d="M251.7146,-216.5708C255.9597,-208.0807 261.1536,-197.6929 265.8663,-188.2674"/>
+<polygon fill="#000000" stroke="#000000" points="269.024,-189.7782 270.3657,-179.2687 262.763,-186.6477 269.024,-189.7782"/>
+</g>
+<!-- id1 -->
+<g id="node5" class="node">
+<title>id1</title>
+<ellipse fill="none" stroke="#000000" cx="351" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="351" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000">7</text>
+</g>
+<!-- 0&#45;&gt;id1 -->
+<g id="edge4" class="edge">
+<title>0-&gt;id1</title>
+<path fill="none" stroke="#000000" d="M262.3082,-221.1278C279.3555,-209.763 304.4019,-193.0654 323.5344,-180.3104"/>
+<polygon fill="#000000" stroke="#000000" points="325.4799,-183.2199 331.8589,-174.7607 321.5969,-177.3956 325.4799,-183.2199"/>
+</g>
+<!-- sg2 -->
+<g id="node6" class="node">
+<title>sg2</title>
+<ellipse fill="none" stroke="#000000" cx="171" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="171" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- ig1&#45;&gt;sg2 -->
+<g id="edge5" class="edge">
+<title>ig1-&gt;sg2</title>
+<path fill="none" stroke="#000000" d="M259.6918,-149.1278C242.6445,-137.763 217.5981,-121.0654 198.4656,-108.3104"/>
+<polygon fill="#000000" stroke="#000000" points="200.4031,-105.3956 190.1411,-102.7607 196.5201,-111.2199 200.4031,-105.3956"/>
+</g>
+<!-- sd2 -->
+<g id="node7" class="node">
+<title>sd2</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="243" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">2</text>
+</g>
+<!-- ig1&#45;&gt;sd2 -->
+<g id="edge6" class="edge">
+<title>ig1-&gt;sd2</title>
+<path fill="none" stroke="#000000" d="M270.2854,-144.5708C266.0403,-136.0807 260.8464,-125.6929 256.1337,-116.2674"/>
+<polygon fill="#000000" stroke="#000000" points="259.237,-114.6477 251.6343,-107.2687 252.976,-117.7782 259.237,-114.6477"/>
+</g>
+<!-- ig2 -->
+<g id="node8" class="node">
+<title>ig2</title>
+<ellipse fill="none" stroke="#000000" cx="315" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="315" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- ig1&#45;&gt;ig2 -->
+<g id="edge7" class="edge">
+<title>ig1-&gt;ig2</title>
+<path fill="none" stroke="#000000" d="M287.7146,-144.5708C291.9597,-136.0807 297.1536,-125.6929 301.8663,-116.2674"/>
+<polygon fill="#000000" stroke="#000000" points="305.024,-117.7782 306.3657,-107.2687 298.763,-114.6477 305.024,-117.7782"/>
+</g>
+<!-- id2 -->
+<g id="node9" class="node">
+<title>id2</title>
+<ellipse fill="none" stroke="#000000" cx="387" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="387" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- ig1&#45;&gt;id2 -->
+<g id="edge8" class="edge">
+<title>ig1-&gt;id2</title>
+<path fill="none" stroke="#000000" d="M298.3082,-149.1278C315.3555,-137.763 340.4019,-121.0654 359.5344,-108.3104"/>
+<polygon fill="#000000" stroke="#000000" points="361.4799,-111.2199 367.8589,-102.7607 357.5969,-105.3956 361.4799,-111.2199"/>
+</g>
+<!-- sg3 -->
+<g id="node10" class="node">
+<title>sg3</title>
+<ellipse fill="none" stroke="#000000" cx="27" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="27" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">12</text>
+</g>
+<!-- sg2&#45;&gt;sg3 -->
+<g id="edge9" class="edge">
+<title>sg2-&gt;sg3</title>
+<path fill="none" stroke="#000000" d="M149.1295,-79.0647C124.7778,-66.8889 85.238,-47.119 57.7715,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="59.114,-30.1439 48.6045,-28.8022 55.9835,-36.4049 59.114,-30.1439"/>
+</g>
+<!-- sd3 -->
+<g id="node11" class="node">
+<title>sd3</title>
+<ellipse fill="none" stroke="#000000" cx="99" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="99" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- sg2&#45;&gt;sd3 -->
+<g id="edge10" class="edge">
+<title>sg2-&gt;sd3</title>
+<path fill="none" stroke="#000000" d="M155.7307,-74.7307C145.803,-64.803 132.6847,-51.6847 121.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="123.7933,-37.8436 114.2473,-33.2473 118.8436,-42.7933 123.7933,-37.8436"/>
+</g>
+<!-- ig3 -->
+<g id="node12" class="node">
+<title>ig3</title>
+<ellipse fill="none" stroke="#000000" cx="171" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="171" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">2</text>
+</g>
+<!-- sg2&#45;&gt;ig3 -->
+<g id="edge11" class="edge">
+<title>sg2-&gt;ig3</title>
+<path fill="none" stroke="#000000" d="M171,-71.8314C171,-64.131 171,-54.9743 171,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="174.5001,-46.4132 171,-36.4133 167.5001,-46.4133 174.5001,-46.4132"/>
+</g>
+<!-- id3 -->
+<g id="node13" class="node">
+<title>id3</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="243" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text>
+</g>
+<!-- sg2&#45;&gt;id3 -->
+<g id="edge12" class="edge">
+<title>sg2-&gt;id3</title>
+<path fill="none" stroke="#000000" d="M186.2693,-74.7307C196.197,-64.803 209.3153,-51.6847 220.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="223.1564,-42.7933 227.7527,-33.2473 218.2067,-37.8436 223.1564,-42.7933"/>
+</g>
+<!-- sg4 -->
+<g id="node14" class="node">
+<title>sg4</title>
+<ellipse fill="none" stroke="#000000" cx="315" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="315" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">8</text>
+</g>
+<!-- id2&#45;&gt;sg4 -->
+<g id="edge13" class="edge">
+<title>id2-&gt;sg4</title>
+<path fill="none" stroke="#000000" d="M371.7307,-74.7307C361.803,-64.803 348.6847,-51.6847 337.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="339.7933,-37.8436 330.2473,-33.2473 334.8436,-42.7933 339.7933,-37.8436"/>
+</g>
+<!-- sd4 -->
+<g id="node15" class="node">
+<title>sd4</title>
+<ellipse fill="none" stroke="#000000" cx="387" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="387" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text>
+</g>
+<!-- id2&#45;&gt;sd4 -->
+<g id="edge14" class="edge">
+<title>id2-&gt;sd4</title>
+<path fill="none" stroke="#000000" d="M387,-71.8314C387,-64.131 387,-54.9743 387,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="390.5001,-46.4132 387,-36.4133 383.5001,-46.4133 390.5001,-46.4132"/>
+</g>
+<!-- ig4 -->
+<g id="node16" class="node">
+<title>ig4</title>
+<ellipse fill="none" stroke="#000000" cx="459" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="459" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text>
+</g>
+<!-- id2&#45;&gt;ig4 -->
+<g id="edge15" class="edge">
+<title>id2-&gt;ig4</title>
+<path fill="none" stroke="#000000" d="M402.2693,-74.7307C412.197,-64.803 425.3153,-51.6847 436.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="439.1564,-42.7933 443.7527,-33.2473 434.2067,-37.8436 439.1564,-42.7933"/>
+</g>
+<!-- id4 -->
+<g id="node17" class="node">
+<title>id4</title>
+<ellipse fill="none" stroke="#000000" cx="531" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="531" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">9</text>
+</g>
+<!-- id2&#45;&gt;id4 -->
+<g id="edge16" class="edge">
+<title>id2-&gt;id4</title>
+<path fill="none" stroke="#000000" d="M408.8705,-79.0647C433.2222,-66.8889 472.762,-47.119 500.2285,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="502.0165,-36.4049 509.3955,-28.8022 498.886,-30.1439 502.0165,-36.4049"/>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/slides/figs/quad_img.svg b/slides/figs/quad_img.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7b48a2ec24908f5383d72fcbeb30258ffc0ef759
--- /dev/null
+++ b/slides/figs/quad_img.svg
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="1070pt" height="260pt" viewBox="0.00 0.00 1070.00 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
+<title>G</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-256 1066,-256 1066,4 -4,4"/>
+<!-- 0 -->
+<g id="node1" class="node">
+<title>0</title>
+<ellipse fill="none" stroke="#000000" cx="387" cy="-234" rx="27" ry="18"/>
+<text text-anchor="middle" x="387" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- sg1 -->
+<g id="node2" class="node">
+<title>sg1</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="243" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- 0&#45;&gt;sg1 -->
+<g id="edge1" class="edge">
+<title>0-&gt;sg1</title>
+<path fill="none" stroke="#000000" d="M365.1295,-223.0647C340.7778,-210.8889 301.238,-191.119 273.7715,-177.3858"/>
+<polygon fill="#000000" stroke="#000000" points="275.114,-174.1439 264.6045,-172.8022 271.9835,-180.4049 275.114,-174.1439"/>
+</g>
+<!-- sd1 -->
+<g id="node3" class="node">
+<title>sd1</title>
+<ellipse fill="none" stroke="#000000" cx="315" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="315" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- 0&#45;&gt;sd1 -->
+<g id="edge2" class="edge">
+<title>0-&gt;sd1</title>
+<path fill="none" stroke="#000000" d="M371.7307,-218.7307C361.803,-208.803 348.6847,-195.6847 337.5637,-184.5637"/>
+<polygon fill="#000000" stroke="#000000" points="339.7933,-181.8436 330.2473,-177.2473 334.8436,-186.7933 339.7933,-181.8436"/>
+</g>
+<!-- ig1 -->
+<g id="node4" class="node">
+<title>ig1</title>
+<ellipse fill="none" stroke="#000000" cx="495" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="495" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- 0&#45;&gt;ig1 -->
+<g id="edge3" class="edge">
+<title>0-&gt;ig1</title>
+<path fill="none" stroke="#000000" d="M406.3082,-221.1278C423.3555,-209.763 448.4019,-193.0654 467.5344,-180.3104"/>
+<polygon fill="#000000" stroke="#000000" points="469.4799,-183.2199 475.8589,-174.7607 465.5969,-177.3956 469.4799,-183.2199"/>
+</g>
+<!-- id1 -->
+<g id="node5" class="node">
+<title>id1</title>
+<ellipse fill="none" stroke="#000000" cx="783" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="783" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- 0&#45;&gt;id1 -->
+<g id="edge4" class="edge">
+<title>0-&gt;id1</title>
+<path fill="none" stroke="#000000" d="M413.2893,-229.2201C482.1457,-216.7008 667.8702,-182.9327 746.7603,-168.589"/>
+<polygon fill="#000000" stroke="#000000" points="747.5074,-172.0107 756.72,-166.7782 746.2551,-165.1236 747.5074,-172.0107"/>
+</g>
+<!-- sg2 -->
+<g id="node6" class="node">
+<title>sg2</title>
+<ellipse fill="none" stroke="#000000" cx="135" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="135" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- sd1&#45;&gt;sg2 -->
+<g id="edge5" class="edge">
+<title>sd1-&gt;sg2</title>
+<path fill="none" stroke="#000000" d="M293.5289,-150.643C288.8008,-148.3177 283.7773,-145.9788 279,-144 232.255,-124.6376 217.745,-127.3624 171,-108 169.2085,-107.2579 167.3824,-106.4653 165.5502,-105.6416"/>
+<polygon fill="#000000" stroke="#000000" points="167.0084,-102.4596 156.4711,-101.357 164.0208,-108.7901 167.0084,-102.4596"/>
+</g>
+<!-- sd2 -->
+<g id="node7" class="node">
+<title>sd2</title>
+<ellipse fill="none" stroke="#000000" cx="207" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="207" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- sd1&#45;&gt;sd2 -->
+<g id="edge6" class="edge">
+<title>sd1-&gt;sd2</title>
+<path fill="none" stroke="#000000" d="M295.6918,-149.1278C278.6445,-137.763 253.5981,-121.0654 234.4656,-108.3104"/>
+<polygon fill="#000000" stroke="#000000" points="236.4031,-105.3956 226.1411,-102.7607 232.5201,-111.2199 236.4031,-105.3956"/>
+</g>
+<!-- ig2 -->
+<g id="node8" class="node">
+<title>ig2</title>
+<ellipse fill="none" stroke="#000000" cx="279" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="279" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- sd1&#45;&gt;ig2 -->
+<g id="edge7" class="edge">
+<title>sd1-&gt;ig2</title>
+<path fill="none" stroke="#000000" d="M306.2854,-144.5708C302.0403,-136.0807 296.8464,-125.6929 292.1337,-116.2674"/>
+<polygon fill="#000000" stroke="#000000" points="295.237,-114.6477 287.6343,-107.2687 288.976,-117.7782 295.237,-114.6477"/>
+</g>
+<!-- id2 -->
+<g id="node9" class="node">
+<title>id2</title>
+<ellipse fill="none" stroke="#000000" cx="351" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="351" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- sd1&#45;&gt;id2 -->
+<g id="edge8" class="edge">
+<title>sd1-&gt;id2</title>
+<path fill="none" stroke="#000000" d="M323.7146,-144.5708C327.9597,-136.0807 333.1536,-125.6929 337.8663,-116.2674"/>
+<polygon fill="#000000" stroke="#000000" points="341.024,-117.7782 342.3657,-107.2687 334.763,-114.6477 341.024,-117.7782"/>
+</g>
+<!-- sg3 -->
+<g id="node10" class="node">
+<title>sg3</title>
+<ellipse fill="none" stroke="#000000" cx="423" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="423" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- ig1&#45;&gt;sg3 -->
+<g id="edge9" class="edge">
+<title>ig1-&gt;sg3</title>
+<path fill="none" stroke="#000000" d="M479.7307,-146.7307C469.803,-136.803 456.6847,-123.6847 445.5637,-112.5637"/>
+<polygon fill="#000000" stroke="#000000" points="447.7933,-109.8436 438.2473,-105.2473 442.8436,-114.7933 447.7933,-109.8436"/>
+</g>
+<!-- sd3 -->
+<g id="node11" class="node">
+<title>sd3</title>
+<ellipse fill="none" stroke="#000000" cx="495" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="495" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- ig1&#45;&gt;sd3 -->
+<g id="edge10" class="edge">
+<title>ig1-&gt;sd3</title>
+<path fill="none" stroke="#000000" d="M495,-143.8314C495,-136.131 495,-126.9743 495,-118.4166"/>
+<polygon fill="#000000" stroke="#000000" points="498.5001,-118.4132 495,-108.4133 491.5001,-118.4133 498.5001,-118.4132"/>
+</g>
+<!-- ig3 -->
+<g id="node12" class="node">
+<title>ig3</title>
+<ellipse fill="none" stroke="#000000" cx="567" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="567" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- ig1&#45;&gt;ig3 -->
+<g id="edge11" class="edge">
+<title>ig1-&gt;ig3</title>
+<path fill="none" stroke="#000000" d="M510.2693,-146.7307C520.197,-136.803 533.3153,-123.6847 544.4363,-112.5637"/>
+<polygon fill="#000000" stroke="#000000" points="547.1564,-114.7933 551.7527,-105.2473 542.2067,-109.8436 547.1564,-114.7933"/>
+</g>
+<!-- id3 -->
+<g id="node13" class="node">
+<title>id3</title>
+<ellipse fill="none" stroke="#000000" cx="639" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="639" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- ig1&#45;&gt;id3 -->
+<g id="edge12" class="edge">
+<title>ig1-&gt;id3</title>
+<path fill="none" stroke="#000000" d="M516.8705,-151.0647C541.2222,-138.8889 580.762,-119.119 608.2285,-105.3858"/>
+<polygon fill="#000000" stroke="#000000" points="610.0165,-108.4049 617.3955,-100.8022 606.886,-102.1439 610.0165,-108.4049"/>
+</g>
+<!-- sg4 -->
+<g id="node14" class="node">
+<title>sg4</title>
+<ellipse fill="none" stroke="#000000" cx="711" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="711" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- id1&#45;&gt;sg4 -->
+<g id="edge13" class="edge">
+<title>id1-&gt;sg4</title>
+<path fill="none" stroke="#000000" d="M767.7307,-146.7307C757.803,-136.803 744.6847,-123.6847 733.5637,-112.5637"/>
+<polygon fill="#000000" stroke="#000000" points="735.7933,-109.8436 726.2473,-105.2473 730.8436,-114.7933 735.7933,-109.8436"/>
+</g>
+<!-- sd4 -->
+<g id="node15" class="node">
+<title>sd4</title>
+<ellipse fill="none" stroke="#000000" cx="783" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="783" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- id1&#45;&gt;sd4 -->
+<g id="edge14" class="edge">
+<title>id1-&gt;sd4</title>
+<path fill="none" stroke="#000000" d="M783,-143.8314C783,-136.131 783,-126.9743 783,-118.4166"/>
+<polygon fill="#000000" stroke="#000000" points="786.5001,-118.4132 783,-108.4133 779.5001,-118.4133 786.5001,-118.4132"/>
+</g>
+<!-- ig4 -->
+<g id="node16" class="node">
+<title>ig4</title>
+<ellipse fill="none" stroke="#000000" cx="855" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="855" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- id1&#45;&gt;ig4 -->
+<g id="edge15" class="edge">
+<title>id1-&gt;ig4</title>
+<path fill="none" stroke="#000000" d="M798.2693,-146.7307C808.197,-136.803 821.3153,-123.6847 832.4363,-112.5637"/>
+<polygon fill="#000000" stroke="#000000" points="835.1564,-114.7933 839.7527,-105.2473 830.2067,-109.8436 835.1564,-114.7933"/>
+</g>
+<!-- id4 -->
+<g id="node17" class="node">
+<title>id4</title>
+<ellipse fill="none" stroke="#000000" cx="927" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="927" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- id1&#45;&gt;id4 -->
+<g id="edge16" class="edge">
+<title>id1-&gt;id4</title>
+<path fill="none" stroke="#000000" d="M804.8705,-151.0647C829.2222,-138.8889 868.762,-119.119 896.2285,-105.3858"/>
+<polygon fill="#000000" stroke="#000000" points="898.0165,-108.4049 905.3955,-100.8022 894.886,-102.1439 898.0165,-108.4049"/>
+</g>
+<!-- sg5 -->
+<g id="node18" class="node">
+<title>sg5</title>
+<ellipse fill="none" stroke="#000000" cx="27" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="27" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- sg2&#45;&gt;sg5 -->
+<g id="edge17" class="edge">
+<title>sg2-&gt;sg5</title>
+<path fill="none" stroke="#000000" d="M115.6918,-77.1278C98.6445,-65.763 73.5981,-49.0654 54.4656,-36.3104"/>
+<polygon fill="#000000" stroke="#000000" points="56.4031,-33.3956 46.1411,-30.7607 52.5201,-39.2199 56.4031,-33.3956"/>
+</g>
+<!-- sd5 -->
+<g id="node19" class="node">
+<title>sd5</title>
+<ellipse fill="none" stroke="#000000" cx="99" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="99" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- sg2&#45;&gt;sd5 -->
+<g id="edge18" class="edge">
+<title>sg2-&gt;sd5</title>
+<path fill="none" stroke="#000000" d="M126.2854,-72.5708C122.0403,-64.0807 116.8464,-53.6929 112.1337,-44.2674"/>
+<polygon fill="#000000" stroke="#000000" points="115.237,-42.6477 107.6343,-35.2687 108.976,-45.7782 115.237,-42.6477"/>
+</g>
+<!-- ig5 -->
+<g id="node20" class="node">
+<title>ig5</title>
+<ellipse fill="none" stroke="#000000" cx="171" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="171" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- sg2&#45;&gt;ig5 -->
+<g id="edge19" class="edge">
+<title>sg2-&gt;ig5</title>
+<path fill="none" stroke="#000000" d="M143.7146,-72.5708C147.9597,-64.0807 153.1536,-53.6929 157.8663,-44.2674"/>
+<polygon fill="#000000" stroke="#000000" points="161.024,-45.7782 162.3657,-35.2687 154.763,-42.6477 161.024,-45.7782"/>
+</g>
+<!-- id5 -->
+<g id="node21" class="node">
+<title>id5</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="243" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- sg2&#45;&gt;id5 -->
+<g id="edge20" class="edge">
+<title>sg2-&gt;id5</title>
+<path fill="none" stroke="#000000" d="M154.3082,-77.1278C171.3555,-65.763 196.4019,-49.0654 215.5344,-36.3104"/>
+<polygon fill="#000000" stroke="#000000" points="217.4799,-39.2199 223.8589,-30.7607 213.5969,-33.3956 217.4799,-39.2199"/>
+</g>
+<!-- sg6 -->
+<g id="node22" class="node">
+<title>sg6</title>
+<ellipse fill="none" stroke="#000000" cx="819" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="819" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- id4&#45;&gt;sg6 -->
+<g id="edge21" class="edge">
+<title>id4-&gt;sg6</title>
+<path fill="none" stroke="#000000" d="M907.6918,-77.1278C890.6445,-65.763 865.5981,-49.0654 846.4656,-36.3104"/>
+<polygon fill="#000000" stroke="#000000" points="848.4031,-33.3956 838.1411,-30.7607 844.5201,-39.2199 848.4031,-33.3956"/>
+</g>
+<!-- sd6 -->
+<g id="node23" class="node">
+<title>sd6</title>
+<ellipse fill="none" stroke="#000000" cx="891" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="891" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- id4&#45;&gt;sd6 -->
+<g id="edge22" class="edge">
+<title>id4-&gt;sd6</title>
+<path fill="none" stroke="#000000" d="M918.2854,-72.5708C914.0403,-64.0807 908.8464,-53.6929 904.1337,-44.2674"/>
+<polygon fill="#000000" stroke="#000000" points="907.237,-42.6477 899.6343,-35.2687 900.976,-45.7782 907.237,-42.6477"/>
+</g>
+<!-- ig6 -->
+<g id="node24" class="node">
+<title>ig6</title>
+<ellipse fill="none" stroke="#000000" cx="963" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="963" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- id4&#45;&gt;ig6 -->
+<g id="edge23" class="edge">
+<title>id4-&gt;ig6</title>
+<path fill="none" stroke="#000000" d="M935.7146,-72.5708C939.9597,-64.0807 945.1536,-53.6929 949.8663,-44.2674"/>
+<polygon fill="#000000" stroke="#000000" points="953.024,-45.7782 954.3657,-35.2687 946.763,-42.6477 953.024,-45.7782"/>
+</g>
+<!-- id6 -->
+<g id="node25" class="node">
+<title>id6</title>
+<ellipse fill="none" stroke="#000000" cx="1035" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="1035" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- id4&#45;&gt;id6 -->
+<g id="edge24" class="edge">
+<title>id4-&gt;id6</title>
+<path fill="none" stroke="#000000" d="M946.3082,-77.1278C963.3555,-65.763 988.4019,-49.0654 1007.5344,-36.3104"/>
+<polygon fill="#000000" stroke="#000000" points="1009.4799,-39.2199 1015.8589,-30.7607 1005.5969,-33.3956 1009.4799,-39.2199"/>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/slides/figs/quad_img_simple.svg b/slides/figs/quad_img_simple.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f9fea0d611cafcfc47bc0bdc6f3dd00f607c7f38
--- /dev/null
+++ b/slides/figs/quad_img_simple.svg
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="1142pt" height="188pt" viewBox="0.00 0.00 1142.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
+<title>G</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-184 1138,-184 1138,4 -4,4"/>
+<!-- 0 -->
+<g id="node1" class="node">
+<title>0</title>
+<ellipse fill="none" stroke="#000000" cx="567" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="567" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- sg1 -->
+<g id="node2" class="node">
+<title>sg1</title>
+<ellipse fill="none" stroke="#000000" cx="171" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="171" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">SG</text>
+</g>
+<!-- 0&#45;&gt;sg1 -->
+<g id="edge1" class="edge">
+<title>0-&gt;sg1</title>
+<path fill="none" stroke="#000000" d="M540.7107,-157.2201C471.8543,-144.7008 286.1298,-110.9327 207.2397,-96.589"/>
+<polygon fill="#000000" stroke="#000000" points="207.7449,-93.1236 197.28,-94.7782 206.4926,-100.0107 207.7449,-93.1236"/>
+</g>
+<!-- sd1 -->
+<g id="node3" class="node">
+<title>sd1</title>
+<ellipse fill="none" stroke="#000000" cx="459" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="459" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">SD</text>
+</g>
+<!-- 0&#45;&gt;sd1 -->
+<g id="edge2" class="edge">
+<title>0-&gt;sd1</title>
+<path fill="none" stroke="#000000" d="M547.6918,-149.1278C530.6445,-137.763 505.5981,-121.0654 486.4656,-108.3104"/>
+<polygon fill="#000000" stroke="#000000" points="488.4031,-105.3956 478.1411,-102.7607 484.5201,-111.2199 488.4031,-105.3956"/>
+</g>
+<!-- ig1 -->
+<g id="node4" class="node">
+<title>ig1</title>
+<ellipse fill="none" stroke="#000000" cx="675" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="675" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">IG</text>
+</g>
+<!-- 0&#45;&gt;ig1 -->
+<g id="edge3" class="edge">
+<title>0-&gt;ig1</title>
+<path fill="none" stroke="#000000" d="M586.3082,-149.1278C603.3555,-137.763 628.4019,-121.0654 647.5344,-108.3104"/>
+<polygon fill="#000000" stroke="#000000" points="649.4799,-111.2199 655.8589,-102.7607 645.5969,-105.3956 649.4799,-111.2199"/>
+</g>
+<!-- id1 -->
+<g id="node5" class="node">
+<title>id1</title>
+<ellipse fill="none" stroke="#000000" cx="963" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="963" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">ID</text>
+</g>
+<!-- 0&#45;&gt;id1 -->
+<g id="edge4" class="edge">
+<title>0-&gt;id1</title>
+<path fill="none" stroke="#000000" d="M593.2893,-157.2201C662.1457,-144.7008 847.8702,-110.9327 926.7603,-96.589"/>
+<polygon fill="#000000" stroke="#000000" points="927.5074,-100.0107 936.72,-94.7782 926.2551,-93.1236 927.5074,-100.0107"/>
+</g>
+<!-- sg2 -->
+<g id="node6" class="node">
+<title>sg2</title>
+<ellipse fill="none" stroke="#000000" cx="27" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="27" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">21</text>
+</g>
+<!-- sg1&#45;&gt;sg2 -->
+<g id="edge5" class="edge">
+<title>sg1-&gt;sg2</title>
+<path fill="none" stroke="#000000" d="M149.1295,-79.0647C124.7778,-66.8889 85.238,-47.119 57.7715,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="59.114,-30.1439 48.6045,-28.8022 55.9835,-36.4049 59.114,-30.1439"/>
+</g>
+<!-- sd2 -->
+<g id="node7" class="node">
+<title>sd2</title>
+<ellipse fill="none" stroke="#000000" cx="99" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="99" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">12</text>
+</g>
+<!-- sg1&#45;&gt;sd2 -->
+<g id="edge6" class="edge">
+<title>sg1-&gt;sd2</title>
+<path fill="none" stroke="#000000" d="M155.7307,-74.7307C145.803,-64.803 132.6847,-51.6847 121.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="123.7933,-37.8436 114.2473,-33.2473 118.8436,-42.7933 123.7933,-37.8436"/>
+</g>
+<!-- ig2 -->
+<g id="node8" class="node">
+<title>ig2</title>
+<ellipse fill="none" stroke="#000000" cx="171" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="171" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">9</text>
+</g>
+<!-- sg1&#45;&gt;ig2 -->
+<g id="edge7" class="edge">
+<title>sg1-&gt;ig2</title>
+<path fill="none" stroke="#000000" d="M171,-71.8314C171,-64.131 171,-54.9743 171,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="174.5001,-46.4132 171,-36.4133 167.5001,-46.4133 174.5001,-46.4132"/>
+</g>
+<!-- id2 -->
+<g id="node9" class="node">
+<title>id2</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="243" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">7</text>
+</g>
+<!-- sg1&#45;&gt;id2 -->
+<g id="edge8" class="edge">
+<title>sg1-&gt;id2</title>
+<path fill="none" stroke="#000000" d="M186.2693,-74.7307C196.197,-64.803 209.3153,-51.6847 220.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="223.1564,-42.7933 227.7527,-33.2473 218.2067,-37.8436 223.1564,-42.7933"/>
+</g>
+<!-- sg3 -->
+<g id="node10" class="node">
+<title>sg3</title>
+<ellipse fill="none" stroke="#000000" cx="315" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="315" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text>
+</g>
+<!-- sd1&#45;&gt;sg3 -->
+<g id="edge9" class="edge">
+<title>sd1-&gt;sg3</title>
+<path fill="none" stroke="#000000" d="M437.1295,-79.0647C412.7778,-66.8889 373.238,-47.119 345.7715,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="347.114,-30.1439 336.6045,-28.8022 343.9835,-36.4049 347.114,-30.1439"/>
+</g>
+<!-- sd3 -->
+<g id="node11" class="node">
+<title>sd3</title>
+<ellipse fill="none" stroke="#000000" cx="387" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="387" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text>
+</g>
+<!-- sd1&#45;&gt;sd3 -->
+<g id="edge10" class="edge">
+<title>sd1-&gt;sd3</title>
+<path fill="none" stroke="#000000" d="M443.7307,-74.7307C433.803,-64.803 420.6847,-51.6847 409.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="411.7933,-37.8436 402.2473,-33.2473 406.8436,-42.7933 411.7933,-37.8436"/>
+</g>
+<!-- ig3 -->
+<g id="node12" class="node">
+<title>ig3</title>
+<ellipse fill="none" stroke="#000000" cx="459" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="459" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text>
+</g>
+<!-- sd1&#45;&gt;ig3 -->
+<g id="edge11" class="edge">
+<title>sd1-&gt;ig3</title>
+<path fill="none" stroke="#000000" d="M459,-71.8314C459,-64.131 459,-54.9743 459,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="462.5001,-46.4132 459,-36.4133 455.5001,-46.4133 462.5001,-46.4132"/>
+</g>
+<!-- id3 -->
+<g id="node13" class="node">
+<title>id3</title>
+<ellipse fill="none" stroke="#000000" cx="531" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="531" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text>
+</g>
+<!-- sd1&#45;&gt;id3 -->
+<g id="edge12" class="edge">
+<title>sd1-&gt;id3</title>
+<path fill="none" stroke="#000000" d="M474.2693,-74.7307C484.197,-64.803 497.3153,-51.6847 508.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="511.1564,-42.7933 515.7527,-33.2473 506.2067,-37.8436 511.1564,-42.7933"/>
+</g>
+<!-- sg4 -->
+<g id="node14" class="node">
+<title>sg4</title>
+<ellipse fill="none" stroke="#000000" cx="603" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="603" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- ig1&#45;&gt;sg4 -->
+<g id="edge13" class="edge">
+<title>ig1-&gt;sg4</title>
+<path fill="none" stroke="#000000" d="M659.7307,-74.7307C649.803,-64.803 636.6847,-51.6847 625.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="627.7933,-37.8436 618.2473,-33.2473 622.8436,-42.7933 627.7933,-37.8436"/>
+</g>
+<!-- sd4 -->
+<g id="node15" class="node">
+<title>sd4</title>
+<ellipse fill="none" stroke="#000000" cx="675" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="675" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- ig1&#45;&gt;sd4 -->
+<g id="edge14" class="edge">
+<title>ig1-&gt;sd4</title>
+<path fill="none" stroke="#000000" d="M675,-71.8314C675,-64.131 675,-54.9743 675,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="678.5001,-46.4132 675,-36.4133 671.5001,-46.4133 678.5001,-46.4132"/>
+</g>
+<!-- ig4 -->
+<g id="node16" class="node">
+<title>ig4</title>
+<ellipse fill="none" stroke="#000000" cx="747" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="747" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- ig1&#45;&gt;ig4 -->
+<g id="edge15" class="edge">
+<title>ig1-&gt;ig4</title>
+<path fill="none" stroke="#000000" d="M690.2693,-74.7307C700.197,-64.803 713.3153,-51.6847 724.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="727.1564,-42.7933 731.7527,-33.2473 722.2067,-37.8436 727.1564,-42.7933"/>
+</g>
+<!-- id4 -->
+<g id="node17" class="node">
+<title>id4</title>
+<ellipse fill="none" stroke="#000000" cx="819" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="819" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- ig1&#45;&gt;id4 -->
+<g id="edge16" class="edge">
+<title>ig1-&gt;id4</title>
+<path fill="none" stroke="#000000" d="M696.8705,-79.0647C721.2222,-66.8889 760.762,-47.119 788.2285,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="790.0165,-36.4049 797.3955,-28.8022 786.886,-30.1439 790.0165,-36.4049"/>
+</g>
+<!-- sg5 -->
+<g id="node18" class="node">
+<title>sg5</title>
+<ellipse fill="none" stroke="#000000" cx="891" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="891" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- id1&#45;&gt;sg5 -->
+<g id="edge17" class="edge">
+<title>id1-&gt;sg5</title>
+<path fill="none" stroke="#000000" d="M947.7307,-74.7307C937.803,-64.803 924.6847,-51.6847 913.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="915.7933,-37.8436 906.2473,-33.2473 910.8436,-42.7933 915.7933,-37.8436"/>
+</g>
+<!-- sd5 -->
+<g id="node19" class="node">
+<title>sd5</title>
+<ellipse fill="none" stroke="#000000" cx="963" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="963" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">31</text>
+</g>
+<!-- id1&#45;&gt;sd5 -->
+<g id="edge18" class="edge">
+<title>id1-&gt;sd5</title>
+<path fill="none" stroke="#000000" d="M963,-71.8314C963,-64.131 963,-54.9743 963,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="966.5001,-46.4132 963,-36.4133 959.5001,-46.4133 966.5001,-46.4132"/>
+</g>
+<!-- ig5 -->
+<g id="node20" class="node">
+<title>ig5</title>
+<ellipse fill="none" stroke="#000000" cx="1035" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="1035" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text>
+</g>
+<!-- id1&#45;&gt;ig5 -->
+<g id="edge19" class="edge">
+<title>id1-&gt;ig5</title>
+<path fill="none" stroke="#000000" d="M978.2693,-74.7307C988.197,-64.803 1001.3153,-51.6847 1012.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="1015.1564,-42.7933 1019.7527,-33.2473 1010.2067,-37.8436 1015.1564,-42.7933"/>
+</g>
+<!-- id5 -->
+<g id="node21" class="node">
+<title>id5</title>
+<ellipse fill="none" stroke="#000000" cx="1107" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="1107" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">27</text>
+</g>
+<!-- id1&#45;&gt;id5 -->
+<g id="edge20" class="edge">
+<title>id1-&gt;id5</title>
+<path fill="none" stroke="#000000" d="M984.8705,-79.0647C1009.2222,-66.8889 1048.762,-47.119 1076.2285,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="1078.0165,-36.4049 1085.3955,-28.8022 1074.886,-30.1439 1078.0165,-36.4049"/>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/slides/figs/quad_img_simple_comp.svg b/slides/figs/quad_img_simple_comp.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8246f9ebf4751ee03b896848470239f005b12e6c
--- /dev/null
+++ b/slides/figs/quad_img_simple_comp.svg
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="566pt" height="188pt" viewBox="0.00 0.00 566.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
+<title>G</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-184 562,-184 562,4 -4,4"/>
+<!-- 0 -->
+<g id="node1" class="node">
+<title>0</title>
+<ellipse fill="none" stroke="#000000" cx="279" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="279" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- sg1 -->
+<g id="node2" class="node">
+<title>sg1</title>
+<ellipse fill="none" stroke="#000000" cx="171" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="171" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">SG</text>
+</g>
+<!-- 0&#45;&gt;sg1 -->
+<g id="edge1" class="edge">
+<title>0-&gt;sg1</title>
+<path fill="none" stroke="#000000" d="M259.6918,-149.1278C242.6445,-137.763 217.5981,-121.0654 198.4656,-108.3104"/>
+<polygon fill="#000000" stroke="#000000" points="200.4031,-105.3956 190.1411,-102.7607 196.5201,-111.2199 200.4031,-105.3956"/>
+</g>
+<!-- sd1 -->
+<g id="node3" class="node">
+<title>sd1</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="243" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text>
+</g>
+<!-- 0&#45;&gt;sd1 -->
+<g id="edge2" class="edge">
+<title>0-&gt;sd1</title>
+<path fill="none" stroke="#000000" d="M270.2854,-144.5708C266.0403,-136.0807 260.8464,-125.6929 256.1337,-116.2674"/>
+<polygon fill="#000000" stroke="#000000" points="259.237,-114.6477 251.6343,-107.2687 252.976,-117.7782 259.237,-114.6477"/>
+</g>
+<!-- ig1 -->
+<g id="node4" class="node">
+<title>ig1</title>
+<ellipse fill="none" stroke="#000000" cx="315" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="315" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- 0&#45;&gt;ig1 -->
+<g id="edge3" class="edge">
+<title>0-&gt;ig1</title>
+<path fill="none" stroke="#000000" d="M287.7146,-144.5708C291.9597,-136.0807 297.1536,-125.6929 301.8663,-116.2674"/>
+<polygon fill="#000000" stroke="#000000" points="305.024,-117.7782 306.3657,-107.2687 298.763,-114.6477 305.024,-117.7782"/>
+</g>
+<!-- id1 -->
+<g id="node5" class="node">
+<title>id1</title>
+<ellipse fill="none" stroke="#000000" cx="387" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="387" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">ID</text>
+</g>
+<!-- 0&#45;&gt;id1 -->
+<g id="edge4" class="edge">
+<title>0-&gt;id1</title>
+<path fill="none" stroke="#000000" d="M298.3082,-149.1278C315.3555,-137.763 340.4019,-121.0654 359.5344,-108.3104"/>
+<polygon fill="#000000" stroke="#000000" points="361.4799,-111.2199 367.8589,-102.7607 357.5969,-105.3956 361.4799,-111.2199"/>
+</g>
+<!-- sg2 -->
+<g id="node6" class="node">
+<title>sg2</title>
+<ellipse fill="none" stroke="#000000" cx="27" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="27" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">21</text>
+</g>
+<!-- sg1&#45;&gt;sg2 -->
+<g id="edge5" class="edge">
+<title>sg1-&gt;sg2</title>
+<path fill="none" stroke="#000000" d="M149.1295,-79.0647C124.7778,-66.8889 85.238,-47.119 57.7715,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="59.114,-30.1439 48.6045,-28.8022 55.9835,-36.4049 59.114,-30.1439"/>
+</g>
+<!-- sd2 -->
+<g id="node7" class="node">
+<title>sd2</title>
+<ellipse fill="none" stroke="#000000" cx="99" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="99" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">12</text>
+</g>
+<!-- sg1&#45;&gt;sd2 -->
+<g id="edge6" class="edge">
+<title>sg1-&gt;sd2</title>
+<path fill="none" stroke="#000000" d="M155.7307,-74.7307C145.803,-64.803 132.6847,-51.6847 121.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="123.7933,-37.8436 114.2473,-33.2473 118.8436,-42.7933 123.7933,-37.8436"/>
+</g>
+<!-- ig2 -->
+<g id="node8" class="node">
+<title>ig2</title>
+<ellipse fill="none" stroke="#000000" cx="171" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="171" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">9</text>
+</g>
+<!-- sg1&#45;&gt;ig2 -->
+<g id="edge7" class="edge">
+<title>sg1-&gt;ig2</title>
+<path fill="none" stroke="#000000" d="M171,-71.8314C171,-64.131 171,-54.9743 171,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="174.5001,-46.4132 171,-36.4133 167.5001,-46.4133 174.5001,-46.4132"/>
+</g>
+<!-- id2 -->
+<g id="node9" class="node">
+<title>id2</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="243" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">7</text>
+</g>
+<!-- sg1&#45;&gt;id2 -->
+<g id="edge8" class="edge">
+<title>sg1-&gt;id2</title>
+<path fill="none" stroke="#000000" d="M186.2693,-74.7307C196.197,-64.803 209.3153,-51.6847 220.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="223.1564,-42.7933 227.7527,-33.2473 218.2067,-37.8436 223.1564,-42.7933"/>
+</g>
+<!-- sg5 -->
+<g id="node10" class="node">
+<title>sg5</title>
+<ellipse fill="none" stroke="#000000" cx="315" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="315" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- id1&#45;&gt;sg5 -->
+<g id="edge9" class="edge">
+<title>id1-&gt;sg5</title>
+<path fill="none" stroke="#000000" d="M371.7307,-74.7307C361.803,-64.803 348.6847,-51.6847 337.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="339.7933,-37.8436 330.2473,-33.2473 334.8436,-42.7933 339.7933,-37.8436"/>
+</g>
+<!-- sd5 -->
+<g id="node11" class="node">
+<title>sd5</title>
+<ellipse fill="none" stroke="#000000" cx="387" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="387" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">31</text>
+</g>
+<!-- id1&#45;&gt;sd5 -->
+<g id="edge10" class="edge">
+<title>id1-&gt;sd5</title>
+<path fill="none" stroke="#000000" d="M387,-71.8314C387,-64.131 387,-54.9743 387,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="390.5001,-46.4132 387,-36.4133 383.5001,-46.4133 390.5001,-46.4132"/>
+</g>
+<!-- ig5 -->
+<g id="node12" class="node">
+<title>ig5</title>
+<ellipse fill="none" stroke="#000000" cx="459" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="459" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text>
+</g>
+<!-- id1&#45;&gt;ig5 -->
+<g id="edge11" class="edge">
+<title>id1-&gt;ig5</title>
+<path fill="none" stroke="#000000" d="M402.2693,-74.7307C412.197,-64.803 425.3153,-51.6847 436.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="439.1564,-42.7933 443.7527,-33.2473 434.2067,-37.8436 439.1564,-42.7933"/>
+</g>
+<!-- id5 -->
+<g id="node13" class="node">
+<title>id5</title>
+<ellipse fill="none" stroke="#000000" cx="531" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="531" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">27</text>
+</g>
+<!-- id1&#45;&gt;id5 -->
+<g id="edge12" class="edge">
+<title>id1-&gt;id5</title>
+<path fill="none" stroke="#000000" d="M408.8705,-79.0647C433.2222,-66.8889 472.762,-47.119 500.2285,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="502.0165,-36.4049 509.3955,-28.8022 498.886,-30.1439 502.0165,-36.4049"/>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/slides/figs/quad_img_simple_comp_avg.svg b/slides/figs/quad_img_simple_comp_avg.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2912f485a2ed5ebd7794c57dde69618566c89f63
--- /dev/null
+++ b/slides/figs/quad_img_simple_comp_avg.svg
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="582pt" height="211pt" viewBox="0.00 0.00 582.00 210.83" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 206.8313)">
+<title>G</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-206.8313 578,-206.8313 578,4 -4,4"/>
+<!-- 0 -->
+<g id="node1" class="node">
+<title>0</title>
+<ellipse fill="none" stroke="#000000" cx="286" cy="-184.8313" rx="27" ry="18"/>
+<text text-anchor="middle" x="286" y="-180.6313" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- sg1 -->
+<g id="node2" class="node">
+<title>sg1</title>
+<ellipse fill="none" stroke="#000000" cx="163" cy="-101.4156" rx="33.6754" ry="29.3315"/>
+<text text-anchor="middle" x="163" y="-105.6156" font-family="Times,serif" font-size="14.00" fill="#000000">12.25</text>
+<text text-anchor="middle" x="163" y="-88.8156" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.36</text>
+</g>
+<!-- 0&#45;&gt;sg1 -->
+<g id="edge1" class="edge">
+<title>0-&gt;sg1</title>
+<path fill="none" stroke="#000000" d="M266.9039,-171.9899C250.6822,-161.0698 226.7895,-144.9585 206,-130.8313 203.4634,-129.1076 200.8445,-127.3245 198.2095,-125.528"/>
+<polygon fill="#000000" stroke="#000000" points="200.0521,-122.5481 189.8198,-119.8004 196.1053,-128.3293 200.0521,-122.5481"/>
+</g>
+<!-- sd1 -->
+<g id="node3" class="node">
+<title>sd1</title>
+<ellipse fill="none" stroke="#000000" cx="246" cy="-101.4156" rx="31.2258" ry="29.3315"/>
+<text text-anchor="middle" x="246" y="-105.6156" font-family="Times,serif" font-size="14.00" fill="#000000">3.75</text>
+<text text-anchor="middle" x="246" y="-88.8156" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43</text>
+</g>
+<!-- 0&#45;&gt;sd1 -->
+<g id="edge2" class="edge">
+<title>0-&gt;sd1</title>
+<path fill="none" stroke="#000000" d="M277.712,-167.5475C273.5772,-158.925 268.4114,-148.1521 263.4571,-137.8205"/>
+<polygon fill="#000000" stroke="#000000" points="266.4822,-136.0343 259.0024,-128.5307 260.1704,-139.061 266.4822,-136.0343"/>
+</g>
+<!-- ig1 -->
+<g id="node4" class="node">
+<title>ig1</title>
+<ellipse fill="none" stroke="#000000" cx="326" cy="-101.4156" rx="31.2258" ry="29.3315"/>
+<text text-anchor="middle" x="326" y="-105.6156" font-family="Times,serif" font-size="14.00" fill="#000000">1.25</text>
+<text text-anchor="middle" x="326" y="-88.8156" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43</text>
+</g>
+<!-- 0&#45;&gt;ig1 -->
+<g id="edge3" class="edge">
+<title>0-&gt;ig1</title>
+<path fill="none" stroke="#000000" d="M294.288,-167.5475C298.4228,-158.925 303.5886,-148.1521 308.5429,-137.8205"/>
+<polygon fill="#000000" stroke="#000000" points="311.8296,-139.061 312.9976,-128.5307 305.5178,-136.0343 311.8296,-139.061"/>
+</g>
+<!-- id1 -->
+<g id="node5" class="node">
+<title>id1</title>
+<ellipse fill="none" stroke="#000000" cx="411" cy="-101.4156" rx="36.125" ry="29.3315"/>
+<text text-anchor="middle" x="411" y="-105.6156" font-family="Times,serif" font-size="14.00" fill="#000000">15.25</text>
+<text text-anchor="middle" x="411" y="-88.8156" font-family="Times,serif" font-size="14.00" fill="#000000"> 13.86</text>
+</g>
+<!-- 0&#45;&gt;id1 -->
+<g id="edge4" class="edge">
+<title>0-&gt;id1</title>
+<path fill="none" stroke="#000000" d="M305.2573,-171.9804C323.5964,-159.7423 351.6784,-141.0024 374.2949,-125.9099"/>
+<polygon fill="#000000" stroke="#000000" points="376.2884,-128.7873 382.6636,-120.3252 372.4029,-122.9647 376.2884,-128.7873"/>
+</g>
+<!-- sg2 -->
+<g id="node6" class="node">
+<title>sg2</title>
+<ellipse fill="none" stroke="#000000" cx="27" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="27" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">21</text>
+</g>
+<!-- sg1&#45;&gt;sg2 -->
+<g id="edge5" class="edge">
+<title>sg1-&gt;sg2</title>
+<path fill="none" stroke="#000000" d="M135.4784,-84.5352C112.3184,-70.33 79.3088,-50.0836 55.7965,-35.6623"/>
+<polygon fill="#000000" stroke="#000000" points="57.3348,-32.5 46.9805,-30.255 53.6749,-38.467 57.3348,-32.5"/>
+</g>
+<!-- sd2 -->
+<g id="node7" class="node">
+<title>sd2</title>
+<ellipse fill="none" stroke="#000000" cx="99" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="99" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">12</text>
+</g>
+<!-- sg1&#45;&gt;sd2 -->
+<g id="edge6" class="edge">
+<title>sg1-&gt;sd2</title>
+<path fill="none" stroke="#000000" d="M144.144,-76.8394C135.8231,-65.9941 126.067,-53.2783 117.7574,-42.4479"/>
+<polygon fill="#000000" stroke="#000000" points="120.3226,-40.0414 111.4585,-34.238 114.7689,-44.3024 120.3226,-40.0414"/>
+</g>
+<!-- ig2 -->
+<g id="node8" class="node">
+<title>ig2</title>
+<ellipse fill="none" stroke="#000000" cx="171" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="171" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">9</text>
+</g>
+<!-- sg1&#45;&gt;ig2 -->
+<g id="edge7" class="edge">
+<title>sg1-&gt;ig2</title>
+<path fill="none" stroke="#000000" d="M165.843,-71.7715C166.6299,-63.5664 167.4822,-54.6796 168.263,-46.5388"/>
+<polygon fill="#000000" stroke="#000000" points="171.7659,-46.6751 169.2366,-36.3866 164.7979,-46.0067 171.7659,-46.6751"/>
+</g>
+<!-- id2 -->
+<g id="node9" class="node">
+<title>id2</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="243" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">7</text>
+</g>
+<!-- sg1&#45;&gt;id2 -->
+<g id="edge8" class="edge">
+<title>sg1-&gt;id2</title>
+<path fill="none" stroke="#000000" d="M184.8604,-78.622C196.1694,-66.83 209.9328,-52.479 221.2289,-40.7006"/>
+<polygon fill="#000000" stroke="#000000" points="223.8495,-43.0247 228.2452,-33.3848 218.7974,-38.1795 223.8495,-43.0247"/>
+</g>
+<!-- sg5 -->
+<g id="node10" class="node">
+<title>sg5</title>
+<ellipse fill="none" stroke="#000000" cx="331" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="331" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- id1&#45;&gt;sg5 -->
+<g id="edge9" class="edge">
+<title>id1-&gt;sg5</title>
+<path fill="none" stroke="#000000" d="M388.7155,-78.1797C377.4137,-66.3954 363.7473,-52.1455 352.5506,-40.4707"/>
+<polygon fill="#000000" stroke="#000000" points="355.0469,-38.0171 345.5991,-33.2224 349.9948,-42.8623 355.0469,-38.0171"/>
+</g>
+<!-- sd5 -->
+<g id="node11" class="node">
+<title>sd5</title>
+<ellipse fill="none" stroke="#000000" cx="403" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="403" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">31</text>
+</g>
+<!-- id1&#45;&gt;sd5 -->
+<g id="edge10" class="edge">
+<title>id1-&gt;sd5</title>
+<path fill="none" stroke="#000000" d="M408.157,-71.7715C407.3701,-63.5664 406.5178,-54.6796 405.737,-46.5388"/>
+<polygon fill="#000000" stroke="#000000" points="409.2021,-46.0067 404.7634,-36.3866 402.2341,-46.6751 409.2021,-46.0067"/>
+</g>
+<!-- ig5 -->
+<g id="node12" class="node">
+<title>ig5</title>
+<ellipse fill="none" stroke="#000000" cx="475" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="475" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text>
+</g>
+<!-- id1&#45;&gt;ig5 -->
+<g id="edge11" class="edge">
+<title>id1-&gt;ig5</title>
+<path fill="none" stroke="#000000" d="M430.2021,-76.3882C438.5112,-65.5583 448.1987,-52.932 456.4352,-42.1968"/>
+<polygon fill="#000000" stroke="#000000" points="459.3652,-44.1277 462.6756,-34.0633 453.8115,-39.8667 459.3652,-44.1277"/>
+</g>
+<!-- id5 -->
+<g id="node13" class="node">
+<title>id5</title>
+<ellipse fill="none" stroke="#000000" cx="547" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="547" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">27</text>
+</g>
+<!-- id1&#45;&gt;id5 -->
+<g id="edge12" class="edge">
+<title>id1-&gt;id5</title>
+<path fill="none" stroke="#000000" d="M439.8421,-83.7253C462.9705,-69.5395 495.2668,-49.7305 518.3455,-35.5753"/>
+<polygon fill="#000000" stroke="#000000" points="520.3114,-38.4754 527.0058,-30.2634 516.6515,-32.5084 520.3114,-38.4754"/>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/slides/figs/quad_img_simple_comp_loss.svg b/slides/figs/quad_img_simple_comp_loss.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c8972b12117d86a3a25eca49a3f7e3a01765b456
--- /dev/null
+++ b/slides/figs/quad_img_simple_comp_loss.svg
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="568pt" height="188pt" viewBox="0.00 0.00 568.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
+<title>G</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-184 564,-184 564,4 -4,4"/>
+<!-- 0 -->
+<g id="node1" class="node">
+<title>0</title>
+<ellipse fill="none" stroke="#000000" cx="280" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="280" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- sg1 -->
+<g id="node2" class="node">
+<title>sg1</title>
+<ellipse fill="none" stroke="#000000" cx="170" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="170" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">SG</text>
+</g>
+<!-- 0&#45;&gt;sg1 -->
+<g id="edge1" class="edge">
+<title>0-&gt;sg1</title>
+<path fill="none" stroke="#000000" d="M260.5874,-149.2936C243.258,-137.9507 217.6682,-121.201 198.1028,-108.3946"/>
+<polygon fill="#000000" stroke="#000000" points="199.8724,-105.3698 189.5885,-102.8216 196.0387,-111.2267 199.8724,-105.3698"/>
+</g>
+<!-- sd1 -->
+<g id="node3" class="node">
+<title>sd1</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-90" rx="27.8725" ry="18"/>
+<text text-anchor="middle" x="243" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">3.75</text>
+</g>
+<!-- 0&#45;&gt;sd1 -->
+<g id="edge2" class="edge">
+<title>0-&gt;sd1</title>
+<path fill="none" stroke="#000000" d="M271.2315,-144.937C266.8721,-136.4537 261.5047,-126.0092 256.6247,-116.513"/>
+<polygon fill="#000000" stroke="#000000" points="259.6463,-114.7352 251.9626,-107.4407 253.4203,-117.9348 259.6463,-114.7352"/>
+</g>
+<!-- ig1 -->
+<g id="node4" class="node">
+<title>ig1</title>
+<ellipse fill="none" stroke="#000000" cx="317" cy="-90" rx="27.8725" ry="18"/>
+<text text-anchor="middle" x="317" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">1.25</text>
+</g>
+<!-- 0&#45;&gt;ig1 -->
+<g id="edge3" class="edge">
+<title>0-&gt;ig1</title>
+<path fill="none" stroke="#000000" d="M288.7685,-144.937C293.1279,-136.4537 298.4953,-126.0092 303.3753,-116.513"/>
+<polygon fill="#000000" stroke="#000000" points="306.5797,-117.9348 308.0374,-107.4407 300.3537,-114.7352 306.5797,-117.9348"/>
+</g>
+<!-- id1 -->
+<g id="node5" class="node">
+<title>id1</title>
+<ellipse fill="none" stroke="#000000" cx="390" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="390" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">ID</text>
+</g>
+<!-- 0&#45;&gt;id1 -->
+<g id="edge4" class="edge">
+<title>0-&gt;id1</title>
+<path fill="none" stroke="#000000" d="M299.4126,-149.2936C316.742,-137.9507 342.3318,-121.201 361.8972,-108.3946"/>
+<polygon fill="#000000" stroke="#000000" points="363.9613,-111.2267 370.4115,-102.8216 360.1276,-105.3698 363.9613,-111.2267"/>
+</g>
+<!-- sg2 -->
+<g id="node6" class="node">
+<title>sg2</title>
+<ellipse fill="none" stroke="#000000" cx="27" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="27" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">21</text>
+</g>
+<!-- sg1&#45;&gt;sg2 -->
+<g id="edge5" class="edge">
+<title>sg1-&gt;sg2</title>
+<path fill="none" stroke="#000000" d="M148.2814,-79.0647C124.2386,-66.9593 85.287,-47.3473 58.032,-33.6245"/>
+<polygon fill="#000000" stroke="#000000" points="59.4288,-30.4092 48.923,-29.0382 56.2808,-36.6614 59.4288,-30.4092"/>
+</g>
+<!-- sd2 -->
+<g id="node7" class="node">
+<title>sd2</title>
+<ellipse fill="none" stroke="#000000" cx="99" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="99" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">12</text>
+</g>
+<!-- sg1&#45;&gt;sd2 -->
+<g id="edge6" class="edge">
+<title>sg1-&gt;sd2</title>
+<path fill="none" stroke="#000000" d="M154.9427,-74.7307C145.153,-64.803 132.2169,-51.6847 121.2503,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="123.5492,-37.9102 114.0356,-33.2473 118.5649,-42.8252 123.5492,-37.9102"/>
+</g>
+<!-- ig2 -->
+<g id="node8" class="node">
+<title>ig2</title>
+<ellipse fill="none" stroke="#000000" cx="171" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="171" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">9</text>
+</g>
+<!-- sg1&#45;&gt;ig2 -->
+<g id="edge7" class="edge">
+<title>sg1-&gt;ig2</title>
+<path fill="none" stroke="#000000" d="M170.2523,-71.8314C170.3593,-64.131 170.4865,-54.9743 170.6053,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="174.1049,-46.4609 170.7443,-36.4133 167.1056,-46.3637 174.1049,-46.4609"/>
+</g>
+<!-- id2 -->
+<g id="node9" class="node">
+<title>id2</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="243" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">7</text>
+</g>
+<!-- sg1&#45;&gt;id2 -->
+<g id="edge8" class="edge">
+<title>sg1-&gt;id2</title>
+<path fill="none" stroke="#000000" d="M185.1256,-75.0816C195.3345,-65.0125 208.9878,-51.5463 220.4693,-40.2221"/>
+<polygon fill="#000000" stroke="#000000" points="222.9806,-42.6611 227.6426,-33.147 218.0651,-37.6773 222.9806,-42.6611"/>
+</g>
+<!-- sg5 -->
+<g id="node10" class="node">
+<title>sg5</title>
+<ellipse fill="none" stroke="#000000" cx="317" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="317" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- id1&#45;&gt;sg5 -->
+<g id="edge9" class="edge">
+<title>id1-&gt;sg5</title>
+<path fill="none" stroke="#000000" d="M374.8744,-75.0816C364.6655,-65.0125 351.0122,-51.5463 339.5307,-40.2221"/>
+<polygon fill="#000000" stroke="#000000" points="341.9349,-37.6773 332.3574,-33.147 337.0194,-42.6611 341.9349,-37.6773"/>
+</g>
+<!-- sd5 -->
+<g id="node11" class="node">
+<title>sd5</title>
+<ellipse fill="none" stroke="#000000" cx="389" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="389" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">31</text>
+</g>
+<!-- id1&#45;&gt;sd5 -->
+<g id="edge10" class="edge">
+<title>id1-&gt;sd5</title>
+<path fill="none" stroke="#000000" d="M389.7477,-71.8314C389.6407,-64.131 389.5135,-54.9743 389.3947,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="392.8944,-46.3637 389.2557,-36.4133 385.8951,-46.4609 392.8944,-46.3637"/>
+</g>
+<!-- ig5 -->
+<g id="node12" class="node">
+<title>ig5</title>
+<ellipse fill="none" stroke="#000000" cx="461" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="461" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text>
+</g>
+<!-- id1&#45;&gt;ig5 -->
+<g id="edge11" class="edge">
+<title>id1-&gt;ig5</title>
+<path fill="none" stroke="#000000" d="M405.0573,-74.7307C414.847,-64.803 427.7831,-51.6847 438.7497,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="441.4351,-42.8252 445.9644,-33.2473 436.4508,-37.9102 441.4351,-42.8252"/>
+</g>
+<!-- id5 -->
+<g id="node13" class="node">
+<title>id5</title>
+<ellipse fill="none" stroke="#000000" cx="533" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="533" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">27</text>
+</g>
+<!-- id1&#45;&gt;id5 -->
+<g id="edge12" class="edge">
+<title>id1-&gt;id5</title>
+<path fill="none" stroke="#000000" d="M411.7186,-79.0647C435.7614,-66.9593 474.713,-47.3473 501.968,-33.6245"/>
+<polygon fill="#000000" stroke="#000000" points="503.7192,-36.6614 511.077,-29.0382 500.5712,-30.4092 503.7192,-36.6614"/>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/slides/figs/quad_img_simple_variation.svg b/slides/figs/quad_img_simple_variation.svg
new file mode 100644
index 0000000000000000000000000000000000000000..eafe19ff0484820ffb90fb9b5cc7bfe21c959fae
--- /dev/null
+++ b/slides/figs/quad_img_simple_variation.svg
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="1142pt" height="188pt" viewBox="0.00 0.00 1142.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
+<title>G</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-184 1138,-184 1138,4 -4,4"/>
+<!-- 0 -->
+<g id="node1" class="node">
+<title>0</title>
+<ellipse fill="none" stroke="#000000" cx="567" cy="-162" rx="27" ry="18"/>
+<text text-anchor="middle" x="567" y="-157.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
+</g>
+<!-- sg1 -->
+<g id="node2" class="node">
+<title>sg1</title>
+<ellipse fill="none" stroke="#000000" cx="171" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="171" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">SG</text>
+</g>
+<!-- 0&#45;&gt;sg1 -->
+<g id="edge1" class="edge">
+<title>0-&gt;sg1</title>
+<path fill="none" stroke="#000000" d="M540.7107,-157.2201C471.8543,-144.7008 286.1298,-110.9327 207.2397,-96.589"/>
+<polygon fill="#000000" stroke="#000000" points="207.7449,-93.1236 197.28,-94.7782 206.4926,-100.0107 207.7449,-93.1236"/>
+</g>
+<!-- sd1 -->
+<g id="node3" class="node">
+<title>sd1</title>
+<ellipse fill="none" stroke="#000000" cx="459" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="459" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">SD</text>
+</g>
+<!-- 0&#45;&gt;sd1 -->
+<g id="edge2" class="edge">
+<title>0-&gt;sd1</title>
+<path fill="none" stroke="#000000" d="M547.6918,-149.1278C530.6445,-137.763 505.5981,-121.0654 486.4656,-108.3104"/>
+<polygon fill="#000000" stroke="#000000" points="488.4031,-105.3956 478.1411,-102.7607 484.5201,-111.2199 488.4031,-105.3956"/>
+</g>
+<!-- ig1 -->
+<g id="node4" class="node">
+<title>ig1</title>
+<ellipse fill="none" stroke="#000000" cx="675" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="675" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">IG</text>
+</g>
+<!-- 0&#45;&gt;ig1 -->
+<g id="edge3" class="edge">
+<title>0-&gt;ig1</title>
+<path fill="none" stroke="#000000" d="M586.3082,-149.1278C603.3555,-137.763 628.4019,-121.0654 647.5344,-108.3104"/>
+<polygon fill="#000000" stroke="#000000" points="649.4799,-111.2199 655.8589,-102.7607 645.5969,-105.3956 649.4799,-111.2199"/>
+</g>
+<!-- id1 -->
+<g id="node5" class="node">
+<title>id1</title>
+<ellipse fill="none" stroke="#000000" cx="963" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="963" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">ID</text>
+</g>
+<!-- 0&#45;&gt;id1 -->
+<g id="edge4" class="edge">
+<title>0-&gt;id1</title>
+<path fill="none" stroke="#000000" d="M593.2893,-157.2201C662.1457,-144.7008 847.8702,-110.9327 926.7603,-96.589"/>
+<polygon fill="#000000" stroke="#000000" points="927.5074,-100.0107 936.72,-94.7782 926.2551,-93.1236 927.5074,-100.0107"/>
+</g>
+<!-- sg2 -->
+<g id="node6" class="node">
+<title>sg2</title>
+<ellipse fill="none" stroke="#000000" cx="27" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="27" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">21</text>
+</g>
+<!-- sg1&#45;&gt;sg2 -->
+<g id="edge5" class="edge">
+<title>sg1-&gt;sg2</title>
+<path fill="none" stroke="#000000" d="M149.1295,-79.0647C124.7778,-66.8889 85.238,-47.119 57.7715,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="59.114,-30.1439 48.6045,-28.8022 55.9835,-36.4049 59.114,-30.1439"/>
+</g>
+<!-- sd2 -->
+<g id="node7" class="node">
+<title>sd2</title>
+<ellipse fill="none" stroke="#000000" cx="99" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="99" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">12</text>
+</g>
+<!-- sg1&#45;&gt;sd2 -->
+<g id="edge6" class="edge">
+<title>sg1-&gt;sd2</title>
+<path fill="none" stroke="#000000" d="M155.7307,-74.7307C145.803,-64.803 132.6847,-51.6847 121.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="123.7933,-37.8436 114.2473,-33.2473 118.8436,-42.7933 123.7933,-37.8436"/>
+</g>
+<!-- ig2 -->
+<g id="node8" class="node">
+<title>ig2</title>
+<ellipse fill="none" stroke="#000000" cx="171" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="171" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">9</text>
+</g>
+<!-- sg1&#45;&gt;ig2 -->
+<g id="edge7" class="edge">
+<title>sg1-&gt;ig2</title>
+<path fill="none" stroke="#000000" d="M171,-71.8314C171,-64.131 171,-54.9743 171,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="174.5001,-46.4132 171,-36.4133 167.5001,-46.4133 174.5001,-46.4132"/>
+</g>
+<!-- id2 -->
+<g id="node9" class="node">
+<title>id2</title>
+<ellipse fill="none" stroke="#000000" cx="243" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="243" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">7</text>
+</g>
+<!-- sg1&#45;&gt;id2 -->
+<g id="edge8" class="edge">
+<title>sg1-&gt;id2</title>
+<path fill="none" stroke="#000000" d="M186.2693,-74.7307C196.197,-64.803 209.3153,-51.6847 220.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="223.1564,-42.7933 227.7527,-33.2473 218.2067,-37.8436 223.1564,-42.7933"/>
+</g>
+<!-- sg3 -->
+<g id="node10" class="node">
+<title>sg3</title>
+<ellipse fill="none" stroke="#000000" cx="315" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="315" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text>
+</g>
+<!-- sd1&#45;&gt;sg3 -->
+<g id="edge9" class="edge">
+<title>sd1-&gt;sg3</title>
+<path fill="none" stroke="#000000" d="M437.1295,-79.0647C412.7778,-66.8889 373.238,-47.119 345.7715,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="347.114,-30.1439 336.6045,-28.8022 343.9835,-36.4049 347.114,-30.1439"/>
+</g>
+<!-- sd3 -->
+<g id="node11" class="node">
+<title>sd3</title>
+<ellipse fill="none" stroke="#000000" cx="387" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="387" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text>
+</g>
+<!-- sd1&#45;&gt;sd3 -->
+<g id="edge10" class="edge">
+<title>sd1-&gt;sd3</title>
+<path fill="none" stroke="#000000" d="M443.7307,-74.7307C433.803,-64.803 420.6847,-51.6847 409.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="411.7933,-37.8436 402.2473,-33.2473 406.8436,-42.7933 411.7933,-37.8436"/>
+</g>
+<!-- ig3 -->
+<g id="node12" class="node">
+<title>ig3</title>
+<ellipse fill="none" stroke="#000000" cx="459" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="459" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text>
+</g>
+<!-- sd1&#45;&gt;ig3 -->
+<g id="edge11" class="edge">
+<title>sd1-&gt;ig3</title>
+<path fill="none" stroke="#000000" d="M459,-71.8314C459,-64.131 459,-54.9743 459,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="462.5001,-46.4132 459,-36.4133 455.5001,-46.4133 462.5001,-46.4132"/>
+</g>
+<!-- id3 -->
+<g id="node13" class="node">
+<title>id3</title>
+<ellipse fill="none" stroke="#000000" cx="531" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="531" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text>
+</g>
+<!-- sd1&#45;&gt;id3 -->
+<g id="edge12" class="edge">
+<title>sd1-&gt;id3</title>
+<path fill="none" stroke="#000000" d="M474.2693,-74.7307C484.197,-64.803 497.3153,-51.6847 508.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="511.1564,-42.7933 515.7527,-33.2473 506.2067,-37.8436 511.1564,-42.7933"/>
+</g>
+<!-- sg4 -->
+<g id="node14" class="node">
+<title>sg4</title>
+<ellipse fill="none" stroke="#000000" cx="603" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="603" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- ig1&#45;&gt;sg4 -->
+<g id="edge13" class="edge">
+<title>ig1-&gt;sg4</title>
+<path fill="none" stroke="#000000" d="M659.7307,-74.7307C649.803,-64.803 636.6847,-51.6847 625.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="627.7933,-37.8436 618.2473,-33.2473 622.8436,-42.7933 627.7933,-37.8436"/>
+</g>
+<!-- sd4 -->
+<g id="node15" class="node">
+<title>sd4</title>
+<ellipse fill="none" stroke="#000000" cx="675" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="675" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- ig1&#45;&gt;sd4 -->
+<g id="edge14" class="edge">
+<title>ig1-&gt;sd4</title>
+<path fill="none" stroke="#000000" d="M675,-71.8314C675,-64.131 675,-54.9743 675,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="678.5001,-46.4132 675,-36.4133 671.5001,-46.4133 678.5001,-46.4132"/>
+</g>
+<!-- ig4 -->
+<g id="node16" class="node">
+<title>ig4</title>
+<ellipse fill="none" stroke="#000000" cx="747" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="747" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">2</text>
+</g>
+<!-- ig1&#45;&gt;ig4 -->
+<g id="edge15" class="edge">
+<title>ig1-&gt;ig4</title>
+<path fill="none" stroke="#000000" d="M690.2693,-74.7307C700.197,-64.803 713.3153,-51.6847 724.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="727.1564,-42.7933 731.7527,-33.2473 722.2067,-37.8436 727.1564,-42.7933"/>
+</g>
+<!-- id4 -->
+<g id="node17" class="node">
+<title>id4</title>
+<ellipse fill="none" stroke="#000000" cx="819" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="819" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text>
+</g>
+<!-- ig1&#45;&gt;id4 -->
+<g id="edge16" class="edge">
+<title>ig1-&gt;id4</title>
+<path fill="none" stroke="#000000" d="M696.8705,-79.0647C721.2222,-66.8889 760.762,-47.119 788.2285,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="790.0165,-36.4049 797.3955,-28.8022 786.886,-30.1439 790.0165,-36.4049"/>
+</g>
+<!-- sg5 -->
+<g id="node18" class="node">
+<title>sg5</title>
+<ellipse fill="none" stroke="#000000" cx="891" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="891" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- id1&#45;&gt;sg5 -->
+<g id="edge17" class="edge">
+<title>id1-&gt;sg5</title>
+<path fill="none" stroke="#000000" d="M947.7307,-74.7307C937.803,-64.803 924.6847,-51.6847 913.5637,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="915.7933,-37.8436 906.2473,-33.2473 910.8436,-42.7933 915.7933,-37.8436"/>
+</g>
+<!-- sd5 -->
+<g id="node19" class="node">
+<title>sd5</title>
+<ellipse fill="none" stroke="#000000" cx="963" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="963" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">31</text>
+</g>
+<!-- id1&#45;&gt;sd5 -->
+<g id="edge18" class="edge">
+<title>id1-&gt;sd5</title>
+<path fill="none" stroke="#000000" d="M963,-71.8314C963,-64.131 963,-54.9743 963,-46.4166"/>
+<polygon fill="#000000" stroke="#000000" points="966.5001,-46.4132 963,-36.4133 959.5001,-46.4133 966.5001,-46.4132"/>
+</g>
+<!-- ig5 -->
+<g id="node20" class="node">
+<title>ig5</title>
+<ellipse fill="none" stroke="#000000" cx="1035" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="1035" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text>
+</g>
+<!-- id1&#45;&gt;ig5 -->
+<g id="edge19" class="edge">
+<title>id1-&gt;ig5</title>
+<path fill="none" stroke="#000000" d="M978.2693,-74.7307C988.197,-64.803 1001.3153,-51.6847 1012.4363,-40.5637"/>
+<polygon fill="#000000" stroke="#000000" points="1015.1564,-42.7933 1019.7527,-33.2473 1010.2067,-37.8436 1015.1564,-42.7933"/>
+</g>
+<!-- id5 -->
+<g id="node21" class="node">
+<title>id5</title>
+<ellipse fill="none" stroke="#000000" cx="1107" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="1107" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">27</text>
+</g>
+<!-- id1&#45;&gt;id5 -->
+<g id="edge20" class="edge">
+<title>id1-&gt;id5</title>
+<path fill="none" stroke="#000000" d="M984.8705,-79.0647C1009.2222,-66.8889 1048.762,-47.119 1076.2285,-33.3858"/>
+<polygon fill="#000000" stroke="#000000" points="1078.0165,-36.4049 1085.3955,-28.8022 1074.886,-30.1439 1078.0165,-36.4049"/>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/slides/figs/quad_struct.svg b/slides/figs/quad_struct.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7bfd48f4d9b2460c0628210f8feb9eef49ae6321
--- /dev/null
+++ b/slides/figs/quad_struct.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="314pt" height="133pt" viewBox="0.00 0.00 313.99 132.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 128.8)">
+<title>G</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-128.8 309.993,-128.8 309.993,4 -4,4"/>
+<!-- 0 -->
+<g id="node1" class="node">
+<title>0</title>
+<ellipse fill="none" stroke="#000000" cx="154" cy="-106.8" rx="27" ry="18"/>
+<text text-anchor="middle" x="154" y="-102.6" font-family="Times,serif" font-size="14.00" fill="#000000">info</text>
+</g>
+<!-- sg1 -->
+<g id="node2" class="node">
+<title>sg1</title>
+<ellipse fill="none" stroke="#000000" cx="27" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="27" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- 0&#45;&gt;sg1 -->
+<g id="edge1" class="edge">
+<title>0-&gt;sg1</title>
+<path fill="none" stroke="#000000" d="M128.139,-101.2097C99.5091,-94.5402 55.8191,-82.7801 43.9116,-70.8 37.256,-64.1038 33.2179,-54.7877 30.7686,-45.8424"/>
+<polygon fill="#000000" stroke="#000000" points="34.1842,-45.0779 28.6235,-36.0597 27.3467,-46.5773 34.1842,-45.0779"/>
+<text text-anchor="middle" x="77.0442" y="-58.2" font-family="Times,serif" font-size="14.00" fill="#000000">sup_gauche</text>
+</g>
+<!-- sd1 -->
+<g id="node3" class="node">
+<title>sd1</title>
+<ellipse fill="none" stroke="#000000" cx="116" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="116" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- 0&#45;&gt;sd1 -->
+<g id="edge2" class="edge">
+<title>0-&gt;sd1</title>
+<path fill="none" stroke="#000000" d="M135.1259,-93.5052C128.1258,-87.4583 120.9598,-79.6658 117.1136,-70.8 113.866,-63.314 112.7418,-54.6514 112.6573,-46.5351"/>
+<polygon fill="#000000" stroke="#000000" points="116.163,-46.4535 113.0537,-36.3252 109.1683,-46.1818 116.163,-46.4535"/>
+<text text-anchor="middle" x="144.4432" y="-58.2" font-family="Times,serif" font-size="14.00" fill="#000000">sup_droit</text>
+</g>
+<!-- ig1 -->
+<g id="node4" class="node">
+<title>ig1</title>
+<ellipse fill="none" stroke="#000000" cx="192" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="192" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- 0&#45;&gt;ig1 -->
+<g id="edge3" class="edge">
+<title>0-&gt;ig1</title>
+<path fill="none" stroke="#000000" d="M161.8951,-89.258C164.5048,-83.401 167.4038,-76.8308 170,-70.8 173.6125,-62.4084 177.4698,-53.2291 180.9294,-44.9121"/>
+<polygon fill="#000000" stroke="#000000" points="184.1753,-46.2217 184.7695,-35.6436 177.7083,-43.5423 184.1753,-46.2217"/>
+<text text-anchor="middle" x="208.0975" y="-58.2" font-family="Times,serif" font-size="14.00" fill="#000000">inf_gauche</text>
+</g>
+<!-- id1 -->
+<g id="node5" class="node">
+<title>id1</title>
+<ellipse fill="none" stroke="#000000" cx="277" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="277" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text>
+</g>
+<!-- 0&#45;&gt;id1 -->
+<g id="edge4" class="edge">
+<title>0-&gt;id1</title>
+<path fill="none" stroke="#000000" d="M179.5839,-100.9465C198.6633,-95.5835 224.5126,-86.1061 243,-70.8 251.566,-63.708 258.7036,-53.8853 264.1911,-44.6338"/>
+<polygon fill="#000000" stroke="#000000" points="267.3563,-46.142 269.1204,-35.695 261.2265,-42.7617 267.3563,-46.142"/>
+<text text-anchor="middle" x="281.4965" y="-58.2" font-family="Times,serif" font-size="14.00" fill="#000000">inf_droit</text>
+</g>
+</g>
+</svg>
\ No newline at end of file