keropts.h

Go to the documentation of this file.
00001 
00007 #if !defined(INC_BENCH_KEROPTS_H)
00008 #define INC_BENCH_KEROPTS_H
00009 
00010 #include <stdio.h>
00011 
00012 #if defined(DO_NAME_MANGLING)
00013 
00014 #define kerargs_MatMult_t MANGLE_(kerags_MatMult_t)
00015 #define kerargs_MatTrisolve_t MANGLE_(kerags_MatTrisolve_t)
00016 #define kerargs_MatTransMatMult_t MANGLE_(kerags_MatTransMatMult_t)
00017 #define kerargs_MatMultAndMatTransMult_t \
00018     MANGLE_(kerags_MatMultAndMatTransMult_t)
00019 #define kerargs_MatPowMult_t MANGLE_(kerags_MatPowMult_t)
00020 #define keropts_process MANGLE_(keropts_process)
00021 #endif
00022 
00024 typedef enum
00025 {
00026   KERNEL_NULL = 0,
00027   KERNEL_MatMult = 1,
00028   KERNEL_MatTrisolve = 2,
00029   KERNEL_MatTransMatMult = 3,
00030   KERNEL_MatMultAndMatTransMult = 4,
00031   KERNEL_MatPowMult = 5
00032 } kernel_types_t;
00033 
00038 typedef struct
00039 {
00040   int num_calls;    
00041   oski_index_t num_vecs;       
00042   oski_matop_t op;   
00043   oski_value_t alpha;       
00044   oski_vecview_t x;   
00045   oski_storage_t x_layout;   
00046   oski_value_t beta;       
00047   oski_vecview_t y;   
00048   oski_storage_t y_layout;   
00049 } kerargs_MatMult_t;
00050 
00055 typedef struct
00056 {
00057   int num_calls;    
00058   oski_index_t num_vecs;       
00059   oski_matop_t op;   
00060   oski_value_t alpha;       
00061   oski_vecview_t x;   
00062   oski_storage_t x_layout;   
00063 } kerargs_MatTrisolve_t;
00064 
00069 typedef struct
00070 {
00071   int num_calls;    
00072   oski_index_t num_vecs;       
00073   oski_ataop_t op;   
00074   oski_value_t alpha;       
00075   oski_vecview_t x;   
00076   oski_storage_t x_layout;   
00077   oski_value_t beta;       
00078   oski_vecview_t y;   
00079   oski_storage_t y_layout;   
00080   oski_vecview_t t;   
00081   oski_storage_t t_layout;   
00082 } kerargs_MatTransMatMult_t;
00083 
00089 typedef struct
00090 {
00091   int num_calls;    
00092   oski_index_t num_vecs;       
00093   oski_matop_t op;   
00094   oski_value_t alpha;       
00095   oski_vecview_t x;   
00096   oski_storage_t x_layout;   
00097   oski_value_t beta;       
00098   oski_vecview_t y;   
00099   oski_storage_t y_layout;   
00100   oski_value_t omega;       
00101   oski_vecview_t w;   
00102   oski_storage_t w_layout;   
00103   oski_value_t zeta;       
00104   oski_vecview_t z;   
00105   oski_storage_t z_layout;   
00106 } kerargs_MatMultAndMatTransMult_t;
00107 
00111 typedef struct
00112 {
00113   int num_calls;    
00114   oski_index_t num_vecs;       
00115   oski_matop_t op;   
00116   int power;       
00117   oski_value_t alpha;       
00118   oski_vecview_t x;   
00119   oski_storage_t x_layout;   
00120   oski_value_t beta;       
00121   oski_vecview_t y;   
00122   oski_storage_t y_layout;   
00123   oski_vecview_t t;   
00124   oski_storage_t t_layout;   
00125 } kerargs_MatPowMult_t;
00126 
00128 typedef struct
00129 {
00130   kernel_types_t kernel;     
00133   union
00134   {
00135     kerargs_MatMult_t MatMult;         
00136     kerargs_MatTrisolve_t MatTrisolve;         
00137     kerargs_MatTransMatMult_t MatTransMatMult;         
00138     kerargs_MatMultAndMatTransMult_t MatMultAndMatTransMult;
00140     kerargs_MatPowMult_t MatPowMult;         
00141   } args;
00142 } kernel_t;
00143 
00145 void keropts_Usage (FILE * fp);
00146 
00148 int keropts_Process (int argc, char *argv[], int i_start, kernel_t ** p_opt);
00149 
00150 #endif
00151 
00152 /* eof */

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