(values: &[f64])
| 287 | } |
| 288 | |
| 289 | fn std_dev(values: &[f64]) -> f64 { |
| 290 | if values.len() < 2 { |
| 291 | return 0.0; |
| 292 | } |
| 293 | let mu = mean(values); |
| 294 | let var = values |
| 295 | .iter() |
| 296 | .map(|v| { |
| 297 | let d = *v - mu; |
| 298 | d * d |
| 299 | }) |
| 300 | .sum::<f64>() |
| 301 | / (values.len() as f64 - 1.0); |
| 302 | var.sqrt() |
| 303 | } |
| 304 | |
| 305 | fn silverman_bandwidth(samples: &[f64]) -> f64 { |
| 306 | let sigma = std_dev(samples); |
no test coverage detected