Skip to content
Snippets Groups Projects

coquilles cours 21

Merged pierre.kunzli requested to merge pk into master
1 file
+ 13
9
Compare changes
  • Side-by-side
  • Inline
+ 13
9
@@ -102,6 +102,8 @@ arbre symétrie(arbre)
@@ -102,6 +102,8 @@ arbre symétrie(arbre)
## Écrire le pseudo-code (5min, matrix)
## Écrire le pseudo-code (5min, matrix)
 
. . .
 
```C
```C
rien compression_sans_pertes(arbre)
rien compression_sans_pertes(arbre)
si !est_feuille(arbre)
si !est_feuille(arbre)
@@ -241,7 +243,7 @@ bool last_value(node *qt, int *val) {
@@ -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
```C
struct noeud
struct noeud
@@ -281,7 +283,7 @@ rien compression_avec_pertes(arbre, theta)
@@ -281,7 +283,7 @@ rien compression_avec_pertes(arbre, theta)
pour i de 0 à 3
pour i de 0 à 3
compression_avec_pertes(arbre.enfant[i])
compression_avec_pertes(arbre.enfant[i])
si derniere_branche(arbre)
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)
detruire_enfants(arbre)
```
```
@@ -345,7 +347,7 @@ struct étoile
@@ -345,7 +347,7 @@ struct étoile
```C
```C
rien iteration_temporelle(étoiles, dt)
rien iteration_temporelle(étoiles, dt)
pour étoile_une dans étoiles
pour étoile_une dans étoiles
étoile_une.a = 0
étoile_une.f = 0
pour étoile_deux dans étoiles
pour étoile_deux dans étoiles
si (étoile_un != étoile_deux)
si (étoile_un != étoile_deux)
étoile_une.f +=
étoile_une.f +=
@@ -368,6 +370,8 @@ rien iteration_temporelle(étoiles, dt)
@@ -368,6 +370,8 @@ rien iteration_temporelle(étoiles, dt)
## En temps CPU pour **une itération**
## En temps CPU pour **une itération**
 
\footnotesize
 
* Si temps pour $N=1$ on calcule en $1\mu s$:
* Si temps pour $N=1$ on calcule en $1\mu s$:
+--------+-------+-------+-----------+
+--------+-------+-------+-----------+
@@ -478,7 +482,7 @@ rien iteration_temporelle(étoiles, dt)
@@ -478,7 +482,7 @@ rien iteration_temporelle(étoiles, dt)
* La numérotation est:
* La numérotation est:
* 0: ID
* 0: ID
* 1: SD
* 1: SD
* 2: ID
* 2: IG
* 3: SG
* 3: SG
# Exemple d'insertion
# Exemple d'insertion
@@ -622,7 +626,7 @@ rien iteration_temporelle(étoiles, dt)
@@ -622,7 +626,7 @@ rien iteration_temporelle(étoiles, dt)
\begin{align}
\begin{align}
m&=m_2+m_3,\\
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}
\end{align}
## Chaque feuille contient **une étoile**
## Chaque feuille contient **une étoile**
@@ -645,7 +649,7 @@ m&=m_2+m_3,\\
@@ -645,7 +649,7 @@ m&=m_2+m_3,\\
* Si le noeud `n`
* Si le noeud `n`
* ne contient pas de corps, on y dépose `c`,
* 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 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
## Remarque
@@ -680,16 +684,16 @@ struct node
@@ -680,16 +684,16 @@ struct node
rien insertion_etoile(arbre, e)
rien insertion_etoile(arbre, e)
si (!est_vide(arbre) && dans_le_quadrant(arbre.q, e.x)) {
si (!est_vide(arbre) && dans_le_quadrant(arbre.q, e.x)) {
si (est_feuille(arbre))
si (est_feuille(arbre))
si (est_vide(arbre))
si (!contient_etoile(arbre))
arbre.e = e
arbre.e = e
sinon
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)
subdivision_arbre(arbre, e)
pour enfant dans arbre.enfants
pour enfant dans arbre.enfants
insertion_etoile(enfant, arbre.e)
insertion_etoile(enfant, arbre.e)
pour enfant dans arbre.enfants
pour enfant dans arbre.enfants
insertion_etoile(enfant, e)
insertion_etoile(enfant, e)
destruction(etoile)
destruction(arbre.e)
sinon
sinon
maj_masse_cdm(arbre.sup_etoile, e)
maj_masse_cdm(arbre.sup_etoile, e)
pour enfant dans arbre.enfants
pour enfant dans arbre.enfants
Loading