00001 
00023 #ifndef __UIUC_CHARM_ILSI_H
00024 #define __UIUC_CHARM_ILSI_H
00025 
00026 #include "charm-api.h"
00027 #include "ilsic.h"
00028 
00033 class ILSI_Comm {
00034 public:
00035     virtual ~ILSI_Comm();
00036     
00041     virtual void matrixVectorProduct(const double *src,double *dest) =0;
00042     
00047     virtual double dotProduct(const double *a,const double *b) =0;
00048 };
00049 
00055 #define FORTRAN_NAME_SOLVER(CAPITALNAME,Cname,lowercasename) \
00056 CLINKAGE void FTN_NAME(CAPITALNAME,lowercasename) \
00057     (ILSI_Param *param, ILSI_Comm *comm,int n, const double *b, double *x) \
00058 { Cname(param,comm,n,b,x); }
00059 
00060 
00061 #endif
00062