39 using namespace Gecode;
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) {
63 add(_bits); add(_distance); add(_size);
67 unsigned int bits(
void)
const {
return _bits.
value(); }
71 unsigned int size(
void)
const {
return _size.
value(); }
101 for (
int i=
x.size();
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);
140 Script::run<Hamming,DFS,HammingOptions>(
opt);
BoolVar expr(Home home, const BoolExpr &e, const IntPropLevels &ipls)
Post Boolean expression and return its value.
Node * x
Pointer to corresponding Boolean expression node.
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
Parametric base-class for scripts.
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.
virtual Space * copy(void)
Copy during cloning.
Hamming(const HammingOptions &opt)
Actual model.
void trace(Home home, const FloatVarArgs &x, TraceFilter tf, int te, FloatTracer &t)
Create a tracer for float variables.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
unsigned int size(I &i)
Size of all ranges of range iterator i.
Gecode::IntArgs i({1, 2, 3, 4})
LinIntExpr cardinality(const SetExpr &e)
Cardinality of set expression.
SetValBranch SET_VAL_MIN_INC(void)
SetVarBranch SET_VAR_NONE(void)