00001 #ifndef __DSDPCONE_H 00002 #define __DSDPCONE_H 00003 00009 #include "dsdpbasictypes.h" 00010 #include "dsdpvec.h" 00011 #include "dsdpschurmat.h" 00012 00013 struct DSDPCone_Ops{ 00014 int id; 00015 int (*conesize)(void*,double*); 00016 int (*conesetup)(void*,DSDPVec); 00017 int (*conesetup2)(void*,DSDPVec,DSDPSchurMat); 00018 int (*conecomputes)(void*,DSDPVec,DSDPDualFactorMatrix,DSDPTruth*); 00019 int (*coneinverts)(void*); 00020 int (*conelogpotential)(void*,double*,double*); 00021 int (*conesetxmaker)(void*,double,DSDPVec,DSDPVec); 00022 int (*conecomputex)(void*,double,DSDPVec,DSDPVec,DSDPVec,double*); 00023 int (*conehessian)(void*,double,DSDPSchurMat,DSDPVec,DSDPVec); 00024 int (*conehmultiplyadd)(void*,double,DSDPVec,DSDPVec,DSDPVec); 00025 int (*conerhs)(void*,double,DSDPVec,DSDPVec,DSDPVec); 00026 int (*conemaxsteplength)(void*,DSDPVec,DSDPDualFactorMatrix,double*); 00027 int (*coneanorm2)(void*,DSDPVec); 00028 int (*conesparsity)(void*,int,int*,int[],int); 00029 int (*conemonitor)(void*,int); 00030 int (*conedestroy)(void*); 00031 int (*coneview)(void*); 00032 const char *name; 00033 }; 00034 00035 extern int DSDPAddCone(DSDP,struct DSDPCone_Ops*, void*); 00036 extern int DSDPConeOpsInitialize(struct DSDPCone_Ops*); 00037 00038 #endif