Xpetra Version of the Day
Loading...
Searching...
No Matches
Xpetra_TripleMatrixMultiply_decl.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Xpetra: A linear algebra interface package
4//
5// Copyright 2012 NTESS and the Xpetra contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef PACKAGES_XPETRA_SUP_UTILS_XPETRA_TRIPLEMATRIXMULTIPLY_DECL_HPP_
11#define PACKAGES_XPETRA_SUP_UTILS_XPETRA_TRIPLEMATRIXMULTIPLY_DECL_HPP_
12
13#include "Xpetra_ConfigDefs.hpp"
14
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"
23#include "Xpetra_IO.hpp"
24
25#include <TpetraExt_TripleMatrixMultiply.hpp>
26#include <Xpetra_TpetraCrsMatrix.hpp>
27#include <Tpetra_BlockCrsMatrix.hpp>
28#include <Tpetra_BlockCrsMatrix_Helpers.hpp>
29// #include <Xpetra_TpetraMultiVector.hpp>
30// #include <Xpetra_TpetraVector.hpp>
31
32namespace Xpetra {
33
34template <class Scalar,
35 class LocalOrdinal /*= int*/,
36 class GlobalOrdinal /*= LocalOrdinal*/,
37 class Node /*= Tpetra::KokkosClassic::DefaultNode::DefaultNodeType*/>
39#undef XPETRA_TRIPLEMATRIXMULTIPLY_SHORT
41
42 public:
67 static void MultiplyRAP(const Matrix& R, bool transposeR,
68 const Matrix& A, bool transposeA,
69 const Matrix& P, bool transposeP,
70 Matrix& Ac,
71 bool call_FillComplete_on_result = true,
72 bool doOptimizeStorage = true,
73 const std::string& label = std::string(),
74 const RCP<ParameterList>& params = null);
75
76}; // class TripleMatrixMultiply
77
78} // end namespace Xpetra
79
80#define XPETRA_TRIPLEMATRIXMULTIPLY_SHORT
81
82#endif /* PACKAGES_XPETRA_SUP_UTILS_XPETRA_TRIPLEMATRIXMULTIPLY_DECL_HPP_ */
Xpetra-specific matrix class.
static void MultiplyRAP(const Matrix &R, bool transposeR, const Matrix &A, bool transposeA, const Matrix &P, bool transposeP, Matrix &Ac, bool call_FillComplete_on_result=true, bool doOptimizeStorage=true, const std::string &label=std::string(), const RCP< ParameterList > &params=null)