1#ifndef XPED_COEFF_UNARY_OP_H_
2#define XPED_COEFF_UNARY_OP_H_
12template <
typename,
typename>
15template <
typename XprType,
typename ReturnScalar>
18 static constexpr std::size_t Rank = XprType::Rank;
19 static constexpr std::size_t CoRank = XprType::CoRank;
25template <
typename XprType,
typename ReturnScalar>
29 static inline constexpr std::size_t
Rank = XprType::Rank;
30 static inline constexpr std::size_t
CoRank = XprType::CoRank;
34 typedef typename Symmetry::qType
qType;
36 CoeffUnaryOp(XPED_CONST XprType& xpr,
const std::function<ReturnScalar(
typename XprType::Scalar)>& coeff_func)
41 inline const std::string
name()
const {
return "CoeffUnaryOp"; }
48 inline const auto block(std::size_t i)
const {
return PlainInterface::unaryFunc<ReturnScalar>(
refxpr_.block(i),
coeff_func_); }
66 const std::function<ReturnScalar(
typename XprType::Scalar)>
coeff_func_;
Definition: CoeffUnaryOp.hpp:27
const auto uncoupledDomain() const
Definition: CoeffUnaryOp.hpp:55
static constexpr std::size_t Rank
Definition: CoeffUnaryOp.hpp:29
static constexpr std::size_t CoRank
Definition: CoeffUnaryOp.hpp:30
auto codomainTrees(const qType &q) const
Definition: CoeffUnaryOp.hpp:62
ReturnScalar Scalar
Definition: CoeffUnaryOp.hpp:31
typename XprType::AllocationPolicy AllocationPolicy
Definition: CoeffUnaryOp.hpp:33
const auto coupledDomain() const
Definition: CoeffUnaryOp.hpp:58
auto domainTrees(const qType &q) const
Definition: CoeffUnaryOp.hpp:61
const qType sector(std::size_t i) const
Definition: CoeffUnaryOp.hpp:46
const auto block(std::size_t i) const
Definition: CoeffUnaryOp.hpp:48
const auto uncoupledCodomain() const
Definition: CoeffUnaryOp.hpp:56
const auto dict() const
Definition: CoeffUnaryOp.hpp:51
const auto sector() const
Definition: CoeffUnaryOp.hpp:45
constexpr std::size_t corank() const
Definition: CoeffUnaryOp.hpp:43
XPED_CONST XprType & refxpr_
Definition: CoeffUnaryOp.hpp:65
constexpr std::size_t rank() const
Definition: CoeffUnaryOp.hpp:42
Symmetry::qType qType
Definition: CoeffUnaryOp.hpp:34
const mpi::XpedWorld & world() const
Definition: CoeffUnaryOp.hpp:53
CoeffUnaryOp(XPED_CONST XprType &xpr, const std::function< ReturnScalar(typename XprType::Scalar)> &coeff_func)
Definition: CoeffUnaryOp.hpp:36
const std::string name() const
Definition: CoeffUnaryOp.hpp:41
XprType::Symmetry Symmetry
Definition: CoeffUnaryOp.hpp:32
auto block(std::size_t i)
Definition: CoeffUnaryOp.hpp:49
const auto coupledCodomain() const
Definition: CoeffUnaryOp.hpp:59
const std::function< ReturnScalar(typename XprType::Scalar)> coeff_func_
Definition: CoeffUnaryOp.hpp:66
Definition: TensorBase.hpp:36
ReturnScalar Scalar
Definition: CoeffUnaryOp.hpp:20
typename XprType::AllocationPolicy AllocationPolicy
Definition: CoeffUnaryOp.hpp:22
XprType::Symmetry Symmetry
Definition: CoeffUnaryOp.hpp:21
Definition: TensorBase.hpp:10