24 template<
typename Derived>
30 { assert(
matrix.cols() == v->size()); }
33 template<
class T = Derived,
typename std::enable_if_t<std::is_same_v<T,
internal::IdentityType>,
int> = 0>
38 template<
class T = Derived,
typename std::enable_if_t<std::is_same_v<T,
internal::MultIdentityType>,
int> = 0>
40 : matrix_(a *
Eigen::MatrixXd::Identity(v->size(), v->size())), var_(v)
44 template<
class T = Derived,
typename std::enable_if_t<std::is_same_v<T,
internal::MinusIdentityType>,
int> = 0>
48 const Derived &
matrix()
const {
return matrix_; };
69 template<
typename CstDerived,
typename... Derived>
74 template<
class T = CstDerived,
typename std::enable_if_t<std::is_same_v<T,
internal::NoConstant>,
int> = 0>
76 : linear_(
std::forward_as_tuple(
linear...)), constant_(internal::NoConstant())
80 template<
class T = CstDerived,
typename std::enable_if_t<!std::is_same_v<T,
internal::NoConstant>,
int> = 0>
83 { EIGEN_STATIC_ASSERT_VECTOR_ONLY(CstDerived) }
86 template<
class T = CstDerived,
typename std::enable_if_t<std::is_same_v<T,
internal::NoConstant>,
int> = 0>
92 template<
class T = CstDerived,
typename std::enable_if_t<!std::is_same_v<T,
internal::NoConstant>,
int> = 0>
95 { EIGEN_STATIC_ASSERT_VECTOR_ONLY(CstDerived) }
97 const std::tuple<LinearExpr<Derived>...> &
linear()
const {
return linear_; }
98 const CstDerived &
constant()
const {
return constant_; }
111 std::tuple<LinearExpr<Derived>...> linear_;
117 template<
typename CstDerived,
typename... Derived>
120 {
return {constant, linear}; }
Definition: AffineExpr.h:71
AffineExpr(const Eigen::MatrixBase< CstDerived > &constant, const std::tuple< LinearExpr< Derived >... > &linear)
Definition: AffineExpr.h:93
AffineExpr(const Eigen::MatrixBase< CstDerived > &constant, const LinearExpr< Derived > &... linear)
Definition: AffineExpr.h:81
const CstDerived & constant() const
Definition: AffineExpr.h:98
AffineExpr(const internal::NoConstant &constant, const std::tuple< LinearExpr< Derived >... > &linear)
Definition: AffineExpr.h:87
const std::tuple< LinearExpr< Derived >... > & linear() const
Definition: AffineExpr.h:97
AffineExpr(const LinearExpr< Derived > &... linear)
Definition: AffineExpr.h:75
Definition: AffineExpr.h:26
LinearExpr(double a, const tvm::VariablePtr &v)
Definition: AffineExpr.h:39
LinearExpr(const tvm::VariablePtr &v)
Definition: AffineExpr.h:34
const VariablePtr & variable() const
Definition: AffineExpr.h:49
const Derived & matrix() const
Definition: AffineExpr.h:48
LinearExpr(const Eigen::MatrixBase< Derived > &matrix, const VariablePtr &v)
Definition: AffineExpr.h:29
Definition: AffineExprDetail.h:26
Definition: AffineExprDetail.h:95
Type
Definition: enums.h:15
typename RefSelector< Derived >::type RefSelector_t
Definition: AffineExprDetail.h:70
AffineExpr< CstDerived, Derived... > make_AffineExpr(const CstDerived &constant, const std::tuple< LinearExpr< Derived >... > &linear)
Definition: AffineExpr.h:118
std::shared_ptr< Variable > VariablePtr
Definition: defs.h:65