5 #ifndef GKO_PUBLIC_CORE_DISTRIBUTED_LIN_OP_HPP_
6 #define GKO_PUBLIC_CORE_DISTRIBUTED_LIN_OP_HPP_
10 #include <type_traits>
14 #include <ginkgo/config.hpp>
20 #include <ginkgo/core/base/lin_op.hpp>
21 #include <ginkgo/core/distributed/polymorphic_object.hpp>
25 namespace experimental {
42 template <
typename ConcreteLinOp,
typename PolymorphicBase = LinOp>
53 PolymorphicBase::apply(b, x);
59 PolymorphicBase::apply(b, x);
68 PolymorphicBase::apply(alpha, b, beta, x);
75 PolymorphicBase::apply(alpha, b, beta, x);
80 GKO_ENABLE_SELF(ConcreteLinOp);
88 #endif // GINKGO_BUILD_MPI
89 #endif // GKO_PUBLIC_CORE_DISTRIBUTED_LIN_OP_HPP_