a_and_at.h

Go to the documentation of this file.
00001 
00007 #if !defined(INC_OSKI_A_AND_AT_H) && !defined(OSKI_UNBIND)
00008 
00009 #define INC_OSKI_A_AND_AT_H
00010 
00011 #include <oski/matmult.h>
00012 
00013 #if defined(DO_NAME_MANGLING)
00014 
00016 #define oski_MatMultAndMatTransMult_funcpt  \
00017     MANGLE_(oski_MatMultAndMatTransMult_funcpt)
00018 #define oski_MatReprMultAndMatReprTransMult_funcpt \
00019     MANGLE_(oski_MatReprMultAndMatReprTransMult_funcpt)
00020 
00021 #define oski_MatMultAndMatTransMult         \
00022     MANGLE_(oski_MatMultAndMatTransMult)
00023 #define oski_CheckArgsMatMultAndMatTransMult \
00024     MANGLE_(oski_CheckArgsMatMultAndMatTransMult)
00025 
00026 #define oski_traceargs_MatMultAndMatTransMult_t \
00027     MANGLE_(oski_traceargs_MatMultAndMatTransMult_t)
00028 #define oski_MakeArglistMatMultAndMatTransMult \
00029     MANGLE_(oski_MakeArglistMatMultAndMatTransMult)
00030 
00031 #endif
00032 
00040 int oski_MatMultAndMatTransMult (const oski_matrix_t A_tunable,
00041                  oski_value_t alpha,
00042                  const oski_vecview_t x_view,
00043                  oski_value_t beta, oski_vecview_t y_view,
00044                  oski_matop_t opA, oski_value_t omega,
00045                  const oski_vecview_t w_view,
00046                  oski_value_t zeta, oski_vecview_t z_view);
00047 
00053 int oski_CheckArgsMatMultAndMatTransMult (const oski_matrix_t A_tunable,
00054                       oski_value_t alpha,
00055                       const oski_vecview_t x_view,
00056                       oski_value_t beta,
00057                       oski_vecview_t y_view,
00058                       oski_matop_t op, oski_value_t omega,
00059                       const oski_vecview_t w_view,
00060                       oski_value_t zeta,
00061                       oski_vecview_t z_view,
00062                       const char *caller);
00063 
00067 typedef int (*oski_MatMultAndMatTransMult_funcpt) (const oski_matrix_t
00068                            A_tunable,
00069                            oski_value_t alpha,
00070                            const oski_vecview_t
00071                            x_view, oski_value_t beta,
00072                            oski_vecview_t y_view,
00073                            oski_matop_t opA,
00074                            oski_value_t omega,
00075                            const oski_vecview_t
00076                            w_view, oski_value_t zeta,
00077                            oski_vecview_t z_view);
00078 
00083 typedef int (*oski_MatReprMultAndMatReprTransMult_funcpt) (const void *A,
00084                                const
00085                                oski_matcommon_t *
00086                                props,
00087                                oski_value_t alpha,
00088                                const
00089                                oski_vecview_t
00090                                x_view,
00091                                oski_value_t beta,
00092                                oski_vecview_t
00093                                y_view,
00094                                oski_matop_t opA,
00095                                oski_value_t omega,
00096                                const
00097                                oski_vecview_t
00098                                w_view,
00099                                oski_value_t zeta,
00100                                oski_vecview_t
00101                                z_view);
00102 
00110 typedef struct
00111 {
00113 
00114   oski_value_t alpha;
00115   oski_index_t num_vecs;
00116   oski_storage_t x_orient;
00117   oski_value_t beta;
00118   oski_storage_t y_orient;
00119   oski_matop_t opA;
00120   oski_value_t omega;
00121   oski_storage_t w_orient;
00122   oski_value_t zeta;
00123   oski_storage_t z_orient;
00125 }
00126 oski_traceargs_MatMultAndMatTransMult_t;
00127 
00132 void oski_MakeArglistMatMultAndMatTransMult (oski_value_t alpha,
00133                          const oski_vecview_t x_view,
00134                          oski_value_t beta,
00135                          const oski_vecview_t y_view,
00136                          oski_matop_t opA,
00137                          oski_value_t omega,
00138                          const oski_vecview_t w_view,
00139                          oski_value_t zeta,
00140                          const oski_vecview_t z_view,
00141                          oski_traceargs_MatMultAndMatTransMult_t
00142                          * args);
00143 
00145 #define GET_XFLOP_MatMultAndMatTransMult(args) \
00146     (4.0*((const oski_traceargs_MatMultAndMatTransMult_t *)(args))->num_vecs)
00147 
00149 #endif /* !defined(INC_OSKI_A_AND_AT_H) */
00150 
00151 #if defined(OSKI_UNBIND)
00152 #  include <oski/matmult.h>
00153 #  undef INC_OSKI_A_AND_AT_H
00154 #  undef oski_MatMultAndMatTransMult_funcpt
00155 #  undef oski_MatReprMultAndMatReprTransMult_funcpt
00156 #  undef oski_MatMultAndMatTransMult
00157 #  undef oski_CheckArgsMatMultAndMatTransMult
00158 #  undef oski_traceargs_MatMultAndMatTransMult_t
00159 #  undef oski_MakeArglistMatMultAndMatTransMult
00160 #  undef GET_XFLOP_MatMultAndMatTransMult
00161 #endif
00162 
00163 /* eof */

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