DSDP
|
00001 #include "dsdpbasictypes.h" 00002 #if !defined(__DSDP_SCHURMATRICES_H) 00003 #define __DSDP_SCHURMATRICES_H 00004 00010 struct DSDPSchurMat_Ops{ 00011 int id; 00012 int (*matzero)(void*); 00013 int (*matrownonzeros)(void*,int,double*,int*,int); 00014 int (*mataddrow)(void*,int,double,double[],int); 00015 int (*mataddelement)(void*,int,double); 00016 int (*matadddiagonal)(void*,double[],int); 00017 int (*matshiftdiagonal)(void*,double); 00018 int (*matassemble)(void*); 00019 int (*matscaledmultiply)(void*,double[],double[],int); 00020 int (*matmultr)(void*,double[],double[],int); 00021 int (*matfactor)(void*,int*); 00022 int (*matsolve)(void*,double[],double[],int); 00023 int (*matsetup)(void*,int); 00024 int (*pmatwhichdiag)(void*,double[],int); 00025 int (*pmatonprocessor)(void*,int,int*); 00026 int (*pmatlocalvariables)(void*,double[],int); 00027 int (*pmatreduction)(void*,double[],int); 00028 int (*pmatdistributed)(void*,int*); 00029 int (*matdestroy)(void*); 00030 int (*matview)(void*); 00031 const char *matname; 00032 }; 00033 00034 extern int DSDPSetSchurMatOps(DSDP,struct DSDPSchurMat_Ops*,void*); 00035 extern int DSDPSchurMatOpsInitialize(struct DSDPSchurMat_Ops*); 00036 extern int DSDPSparsityInSchurMat(DSDP,int,int[],int); 00037 #endif 00038 00039