40 lines
989 B
OCaml
40 lines
989 B
OCaml
module CLineaire :
|
|
sig
|
|
type t = {
|
|
k : int;
|
|
n : int;
|
|
g : Math.matrice;
|
|
h : Math.matrice; }
|
|
type code_lineaire = t
|
|
exception PasDansLeCodeException
|
|
exception IndecodableException
|
|
|
|
val antecedent : code_lineaire -> Math.vecteur -> Math.vecteur
|
|
val encoder : code_lineaire -> Math.vecteur -> Math.vecteur
|
|
val systematiqueFromRedondance : int -> int -> Math.matrice -> code_lineaire
|
|
val distance_minimale : code_lineaire -> int
|
|
val decoder : code_lineaire -> Math.vecteur -> Math.vecteur
|
|
val appartenir : code_lineaire -> Math.vecteur -> bool
|
|
|
|
type classesLaterales = {
|
|
syndr : Math.vecteur -> Math.vecteur;
|
|
erreur : Math.vecteur -> Math.vecteur;
|
|
babr : Math.vecteur Math.binabr;
|
|
}
|
|
val genererClasses : t -> classesLaterales
|
|
val decoder2 : classesLaterales -> Math.vecteur -> Math.vecteur
|
|
|
|
end
|
|
|
|
module CCyclique :
|
|
sig
|
|
type t = {
|
|
k : int;
|
|
n : int;
|
|
pol : Math.polynome; }
|
|
|
|
val get : int -> int -> Math.polynome -> t
|
|
end
|
|
|
|
val cycliqueVersLineaire : CCyclique.t -> CLineaire.t
|