dsdpdatamat_impl.h

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

Generated on Wed Nov 5 21:46:05 2008 for DSDP by  doxygen 1.5.6