BeBOP Optimized Sparse Kernel Interface Library
1.0.1h
|
00001 00009 #if !defined(INC_OSKI_VECVIEW_H) && !defined(OSKI_UNBIND) 00010 00011 #define INC_OSKI_VECVIEW_H 00012 00013 #include <oski/vector.h> 00014 00015 #if defined(DO_NAME_MANGLING) 00016 00018 #define oski_vecview_t MANGLE_(oski_vecview_t) 00019 #define SYMBOLIC_VEC MANGLE_(SYMBOLIC_VEC) 00020 #define SYMBOLIC_MULTIVEC MANGLE_(SYMBOLIC_MULTIVEC) 00021 00022 #define oski_CreateVecView MANGLE_(oski_CreateVecView) 00023 #define oski_CreateMultiVecView MANGLE_(oski_CreateMultiVecView) 00024 #define oski_DestroyVecView MANGLE_(oski_DestroyVecView) 00025 #define oski_CopyVecView MANGLE_(oski_CopyVecView) 00026 00027 #define oski_PrintDebugVecView MANGLE_(oski_PrintDebugVecView) 00028 #define oski_CalcVecViewInfNorm MANGLE_(oski_CalcVecViewInfNorm) 00029 #define oski_CalcVecViewInfNormDiff MANGLE_(oski_CalcVecViewInfNormDiff) 00030 00031 #define oski_InitSubVecView MANGLE_(oski_InitSubVecView) 00032 00033 #endif 00034 00048 #define STRIDE_UNIT ((oski_index_t)1) 00049 00053 typedef oski_vecstruct_t *oski_vecview_t; 00054 00059 oski_vecview_t 00060 oski_CreateVecView (oski_value_t * x, oski_index_t length, oski_index_t inc); 00061 00067 oski_vecview_t 00068 oski_CreateMultiVecView (oski_value_t * X, 00069 oski_index_t length, oski_index_t num_vecs, 00070 oski_storage_t orient, oski_index_t stride); 00071 00076 int oski_DestroyVecView (oski_vecview_t x); 00077 00082 oski_vecview_t oski_CopyVecView (const oski_vecview_t x); 00089 void oski_PrintDebugVecView (const oski_vecview_t x, const char *val_fmt); 00090 00095 double oski_CalcVecViewInfNorm (const oski_vecview_t x, oski_index_t j); 00096 00100 double oski_CalcVecViewInfNormDiff (const oski_vecview_t x0, oski_index_t j0, 00101 const oski_vecview_t x1, oski_index_t j1); 00102 00107 int oski_InitSubVecView (const oski_vecview_t x, 00108 oski_index_t i0, oski_index_t j0, oski_index_t R, 00109 oski_index_t C, oski_vecstruct_t * y); 00110 00119 extern const oski_vecview_t SYMBOLIC_VEC; 00120 00122 extern const oski_vecview_t SYMBOLIC_MULTIVEC; 00125 #endif /* !defined(INC_OSKI_VECVIEW_H) */ 00126 00127 #if defined(OSKI_UNBIND) 00128 # include <oski/vector.h> 00129 # undef INC_OSKI_VECVIEW_H 00130 # undef oski_vecview_t 00131 # undef SYMBOLIC_VEC 00132 # undef SYMBOLIC_MULTIVEC 00133 # undef oski_CreateVecView 00134 # undef oski_CreateMultiVecView 00135 # undef oski_DestroyVecView 00136 # undef oski_CopyVecView 00137 # undef oski_PrintDebugVecView 00138 # undef oski_CalcVecViewInfNorm 00139 # undef oski_CalcVecViewInfNormDiff 00140 # undef oski_InitSubVecView 00141 # undef STRIDE_UNIT 00142 #endif 00143 00144 /* eof */