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 extern int DSDPConeSetUp(DSDPCone,DSDPVec); 00030 extern int DSDPConeSetUp2(DSDPCone, DSDPVec, DSDPSchurMat); 00031 extern int DSDPConeGetDimension(DSDPCone,double*); 00032 extern int DSDPConeSparsityInSchurMat(DSDPCone, int,int[],int); 00033 extern int DSDPConeComputeS(DSDPCone,DSDPVec,DSDPDualFactorMatrix,DSDPTruth *); 00034 extern int DSDPConeInvertS(DSDPCone); 00035 extern int DSDPConeComputeHessian(DSDPCone,double,DSDPSchurMat,DSDPVec,DSDPVec); 00036 extern int DSDPConeMultiplyAdd(DSDPCone,double,DSDPVec,DSDPVec,DSDPVec); 00037 extern int DSDPConeComputeRHS(DSDPCone,double,DSDPVec,DSDPVec,DSDPVec); 00038 extern int DSDPConeComputeMaxStepLength(DSDPCone,DSDPVec,DSDPDualFactorMatrix,double*); 00039 extern int DSDPConeComputeLogSDeterminant(DSDPCone,double*,double*); 00040 extern int DSDPConeComputeX(DSDPCone,double,DSDPVec,DSDPVec,DSDPVec,double*); 00041 extern int DSDPConeSetXMaker(DSDPCone,double,DSDPVec,DSDPVec); 00042 extern int DSDPConeView(DSDPCone); 00043 extern int DSDPConeMonitor(DSDPCone,int); 00044 extern int DSDPConeDestroy(DSDPCone*); 00045 extern int DSDPConeANorm2(DSDPCone,DSDPVec); 00046 extern int DSDPGetConeName(DSDPCone,char*,int); 00047 00048 extern int DSDPConeSetData(DSDPCone*,struct DSDPCone_Ops*,void*); 00049 extern int DSDPConeInitialize(DSDPCone*); 00050 extern int DSDPSetCone(DSDP,DSDPCone); 00051 00052 00053 #endif 00054 00055 00056 00057 00058