Generated on for Gecode by doxygen 1.17.0

Classes

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

Enumerations

enum class  Gecode::ExtensionalPropKind { Gecode::ExtensionalPropKind::EPK_AUTO , Gecode::ExtensionalPropKind::EPK_DENSE , Gecode::ExtensionalPropKind::EPK_SPARSE , Gecode::ExtensionalPropKind::EPK_DENSE_COMPRESSED }
 Support representation selection for extensional tuple sets. 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.

Enumeration Type Documentation

◆ ExtensionalPropKind

enum class Gecode::ExtensionalPropKind
strong

Support representation selection for extensional tuple sets.

The selector controls which support representation is materialized by TupleSet::finalize(ExtensionalPropKind). Tuple-set posting dispatches to the propagator for the concrete representation stored in the tuple set. During finalization, EPK_AUTO selects dense or compressed support according to the normal size and density policy; it never selects sparse support.

Enumerator
EPK_AUTO 

Select dense or compressed representation automatically.

EPK_DENSE 

Use dense support representation.

EPK_SPARSE 

Use sparse support representation.

EPK_DENSE_COMPRESSED 

Use compressed dense support representation.

Definition at line 2355 of file int.hh.

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 occurrences of variables are required, unshare should be used.

◆ 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 occurrences of variables are required, unshare should be used.

◆ 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.

◆ 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.

◆ 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.

◆ 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.