simplification rustique
This commit is contained in:
@ -38,16 +38,24 @@ impl DenseEncoder {
|
||||
|
||||
pub fn encode(&self, message: &[u8]) -> Vec<u8> {
|
||||
assert_eq!(message.len(), self.k, "Taille du message non valide");
|
||||
let mut codeword = vec![0; self.n];
|
||||
// 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 {
|
||||
sum ^= message[r] & self.g_matrix.get(r, c);
|
||||
}
|
||||
codeword[c] = sum;
|
||||
}
|
||||
// for c in 0..self.n {
|
||||
// let mut sum = 0;
|
||||
// for r in 0..self.k {
|
||||
// sum ^= message[r] & self.g_matrix.get(r, c);
|
||||
// }
|
||||
// codeword[c] = sum;
|
||||
// }
|
||||
|
||||
let mut codeword: Vec<u8> = (0..self.n)
|
||||
.map(|c| {
|
||||
message.iter().enumerate().fold(0, |acc, (r, &msg_bit)| {
|
||||
acc ^ (msg_bit & self.g_matrix.get(r, c))
|
||||
})
|
||||
})
|
||||
.collect();
|
||||
|
||||
// Reverse les changement de colonnes
|
||||
for &(c1, c2) in self.col_swaps.iter().rev() {
|
||||
|
||||
Reference in New Issue
Block a user