Modify API to work for partial order as well + adding order test case
[satune.git] / src / Backend / satelemencoder.h
1 #ifndef SATELEMENTENCODER_H
2 #define SATELEMENTENCODER_H
3
4 Edge getElementValueOneHotConstraint(SATEncoder * This, Element* elem, uint64_t value);
5 Edge getElementValueUnaryConstraint(SATEncoder * This, Element* elem, uint64_t value);
6 Edge getElementValueBinaryIndexConstraint(SATEncoder * This, Element* element, uint64_t value);
7 Edge getElementValueBinaryValueConstraint(SATEncoder * This, Element* element, uint64_t value);
8 Edge getElementValueConstraint(SATEncoder* encoder, Element* This, uint64_t value);
9 void allocElementConstraintVariables(ElementEncoding* This, uint numVars);
10 void generateOneHotEncodingVars(SATEncoder *This, ElementEncoding *encoding);
11 void generateUnaryEncodingVars(SATEncoder *This, ElementEncoding *encoding);
12 void generateBinaryIndexEncodingVars(SATEncoder* This, ElementEncoding* encoding);
13 void generateBinaryValueEncodingVars(SATEncoder* This, ElementEncoding* encoding);
14 void generateElementEncoding(SATEncoder* This, Element* element);
15 #endif