MeshKit
1.0
|
00001 // IPData.hpp 00002 // Interval Assignment Data for Meshkit 00003 // Integer Program - making intervals into integer values 00004 // 00005 // Only the IA family of classes should be using this. 00006 // 00007 // Ipopt appears to use Number for double. 00008 // 00009 00010 #ifndef MESHKIT_IA_IPDATA_HP 00011 #define MESHKIT_IA_IPDATA_HP 00012 00013 #include <vector> 00014 00015 namespace MeshKit 00016 { 00017 00018 class IPData 00019 { 00020 public: 00022 IPData() {} 00023 00025 virtual ~IPData() {} 00026 00027 // lower or upper integer bounds that try to force an integer solution 00028 // compare to the goal to tell if it is an upper or lower bound 00029 std::vector<int> varIntegerBound; 00030 std::vector<int> oldBound; 00031 std::vector<double> relaxedSolution; 00032 00033 void initialize(const std::vector<double> &relaxed_solution); 00034 00035 void constrain_integer(const int i_nonint, const int x_bound); 00036 00037 }; 00038 00039 // default constructors for object and its members OK 00040 // inline IPData::IPData() {} 00041 00042 // default destructor OK 00043 00044 } // namespace MeshKit 00045 00046 #endif