save coeff

This commit is contained in:
Youngjoon Lee 2024-08-22 08:20:27 +02:00
parent 1bac94034d
commit a7f827efd0
No known key found for this signature in database
GPG Key ID: 167546E2D1712F8C
2 changed files with 27 additions and 0 deletions

View File

@ -17,6 +17,7 @@ pub fn run_iteration(
out_sent_sequence_path: &str,
out_received_sequence_path: &str,
out_data_msg_counts_path: &str,
out_ordering_coeff_path: &str,
) {
// Ensure that all output files do not exist
for path in &[
@ -108,6 +109,19 @@ pub fn run_iteration(
transmission_interval,
out_data_msg_counts_path,
);
// Calculate ordering coefficients and save them to a CSV file.
let strong_ordering_coeff = sent_sequence.ordering_coefficient(&received_sequence, true);
let weak_ordering_coeff = sent_sequence.ordering_coefficient(&received_sequence, false);
tracing::info!(
"STRONG_COEFF:{}, WEAK_COEFF:{}",
strong_ordering_coeff,
weak_ordering_coeff
);
save_ordering_coefficients(
strong_ordering_coeff,
weak_ordering_coeff,
out_ordering_coeff_path,
);
}
fn try_probability(rng: &mut StdRng, prob: f32) -> bool {
@ -167,3 +181,15 @@ fn save_data_msg_counts(
});
writer.flush().unwrap();
}
fn save_ordering_coefficients(strong_ordering_coeff: u64, weak_ordering_coeff: u64, path: &str) {
let mut writer = csv::Writer::from_path(path).unwrap();
writer.write_record(["strong", "weak"]).unwrap();
writer
.write_record([
strong_ordering_coeff.to_string(),
weak_ordering_coeff.to_string(),
])
.unwrap();
writer.flush().unwrap();
}

View File

@ -79,6 +79,7 @@ fn main() {
&format!("{paramset_dir}/iteration_{i}_sent_seq.csv"),
&format!("{paramset_dir}/iteration_{i}_recv_seq.csv"),
&format!("{paramset_dir}/iteration_{i}_data_msg_counts.csv"),
&format!("{paramset_dir}/iteration_{i}_ordering_coeff.csv"),
);
tracing::info!("ParamSet:{}, Iteration:{} completed.", paramset.id, i);
}