00001
00014 #if !defined(INC_OSKI_HINT_H) && !defined(OSKI_UNBIND)
00015
00016 #define INC_OSKI_HINT_H
00017
00018 #include <oski/common.h>
00019 #include <oski/matrix.h>
00020
00021 #if defined(DO_NAME_MANGLING)
00022
00024 #define oski_SetHintMatMult \
00025 MANGLE_(oski_SetHintMatMult)
00026 #define oski_SetHintMatTrisolve \
00027 MANGLE_(oski_SetHintMatTrisolve)
00028 #define oski_SetHintMatMultAndMatTransMult \
00029 MANGLE_(oski_SetHintMatMultAndMatTransMult)
00030 #define oski_SetHintMatTransMatMult \
00031 MANGLE_(oski_SetHintMatTransMatMult)
00032 #define oski_SetHintMatPowMult \
00033 MANGLE_(oski_SetHintMatPowMult)
00034
00035 #define oski_SetHint MANGLE_(oski_SetHint)
00036
00037 #endif
00038
00039
00040
00046
00050 int oski_SetHint (oski_matrix_t A_tunable, oski_tunehint_t hint, ...);
00051
00055 int oski_SetHintMatMult (oski_matrix_t A_tunable, oski_matop_t opA,
00056 oski_value_t alpha, const oski_vecview_t x_view,
00057 oski_value_t beta, const oski_vecview_t y_view,
00058 int num_calls);
00059
00063 int oski_SetHintMatTrisolve (oski_matrix_t T_tunable,
00064 oski_matop_t opT,
00065 oski_value_t alpha, const oski_vecview_t x_view,
00066 int num_calls);
00067
00071 int oski_SetHintMatTransMatMult (oski_matrix_t A_tunable,
00072 oski_ataop_t opA,
00073 oski_value_t alpha,
00074 const oski_vecview_t x_view,
00075 oski_value_t beta,
00076 const oski_vecview_t y_view,
00077 const oski_vecview_t t_view, int num_calls);
00078
00083 int oski_SetHintMatMultAndMatTransMult (oski_matrix_t A_tunable,
00084 oski_value_t alpha,
00085 const oski_vecview_t x_view,
00086 oski_value_t beta,
00087 const oski_vecview_t y_view,
00088 oski_matop_t opA, oski_value_t omega,
00089 const oski_vecview_t w_view,
00090 oski_value_t zeta,
00091 const oski_vecview_t z_view,
00092 int num_calls);
00093
00097 int oski_SetHintMatPowMult (oski_matrix_t A_tunable,
00098 oski_matop_t opA, int power,
00099 oski_value_t alpha, const oski_vecview_t x_view,
00100 oski_value_t beta, const oski_vecview_t y_view,
00101 const oski_vecview_t T_view, int num_calls);
00104 #endif
00105
00106 #if defined(OSKI_UNBIND)
00107 # include <oski/matrix.h>
00108 # undef INC_OSKI_HINT_H
00109 # undef oski_SetHintMatMult
00110 # undef oski_SetHintMatTrisolve
00111 # undef oski_SetHintMatMultAndMatTransMult
00112 # undef oski_SetHintMatTransMatMult
00113 # undef oski_SetHintMatPowMult
00114 # undef oski_SetHint
00115 #endif
00116
00117