dsdpschurmat_impl.h
Go to the documentation of this file.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