3 CSolver * allocCSolver() {
4 CSolver * tmp=(CSolver *) ourmalloc(sizeof(CSolver));
5 tmp->constraint=allocDefVectorBoolean();
9 Set * createSet(CSolver * solver, VarType type, uint64_t ** elements) {
13 Set * createRangeSet(CSolver * solver, VarType type, uint64_t lowrange, uint64_t highrange) {
17 MutableSet * createMutableSet(CSolver * solver, VarType type) {
21 void addItem(CSolver *solver, MutableSet * set, uint64_t element) {
24 int64_t createUniqueItem(CSolver *solver, MutableSet * set) {
28 Element * getElementVar(CSolver *solver, Set * set) {
32 Boolean * getBooleanVar(CSolver *solver) {
36 Function * createFunctionOperator(CSolver *solver, enum ArithOp op, Set ** domain, Set * range, enum OverFlowBehavior overflowbehavior, Boolean * overflowstatus) {
40 Function * createFunctionOperatorPure(CSolver *solver, enum ArithOp op) {
44 Predicate * createPredicateOperator(CSolver *solver, enum CompOp op, Set ** domain) {
48 Table * createTable(CSolver *solver, Set **domains, Set * range) {
52 void addTableEntry(CSolver *solver, Element ** inputs, Element *result) {
55 Function * completeTable(CSolver *solver, Table * table) {
59 Element * applyFunction(CSolver *solver, Function * function, Element ** array) {
63 Boolean * applyPredicate(CSolver *solver, Predicate * predicate, Element ** inputs) {
67 Boolean * applyLogicalOperation(CSolver *solver, enum LogicOp op, Boolean ** array) {
71 void addBoolean(CSolver *solver, Boolean * constraint) {
74 Order * createOrder(CSolver *solver, enum OrderType type, Set * set) {
78 Boolean * orderConstraint(CSolver *solver, Order * order, uint64_t first, uint64_t second) {