sums/sums.rs
1extern crate fast_floats;
2
3use fast_floats::Fast;
4
5// for demonstration purposes
6pub unsafe fn fast_sum(xs: &[f64]) -> f64 {
7 xs.iter().map(|&x| Fast::new(x)).fold(Fast::new(0.), |acc, x| acc + x).get()
8}
9
10// for demonstration purposes
11pub unsafe fn fast_dot(xs: &[f64], ys: &[f64]) -> f64 {
12 xs.iter().zip(ys).fold(Fast::new(0.), |acc, (&x, &y)| acc + Fast::new(x) * Fast::new(y)).get()
13}
14
15pub fn regular_sum(xs: &[f64]) -> f64 {
16 xs.iter().map(|&x| x).fold(0., |acc, x| acc + x)
17}
18
19fn main() {
20}