00001 #ifndef __DSDPCONEOPERATIONS_H 00002 #define __DSDPCONEOPERATIONS_H 00003 00009 #include "dsdpbasictypes.h" 00010 #include "dsdpvec.h" 00011 #include "dsdpschurmat.h" 00012 00013 00022 struct DSDPCone_C{ 00023 void* conedata; 00024 struct DSDPCone_Ops* dsdpops; 00025 }; 00026 00027 typedef struct DSDPCone_C DSDPCone; 00028 00029 #ifdef __cplusplus 00030 extern "C" { 00031 #endif 00032 00033 extern int DSDPConeSetUp(DSDPCone,DSDPVec); 00034 extern int DSDPConeSetUp2(DSDPCone, DSDPVec, DSDPSchurMat); 00035 extern int DSDPConeGetDimension(DSDPCone,double*); 00036 extern int DSDPConeSparsityInSchurMat(DSDPCone, int,int[],int); 00037 extern int DSDPConeComputeS(DSDPCone,DSDPVec,DSDPDualFactorMatrix,DSDPTruth *); 00038 extern int DSDPConeInvertS(DSDPCone); 00039 extern int DSDPConeComputeHessian(DSDPCone,double,DSDPSchurMat,DSDPVec,DSDPVec); 00040 extern int DSDPConeMultiplyAdd(DSDPCone,double,DSDPVec,DSDPVec,DSDPVec); 00041 extern int DSDPConeComputeRHS(DSDPCone,double,DSDPVec,DSDPVec,DSDPVec); 00042 extern int DSDPConeComputeMaxStepLength(DSDPCone,DSDPVec,DSDPDualFactorMatrix,double*); 00043 extern int DSDPConeComputeLogSDeterminant(DSDPCone,double*,double*); 00044 extern int DSDPConeComputeX(DSDPCone,double,DSDPVec,DSDPVec,DSDPVec,double*); 00045 extern int DSDPConeSetXMaker(DSDPCone,double,DSDPVec,DSDPVec); 00046 extern int DSDPConeView(DSDPCone); 00047 extern int DSDPConeMonitor(DSDPCone,int); 00048 extern int DSDPConeDestroy(DSDPCone*); 00049 extern int DSDPConeANorm2(DSDPCone,DSDPVec); 00050 extern int DSDPGetConeName(DSDPCone,char*,int); 00051 00052 extern int DSDPConeSetData(DSDPCone*,struct DSDPCone_Ops*,void*); 00053 extern int DSDPConeInitialize(DSDPCone*); 00054 00055 #ifdef __cplusplus 00056 } 00057 #endif 00058 00059 #endif 00060 00061 00062 00063 00064