| 
| 
template<typename Matrix, typename InVector, typename OutVector>  | 
| __global__ void  | ColumnMajorDenseMatrixVectorMultiplicationKernel (const Matrix matrix, const InVector inVector, OutVector outVector, int begin, int end, int gridIdx, typename Matrix::RealType matrixMultiplicator, typename Matrix::RealType outVectorMultiplicator) | 
| template<typename Matrix>  | 
| void  | compressSparseMatrix (Matrix &A) | 
|   | Avoids unnecessary zero elements.  
  | 
| 
template<typename Matrix, typename AdjacencyMatrix>  | 
| void  | copyAdjacencyStructure (const Matrix &A, AdjacencyMatrix &B, bool has_symmetric_pattern=false, bool ignore_diagonal=true) | 
| 
template<typename Matrix, typename Index, typename IndexVectorView, typename ValueVectorView, typename RowLengthsVector>  | 
| void  | copyBuffersToMatrixElements (Matrix &m, const IndexVectorView &thisColumnsBuffer_view, const ValueVectorView &thisValuesBuffer_view, Index baseRow, Index lastRow, Index maxRowLength, RowLengthsVector &thisRowLengths, IndexVectorView rowLocalIndexes_view) | 
| 
template<typename Matrix1, typename Matrix2>  | 
| void  | copyDenseToDenseMatrix (Matrix1 &A, const Matrix2 &B) | 
| 
template<typename Matrix1, typename Matrix2>  | 
| void  | copyDenseToSparseMatrix (Matrix1 &A, const Matrix2 &B) | 
| 
template<typename Matrix, typename Index, typename IndexVector, typename ValueVector>  | 
| void  | copyMatrixElementsToBuffers (const Matrix &m, Index baseRow, Index lastRow, Index maxRowLength, IndexVector &columnsBuffer, ValueVector &valuesBuffer) | 
| 
template<typename Matrix1, typename Matrix2>  | 
| void  | copySparseMatrix (Matrix1 &A, const Matrix2 &B) | 
| 
template<typename Matrix1, typename Matrix2>  | 
| std::enable_if_t< std::is_same_v< typename Matrix1::DeviceType, typename Matrix2::DeviceType > >  | copySparseMatrix_impl (Matrix1 &A, const Matrix2 &B) | 
| 
template<typename Matrix1, typename Matrix2>  | 
| std::enable_if_t< ! std::is_same_v< typename Matrix1::DeviceType, typename Matrix2::DeviceType > &&std::is_same_v< typename Matrix2::DeviceType, Devices::Host > >  | copySparseMatrix_impl (Matrix1 &A, const Matrix2 &B) | 
| 
template<typename Matrix1, typename Matrix2>  | 
| std::enable_if_t< ! std::is_same_v< typename Matrix1::DeviceType, typename Matrix2::DeviceType > &&std::is_same_v< typename Matrix2::DeviceType, Devices::Cuda > >  | copySparseMatrix_impl (Matrix1 &A, const Matrix2 &B) | 
| 
template<typename Matrix1, typename Matrix2>  | 
| void  | copySparseToDenseMatrix (Matrix1 &A, const Matrix2 &B) | 
| 
template<typename Matrix1, typename Matrix2>  | 
| void  | copySparseToSparseMatrix (Matrix1 &A, const Matrix2 &B) | 
| 
template<int tileDim, typename Matrix, typename Real, typename Index>  | 
| __global__ void  | DenseInPlaceTranspositionKernel (Matrix matrix, const Real matrixMultiplicator, const typename Matrix::IndexType gridIdx_x, const typename Matrix::IndexType gridIdx_y) | 
| 
template<int tileDim, typename ResultMatrix, typename Matrix1, typename Matrix2>  | 
| __global__ void  | DenseMatrixProductKernel (ResultMatrix resultMatrix, const Matrix1 matrixA, const Matrix2 matrixB, const typename ResultMatrix::RealType matrixMultiplicator, TransposeState TransposeA, TransposeState TransposeB, const typename ResultMatrix::IndexType gridIdx_x, const typename ResultMatrix::IndexType gridIdx_y) | 
| 
template<int tileDim, typename OutputMatrix, typename InputMatrix, typename Real, typename Index>  | 
| __global__ void  | DenseTranspositionKernel (OutputMatrix resultMatrix, const InputMatrix inputMatrix, const Real matrixMultiplicator, const typename OutputMatrix::IndexType gridIdx_x, const typename OutputMatrix::IndexType gridIdx_y) | 
| 
template<typename Real>  | 
| __cuda_callable__ Real  | determinant (const StaticMatrix< Real, 2, 2 > &A) | 
| 
template<typename Real>  | 
| __cuda_callable__ Real  | determinant (const StaticMatrix< Real, 3, 3 > &A) | 
| 
template<typename Real>  | 
| __cuda_callable__ Real  | determinant (const StaticMatrix< Real, 4, 4 > &A) | 
| 
template<typename RealType, typename IndexType>  | 
| __global__ void  | GeamCudaKernel (const IndexType m, const IndexType n, const RealType alpha, const RealType *A, const IndexType lda, const RealType beta, const RealType *B, const IndexType ldb, RealType *C, const IndexType ldc) | 
| 
template<typename RealType, typename IndexType>  | 
| __global__ void  | GemvCudaKernel (const IndexType m, const IndexType n, const RealType alpha, const RealType *A, const IndexType lda, const RealType *x, const RealType beta, RealType *y) | 
| 
template<typename Matrix>  | 
| auto  | getGinkgoMatrixCsr (std::shared_ptr< const gko::Executor > exec, Matrix &matrix) -> std::unique_ptr< gko::matrix::Csr< typename Matrix::RealType, typename Matrix::IndexType > > | 
|   | Converts any TNL sparse matrix to a Ginkgo Csr matrix. 
  | 
