00001 #if !defined(__DSDP_DATAMATRIX_H)
00002 #define __DSDP_DATAMATRIX_H
00003
00010
00015 struct DSDPDataMat_Ops{
00016 int id;
00017 int (*mataddallmultiple)(void*,double,double[],int,int);
00018 int (*matdot)(void*, double[], int, int, double *);
00019 int (*matgetrank)(void*,int*,int);
00020 int (*matgeteig)(void*,int,double*,double[],int,int[],int*);
00021 int (*matvecvec)(void*, double[], int,double*);
00022 int (*mataddrowmultiple)(void*,int,double,double[],int);
00023 int (*matmultiply)(void*,double[],double[],int);
00024 int (*matfactor1)(void*);
00025 int (*matfactor2)(void*,double[],int,double[],int,double[],int,int[],int);
00026 int (*matfnorm2)(void*,int,double*);
00027 int (*matrownz)(void*,int,int[],int*,int);
00028 int (*matnnz)(void*,int*,int);
00029 int (*mattest)(void*);
00030 int (*matdestroy)(void*);
00031 int (*matview)(void*);
00032 const char *matname;
00033 };
00034
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038 extern int DSDPGetEigs(double[],int,double[],int,long int[],int,
00039 double[],int,double[],int,int[],int);
00040 extern int DSDPGetEigs2(double[],int,double[],int,long int[],int,
00041 double[],int,double[],int,int[],int);
00042
00043 int DSDPDataMatOpsInitialize(struct DSDPDataMat_Ops*);
00044
00045 #ifdef __cplusplus
00046 }
00047 #endif
00048
00049
00050
00051
00052
00053 #endif
00054
00055