All changes

This commit is contained in:
Andras Schmelczer 2026-03-14 21:36:00 +00:00
parent 593f380581
commit 49f7ec2f5a
60 changed files with 1783 additions and 679 deletions

View file

@ -47,40 +47,6 @@ pub struct Histogram {
pub counts: Vec<u64>,
}
impl Histogram {
/// Width of each middle bin (between p1 and p99).
#[allow(dead_code)]
pub fn middle_bin_width(&self) -> f32 {
let num_bins = self.counts.len();
if num_bins <= 2 {
return self.p99 - self.p1;
}
(self.p99 - self.p1) / (num_bins - 2) as f32
}
/// Get the bin index for a value.
#[allow(dead_code)]
pub fn bin_for_value(&self, value: f32) -> usize {
let num_bins = self.counts.len();
if num_bins == 0 {
return 0;
}
if value < self.p1 {
return 0; // Low outlier bin
}
if value >= self.p99 {
return num_bins - 1; // High outlier bin
}
// Middle bins
let middle_width = self.middle_bin_width();
if middle_width <= 0.0 {
return num_bins / 2;
}
let middle_bin = ((value - self.p1) / middle_width) as usize;
// Bins 1 to n-2 are the middle bins
(1 + middle_bin).min(num_bins - 2)
}
}
pub struct FeatureStats {
pub slider_min: f32,