spmv_tiled_bcsr.h

Go to the documentation of this file.
00001 
00006 #if !defined(INC_SPMV_TILED_BCSR_H)
00007 #define INC_SPMV_TILED_BCSR_H
00008 
00009 #if !defined(INC_SPMV_BCSR_H)
00010 typedef struct tagSparseMatrixBCSR SparseMatrixBCSR;
00011 #endif
00012 
00013 /* ------------------------------------------------------------ */
00014 typedef struct tagSparseMatrixTiledBCSR
00015 {
00016   const SparseMatrixBCSR *B;    /* the matrix (shallow copy) */
00017 
00018   int num_iters;
00019   int num_tiles;
00020   int *iter_ptr;
00021   int *dest_ind;
00022 } SparseMatrixTiledBCSR;
00023 
00024 
00025 /* ------------------------------------------------------------ */
00026 
00027 #define TBCSR_MAX_ROWS 8
00028 #define TBCSR_MAX_COLS 8
00029 
00030 typedef void (*SPMV_TBCSR_FP) (int bm,
00031                    /* tile */
00032                    int num_iters, int num_tiles,
00033                    const int *iter_ptr, const int *dest_ind,
00034                    /* A */
00035                    const int *ptr, const int *ind,
00036                    const double *val,
00037                    /* operands */
00038                    const double *x, double *y, double *t);
00039 
00040 extern SPMV_TBCSR_FP spmvTiledBlkCSRRoutines[];
00041 
00042 /* ------------------------------------------------------------ */
00043 
00044 extern void spmv_create_tiles_bcsr (const SparseMatrixBCSR * B,
00045                     int num_iters, int num_tiles,
00046                     SparseMatrixTiledBCSR * T);
00047 
00048 extern void spmv_tiled_bcsr (const SparseMatrixTiledBCSR * A,
00049                  const double *x, double *y, double *workspace);
00050 
00051 extern void spmv_destroy_tiled_bcsr (SparseMatrixTiledBCSR * T);
00052 
00053 /* ------------------------------------------------------------ */
00054 extern void spmv_save_rbtileinfo (const SparseMatrixTiledBCSR * T,
00055                   const char *tileinfo);
00056 extern void spmv_read_rbtileinfo (const char *tileinfo,
00057                   int *p_r, int *p_c, int *p_num_iters,
00058                   int *p_num_tiles, int **p_iter_ptr,
00059                   int **p_dest_ind);
00060 
00061 /* ------------------------------------------------------------ */
00062 
00063 #endif
00064 
00065 /*
00066  *  $Log: spmv_tiled_bcsr.h,v $
00067  *  Revision 1.1.1.1  2005/06/29 22:07:52  rvuduc
00068  *  Initial import
00069  *
00070  *
00071  *  eof
00072  */

Generated on Wed Sep 19 16:41:18 2007 for BeBOP Optimized Sparse Kernel Interface Library by  doxygen 1.4.6