#include "classlist.h"
#include "structs.h"
#include "mymemory.h"
-#include "serializable.h"
-class Set : public Serializable {
+class Set {
public:
Set(VarType t);
Set(VarType t, uint64_t *elements, uint num);
uint getSize();
VarType getType() {return type;}
uint64_t getNewUniqueItem() {return low++;}
- uint64_t getMemberAt(uint index);
uint64_t getElement(uint index);
+ uint getUnionSize(Set *s);
+ virtual bool isMutableSet() {return false;}
virtual Set *clone(CSolver *solver, CloneMap *map);
- virtual void serialize(Serializer* serializer);
+ virtual void serialize(Serializer *serializer);
+ virtual void print();
CMEMALLOC;
protected:
VarType type;
bool isRange;
- uint64_t low;//also used to count unique items
+ uint64_t low; //also used to count unique items
uint64_t high;
Vector<uint64_t> *members;
-
+ friend class ElementOpt;
};
+int intcompare(const void *p1, const void *p2);
#endif/* SET_H */