dsdpschurmat.h

Go to the documentation of this file.
00001 #if !defined(__DSDP_SCHURMATRIXOPERATIONS_H) 
00002 #define __DSDP_SCHURMATRIXOPERATIONS_H
00003 
00009 #include "dsdpvec.h"
00010 #include "dsdpbasictypes.h"
00011 #include "dsdpcg.h"
00012 
00013 
00014 typedef struct {
00015   int *var;
00016   int nvars;
00017   int nmaxvars;
00018   double *fval;
00019   double *fdual;
00020   double *xout;
00021 } FixedVariables;
00022 
00023 typedef struct {
00024   FixedVariables fv;
00025   DSDPVec rhs3,dy3;
00026   double dd,r;
00027   int m;
00028 } DSDPSchurInfo;
00029 
00035 struct DSDPSchurMat_C{
00036   void* data;
00037   struct DSDPSchurMat_Ops *dsdpops;
00038   DSDPSchurInfo* schur;
00039 };
00040 
00049 typedef struct DSDPSchurMat_C   DSDPSchurMat;
00050 
00051 
00052 #ifdef __cplusplus
00053 extern "C" {
00054 #endif
00055 
00056 extern int DSDPSchurMatSetData(DSDPSchurMat*,struct DSDPSchurMat_Ops*, void*);
00057 
00058 extern int DSDPSchurMatInitialize(DSDPSchurMat*);
00059 extern int DSDPSchurMatSetup(DSDPSchurMat, DSDPVec);
00060 extern int DSDPSchurMatZeroEntries(DSDPSchurMat);
00061 extern int DSDPSchurMatInParallel(DSDPSchurMat, DSDPTruth*);
00062 extern int DSDPSchurMatShiftDiagonal(DSDPSchurMat, double);
00063 extern int DSDPSchurMatAssemble(DSDPSchurMat);
00064 extern int DSDPSchurMatMultiply(DSDPSchurMat, DSDPVec, DSDPVec);
00065 extern int DSDPSchurMatMultR(DSDPSchurMat, DSDPVec, DSDPVec);
00066 extern int DSDPSchurMatReducePVec(DSDPSchurMat, DSDPVec);
00067 extern int DSDPSchurMatFactor(DSDPSchurMat,DSDPTruth*);
00068 extern int DSDPSchurMatSolve(DSDPSchurMat, DSDPVec, DSDPVec);
00069 extern int DSDPSchurMatDestroy(DSDPSchurMat*);
00070 extern int DSDPSchurMatView(DSDPSchurMat);
00071 extern int DSDPSchurMatSetR(DSDPSchurMat, double);
00072 
00073 extern int DSDPSchurMatRowColumnScaling(DSDPSchurMat,int, DSDPVec,int*);
00074 extern int DSDPSchurMatAddRow(DSDPSchurMat, int, double, DSDPVec);
00075 
00076 extern int DSDPSchurMatVariableCompute(DSDPSchurMat, int, double*);
00077 extern int DSDPSchurMatVariableComputeC(DSDPSchurMat, double*);
00078 extern int DSDPSchurMatVariableComputeR(DSDPSchurMat, double*);
00079 extern int DSDPSchurMatAddDiagonalElement(DSDPSchurMat, int, double);
00080 extern int DSDPSchurMatAddC(DSDPSchurMat,int,double);
00081 extern int DSDPSchurMatAddR(DSDPSchurMat,int,double);
00082 
00083 extern int DSDPSchurMatDiagonalScaling(DSDPSchurMat, DSDPVec);
00084 extern int DSDPSchurMatAddDiagonal(DSDPSchurMat, DSDPVec);
00085 
00086 extern int DSDPSchurMatRowScaling(DSDPSchurMat, DSDPVec);
00087 
00088 extern int DSDPZeroFixedVariables( DSDPSchurMat, DSDPVec);
00089 extern int DSDPApplyFixedVariables( DSDPSchurMat, DSDPVec);
00090 extern int DSDPIsFixed( DSDPSchurMat, int, DSDPTruth*);
00091 extern int DSDPInitializeFixedVariable( FixedVariables *);
00092 extern int DSDPAddFixedVariable( DSDPSchurMat, int, double);
00093 
00094 #ifdef __cplusplus
00095 }
00096 #endif
00097 
00098 #endif
00099 
00100 

Generated on Wed Nov 11 20:41:02 2009 for DSDP by  doxygen 1.6.1