50 postviewvalbrancher<SetView,1,int,2>
61 vars.
a.expand(home,
x);
65 vars.
b.expand(home,
x);
69 vars.
c.expand(home,
x);
73 vars.
d.expand(home,
x);
83 postviewvalbrancher<SetView,2,int,2>(home,xv,vs,vsc,bf,vvp);
89 postviewvalbrancher<SetView,3,int,2>(home,xv,vs,vsc,bf,vvp);
95 postviewvalbrancher<SetView,4,int,2>(home,xv,vs,vsc,bf,vvp);
111 SetVarValPrint vvp) {
113 if (home.
failed())
return;
118 postviewvalbrancher<SetView,1,int,1>
126 SetVarValPrint vvp) {
128 if (home.
failed())
return;
129 vars.
a.expand(home,
x);
133 vars.
b.expand(home,
x);
137 vars.
c.expand(home,
x);
141 vars.
d.expand(home,
x);
151 postviewvalbrancher<SetView,2,int,1>(home,xv,vs,vsc,bf,vvp);
157 postviewvalbrancher<SetView,3,int,1>(home,xv,vs,vsc,bf,vvp);
163 postviewvalbrancher<SetView,4,int,1>(home,xv,vs,vsc,bf,vvp);
Node * x
Pointer to corresponding Boolean expression node.
Home class for posting propagators
bool failed(void) const
Check whether corresponding space is failed.
Which value to select for assignment.
Which values to select for branching first.
Which variable to select for branching.
Expand and CHB void expand(Home home, const SetVarArgs &x)
@ SEL_NONE
First unassigned.
@ SEL_RND
Random (uniform, for tie breaking)
Combine variable selection criteria for tie-breaking.
VarBranch a
Branching criteria to try in order.
Base class for value selection and commit.
Select the first unassigned view.
Abstract class for view selection.
void branch(Home home, SetVar x, SetValBranch vals, SetVarValPrint vvp)
Branch over x with value selection vals.
std::function< bool(const Space &home, SetVar x, int i)> SetBranchFilter
Branch filter function type for set variables.
void assign(Home home, SetVar x, SetAssign vars, SetVarValPrint vvp)
Assign x with value selection vals.
ValSelCommitBase< SetView, int > * valselcommit(Space &home, const SetValBranch &svb)
Return value and commit for set views.
ViewSel< SetView > * viewsel(Space &home, const SetVarBranch &svb)
Return view selectors for set views.
SetVarBranch SET_VAR_NONE(void)