/* * info-528, * entêtes pour le tp1 */ #ifndef _TP1_H #define _TP1_H /* bibliothèques qui peuvent servir... */ #include #include #include #include #include #include /* types d'entier avec garantie sur le nombre de bits */ #include /* gestion des arguments optionels de la ligne de commandes */ #include /* pour initialiser la graine pour générer des nombres aléatoires */ /* * le type des mots */ typedef uint32_t mot; /* * affiche les 'n' bits de poids faible d'un mot */ void print_bin(mot m,int n) ; /* * renvoie le nombre de '1' dans un mot */ int poids(mot m) ; /* * renvoie le décalage circulaire (à droite) de p bits sur un mot de n bits */ unsigned decalage_circulaire(mot m, int n, int p) ; /* * code une suite de 12 bits (bits de poids faible d'un mot) en ajoutant la * redondance donnée par la matrice A * Le résultat (23 bits ou 24 bits pour la version étendue) est stocké dans * les 23 bits de poid faible du mot renvoyé. */ mot code_golay(mot entree) ; /* * même chose, mais avec un bit de parité en plus */ mot code_golay_etendu(mot entree) ; /* * ajoute un bit de parité (en bit de poids faible) */ mot bit_parite(mot entree) ; /* * syndrome d'un mot du code de Golay (sans bit de parité) */ mot syndrome_golay(mot m) ; /* * correction d'erreur pour le code de Golay en utilisant la méthode "error * trapping" + cyclicité */ mot correction_golay(mot m) ; /* * décode un mot du code de golay un supprimant les bits de redondance */ mot decode_golay(mot m) ; /* * fonction de test exécutée avec l'argument "-T" depuis la ligne de commande */ void test_cmd(void) ; /* * ajoute des erreurs sur un mot * chaque bit à une probabilité p d'être modifié */ mot bruite_mot(mot m, double p) ; #endif /* _TP1_H */