Camargue
mirgroup.hpp
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
7 #ifndef CMR_MIRGROUP_H
8 #define CMR_MIRGROUP_H
9 
10 #include "config.hpp"
11 
12 #if CMR_HAVE_SAFEGMI
13 
14 #include "util.hpp"
15 
16 #include <memory>
17 #include <vector>
18 
19 #ifndef DO_SAFE_MIR_DBL
20 #define DO_SAFE_MIR_DBL 1
21 #endif
22 
23 #ifndef SAFE_MIR_DEBUG_LEVEL
24 #define SAFE_MIR_DEBUG_LEVEL DBG_LEVEL_HIGH
25 #endif
26 
27 #include <safemir/src/cutmaster_slvr.hpp>
28 #include <safemir/src/ds_cuts.hpp>
29 
30 namespace CMR {
31 namespace Sep {
32 
37 
40 struct SystemDeleter {
41  void operator()(CUTSsystem_t<double> *P) {
42  CUTSfreeSystem<double>(&P);
43  }
44 };
45 
47 struct VinfoDeleter {
48  void operator()(CUTSvarInfo_t<double> *P) {
49  CUTSfreeVarInfo<double>(&P);
50  }
51 };
52 
54 
55 
59 struct MIRgroup {
60  MIRgroup()
61  {
62  settings.do_mir = true;
63  settings.use_log = false;
64 
65  settings.max_rank = 1;
66  settings.maxcutsperround = 500;
67 
68  settings.mir_cutsperfather = 10;
69  settings.mir_cutsperround = 1000;
70  settings.mir_maxscalings = 15;
71  settings.mir_tmin = 1;
72  settings.mir_tmax = 3;
73 
74  settings.save_cuts = 0;
75  }
76 
77  SLVRcutterSettings_t settings;
78 
79  std::unique_ptr<CUTSsystem_t<double>, SystemDeleter> constraint_matrix;
80 
81  std::unique_ptr<CUTSsystem_t<double>, SystemDeleter> tableau_rows;
82 
83  std::unique_ptr<CUTSvarInfo_t<double>, VinfoDeleter> var_info;
84 
86 
87  std::vector<char> vartype;
88  std::vector<double> vranking;
89 
90 };
91 
92 }
93 }
94 
95 #endif //CMR_HAVE_SAFEGMI
96 #endif //CMR_MIRGROUP_H
Deleter for constraint matrix system.
Definition: mirgroup.hpp:40
Configuration macros.
std::unique_ptr< numtype, C_resource_deleter< numtype >> c_array_ptr
Alias declaration for unique_ptr to C array.
Definition: util.hpp:137
Utility functions, macros, and structures.
The namespace for this project.
Definition: abc_nodesel.hpp:20
Definition: mirgroup.hpp:47
Memory-managed access to classes needed during safe GMI separation.
Definition: mirgroup.hpp:59