58 unsigned int distance0,
unsigned int size0)
60 _bits(
"bits",
"word size in bits",bits0),
61 _distance(
"distance",
"minimum distance",distance0),
62 _size(
"size",
"number of symbols",size0) {
67 unsigned int bits(
void)
const {
return _bits.
value(); }
71 unsigned int size(
void)
const {
return _size.
value(); }
94 x(*this,opt.size(),
IntSet::empty,1,opt.bits()) {
97 trace(*
this,
x, opt.trace());
101 for (
int i=
x.size(); i--;)
102 cx[i] =
expr(*
this, -
x[i]);
104 for (
int i=0; i<
x.size(); i++)
105 for (
int j=i+1; j<
x.size(); j++)
116 for (
int i=0; i<
x.size(); i++) {
117 os <<
"\t[" << i <<
"] = " <<
x[i] << std::endl;
123 x.update(*
this, s.x);
139 opt.
parse(argc,argv);
Node * x
Pointer to corresponding Boolean expression node.
void add(Driver::BaseOption &o)
Add new option o.
Parametric base-class for scripts.
static void run(const Options &opt, Script *s=NULL)
void value(unsigned int v)
Set default value to v.
Options for Hamming problems
unsigned int bits(void) const
Return number of bits.
unsigned int size(void) const
Return number of symbols.
unsigned int distance(void) const
Return minimum distance.
HammingOptions(const char *s, unsigned int bits0, unsigned int distance0, unsigned int size0)
Initialize options for example with name s.
Example: Generating Hamming codes
virtual void print(std::ostream &os) const
Print solution.
int main(int argc, char *argv[])
Main-function.
Hamming(Hamming &s)
Constructor for copying s.
Hamming(const HammingOptions &opt)
Actual model.
virtual Space * copy(void)
Copy during cloning.
void parse(int argc, char *argv[])
Parse commandline arguments.
GECODE_FLOAT_EXPORT void trace(Home home, const FloatVarArgs &x, TraceFilter tf, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), FloatTracer &t=StdFloatTracer::def)
Create a tracer for float variables.
void branch(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
Branch over x with variable selection vars and value selection vals.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVar x1)
Post propagator for .
Gecode toplevel namespace
Select first unassigned variable SetVarBranch SET_VAR_NONE(void)
IntVar expr(Home home, const LinIntExpr &e, const IntPropLevels &ipls=IntPropLevels::def)
Post linear expression and return its value.
Include smallest element SetValBranch SET_VAL_MIN_INC(void)
LinIntExpr cardinality(const SetExpr &)
Cardinality of set expression.