Generated on Sat Apr 10 2021 00:00:00 for Gecode by doxygen 1.9.1
ldsb.cpp File Reference
#include <gecode/int/ldsb.hh>
#include <gecode/int/branch.hh>
#include <map>

Go to the source code of this file.

Classes

class  Gecode::Int::LDSB::VariableMap
 Map from variable implementation to index. More...
 

Namespaces

 Gecode::Int
 Finite domain integers.
 
 Gecode::Int::LDSB
 Symmetry breaking for integer variables.
 

Functions

std::pair< int, int > Gecode::Int::LDSB::findVar (int *indices, unsigned int n_values, unsigned int seq_size, int index)
 Find the location of an integer in a collection of sequences. More...
 
SymmetryHandle Gecode::VariableSymmetry (const IntVarArgs &x)
 Variables in x are interchangeable. More...
 
SymmetryHandle Gecode::VariableSymmetry (const BoolVarArgs &x)
 Variables in x are interchangeable. More...
 
SymmetryHandle Gecode::VariableSymmetry (const IntVarArgs &x, const IntArgs &indices)
 Specified variables in x are interchangeable. More...
 
SymmetryHandle Gecode::ValueSymmetry (const IntArgs &v)
 Values in v are interchangeable. More...
 
SymmetryHandle Gecode::ValueSymmetry (const IntSet &v)
 Values in v are interchangeable. More...
 
SymmetryHandle Gecode::ValueSymmetry (IntVar vars)
 All values in the domain of the given variable are interchangeable. More...
 
SymmetryHandle Gecode::VariableSequenceSymmetry (const IntVarArgs &x, int ss)
 Variable sequences in x of size ss are interchangeable. More...
 
SymmetryHandle Gecode::VariableSequenceSymmetry (const BoolVarArgs &x, int ss)
 Variable sequences in x of size ss are interchangeable. More...
 
SymmetryHandle Gecode::ValueSequenceSymmetry (const IntArgs &v, int ss)
 Value sequences in v of size ss are interchangeable. More...
 
SymmetryHandle Gecode::values_reflect (int lower, int upper)
 The values from lower to upper (inclusive) can be reflected. More...
 
SymmetryHandle Gecode::values_reflect (const IntVar &x)
 
SymmetryImp< IntView > * Gecode::Int::LDSB::createIntSym (Space &home, const SymmetryHandle &s, VariableMap variableMap)
 Create an integer symmetry implementation from a symmetry handle. More...
 
SymmetryImp< BoolView > * Gecode::Int::LDSB::createBoolSym (Space &home, const SymmetryHandle &s, VariableMap variableMap)
 Create a boolean symmetry implementation from a symmetry handle. More...
 
void Gecode::branch (Home home, const IntVarArgs &x, IntVarBranch vars, IntValBranch vals, const Symmetries &syms, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Branch over x with variable selection vars and value selection vals with symmetry breaking. More...
 
void Gecode::branch (Home home, const IntVarArgs &x, TieBreak< IntVarBranch > vars, IntValBranch vals, const Symmetries &syms, IntBranchFilter bf=nullptr, IntVarValPrint vvp=nullptr)
 Branch over x with tie-breaking variable selection vars and value selection vals with symmetry breaking. More...
 
void Gecode::branch (Home home, const BoolVarArgs &x, BoolVarBranch vars, BoolValBranch vals, const Symmetries &syms, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Branch over x with variable selection vars and value selection vals with symmetry breaking. More...
 
void Gecode::branch (Home home, const BoolVarArgs &x, TieBreak< BoolVarBranch > vars, BoolValBranch vals, const Symmetries &syms, BoolBranchFilter bf=nullptr, BoolVarValPrint vvp=nullptr)
 Branch over x with tie-breaking variable selection vars and value selection vals with symmetry breaking. More...
 

Function Documentation

◆ VariableSymmetry() [1/3]

SymmetryHandle Gecode::VariableSymmetry ( const IntVarArgs vars)

Variables in x are interchangeable.

Definition at line 62 of file ldsb.cpp.

◆ VariableSymmetry() [2/3]

SymmetryHandle Gecode::VariableSymmetry ( const BoolVarArgs vars)

Variables in x are interchangeable.

Definition at line 68 of file ldsb.cpp.

◆ VariableSymmetry() [3/3]

SymmetryHandle Gecode::VariableSymmetry ( const IntVarArgs x,
const IntArgs indices 
)

Specified variables in x are interchangeable.

Definition at line 74 of file ldsb.cpp.

◆ ValueSymmetry() [1/3]

SymmetryHandle Gecode::ValueSymmetry ( const IntArgs vs)

Values in v are interchangeable.

Definition at line 81 of file ldsb.cpp.

◆ ValueSymmetry() [2/3]

SymmetryHandle Gecode::ValueSymmetry ( const IntSet vs)

Values in v are interchangeable.

Definition at line 84 of file ldsb.cpp.

◆ ValueSymmetry() [3/3]

SymmetryHandle Gecode::ValueSymmetry ( IntVar  x)

All values in the domain of the given variable are interchangeable.

Definition at line 87 of file ldsb.cpp.

◆ VariableSequenceSymmetry() [1/2]

SymmetryHandle Gecode::VariableSequenceSymmetry ( const IntVarArgs x,
int  ss 
)

Variable sequences in x of size ss are interchangeable.

The size of x must be a multiple of ss.

Definition at line 90 of file ldsb.cpp.

◆ VariableSequenceSymmetry() [2/2]

SymmetryHandle Gecode::VariableSequenceSymmetry ( const BoolVarArgs x,
int  ss 
)

Variable sequences in x of size ss are interchangeable.

The size of x must be a multiple of ss.

Definition at line 96 of file ldsb.cpp.

◆ ValueSequenceSymmetry()

SymmetryHandle Gecode::ValueSequenceSymmetry ( const IntArgs v,
int  ss 
)

Value sequences in v of size ss are interchangeable.

The size of v must be a multiple of ss.

Definition at line 102 of file ldsb.cpp.

◆ values_reflect() [1/2]

SymmetryHandle Gecode::values_reflect ( int  lower,
int  upper 
)

The values from lower to upper (inclusive) can be reflected.

Definition at line 106 of file ldsb.cpp.

◆ values_reflect() [2/2]

SymmetryHandle Gecode::values_reflect ( const IntVar x)

Definition at line 121 of file ldsb.cpp.