43 double startValue()
const {
return startValue_; }
44 void setStartValue(
double value) { startValue_ = value; }
46 double endValue()
const {
return endValue_; }
47 void setEndValue(
double value) { endValue_ = value; }
49 double stepSize()
const {
return stepSize_; }
50 void setStepSize(
double value) { stepSize_ = value; }
52 Expr* expr()
const {
return expr_.get(); }
53 void setExpr(
Expr* expr) { expr_ = expr; }
55 errc_t getValue(
double& value)
const;
56 errc_t setValue(
double value);
58 std::vector<double>& values() {
return values_; }
59 const std::vector<double>& values()
const {
return values_; }
61 double startValue_{0.0};
62 double endValue_{0.0};
63 double stepSize_{0.0};
65 std::vector<double> values_;
102 using VariableList = std::vector<SharedPtr<VariableType>>;
103 using OutputList = std::vector<SharedPtr<OutputType>>;
105 errc_t execute()
override;
109 const VariableList& variables()
const {
return variables_; }
113 const OutputList& outputs()
const {
return outputs_; }
116 void addVariable(VariableType* variable);
119 void removeVariable(VariableType* variable);
122 void addOutput(OutputType* output);
125 void removeOutput(OutputType* output);
134 int totalRuns()
const;
137 errc_t executeStep(
int stepIndex);
141 void generateValueLists();
144 void stepIndexToVarIndices(
int stepIndex, std::vector<int>& indices)
const;