ggq 0.1.1

A simulation framework for multi-server queues.
Documentation
extern crate ggq;

use ggq::{SimEnv, SimParams};

fn main() {
    let params = SimParams {
        mean_inter_arrival_time: 10.0,
        mean_service_time: 8.0,
    };

    let max_time = 10000.0;
    let n_rep = 1000;

    let mut sum_w_q = 0.0;
    let mut sum_w_s = 0.0;
    for r in 1..=n_rep {
        let mut env = SimEnv::new(&params);

        env.simulate(max_time);
        sum_w_q += env.get_metrics().mean_waiting_time.unwrap();
        sum_w_s += env.get_metrics().mean_cycle_time.unwrap();
        println!(
            "Rep {r:5} ... E[W_q] = {:2.4}, E[W_s] = {:2.4}",
            env.get_metrics().mean_waiting_time.unwrap(),
            env.get_metrics().mean_cycle_time.unwrap()
        )
    }
    println!(
        "Average waiting time: {:2.2}\nAverage sojourn time: {:2.2}",
        sum_w_q / n_rep as f64,
        sum_w_s / n_rep as f64
    );
}