DSDP
|
00001 #if !defined(__DSDP_DATAMATRIX_H) 00002 #define __DSDP_DATAMATRIX_H 00003 00010 /* DSDP Data Matrices have particular operations, and several implementations */ 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); /* NEEDED? */ 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 #include "dsdpdatamat.h" 00051 */ 00052 00053 #endif 00054 00055