BeBOP Optimized Sparse Kernel Interface Library
1.0.1h
|
00001 00007 #if !defined(INC_OSKI_ATA_H) && !defined(OSKI_UNBIND) 00008 00009 #define INC_OSKI_ATA_H 00010 00011 #include <oski/matmult.h> 00012 00013 #if defined(DO_NAME_MANGLING) 00014 00016 #define oski_MatTransMatMult_funcpt MANGLE_(oski_MatTransMatMult_funcpt) 00017 #define oski_MatReprTransMatReprMult_funcpt \ 00018 MANGLE_(oski_MatReprTransMatReprMult_funcpt) 00019 00020 #define oski_MatTransMatMult \ 00021 MANGLE_(oski_MatTransMatMult) 00022 #define oski_CheckArgsMatTransMatMult \ 00023 MANGLE_(oski_CheckArgsMatTransMatMult) 00024 00025 #define oski_traceargs_MatTransMatMult_t \ 00026 MANGLE_(oski_traceargs_MatTransMatMult_t) 00027 #define oski_MakeArglistMatTransMatMult \ 00028 MANGLE_(oski_MakeArglistMatTransMatMult) 00029 00030 #endif 00031 00039 int oski_MatTransMatMult (const oski_matrix_t A_tunable, 00040 oski_ataop_t op, 00041 oski_value_t alpha, const oski_vecview_t x_view, 00042 oski_value_t beta, oski_vecview_t y_view, 00043 oski_vecview_t t_view); 00044 00049 int 00050 oski_CheckArgsMatTransMatMult (const oski_matrix_t A_tunable, 00051 oski_ataop_t op, 00052 oski_value_t alpha, 00053 const oski_vecview_t x_view, oski_value_t beta, 00054 const oski_vecview_t y_view, 00055 const oski_vecview_t t_view, 00056 const char *caller); 00057 00058 00062 typedef int (*oski_MatTransMatMult_funcpt) (const oski_matrix_t A_tunable, 00063 oski_ataop_t op, 00064 oski_value_t alpha, 00065 const oski_vecview_t x_view, 00066 oski_value_t beta, 00067 oski_vecview_t y_view, 00068 oski_vecview_t t_view); 00069 00074 typedef int (*oski_MatReprTransMatReprMult_funcpt) (const void *A, 00075 const oski_matcommon_t * 00076 props, oski_ataop_t op, 00077 oski_value_t alpha, 00078 const oski_vecview_t 00079 x_view, oski_value_t beta, 00080 oski_vecview_t y_view, 00081 oski_vecview_t t_view); 00082 00090 typedef struct 00091 { 00093 00094 oski_ataop_t op; 00095 oski_index_t num_vecs; 00096 oski_value_t alpha; 00097 oski_storage_t x_orient; 00098 oski_value_t beta; 00099 oski_storage_t y_orient; 00100 oski_storage_t t_orient; 00102 } 00103 oski_traceargs_MatTransMatMult_t; 00104 00109 void oski_MakeArglistMatTransMatMult (oski_ataop_t opA, 00110 oski_value_t alpha, 00111 const oski_vecview_t x_view, 00112 oski_value_t beta, 00113 const oski_vecview_t y_view, 00114 const oski_vecview_t t_view, 00115 oski_traceargs_MatTransMatMult_t * 00116 args); 00117 00119 #define GET_XFLOP_MatTransMatMult( args ) \ 00120 (4.0*((const oski_traceargs_MatTransMatMult_t *)(args))->num_vecs) 00121 00124 #endif /* !defined(INC_OSKI_ATA_H) */ 00125 00126 #if defined(OSKI_UNBIND) 00127 # include <oski/matmult.h> 00128 # undef INC_OSKI_ATA_H 00129 # undef oski_MatTransMatMult_funcpt 00130 # undef oski_MatReprTransMatReprMult_funcpt 00131 # undef oski_MatTransMatMult 00132 # undef oski_CheckArgsMatTransMatMult 00133 # undef oski_traceargs_MatTransMatMult_t 00134 # undef oski_MakeArglistMatTransMatMult 00135 # undef GET_XFLOP_MatTransMatMult 00136 #endif 00137 00138 /* eof */