opensrdk-linear-algebra 0.1.0

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

linear-algebra-rs

Usage

[dependencies]
opensrdk-linear-algebra = { git = "https://github.com/OpenSRDK/linear-algebra-rs.git" }
openblas-src = "0.9"
extern crate opensrdk_linear_algebra;
extern crate openblas_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)
    }
}