numeric 0.1.4

N-dimensional matrix class for Rust
Documentation
use numeric::Tensor;

#[test]
fn add_axis() {
    let a: Tensor<f64> = Tensor::range(2*3*4).reshape(&[2, 3, 4]);

    let answer0 = Tensor::new(vec![12., 14., 16., 18.,
                                   20., 22., 24., 26.,
                                   28., 30., 32., 34.]).reshape(&[3, 4]);

    let answer1 = Tensor::new(vec![12., 15., 18., 21.,
                                   48., 51., 54., 57.]).reshape(&[2, 4]);

    let answer2 = Tensor::new(vec![6., 22., 38.,
                                   54., 70., 86.]).reshape(&[2, 3]);

    let c0 = a.sum_axis(0);
    assert!(c0 == answer0);

    let c1 = a.sum_axis(1);
    assert!(c1 == answer1);

    let c2 = a.sum_axis(2);
    assert!(c2 == answer2);
}

#[test]
fn bitand_axis() {
    let a = Tensor::new(vec![true, true, true,
                             false, true, false]).reshape(&[2, 3]);

    let answer0 = Tensor::new(vec![false, true, false]);
    let answer1 = Tensor::new(vec![true, false]);

    let c0 = a.bitand_axis(0);
    assert!(c0 == answer0);

    let c1 = a.bitand_axis(1);
    assert!(c1 == answer1);
}