Anonymous user
Horner's rule for polynomial evaluation: Difference between revisions
Horner's rule for polynomial evaluation (view source)
Revision as of 21:59, 16 May 2015
, 9 years ago→{{header|Rust}}: stable Rust
(→{{header|Python}}: add numpy version) |
(→{{header|Rust}}: stable Rust) |
||
Line 1,435:
=={{header|Rust}}==
▲fn horner(v: ~[f64], x: f64) -> f64 {
}
fn main() {
let v
println!("result: {}", horner(&v, 3.0));
}</lang>
'''Uses a gated feature (the Zero trait), only works in unstable Rust'''
<lang rust>#![feature(zero_one)
use std::num::
use std::ops::{Mul, Add};
fn horner<
where Arr: Clone,
▲ cs.iter().rev().fold(zero::<T>(), |acc, c| (acc*x) + (*c))
Arg: Clone,
Out: Zero + Mul<Arg, Output=Out> + Add<Arr, Output=Out>,
{
v.iter().rev().fold(Zero::zero(), |acc, coeff| acc*x.clone() + coeff.clone())
}
fn main() {
let output: f64 = horner(&v, 3.0);
println!("result: {}", output);
}</lang>
|