use super::calibrator::Calibrator;
use super::types::CalibrationResult;
pub(crate) fn rand_simple(seed: usize) -> usize {
let a: usize = 1103515245;
let c: usize = 12345;
let m: usize = 1 << 31;
(a.wrapping_mul(seed).wrapping_add(c)) % m
}
pub fn calibrate_min_max(data: &[f32], bits: usize, symmetric: bool) -> CalibrationResult {
let mut calibrator = Calibrator::min_max(bits, symmetric);
calibrator.observe(data);
calibrator.compute()
}
pub fn calibrate_percentile(
data: &[f32],
bits: usize,
symmetric: bool,
lower: f32,
upper: f32,
) -> CalibrationResult {
let mut calibrator = Calibrator::percentile(bits, symmetric, lower, upper, data.len());
calibrator.observe(data);
calibrator.compute()
}