cumsum_simd

Function cumsum_simd 

Source
pub fn cumsum_simd<F>(a: &ArrayView1<'_, F>) -> Array1<F>
where F: Float + SimdUnifiedOps,
Expand description

SIMD-accelerated cumulative sum (prefix sum)

Computes the cumulative sum of elements. result[i] = sum(a[0..=i])

§Arguments

  • a - Input array

§Returns

Array of cumulative sums

§Examples

use scirs2_core::ndarray::{array, Array1};
use scirs2_core::ndarray_ext::elementwise::cumsum_simd;

let x = array![1.0_f64, 2.0, 3.0, 4.0, 5.0];

let result = cumsum_simd::<f64>(&x.view());
assert!((result[0] - 1.0).abs() < 1e-14);   // 1
assert!((result[1] - 3.0).abs() < 1e-14);   // 1+2
assert!((result[2] - 6.0).abs() < 1e-14);   // 1+2+3
assert!((result[3] - 10.0).abs() < 1e-14);  // 1+2+3+4
assert!((result[4] - 15.0).abs() < 1e-14);  // 1+2+3+4+5

§Use Cases

  • Computing CDF from PDF
  • Running totals and statistics
  • Parallel prefix algorithms
  • Integral image computation