| 
template<typename Matrix>  | 
| auto  | getGinkgoMatrixCsrView (std::shared_ptr< const gko::Executor > exec, Matrix &matrix) -> std::unique_ptr< gko::matrix::Csr< typename Matrix::RealType, typename Matrix::IndexType > > | 
|   | Creates a Ginkgo Csr matrix view from a TNL CSR matrix. 
  | 
| 
template<typename Matrix, typename Real, int tileDim = 16>  | 
| void  | getInPlaceTransposition (Matrix &matrix, Real matrixMultiplicator=1.0) | 
| 
template<typename ResultMatrix, typename Matrix1, typename Matrix2, typename Real, int tileDim = 16>  | 
| void  | getMatrixProduct (ResultMatrix &resultMatrix, const Matrix1 &matrix1, const Matrix2 &matrix2, Real matrixMultiplicator=1.0, TransposeState transposeA=TransposeState::None, TransposeState transposeB=TransposeState::None) | 
| template<typename OutMatrix, typename InMatrix>  | 
| OutMatrix  | getSymmetricPart (const InMatrix &inMatrix) | 
|   | This function computes \(( A + A^T ) / 2 \), where \( A \) is a square matrix.  
  | 
| 
template<typename ResultMatrix, typename Matrix, typename Real, int tileDim = 16>  | 
| void  | getTransposition (ResultMatrix &resultMatrix, const Matrix &matrix, Real matrixMultiplicator=1.0) | 
| 
template<typename Real>  | 
| __cuda_callable__ StaticMatrix< Real, 2, 2 >  | inverse (const StaticMatrix< Real, 2, 2 > &A) | 
| 
template<typename Real>  | 
| __cuda_callable__ StaticMatrix< Real, 3, 3 >  | inverse (const StaticMatrix< Real, 3, 3 > &A) | 
| 
template<typename Real>  | 
| __cuda_callable__ StaticMatrix< Real, 4, 4 >  | inverse (const StaticMatrix< Real, 4, 4 > &A) | 
| 
constexpr std::false_type  | isDenseMatrix (...) | 
|   | This checks if the matrix is dense matrix. 
  | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| constexpr std::true_type  | isDenseMatrix (const DenseMatrixBase< Real, Device, Index, Organization > &) | 
| 
constexpr std::false_type  | isMatrix (...) | 
|   | This checks if given type is matrix. 
  | 
| 
template<typename MatrixElementsLambda, typename CompressedRowLengthsLambda, typename Real, typename Device, typename Index>  | 
| constexpr std::true_type  | isMatrix (const LambdaMatrix< MatrixElementsLambda, CompressedRowLengthsLambda, Real, Device, Index > &) | 
| 
template<typename Real, typename Device, typename Index, typename MatrixType, ElementsOrganization Organization>  | 
| constexpr std::true_type  | isMatrix (const MatrixBase< Real, Device, Index, MatrixType, Organization > &) | 
| 
constexpr std::false_type  | isSparseMatrix (...) | 
|   | This checks if the sparse matrix is stored in CSR format. 
  | 
