9#ifndef _MP_expression_hpp_
10#define _MP_expression_hpp_
35 Coef(
int c,
int r,
double v,
int s = 0) :
103 std::vector<Constant> multiplicators,
162 left->insertVariables(v);
163 right->insertVariables(v);
Reference counted class for all "constant" types of data.
Expression_operator(const MP_expression &e1, const MP_expression &e2)
void insertVariables(std::set< MP_variable * > &v) const
Functor to facilitate generation of coefficients.
GenerateFunctor(std::vector< Coef > &coefs)
std::vector< Coef > & Coefs
virtual int row_number() const
std::vector< Constant > multiplicators
virtual ~GenerateFunctor()
void setMultiplicator(std::vector< Constant > &mults, double m)
void setTerminalExpression(const TerminalExpression *c)
const TerminalExpression * C
void setConstraint(MP_constraint *r)
Utility for doing reference counted pointers.
Handle(const MP_expression_base *&r)
Semantic representation of a linear constraint.
Range over which some other constuct is defined.
The base class for all expressions.
virtual double level() const =0
virtual ~MP_expression_base()
virtual void insertVariables(std::set< MP_variable * > &v) const =0
virtual void generate(const MP_domain &domain, std::vector< Constant > multiplicators, GenerateFunctor &f, double m) const =0
friend class MP_expression
Symbolic representation of a linear expression.
MP_expression(const VariableRef &v)
Constructor which (silently) converts a Variable to a MP_expression.
MP_expression(MP_expression_base *r)
Constructor for internal use.
MP_expression()
default constructor
friend class MP_constraint
MP_expression(const Constant &c)
Constructor which (silently) converts a Constant to a MP_expression.
Symantic representation of a variable.
virtual int row_number() const
ObjectiveGenerateFunctor(std::vector< Coef > &coefs)
The base class for all expressions.
virtual double getValue() const =0
virtual int getColumn() const =0
virtual int getStage() const =0
Semantic representation of a variable in a Math Program.
Constant operator+(const Constant &a, const Constant &b)
Returns the sum of two constants.
Constant sum(const MP_domain &i, const Constant &e)
Returns the sum of two constants.
Constant operator*(const Constant &a, const Constant &b)
Returns the product of two constants.
Constant operator-(const Constant &a, const Constant &b)
Returns the difference of two constants.
All flopc++ code is contained within the flopc namespace.
Coef(int c, int r, double v, int s=0)