DSDP
|
00001 #if !defined(__SDPCONE_VECTORS_H) 00002 #define __SDPCONE_VECTORS_H 00003 00007 #include <math.h> 00013 struct SDPConeVec_C{ 00014 int dim; 00015 double *val; 00016 }; 00017 00018 typedef struct { 00019 int *indx; 00020 } DSDPIndex; 00021 00026 typedef struct SDPConeVec_C SDPConeVec; 00027 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif 00031 00032 extern int SDPConeVecCreate(int,SDPConeVec *); 00033 extern int SDPConeVecDuplicate(SDPConeVec,SDPConeVec *); 00034 extern int SDPConeVecDot(SDPConeVec, SDPConeVec, double *); 00035 extern int SDPConeVecView( SDPConeVec); 00036 extern int SDPConeVecDestroy(SDPConeVec*); 00037 #define SDPConeVecCreateWArray(a,b,c) 0;{ (*(a)).val=(b); (*(a)).dim=(c);} 00038 00039 extern int SDPConeVecSet(double, SDPConeVec ); 00040 extern int SDPConeVecZero(SDPConeVec ); 00041 extern int SDPConeVecNormalize(SDPConeVec ); 00042 extern int SDPConeVecAXPY(double, SDPConeVec, SDPConeVec); 00043 extern int SDPConeVecNorm2( SDPConeVec, double *); 00044 extern int SDPConeVecCopy( SDPConeVec, SDPConeVec); 00045 extern int SDPConeVecScale(double, SDPConeVec); 00046 00047 #define SDPConeVecGetArray(a,b) 0;{ *(b)=((a).val); } 00048 #define SDPConeVecRestoreArray(a,b) 0;{ *(b)=0;} 00049 #define SDPConeVecGetSize(a,b) 0;{ *(b)=((a).dim); } 00050 00057 extern int DSDPIndexInitialize(DSDPIndex*); 00058 extern int DSDPIndexDestroy(DSDPIndex*); 00059 extern int DSDPIndexSetBasis(DSDPIndex, int); 00060 extern int DSDPIndexCreate(int,DSDPIndex*); 00061 extern int DSDPIndexView(DSDPIndex); 00062 #ifdef __cplusplus 00063 } 00064 #endif 00065 00066 00067 #endif