vraiment la merde
This commit is contained in:
@ -6,12 +6,15 @@ use crate::code::{self, LdpcCode};
|
||||
use crate::construction::random::{generate_random_h, generate_random_h_for_k};
|
||||
use crate::decoder::bit_flip::BitFlipDecoder;
|
||||
use crate::encoder::dense::DenseEncoder;
|
||||
use crate::utils;
|
||||
use rand::{Rng, RngExt};
|
||||
|
||||
pub fn run_simulation(k: usize, wc: usize, wr: usize, error_prob: f64) {
|
||||
pub fn run_simulation(text: &str, wc: usize, wr: usize, error_prob: f64) {
|
||||
let mut message_bits = utils::string_to_bits(text);
|
||||
let k = message_bits.len();
|
||||
println!(
|
||||
"\nSimulation LDPC : k = {} bits, wc = {}, wr = {}, p = {:.2}",
|
||||
k, wc, wr, error_prob
|
||||
"\nSimulation LDPC : k = {} bits, wc = {}, wr = {}, p = {:.2}, text : {}",
|
||||
k, wc, wr, error_prob, text
|
||||
);
|
||||
|
||||
println!("Construction");
|
||||
@ -68,17 +71,22 @@ pub fn run_simulation(k: usize, wc: usize, wr: usize, error_prob: f64) {
|
||||
|
||||
match decoder.decode(&received, max_iter) {
|
||||
Some(decoded) => {
|
||||
let decoded_message = &decoded[0..encoder.k];
|
||||
let res_text = utils::bits_to_string(decoded_message);
|
||||
if decoded == codeword {
|
||||
println!(" -> Réussite");
|
||||
} else {
|
||||
println!(" -> Echec : le decoder a convergé vers un mauvais codeword");
|
||||
}
|
||||
println!(" -> Texte recu : {}", res_text);
|
||||
}
|
||||
None => {
|
||||
let failed_text = utils::bits_to_string(&received[0..encoder.k]);
|
||||
println!(
|
||||
" -> Echec : impossible decorriger après {} itérations",
|
||||
max_iter
|
||||
);
|
||||
println!(" -> Texte recu : {}", failed_text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user