| 
template<typename Real, typename Device, typename Index, typename MatrixType, typename SegmentsView, typename ComputeReal>  | 
| constexpr std::true_type  | isSparseMatrix (const SparseMatrixBase< Real, Device, Index, MatrixType, SegmentsView, ComputeReal > &) | 
| 
template<typename InMatrixView, typename OutMatrixView, typename Real, typename Index>  | 
| __global__ void  | MultidiagonalMatrixTranspositionCudaKernel (const InMatrixView inMatrix, OutMatrixView outMatrix, const Real matrixMultiplicator, const Index gridIdx) | 
| 
template<typename Value, std::size_t Rows1, std::size_t SharedDim, std::size_t Columns2, typename Permutation>  | 
| StaticMatrix< Value, Rows1, Columns2, Permutation >  | operator* (const StaticMatrix< Value, Rows1, SharedDim, Permutation > &matrix1, const StaticMatrix< Value, SharedDim, Columns2, Permutation > &matrix2) | 
| 
template<typename Value, std::size_t Rows, std::size_t Columns, typename Permutation, typename T>  | 
| __cuda_callable__ StaticMatrix< Value, Rows, Columns, Permutation >  | operator* (const T &value, StaticMatrix< Value, Rows, Columns, Permutation > a) | 
| 
template<typename Value, std::size_t Rows, std::size_t Columns, typename Permutation, typename T>  | 
| __cuda_callable__ StaticMatrix< Value, Rows, Columns, Permutation >  | operator* (StaticMatrix< Value, Rows, Columns, Permutation > a, const T &value) | 
| 
template<typename Value, std::size_t Rows, std::size_t Columns, typename Permutation>  | 
| __cuda_callable__ StaticMatrix< Value, Rows, Columns, Permutation >  | operator+ (StaticMatrix< Value, Rows, Columns, Permutation > a, const StaticMatrix< Value, Rows, Columns > &b) | 
| 
template<typename Value, std::size_t Rows, std::size_t Columns, typename Permutation>  | 
| __cuda_callable__ StaticMatrix< Value, Rows, Columns, Permutation >  | operator- (StaticMatrix< Value, Rows, Columns, Permutation > a, const StaticMatrix< Value, Rows, Columns > &b) | 
| 
template<typename Value, std::size_t Rows, std::size_t Columns, typename Permutation, typename T>  | 
| __cuda_callable__ StaticMatrix< Value, Rows, Columns, Permutation >  | operator/ (StaticMatrix< Value, Rows, Columns, Permutation > a, const T &b) | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator<< (File &&file, const DenseMatrixBase< Real, Device, Index, Organization > &matrix) | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator<< (File &&file, const MultidiagonalMatrixBase< Real, Device, Index, Organization > &matrix) | 
| 
template<typename Real, typename Device, typename Index, typename MatrixType, typename SegmentsView, typename ComputeReal>  | 
| File &  | operator<< (File &&file, const SparseMatrixBase< Real, Device, Index, MatrixType, SegmentsView, ComputeReal > &matrix) | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator<< (File &&file, const TridiagonalMatrixBase< Real, Device, Index, Organization > &matrix) | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator<< (File &file, const DenseMatrixBase< Real, Device, Index, Organization > &matrix) | 
|   | Serialization of dense matrices into binary files. 
  | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator<< (File &file, const MultidiagonalMatrixBase< Real, Device, Index, Organization > &matrix) | 
|   | Serialization of multidiagonal matrices into binary files. 
  | 
| 
template<typename Real, typename Device, typename Index, typename MatrixType, typename SegmentsView, typename ComputeReal>  | 
| File &  | operator<< (File &file, const SparseMatrixBase< Real, Device, Index, MatrixType, SegmentsView, ComputeReal > &matrix) | 
|   | Serialization of sparse matrices into binary files. 
  | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator<< (File &file, const TridiagonalMatrixBase< Real, Device, Index, Organization > &matrix) | 
|   | Serialization of tridiagonal matrices into binary files. 
  | 
| template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| std::ostream &  | operator<< (std::ostream &str, const DenseMatrixBase< Real, Device, Index, Organization > &matrix) | 
|   | Insertion operator for dense matrix and output stream.  
  | 
| template<typename MatrixElementsLambda, typename CompressedRowLengthsLambda, typename Real, typename Device, typename Index>  | 
| std::ostream &  | operator<< (std::ostream &str, const LambdaMatrix< MatrixElementsLambda, CompressedRowLengthsLambda, Real, Device, Index > &matrix) | 
|   | Insertion operator for lambda matrix and output stream.  
  | 
| template<typename MatrixElementsLambda, typename CompressedRowLengthsLambda, typename Real, typename Index>  | 
| std::ostream &  | operator<< (std::ostream &str, const LambdaMatrixRowView< MatrixElementsLambda, CompressedRowLengthsLambda, Real, Index > &row) | 
|   | Insertion operator for a Lambda matrix row.  
  | 
