Horner's rule for polynomial evaluation: Difference between revisions
Content deleted Content added
Updated third D entry |
→{{header|Rust}}: Update to Rust 0.9-pre syntax |
||
Line 1,144:
<lang Rust>
fn horner(v: ~[f64], x: f64) -> f64 {
let mut accum = 0.0;
let vlen = v.len();
for
accum = accum*x + v[vlen - idx - 1];
};
accum
Line 1,156:
fn main() {
let
}</lang>▼
▲</lang>
Works with any number type. It uses a reversed left fold to accumulate the result, similar to the Haskell solution.
<lang Rust>// rust 0.9-pre
fn horner<T:Num>(cs:&[T], x:T) -> T {
cs.rev_iter().fold(std::num::zero::<T>(), |acc, c| (acc*x) + (*c))
}
fn main() {
println!("{}", horner([-19, 7, -4, 6], 3));
}</lang>
=={{header|Run BASIC}}==
|