rustebra 0.3.0

A hybrid no_std/alloc linear algebra crate for Rust, scaling from embedded targets to dynamic Krylov subspace solvers.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use rustebra::scalar::Scalar;

#[test]
fn f32_scalar_operations() {
    assert_eq!(f32::zero(), 0.0);
    assert_eq!(f32::one(), 1.0);
    assert_eq!(2.0f32.add(3.0), 5.0);
    assert_eq!(5.0f32.sub(3.0), 2.0);
    assert_eq!(2.0f32.mul(3.0), 6.0);
    assert_eq!(6.0f32.div(3.0), 2.0);
    assert_eq!(Scalar::sqrt(4.0f32), 2.0);

    let sin = Scalar::sin(core::f32::consts::FRAC_PI_2);
    assert!((sin - 1.0).abs() < 1e-6);

    let cos = Scalar::cos(core::f32::consts::PI);
    assert!((cos - (-1.0)).abs() < 1e-6);
}