|
Template Numerical Library version\ main:4904c12
|
Namespace for matrix formats. More...
Classes | |
| class | DenseMatrix |
| Implementation of dense matrix, i.e. matrix storing explicitly all of its elements including zeros. More... | |
| class | DenseMatrixBase |
| Implementation of dense matrix view. More... | |
| class | DenseMatrixElement |
| Accessor for dense matrix elements. More... | |
| class | DenseMatrixRowView |
| RowView is a simple structure for accessing rows of dense matrix. More... | |
| class | DenseMatrixView |
| Implementation of dense matrix view. More... | |
| class | DistributedMatrix |
| struct | GeneralMatrix |
| General non-symmetric matrix type. More... | |
| class | GinkgoOperator |
| Wraps a general TNL matrix as a Ginkgo LinOp. More... | |
| class | HypreCSRMatrix |
| Wrapper for Hypre's sequential CSR matrix. More... | |
| class | HypreParCSRMatrix |
| Wrapper for Hypre's sequential CSR matrix. More... | |
| struct | isSparseCSRMatrix |
| This checks if the sparse matrix is in CSR format. More... | |
| struct | isSparseCSRMatrix< SparseMatrix< Real, Device, Index, MatrixType, Segments, ComputeReal, RealAllocator, IndexAllocator > > |
| struct | isSparseCSRMatrix< SparseMatrixView< Real, Device, Index, MatrixType, SegmentsView, ComputeReal > > |
| class | LambdaMatrix |
| "Matrix-free matrix" based on lambda functions. More... | |
| class | LambdaMatrixElement |
| Accessor for elements of lambda matrix. More... | |
| struct | LambdaMatrixFactory |
| Helper class for creating instances of LambdaMatrix. More... | |
| class | LambdaMatrixRowView |
| RowView is a simple structure for accessing rows of Lambda matrix. More... | |
| class | LambdaMatrixRowViewIterator |
| class | MatrixBase |
| Base class for the implementation of concrete matrix types. More... | |
| struct | MatrixInfo |
| class | MatrixOperations |
| class | MatrixOperations< Devices::Cuda > |
| class | MatrixReader |
| Helper class for importing of matrices from different input formats. More... | |
| class | MatrixRowViewIterator |
| struct | MatrixType |
| Structure for specifying type of sparse matrix. More... | |
| class | MatrixWriter |
| Helper class for exporting of matrices to different output formats. More... | |
| class | MultidiagonalMatrix |
| Implementation of sparse multidiagonal matrix. More... | |
| class | MultidiagonalMatrixBase |
| A common base class for MultidiagonalMatrix and MultidiagonalMatrixView. More... | |
| class | MultidiagonalMatrixElement |
| Accessor for multidiagonal matrix elements. More... | |
| class | MultidiagonalMatrixRowView |
| RowView is a simple structure for accessing rows of multidiagonal matrix. More... | |
| class | MultidiagonalMatrixView |
| Implementation of sparse multidiagonal matrix. More... | |
| class | SparseMatrix |
| Implementation of sparse matrix, i.e. matrix storing only non-zero elements. More... | |
| class | SparseMatrixBase |
| Implementation of sparse matrix view. More... | |
| class | SparseMatrixElement |
| Accessor for sparse matrix elements. More... | |
| class | SparseMatrixRowView |
| RowView is a simple structure for accessing rows of sparse matrix. More... | |
| class | SparseMatrixView |
| Implementation of sparse matrix view. More... | |
| class | StaticMatrix |
| struct | SymmetricMatrix |
| Symmetric matrix type. More... | |
| class | TridiagonalMatrix |
| Implementation of sparse tridiagonal matrix. More... | |
| class | TridiagonalMatrixBase |
| A common base class for TridiagonalMatrix and TridiagonalMatrixView. More... | |
| class | TridiagonalMatrixRowView |
| RowView is a simple structure for accessing rows of tridiagonal matrix. More... | |
| class | TridiagonalMatrixView |
| Implementation of sparse tridiagonal matrix. More... | |
Typedefs | |
| template<typename T> | |
| using | is_dense_matrix = decltype( isDenseMatrix( std::declval< T >() ) ) |
| template<typename T> | |
| using | is_matrix = decltype( isMatrix( std::declval< T >() ) ) |
| template<typename T> | |
| using | is_matrix_view = decltype( isMatrixView( std::declval< T >() ) ) |
| template<typename Matrix> | |
| using | is_sparse_csr_matrix = isSparseCSRMatrix< Matrix > |
| template<typename Matrix> | |
| using | is_sparse_matrix = decltype( isSparseMatrix( std::declval< Matrix >() ) ) |
Enumerations | |
| enum | ElementsOrganization |
| enum class | MatrixElementsEncoding : std::uint8_t { Complete , SymmetricLower , SymmetricUpper , SymmetricMixed } |
| Encoding of the matrix elements in initializer lists or STL maps. More... | |
| enum class | TransposeState : std::uint8_t { None , Transpose } |
Functions | |
| 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 Matrix1, typename Matrix2> | |
| void | copyDenseToDenseMatrix (Matrix1 &A, const Matrix2 &B) |
| template<typename Matrix1, typename Matrix2> | |
| void | copyDenseToSparseMatrix (Matrix1 &A, const Matrix2 &B) |
| template<typename Matrix1, typename Matrix2> | |
| void | copySparseMatrix (Matrix1 &A, const Matrix2 &B) |
| template<typename Matrix1, typename Matrix2> | |
| void | copySparseToDenseMatrix (Matrix1 &A, const Matrix2 &B) |
| template<typename TargetMatrix, typename SourceMatrix> | |
| void | copySparseToSparseMatrix (TargetMatrix &A, const SourceMatrix &B) |
| Copies sparse matrix to sparse matrix. | |
| template<typename Matrix1, typename Matrix2> | |
| void | copySymmetricSparseToGeneralSparseMatrix (Matrix1 &A, const Matrix2 &B) |
| 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 Matrix, typename Function> | |
| void | forAllElements (const Matrix &matrix, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements of all matrix rows of constant matrix and applies the specified lambda function. | |
| template<typename Matrix, typename Function> | |
| void | forAllElements (Matrix &matrix, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements of all matrix rows and applies the specified lambda function. | |
| template<typename Matrix, typename Condition, typename Function> | |
| void | forAllElementsIf (const Matrix &matrix, Condition &&condition, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements of all matrix rows based on a condition. | |
| template<typename Matrix, typename Condition, typename Function> | |
| void | forAllElementsIf (Matrix &matrix, Condition &&condition, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements of all matrix rows based on a condition. | |
| template<typename Matrix, typename Function> | |
| void | forAllRows (const Matrix &matrix, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all matrix rows and applies the given lambda function to each row. This function is for constant matrices. | |
| template<typename Matrix, typename Function> | |
| void | forAllRows (Matrix &matrix, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all matrix rows and applies the given lambda function to each row. | |
| template<typename Matrix, typename RowCondition, typename Function> | |
| void | forAllRowsIf (const Matrix &matrix, RowCondition &&rowCondition, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all matrix rows, applying a condition to determine whether each row should be processed. This function is for constant matrices. | |
| template<typename Matrix, typename RowCondition, typename Function> | |
| void | forAllRowsIf (Matrix &matrix, RowCondition &&rowCondition, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all matrix rows, applying a condition to determine whether each row should be processed. | |
| template<typename Matrix, typename Array, typename Function> | |
| void | forElements (const Matrix &matrix, const Array &rowIndexes, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements of matrix rows with the given indexes and applies the specified lambda function. This function is for constant matrices. | |
| template<typename Matrix, typename Array, typename IndexBegin, typename IndexEnd, typename Function> | |
| void | forElements (const Matrix &matrix, const Array &rowIndexes, IndexBegin begin, IndexEnd end, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements of matrix rows with the given indexes and applies the specified lambda function. This function is for constant matrices. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Function> | |
| void | forElements (const Matrix &matrix, IndexBegin begin, IndexEnd end, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements of constant matrix in the given range of matrix rows and applies the specified lambda function. | |
| template<typename Matrix, typename Array, typename Function> | |
| void | forElements (Matrix &matrix, const Array &rowIndexes, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements of matrix rows with the given indexes and applies the specified lambda function. | |
| template<typename Matrix, typename Array, typename IndexBegin, typename IndexEnd, typename Function> | |
| void | forElements (Matrix &matrix, const Array &rowIndexes, IndexBegin begin, IndexEnd end, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements of matrix rows with the given indexes and applies the specified lambda function. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Function> | |
| void | forElements (Matrix &matrix, IndexBegin begin, IndexEnd end, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements in the given range of matrix rows and applies the specified lambda function. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Condition, typename Function> | |
| void | forElementsIf (const Matrix &matrix, IndexBegin begin, IndexEnd end, Condition &&condition, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements in a given range of rows based on a condition. This function is for constant matrices. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Condition, typename Function> | |
| void | forElementsIf (Matrix &matrix, IndexBegin begin, IndexEnd end, Condition &&condition, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over all elements in a given range of rows based on a condition. | |
| template<typename Matrix, typename Array, typename Function, typename T = std::enable_if_t< IsArrayType< Array >::value >> | |
| void | forRows (const Matrix &matrix, const Array &rowIndexes, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over matrix rows with the given indexes and applies the specified lambda function to each row. This function is for constant matrices. | |
| template<typename Matrix, typename Array, typename IndexBegin, typename IndexEnd, typename Function, typename T = std::enable_if_t< IsArrayType< Array >::value && std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | forRows (const Matrix &matrix, const Array &rowIndexes, IndexBegin begin, IndexEnd end, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over matrix rows with the given indexes and applies the specified lambda function to each row. This function is for constant matrices. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Function, typename T = std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | forRows (const Matrix &matrix, IndexBegin begin, IndexEnd end, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over matrix rows within the specified range of row indexes and applies the given lambda function to each row. This function is for constant matrices. | |
| template<typename Matrix, typename Array, typename Function, typename T = std::enable_if_t< IsArrayType< Array >::value >> | |
| void | forRows (Matrix &matrix, const Array &rowIndexes, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over matrix rows with the given indexes and applies the specified lambda function to each row. | |
| template<typename Matrix, typename Array, typename IndexBegin, typename IndexEnd, typename Function, typename T = std::enable_if_t< IsArrayType< Array >::value && std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | forRows (Matrix &matrix, const Array &rowIndexes, IndexBegin begin, IndexEnd end, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over matrix rows with the given indexes and applies the specified lambda function to each row. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Function, typename T = std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | forRows (Matrix &matrix, IndexBegin begin, IndexEnd end, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over matrix rows within the specified range of row indexes and applies the given lambda function to each row. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename RowCondition, typename Function, typename T = std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | forRowsIf (const Matrix &matrix, IndexBegin begin, IndexEnd end, RowCondition &&rowCondition, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over rows within the given range of row indexes, applying a condition to determine whether each row should be processed. This function is for constant matrices. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename RowCondition, typename Function, typename T = std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | forRowsIf (Matrix &matrix, IndexBegin begin, IndexEnd end, RowCondition &&rowCondition, Function &&function, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Iterates in parallel over rows within the given range of row indexes, applying a condition to determine whether each row should be processed. | |
| 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 | getDiagonal (const Matrix &matrix) -> TNL::Containers::Vector< typename Matrix::RealType, typename Matrix::DeviceType, typename Matrix::IndexType > |
| template<typename Matrix, typename Vector> | |
| void | getDiagonal (const Matrix &matrix, Vector &diagonalElements) |
| 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 | isMatrixView (...) |
| This checks if given type is matrix view. | |
| template<typename Real, typename Device, typename Index, ElementsOrganization Organization> | |
| constexpr std::true_type | isMatrixView (const DenseMatrixView< Real, Device, Index, Organization > &) |
| template<typename Real, typename Device, typename Index, ElementsOrganization Organization> | |
| constexpr std::true_type | isMatrixView (const MultidiagonalMatrixView< Real, Device, Index, Organization > &) |
| template<typename Real, typename Device, typename Index, typename MatrixType, template< typename, typename > typename SegmentsView, typename ComputeReal> | |
| constexpr std::true_type | isMatrixView (const SparseMatrixView< Real, Device, Index, MatrixType, SegmentsView, ComputeReal > &) |
| template<typename Real, typename Device, typename Index, ElementsOrganization Organization> | |
| constexpr std::true_type | isMatrixView (const TridiagonalMatrixView< Real, Device, Index, Organization > &) |
| constexpr std::false_type | isSparseMatrix (...) |
| This checks if the type is sparse matrix. | |
| 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 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 Matrix, typename Fetch, typename Reduction, typename Store> | |
| void | reduceAllRows (const Matrix &matrix, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows with automatic identity deduction (const version). | |
| template<typename Matrix, typename Fetch, typename Reduction, typename Store, typename FetchValue> | |
| void | reduceAllRows (const Matrix &matrix, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows (const version). | |
| template<typename Matrix, typename Fetch, typename Reduction, typename Store> | |
| void | reduceAllRows (Matrix &matrix, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows with automatic identity deduction. | |
| template<typename Matrix, typename Fetch, typename Reduction, typename Store, typename FetchValue> | |
| void | reduceAllRows (Matrix &matrix, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows. | |
| template<typename Matrix, typename Condition, typename Fetch, typename Reduction, typename Store> | |
| Matrix::IndexType | reduceAllRowsIf (const Matrix &matrix, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows based on a condition with automatic identity deduction (const version). | |
| template<typename Matrix, typename Condition, typename Fetch, typename Reduction, typename Store, typename FetchValue> | |
| Matrix::IndexType | reduceAllRowsIf (const Matrix &matrix, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows based on a condition (const version). | |
| template<typename Matrix, typename Condition, typename Fetch, typename Reduction, typename Store> | |
| Matrix::IndexType | reduceAllRowsIf (Matrix &matrix, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows based on a condition with automatic identity deduction. | |
| template<typename Matrix, typename Condition, typename Fetch, typename Reduction, typename Store, typename FetchValue> | |
| Matrix::IndexType | reduceAllRowsIf (Matrix &matrix, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows based on a condition. | |
| template<typename Matrix, typename Fetch, typename Reduction, typename Store> | |
| void | reduceAllRowsWithArgument (const Matrix &matrix, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows while returning also the position of the element of interest with automatic identity deduction (const version). | |
| template<typename Matrix, typename Fetch, typename Reduction, typename Store, typename FetchValue> | |
| void | reduceAllRowsWithArgument (const Matrix &matrix, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows while returning also the position of the element of interest (const version). | |
| template<typename Matrix, typename Fetch, typename Reduction, typename Store> | |
| void | reduceAllRowsWithArgument (Matrix &matrix, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows while returning also the position of the element of interest with automatic identity deduction. | |
| template<typename Matrix, typename Fetch, typename Reduction, typename Store, typename FetchValue> | |
| void | reduceAllRowsWithArgument (Matrix &matrix, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows while returning also the position of the element of interest. | |
| template<typename Matrix, typename Condition, typename Fetch, typename Reduction, typename Store> | |
| Matrix::IndexType | reduceAllRowsWithArgumentIf (const Matrix &matrix, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows based on a condition while returning also the position of the element of interest with automatic identity deduction (const version). | |
| template<typename Matrix, typename Condition, typename Fetch, typename Reduction, typename Store, typename FetchValue = decltype( std::declval< Fetch >()( 0, 0, std::declval< typename Matrix::RealType >() ) )> | |
| Matrix::IndexType | reduceAllRowsWithArgumentIf (const Matrix &matrix, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows based on a condition while returning also the position of the element of interest (const version). | |
| template<typename Matrix, typename Condition, typename Fetch, typename Reduction, typename Store> | |
| Matrix::IndexType | reduceAllRowsWithArgumentIf (Matrix &matrix, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows based on a condition while returning also the position of the element of interest with automatic identity deduction. | |
| template<typename Matrix, typename Condition, typename Fetch, typename Reduction, typename Store, typename FetchValue = decltype( std::declval< Fetch >()( 0, 0, std::declval< typename Matrix::RealType >() ) )> | |
| Matrix::IndexType | reduceAllRowsWithArgumentIf (Matrix &matrix, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over all rows based on a condition while returning also the position of the element of interest. | |
| template<typename Matrix, typename Array, typename Fetch, typename Reduction, typename Store, typename T = typename std::enable_if_t< IsArrayType< Array >::value >> | |
| void | reduceRows (const Matrix &matrix, const Array &rowIndexes, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within matrix rows specified by a given set of row indexes with automatic identity deduction (const version). | |
| template<typename Matrix, typename Array, typename Fetch, typename Reduction, typename Store, typename FetchValue, typename T = typename std::enable_if_t< IsArrayType< Array >::value >> | |
| void | reduceRows (const Matrix &matrix, const Array &rowIndexes, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within matrix rows specified by a given set of row indexes (const version). | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Fetch, typename Reduction, typename Store, typename T = typename std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | reduceRows (const Matrix &matrix, IndexBegin begin, IndexEnd end, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes with automatic identity deduction (const version). | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Fetch, typename Reduction, typename Store, typename FetchValue, typename T = typename std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | reduceRows (const Matrix &matrix, IndexBegin begin, IndexEnd end, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes (const version). | |
| template<typename Matrix, typename Array, typename Fetch, typename Reduction, typename Store, typename T = typename std::enable_if_t< IsArrayType< Array >::value >> | |
| void | reduceRows (Matrix &matrix, const Array &rowIndexes, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within matrix rows specified by a given set of row indexes with automatic identity deduction. | |
| template<typename Matrix, typename Array, typename Fetch, typename Reduction, typename Store, typename FetchValue, typename T = typename std::enable_if_t< IsArrayType< Array >::value >> | |
| void | reduceRows (Matrix &matrix, const Array &rowIndexes, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within matrix rows specified by a given set of row indexes. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Fetch, typename Reduction, typename Store, typename T = typename std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | reduceRows (Matrix &matrix, IndexBegin begin, IndexEnd end, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes with automatic identity deduction. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Fetch, typename Reduction, typename Store, typename FetchValue, typename T = typename std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | reduceRows (Matrix &matrix, IndexBegin begin, IndexEnd end, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Condition, typename Fetch, typename Reduction, typename Store> | |
| Matrix::IndexType | reduceRowsIf (const Matrix &matrix, IndexBegin begin, IndexEnd end, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes based on a condition with automatic identity deduction (const version). | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Condition, typename Fetch, typename Reduction, typename Store, typename FetchValue> | |
| Matrix::IndexType | reduceRowsIf (const Matrix &matrix, IndexBegin begin, IndexEnd end, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes based on a condition (const version). | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Condition, typename Fetch, typename Reduction, typename Store> | |
| Matrix::IndexType | reduceRowsIf (Matrix &matrix, IndexBegin begin, IndexEnd end, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes based on a condition with automatic identity deduction. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Condition, typename Fetch, typename Reduction, typename Store, typename FetchValue> | |
| Matrix::IndexType | reduceRowsIf (Matrix &matrix, IndexBegin begin, IndexEnd end, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes based on a condition. | |
| template<typename Matrix, typename Array, typename Fetch, typename Reduction, typename Store, typename T = typename std::enable_if_t< IsArrayType< Array >::value >> | |
| void | reduceRowsWithArgument (const Matrix &matrix, const Array &rowIndexes, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within matrix rows specified by a given set of row indexes while returning also the position of the element of interest with automatic identity deduction (const version). | |
| template<typename Matrix, typename Array, typename Fetch, typename Reduction, typename Store, typename FetchValue, typename T = typename std::enable_if_t< IsArrayType< Array >::value >> | |
| void | reduceRowsWithArgument (const Matrix &matrix, const Array &rowIndexes, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within matrix rows specified by a given set of row indexes while returning also the position of the element of interest (const version). | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Fetch, typename Reduction, typename Store, typename T = typename std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | reduceRowsWithArgument (const Matrix &matrix, IndexBegin begin, IndexEnd end, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes while returning also the position of the element of interest with automatic identity deduction (const version). | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Fetch, typename Reduction, typename Store, typename FetchValue, typename T = typename std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | reduceRowsWithArgument (const Matrix &matrix, IndexBegin begin, IndexEnd end, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes while returning also the position of the element of interest (const version). | |
| template<typename Matrix, typename Array, typename Fetch, typename Reduction, typename Store, typename T = typename std::enable_if_t< IsArrayType< Array >::value >> | |
| void | reduceRowsWithArgument (Matrix &matrix, const Array &rowIndexes, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within matrix rows specified by a given set of row indexes while returning also the position of the element of interest with automatic identity deduction. | |
| template<typename Matrix, typename Array, typename Fetch, typename Reduction, typename Store, typename FetchValue, typename T = typename std::enable_if_t< IsArrayType< Array >::value >> | |
| void | reduceRowsWithArgument (Matrix &matrix, const Array &rowIndexes, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within matrix rows specified by a given set of row indexes while returning also the position of the element of interest. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Fetch, typename Reduction, typename Store, typename T = typename std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | reduceRowsWithArgument (Matrix &matrix, IndexBegin begin, IndexEnd end, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes while returning also the position of the element of interest with automatic identity deduction. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Fetch, typename Reduction, typename Store, typename FetchValue, typename T = typename std::enable_if_t< std::is_integral_v< IndexBegin > && std::is_integral_v< IndexEnd > >> | |
| void | reduceRowsWithArgument (Matrix &matrix, IndexBegin begin, IndexEnd end, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes while returning also the position of the element of interest. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Condition, typename Fetch, typename Reduction, typename Store> | |
| Matrix::IndexType | reduceRowsWithArgumentIf (const Matrix &matrix, IndexBegin begin, IndexEnd end, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes based on a condition while returning also the position of the element of interest with automatic identity deduction (const version). | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Condition, typename Fetch, typename Reduction, typename Store, typename FetchValue = decltype( std::declval< Fetch >()( 0, 0, std::declval< typename Matrix::RealType >() ) )> | |
| Matrix::IndexType | reduceRowsWithArgumentIf (const Matrix &matrix, IndexBegin begin, IndexEnd end, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes based on a condition while returning also the position of the element of interest (const version). | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Condition, typename Fetch, typename Reduction, typename Store> | |
| Matrix::IndexType | reduceRowsWithArgumentIf (Matrix &matrix, IndexBegin begin, IndexEnd end, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes based on a condition while returning also the position of the element of interest with automatic identity deduction. | |
| template<typename Matrix, typename IndexBegin, typename IndexEnd, typename Condition, typename Fetch, typename Reduction, typename Store, typename FetchValue = decltype( std::declval< Fetch >()( 0, 0, std::declval< typename Matrix::RealType >() ) )> | |
| Matrix::IndexType | reduceRowsWithArgumentIf (Matrix &matrix, IndexBegin begin, IndexEnd end, Condition &&condition, Fetch &&fetch, Reduction &&reduction, Store &&store, const FetchValue &identity, Algorithms::Segments::LaunchConfiguration launchConfig=Algorithms::Segments::LaunchConfiguration()) |
| Performs parallel reduction within each matrix row over a given range of row indexes based on a condition while returning also the position of the element of interest. | |
| 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 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 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. | |
Variables | |
| template<typename T> | |
| constexpr bool | is_dense_matrix_v = is_dense_matrix< T >::value |
| template<typename T> | |
| constexpr bool | is_matrix_v = is_matrix< T >::value |
| template<typename T> | |
| constexpr bool | is_matrix_view_v = is_matrix_view< T >::value |
| template<typename Matrix> | |
| constexpr bool | is_sparse_csr_matrix_v = isSparseCSRMatrix< Matrix >::value |
| template<typename Matrix> | |
| constexpr bool | is_sparse_matrix_v = is_sparse_matrix< Matrix >::value |
| template<typename Index> | |
| constexpr Index | paddingIndex = static_cast< Index >( -1 ) |
| Padding index value. | |
Namespace for matrix formats.
|
strong |
Encoding of the matrix elements in initializer lists or STL maps.
| void TNL::Matrices::compressSparseMatrix | ( | Matrix & | A | ) |
Avoids unnecessary zero elements.
This method is especially useful for removing of explicitly coded zero elements but it also removes unnecessary padding elements.
| Matrix | is the matrix type. |
| A | is the matrix to be compressed. |
| void TNL::Matrices::copySparseToSparseMatrix | ( | TargetMatrix & | A, |
| const SourceMatrix & | B ) |
Copies sparse matrix to sparse matrix.
If the source matrix is TNL::Matrices::GeneralMatrix and the target matrix is TNL::Matrices::SymmetricMatrix, the values of the source matrix are assumed to be symmetric. No check is performed, only the lower part of the matrix and its diagonal are copied.
| TargetMatrix | is the target symmetric sparse matrix type. |
| SourceMatrix | is the source general sparse matrix type. |
| A | is the target symmetric sparse matrix. |
| B | is the source general sparse matrix. |
| void TNL::Matrices::forAllElements | ( | const Matrix & | matrix, |
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements of all matrix rows of constant matrix and applies the specified lambda function.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrixwhose elements will be processed using the lambda function. |
| function | Lambda function to be applied to each element. See Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forAllElements | ( | Matrix & | matrix, |
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements of all matrix rows and applies the specified lambda function.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrixwhose elements will be processed using the lambda function. |
| function | Lambda function to be applied to each element. See Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forAllElementsIf | ( | const Matrix & | matrix, |
| Condition && | condition, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements of all matrix rows based on a condition.
See also: Overview of Matrix Traversal Functions
This function is for constant matrices.
For each matrix row, a condition lambda function is evaluated based on the row index. If the condition lambda function returns true, all elements of the row are traversed, and the specified lambda function is applied to each element. If the condition lambda function returns false, the row is skipped.
| Matrix | The type of the matrix. |
| Condition | The type of the condition lambda function. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrixwhose elements will be processed using the lambda function. |
| condition | Lambda function to check row condition. See Condition Lambda. |
| function | Lambda function to be applied to each element. See Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forAllElementsIf | ( | Matrix & | matrix, |
| Condition && | condition, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements of all matrix rows based on a condition.
See also: Overview of Matrix Traversal Functions
For each matrix row, a condition lambda function is evaluated based on the row index. If the condition lambda function returns true, all elements of the row are traversed, and the specified lambda function is applied to each element. If the condition lambda function returns false, the row is skipped.
| Matrix | The type of the matrix. |
| Condition | The type of the condition lambda function. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrixwhose elements will be processed using the lambda function. |
| condition | Lambda function to check row condition. See Condition Lambda. |
| function | Lambda function to be applied to each element. See Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forAllRows | ( | const Matrix & | matrix, |
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all matrix rows and applies the given lambda function to each row. This function is for constant matrices.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrixon which the lambda function will be applied. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forAllRows | ( | Matrix & | matrix, |
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all matrix rows and applies the given lambda function to each row.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrixon which the lambda function will be applied. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forAllRowsIf | ( | const Matrix & | matrix, |
| RowCondition && | rowCondition, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all matrix rows, applying a condition to determine whether each row should be processed. This function is for constant matrices.
See also: Overview of Matrix Traversal Functions
For each row, a condition lambda function is evaluated based on the row index. If the condition lambda function returns true, the specified lambda function is executed for the row. If the condition lambda function returns false, the row is skipped.
| Matrix | The type of the matrix. |
| RowCondition | The type of the condition lambda function. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrixon which the lambda function will be applied. |
| rowCondition | Lambda function to check row condition. See Condition Lambda. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forAllRowsIf | ( | Matrix & | matrix, |
| RowCondition && | rowCondition, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all matrix rows, applying a condition to determine whether each row should be processed.
See also: Overview of Matrix Traversal Functions
For each row, a condition lambda function is evaluated based on the row index. If the condition lambda function returns true, the specified lambda function is executed for the row. If the condition lambda function returns false, the row is skipped.
| Matrix | The type of the matrix. |
| RowCondition | The type of the condition lambda function. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrixon which the lambda function will be applied. |
| rowCondition | Lambda function to check row condition. See Condition Lambda. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forElements | ( | const Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements of matrix rows with the given indexes and applies the specified lambda function. This function is for constant matrices.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the matrix rows to iterate over. This can be containers such as TNL::Containers::Array, TNL::Containers::ArrayView, TNL::Containers::Vector, or TNL::Containers::VectorView. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrixwhose elements will be processed using the lambda function. |
| rowIndexes | The array containing the indexes of the matrix rows to iterate over. |
| function | Lambda function to be applied to each element. See Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forElements | ( | const Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements of matrix rows with the given indexes and applies the specified lambda function. This function is for constant matrices.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the matrix rows to iterate over. This can be containers such as TNL::Containers::Array, TNL::Containers::ArrayView, TNL::Containers::Vector, or TNL::Containers::VectorView. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of row indexes whose elements will be processed using the lambda function. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of row indexes whose elements will be processed using the lambda function. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrixwhose elements will be processed using the lambda function. |
| rowIndexes | The array containing the indexes of the matrix rows to iterate over. |
| begin | The beginning of the interval [ begin, end ) of row indexes whose elements will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of row indexes whose elements will be processed using the lambda function. |
| function | Lambda function to be applied to each element. See Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forElements | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements of constant matrix in the given range of matrix rows and applies the specified lambda function.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows whose elements we want to process using the lambda function. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows whose elements we want to process using the lambda function. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrix whose elements will be processed using the lambda function. |
| begin | The beginning of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| function | Lambda function to be applied to each element. See Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forElements | ( | Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements of matrix rows with the given indexes and applies the specified lambda function.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the matrix rows to iterate over. This can be containers such as TNL::Containers::Array, TNL::Containers::ArrayView, TNL::Containers::Vector, or TNL::Containers::VectorView. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrixwhose elements will be processed using the lambda function. |
| rowIndexes | The array containing the indexes of the matrix rows to iterate over. |
| function | Lambda function to be applied to each element. See Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forElements | ( | Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements of matrix rows with the given indexes and applies the specified lambda function.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the matrix rows to iterate over. This can be containers such as TNL::Containers::Array, TNL::Containers::ArrayView, TNL::Containers::Vector, or TNL::Containers::VectorView. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of row indexes whose elements will be processed using the lambda function. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of row indexes whose elements will be processed using the lambda function. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrixwhose elements will be processed using the lambda function. |
| rowIndexes | The array containing the indexes of the matrix rows to iterate over. |
| begin | The beginning of the interval [ begin, end ) of row indexes whose elements will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of row indexes whose elements will be processed using the lambda function. |
| function | Lambda function to be applied to each element. See Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forElements | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements in the given range of matrix rows and applies the specified lambda function.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows whose elements we want to process using the lambda function. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows whose elements we want to process using the lambda function. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrix whose elements will be processed using the lambda function. |
| begin | The beginning of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| function | Lambda function to be applied to each element. See Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forElementsIf | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Condition && | condition, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements in a given range of rows based on a condition. This function is for constant matrices.
See also: Overview of Matrix Traversal Functions
For each matrix row, a condition lambda function is evaluated based on the row index. If the condition lambda function returns true, all elements of the row are traversed, and the specified lambda function is applied to each element. If the condition lambda function returns false, the row is skipped.
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| Condition | The type of the condition lambda function. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrixwhose elements will be processed using the lambda function. |
| begin | The beginning of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| condition | Lambda function to check row condition. See Condition Lambda. |
| function | Lambda function to be applied to each element. See Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forElementsIf | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Condition && | condition, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over all elements in a given range of rows based on a condition.
See also: Overview of Matrix Traversal Functions
For each matrix row, a condition lambda function is evaluated based on the row index. If the condition lambda function returns true, all elements of the row are traversed, and the specified lambda function is applied to each element. If the condition lambda function returns false, the row is skipped.
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| Condition | The type of the condition lambda function. |
| Function | The type of the lambda function to be applied to each element. |
| matrix | The matrixwhose elements will be processed using the lambda function. |
| begin | The beginning of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of rows whose elements will be processed using the lambda function. |
| condition | Lambda function to check row condition. See Condition Lambda. |
| function | Lambda function to be applied to each element. See Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forRows | ( | const Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over matrix rows with the given indexes and applies the specified lambda function to each row. This function is for constant matrices.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the matrix rows to iterate over. This can be containers such as TNL::Containers::Array, TNL::Containers::ArrayView, TNL::Containers::Vector, or TNL::Containers::VectorView. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrixon which the lambda function will be applied. |
| rowIndexes | The array containing the indexes of the matrix rows to iterate over. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forRows | ( | const Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over matrix rows with the given indexes and applies the specified lambda function to each row. This function is for constant matrices.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the matrix rows to iterate over. This can be containers such as TNL::Containers::Array, TNL::Containers::ArrayView, TNL::Containers::Vector, or TNL::Containers::VectorView. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows on which the lambda function will be applied. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows on which the lambda function will be applied. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrixon which the lambda function will be applied. |
| rowIndexes | The array containing the indexes of the matrix rows to iterate over. |
| begin | The beginning of the interval [ begin, end ) of row indexes whose corresponding rows will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of row indexes whose corresponding rows will be processed using the lambda function. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forRows | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over matrix rows within the specified range of row indexes and applies the given lambda function to each row. This function is for constant matrices.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of matrix rows on which the lambda function will be applied. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of matrix rows on which the lambda function will be applied. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrixon which the lambda function will be applied. |
| begin | The beginning of the interval [ begin, end ) of matrix rows that will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of matrix rows that will be processed using the lambda function. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forRows | ( | Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over matrix rows with the given indexes and applies the specified lambda function to each row.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the matrix rows to iterate over. This can be containers such as TNL::Containers::Array, TNL::Containers::ArrayView, TNL::Containers::Vector, or TNL::Containers::VectorView. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrixon which the lambda function will be applied. |
| rowIndexes | The array containing the indexes of the matrix rows to iterate over. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forRows | ( | Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over matrix rows with the given indexes and applies the specified lambda function to each row.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the matrix rows to iterate over. This can be containers such as TNL::Containers::Array, TNL::Containers::ArrayView, TNL::Containers::Vector, or TNL::Containers::VectorView. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows on which the lambda function will be applied. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows on which the lambda function will be applied. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrixon which the lambda function will be applied. |
| rowIndexes | The array containing the indexes of the matrix rows to iterate over. |
| begin | The beginning of the interval [ begin, end ) of row indexes whose corresponding rows will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of row indexes whose corresponding rows will be processed using the lambda function. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forRows | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over matrix rows within the specified range of row indexes and applies the given lambda function to each row.
See also: Overview of Matrix Traversal Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of matrix rows on which the lambda function will be applied. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of matrix rows on which the lambda function will be applied. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrixon which the lambda function will be applied. |
| begin | The beginning of the interval [ begin, end ) of matrix rows that will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of matrix rows that will be processed using the lambda function. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forRowsIf | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| RowCondition && | rowCondition, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over rows within the given range of row indexes, applying a condition to determine whether each row should be processed. This function is for constant matrices.
See also: Overview of Matrix Traversal Functions
For each row, a condition lambda function is evaluated based on the row index. If the condition lambda function returns true, the specified lambda function is executed for the row. If the condition lambda function returns false, the row is skipped.
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows on which the lambda function will be applied. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows on which the lambda function will be applied. |
| RowCondition | The type of the condition lambda function. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrix on which the lambda function will be applied. |
| begin | The beginning of the interval [ begin, end ) of row indexes whose corresponding rows will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of row indexes whose corresponding rows will be processed using the lambda function. |
| rowCondition | Lambda function to check row condition. See Condition Lambda. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::forRowsIf | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| RowCondition && | rowCondition, | ||
| Function && | function, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Iterates in parallel over rows within the given range of row indexes, applying a condition to determine whether each row should be processed.
See also: Overview of Matrix Traversal Functions
For each row, a condition lambda function is evaluated based on the row index. If the condition lambda function returns true, the specified lambda function is executed for the row. If the condition lambda function returns false, the row is skipped.
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows on which the lambda function will be applied. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows on which the lambda function will be applied. |
| RowCondition | The type of the condition lambda function. |
| Function | The type of the lambda function to be executed on each row. |
| matrix | The matrixon which the lambda function will be applied. |
| begin | The beginning of the interval [ begin, end ) of row indexes whose corresponding rows will be processed using the lambda function. |
| end | The end of the interval [ begin, end ) of row indexes whose corresponding rows will be processed using the lambda function. |
| rowCondition | Lambda function to check row condition. See Condition Lambda. |
| function | Lambda function to be applied to each row. See Row Traversal Function (Non-Const Matrix). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| OutMatrix TNL::Matrices::getSymmetricPart | ( | const InMatrix & | inMatrix | ) |
This function computes \(( A + A^T ) / 2 \), where \( A \) is a square matrix.
| InMatrix | is the type of the input matrix. |
| OutMatrix | is the type of the output matrix. |
| inMatrix | is the input matrix. |
| std::ostream & TNL::Matrices::operator<< | ( | std::ostream & | str, |
| const DenseMatrixBase< Real, Device, Index, Organization > & | matrix ) |
Insertion operator for dense matrix and output stream.
| str | is the output stream. |
| matrix | is the dense matrix. |
| std::ostream & TNL::Matrices::operator<< | ( | std::ostream & | str, |
| const LambdaMatrix< MatrixElementsLambda, CompressedRowLengthsLambda, Real, Device, Index > & | matrix ) |
Insertion operator for lambda matrix and output stream.
| str | is the output stream. |
| matrix | is the lambda matrix. |
| std::ostream & TNL::Matrices::operator<< | ( | std::ostream & | str, |
| const LambdaMatrixRowView< MatrixElementsLambda, CompressedRowLengthsLambda, Real, Index > & | row ) |
Insertion operator for a Lambda matrix row.
| str | is an output stream. |
| row | is an input Lambda matrix row. |
| std::ostream & TNL::Matrices::operator<< | ( | std::ostream & | str, |
| const MultidiagonalMatrixBase< Real, Device, Index, Organization > & | matrix ) |
Overloaded insertion operator for printing a matrix to output stream.
| Real | is a type of the matrix elements. |
| Device | is a device where the matrix is allocated. |
| Index | is a type used for the indexing of the matrix elements. |
| str | is a output stream. |
| matrix | is the matrix to be printed. |
| std::ostream & TNL::Matrices::operator<< | ( | std::ostream & | str, |
| const SparseMatrixBase< Real, Device, Index, MatrixType, SegmentsView, ComputeReal > & | matrix ) |
Overloaded insertion operator for printing a matrix to output stream.
| Real | is a type of the matrix elements. |
| Device | is a device where the matrix is allocated. |
| Index | is a type used for the indexing of the matrix elements. |
| str | is a output stream. |
| matrix | is the matrix to be printed. |
| std::ostream & TNL::Matrices::operator<< | ( | std::ostream & | str, |
| const SparseMatrixRowView< SegmentView, ValuesView, ColumnsIndexesView > & | row ) |
Insertion operator for a sparse matrix row.
| str | is an output stream. |
| row | is an input sparse matrix row. |
| std::ostream & TNL::Matrices::operator<< | ( | std::ostream & | str, |
| const TridiagonalMatrixBase< Real, Device, Index, Organization > & | matrix ) |
Overloaded insertion operator for printing a matrix to output stream.
| Real | is a type of the matrix elements. |
| Device | is a device where the matrix is allocated. |
| Index | is a type used for the indexing of the matrix elements. |
| str | is a output stream. |
| matrix | is the matrix to be printed. |
| void TNL::Matrices::reduceAllRows | ( | const Matrix & | matrix, |
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows with automatic identity deduction (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction operation. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceAllRows | ( | const Matrix & | matrix, |
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Lambda function for reduction operation. See Basic Reduction (Without Arguments). |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceAllRows | ( | Matrix & | matrix, |
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows with automatic identity deduction.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction operation. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceAllRows | ( | Matrix & | matrix, |
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Lambda function for reduction operation. See Basic Reduction (Without Arguments). |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceAllRowsIf | ( | const Matrix & | matrix, |
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows based on a condition with automatic identity deduction (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| condition | Lambda function for condition check. See Condition Check. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction operation. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceAllRowsIf | ( | const Matrix & | matrix, |
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows based on a condition (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| condition | Lambda function for condition check. See Condition Check. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Lambda function for reduction operation. See Basic Reduction (Without Arguments). |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceAllRowsIf | ( | Matrix & | matrix, |
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows based on a condition with automatic identity deduction.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| condition | Lambda function for condition check. See Condition Check. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction operation. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceAllRowsIf | ( | Matrix & | matrix, |
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows based on a condition.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| condition | Lambda function for condition check. See Condition Check. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Lambda function for reduction operation. See Basic Reduction (Without Arguments). |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceAllRowsWithArgument | ( | const Matrix & | matrix, |
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows while returning also the position of the element of interest with automatic identity deduction (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceAllRowsWithArgument | ( | const Matrix & | matrix, |
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows while returning also the position of the element of interest (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Lambda function for reduction with argument tracking. See Reduction With Argument (Position Tracking). |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceAllRowsWithArgument | ( | Matrix & | matrix, |
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows while returning also the position of the element of interest with automatic identity deduction.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceAllRowsWithArgument | ( | Matrix & | matrix, |
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows while returning also the position of the element of interest.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Lambda function for reduction with argument tracking. See Reduction With Argument (Position Tracking). |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceAllRowsWithArgumentIf | ( | const Matrix & | matrix, |
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows based on a condition while returning also the position of the element of interest with automatic identity deduction (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| condition | Lambda function for row condition checking. See Condition Check. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceAllRowsWithArgumentIf | ( | const Matrix & | matrix, |
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows based on a condition while returning also the position of the element of interest (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| condition | Lambda function for row condition checking. See Condition Check. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| identity | The identity element for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceAllRowsWithArgumentIf | ( | Matrix & | matrix, |
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows based on a condition while returning also the position of the element of interest with automatic identity deduction.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| condition | Lambda function for row condition checking. See Condition Check. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceAllRowsWithArgumentIf | ( | Matrix & | matrix, |
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over all rows based on a condition while returning also the position of the element of interest.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| condition | Lambda function for row condition checking. See Condition Check. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| identity | The identity element for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRows | ( | const Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within matrix rows specified by a given set of row indexes with automatic identity deduction (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the rows to iterate over. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| rowIndexes | The array containing the indexes of the rows to iterate over. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction operation. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Store With Row Index Array Or Condition. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRows | ( | const Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within matrix rows specified by a given set of row indexes (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the rows to iterate over. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| rowIndexes | The array containing the indexes of the rows to iterate over. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Lambda function for reduction operation. See Basic Reduction (Without Arguments). |
| store | Lambda function for storing results. See Store With Row Index Array Or Condition. |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRows | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes with automatic identity deduction (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction operation. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRows | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Lambda function for the reduction operation. See Basic Reduction (Without Arguments). |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRows | ( | Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within matrix rows specified by a given set of row indexes with automatic identity deduction.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the rows to iterate over. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| rowIndexes | The array containing the indexes of the rows to iterate over. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction operation. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Store With Row Index Array Or Condition. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRows | ( | Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within matrix rows specified by a given set of row indexes.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the rows to iterate over. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of row indexes where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of row indexes where the reduction will be performed. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| rowIndexes | The array containing the indexes of the rows to iterate over. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Lambda function for reduction operation. See Basic Reduction (Without Arguments). |
| store | Lambda function for storing results. See Store With Row Index Array Or Condition. |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRows | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes with automatic identity deduction.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction operation. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRows | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Lambda function for the reduction operation. See Basic Reduction (Without Arguments). |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceRowsIf | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes based on a condition with automatic identity deduction (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| condition | Lambda function for condition check. See Condition Check. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction operation. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceRowsIf | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes based on a condition (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| condition | Lambda function for condition check. See Condition Check. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Lambda function for reduction operation. See Basic Reduction (Without Arguments). |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceRowsIf | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes based on a condition with automatic identity deduction.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| condition | Lambda function for condition check. See Condition Check. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction operation. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceRowsIf | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes based on a condition.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| condition | Lambda function for condition check. See Condition Check. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Lambda function for reduction operation. See Basic Reduction (Without Arguments). |
| store | Lambda function for storing results. See Basic Store (Row Index Only). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRowsWithArgument | ( | const Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within matrix rows specified by a given set of row indexes while returning also the position of the element of interest with automatic identity deduction (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the rows to iterate over. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| rowIndexes | The array containing the indexes of the rows to iterate over. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Row Index Array and With Argument (Position Tracking). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRowsWithArgument | ( | const Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within matrix rows specified by a given set of row indexes while returning also the position of the element of interest (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the rows to iterate over. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| rowIndexes | The array containing the indexes of the rows to iterate over. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Lambda function for reduction with argument tracking. See Reduction With Argument (Position Tracking). |
| store | Lambda function for storing results with position tracking. See Store With Row Index Array and With Argument (Position Tracking). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRowsWithArgument | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes while returning also the position of the element of interest with automatic identity deduction (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction operation with argument. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Store With Argument (Position Tracking). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRowsWithArgument | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes while returning also the position of the element of interest (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Lambda function for reduction operation with argument. See Reduction With Argument (Position Tracking). |
| store | Lambda function for storing results. See Store With Argument (Position Tracking). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRowsWithArgument | ( | Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within matrix rows specified by a given set of row indexes while returning also the position of the element of interest with automatic identity deduction.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the rows to iterate over. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| rowIndexes | The array containing the indexes of the rows to iterate over. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Row Index Array and With Argument (Position Tracking). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRowsWithArgument | ( | Matrix & | matrix, |
| const Array & | rowIndexes, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within matrix rows specified by a given set of row indexes while returning also the position of the element of interest.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| Array | The type of the array containing the indexes of the rows to iterate over. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| rowIndexes | The array containing the indexes of the rows to iterate over. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Lambda function for reduction with argument tracking. See Reduction With Argument (Position Tracking). |
| store | Lambda function for storing results with position tracking. See Store With Row Index Array and With Argument (Position Tracking). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRowsWithArgument | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes while returning also the position of the element of interest with automatic identity deduction.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction operation with argument. See Function objects for reduction operations. |
| store | Lambda function for storing results. See Store With Argument (Position Tracking). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| void TNL::Matrices::reduceRowsWithArgument | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes while returning also the position of the element of interest.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Lambda function for reduction operation with argument. See Reduction With Argument (Position Tracking). |
| store | Lambda function for storing results. See Store With Argument (Position Tracking). |
| identity | The initial value for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceRowsWithArgumentIf | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes based on a condition while returning also the position of the element of interest with automatic identity deduction (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| condition | Lambda function for row condition checking. See Condition Check. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceRowsWithArgumentIf | ( | const Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes based on a condition while returning also the position of the element of interest (const version).
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| condition | Lambda function for row condition checking. See Condition Check. |
| fetch | Lambda function for fetching data. See For Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| identity | The identity element for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceRowsWithArgumentIf | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes based on a condition while returning also the position of the element of interest with automatic identity deduction.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| condition | Lambda function for row condition checking. See Condition Check. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
| Matrix::IndexType TNL::Matrices::reduceRowsWithArgumentIf | ( | Matrix & | matrix, |
| IndexBegin | begin, | ||
| IndexEnd | end, | ||
| Condition && | condition, | ||
| Fetch && | fetch, | ||
| Reduction && | reduction, | ||
| Store && | store, | ||
| const FetchValue & | identity, | ||
| Algorithms::Segments::LaunchConfiguration | launchConfig = Algorithms::Segments::LaunchConfiguration() ) |
Performs parallel reduction within each matrix row over a given range of row indexes based on a condition while returning also the position of the element of interest.
See also: Overview of Matrix Reduction Functions
| Matrix | The type of the matrix. |
| IndexBegin | The type of the index defining the beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| IndexEnd | The type of the index defining the end of the interval [ begin, end ) of rows where the reduction will be performed. |
| Condition | The type of the lambda function used for the condition check. |
| Fetch | The type of the lambda function used for data fetching. |
| Reduction | The type of the function object defining the reduction operation. |
| Store | The type of the lambda function used for storing results from individual rows. |
| FetchValue | The type returned by the Fetch lambda function. |
| matrix | The matrix on which the reduction will be performed. |
| begin | The beginning of the interval [ begin, end ) of rows where the reduction will be performed. |
| end | The end of the interval [ begin, end ) of rows where the reduction will be performed. |
| condition | Lambda function for row condition checking. See Condition Check. |
| fetch | Lambda function for fetching data. See For Non-Const Matrices. |
| reduction | Function object for reduction with argument tracking. See Function objects for reduction operations. |
| store | Lambda function for storing results with position tracking. See Store With Argument (Position Tracking). |
| identity | The identity element for the reduction operation. |
| launchConfig | The configuration of the launch - see TNL::Algorithms::Segments::LaunchConfiguration. |
|
nodiscard |
Function for wrapping of arrays defining CSR format into a sparse matrix view.
| Device | is a device on which the arrays are allocated. |
| Real | is a type of matrix elements values. |
| Index | is a type for matrix elements indexing. |
| rows | is a number of matrix rows. |
| columns | is a number of matrix columns. |
| rowPointers | is an array holding row pointers of the CSR format ( ROW_INDEX here) |
| values | is an array with values of matrix elements ( V here) |
| columnIndexes | is an array with column indexes of matrix elements ( COL_INDEX here) |
The size of array rowPointers must be equal to number of rows + 1. The last element of the array equals to the number of all nonzero matrix elements. The sizes of arrays values and columnIndexes must be equal to this number.
|
nodiscard |
Function for wrapping an array of values into a dense matrix view.
| Device | is a device on which the array is allocated. |
| Real | is a type of array elements. |
| Index | is a type for indexing of matrix elements. |
| Organization | is matrix elements organization - see TNL::Algorithms::Segments::ElementsOrganization. |
| rows | is a number of matrix rows. |
| columns | is a number of matrix columns. |
| values | is the array with matrix elements values. |
The array size must be equal to product of rows and columns. The dense matrix view does not deallocate the input array at the end of its lifespan.
|
nodiscard |
Function for wrapping of arrays defining Ellpack format into a sparse matrix view.
This is to prevent from appearing in Doxygen documentation.
| Device | is a device on which the arrays are allocated. |
| Real | is a type of matrix elements values. |
| Index | is a type for matrix elements indexing. |
| Alignment | defines alignment of data. The number of matrix rows is rounded to a multiple of this number. It it useful mainly for GPUs. |
| rows | is a number of matrix rows. |
| columns | is a number of matrix columns. |
| nonzerosPerRow | is number of nonzero matrix elements in each row. |
| values | is an array with values of matrix elements. |
| columnIndexes | is an array with column indexes of matrix elements. |
The sizes of arrays values and columnIndexes must be equal to rows * nonzerosPerRow. Use -1 as a column index for padding zeros.
|
constexpr |
Padding index value.
Padding index is used for column indexes of padding zeros. Padding zeros are used in some sparse matrix formats for better data alignment in memory.