24 #include <antares/expressions/visitors/VariadicNodeFunctionVisit.h>
26 #include "LinearExpression.h"
28 namespace Antares::Optimization
42 std::vector<double> constant()
const;
44 void mergeDuplicateCoefficients();
46 std::size_t size()
const;
48 bool isConstant()
const;
50 using iterator = std::vector<LinearExpression>::iterator;
54 using const_iterator = std::vector<LinearExpression>::const_iterator;
55 const_iterator begin()
const;
56 const_iterator end()
const;
66 void rotate(
int shift);
77 void expandTo(std::size_t nbTimesteps);
79 std::vector<LinearExpression> v_;
86 const auto maxSize = Expressions::Visitors::getMaxSize(lhs);
87 std::vector<const LinearExpression*> row(lhs.size());
88 std::vector<double> constants(maxSize);
90 for (std::size_t t = 0; t < maxSize; ++t)
92 for (
int c = 0; c < lhs.size(); ++c)
94 const auto& e = lhs[c];
95 row[c] = &(e.size() < maxSize ? e[0] : e[t]);
97 constants[t] = applyOperation(row, op);
100 return TimeDependentLinearExpression(constants);
Definition: LinearExpression.h:30
Definition: TimeDependentLinearExpression.h:31