00001 #if !defined(__DSDP_VSYMMETRICMATRIX_H)
00002 #define __DSDP_VSYMMETRICMATRIX_H
00003
00008 #include "sdpconevec.h"
00009
00010
00017 struct DSDPVMat_C{
00018 void *matdata;
00019 struct DSDPVMat_Ops* dsdpops;
00020 };
00021
00026 typedef struct DSDPVMat_C DSDPVMat;
00027
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031
00032 extern int DSDPVMatGetType(DSDPVMat, int *);
00033 extern int DSDPVMatSetData(DSDPVMat *, struct DSDPVMat_Ops*, void*);
00034 extern int DSDPVMatInitialize(DSDPVMat*);
00035
00036 extern int DSDPVMatTest(DSDPVMat);
00037 extern int DSDPVMatGetSize(DSDPVMat,int*);
00038 extern int DSDPVMatView(DSDPVMat);
00039 extern int DSDPVMatDestroy(DSDPVMat*);
00040
00041 extern int DSDPVMatExist(DSDPVMat,int*);
00042 extern int DSDPVMatZeroEntries(DSDPVMat);
00043 extern int DSDPVMatAddOuterProduct(DSDPVMat, double, SDPConeVec);
00044 extern int DSDPVMatMult(DSDPVMat,SDPConeVec,SDPConeVec);
00045 extern int DSDPVMatScaleDiagonal(DSDPVMat,double);
00046 extern int DSDPVMatShiftDiagonal(DSDPVMat,double);
00047 extern int DSDPVMatNormF2(DSDPVMat, double*);
00048 extern int DSDPVMatGetArray(DSDPVMat,double**,int*);
00049 extern int DSDPVMatRestoreArray(DSDPVMat,double**,int*);
00050 extern int DSDPVMatMinEigenvalue(DSDPVMat,SDPConeVec,SDPConeVec,double*);
00051 extern int DSDPVMatCheck(DSDPVMat, SDPConeVec, SDPConeVec);
00052
00053 #ifdef __cplusplus
00054 }
00055 #endif
00056
00057 #endif
00058
00059