All changes
This commit is contained in:
parent
593f380581
commit
49f7ec2f5a
60 changed files with 1783 additions and 679 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue