(values: &[f64])
| 435 | let n = rows.len(); |
| 436 | let m = rows[0].len(); |
| 437 | let flat: Vec<f64> = rows.iter().flat_map(|r| r.iter().copied()).collect(); |
| 438 | DMatrix::<f64>::from_row_slice(n, m, &flat) |
| 439 | } |
| 440 | |
| 441 | fn pearson_corr(x: &[f64], y: &[f64]) -> f64 { |
| 442 | if x.len() != y.len() || x.is_empty() { |
| 443 | return 0.0; |
| 444 | } |
| 445 | let mx = x.iter().sum::<f64>() / x.len() as f64; |
| 446 | let my = y.iter().sum::<f64>() / y.len() as f64; |
| 447 | let mut num = 0.0; |
| 448 | let mut vx = 0.0; |
no test coverage detected