blas-array2 0.3.0

Parameter-optional BLAS wrapper by ndarray::Array (Ix1 or Ix2).
Documentation
use crate::util::*;
use approx::*;
use blas_array2::blas1::asum::ASUM;
use blas_array2::util::*;

#[cfg(test)]
mod valid {
    use super::*;

    #[test]
    fn test_example() {
        for incx in [1, 2] {
            let n = 100;
            let x = random_array(1000);
            let x_slc = slice_1d(n, incx);
            let out = ASUM::default().x(x.slice(x_slc)).run().unwrap();
            let expected = x.slice(x_slc).view().mapv(f64::abs).sum();
            assert_relative_eq!(out, expected, epsilon = 1.0e-6);
        }

        for incx in [1, 2] {
            let n = 100;
            let x = random_array::<c64>(1000);
            let x_slc = slice_1d(n, incx);
            let out = ASUM::default().x(x.slice(x_slc)).run().unwrap();
            let expected = x.slice(x_slc).view().mapv(|v| v.re.abs() + v.im.abs()).sum();
            assert_relative_eq!(out, expected, epsilon = 1.0e-6);
        }
    }
}