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 00022 typedef struct SDPConeVec_C SDPConeVec; 00023 00024 extern int SDPConeVecCreate(int,SDPConeVec *); 00025 extern int SDPConeVecDuplicate(SDPConeVec,SDPConeVec *); 00026 extern int SDPConeVecDot(SDPConeVec, SDPConeVec, double *); 00027 extern int SDPConeVecView( SDPConeVec); 00028 extern int SDPConeVecDestroy(SDPConeVec*); 00029 #define SDPConeVecCreateWArray(a,b,c) 0;{ (*(a)).val=(b); (*(a)).dim=(c);} 00030 00031 extern int SDPConeVecSet(double, SDPConeVec ); 00032 extern int SDPConeVecZero(SDPConeVec ); 00033 extern int SDPConeVecNormalize(SDPConeVec ); 00034 extern int SDPConeVecAXPY(double, SDPConeVec, SDPConeVec); 00035 extern int SDPConeVecNorm2( SDPConeVec, double *); 00036 extern int SDPConeVecCopy( SDPConeVec, SDPConeVec); 00037 extern int SDPConeVecScale(double, SDPConeVec); 00038 00039 #define SDPConeVecGetArray(a,b) 0;{ *(b)=((a).val); } 00040 #define SDPConeVecRestoreArray(a,b) 0;{ *(b)=0;} 00041 #define SDPConeVecGetSize(a,b) 0;{ *(b)=((a).dim); } 00042 00048 typedef struct { 00049 int *indx; 00050 } DSDPIndex; 00051 00052 extern int DSDPIndexInitialize(DSDPIndex*); 00053 extern int DSDPIndexDestroy(DSDPIndex*); 00054 extern int DSDPIndexSetBasis(DSDPIndex, int); 00055 extern int DSDPIndexCreate(int,DSDPIndex*); 00056 extern int DSDPIndexView(DSDPIndex); 00057 00058 00059 #endif