8template <
typename Derived>
16template <
typename,
typename>
25template <
typename,
typename>
28template <
typename,
typename>
31template <
typename Scalar, std::
size_t Rank, std::
size_t CoRank,
typename Symmetry,
bool ENABLE_AD,
typename AllocationPolicy>
34template <
typename Derived>
50 template <typename ReturnScalar>
59 template <typename OtherScalar>
65 Derived& operator+=(const
Scalar offset);
66 Derived& operator-=(const
Scalar offset);
67 Derived& operator*=(const
Scalar factor);
68 Derived& operator/=(const
Scalar divisor);
76 template <typename OtherDerived>
80 template <typename OtherDerived>
84 template <typename OtherDerived>
85 Derived& operator+=(XPED_CONST
TensorBase<OtherDerived>& other);
86 template <typename OtherDerived>
87 Derived& operator-=(XPED_CONST
TensorBase<OtherDerived>& other);
89 template <
bool = false, typename OtherDerived>
92 TensorTraits<typename std::remove_const<std::remove_reference_t<OtherDerived>>::type>::
CoRank,
96 operator*(XPED_CONST
TensorBase<OtherDerived>& other) XPED_CONST;
98 template <
bool TRACK = false, typename OtherDerived>
101 TensorTraits<typename std::remove_const<std::remove_reference_t<OtherDerived>>::type>::
CoRank,
108 return this->
operator*<TRACK>(tmp);
111 template <
bool = false>
128 inline const Derived&
derived()
const {
return *
static_cast<const Derived*
>(
this); }
129 inline Derived&
derived() {
return *
static_cast<Derived*
>(
this); }
132 template <
typename, std::
size_t, std::
size_t,
typename,
bool,
typename>
134 template <
typename OtherDerived>
141template <
typename DerivedLeft,
typename DerivedRight>
144 return left.binaryExpr(right, [](
const typename DerivedLeft::Scalar s1,
const typename DerivedRight::Scalar s2) {
return s1 + s2; });
147template <
typename DerivedLeft,
typename DerivedRight>
152 return tmp_left.
binaryExpr(tmp_right, [](
const typename DerivedLeft::Scalar s1,
const typename DerivedRight::Scalar s2) {
return s1 + s2; });
155template <
typename DerivedLeft,
typename DerivedRight>
158 return left.binaryExpr(right, [](
const typename DerivedLeft::Scalar s1,
const typename DerivedRight::Scalar s2) {
return s1 - s2; });
161template <
typename Derived,
typename Scalar>
164 return left.template unaryExpr<std::common_type_t<typename Derived::Scalar, Scalar>>(
165 [offset](
const typename Derived::Scalar s) {
return offset + s; });
168template <
typename Derived,
typename Scalar>
171 return right.template unaryExpr<std::common_type_t<typename Derived::Scalar, Scalar>>(
172 [offset](
const typename Derived::Scalar s) {
return offset + s; });
175template <
typename Derived,
typename Scalar>
178 return left.template unaryExpr<std::common_type_t<typename Derived::Scalar, Scalar>>(
179 [offset](
const typename Derived::Scalar s) {
return s - offset; });
182template <
bool = false,
typename Derived,
typename Scalar>
185 return left.template unaryExpr<std::common_type_t<typename Derived::Scalar, Scalar>>(
186 [factor](
const typename Derived::Scalar s) {
return s * factor; });
189template <
bool = false,
typename Derived,
typename Scalar>
192 return right.template unaryExpr<std::common_type_t<typename Derived::Scalar, Scalar>>(
193 [factor](
const typename Derived::Scalar s) {
return s * factor; });
196template <
bool = false,
typename Derived,
typename Scalar>
200 return tmp_right.template unaryExpr<std::common_type_t<typename Derived::Scalar, Scalar>>(
201 [factor](
const typename Derived::Scalar s) {
return s * factor; });
204template <
typename Derived,
typename Scalar>
207 return left.template unaryExpr<std::common_type_t<typename Derived::Scalar, Scalar>>(
208 [divisor](
const typename Derived::Scalar s) {
return s / divisor; });
213#ifndef XPED_COMPILED_LIB
Definition: AdjointOp.hpp:25
Definition: BlockUnaryOp.hpp:25
Definition: CoeffBinaryOp.hpp:27
Definition: CoeffUnaryOp.hpp:27
Definition: DiagCoeffBinaryOp.hpp:27
Definition: DiagCoeffUnaryOp.hpp:25
Definition: TensorBase.hpp:36
ScalarTraits< Scalar >::Real norm() XPED_CONST
Definition: TensorBase.hpp:118
const Derived & derived() const
Definition: TensorBase.hpp:128
ScalarTraits< Scalar >::Real maxNorm() XPED_CONST
Definition: TensorBase.cpp:37
static constexpr std::size_t CoRank
Definition: TensorBase.hpp:43
XPED_CONST BlockUnaryOp< Derived > msqrt() XPED_CONST
Definition: TensorBase.cpp:149
XPED_CONST CoeffUnaryOp< Derived, Scalar > square() XPED_CONST
Definition: TensorBase.cpp:130
Derived & derived()
Definition: TensorBase.hpp:129
PlainInterface::MType< Scalar > MatrixType
Definition: TensorBase.hpp:45
XPED_CONST BlockUnaryOp< Derived > mexp(Scalar factor) XPED_CONST
Definition: TensorBase.cpp:155
XPED_CONST CoeffUnaryOp< Derived, ReturnScalar > unaryExpr(const std::function< ReturnScalar(Scalar)> &coeff_func) XPED_CONST
Definition: TensorBase.cpp:78
Scalar trace() XPED_CONST
TensorTraits< Derived >::Scalar Scalar
Definition: TensorBase.hpp:38
typename TensorTraits< Derived >::AllocationPolicy AllocationPolicy
Definition: TensorBase.hpp:40
XPED_CONST DiagCoeffBinaryOp< Derived, OtherDerived > diagBinaryExpr(XPED_CONST TensorBase< OtherDerived > &other, const std::function< Scalar(Scalar, Scalar)> &coeff_func) XPED_CONST
Definition: TensorBase.cpp:181
TensorTraits< Derived >::Symmetry Symmetry
Definition: TensorBase.hpp:39
XPED_CONST CoeffUnaryOp< Derived, Scalar > sqrt() XPED_CONST
Definition: TensorBase.cpp:118
ScalarTraits< Scalar >::Real maxCoeff(std::size_t &max_block, PlainInterface::MIndextype &max_row, PlainInterface::MIndextype &max_col) XPED_CONST
Definition: TensorBase.cpp:56
XPED_CONST CoeffUnaryOp< Derived, Scalar > inv() XPED_CONST
Definition: TensorBase.cpp:124
XPED_CONST CoeffUnaryOp< Derived, OtherScalar > cast() XPED_CONST
Definition: TensorBase.cpp:143
XPED_CONST DiagCoeffUnaryOp< Derived > diag_inv() XPED_CONST
Definition: TensorBase.cpp:167
Tensor< Scalar, Rank, CoRank, Symmetry, false, AllocationPolicy > eval() const
Definition: TensorBase.hpp:123
XPED_CONST CoeffBinaryOp< Derived, OtherDerived > binaryExpr(XPED_CONST TensorBase< OtherDerived > &other, const std::function< Scalar(Scalar, Scalar)> &coeff_func) XPED_CONST
Definition: TensorBase.cpp:188
XPED_CONST CoeffUnaryOp< Derived, typename ScalarTraits< Scalar >::Real > abs() XPED_CONST
Definition: TensorBase.cpp:136
XPED_CONST DiagCoeffUnaryOp< Derived > diag_sqrt() XPED_CONST
Definition: TensorBase.cpp:173
static constexpr std::size_t Rank
Definition: TensorBase.hpp:42
ScalarTraits< Scalar >::Real squaredNorm() XPED_CONST
Definition: TensorBase.cpp:47
XPED_CONST AdjointOp< Derived > adjoint() XPED_CONST
Definition: TensorBase.cpp:71
XPED_CONST DiagCoeffUnaryOp< Derived > diagUnaryExpr(const std::function< Scalar(Scalar)> &coeff_func) XPED_CONST
Definition: TensorBase.cpp:161
Definition: Tensor.hpp:40
XTensor< TRACK, Scalar, Rank, CoRank, Symmetry > operator-(const Tensor< Scalar, Rank, CoRank, Symmetry, true > &t, Scalar s)
Definition: ADTensor.hpp:428
XTensor< TRACK, Scalar, Rank, CoRank, Symmetry > operator+(const Tensor< Scalar, Rank, CoRank, Symmetry, true > &t, Scalar s)
Definition: ADTensor.hpp:440
XTensor< TRACK, Scalar, Rank, CoRank, Symmetry > operator*(const Tensor< Scalar, Rank, CoRank, Symmetry, true > &t, Scalar s)
Definition: ADTensor.hpp:452
XPED_CONST CoeffUnaryOp< Derived, std::common_type_t< typename Derived::Scalar, Scalar > > operator/(XPED_CONST TensorBase< Derived > &left, Scalar divisor)
Definition: TensorBase.hpp:205
int MIndextype
Definition: MatrixInterface_Cyclops_impl.hpp:49
CTF::Matrix< Scalar > MType
Definition: MatrixInterface_Cyclops_impl.hpp:40
Definition: ScalarTraits.hpp:10
Definition: TensorBase.hpp:10