Borderbasix

solversdp.h
Go to the documentation of this file.
1 #ifndef SOLVERSDP
2 #define SOLVERSDP
3 #include <map>
4 #include <vector>
5 //#include <borderbasix/v3sdp/mosek.h>
6 
7 
26 struct solversdp {
27 public:
28 
29  typedef std::pair<int,int> Pair;
31  typedef std::map<Pair,double> Matrix;
32  typedef std::vector<double> Vector;
34  typedef std::map<int, int>::iterator dim_iterator;
36  typedef std::map<Pair, Matrix>::iterator mat_iterator;
38  typedef std::map<int, double>::iterator obj_iterator;
39 
40  solversdp(): slv_prec(32) {}
41 
43  int& dim() {return slv_dim[0];}
45  int& dim(int i) {return slv_dim[i];}
47  int nb_block() const {return slv_dim.size();}
48 
49  dim_iterator dim_begin() { return slv_dim.begin(); }
50  dim_iterator dim_end() { return slv_dim.end(); }
51 
52  int& prec() {return slv_prec;}
53  int prec() const {return slv_prec;}
54 
56  mat_iterator begin() { return slv_input.begin(); }
58  mat_iterator end() { return slv_input.end(); }
59 
61  double& coeff(int i, int j, int k) { return slv_input[Pair(i,0)][Pair(j,k)]; }
62  double& coeff(int i, int b, int j, int k) { return slv_input[Pair(i,b)][Pair(j,k)]; }
63 
65  int& nentries(int i) {return slv_nentries[i];}
66 
67  virtual void run() = 0;
68 
69  int obj_size() { return slv_objfct.size();}
70  double& obj_coeff(int i) { return slv_objfct[i]; }
71  obj_iterator obj_begin() { return slv_objfct.begin(); }
72  obj_iterator obj_end() { return slv_objfct.end(); }
73 
74  void clear() { slv_input.clear(); slv_objfct.clear(); slv_dim.clear();}
75 
76 private:
77  int slv_prec;
78  std::map<int, int> slv_dim;
79  std::map<Pair, Matrix> slv_input;
80  std::map<int, double> slv_objfct;
81  std::map<int, int> slv_nentries;
82 public:
83  Vector output;
84  double fminprimal;
85  double fmindual;
86 };
87 
88 #endif // SOLVERSDP
89 
dim_iterator dim_begin()
Definition: solversdp.h:49
std::map< int, double >::iterator obj_iterator
Iterator on the coefficients of the objectiv function.
Definition: solversdp.h:38
int obj_size()
Definition: solversdp.h:69
Vector output
Definition: solversdp.h:83
mat_iterator end()
end of the matrix sequence
Definition: solversdp.h:58
std::map< Pair, Matrix >::iterator mat_iterator
Iterator on the matrix sequence.
Definition: solversdp.h:36
int & nentries(int i)
number of entries asociated to each matrix
Definition: solversdp.h:65
std::vector< double > Vector
Definition: solversdp.h:32
int nb_block() const
number of blocks
Definition: solversdp.h:47
std::map< Pair, double > Matrix
Matrix type of the SDP solver.
Definition: solversdp.h:31
MSKconetypee MSKrealt MSKint32t MSKint32t j
Definition: mosek.h:2421
std::map< int, int >::iterator dim_iterator
Iterator on the matrix sequence.
Definition: solversdp.h:34
MSKint32t k
Definition: mosek.h:2713
obj_iterator obj_end()
Definition: solversdp.h:72
double & obj_coeff(int i)
Definition: solversdp.h:70
mat_iterator begin()
begining of the matrix sequence
Definition: solversdp.h:56
double & coeff(int i, int j, int k)
Definition: solversdp.h:61
double & coeff(int i, int b, int j, int k)
Definition: solversdp.h:62
solversdp()
Definition: solversdp.h:40
double fmindual
Definition: solversdp.h:85
int & dim(int i)
dimension of the ith block
Definition: solversdp.h:45
void clear()
Definition: solversdp.h:74
std::pair< int, int > Pair
Definition: solversdp.h:29
MSKint32t MSKint32t MSKint32t i
Definition: mosek.h:2278
int prec() const
Definition: solversdp.h:53
int & dim()
dimension of the first block
Definition: solversdp.h:43
dim_iterator dim_end()
Definition: solversdp.h:50
double fminprimal
Definition: solversdp.h:84
int & prec()
Definition: solversdp.h:52
obj_iterator obj_begin()
Definition: solversdp.h:71
The solversdp struct.
Definition: solversdp.h:26
virtual void run()=0
Home  |  Download & InstallContributions