43 double lower()
const {
return lower_; }
44 void setLower(
double lower) { lower_ = lower; }
46 double upper()
const {
return upper_; }
47 void setUpper(
double upper) { upper_ = upper; }
49 int steps()
const {
return steps_; }
50 void setSteps(
int steps) { steps_ = steps; }
52 Expr* expr()
const {
return expr_.get(); }
53 void setExpr(
Expr* expr) { expr_ = expr; }
56 void generateValueList();
58 const std::vector<double>& values()
const {
return values_; }
59 std::vector<double>& values() {
return values_; }
61 errc_t getValue(
double& value)
const;
62 errc_t setValue(
double value);
69 std::vector<double> values_;
84 bool useLower()
const {
return useLower_; }
85 void setUseLower(
bool useLower) { useLower_ = useLower; }
87 bool useUpper()
const {
return useUpper_; }
88 void setUseUpper(
bool useUpper) { useUpper_ = useUpper; }
90 bool exclude()
const {
return exclude_; }
91 void setExclude(
bool exclude) { exclude_ = exclude; }
93 double lower()
const {
return lower_; }
94 void setLower(
double lower) { lower_ = lower; }
96 double upper()
const {
return upper_; }
97 void setUpper(
double upper) { upper_ = upper; }
99 Expr* expr()
const {
return expr_.get(); }
100 void setExpr(
Expr* expr) { expr_ = expr; }
102 errc_t getValue(
double& value)
const;
121 using VariableList = std::vector<SharedPtr<VariableType>>;
122 using ConstraintList = std::vector<SharedPtr<ConstraintType>>;
127 errc_t execute()
override;
129 VariableList& variables() {
return variables_; }
130 const VariableList& variables()
const {
return variables_; }
132 ConstraintList& constraints() {
return constraints_; }
133 const ConstraintList& constraints()
const {
return constraints_; }
142 void addVariable(VariableType* variable);
145 void removeVariable(VariableType* variable);
148 void addConstraint(ConstraintType* constraint);
151 void removeConstraint(ConstraintType* constraint);
154 int totalRuns()
const;
157 void stepIndexToVarIndices(
int stepIndex, std::vector<int>& indices)
const;
160 errc_t executeStep(
int stepIndex,
bool& isFeasible);
164 ConstraintList constraints_;