Generated on Tue Feb 11 2025 17:33:26 for Gecode by doxygen 1.12.0

Classes

class  Gecode::DFA
 Deterministic finite automaton (DFA) More...
 
class  Gecode::TupleSet
 Class represeting a set of tuples. More...
 

Functions

void Gecode::extensional (Home home, const IntVarArgs &x, DFA d, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for extensional constraint described by a DFA.
 
void Gecode::extensional (Home home, const BoolVarArgs &x, DFA d, IntPropLevel ipl=IPL_DEF)
 Post domain consistent propagator for extensional constraint described by a DFA.
 
void Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$.
 
void Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, bool pos, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$ or $x\not\in t$.
 
void Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$.
 
void Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, bool pos, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$ or $(x\not\in t)\equiv r$.
 
void Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$.
 
void Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, bool pos, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x\in t$ or $x\not\in t$.
 
void Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$.
 
void Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, bool pos, Reify r, IntPropLevel ipl=IPL_DEF)
 Post propagator for $(x\in t)\equiv r$ or $(x\not\in t)\equiv r$.
 

Detailed Description

Extensional constraints support different ways of how the extensionally defined relation between the variables is defined. Examples include specification by a DFA or a table.

A DFA can be defined by a regular expression, for regular expressions see the module MiniModel.

Function Documentation

◆ extensional() [1/10]

void Gecode::extensional ( Home home,
const IntVarArgs & x,
DFA d,
IntPropLevel ipl = IPL_DEF )

Post domain consistent propagator for extensional constraint described by a DFA.

The elements of x must be a word of the language described by the DFA d.

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply. If shared occurences of variables are required, unshare should be used.

Definition at line 39 of file extensional-regular.cpp.

◆ extensional() [2/10]

void Gecode::extensional ( Home home,
const BoolVarArgs & x,
DFA d,
IntPropLevel ipl = IPL_DEF )

Post domain consistent propagator for extensional constraint described by a DFA.

The elements of x must be a word of the language described by the DFA d.

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply. If shared occurences of variables are required, unshare should be used.

Definition at line 49 of file extensional-regular.cpp.

◆ extensional() [3/10]

void Gecode::extensional ( Home home,
const IntVarArgs & x,
const TupleSet & t,
IntPropLevel ipl = IPL_DEF )
inline

Post propagator for $x\in t$.

  • Supports domain consistency (ipl = IPL_DOM, default) only.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
  • Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.

Definition at line 37 of file extensional.hpp.

◆ extensional() [4/10]

void Gecode::extensional ( Home home,
const IntVarArgs & x,
const TupleSet & t,
bool pos,
IntPropLevel ipl = IPL_DEF )

Post propagator for $x\in t$ or $x\not\in t$.

  • If pos is true, it posts a propagator for $x\in t$ and otherwise for $x\not\in t$.
  • Supports domain consistency (ipl = IPL_DOM, default) only.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
  • Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.

Definition at line 43 of file extensional-tuple-set.cpp.

◆ extensional() [5/10]

void Gecode::extensional ( Home home,
const IntVarArgs & x,
const TupleSet & t,
Reify r,
IntPropLevel ipl = IPL_DEF )
inline

Post propagator for $(x\in t)\equiv r$.

  • Supports domain consistency (ipl = IPL_DOM, default) only.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
  • Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.

Definition at line 43 of file extensional.hpp.

◆ extensional() [6/10]

void Gecode::extensional ( Home home,
const IntVarArgs & x,
const TupleSet & t,
bool pos,
Reify r,
IntPropLevel ipl = IPL_DEF )

Post propagator for $(x\in t)\equiv r$ or $(x\not\in t)\equiv r$.

  • If pos is true, it posts a propagator for $(x\in t)\equiv r$ and otherwise for $(x\not\in t)\equiv r$.
  • Supports domain consistency (ipl = IPL_DOM, default) only.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
  • Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.

Definition at line 60 of file extensional-tuple-set.cpp.

◆ extensional() [7/10]

void Gecode::extensional ( Home home,
const BoolVarArgs & x,
const TupleSet & t,
IntPropLevel ipl = IPL_DEF )
inline

Post propagator for $x\in t$.

  • Supports domain consistency (ipl = IPL_DOM, default) only.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
  • Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.

Definition at line 49 of file extensional.hpp.

◆ extensional() [8/10]

void Gecode::extensional ( Home home,
const BoolVarArgs & x,
const TupleSet & t,
bool pos,
IntPropLevel ipl = IPL_DEF )

Post propagator for $x\in t$ or $x\not\in t$.

  • If pos is true, it posts a propagator for $x\in t$ and otherwise for $x\not\in t$.
  • Supports domain consistency (ipl = IPL_DOM, default) only.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
  • Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.

Definition at line 108 of file extensional-tuple-set.cpp.

◆ extensional() [9/10]

void Gecode::extensional ( Home home,
const BoolVarArgs & x,
const TupleSet & t,
Reify r,
IntPropLevel ipl = IPL_DEF )
inline

Post propagator for $(x\in t)\equiv r$.

  • Supports domain consistency (ipl = IPL_DOM, default) only.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
  • Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.

Definition at line 55 of file extensional.hpp.

◆ extensional() [10/10]

void Gecode::extensional ( Home home,
const BoolVarArgs & x,
const TupleSet & t,
bool pos,
Reify r,
IntPropLevel ipl = IPL_DEF )

Post propagator for $(x\in t)\equiv r$ or $(x\not\in t)\equiv r$.

  • If pos is true, it posts a propagator for $(x\in t)\equiv r$ and otherwise for $(x\not\in t)\equiv r$.
  • Supports domain consistency (ipl = IPL_DOM, default) only.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
  • Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.

Definition at line 127 of file extensional-tuple-set.cpp.