00001 #if !defined(__DSDP_DATAMATRIXOPS_H) 00002 #define __DSDP_DATAMATRIXOPS_H 00003 00004 #include "sdpconevec.h" 00015 struct DSDPDataMat_C{ 00016 void* matdata; 00017 struct DSDPDataMat_Ops* dsdpops; 00018 }; 00019 00025 typedef struct DSDPDataMat_C DSDPDataMat; 00026 00027 00028 extern int DSDPDataMatOpsInitialize(struct DSDPDataMat_Ops*); 00029 extern int DSDPDataMatSetData(DSDPDataMat*, struct DSDPDataMat_Ops*, void*); 00030 extern int DSDPDataMatInitialize(DSDPDataMat*); 00031 extern int DSDPDataMatGetType(DSDPDataMat, int *); 00032 extern int DSDPDataMatTest(DSDPDataMat); 00033 00034 extern int DSDPDataMatVecVec(DSDPDataMat,SDPConeVec,double*); 00035 extern int DSDPDataMatDot(DSDPDataMat,double[], int,int,double*); 00036 extern int DSDPDataMatGetRowNonzeros(DSDPDataMat, int, int, int*, int*); 00037 extern int DSDPDataMatCountNonzeros(DSDPDataMat,int*,int); 00038 extern int DSDPDataMatFNorm2(DSDPDataMat,int,double*); 00039 extern int DSDPDataMatMultiply(DSDPDataMat,SDPConeVec,SDPConeVec); 00040 extern int DSDPDataMatView(DSDPDataMat); 00041 extern int DSDPDataMatDestroy(DSDPDataMat*); 00042 extern int DSDPDataMatGetRank(DSDPDataMat, int*,int); 00043 extern int DSDPDataMatGetEig(DSDPDataMat, int, SDPConeVec, DSDPIndex, double *); 00044 extern int DSDPDataMatFactor(DSDPDataMat,SDPConeVec, double[],int,double[],int,int[],int); 00045 extern int DSDPDataMatAddMultiple(DSDPDataMat, double, double[],int,int); 00046 extern int DSDPDataMatAddRowMultipleToVector(DSDPDataMat, int, double, SDPConeVec); 00047 00048 #endif 00049 00050