Generated on Sat Feb 7 2015 02:01:36 for Gecode by doxygen 1.8.9.1

Functions

void Gecode::unshare (Home home, IntVarArgs &x, IntConLevel icl=ICL_DEF)
 Replace multiple variable occurences in x by fresh variables. More...
 
void Gecode::unshare (Home home, BoolVarArgs &x, IntConLevel icl=ICL_DEF)
 Replace multiple variable occurences in x by fresh variables. More...
 

Detailed Description

Unsharing replaces multiple occurences of the same variable by fresh yet equal (enforced through propagators for equality) variables: after unsharing a variable appears at most once. Note that this is only done for not yet assigned variables (as all propagators can handle multiple occurences of the same variable provided it is already assigned).

Unsharing is useful for constraints that only accept variable arrays without multiple occurences of the same variable, for example extensional.

Function Documentation

void Gecode::unshare ( Home  home,
IntVarArgs x,
IntConLevel  icl = ICL_DEF 
)

Replace multiple variable occurences in x by fresh variables.

Supports domain consistency (icl = ICL_DOM, default) and bounds consistency (icl = ICL_BND).

Definition at line 133 of file unshare.cpp.

void Gecode::unshare ( Home  home,
BoolVarArgs x,
IntConLevel   
)

Replace multiple variable occurences in x by fresh variables.

Definition at line 139 of file unshare.cpp.