22 #ifndef OTAWA_ILP_CONSTRAINT_H
23 #define OTAWA_ILP_CONSTRAINT_H
26 #include <elm/datastruct/Iterator.h>
27 #include <elm/utility.h>
30 namespace otawa {
namespace ilp {
48 virtual double constant(
void)
const = 0;
50 virtual const string&
label(
void)
const = 0;
52 virtual void add(
double coef,
Var *
var = 0) = 0;
53 virtual void sub(
double coef,
Var *
var = 0) = 0;
82 #endif // OTAWA_ILP_CONSTRAINT_H
virtual elm::datastruct::IteratorInst< Term > * terms(void)=0
An expression allows to represent a sum of terms and may be used to represent the value of an aliased...
Definition: Expression.h:43
virtual comparator_t comparator(void) const =0
Get the constraint comparator.
coef_t snd
Definition: Expression.h:40
Iterator(IteratorInst< T > *_iter)
comparator_t
Definition: Constraint.h:36
virtual ~Constraint(void)
Definition: Constraint.h:45
Definition: Constraint.h:67
Definition: Constraint.h:38
virtual void setComparator(comparator_t comp)=0
Definition: Constraint.h:42
virtual void add(double coef, Var *var=0)=0
Add a term to the constraint to the left part of constraint.
Definition: Constraint.h:37
virtual const string & label(void) const =0
Definition: Constraint.h:40
void addRight(double coef, Var *var=0)
Add a factor on the right side.
Definition: Constraint.h:57
void sub(const Term &t)
Definition: Constraint.h:63
virtual double coefficient(Var *var=0) const =0
Get the coefficient for the given variable.
io::Output & operator<<(io::Output &out, Constraint::comparator_t comp)
Definition: ilp_Constraint.cpp:128
virtual void setLabel(const string &label)=0
TermIterator(Constraint *_cons)
Definition: Constraint.h:70
sys::SystemOutStream & out
This class is used to represent constraints in an ILP system with the following form: ...
Definition: Constraint.h:33
otawa::ilp::Term Term
Definition: Constraint.h:35
Definition: Expression.h:35
TermIterator(elm::datastruct::IteratorInst< Term > *_inst)
Definition: Constraint.h:69
Var * fst
Definition: Expression.h:39
virtual void sub(double coef, Var *var=0)=0
Substact a factor from the constraint.
virtual double constant(void) const =0
void add(const Term &t)
Definition: Constraint.h:62
Definition: Constraint.h:41
A variable is an identifier used for performing ILP computation.
Definition: Var.h:36
void addLeft(double coef, Var *var=0)
Add a factor on the left side.
Definition: Constraint.h:56
Encapsulation for ilp::Var pointers for {ilp} expr user-fiendly interface.
Definition: expr.h:29
Definition: Constraint.h:39