00001
00007 #if !defined(INC_OSKI_BDIAG1_MODULE_H)
00008
00009 #define INC_OSKI_BDIAG1_MODULE_H
00010
00011 #include <oski/matmodexport.h>
00012
00013 #if defined(DO_NAME_MANGLING)
00014
00016 #define oski_BDIAG1_MatMult_funcpt MANGLE_(oski_BDIAG1_MatMult_funcpt)
00017
00018 #endif
00019
00021 typedef int (*oski_BDIAG1_MatMult_funcpt) (const oski_matBDIAG1_t * A,
00022 oski_matop_t opA,
00023 oski_value_t alpha,
00024 const oski_vecview_t x_view,
00025 oski_vecview_t y_view);
00026
00027 #if defined(DO_NAME_MANGLING)
00028
00030 #define MatMult_v1_aX_b1_xs1_ysX MANGLE_MOD_(MatMult_v1_aX_b1_xs1_ysX)
00031 #define MatMult_v1_aX_b1_xsX_ysX MANGLE_MOD_(MatMult_v1_aX_b1_xsX_ysX)
00032 #define MatTransMult_v1_aX_b1_xsX_ys1 MANGLE_MOD_(MatTransMult_v1_aX_b1_xsX_ys1)
00033 #define MatTransMult_v1_aX_b1_xsX_ysX MANGLE_MOD_(MatTransMult_v1_aX_b1_xsX_ysX)
00034 #define MatConjMult_v1_aX_b1_xs1_ysX MANGLE_MOD_(MatConjMult_v1_aX_b1_xs1_ysX)
00035 #define MatConjMult_v1_aX_b1_xsX_ysX MANGLE_MOD_(MatConjMult_v1_aX_b1_xsX_ysX)
00036 #define MatHermMult_v1_aX_b1_xsX_ys1 MANGLE_MOD_(MatHermMult_v1_aX_b1_xsX_ys1)
00037 #define MatHermMult_v1_aX_b1_xsX_ysX MANGLE_MOD_(MatHermMult_v1_aX_b1_xsX_ysX)
00038
00039 #endif
00040
00041 extern int MatMult_v1_aX_b1_xs1_ysX (oski_index_t b,
00042 oski_index_t nb, oski_index_t r,
00043 const oski_value_t * restrict dp,
00044 oski_value_t alpha,
00045 const oski_value_t * restrict xp,
00046 oski_value_t * yp, oski_index_t incy);
00047
00048 extern int MatMult_v1_aX_b1_xsX_ysX (oski_index_t b,
00049 oski_index_t nb, oski_index_t r,
00050 const oski_value_t * restrict dp,
00051 oski_value_t alpha,
00052 const oski_value_t * restrict xp,
00053 oski_index_t incx, oski_value_t * yp,
00054 oski_index_t incy);
00055
00056 extern int MatTransMult_v1_aX_b1_xsX_ys1 (oski_index_t b,
00057 oski_index_t nb, oski_index_t r,
00058 const oski_value_t * restrict dp,
00059 oski_value_t alpha,
00060 const oski_value_t * restrict xp,
00061 oski_index_t incx,
00062 oski_value_t * yp);
00063
00064 extern int MatTransMult_v1_aX_b1_xsX_ysX (oski_index_t b,
00065 oski_index_t nb, oski_index_t r,
00066 const oski_value_t * restrict dp,
00067 oski_value_t alpha,
00068 const oski_value_t * restrict xp,
00069 oski_index_t incx,
00070 oski_value_t * yp,
00071 oski_index_t incy);
00072
00073 extern int MatConjMult_v1_aX_b1_xs1_ysX (oski_index_t b,
00074 oski_index_t nb, oski_index_t r,
00075 const oski_value_t * restrict dp,
00076 oski_value_t alpha,
00077 const oski_value_t * restrict xp,
00078 oski_value_t * yp,
00079 oski_index_t incy);
00080
00081 extern int MatConjMult_v1_aX_b1_xsX_ysX (oski_index_t b,
00082 oski_index_t nb, oski_index_t r,
00083 const oski_value_t * restrict dp,
00084 oski_value_t alpha,
00085 const oski_value_t * restrict xp,
00086 oski_index_t incx, oski_value_t * yp,
00087 oski_index_t incy);
00088
00089 extern int MatHermMult_v1_aX_b1_xsX_ys1 (oski_index_t b,
00090 oski_index_t nb, oski_index_t r,
00091 const oski_value_t * restrict dp,
00092 oski_value_t alpha,
00093 const oski_value_t * restrict xp,
00094 oski_index_t incx,
00095 oski_value_t * yp);
00096
00097 extern int MatHermMult_v1_aX_b1_xsX_ysX (oski_index_t b,
00098 oski_index_t nb, oski_index_t r,
00099 const oski_value_t * restrict dp,
00100 oski_value_t alpha,
00101 const oski_value_t * restrict xp,
00102 oski_index_t incx, oski_value_t * yp,
00103 oski_index_t incy);
00104
00105 #endif
00106
00107