Trait cgmath::SquareMatrix

source ·
pub trait SquareMatrixwhere
    Self: Matrix<Column = Self::ColumnRow, Row = Self::ColumnRow, Transpose = Self>,{
    type ColumnRow: Array<Element = Self::Element>;

Show 18 methods // Required methods fn from_value(value: Self::Element) -> Self; fn from_diagonal(diagonal: Self::Column) -> Self; fn one() -> Self; fn add_m(&self, m: &Self) -> Self; fn sub_m(&self, m: &Self) -> Self; fn add_self_m(&mut self, m: &Self); fn sub_self_m(&mut self, m: &Self); fn transpose_self(&mut self); fn determinant(&self) -> Self::Element; fn diagonal(&self) -> Self::Column; fn invert(&self) -> Option<Self>; fn is_diagonal(&self) -> bool; fn is_symmetric(&self) -> bool; // Provided methods fn mul_self_m(&mut self, m: &Self) { ... } fn trace(&self) -> Self::Element { ... } fn invert_self(&mut self) { ... } fn is_invertible(&self) -> bool { ... } fn is_one(&self) -> bool { ... }
}
Expand description

A column-major major matrix where the rows and column vectors are of the same dimensions.

Required Associated Types§

source

type ColumnRow: Array<Element = Self::Element>

The row/column vector of the matrix.

This is used to constrain the column and rows to be of the same type in lieu of equality constraints being implemented for where clauses. Once those are added, this type will likely go away.

Required Methods§

source

fn from_value(value: Self::Element) -> Self

Create a new diagonal matrix using the supplied value.

source

fn from_diagonal(diagonal: Self::Column) -> Self

Create a matrix from a non-uniform scale

source

fn one() -> Self

Create a matrix where the each element of the diagonal is equal to one.

source

fn add_m(&self, m: &Self) -> Self

Add this matrix with another matrix, returning the new metrix.

source

fn sub_m(&self, m: &Self) -> Self

Subtract another matrix from this matrix, returning the new matrix.

source

fn add_self_m(&mut self, m: &Self)

Add this matrix with another matrix, in-place.

source

fn sub_self_m(&mut self, m: &Self)

Subtract another matrix from this matrix, in-place.

source

fn transpose_self(&mut self)

Transpose this matrix in-place.

source

fn determinant(&self) -> Self::Element

Take the determinant of this matrix.

source

fn diagonal(&self) -> Self::Column

Return a vector containing the diagonal of this matrix.

source

fn invert(&self) -> Option<Self>

Invert this matrix, returning a new matrix. m.mul_m(m.invert()) is the identity matrix. Returns None if this matrix is not invertible (has a determinant of zero).

source

fn is_diagonal(&self) -> bool

Test if this is a diagonal matrix. That is, every element outside of the diagonal is 0.

source

fn is_symmetric(&self) -> bool

Test if this matrix is symmetric. That is, it is equal to its transpose.

Provided Methods§

source

fn mul_self_m(&mut self, m: &Self)

Multiply this matrix by another matrix, in-place.

source

fn trace(&self) -> Self::Element

Return the trace of this matrix. That is, the sum of the diagonal.

source

fn invert_self(&mut self)

Invert this matrix in-place.

source

fn is_invertible(&self) -> bool

Test if this matrix is invertible.

source

fn is_one(&self) -> bool

Test if this matrix is the identity matrix. That is, it is diagonal and every element in the diagonal is one.

Implementors§