################# Matrix Operations ################# It is possible to perform simple linear algebra routines: .. code-block:: cpp /* Definition of the Matrix type */ using Matrix = danceq::internal::SparseMatrix>; /* 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.); .. note:: We recommend to use `LAPACK `_ libaries like `MKL `_ or :ref:`Petsc`. The functions do **not** support `OpenMP `_. .. doxygenfunction:: danceq::internal::SparseMatrix::operator*(const SparseMatrix& other) const .. doxygenfunction:: danceq::internal::SparseMatrix::operator+(const SparseMatrix& other) const .. doxygenfunction:: danceq::internal::SparseMatrix::operator-(const SparseMatrix& other) const .. doxygenfunction:: danceq::internal::SparseMatrix::operator=(const SparseMatrix& other) .. doxygenfunction:: danceq::internal::SparseMatrix::tensor_product(const SparseMatrix& other) const .. doxygenfunction:: danceq::internal::SparseMatrix::T(void) const .. doxygenfunction:: danceq::internal::SparseMatrix::scale(ScalarType factor)