DSDP
|
00001 #ifndef __TAO_DSDPSTEP_H 00002 #define __TAO_DSDPSTEP_H 00003 #include "sdpconevec.h" 00013 typedef struct { 00014 int lanczosm; 00015 int maxlanczosm; 00016 double *darray; /* For SLOW BUT ROBUST METHOD ONLY */ 00017 SDPConeVec *Q; /* Size 2 for FAST, Size lanczosm for SLOW */ 00018 SDPConeVec Tv; /* For SLOW BUT ROBUST METHOD ONLY */ 00019 00020 double *dwork4n; 00021 int *iwork10n; 00022 int lwork,liwork; 00023 int n; 00024 int type; 00025 } DSDPLanczosStepLength; 00026 00027 #ifdef __cplusplus 00028 extern "C" { 00029 #endif 00030 extern int DSDPLanczosInitialize(DSDPLanczosStepLength*); 00031 extern int DSDPSetMaximumLanczosIterations( DSDPLanczosStepLength *LZ, int); 00032 extern int DSDPFastLanczosSetup(DSDPLanczosStepLength*,SDPConeVec); 00033 extern int DSDPRobustLanczosSetup(DSDPLanczosStepLength*,SDPConeVec); 00034 extern int DSDPLanczosStepSize( DSDPLanczosStepLength*, SDPConeVec, SDPConeVec, DSDPDualMat, DSDPDSMat, double *); 00035 extern int DSDPLanczosDestroy( DSDPLanczosStepLength*); 00036 extern int DSDPLanczosMinXEig( DSDPLanczosStepLength*, DSDPVMat, SDPConeVec, SDPConeVec, double *); 00037 00038 #ifdef __cplusplus 00039 } 00040 #endif 00041 00042 #endif