| template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| std::ostream &  | operator<< (std::ostream &str, const MultidiagonalMatrixBase< Real, Device, Index, Organization > &matrix) | 
|   | Overloaded insertion operator for printing a matrix to output stream.  
  | 
| template<typename Real, typename Device, typename Index, typename MatrixType, typename SegmentsView, typename ComputeReal>  | 
| std::ostream &  | operator<< (std::ostream &str, const SparseMatrixBase< Real, Device, Index, MatrixType, SegmentsView, ComputeReal > &matrix) | 
|   | Overloaded insertion operator for printing a matrix to output stream.  
  | 
| template<typename SegmentView, typename ValuesView, typename ColumnsIndexesView>  | 
| std::ostream &  | operator<< (std::ostream &str, const SparseMatrixRowView< SegmentView, ValuesView, ColumnsIndexesView > &row) | 
|   | Insertion operator for a sparse matrix row.  
  | 
| 
template<typename Value, std::size_t Rows, std::size_t Columns, typename Permutation>  | 
| std::ostream &  | operator<< (std::ostream &str, const StaticMatrix< Value, Rows, Columns, Permutation > &matrix) | 
| template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| std::ostream &  | operator<< (std::ostream &str, const TridiagonalMatrixBase< Real, Device, Index, Organization > &matrix) | 
|   | Overloaded insertion operator for printing a matrix to output stream.  
  | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization, typename RealAllocator>  | 
| File &  | operator>> (File &&file, DenseMatrix< Real, Device, Index, Organization, RealAllocator > &matrix) | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator>> (File &&file, DenseMatrixView< Real, Device, Index, Organization > &matrix) | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization, typename RealAllocator, typename IndexAllocator>  | 
| File &  | operator>> (File &&file, MultidiagonalMatrix< Real, Device, Index, Organization, RealAllocator, IndexAllocator > &matrix) | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator>> (File &&file, MultidiagonalMatrixView< Real, Device, Index, Organization > &matrix) | 
| 
template<typename Real, typename Device, typename Index, typename MatrixType, template< typename, typename, typename > class Segments, typename ComputeReal, typename RealAllocator, typename IndexAllocator>  | 
| File &  | operator>> (File &&file, SparseMatrix< Real, Device, Index, MatrixType, Segments, ComputeReal, RealAllocator, IndexAllocator > &matrix) | 
| 
template<typename Real, typename Device, typename Index, typename MatrixType, template< typename, typename > class SegmentsView, typename ComputeReal>  | 
| File &  | operator>> (File &&file, SparseMatrixView< Real, Device, Index, MatrixType, SegmentsView, ComputeReal > &matrix) | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization, typename RealAllocator>  | 
| File &  | operator>> (File &&file, TridiagonalMatrix< Real, Device, Index, Organization, RealAllocator > &matrix) | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator>> (File &&file, TridiagonalMatrixView< Real, Device, Index, Organization > &matrix) | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization, typename RealAllocator>  | 
| File &  | operator>> (File &file, DenseMatrix< Real, Device, Index, Organization, RealAllocator > &matrix) | 
|   | Deserialization of dense matrices from binary files. 
  | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator>> (File &file, DenseMatrixView< Real, Device, Index, Organization > &matrix) | 
|   | Deserialization of dense matrix views from binary files. 
  | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization, typename RealAllocator, typename IndexAllocator>  | 
| File &  | operator>> (File &file, MultidiagonalMatrix< Real, Device, Index, Organization, RealAllocator, IndexAllocator > &matrix) | 
|   | Deserialization of multidiagonal matrices from binary files. 
  | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator>> (File &file, MultidiagonalMatrixView< Real, Device, Index, Organization > &matrix) | 
|   | Deserialization of multidiagonal matrix views from binary files. 
  | 
| 
template<typename Real, typename Device, typename Index, typename MatrixType, template< typename, typename, typename > class Segments, typename ComputeReal, typename RealAllocator, typename IndexAllocator>  | 
| File &  | operator>> (File &file, SparseMatrix< Real, Device, Index, MatrixType, Segments, ComputeReal, RealAllocator, IndexAllocator > &matrix) | 
|   | Deserialization of sparse matrices from binary files. 
  | 
| 
template<typename Real, typename Device, typename Index, typename MatrixType, template< typename, typename > class SegmentsView, typename ComputeReal>  | 
| File &  | operator>> (File &file, SparseMatrixView< Real, Device, Index, MatrixType, SegmentsView, ComputeReal > &matrix) | 
|   | Deserialization of sparse matrix views from binary files. 
  | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization, typename RealAllocator>  | 
