Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Globals | Related Pages

dsdpschurmat.h

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

Generated on Sat Oct 15 11:05:39 2005 for DSDP by  doxygen 1.4.2