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 #ifdef __cplusplus 00028 extern "C" { 00029 #endif 00030 00031 extern int DSDPDataMatSetData(DSDPDataMat*, struct DSDPDataMat_Ops*, void*); 00032 extern int DSDPDataMatInitialize(DSDPDataMat*); 00033 extern int DSDPDataMatGetType(DSDPDataMat, int *); 00034 extern int DSDPDataMatTest(DSDPDataMat); 00035 00036 extern int DSDPDataMatVecVec(DSDPDataMat,SDPConeVec,double*); 00037 extern int DSDPDataMatDot(DSDPDataMat,double[], int,int,double*); 00038 extern int DSDPDataMatGetRowNonzeros(DSDPDataMat, int, int, int*, int*); 00039 extern int DSDPDataMatCountNonzeros(DSDPDataMat,int*,int); 00040 extern int DSDPDataMatFNorm2(DSDPDataMat,int,double*); 00041 extern int DSDPDataMatMultiply(DSDPDataMat,SDPConeVec,SDPConeVec); 00042 extern int DSDPDataMatView(DSDPDataMat); 00043 extern int DSDPDataMatDestroy(DSDPDataMat*); 00044 extern int DSDPDataMatGetRank(DSDPDataMat, int*,int); 00045 extern int DSDPDataMatGetEig(DSDPDataMat, int, SDPConeVec, DSDPIndex, double *); 00046 extern int DSDPDataMatFactor(DSDPDataMat,SDPConeVec, double[],int,double[],int,int[],int); 00047 extern int DSDPDataMatAddMultiple(DSDPDataMat, double, double[],int,int); 00048 extern int DSDPDataMatAddRowMultipleToVector(DSDPDataMat, int, double, SDPConeVec); 00049 00050 #ifdef __cplusplus 00051 } 00052 #endif 00053 00054 #endif 00055 00056