Sparse module¶
This module includes all of the implementation for creating Sparse and Lazy Matrices.
-
class
Sparse.ColMatrix(dims)¶ Bases:
MatrixInterface.SquareMatrixA type of sparse matrix extending the Square Matrix class
-
multiply(m)¶ Multiplies self with another matrix
- Parameters
m – (ColMatrix) other matriix on the right hand side of the multiplication
- Returns
(ColMatrix) Product of the multiplication
-
tensorProduct(otherMatrix)¶ Calculates the tensor product of two Column Matrices.
- Parameters
otherMatrix – (ColMatrix) the matrix on the right hand side of the tensor product
- Return newMatrix
(ColMatrix) new matrix representing the tensor product
-
toDense()¶ Creates a dense numpy matrix representation of the matrix
- Return dense
(numpy.ndarray) Numpy array representing the matrix
-
-
class
Sparse.ColumnElement(j, val)¶ Bases:
objectColumn element ina sparse matrix
-
class
Sparse.Gate(dims, sm, qbpos)¶ Bases:
Sparse.LazyMatrixLazy representation of a quantum gate
-
apply(v)¶ Applies the Gate to a vector
- Parameters
v – (array or Vector) The vector the gate will be applied to, must be the same dimesion as self
- Return w
(Vector) The result of the application of the gate
-
-
class
Sparse.LazyMatrix(dims)¶ Bases:
MatrixInterface.SquareMatrixCreates a lazy matrix
-
Evaluate()¶ Evaluates the entire matrix, not recommended to ever call it. Takes a long time and is useless for our purposes Puts the evaluated ColMatrix into self.Cache
-
multiply(m)¶ This operation is useless in our case and doesn’t actually work, so … yeah
- Parameters
m – (LazyMatrix) matrix to multiply by (perhaps implemented in the future)
- Returns
-
-
class
Sparse.SparseMatrix(n, elements)¶ Bases:
MatrixInterface.Matrix,objectCreates sparse matrix, assumes they are square matrices
- Parameters
n – (int) dimensions of matrix
elements – (list) objects the requisite elements of the matrix
-
apply(v)¶ Applies the sparse Matrix to some vector V
- Parameters
v – some vector of the Vector() class
- Returns
(list) The resultant vector from applying the matrix to v
-
makedense()¶ makes a dense matrix
-
multiply(b)¶ Multiplies matrix with some other matrix b, will make this apply to none sparse matrices can be called by A*b where A is a sparse matrix
- Parameters
b – SparseMatrix()
- Returns
(list) the product of two matrices
-
tensorProduct(a)¶ Returns the tensor product of two matrices, currently applies to two sparse matrices
- Parameters
a – (list) sparse matrix to operate on
- Returns
(list) result of tensor product
-
Sparse.makeSparse(matrix)¶ Converts dense matrix into sparse matrix in (row, column, value) form
- Parameters
matrix – (list) Matrix to be converted to Sparse
- Returns
(list) Sparse matrix
-
Sparse.toColMat(mat)¶ Creates a ColMatrix representation from an numpy array
- Parameters
mat – (numpy.ndarray) Array to be converted
- Returns
(ColMatrix) Column matrix representation of mat