10template <
typename XprType>
11class DiagCoeffUnaryOp;
13template <
typename XprType>
16 static constexpr std::size_t Rank = XprType::Rank;
17 static constexpr std::size_t CoRank = XprType::CoRank;
18 typedef typename XprType::Scalar
Scalar;
23template <
typename XprType>
27 static inline constexpr std::size_t
Rank = XprType::Rank;
28 static inline constexpr std::size_t
CoRank = XprType::CoRank;
29 typedef typename XprType::Scalar
Scalar;
31 typedef typename Symmetry::qType
qType;
39 inline const std::string
name()
const {
return "DiagCoeffUnaryOp"; }
43 inline const std::vector<qType>
sector()
const {
return refxpr_.sector(); }
54 inline const std::unordered_map<qType, std::size_t>
dict()
const {
return refxpr_.dict(); }
Definition: DiagCoeffUnaryOp.hpp:25
DiagCoeffUnaryOp(XPED_CONST XprType &xpr, const std::function< Scalar(Scalar)> &coeff_func)
Definition: DiagCoeffUnaryOp.hpp:34
constexpr std::size_t rank() const
Definition: DiagCoeffUnaryOp.hpp:40
const auto block(std::size_t i) const
Definition: DiagCoeffUnaryOp.hpp:48
const std::vector< qType > sector() const
Definition: DiagCoeffUnaryOp.hpp:43
auto block(std::size_t i)
Definition: DiagCoeffUnaryOp.hpp:51
const qType sector(std::size_t i) const
Definition: DiagCoeffUnaryOp.hpp:44
static constexpr std::size_t CoRank
Definition: DiagCoeffUnaryOp.hpp:28
const std::string name() const
Definition: DiagCoeffUnaryOp.hpp:39
XPED_CONST XprType & refxpr_
Definition: DiagCoeffUnaryOp.hpp:68
const std::unordered_map< qType, std::size_t > dict() const
Definition: DiagCoeffUnaryOp.hpp:54
static constexpr std::size_t Rank
Definition: DiagCoeffUnaryOp.hpp:27
std::vector< FusionTree< CoRank, Symmetry > > codomainTrees(const qType &q) const
Definition: DiagCoeffUnaryOp.hpp:65
constexpr std::size_t corank() const
Definition: DiagCoeffUnaryOp.hpp:41
const auto uncoupledDomain() const
Definition: DiagCoeffUnaryOp.hpp:58
std::vector< FusionTree< Rank, Symmetry > > domainTrees(const qType &q) const
Definition: DiagCoeffUnaryOp.hpp:64
const auto coupledDomain() const
Definition: DiagCoeffUnaryOp.hpp:61
XprType::Scalar Scalar
Definition: DiagCoeffUnaryOp.hpp:29
const auto coupledCodomain() const
Definition: DiagCoeffUnaryOp.hpp:62
const auto uncoupledCodomain() const
Definition: DiagCoeffUnaryOp.hpp:59
Symmetry::qType qType
Definition: DiagCoeffUnaryOp.hpp:31
XprType::Symmetry Symmetry
Definition: DiagCoeffUnaryOp.hpp:30
typename XprType::AllocationPolicy AllocationPolicy
Definition: DiagCoeffUnaryOp.hpp:32
const mpi::XpedWorld & world() const
Definition: DiagCoeffUnaryOp.hpp:56
const std::function< Scalar(Scalar)> coeff_func_
Definition: DiagCoeffUnaryOp.hpp:69
Definition: TensorBase.hpp:36
static MType< Scalar > diagUnaryFunc(MT &&M, const std::function< Scalar(Scalar)> &func)
Definition: MatrixInterface_Cyclops_impl.cpp:243
XprType::Scalar Scalar
Definition: DiagCoeffUnaryOp.hpp:18
typename XprType::AllocationPolicy AllocationPolicy
Definition: DiagCoeffUnaryOp.hpp:20
XprType::Symmetry Symmetry
Definition: DiagCoeffUnaryOp.hpp:19
Definition: TensorBase.hpp:10