00001
00014 #if !defined(INC_OSKI_MATMODEXPORT_H)
00015
00016 #define INC_OSKI_MATMODEXPORT_H
00017
00018 #include <oski/modcommon.h>
00019 #include <oski/matcommon.h>
00020 #include <oski/vecview.h>
00021 #include <oski/CSR/format.h>
00022
00023 #if defined(DO_NAME_MANGLING)
00024
00026 #define oski_DestroyMatRepr MANGLE_MOD_(oski_DestroyMatRepr)
00027 #define oski_ConvertMatReprToCSR MANGLE_MOD_(oski_ConvertMatReprToCSR)
00028 #define oski_CreateMatReprFromCSR MANGLE_MOD_(oski_CreateMatReprFromCSR)
00029 #define oski_CopyMatRepr MANGLE_MOD_(oski_CopyMatRepr)
00030 #define oski_CalcMatRepr1Norm MANGLE_MOD_(oski_CalcMatRepr1Norm)
00031
00032 #define oski_MatReprMult \
00033 MANGLE_MOD_(oski_MatReprMult)
00034 #define oski_MatReprTrisolve \
00035 MANGLE_MOD_(oski_MatReprTrisolve)
00036 #define oski_MatReprMultAndMatReprTransMult \
00037 MANGLE_MOD_(oski_MatReprMultAndMatReprTransMult)
00038 #define oski_MatReprTransMatReprMult \
00039 MANGLE_MOD_(oski_MatReprTransMatReprMult)
00040 #define oski_MatReprPowMult \
00041 MANGLE_MOD_(oski_MatReprPowMult)
00042
00043 #endif
00044
00056 void oski_DestroyMatRepr (void *mat);
00057
00075 void *oski_CreateMatReprFromCSR (const oski_matCSR_t * mat,
00076 const oski_matcommon_t * props, ...);
00077
00091 oski_matCSR_t *oski_ConvertMatReprToCSR (const void *mat,
00092 const oski_matcommon_t * props);
00093
00106 void *oski_CopyMatRepr (const void *mat, const oski_matcommon_t * props);
00107
00117 double oski_CalcMatRepr1Norm (const void *mat,
00118 const oski_matcommon_t * props);
00119
00127 int oski_MatReprMult (const void *A,
00128 const oski_matcommon_t * props, oski_matop_t opA,
00129 oski_value_t alpha, const oski_vecview_t x_view,
00130 oski_value_t beta, oski_vecview_t y_view);
00131
00138 int oski_MatReprTrisolve (const void *T,
00139 const oski_matcommon_t * props, oski_matop_t opT,
00140 oski_value_t alpha, oski_vecview_t x_view);
00141
00148 int oski_MatReprTransMatReprMult (const void *A,
00149 const oski_matcommon_t * props,
00150 oski_ataop_t op, oski_value_t alpha,
00151 const oski_vecview_t x_view,
00152 oski_value_t beta, oski_vecview_t y_view,
00153 oski_vecview_t t_view);
00154
00163 int oski_MatReprMultAndMatReprTransMult (const void *A,
00164 const oski_matcommon_t * props,
00165 oski_value_t alpha,
00166 const oski_vecview_t x_view,
00167 oski_value_t beta,
00168 oski_vecview_t y_view,
00169 oski_matop_t opA, oski_value_t omega,
00170 const oski_vecview_t w_view,
00171 oski_value_t zeta,
00172 oski_vecview_t z_view);
00173
00180 int oski_MatReprPowMult (const void *A, const oski_matcommon_t * props,
00181 oski_matop_t opA, int power,
00182 oski_value_t alpha, const oski_vecview_t x_view,
00183 oski_value_t beta, oski_vecview_t y_view,
00184 oski_vecview_t T_view);
00185
00186 #endif
00187
00188