generer H avec k
This commit is contained in:
@ -33,3 +33,21 @@ pub fn generate_random_h(rows: usize, cols: usize, wc: usize, wr: usize) -> Matr
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn generate_random_h_for_k(k: usize, wc: usize, wr: usize) -> MatrixGF2 {
|
||||
assert!(wr > wc, "wr < wc ...");
|
||||
assert!((k * wr) % (wr - wc) == 0, "Colonnes non entieres");
|
||||
|
||||
let n = (k * wr) / (wr - wc);
|
||||
let m = n - k;
|
||||
|
||||
// On garde que les matrice de rang m
|
||||
loop {
|
||||
let h_matrix = generate_random_h(m, n, wc, wr);
|
||||
let mut h_test = h_matrix.clone();
|
||||
let (rank, _) = h_test.gauss_jordan_swap_cols();
|
||||
if rank == m {
|
||||
return h_matrix;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,6 +41,7 @@ impl DenseEncoder {
|
||||
// let mut codeword = vec![0; self.n];
|
||||
|
||||
// s = u * G
|
||||
|
||||
// for c in 0..self.n {
|
||||
// let mut sum = 0;
|
||||
// for r in 0..self.k {
|
||||
|
||||
Reference in New Issue
Block a user