#include <CSRMatrixOperationsDefault.h>

Public Types | |
| using | allocator_type = typename Config::allocator_type |
| using | gidx_t = typename Config::gidx_t |
| using | lidx_t = typename Config::lidx_t |
| using | localmatrixdata_t = typename matrixdata_t::localmatrixdata_t |
| using | localops_t = CSRLocalMatrixOperationsDefault< Config > |
| using | matrixdata_t = CSRMatrixData< Config > |
| using | scalar_t = typename Config::scalar_t |
Public Member Functions | |
| void | axpy (AMP::Scalar alpha, const MatrixData &X, MatrixData &Y) override |
| Compute the linear combination of two matrices. | |
| void | copy (const MatrixData &X, MatrixData &Y) override |
| Set Y matrix with the same non-zero and distributed structure as x and copy the coefficients. | |
| void | copyCast (const MatrixData &X, MatrixData &Y) override |
| Set Y matrix with the same non-zero and distributed structure as x and copy the coefficients after up/down casting. | |
| CSRMatrixOperationsDefault () | |
| CSRMatrixOperationsDefault (int64_t, AMP::IO::RestartManager *) | |
| void | extractDiagonal (MatrixData const &A, std::shared_ptr< Vector > buf) override |
| Extract the diagonal values into a vector. | |
| uint64_t | getID () const |
| Get a unique id hash for the vector operation. | |
| void | getRowSums (MatrixData const &A, std::shared_ptr< Vector > buf) override |
| Extract the row sums into a vector. | |
| void | getRowSumsAbsolute (MatrixData const &A, std::shared_ptr< Vector > buf, const bool remove_zeros=false) override |
| Extract the absolute row sums into a vector. | |
| AMP::Scalar | LinfNorm (const MatrixData &X) const override |
| Compute the maximum row sum. | |
| void | matMatMult (std::shared_ptr< MatrixData > A, std::shared_ptr< MatrixData > B, std::shared_ptr< MatrixData > C) override |
| Compute the product of two matrices. | |
| void | mult (std::shared_ptr< const Vector > x, MatrixData const &A, std::shared_ptr< Vector > y) override |
| Matrix-vector multiplication. | |
| void | multTranspose (std::shared_ptr< const Vector > in, MatrixData const &A, std::shared_ptr< Vector > out) override |
| Matrix transpose-vector multiplication. | |
| virtual void | registerChildObjects (AMP::IO::RestartManager *manager) const |
| Register any child objects. | |
| void | scale (AMP::Scalar alpha, MatrixData &A) override |
| Scale the matrix by a scalar. | |
| void | scale (AMP::Scalar alpha, std::shared_ptr< const Vector > D, MatrixData &A) override |
| Scale the matrix by a scalar and diagonal matrix. | |
| void | scaleInv (AMP::Scalar alpha, std::shared_ptr< const Vector > D, MatrixData &A) override |
| Scale the matrix by a scalar and inverse of diagonal matrix. | |
| void | setDiagonal (std::shared_ptr< const Vector > in, MatrixData &A) override |
| Set the diagonal to the values in a vector. | |
| void | setIdentity (MatrixData &A) override |
| Set the matrix to the identity matrix. | |
| void | setScalar (AMP::Scalar alpha, MatrixData &A) override |
| Set the non-zeros of the matrix to a scalar. | |
| std::string | type () const override |
| Return the type of the matrix operations class. | |
| void | writeRestart (int64_t fid) const override |
| Write restart data to file. | |
| void | zero (MatrixData &A) override |
| Set the non-zeros of the matrix to zero. | |
Static Public Member Functions | |
| template<typename ConfigIn > | |
| static void | copyCast (CSRMatrixData< typename ConfigIn::template set_alloc_t< Config::allocator > > *X, matrixdata_t *Y) |
Protected Attributes | |
| uint64_t | d_hash = 0 |
| unique hash for object | |
| std::shared_ptr< localops_t > | d_localops_diag |
| std::shared_ptr< localops_t > | d_localops_offd |
| std::map< std::pair< std::shared_ptr< matrixdata_t >, std::shared_ptr< matrixdata_t > >, CSRMatrixSpGEMMDefault< Config > > | d_SpGEMMHelpers |
Definition at line 16 of file CSRMatrixOperationsDefault.h.
| using AMP::LinearAlgebra::CSRMatrixOperationsDefault< Config >::allocator_type = typename Config::allocator_type |
Definition at line 19 of file CSRMatrixOperationsDefault.h.
| using AMP::LinearAlgebra::CSRMatrixOperationsDefault< Config >::gidx_t = typename Config::gidx_t |
Definition at line 27 of file CSRMatrixOperationsDefault.h.
| using AMP::LinearAlgebra::CSRMatrixOperationsDefault< Config >::lidx_t = typename Config::lidx_t |
Definition at line 28 of file CSRMatrixOperationsDefault.h.
| using AMP::LinearAlgebra::CSRMatrixOperationsDefault< Config >::localmatrixdata_t = typename matrixdata_t::localmatrixdata_t |
Definition at line 23 of file CSRMatrixOperationsDefault.h.
| using AMP::LinearAlgebra::CSRMatrixOperationsDefault< Config >::localops_t = CSRLocalMatrixOperationsDefault<Config> |
Definition at line 25 of file CSRMatrixOperationsDefault.h.
| using AMP::LinearAlgebra::CSRMatrixOperationsDefault< Config >::matrixdata_t = CSRMatrixData<Config> |
Definition at line 22 of file CSRMatrixOperationsDefault.h.
| using AMP::LinearAlgebra::CSRMatrixOperationsDefault< Config >::scalar_t = typename Config::scalar_t |
Definition at line 29 of file CSRMatrixOperationsDefault.h.
|
inline |
Definition at line 31 of file CSRMatrixOperationsDefault.h.
|
inline |
Definition at line 175 of file CSRMatrixOperationsDefault.h.
|
overridevirtual |
Compute the linear combination of two matrices.
| [in] | alpha | scalar |
| [in] | X | matrix |
| [out] | Y | The output matrix |
Compute \(\mathbf{THIS} = \alpha\mathbf{X} + \mathbf{THIS}\)
Implements AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Set Y matrix with the same non-zero and distributed structure as x and copy the coefficients.
| [in] | X | matrix data to copy from |
| [in] | Y | matrix data to copy to |
Implements AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Set Y matrix with the same non-zero and distributed structure as x and copy the coefficients after up/down casting.
| [in] | X | matrix data to copy from |
| [in] | Y | matrix data to copy to after up/down casting the coefficients |
Reimplemented from AMP::LinearAlgebra::MatrixOperations.
|
static |
|
overridevirtual |
Extract the diagonal values into a vector.
| [in] | A | The matrix to read from |
| [out] | buf | Buffer to write diagonal into |
Implements AMP::LinearAlgebra::MatrixOperations.
|
inherited |
Get a unique id hash for the vector operation.
|
overridevirtual |
Extract the row sums into a vector.
| [in] | A | The matrix to read from |
| [out] | buf | Buffer to write row sums into |
Reimplemented from AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Extract the absolute row sums into a vector.
| [in] | A | The matrix to read from |
| [out] | buf | Buffer to write row sums into |
| [in] | remove_zeros | If true zero values in sum are replaced with ones |
Reimplemented from AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Compute the maximum row sum.
| [in] | X | Data for the input matrix |
Implements AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Compute the product of two matrices.
| [in] | A | Left multiplicand |
| [in] | B | Right multiplicand |
| [out] | C | The product \(\mathbf{AB}\). |
Implements AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Matrix-vector multiplication.
| [in] | x | The vector to multiply |
| [in] | A | The input matrix A |
| [out] | y | The resulting vector |
Compute \(\mathbf{Ax} = \mathbf{y}\).
Implements AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Matrix transpose-vector multiplication.
| [in] | in | The vector to multiply |
| [in] | A | The input matrix A |
| [out] | out | The resulting vectory |
Compute \(\mathbf{A}^T\mathbf{in} = \mathbf{out}\).
Implements AMP::LinearAlgebra::MatrixOperations.
|
virtualinherited |
Register any child objects.
This function will register child objects with the manager
| manager | Restart manager |
|
overridevirtual |
Scale the matrix by a scalar.
| [in] | alpha | The value to scale by |
| [in,out] | A | The matrix A |
Compute \(\mathbf{A} = \alpha\mathbf{A}\)
Implements AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Scale the matrix by a scalar and diagonal matrix.
| [in] | alpha | The value to scale by |
| [in] | D | Vector representing the diagonal matrix |
| [in] | A | The input matrix A |
Compute \(\mathbf{A} = \alpha\mathbf{D}\mathbf{A}\)
Implements AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Scale the matrix by a scalar and inverse of diagonal matrix.
| [in] | alpha | The value to scale by |
| [in] | D | Vector representing the diagonal matrix |
| [in] | A | The input matrix A |
Compute \(\mathbf{A} = \alpha\mathbf{D}^{-1}\mathbf{A}\)
Implements AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Set the diagonal to the values in a vector.
| [in] | in | The values to set the diagonal to |
| [out] | A | The matrix to set |
Implements AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Set the matrix to the identity matrix.
| [out] | A | The matrix to set |
Implements AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Set the non-zeros of the matrix to a scalar.
| [in] | alpha | The value to set the non-zeros to |
| [out] | A | The input matrix A |
Implements AMP::LinearAlgebra::MatrixOperations.
|
inlineoverridevirtual |
Return the type of the matrix operations class.
Reimplemented from AMP::LinearAlgebra::MatrixOperations.
Definition at line 166 of file CSRMatrixOperationsDefault.h.
|
overridevirtual |
Write restart data to file.
This function will write the mesh to an HDF5 file
| fid | File identifier to write |
Reimplemented from AMP::LinearAlgebra::MatrixOperations.
|
overridevirtual |
Set the non-zeros of the matrix to zero.
| [in] | A | The input matrix A |
Does not deallocate space.
Implements AMP::LinearAlgebra::MatrixOperations.
|
protectedinherited |
unique hash for object
Definition at line 169 of file MatrixOperations.h.
|
protected |
Definition at line 182 of file CSRMatrixOperationsDefault.h.
|
protected |
Definition at line 183 of file CSRMatrixOperationsDefault.h.
|
protected |
Definition at line 186 of file CSRMatrixOperationsDefault.h.
|
Advanced Multi-Physics (AMP) Oak Ridge National Laboratory Idaho National Laboratory Los Alamos National Laboratory |
This page automatically produced from the source code by Last updated: Tue Mar 10 2026 13:06:42. Comments on this page |