34 #ifndef __GECODE_SET_LDSB_HH__
35 #define __GECODE_SET_LDSB_HH__
44 namespace Gecode {
namespace Set {
namespace LDSB {
46 using namespace Int::LDSB;
56 template<
class View,
int n,
class Val,
unsigned int a,
57 class Filter,
class Print>
111 template<
class View0,
int n0,
class Val0,
unsigned int a0>
128 void updatePart1(
Space& home,
int choicePos);
133 namespace Gecode {
namespace Int {
namespace LDSB {
struct Gecode::@602::NNF::@65::@66 b
For binary nodes (and, or, eqv)
int n
Number of negative literals for node type.
Node * x
Pointer to corresponding Boolean expression node.
struct Gecode::@602::NNF::@65::@67 a
For atomic nodes.
std::function< bool(const Space &home, Var x, int i)> BranchFilter
Function type for branch filter functions.
Base-class for both propagators and branchers.
Choice for performing commit
Home class for posting propagators
Symmetry-breaking brancher with generic view and value selection.
A Literal is a pair of variable index and value.
Implementation of a single symmetry.
Implementation of a value symmetry.
virtual ArgArray< Literal > symmetric(Literal, const ViewArray< View > &) const
Compute symmetric literals.
Symmetry-breaking brancher with generic view and value selection.
bool _stable
Is the state of the brancher "stable"?
int _nCopiedSyms
Number of copied symmetries.
int _prevPos
Position of previous variable that was branched on.
ValueSymmetryImp< View > ** _copiedSyms
Copy of value symmetries from the first node where the current variable was branched on.
IntSet _leftBranchValues
Set of values used on left branches for the current variable.
int _nNonValueSymmetries
Number of non-value symmetries.
void postldsbsetbrancher(Home home, ViewArray< View0 > &x, ViewSel< View0 > *vs[n0], ValSelCommitBase< View0, Val0 > *vsc, SymmetryImp< View0 > **syms, int nsyms, BranchFilter< typename View0::VarType > bf, VarValPrint< typename View0::VarType, Val0 > vvp)
Post LDSB brancher.
int _nValueSymmetries
Number of value symmetries.
LDSBSetBrancher(Home home, ViewArray< View > &x, ViewSel< View > *vs[n], ValSelCommitBase< View, Val > *vsc, SymmetryImp< View > **syms, int nsyms, BranchFilter< Var > bf, VarValPrint< Var, Val > vvp)
Constructor for creation.
void post(Home home, Term *t, int n, FloatRelType frt, FloatVal c)
Post propagator for linear constraint over floats.
std::function< void(const Space &home, const Brancher &b, unsigned int a, Var x, int i, const Val &m, std::ostream &o)> VarValPrint
Function type for printing variable and value selection.
Gecode::FloatVal c(-8, 8)