ReversibleSet(Environment *s, const int lb=0, const int ub=0, const int sz=-1, const bool full=true) : Reversible(s) { if(sz < 0) initialise(lb, ub, ub-lb+1, full); else initialise(lb, ub, sz, full); }
virtual void initialise(Environment *s, const int lb, const int ub, const Vector<int>& vals) { Reversible::initialise(s); initialise(lb, ub, vals); // trail_.add(size); // trail_.add(-1); }
virtual void initialise(Environment *s, const int lb, const int ub, const int sz, const bool full) { Reversible::initialise(s); initialise(lb, ub, sz, full); // trail_.add(size); // trail_.add(-1); }
void initialise(Environment *s, const PRIMITIVE_TYPE v) { Reversible::initialise(s); initialise(v); }
ReversibleNum(const PRIMITIVE_TYPE v) { initialise(v); }