Compute min/max for f64 values, skipping nulls.
(values: &[f64], valid: &[bool])
| 126 | |
| 127 | /// Compute min/max for f64 values, skipping nulls. |
| 128 | pub(super) fn numeric_min_max_f64(values: &[f64], valid: &[bool]) -> (f64, f64) { |
| 129 | let mut min = f64::INFINITY; |
| 130 | let mut max = f64::NEG_INFINITY; |
| 131 | for (v, &is_valid) in values.iter().zip(valid.iter()) { |
| 132 | if is_valid { |
| 133 | if *v < min { |
| 134 | min = *v; |
| 135 | } |
| 136 | if *v > max { |
| 137 | max = *v; |
| 138 | } |
| 139 | } |
| 140 | } |
| 141 | if min == f64::INFINITY { |
| 142 | (0.0, 0.0) |
| 143 | } else { |
| 144 | (min, max) |
| 145 | } |
| 146 | } |
no test coverage detected