Restructure transforms a little and run make tabbing
[satune.git] / src / ASTTransform / integerencoding.cc
index f1b99199c802efca86045282238e3799a41bc9c4..d8150b311d633a34f3aeb932caedfda8136851ab 100644 (file)
@@ -1,4 +1,3 @@
-
 #include "integerencoding.h"
 #include "set.h"
 #include "order.h"
@@ -6,33 +5,39 @@
 #include "csolver.h"
 #include "integerencodingrecord.h"
 #include "integerencorderresolver.h"
+#include "tunable.h"
 
-
-IntegerEncodingTransform::IntegerEncodingTransform(CSolver* _solver) 
-       :Transform(_solver)
-{      
+IntegerEncodingTransform::IntegerEncodingTransform(CSolver *_solver)
+       : Transform(_solver)
+{
        orderIntEncoding = new HashTableOrderIntEncoding();
 }
 
-IntegerEncodingTransform::~IntegerEncodingTransform(){
+IntegerEncodingTransform::~IntegerEncodingTransform() {
        orderIntEncoding->resetanddelete();
 }
 
-bool IntegerEncodingTransform::canExecuteTransform(){
-       return canExecutePass(solver, currOrder->type, ORDERINTEGERENCODING, &offon);
+void IntegerEncodingTransform::doTransform() {
+       Vector<Order *> *orders = solver->getOrders();
+       uint size = orders->getSize();
+       for (uint i = 0; i < size; i++) {
+               Order *order = orders->get(i);
+               if (GETVARTUNABLE(solver->getTuner(), order->type, ORDERINTEGERENCODING, &onoff))
+                       integerEncode(order);
+       }
 }
 
-void IntegerEncodingTransform::doTransform(){
-       IntegerEncodingRecordencodingRecord = NULL;
+void IntegerEncodingTransform::integerEncode(Order *currOrder) {
+       IntegerEncodingRecord *encodingRecord = NULL;
        if (!orderIntEncoding->contains(currOrder)) {
                encodingRecord = new IntegerEncodingRecord(
-                       solver->createRangeSet(currOrder->set->getType(), 0, (uint64_t) currOrder->set->getSize()-1));
+                       solver->createRangeSet(currOrder->set->getType(), 0, (uint64_t) currOrder->set->getSize() - 1));
                orderIntEncoding->put(currOrder, encodingRecord);
        } else {
                encodingRecord = orderIntEncoding->get(currOrder);
        }
        uint size = currOrder->constraints.getSize();
-       for(uint i=0; i<size; i++){
+       for (uint i = 0; i < size; i++) {
                orderIntegerEncodingSATEncoder(currOrder->constraints.get(i));
        }
        currOrder->setOrderResolver(new IntegerEncOrderResolver(solver, encodingRecord));
@@ -40,7 +45,7 @@ void IntegerEncodingTransform::doTransform(){
 
 
 void IntegerEncodingTransform::orderIntegerEncodingSATEncoder(BooleanOrder *boolOrder) {
-       IntegerEncodingRecordierec = orderIntEncoding->get(currOrder);
+       IntegerEncodingRecord *ierec = orderIntEncoding->get(currOrder);
        //getting two elements and using LT predicate ...
        Element *elem1 = ierec->getOrderIntegerElement(solver, boolOrder->first);
        Element *elem2 = ierec->getOrderIntegerElement(solver, boolOrder->second);