Main Page   Class Hierarchy   Compound List   File List   Contact   Download   Symbolic Constraints   Examples  

quadref.h

00001 #ifndef SCIL_QUADREF_H
00002 #define SCIL_QUADREF_H
00003 
00004 #include<scil/scil.h>
00005 #include<boost/unordered_map.hpp>
00006 
00007 namespace SCIL {
00008 
00021 class QuadRef : public sym_constraint {
00022    private:
00024       std::list<cons_obj*> lc;
00026       std::list<cons_obj*> cons_list;
00028       ILP_Problem& IP;
00030       boost::unordered_map<std::string, var> hashmap;
00031 
00032    public:
00034       QuadRef(ILP_Problem& IP_) :IP(IP_) { }
00035 
00036       ~QuadRef() {
00037         std::list<cons_obj*>::iterator c;
00038         foreach(c, lc )
00039           delete *c;
00040       }
00041 
00043       status standard_separation(subproblem& S);
00044 
00046       virtual void init(subproblem& S) {
00047         return;
00048       }
00049 
00051       status feasible(solution& S) {
00052         return feasible_solution;
00053       }
00054 
00056       void addCons(cons_obj * c);
00057 
00059       void hashPair(var& x, var& y, var& l);
00060 
00062       void reformulate_forced_constraints();
00063 
00065       void check_and_reformulate();
00066 
00068       cons_obj* reformulate_SQK2(cons_obj* c, bool force);
00069 
00071       void reformulate_SQK3(cons_obj* c, bool force);
00072 };
00073 };
00074 
00075 #endif
Generated on Mon Mar 28 22:03:49 2011 for SCIL by  doxygen 1.6.3