Thyra Version of the Day
Loading...
Searching...
No Matches
Thyra_MultipliedLinearOpBase.hpp
1// @HEADER
2// *****************************************************************************
3// Thyra: Interfaces and Support for Abstract Numerical Algorithms
4//
5// Copyright 2004 NTESS and the Thyra contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef THYRA_MULTIPLIED_LINEAR_OP_BASE_HPP
11#define THYRA_MULTIPLIED_LINEAR_OP_BASE_HPP
12
13
14#include "Thyra_LinearOpBase.hpp"
15
16
17namespace Thyra {
18
42template<class Scalar>
43class MultipliedLinearOpBase : virtual public LinearOpBase<Scalar> {
44public:
45
48
54 virtual int numOps() const = 0;
55
64 virtual bool opIsConst(const int k) const = 0;
65
76
85 virtual Teuchos::RCP<const LinearOpBase<Scalar> > getOp(const int k) const = 0;
86
88
89};
90
91
92} // namespace Thyra
93
94
95#endif // THYRA_MULTIPLIED_LINEAR_OP_BASE_HPP
Base class for all linear operators.
Interface class for implicitly multiplied linear operators.
virtual int numOps() const =0
Returns the number of constituent operators.
virtual Teuchos::RCP< LinearOpBase< Scalar > > getNonconstOp(const int k)=0
Return the kth non-constant constituent operator.
virtual bool opIsConst(const int k) const =0
Determine if the kth constituent operator is const-only or not.
virtual Teuchos::RCP< const LinearOpBase< Scalar > > getOp(const int k) const =0
Return the kth constant constituent operator.