C++ Reference
C++ Reference: Routing
Detailed Description
The class IntVar is a subset of IntExpr.
In addition to the IntExpr protocol, it offers persistence, removing values from the domains, and a finer model for events.
Definition at line 3997 of file constraint_solver.h.
Public Member Functions | |
IntVar (Solver *const s) | |
IntVar (Solver *const s, const std::string &name) | |
~IntVar () override | |
bool | IsVar () const override |
Returns true if the expression is indeed a variable. More... | |
IntVar * | Var () override |
Creates a variable from the expression. More... | |
virtual int64 | Value () const =0 |
This method returns the value of the variable. More... | |
virtual void | RemoveValue (int64 v)=0 |
This method removes the value 'v' from the domain of the variable. More... | |
virtual void | RemoveInterval (int64 l, int64 u)=0 |
This method removes the interval 'l' . More... | |
virtual void | RemoveValues (const std::vector< int64 > &values) |
This method remove the values from the domain of the variable. More... | |
virtual void | SetValues (const std::vector< int64 > &values) |
This method intersects the current domain with the values in the array. More... | |
virtual void | WhenBound (Demon *d)=0 |
This method attaches a demon that will be awakened when the variable is bound. More... | |
void | WhenBound (Solver::Closure closure) |
This method attaches a closure that will be awakened when the variable is bound. More... | |
void | WhenBound (Solver::Action action) |
This method attaches an action that will be awakened when the variable is bound. More... | |
virtual void | WhenDomain (Demon *d)=0 |
This method attaches a demon that will watch any domain modification of the domain of the variable. More... | |
void | WhenDomain (Solver::Closure closure) |
This method attaches a closure that will watch any domain modification of the domain of the variable. More... | |
void | WhenDomain (Solver::Action action) |
This method attaches an action that will watch any domain modification of the domain of the variable. More... | |
virtual uint64 | Size () const =0 |
This method returns the number of values in the domain of the variable. More... | |
virtual bool | Contains (int64 v) const =0 |
This method returns whether the value 'v' is in the domain of the variable. More... | |
virtual IntVarIterator * | MakeHoleIterator (bool reversible) const =0 |
Creates a hole iterator. More... | |
virtual IntVarIterator * | MakeDomainIterator (bool reversible) const =0 |
Creates a domain iterator. More... | |
virtual int64 | OldMin () const =0 |
Returns the previous min. More... | |
virtual int64 | OldMax () const =0 |
Returns the previous max. More... | |
virtual int | VarType () const |
void | Accept (ModelVisitor *const visitor) const override |
Accepts the given visitor. More... | |
virtual IntVar * | IsEqual (int64 constant)=0 |
IsEqual. More... | |
virtual IntVar * | IsDifferent (int64 constant)=0 |
virtual IntVar * | IsGreaterOrEqual (int64 constant)=0 |
virtual IntVar * | IsLessOrEqual (int64 constant)=0 |
int | index () const |
Returns the index of the variable. More... | |
virtual int64 | Min () const =0 |
virtual void | SetMin (int64 m)=0 |
virtual int64 | Max () const =0 |
virtual void | SetMax (int64 m)=0 |
virtual void | Range (int64 *l, int64 *u) |
By default calls Min() and Max(), but can be redefined when Min and Max code can be factorized. More... | |
virtual void | SetRange (int64 l, int64 u) |
This method sets both the min and the max of the expression. More... | |
virtual void | SetValue (int64 v) |
This method sets the value of the expression. More... | |
virtual bool | Bound () const |
Returns true if the min and the max of the expression are equal. More... | |
IntVar * | VarWithName (const std::string &name) |
Creates a variable from the expression and set the name of the resulting var. More... | |
virtual void | WhenRange (Demon *d)=0 |
Attach a demon that will watch the min or the max of the expression. More... | |
void | WhenRange (Solver::Closure closure) |
Attach a demon that will watch the min or the max of the expression. More... | |
void | WhenRange (Solver::Action action) |
Attach a demon that will watch the min or the max of the expression. More... | |
std::string | DebugString () const override |
Solver * | solver () const |
void | FreezeQueue () |
This method freezes the propagation queue. More... | |
void | UnfreezeQueue () |
This method unfreezes the propagation queue. More... | |
void | EnqueueDelayedDemon (Demon *const d) |
This method pushes the demon onto the propagation queue. More... | |
void | EnqueueVar (Demon *const d) |
void | ExecuteAll (const SimpleRevFIFO< Demon * > &demons) |
void | EnqueueAll (const SimpleRevFIFO< Demon * > &demons) |
void | set_action_on_fail (Solver::Action a) |
void | reset_action_on_fail () |
This method clears the failure callback. More... | |
void | set_variable_to_clean_on_fail (IntVar *v) |
Shortcut for variable cleaner. More... | |
virtual std::string | name () const |
Object naming. More... | |
void | set_name (const std::string &name) |
bool | HasName () const |
Returns whether the object has been named or not. More... | |
virtual std::string | BaseName () const |
Returns a base name for automatic naming. More... | |
Constructor & Destructor Documentation
◆ IntVar() [1/2]
◆ IntVar() [2/2]
◆ ~IntVar()
|
inlineoverride |
Definition at line 4001 of file constraint_solver.h.
Member Function Documentation
◆ Accept()
|
overridevirtual |
Accepts the given visitor.
Reimplemented from IntExpr.
◆ BaseName()
|
virtualinherited |
Returns a base name for automatic naming.
Reimplemented in BooleanVar.
◆ Bound()
|
inlinevirtualinherited |
Returns true if the min and the max of the expression are equal.
Reimplemented in BooleanVar.
Definition at line 3862 of file constraint_solver.h.
◆ Contains()
|
pure virtual |
This method returns whether the value 'v' is in the domain of the variable.
Implemented in BooleanVar.
◆ DebugString()
|
inlineoverridevirtualinherited |
Reimplemented from BaseObject.
Reimplemented in Constraint, SequenceVar, Assignment, Pack, BooleanVar, and GlobalVehicleBreaksConstraint.
Definition at line 3172 of file constraint_solver.h.
◆ EnqueueAll()
|
inherited |
◆ EnqueueDelayedDemon()
|
inlineinherited |
This method pushes the demon onto the propagation queue.
It will be processed directly if the queue is empty. It will be enqueued according to its priority otherwise.
Definition at line 3192 of file constraint_solver.h.
◆ EnqueueVar()
|
inlineinherited |
Definition at line 3193 of file constraint_solver.h.
◆ ExecuteAll()
|
inherited |
◆ FreezeQueue()
|
inlineinherited |
This method freezes the propagation queue.
It is useful when you need to apply multiple modifications at once.
Definition at line 3183 of file constraint_solver.h.
◆ HasName()
|
inherited |
Returns whether the object has been named or not.
◆ index()
|
inline |
Returns the index of the variable.
Definition at line 4091 of file constraint_solver.h.
◆ IsDifferent()
|
pure virtual |
Implemented in BooleanVar.
◆ IsEqual()
|
pure virtual |
IsEqual.
Implemented in BooleanVar.
◆ IsGreaterOrEqual()
|
pure virtual |
Implemented in BooleanVar.
◆ IsLessOrEqual()
|
pure virtual |
Implemented in BooleanVar.
◆ IsVar()
|
inlineoverridevirtual |
Returns true if the expression is indeed a variable.
Reimplemented from IntExpr.
Definition at line 4003 of file constraint_solver.h.
◆ MakeDomainIterator()
|
pure virtual |
Creates a domain iterator.
When 'reversible' is false, the returned object is created on the normal C++ heap and the solver does NOT take ownership of the object.
Implemented in BooleanVar.
◆ MakeHoleIterator()
|
pure virtual |
Creates a hole iterator.
When 'reversible' is false, the returned object is created on the normal C++ heap and the solver does NOT take ownership of the object.
Implemented in BooleanVar.
◆ Max()
|
pure virtualinherited |
Implemented in BooleanVar.
◆ Min()
|
pure virtualinherited |
Implemented in BooleanVar.
◆ name()
|
virtualinherited |
Object naming.
◆ OldMax()
|
pure virtual |
Returns the previous max.
◆ OldMin()
|
pure virtual |
Returns the previous min.
◆ Range()
|
inlinevirtualinherited |
By default calls Min() and Max(), but can be redefined when Min and Max code can be factorized.
Definition at line 3848 of file constraint_solver.h.
◆ RemoveInterval()
|
pure virtual |
This method removes the interval 'l' .
. 'u' from the domain of the variable. It assumes that 'l' <= 'u'.
Implemented in BooleanVar.
◆ RemoveValue()
|
pure virtual |
This method removes the value 'v' from the domain of the variable.
Implemented in BooleanVar.
◆ RemoveValues()
|
virtual |
This method remove the values from the domain of the variable.
◆ reset_action_on_fail()
|
inlineinherited |
This method clears the failure callback.
Definition at line 3206 of file constraint_solver.h.
◆ set_action_on_fail()
|
inlineinherited |
Definition at line 3200 of file constraint_solver.h.
◆ set_name()
|
inherited |
◆ set_variable_to_clean_on_fail()
|
inlineinherited |
Shortcut for variable cleaner.
Definition at line 3209 of file constraint_solver.h.
◆ SetMax()
|
pure virtualinherited |
Implemented in BooleanVar.
◆ SetMin()
|
pure virtualinherited |
Implemented in BooleanVar.
◆ SetRange()
|
inlinevirtualinherited |
This method sets both the min and the max of the expression.
Reimplemented in BooleanVar.
Definition at line 3853 of file constraint_solver.h.
◆ SetValue()
|
inlinevirtualinherited |
This method sets the value of the expression.
Definition at line 3859 of file constraint_solver.h.
◆ SetValues()
|
virtual |
This method intersects the current domain with the values in the array.
◆ Size()
|
pure virtual |
This method returns the number of values in the domain of the variable.
Implemented in BooleanVar.
◆ solver()
|
inlineinherited |
Definition at line 3179 of file constraint_solver.h.
◆ UnfreezeQueue()
|
inlineinherited |
This method unfreezes the propagation queue.
All modifications that happened when the queue was frozen will be processed.
Definition at line 3187 of file constraint_solver.h.
◆ Value()
|
pure virtual |
This method returns the value of the variable.
This method checks before that the variable is bound.
Implemented in BooleanVar.
◆ Var()
|
inlineoverridevirtual |
Creates a variable from the expression.
Implements IntExpr.
Definition at line 4004 of file constraint_solver.h.
◆ VarType()
|
virtual |
Reimplemented in BooleanVar.
◆ VarWithName()
|
inherited |
Creates a variable from the expression and set the name of the resulting var.
If the expression is already a variable, then it will set the name of the expression, possibly overwriting it. This is just a shortcut to Var() followed by set_name().
◆ WhenBound() [1/3]
|
pure virtual |
This method attaches a demon that will be awakened when the variable is bound.
Implemented in BooleanVar.
◆ WhenBound() [2/3]
|
inline |
This method attaches an action that will be awakened when the variable is bound.
Definition at line 4035 of file constraint_solver.h.
◆ WhenBound() [3/3]
|
inline |
This method attaches a closure that will be awakened when the variable is bound.
Definition at line 4028 of file constraint_solver.h.
◆ WhenDomain() [1/3]
|
pure virtual |
This method attaches a demon that will watch any domain modification of the domain of the variable.
Implemented in BooleanVar.
◆ WhenDomain() [2/3]
|
inline |
This method attaches an action that will watch any domain modification of the domain of the variable.
Definition at line 4051 of file constraint_solver.h.
◆ WhenDomain() [3/3]
|
inline |
This method attaches a closure that will watch any domain modification of the domain of the variable.
Definition at line 4045 of file constraint_solver.h.
◆ WhenRange() [1/3]
|
pure virtualinherited |
Attach a demon that will watch the min or the max of the expression.
Implemented in BooleanVar.
◆ WhenRange() [2/3]
|
inlineinherited |
Attach a demon that will watch the min or the max of the expression.
Definition at line 3885 of file constraint_solver.h.
◆ WhenRange() [3/3]
|
inlineinherited |
Attach a demon that will watch the min or the max of the expression.
Definition at line 3879 of file constraint_solver.h.
The documentation for this class was generated from the following file: