MeshKit
1.0
|
00001 // IASolver.hpp 00002 // Interval Assignment for Meshkit 00003 // Meshkit calls this class function to find the intervals 00004 // this class calls underlying solvers 00005 // 00006 #ifndef MESHKIT_IA_IASOLVER_HP 00007 #define MESHKIT_IA_IASOLVER_HP 00008 00009 #include "meshkit/IASolverToolInt.hpp" 00010 00011 namespace MeshKit { 00012 00013 class IAData; 00014 class IASolution; 00015 00016 class IASolver: public IASolverToolInt 00017 { 00018 public: 00020 IASolver(IAData *ia_data, IASolution *ia_solution); 00021 00023 virtual ~IASolver(); 00024 00025 bool solve(); 00026 // return true if solved; false if not solved (e.g. infeasible) 00027 00028 private: 00029 // hide untrusted default methods 00031 // IA_NLP(); 00032 IASolver(const IASolver&); 00033 IASolver& operator=(const IASolver&); 00035 00036 // workhorse 00037 bool solve_relaxed(); 00038 bool solve_int(); 00039 bool solve_even(); 00040 double sum_even_value(int i); 00041 00042 // debugging 00043 const bool debugging; 00044 00045 }; 00046 00047 } // namespace MeshKit 00048 #endif