| File &  | operator>> (File &file, TridiagonalMatrix< Real, Device, Index, Organization, RealAllocator > &matrix) | 
|   | Deserialization of tridiagonal matrices from binary files. 
  | 
| 
template<typename Real, typename Device, typename Index, ElementsOrganization Organization>  | 
| File &  | operator>> (File &file, TridiagonalMatrixView< Real, Device, Index, Organization > &matrix) | 
|   | Deserialization of tridiagonal matrix views from binary files. 
  | 
| 
template<typename Matrix, typename PermutationArray>  | 
| void  | permuteMatrixColumns (Matrix &matrix, const PermutationArray &iperm) | 
| 
template<typename Matrix, typename PermutationArray>  | 
| void  | permuteMatrixRows (Matrix &matrix, const PermutationArray &perm) | 
| 
template<typename Array1, typename Array2, typename PermutationArray>  | 
| void  | reorderArray (const Array1 &src, Array2 &dest, const PermutationArray &perm) | 
| 
template<typename Matrix1, typename Matrix2, typename PermutationArray>  | 
| void  | reorderSparseMatrix (const Matrix1 &matrix1, Matrix2 &matrix2, const PermutationArray &perm, const PermutationArray &iperm) | 
| 
template<typename Real>  | 
| __cuda_callable__ Containers::StaticVector< 2, Real >  | solve (const StaticMatrix< Real, 2, 2 > &A, const Containers::StaticVector< 2, Real > &b) | 
| 
template<typename Real>  | 
| __cuda_callable__ Containers::StaticVector< 3, Real >  | solve (const StaticMatrix< Real, 3, 3 > &A, const Containers::StaticVector< 3, Real > &b) | 
| 
template<typename Real>  | 
| __cuda_callable__ Containers::StaticVector< 4, Real >  | solve (const StaticMatrix< Real, 4, 4 > &A, const Containers::StaticVector< 4, Real > &b) | 
| 
template<typename Matrix1, typename Matrix2>  | 
| __global__ void  | SparseMatrixCopyKernel (Matrix1 *A, const Matrix2 *B, const typename Matrix2::IndexType *rowLengths, typename Matrix2::IndexType rows) | 
| 
template<typename Vector, typename Matrix>  | 
| __global__ void  | SparseMatrixSetRowLengthsVectorKernel (Vector *rowLengths, const Matrix *matrix, typename Matrix::IndexType rows, typename Matrix::IndexType cols) | 
| 
template<typename Value, std::size_t Rows, std::size_t Columns, typename Permutation>  | 
| StaticMatrix< Value, Columns, Rows, Permutation >  | transpose (const StaticMatrix< Value, Rows, Columns, Permutation > &A) | 
| 
template<typename InMatrixView, typename OutMatrixView, typename Real, typename Index>  | 
| __global__ void  | TridiagonalMatrixTranspositionCudaKernel (const InMatrixView inMatrix, OutMatrixView outMatrix, Real matrixMultiplicator, Index gridIdx) | 
| 
template<int BlockSize, int ThreadsPerRow, typename Matrix, typename InVector, typename OutVector>  | 
| __global__ void  | VectorColumnMajorDenseMatrixVectorMultiplicationKernel (const Matrix matrix, const InVector inVector, OutVector outVector, int begin, int end, int gridIdx, typename Matrix::RealType matrixMultiplicator, typename Matrix::RealType outVectorMultiplicator) | 
| template<typename Device, typename Real, typename Index>  | 
| SparseMatrixView< Real, Device, Index, GeneralMatrix, Algorithms::Segments::CSRView >  | wrapCSRMatrix (const Index &rows, const Index &columns, Index *rowPointers, Real *values, Index *columnIndexes) | 
|   | Function for wrapping of arrays defining CSR format into a sparse matrix view.  
  | 
| template<typename Device, typename Real, typename Index, ElementsOrganization Organization = Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization()>  | 
| DenseMatrixView< Real, Device, Index, Organization >  | wrapDenseMatrix (const Index &rows, const Index &columns, Real *values) | 
|   | Function for wrapping an array of values into a dense matrix view.  
  | 
| template<typename Device, ElementsOrganization Organization, typename Real, typename Index, int Alignment = 1>  | 
| auto  | wrapEllpackMatrix (const Index rows, const Index columns, const Index nonzerosPerRow, Real *values, Index *columnIndexes) -> decltype(EllpackMatrixWrapper< Device, Organization, Real, Index, Alignment >::wrap(rows, columns, nonzerosPerRow, values, columnIndexes)) | 
|   | Function for wrapping of arrays defining Ellpack format into a sparse matrix view.  
  |