#include <stddef.h>
#include "csolver.h"
#include "serializer.h"
+#include "qsort.h"
Set::Set(VarType t) : type(t), isRange(false), low(0), high(0) {
members = new Vector<uint64_t>();
}
+int intcompare(const void *p1, const void *p2) {
+ uint64_t a=*(uint64_t const *) p1;
+ uint64_t b=*(uint64_t const *) p2;
+ if (a < b)
+ return -1;
+ else if (a==b)
+ return 0;
+ else
+ return 1;
+}
+
Set::Set(VarType t, uint64_t *elements, uint num) : type(t), isRange(false), low(0), high(0) {
members = new Vector<uint64_t>(num, elements);
+ bsdqsort(members->expose(), members->getSize(), sizeof(uint64_t), intcompare);
}
+
Set::Set(VarType t, uint64_t lowrange, uint64_t highrange) : type(t), isRange(true), low(lowrange), high(highrange), members(NULL) {
}
uint64_t mem = members->get(i);
serializer->mywrite(&mem, sizeof(uint64_t));
}
-}
\ No newline at end of file
+}