10#ifndef PACKAGES_XPETRA_SUP_UTILS_XPETRA_MATRIXMATRIX_DECL_HPP_
11#define PACKAGES_XPETRA_SUP_UTILS_XPETRA_MATRIXMATRIX_DECL_HPP_
15#include "Xpetra_BlockedCrsMatrix.hpp"
16#include "Xpetra_CrsMatrixWrap.hpp"
17#include "Xpetra_MapExtractor.hpp"
18#include "Xpetra_Map.hpp"
19#include "Xpetra_MatrixFactory.hpp"
20#include "Xpetra_Matrix.hpp"
21#include "Xpetra_StridedMapFactory.hpp"
22#include "Xpetra_StridedMap.hpp"
24#include "Xpetra_Helpers.hpp"
26#include <TpetraExt_MatrixMatrix.hpp>
27#include <Tpetra_RowMatrixTransposer.hpp>
29#include <Xpetra_TpetraCrsMatrix.hpp>
30#include <Xpetra_TpetraBlockCrsMatrix.hpp>
31#include <Tpetra_BlockCrsMatrix_Helpers.hpp>
32#include <Xpetra_TpetraMultiVector.hpp>
33#include <Xpetra_TpetraVector.hpp>
37template <
class Scalar,
42#undef XPETRA_MATRIXMATRIX_SHORT
71 const Matrix& B,
bool transposeB,
73 bool call_FillComplete_on_result =
true,
74 bool doOptimizeStorage =
true,
75 const std::string& label = std::string(),
102 bool doFillComplete =
true,
103 bool doOptimizeStorage =
true,
104 const std::string& label = std::string(),
118 bool callFillCompleteOnResult =
true,
bool doOptimizeStorage =
true,
const std::string& label = std::string(),
134 bool doFillComplete =
true,
135 bool doOptimizeStorage =
true);
166 const Matrix& B,
bool transposeB,
const SC& beta,
173#define XPETRA_MATRIXMATRIX_SHORT
Xpetra-specific matrix class.
static RCP< BlockedCrsMatrix > TwoMatrixMultiplyBlock(const BlockedCrsMatrix &A, bool transposeA, const BlockedCrsMatrix &B, bool transposeB, Teuchos::FancyOStream &fos, bool doFillComplete=true, bool doOptimizeStorage=true)
Helper function to do matrix-matrix multiply "in-place".
static void Multiply(const Matrix &A, bool transposeA, const Matrix &B, bool transposeB, Matrix &C, bool call_FillComplete_on_result=true, bool doOptimizeStorage=true, const std::string &label=std::string(), const RCP< ParameterList > ¶ms=null)
static void TwoMatrixAdd(const Matrix &A, bool transposeA, SC alpha, Matrix &B, SC beta)
Helper function to calculate B = alpha*A + beta*B.