use-linear 0.0.2

Utility-first linear-algebra scaffolding for RustUse
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use use_linear::{Matrix2, Vector2, dot, solve_2x2};

fn main() -> Result<(), use_linear::LinearError> {
    let vector = Vector2::new(3.0, 4.0);
    let basis = Matrix2::new(2.0, 1.0, 5.0, 3.0);
    let rhs = Vector2::new(1.0, 2.0);

    assert!((dot(vector, Vector2::new(-2.0, 1.0)) + 2.0).abs() < 1.0e-12);
    assert!((vector.magnitude() - 5.0).abs() < 1.0e-12);
    assert_eq!(
        basis.mul_vector(Vector2::new(1.0, -1.0)),
        Vector2::new(1.0, 2.0)
    );
    assert_eq!(basis * Matrix2::identity(), basis);
    assert_eq!(solve_2x2(basis, rhs)?, Vector2::new(1.0, -1.0));

    Ok(())
}