18 apply(
const Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> &X,
19 Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> &Y,
20 Teuchos::ETransp mode,
25 const auto one = Teuchos::ScalarTraits<Scalar>::one();
26 const auto zero = Teuchos::ScalarTraits<Scalar>::zero();
28#define toggle(opmode) ((opmode) == Teuchos::NO_TRANS) ? Teuchos::TRANS : Teuchos::NO_TRANS
30 if (
ops_.size() >= 2) {
31 if (mode == Teuchos::NO_TRANS) {
33 for (
size_t i =
ops_.size() - 2; i > 0; --i) {
39 for (
size_t i = 1; i <
ops_.size() - 1; ++i) {
45 if (mode == Teuchos::NO_TRANS)
virtual void apply(const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const
Computes the operator-multivector application.