00001 #ifndef SPARSEMATRIXUTILITIES
00002 #define SPARSEMATRIXUTILITIES
00003
00004 #include "IotrMatrixDisplayFormat.hh"
00005
00006 void sparse_matrix_mult( const int irow[], const int kcol[], int n,
00007 const double d[],
00008 double alpha, const double x[],
00009 double beta, double y[], int m );
00010
00011 void sparse_filtered_mult( const int irow[], const int kcol[], int n,
00012 const double d[],
00013 double alpha, const int ia[], int na,
00014 const double x[], int nx,
00015 double beta, double y[], int m );
00016
00017 void sparse_matrix_transpose_mult( const int irow[],
00018 const int kcol[], int n,
00019 const double d[],
00020 double alpha, const double x[], int m,
00021 double beta, double y[] );
00022
00023 void sparse_filtered_transpose_mult( const int irow[],
00024 const int kcol[], int n,
00025 const double d[],
00026 double alpha, const double x[], int m,
00027 const int ia[], int na,
00028 double beta, double y[], double ny );
00029
00030 void sparse_sym_matrix_mult( const int irow[], const int kcol[], int n,
00031 const double d[],
00032 double alpha, const double x[],
00033 double beta, double y[] );
00034
00035 void sparse_sym_masked_mult( const int irow[], const int kcol[], int n,
00036 const double d[], const int mask[],
00037 double alpha, const double x[], int nx,
00038 double beta, double y[] );
00039
00040 void sparse_sym_filtered_mult( const int irow[], const int kcol[], int n,
00041 const double d[],
00042 double alpha,
00043 const int ia[], int na,
00044 const double x[], int nx,
00045 double beta, double y[] );
00046
00047 void writef_sparse_mat_to_stream( int m,
00048 const int irow[], const int kcol[], int n,
00049 const double d[],
00050 std::ostream& out,
00051 const IotrMatrixDisplayFormat & format );
00052
00053 #endif