MCPcopy Create free account
hub / github.com/Open-Quant/openquant / histogram

Function histogram

crates/openquant/src/codependence.rs:43–79  ·  view source on GitHub ↗
(values: &[f64], n_bins: usize)

Source from the content-addressed store, hash-verified

41}
42
43fn histogram(values: &[f64], n_bins: usize) -> CodependenceResult<Vec<usize>> {
44 if n_bins == 0 {
45 return Err(CodependenceError::InvalidBins);
46 }
47
48 let mut min_value = f64::INFINITY;
49 let mut max_value = f64::NEG_INFINITY;
50 for value in values {
51 if *value < min_value {
52 min_value = *value;
53 }
54 if *value > max_value {
55 max_value = *value;
56 }
57 }
58
59 let mut counts = vec![0usize; n_bins];
60 if (max_value - min_value).abs() < f64::EPSILON {
61 counts[n_bins - 1] = values.len();
62 return Ok(counts);
63 }
64
65 let bin_width = (max_value - min_value) / n_bins as f64;
66
67 for value in values {
68 let mut idx = ((value - min_value) / bin_width).floor() as isize;
69 if idx < 0 {
70 idx = 0;
71 }
72 if idx as usize >= n_bins {
73 idx = (n_bins as isize) - 1;
74 }
75 counts[idx as usize] += 1;
76 }
77
78 Ok(counts)
79}
80
81fn histogram2d(x: &[f64], y: &[f64], n_bins: usize) -> CodependenceResult<Vec<Vec<usize>>> {
82 if x.len() != y.len() {

Callers 2

get_mutual_infoFunction · 0.85

Calls 1

lenMethod · 0.80

Tested by

no test coverage detected