Matrix Operations
It is possible to perform simple linear algebra routines:
/* Definition of the Matrix type */
using Matrix = danceq::internal::SparseMatrix<std::complex<double>>;
/* Creating and doing something with the Matrix */
Matrix A, B;
...
Matrix C = A * B;
Matrix D = A - B;
Matrix E = A.tensor_product(B);
/* transpose of A */
Matrix F = A.T();
/* G = 42 * A */
Matrix G = A.scale(42.);
-
SparseMatrix<ScalarType> danceq::internal::SparseMatrix::operator*(const SparseMatrix<ScalarType> &other) const
Overloaded multiplication.
- Parameters:
other – Input matrix.
- Returns:
this*other
-
SparseMatrix<ScalarType> danceq::internal::SparseMatrix::operator+(const SparseMatrix<ScalarType> &other) const
Overloaded addition.
- Parameters:
other – Input matrix.
- Returns:
this+other
-
SparseMatrix<ScalarType> danceq::internal::SparseMatrix::operator-(const SparseMatrix<ScalarType> &other) const
Overloaded subtraction.
- Parameters:
other – Input matrix.
- Returns:
this-other
-
SparseMatrix<ScalarType> &danceq::internal::SparseMatrix::operator=(const SparseMatrix<ScalarType> &other)
Overloaded equality.
- Parameters:
other – Input matrix.
- Returns:
other
-
SparseMatrix<ScalarType> danceq::internal::SparseMatrix::tensor_product(const SparseMatrix<ScalarType> &other) const
Tensor product between two matrices.
Returns the tensor product of this and other. The return matrix has the dimension this-> get_dim() times other. get_dim().
\[\mathrm{this} \otimes \mathrm{other}\]- Parameters:
other – Input matrix.
- Returns:
this X other
-
SparseMatrix<ScalarType> danceq::internal::SparseMatrix::T(void) const
Returns the transpose of the matrix.
- Returns:
Transposed matrix of other
-
int32_t danceq::internal::SparseMatrix::scale(ScalarType factor)
Scales matrix.
- Parameters:
factor – Factor for scaling
- Returns:
error_code