serializer->mywrite(&vtype, sizeof(VarType));
}
+void BooleanVar::print(){
+ model_println("BooleanVar");
+}
+
void BooleanOrder::serialize(Serializer* serializer){
if(serializer->isSerialized(this))
return;
serializer->mywrite(&second, sizeof(uint64_t));
}
+void BooleanOrder::print(){
+ model_println("{BooleanOrder: First= %lu, Second = %lu on Order:", first, second);
+ order->print();
+ model_println("}\n");
+}
+
void BooleanPredicate::serialize(Serializer* serializer){
if(serializer->isSerialized(this))
return;
serializer->mywrite(&undefStat, sizeof(Boolean*));
}
+void BooleanPredicate::print(){
+ model_println("{BooleanPredicate:");
+ predicate->print();
+ model_println("elements:");
+ uint size = inputs.getSize();
+ for(uint i=0; i<size; i++){
+ Element *input = inputs.get(i);
+ input->print();
+ }
+ model_println("}\n");
+}
+
void BooleanLogic::serialize(Serializer* serializer){
if(serializer->isSerialized(this))
return;
}
}
+void BooleanLogic::print(){
+ model_println("{BooleanLogic: %s",
+ op ==SATC_AND? "AND": op == SATC_OR? "OR": op==SATC_NOT? "NOT":
+ op == SATC_XOR? "XOR" : op==SATC_IFF? "IFF" : "IMPLIES");
+ uint size = inputs.getSize();
+ for(uint i=0; i<size; i++){
+ BooleanEdge input = inputs.get(i);
+ input.getBoolean()->print();
+ }
+ model_println("}\n");
+}
+
inline ElementEncoding *getElementEncoding(){ return &encoding; }
virtual Element *clone(CSolver *solver, CloneMap *map) {ASSERT(0); return NULL;};
virtual void serialize(Serializer* serializer) =0;
- virtual void print();
+ virtual void print() = 0;
virtual void updateParents() {}
virtual Set * getRange() = 0;
CMEMALLOC;