pub trait MatrixOperations<F> {
    // Required methods
    fn new(n_rows: usize, n_cols: usize, elements: Vec<F>) -> Self;
    fn elements(&self) -> &Vec<F>;
    fn get_element(&self, i: usize, j: usize) -> F;
    fn set_element(&mut self, i: usize, j: usize, val: F);
    fn rows(&self) -> Vec<&[F]>;
    fn n_rows(&self) -> usize;
    fn n_cols(&self) -> usize;
    fn transpose(&self) -> Self;
    fn hadamard_product(&self, rhs: &Self) -> Result<Self>
       where Self: Sized;

    // Provided method
    fn iter_rows(&self) -> Chunks<'_, F> { ... }
}

Required Methods§

source

fn new(n_rows: usize, n_cols: usize, elements: Vec<F>) -> Self

Create a new matrix

source

fn elements(&self) -> &Vec<F>

Access elements as a vector

source

fn get_element(&self, i: usize, j: usize) -> F

Get element[i,j]

source

fn set_element(&mut self, i: usize, j: usize, val: F)

Set element[i,j]

source

fn rows(&self) -> Vec<&[F]>

Get rows

source

fn n_rows(&self) -> usize

Number of rows

source

fn n_cols(&self) -> usize

Number of columns

source

fn transpose(&self) -> Self

Take transpose of the matrix

source

fn hadamard_product(&self, rhs: &Self) -> Result<Self>where Self: Sized,

Compute Hadamard (element-wise) product

Provided Methods§

source

fn iter_rows(&self) -> Chunks<'_, F>

Get rows in chunks

Implementors§