inline ElementEncoding *getElementEncoding(){ return &encoding; }
virtual Element *clone(CSolver *solver, CloneMap *map) {ASSERT(0); return NULL;};
virtual void serialize(Serializer* serializer) =0;
+ virtual void print();
virtual void updateParents() {}
virtual Set * getRange() = 0;
CMEMALLOC;
ElementSet(Set *s);
virtual Element *clone(CSolver *solver, CloneMap *map);
virtual void serialize(Serializer* serializer);
+ virtual void print();
CMEMALLOC;
Set *getRange() {return set;}
protected:
ElementConst(uint64_t value, Set *_set);
uint64_t value;
virtual void serialize(Serializer* serializer);
+ virtual void print();
Element *clone(CSolver *solver, CloneMap *map);
CMEMALLOC;
};
FunctionEncoding functionencoding;
Element *clone(CSolver *solver, CloneMap *map);
virtual void serialize(Serializer* serializer);
+ virtual void print();
Set * getRange();
void updateParents();
Function * getFunction() {return function;}