|
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 (...) |
|
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 (...) |
|
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 > &) |
|
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> |
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 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.
|
|