mod analysis;
mod channel;
mod code;
mod construction;
mod decoder;
mod encoder;
mod matrix;
mod simulation;
mod tanner;
mod utils;

use analysis::{AnalysisConfig, Analyzer, DecoderAlgorithm};

fn main() {
    // println!("Analyse des performences");

    // let config = AnalysisConfig {
    //     k_values: vec![50, 200, 400, 800, 1000],
    //     wc_values: vec![3, 4, 5],
    //     wr_values: vec![6, 8, 9, 12, 15, 16],
    //     min_error_prob: 0.00,
    //     max_error_prob: 0.12,
    //     steps: 15,
    //     frames_per_step: 1000,
    //     max_iter: 50,
    //     algorithm: DecoderAlgorithm::BitFlipping,
    // };
    //
    // let res = Analyzer::run_batch(config);
    // Analyzer::save_csv(&res, "ldpc_analysis_results.csv");

    let message = "Je";
    simulation::run_simulation(message, 3, 6, 0.02);
}
