DSDP
|
00001 #if !defined(__DSDP_DSMATRIX_H) 00002 #define __DSDP_DSMATRIX_H 00003 00004 #include "sdpconevec.h" 00005 #include "dsdpxmat.h" 00006 00012 /* DSDPDSMat objects are not used for much: DS, X, eigenvalue stuff */ 00013 /* These objects are good basically for assembling a matrix, accessing 00014 the data, and applying the operator to a vector */ 00015 00016 /* DSDP Matrix Structure */ 00023 struct DSDPDSMat_C{ 00024 void *matdata; 00025 struct DSDPDSMat_Ops* dsdpops; 00026 }; 00027 00033 typedef struct DSDPDSMat_C DSDPDSMat; 00034 00035 #ifdef __cplusplus 00036 extern "C" { 00037 #endif 00038 00039 extern int DSDPDSMatGetType(DSDPDSMat, int *); 00040 extern int DSDPDSMatSetData(DSDPDSMat *, struct DSDPDSMat_Ops*, void*); 00041 extern int DSDPDSMatInitialize(DSDPDSMat*); 00042 00043 extern int DSDPDSMatZeroEntries(DSDPDSMat); 00044 extern int DSDPDSMatSetArray(DSDPDSMat,DSDPVMat); 00045 extern int DSDPDSMatMult(DSDPDSMat, SDPConeVec, SDPConeVec); 00046 extern int DSDPDSMatVecVec(DSDPDSMat, SDPConeVec, double*); 00047 00048 extern int DSDPDSMatTest(DSDPDSMat); 00049 extern int DSDPDSMatGetSize(DSDPDSMat,int*); 00050 extern int DSDPDSMatView(DSDPDSMat); 00051 extern int DSDPDSMatDestroy(DSDPDSMat*); 00052 00053 extern int DSDPDSMatCheck(DSDPDSMat,SDPConeVec,SDPConeVec,DSDPVMat); 00054 #ifdef __cplusplus 00055 } 00056 #endif 00057 00058 00059 #endif 00060 00061