numberlab 0.1.9

A collection of numerical algorithms
Documentation
use numberlab::mat;
use numberlab::structure::matrix::{
    identity, lower_triangular, transpose, upper_triangular, Matrix,
};

fn main() {
    let matrix1 = mat![[10, 2, 3], [3, 40, 1]];
    let matrix2 = mat![[1, 2, 3], [3, 4, 5]];
    let matrix3 = mat![[1, 2], [3, 4], [5, 6]];
    let matrix4 = mat![[1.0, 2.0, 3.0], [3.0, 4.0, 5.0], [5.0, 6.0, 7.0]];

    println!("ROW 0 of M1 : {:?}", matrix1.row(0));
    println!("ROW 1 of M1 : {:?}", matrix1.row(1));
    println!("COL 0 of M1 : {:?}", matrix1.col(0));
    println!("COL 1 of M1 : {:?}", matrix1.col(1));
    println!("COL 2 of M1 : {:?}", matrix1.col(2));

    println!();

    println!("M1 : {}", matrix1);
    println!("M2 : {}", matrix2);
    println!("M3 : {}", matrix3);
    println!("M1 + M2 : {}", matrix1.clone() + matrix2.clone());
    println!("M1 - M2 : {}", matrix1.clone() - matrix2.clone());
    println!("M1 * M3 : {}", matrix1.clone() * matrix3.clone());

    println!();

    println!("M2 + 2 : {}", matrix2.clone() + 2);
    println!("M2 - 2 : {}", matrix2.clone() - 2);
    println!("M2 * 2 : {}", matrix2.clone() * 2);
    println!("M4  / 2 : {}", matrix4.clone() / 2.0);

    println!();

    println!("Transpose of M1 : {}", transpose(matrix1));
    println!("Transpose of M2 : {}", transpose(matrix2));
    println!("Transpose of M3 : {}", transpose(matrix3));

    println!();

    println!("I1  : {}", identity::<i8, 1>());
    println!("I2  : {}", identity::<i8, 2>());
    println!("I5  : {}", identity::<i8, 5>());
    println!("I10 : {}", identity::<i8, 10>());

    println!();

    println!("UM of {} is : {}", matrix4, upper_triangular(matrix4));
    println!("LM of {} is : {}", matrix4, lower_triangular(matrix4));

    println!();

    println!("M1 is_square : {}", matrix1.is_square());
    println!("M4 is_square : {}", matrix4.is_square());

    println!();

    println!("M1 is_identity : {}", matrix1.is_identity());
    println!("I9 is_identity : {}", identity::<i8, 9>().is_identity());

    println!();

    println!(
        "UM4 is_upper_triangular : {}",
        upper_triangular(matrix4).is_upper_triangular()
    );
    println!(
        "UM4 is_lower_triangular : {}",
        upper_triangular(matrix4).is_lower_triangular()
    );
    println!(
        "LM4 is_upper_triangular : {}",
        lower_triangular(matrix4).is_upper_triangular()
    );
    println!(
        "LM4 is_lower_triangular : {}",
        lower_triangular(matrix4).is_lower_triangular()
    );
}