32 template<
typename RhsType>
34 {
return rhs.derived(); }
37 template<
typename LhsType>
39 {
return lhs.derived(); }
45 template<
typename MultType>
58 template<
typename Derived>
61 using type =
typename Eigen::internal::ref_selector<Derived>::type;
69 template<
typename Derived>
73 template<
typename LhsType,
typename RhsType>
75 std::remove_const_t<std::remove_reference_t<decltype(std::declval<LhsType>() + std::declval<RhsType>())>>;
80 template<
typename Tuple,
size_t... Indices>
82 {
return std::make_tuple((-std::get<Indices>(tuple))...); }
87 template<
typename MultType,
typename Tuple,
size_t... Indices>
88 auto tuplePremult(
const MultType & m,
const Tuple & tuple, std::index_sequence<Indices...>)
89 {
return std::make_tuple((m * std::get<Indices>(tuple))...); }
100 struct traits<
tvm::utils::internal::NoConstant> :
public traits<tvm::utils::internal::IdentityType>
Definition: AffineExprDetail.h:26
NoConstant operator-() const
Definition: AffineExprDetail.h:28
Definition: AffineExprDetail.h:95
decltype(Eigen::MatrixXd::Identity()) IdentityType
Definition: AffineExprDetail.h:18
decltype(-Eigen::MatrixXd::Identity()) MinusIdentityType
Definition: AffineExprDetail.h:22
NoConstant operator*(const MultType &, const NoConstant &)
Definition: AffineExprDetail.h:46
const RhsType & operator+(const NoConstant &, const Eigen::MatrixBase< RhsType > &rhs)
Definition: AffineExprDetail.h:33
auto tuplePremult(const MultType &m, const Tuple &tuple, std::index_sequence< Indices... >)
Definition: AffineExprDetail.h:88
std::remove_const_t< std::remove_reference_t< decltype(std::declval< LhsType >()+std::declval< RhsType >())> > AddConstantsRetType
Definition: AffineExprDetail.h:75
auto tupleUnaryMinus(const Tuple &tuple, std::index_sequence< Indices... >)
Definition: AffineExprDetail.h:81
decltype(2. *Eigen::MatrixXd::Identity()) MultIdentityType
Definition: AffineExprDetail.h:20
typename RefSelector< Derived >::type RefSelector_t
Definition: AffineExprDetail.h:70
Definition: AffineExprDetail.h:60
typename Eigen::internal::ref_selector< Derived >::type type
Definition: AffineExprDetail.h:61