diff --git a/src/function/evaluate.rs b/src/function/evaluate.rs index 1c5b6bdd..5fe6e0a9 100644 --- a/src/function/evaluate.rs +++ b/src/function/evaluate.rs @@ -11,16 +11,10 @@ /// /// Returns 0 for a 0 length coefficient slice pub fn polynomial(z: f64, coeff: &[f64]) -> f64 { - let n = coeff.len(); - if n == 0 { - return 0.0; - } - - let mut sum = *coeff.last().unwrap(); - for c in coeff[0..n - 1].iter().rev() { - sum = *c + z * sum; - } - sum + coeff + .into_iter() + .rev() + .fold(0_f64, |acc, val| acc * z + val) } #[rustfmt::skip]