DSDP
dsdpschurmat.h
Go to the documentation of this file.
1 #if !defined(__DSDP_SCHURMATRIXOPERATIONS_H)
2 #define __DSDP_SCHURMATRIXOPERATIONS_H
3 
9 #include "dsdpvec.h"
10 #include "dsdpbasictypes.h"
11 #include "dsdpcg.h"
12 
13 
14 typedef struct {
15  int *var;
16  int nvars;
17  int nmaxvars;
18  double *fval;
19  double *fdual;
20  double *xout;
21 } FixedVariables;
22 
23 typedef struct {
24  FixedVariables fv;
25  DSDPVec rhs3,dy3;
26  double dd,r;
27  int m;
28 } DSDPSchurInfo;
29 
36  void* data;
37  struct DSDPSchurMat_Ops *dsdpops;
38  DSDPSchurInfo* schur;
39 };
40 
50 
51 
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55 
56 extern int DSDPSchurMatSetData(DSDPSchurMat*,struct DSDPSchurMat_Ops*, void*);
57 
62 extern int DSDPSchurMatShiftDiagonal(DSDPSchurMat, double);
65 extern int DSDPSchurMatMultR(DSDPSchurMat, DSDPVec, DSDPVec);
70 extern int DSDPSchurMatView(DSDPSchurMat);
71 extern int DSDPSchurMatSetR(DSDPSchurMat, double);
72 
74 extern int DSDPSchurMatAddRow(DSDPSchurMat, int, double, DSDPVec);
75 
76 extern int DSDPSchurMatVariableCompute(DSDPSchurMat, int, double*);
77 extern int DSDPSchurMatVariableComputeC(DSDPSchurMat, double*);
78 extern int DSDPSchurMatVariableComputeR(DSDPSchurMat, double*);
79 extern int DSDPSchurMatAddDiagonalElement(DSDPSchurMat, int, double);
80 extern int DSDPSchurMatAddC(DSDPSchurMat,int,double);
81 extern int DSDPSchurMatAddR(DSDPSchurMat,int,double);
82 
85 
87 
88 extern int DSDPZeroFixedVariables( DSDPSchurMat, DSDPVec);
89 extern int DSDPApplyFixedVariables( DSDPSchurMat, DSDPVec);
90 extern int DSDPIsFixed( DSDPSchurMat, int, DSDPTruth*);
91 extern int DSDPInitializeFixedVariable( FixedVariables *);
92 extern int DSDPAddFixedVariable( DSDPSchurMat, int, double);
93 
94 #ifdef __cplusplus
95 }
96 #endif
97 
98 #endif
99 
100