diff --git a/slides/cours_21.md b/slides/cours_21.md index 102aaf02ae8da80a31b592039745cf4335cd7652..94f4d3ef6868c6ee6806f26f98ac22b06e33164f 100644 --- a/slides/cours_21.md +++ b/slides/cours_21.md @@ -102,6 +102,8 @@ arbre symétrie(arbre) ## Écrire le pseudo-code (5min, matrix) +. . . + ```C rien compression_sans_pertes(arbre) si !est_feuille(arbre) @@ -241,7 +243,7 @@ bool last_value(node *qt, int *val) { . . . -* On stocke la moyenne, et le carré de la moyenne. +* On stocke la moyenne, et la moyenne des carrés. ```C struct noeud @@ -281,7 +283,7 @@ rien compression_avec_pertes(arbre, theta) pour i de 0 à 3 compression_avec_pertes(arbre.enfant[i]) si derniere_branche(arbre) - si racine(arbre.moyenne*arbre.moyenne - arbre.moyenne_carre) < theta + si racine(arbre.moyenne_carre - arbre.moyenne^2) < theta detruire_enfants(arbre) ``` @@ -345,7 +347,7 @@ struct étoile ```C rien iteration_temporelle(étoiles, dt) pour étoile_une dans étoiles - étoile_une.a = 0 + étoile_une.f = 0 pour étoile_deux dans étoiles si (étoile_un != étoile_deux) étoile_une.f += @@ -368,6 +370,8 @@ rien iteration_temporelle(étoiles, dt) ## En temps CPU pour **une itération** +\footnotesize + * Si temps pour $N=1$ on calcule en $1\mu s$: +--------+-------+-------+-----------+ @@ -478,7 +482,7 @@ rien iteration_temporelle(étoiles, dt) * La numérotation est: * 0: ID * 1: SD - * 2: ID + * 2: IG * 3: SG # Exemple d'insertion @@ -622,7 +626,7 @@ rien iteration_temporelle(étoiles, dt) \begin{align} m&=m_2+m_3,\\ -\vec x &= \frac{m_2\vec x_2+m_3+\vec x_3}{m}. +\vec x &= \frac{m_2\vec x_2+m_3\vec x_3}{m}. \end{align} ## Chaque feuille contient **une étoile** @@ -645,7 +649,7 @@ m&=m_2+m_3,\\ * Si le noeud `n` * ne contient pas de corps, on y dépose `c`, * est interne, on met à jour masse et centre de masse. `c` est inséré récursivement dans le bon quadrant. - * est est externe, on subdivise `n`, on met à jour la masse et centre de masse, on insère récursivement les deux noeuds dans les quadrants appropriés. + * est externe, on subdivise `n`, on met à jour la masse et centre de masse, on insère récursivement les deux noeuds dans les quadrants appropriés. ## Remarque @@ -680,16 +684,16 @@ struct node rien insertion_etoile(arbre, e) si (!est_vide(arbre) && dans_le_quadrant(arbre.q, e.x)) { si (est_feuille(arbre)) - si (est_vide(arbre)) + si (!contient_etoile(arbre)) arbre.e = e sinon - // on crée enfants et arbre.sup_etoile est initialisée + // on crée enfants et arbre.sup_etoile est initialisée subdivision_arbre(arbre, e) pour enfant dans arbre.enfants insertion_etoile(enfant, arbre.e) pour enfant dans arbre.enfants insertion_etoile(enfant, e) - destruction(etoile) + destruction(arbre.e) sinon maj_masse_cdm(arbre.sup_etoile, e) pour enfant dans arbre.enfants