Liste des erreurs les plus fréquentes lors de l'écriture de la TFR-1D : ===================================================================== 1. Ecriture de la fonction mult_comp : --------------------------------- La fonction suivante est erronée : void mult_comp_erronee(float res[2],float c1[2],float c2[2]) { res[0]=c1[0]*c2[0]-c1[1]*c2[1]; res[1]=c1[0]*c2[1]+c1[1]*c2[0]; } Voyez-vous pourquoi cette fonction est erronée ? Pour la rendre correcte, il est nécessaire d'introduire deux variables flottantes. 2. Utilisation des opérations de décalage de bits : ---------------------------------------------- Pour décaler la variable j d'un bit vers la gauche, la syntaxe suivante est erronée : j<<1; et doit être remplacée par : j=j<<1; 3. Ecriture de la fonction init_w : ------------------------------ Vérifiez que vous obtenez les valeurs suivantes, pour N=8 : w[0][0]=1.0 w[1][0]=0.707 w[2][0]=0.0 w[3][0]=-0.707 w[0][1]=0.0 w[1][1]=-0.707 w[2][1]=-1.0 w[3][1]=-0.707 4. Ecriture de la fonction init_spectre : ------------------------------------ Cette fonction est relativement complexe à écrire, dans la mesure où elle doit fonctionner pour une valeur quelconque de la constante P, et sachant qu'elle ne doit pas dépendre du codage interne des entiers. Si vous éprouvez des difficultés pour écrire cette fonction, cliquez sur l'icône d'aide de la séance 1 de travaux pratiques, et suivez l'algorithme qui y est proposé. 5. Ecriture de la phase d'additions/soustractions : ---------------------------------------------- La séquence suivante est erronée : addi_comp(spectre[ind1],spectre[ind1],spectre[ind2]); sous_comp(spectre[ind2],spectre[ind1],spectre[ind2]); Voyez-vous en quoi cette séquence est erronée ? Pour la rendre correcte, il est nécessaire d'introduire deux variables flottantes auxiliaires. 6. Tests de validation : ------------------- Les valeurs fournies pour effectuer les tests correspondent aux modules du spectre, et non aux parties réelles du spectre. Attention à la lecture du sujet !