opensrdk-linear-algebra 0.6.1

Standard linear algebra library using blas and lapack for OpenSRDK toolchain.
Documentation

linear-algebra-rs

Usage

[dependencies]
opensrdk-linear-algebra = "0.1.0"
blas-src = { version = "0.6", features = ["openblas"] }
lapack-src = { version = "0.6", features = ["openblas"] }
extern crate opensrdk_linear_algebra;
extern crate blas_src;
extern crate lapack_src;

You can also use accelerate, intel-mkl, or netlib instead. See here.

Macro

#[cfg(test)]
mod tests {
    use crate::prelude::*;
    #[test]
    fn it_works() {
        let a = mat!(
            1.0, 0.0;
            0.0, 1.0
        );
        assert_eq!(a[(0,0)], 1.0);
        assert_eq!(a[(0,1)], 0.0);
        assert_eq!(a[(1,0)], 0.0);
        assert_eq!(a[(1,1)], 1.0);

        let b = mat!(
            &a, zeros!(2, 2);
            zeros!(2, 2), &a
        );

        assert_eq!(b[(0,0)], 1.0);
        assert_eq!(b[(0,1)], 0.0);
        assert_eq!(b[(3,0)], 0.0);
        assert_eq!(b[(3,3)], 1.0);
    }
}
#[cfg(test)]
mod tests {
    use crate::prelude::*;
    #[test]
    fn it_works() {
        let a = mat!(
            1.0, 2.0;
            3.0, 4.0
        ) * mat!(
            5.0, 6.0;
            7.0, 8.0
        );
        assert_eq!(a[(0,0)], 19.0)
    }
}