3 CSolver * allocCSolver() {
4 CSolver * tmp=(CSolver *) ourmalloc(sizeof(CSolver));
5 tmp->constraint=allocVector();
9 Set * createSet(CSolver * solver, Type type, uint64_t ** elements) {
13 Set * createSet(CSolver * solver, Type type, uint64_t lowrange, uint64_t highrange) {
16 MutableSet * createMutableSet(CSolver * solver, Type type) {
19 void CSolver::addItem(MutableSet * set, uint64_t element) {
22 int64_t CSolver::createUniqueItem(MutableSet * set) {
25 Element * CSolver::getElementVar(Set * set) {
28 Boolean * CSolver::getBooleanVar() {
31 Function * CSolver::createFunctionOperator(enum ArithOp op, Set ** domain, Set * range, enum OverFlowBehavior overflowbehavior, Boolean * overflowstatus) {
34 Function * CSolver::createFunctionOperator(enum ArithOp op) {
37 Predicate * CSolver::createPredicateOperator(enum CompOp op, Set ** domain) {
40 Table * CSolver::createTable(Set **domains, Set * range) {
43 void CSolver::addTableEntry(Element ** inputs, Element *result) {
46 Function * CSolver::completeTable(struct Table *) {
49 Element * CSolver::applyFunction(Function * function, Element ** array) {
52 Boolean * CSolver::applyPredicate(Predicate * predicate, Element ** inputs) {
55 Boolean * CSolver::applyLogicalOperation(enum LogicOp op, Boolean ** array) {
58 void CSolver::addBoolean(Boolean * constraint) {
61 Order * CSolver::createOrder(enum OrderType type, Set * set) {
64 Boolean * CSolver::orderedConstraint(Order * order, uint64_t first, uint64_t second) {