19 #ifndef GEOS_LINEARALGEBRA_NORMALOPERATOR_HPP_
20 #define GEOS_LINEARALGEBRA_NORMALOPERATOR_HPP_
31 template<
typename LAI >
67 m_matrix.gemv( 1.0, src, 0.0, dst,
false );
68 m_matrix.gemv( 1.0, dst, 0.0, dst,
true );
76 return m_matrix.numGlobalCols();
84 return m_matrix.numGlobalCols();
92 return m_matrix.numLocalCols();
100 return m_matrix.numLocalCols();
108 return m_matrix.comm();
Abstract base class for linear operators.
VECTOR Vector
Alias for template parameter.
Wraps a matrix A and represents A^T * A as a linear operator.
typename LAI::ParallelMatrix Matrix
Alias for matrix type.
typename Base::Vector Vector
Alias for vector type.
virtual ~NormalOperator() override=default
Destructor.
NormalOperator(Matrix const &mat)
Constructor.
void apply(Vector const &src, Vector &dst) const override
Apply operator to a vector.
localIndex numLocalCols() const override
MPI_Comm comm() const override
localIndex numLocalRows() const override
globalIndex numGlobalCols() const override
globalIndex numGlobalRows() const override
GEOS_GLOBALINDEX_TYPE globalIndex
Global index type (for indexing objects across MPI partitions).
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
LAInterface::ParallelMatrix ParallelMatrix
Alias for ParallelMatrix.