ata.h

Go to the documentation of this file.
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 */

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