19 #include <type_traits>
51 struct IWontForgetToCallUpdates
70 double scalarizationWeight = 1);
124 void build(
const VariablePtr & variable,
bool first);
127 void processRequirements();
139 void addMatrixSubstitutionAssignments(
const VariableVector & variables,
150 template<AssignType A = AssignType::COPY,
typename From,
typename To>
151 void addVectorAssignment(
const From & f, To v,
bool flip,
bool useFRHS =
true,
bool useTRHS =
true);
159 template<AssignType A = AssignType::COPY,
typename From,
typename To>
160 void addVectorAssignment(
const From & f,
165 bool useTRHS =
true);
178 template<AssignType A = AssignType::COPY,
typename To>
179 void addVectorAssignment(
double d, To v,
bool flip =
false,
bool useFRHS =
true,
bool useTRHS =
true);
185 template<AssignType A = AssignType::COPY,
typename To>
186 void addVectorAssignment(
double d,
191 bool useTRHS =
true);
234 template<
typename L,
typename U>
235 void addBounds(
const VariablePtr & variable, L l, U u,
bool first);
237 template<
typename L,
typename U,
typename TL,
typename TU>
238 void addBounds(
const VariablePtr & variable, L l, U u, TL tl, TU tu,
bool first);
244 template<
typename T, AssignType A,
typename U>
251 template<
typename T, AssignType A, MatrixMult M = GENERAL,
typename U,
typename V>
253 const Eigen::Ref<T> & to,
262 double scalarizationWeight_;
266 bool useDefaultScalarWeight_;
268 bool useDefaultAnisotropicWeight_;
270 std::vector<MatrixAssignment> matrixAssignments_;
275 std::vector<MatrixAssignment> matrixSubstitutionAssignments_;
277 std::vector<VectorAssignment> vectorAssignments_;
281 std::vector<VectorSubstitutionAssignement> vectorSubstitutionAssignments_;
285 std::vector<std::shared_ptr<function::BasicLinearFunction>> variableSubstitutions_;
290 struct ReferenceableData
293 double scalarWeight_ = 1;
294 double minusScalarWeight_ = -1;
295 Eigen::VectorXd anisotropicWeight_;
296 Eigen::VectorXd minusAnisotropicWeight_;
299 Eigen::VectorXd tmp1_;
300 Eigen::VectorXd tmp2_;
301 Eigen::VectorXd tmp3_;
302 Eigen::VectorXd tmp4_;
305 std::unique_ptr<ReferenceableData> data_;
310 #include <tvm/scheme/internal/Assignment.hpp>
#define TVM_DLLAPI
Definition: api.h:35
Definition: VariableVector.h:41
Definition: Variable.h:49
Definition: LinearConstraint.h:56
Definition: BasicLinearFunction.h:22
Definition: Substitutions.h:24
Definition: AssignmentTarget.h:37
Definition: Assignment.h:32
void onUpdateWeights(bool scalar=true, bool vector=true)
Assignment & operator=(const Assignment &)=delete
Assignment & operator=(Assignment &&)=default
AssignmentTarget & target(IWontForgetToCallUpdates={})
VectorRef(AssignmentTarget::*)() const VectorFunction
Definition: Assignment.h:48
static Assignment reprocess(const Assignment &, const VariableVector &, const hint::internal::Substitutions *const)
bool changeScalarWeightIsAllowed()
Assignment(Assignment &&)=default
static double big_
Definition: Assignment.h:104
void onUpdatedMapping(const VariableVector &newVar, bool updateMatrixtarget=true)
Assignment(LinearConstraintPtr source, SolvingRequirementsPtr req, const AssignmentTarget &target, const VariableVector &variables, const hint::internal::Substitutions *const subs=nullptr, double scalarizationWeight=1)
static Assignment reprocess(const Assignment &, const VariablePtr &, bool)
bool changeVectorWeightIsAllowed()
const Eigen::VectorXd &(constraint::abstract::LinearConstraint::*)() const RHSFunction
Definition: Assignment.h:37
Assignment(LinearConstraintPtr source, const AssignmentTarget &target, const VariablePtr &variables, bool first)
Assignment(const Assignment &)=delete
MatrixRef(AssignmentTarget::*)(int, int) const MatrixFunction
Definition: Assignment.h:42
Definition: CompiledAssignmentWrapper.h:30
Definition: Assignment.h:23
std::shared_ptr< Variable > VariablePtr
Definition: defs.h:65
Eigen::Ref< Eigen::VectorXd > VectorRef
Definition: defs.h:51
std::shared_ptr< constraint::abstract::LinearConstraint > LinearConstraintPtr
Definition: defs.h:59
Eigen::Ref< Eigen::MatrixXd > MatrixRef
Definition: defs.h:49
Eigen::Ref< const Eigen::MatrixXd > MatrixConstRef
Definition: defs.h:48
std::shared_ptr< requirements::SolvingRequirementsWithCallbacks > SolvingRequirementsPtr
Definition: defs.h:63