matrix-42 0.1.0

A linear algebra library written in Rust with basic matrix and vector operations
Documentation
use matrix::{approx_eq, Complex, Vector, C, V};

#[test]
fn test_norm() {
    let u = V!([0., 0., 0.]);
    assert_eq!(u.norm_1(), 0.);
    assert_eq!(u.norm(), 0.);
    assert_eq!(u.norm_inf(), 0.);

    let u = V!([1., 2., 3.]);
    assert_eq!(u.norm_1(), 6.);
    assert!(approx_eq!(u.norm() as f64, 3.74165738_f64));
    assert_eq!(u.norm_inf(), 3.);

    let u = V!([-1., -2.]);
    assert_eq!(u.norm_1(), 3.);
    assert!(approx_eq!(u.norm() as f64, 2.236067977_f64));
    assert_eq!(u.norm_inf(), 2.);

    let u = V!([1., 2., 3., 4.]);
    assert_eq!(u.norm_1(), 10.);
    assert!(approx_eq!(u.norm() as f64, 5.477225575_f64));
    assert_eq!(u.norm_inf(), 4.);

    let u = V!([1., 2., 3., 4., 5.]);
    assert_eq!(u.norm_1(), 15.);
    assert!(approx_eq!(u.norm() as f64, 7.416198487_f64));
    assert_eq!(u.norm_inf(), 5.);

    let u = V!([1., 2., 3., 4., 5., 6.]);
    assert_eq!(u.norm_1(), 21.);
    assert!(approx_eq!(u.norm() as f64, 9.539392014_f64));
    assert_eq!(u.norm_inf(), 6.);
}

#[test]
fn test_norm_complex_numbers() {
    let u = V!([C!(1., 2.), C!(3., 4.)]);
    assert!(approx_eq!(u.norm_1() as f64, 7.236068));
    assert!(approx_eq!(u.norm() as f64, 5.477225575));
    assert_eq!(u.norm_inf(), 5.);
}