Struct quantum::matrix::Matrix
[−]
[src]
pub struct Matrix {
// some fields omitted
}Represents a square matrix over C of maximum size MAX_SIZE.
Each element is an instance of Complex, and we store the elements
internally in an array of size MAX_SIZE^2 * sizeof(Complex).
In practice, this means each matrix occupies around 16KiB.
Methods
impl Matrix[src]
fn new(size: usize) -> Matrix
Construct a new zero-initialized matrix of given size.
Panics
We panic if the given size exceeds MAX_SIZE.
fn new_from_elements(size: usize, elements: Vec<Complex>) -> Matrix
Construct a new matrix of given size from elements.
Panics
We panic if the given size exceeds MAX_SIZE.
fn identity(size: usize) -> Matrix
fn embed(&mut self, other: &Matrix, i: usize, j: usize)
Embed another matrix into this one, overrising elements.
Embed with top-left position at (i, j).
Panics
We panic if this matrix isn't large enough.
fn permute_rows(&self, permutation: Vec<usize>) -> Matrix
Permute the rows to generate a new matrix.
Row i goes to row perutation[i].
Panics
We panic if set(permutation) != {0, ..., self.size - 1}.
fn permute_columns(&self, permutation: Vec<usize>) -> Matrix
Permute the columns to generate a new matrix.
Column i goes to column perutation[i].
Panics
We panic if set(permutation) != {0, ..., self.size - 1}.
fn size(&self) -> usize
Size of the matrix.
fn get(&self, i: usize, j: usize) -> Complex
Get the element in position (i, j).
fn set(&mut self, i: usize, j: usize, value: Complex)
Set the element in position (i, j) to value.
fn approx_eq(&self, other: &Matrix) -> bool
Approximately equal test.
Trait Implementations
impl Debug for Matrix[src]
impl PartialEq for Matrix[src]
fn eq(&self, other: &Matrix) -> bool
This method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, other: &Rhs) -> bool1.0.0
This method tests for !=.
impl<'a> Add<&'a Matrix> for &'a Matrix[src]
type Output = Matrix
The resulting type after applying the + operator
fn add(self, rhs: &'a Matrix) -> Matrix
The method for the + operator
impl<'a> Mul<&'a Matrix> for &'a Matrix[src]
type Output = Matrix
The resulting type after applying the * operator
fn mul(self, rhs: &Matrix) -> Matrix
The method for the * operator
impl<'a> Mul<&'a Vector> for &'a Matrix[src]
Implements standard matrix vector multiplication.
Panics
We panic if the vector contains non-zero elements in
positions self.size or beyond.