qmat

Version codecov Build Status Docs open issues License Code Size

qmat is a simple library for 2-dimensional matrices.

Usage

New matrix

There are three main ways to create a new matrix.

```rust use qmat::prelude::*;

// Creates the matrix 2x3 // [0, 1, 2] // [3, 4, 5] // The generics are the data type, the number of rows, the // number of cols then the lenth of the data (rows * cols) let mat: Matrix = Matrix::new([0, 1, 2, 3, 4, 5]).unwrap();

// Or, let mat = Matrix::<_, 2, 3, 6>::new([0, 1, 2, 3, 4, 5]).unwrap(); ```

```rust use qmat::prelude::*;

// Creates the same matrix using the analagous macro pattern. // Automatically unwraps the errors. let mat = matrix!(2, 3, [0, 1, 2, 3, 4, 5]); ```

rust use qmat::prelude::*; let mat = matrix!([[0, 1, 2], [3, 4, 5]]);

Matrices can also be created using Matrix::empty and Matrix::diag.

Retrieving a value

Using a [usize; 2]

rust use qmat::prelude::*; let mat = matrix!([[0, 1, 2], [3, 4, 5]]); println!("{}", mat[[1, 1]]); // 4

Using the position struct

rust use qmat::prelude::*; let mat = matrix!([[0, 1, 2], [3, 4, 5]]); let pos = Position(0, 2); println!("{}", mat[pos]); // 2

Matrix operations

Iterators

Todo