62 unsigned int distance0,
unsigned int size0)
64 _bits(
"-bits",
"word size in bits",bits0),
65 _distance(
"-distance",
"minimum distance",distance0),
66 _size(
"-size",
"number of symbols",size0) {
67 add(_bits); add(_distance); add(_size);
71 unsigned int bits(
void)
const {
return _bits.
value(); }
75 unsigned int size(
void)
const {
return _size.
value(); }
97 x(*this,opt.
size(),
IntSet::empty,1,opt.bits()) {
100 cx[
i] =
expr(*
this, -x[
i]);
102 for (
int i=0; i<x.
size(); i++)
103 for (
int j=i+1; j<x.
size(); j++)
114 for (
int i=0;
i<x.
size();
i++) {
115 os <<
"\t[" <<
i <<
"] = " << x[
i] << std::endl;
121 x.
update(*
this, share, s.x);
126 return new Hamming(share,*
this);
137 opt.
parse(argc,argv);
138 Script::run<Hamming,DFS,HammingOptions>(
opt);
unsigned int size(void) const
Return number of symbols.
SetVarBranch SET_VAR_NONE(void)
Select first unassigned variable.
Options for Hamming problems
SetValBranch SET_VAL_MIN_INC(void)
Include smallest element.
Parametric base-class for scripts.
void value(unsigned int v)
Set default value to v.
void update(Space &, bool share, VarArray< Var > &a)
Update array to be a clone of array a.
Gecode::IntArgs i(4, 1, 2, 3, 4)
unsigned int size(I &i)
Size of all ranges of range iterator i.
Hamming(const HammingOptions &opt)
Actual model.
LinIntExpr cardinality(const SetExpr &e)
Cardinality of set expression.
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
unsigned int distance(void) const
Return minimum distance.
BoolVar expr(Home home, const BoolExpr &e, IntConLevel icl)
Post Boolean expression and return its value.
Node * x
Pointer to corresponding Boolean expression node.
virtual Space * copy(bool share)
Copy during cloning.
int main(int argc, char *argv[])
Main-function.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
Gecode toplevel namespace
BrancherHandle branch(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf, FloatVarValPrint vvp)
Branch over x with variable selection vars and value selection vals.
unsigned int bits(void) const
Return number of bits.
int size(void) const
Return size of array (number of elements)
Hamming(bool share, Hamming &s)
Constructor for copying s.
virtual void print(std::ostream &os) const
Print solution.
Example: Generating Hamming codes
HammingOptions(const char *s, unsigned int bits0, unsigned int distance0, unsigned int size0)
Initialize options for example with name s.