#cd "/home/mysaa/Documents/Arbeiten/TIPE2021";;
#use "Codes.ml";;

(* Test du produit de matrice *)
let matest = [0b01110; 0b00101; 0b10111];;
print_matrice 5 matest;;
produit matest 0b110;; (* -> 0b10010 = 8*)

(* Test des fonctions de base *)
deux_puissance 11;;
identite 3;;
changer_bit 2 6;;
respecter 7 [3];;


(* Test des Codes *)
(* Un classique : code de Hamming (4, 7)
 1 0 0 0
 0 1 0 0
 0 0 1 0
 0 0 0 1
 1 1 1 0 1 0 0
 1 1 0 1 0 1 0
 1 0 1 1 0 0 1
-> les 4 premières colonnes : G
-> les 3 dernières lignes : H
*)
let code_hamming = 
	construire_code_lineaire_systematique 4 7 [7; 3; 5; 6]
;;
let code_paparfait = 
	construire_code_lineaire_systematique 
print_vecteur 6 (encoder code_hamming 6);;


print_matrice 3 (suivants 3 (suivants 3 (suivants 3 (suivants 3 [0b000]))));;

distance_minimale code_hamming;;


print_vecteur 7 (encoder code_hamming 0b0100);;
decoder code_hamming 0b1010100;;
decoder code_hamming 0b0010100;;
decoder code_hamming 0b1110000;;
print_vecteur 7 21;;
