userconst.h

Go to the documentation of this file.
00001 
00011 #if !defined(INC_OSKI_USERCONST_H)
00012 
00013 #define INC_OSKI_USERCONST_H
00014 
00020 #define INVALID_MAT ((oski_matrix_t)NULL)
00021 
00027 #define INVALID_VEC ((oski_vecview_t)NULL)
00028 
00058 typedef enum
00059 {
00060   COPY_INPUTMAT,     
00061   SHARE_INPUTMAT     
00062 }
00063 oski_copymode_t;
00064 
00069 #define OSKI_CHECK_COPYMODE(x) \
00070     IS_VAL_IN_RANGE(x, COPY_INPUTMAT, SHARE_INPUTMAT)
00071 
00100 typedef enum
00101 {
00102   LAYOUT_COLMAJ,      
00103   LAYOUT_ROWMAJ       
00104 }
00105 oski_storage_t;
00106 
00108 #define OSKI_CHECK_STORAGE(x) \
00109     IS_VAL_IN_RANGE(x, LAYOUT_COLMAJ, LAYOUT_ROWMAJ)
00110 
00125 typedef enum
00126 {
00127   OP_NORMAL,         
00128   OP_CONJ,       
00129   OP_TRANS,      
00130   OP_CONJ_TRANS        
00132 }
00133 oski_matop_t;
00134 
00136 #define OSKI_CHECK_MATOP(op) \
00137     IS_VAL_IN_RANGE(op, OP_NORMAL, OP_CONJ_TRANS)
00138 
00148 typedef enum
00149 {
00150   OP_AT_A,     
00151   OP_AH_A,     
00152   OP_A_AT,     
00153   OP_A_AH      
00154 }
00155 oski_ataop_t;
00156 
00158 #define OSKI_CHECK_ATAOP(op) \
00159     IS_VAL_IN_RANGE(op, OP_AT_A, OP_A_AH)
00160 
00183 typedef enum
00184 {
00185   INMATPROP_NULL = -1,       
00187   /* Pattern properties. */
00188   MAT_GENERAL = 0,   
00189   MAT_TRI_UPPER,     
00190   MAT_TRI_LOWER,     
00191   MAT_SYMM_UPPER,
00193   MAT_SYMM_LOWER,    
00194   MAT_SYMM_FULL,     
00195   MAT_HERM_UPPER,
00197   MAT_HERM_LOWER,    
00198   MAT_HERM_FULL,     
00200   /* Diagonal properties. */
00201   MAT_DIAG_EXPLICIT,
00203   MAT_UNIT_DIAG_IMPLICIT,
00206   /* Index base. */
00207   INDEX_ONE_BASED,
00209   INDEX_ZERO_BASED,
00212   /* Index ordering. */
00213   INDEX_UNSORTED,   
00214   INDEX_SORTED,        
00216   /* Index repetition. */
00217   INDEX_REPEATED,   
00218   INDEX_UNIQUE,     
00220   INMATPROP_MAX 
00221 }
00222 oski_inmatprop_t;
00223 
00230 #define ALWAYS_TUNE               ((int)(1000))
00231 
00232 #define ALWAYS_TUNE_AGGRESSIVELY  ((int)(100000))
00233 
00249 typedef enum
00250 {
00251   /* Group 1 */
00252   HINT_NO_BLOCKS = 1,          
00253   HINT_SINGLE_BLOCKSIZE,       
00255   HINT_MULTIPLE_BLOCKSIZES,   
00258   /* Group 2 */
00259   HINT_ALIGNED_BLOCKS,       
00260   HINT_UNALIGNED_BLOCKS,       
00262   /* Group 3 */
00263   HINT_SYMM_PATTERN,       
00264   HINT_NONSYMM_PATTERN,       
00266   /* Group 4 */
00267   HINT_RANDOM_PATTERN,       
00269   HINT_CORREL_PATTERN,       
00272   /* Group 5 */
00273   HINT_NO_DIAGS,       
00274   HINT_DIAGS,       
00277   HINT_MAX   
00278 }
00279 oski_tunehint_t;
00283 #define OSKI_CHECK_TUNEHINT(hint) \
00284     IS_VAL_IN_RANGE(hint, HINT_NO_BLOCKS, HINT_MAX-1)
00285 
00291 #define ARGS_NONE   ((int)0)
00292 
00293 #endif
00294 
00295 /* eof */

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