void pushVector ## name(Vector ## name *vector, type item); \
type getVector ## name(Vector ## name *vector, uint index); \
void setVector ## name(Vector ## name *vector, uint index, type item); \
- uint getSizeVector ## name(Vector ## name *vector); \
- void deleteVector ## name(Vector ## name *vector); \
- void clearVector ## name(Vector ## name *vector);
+ uint getSizeVector ## name(Vector ## name *vector); \
+ void deleteVector ## name(Vector ## name *vector); \
+ void clearVector ## name(Vector ## name *vector); \
+ type * exposeArray ## name(Vector ## name * vector);
#define VectorImpl(name, type, defcap) \
Vector ## name * allocDefVector ## name() { \
} \
void clearVector ## name(Vector ## name *vector) { \
vector->size=0; \
+ } \
+ type * exposeArray ## name(Vector ## name * vector) { \
+ return vector->array; \
}
#endif
ourfree(This->encodingArray);
ourfree(This);
}
+
struct ElementEncoding {
ElementEncodingType type;
Element * element;
- Boolean ** variables; /* List Variables Use To Encode Element */
+ Constraint ** variables; /* List Variables Used To Encode Element */
uint64_t * encodingArray; /* List the Variables in the appropriate order */
uint numVars; /* Number of variables */
};
ElementEncoding * allocElementEncoding(ElementEncodingType type, Element *element);
void deleteElementEncoding(ElementEncoding *This);
+void baseBinaryIndexElementAssign(ElementEncoding *This);
+
#endif
--- /dev/null
+#include "naiveelementencoder.h"
+#include "elementencoding.h"
+#include "element.h"
+#include "set.h"
+#include "common.h"
+#include "struct.h"
+
+void baseBinaryIndexElementAssign(ElementEncoding *This) {
+ Element * element=This->element;
+ Set * set=element->set;
+ ASSERT(set->isRange==false);
+ uint size=getSizeVectorInt(set->members);
+ This->encodingArray=ourmalloc(sizeof(uint64_t)*size);
+ for(uint i=0;i<size;i++) {
+ This->encodingArray[i]=getVectorInt(set->members, i);
+ }
+ This->type=BINARYINDEX;
+}
--- /dev/null
+#ifndef NAIVEELEMENTENCODER_H
+#define NAIVEELEMENTENCODER_H
+#include "classlist.h"
+void baseBinaryIndexElementAssign(ElementEncoding *This);
+#endif