BeBOP Optimized Sparse Kernel Interface Library
1.0.1h
|
00001 00007 #if !defined(INC_OSKI_CSR_MODULE_H) 00008 00009 #define INC_OSKI_CSR_MODULE_H 00010 00011 #include <oski/matmodexport.h> 00012 00013 #if defined(DO_NAME_MANGLING) 00014 00016 #define oski_WrapCSR MANGLE_MOD_(oski_WrapCSR) 00017 #define oski_CheckCSR MANGLE_MOD_(oski_CheckCSR) 00018 #define oski_StreamMatRepr MANGLE_MOD_(oski_StreamMatRepr) 00019 #define oski_SortIndices MANGLE_MOD_(oski_SortIndices) 00020 #define oski_ExpandCSRToFull MANGLE_MOD_(oski_ExpandCSRToFull) 00021 #define oski_ConditionallyExpandCSRToFull \ 00022 MANGLE_MOD_(oski_ConditionallyExpandCSRToFull) 00023 #define oski_ChangeIndexBase MANGLE_MOD_(oski_ChangeIndexBase) 00024 #define oski_TransposeCSR MANGLE_MOD_(oski_TransposeCSR) 00025 #define oski_CountZeroRowsCSR MANGLE_MOD_(oski_CountZeroRowsCSR) 00026 00027 #endif 00028 00033 int oski_CheckCSR (const oski_index_t * ptr, const oski_index_t * ind, 00034 oski_index_t m, oski_index_t n, 00035 oski_inmatpropset_t * props); 00036 00046 double oski_StreamMatRepr (const void *mat, const oski_matcommon_t * props); 00047 00052 oski_matCSR_t *oski_ExpandCSRToFull (const oski_matCSR_t * S, 00053 const oski_matcommon_t * props); 00054 00059 int oski_ConditionallyExpandCSRToFull (const oski_matCSR_t * S, 00060 const oski_matcommon_t * props, 00061 oski_matCSR_t ** p_mat_full); 00062 00066 void oski_ChangeIndexBase (oski_matCSR_t * A, 00067 const oski_matcommon_t * props, 00068 const oski_index_t new_base); 00069 00074 int oski_SortIndices (oski_matCSR_t * A, oski_index_t m); 00075 00080 oski_matCSR_t *oski_TransposeCSR (const oski_matCSR_t * A, 00081 const oski_matcommon_t * props); 00082 00087 oski_index_t oski_CountZeroRowsCSR (const oski_matCSR_t * A, 00088 const oski_matcommon_t * props); 00089 00094 00099 oski_matCSR_t *oski_WrapCSR (oski_matcommon_t * out_props, 00100 oski_index_t * Aptr, oski_index_t * Aind, 00101 oski_value_t * Aval, oski_index_t num_rows, 00102 oski_index_t num_cols, 00103 oski_inmatpropset_t * props, 00104 oski_copymode_t mode); 00107 #if defined(DO_NAME_MANGLING) 00108 00110 #define CSR_MatTrisolveLower MANGLE_(CSR_MatTrisolveLower) 00111 #define CSR_MatTransTrisolveLower MANGLE_(CSR_MatTransTrisolveLower) 00112 #define CSR_MatConjTrisolveLower MANGLE_(CSR_MatConjTrisolveLower) 00113 #define CSR_MatConjTransTrisolveLower MANGLE_(CSR_MatConjTransTrisolveLower) 00114 #define CSR_MatTrisolveUpper MANGLE_(CSR_MatTrisolveUpper) 00115 #define CSR_MatTransTrisolveUpper MANGLE_(CSR_MatTransTrisolveUpper) 00116 #define CSR_MatConjTrisolveUpper MANGLE_(CSR_MatConjTrisolveUpper) 00117 #define CSR_MatConjTransTrisolveUpper MANGLE_(CSR_MatConjTransTrisolveUpper) 00118 00119 #endif 00120 00123 void CSR_MatTrisolveLower (oski_index_t m, oski_index_t indbase, 00124 int is_unit, int is_sorted, 00125 const oski_index_t * ptr, const oski_index_t * ind, 00126 const oski_value_t * val, oski_value_t alpha, 00127 oski_value_t * x, oski_index_t num_vecs, 00128 oski_index_t rowinc, oski_index_t colinc); 00129 00130 void CSR_MatConjTrisolveLower (oski_index_t m, oski_index_t indbase, 00131 int is_unit, int is_sorted, 00132 const oski_index_t * ptr, 00133 const oski_index_t * ind, 00134 const oski_value_t * val, oski_value_t alpha, 00135 oski_value_t * x, oski_index_t num_vecs, 00136 oski_index_t rowinc, oski_index_t colinc); 00137 00138 void CSR_MatTransTrisolveLower (oski_index_t m, oski_index_t indbase, 00139 int is_unit, int is_sorted, 00140 const oski_index_t * ptr, 00141 const oski_index_t * ind, 00142 const oski_value_t * val, oski_value_t alpha, 00143 oski_value_t * x, oski_index_t num_vecs, 00144 oski_index_t rowinc, oski_index_t colinc); 00145 00146 void CSR_MatConjTransTrisolveLower (oski_index_t m, oski_index_t indbase, 00147 int is_unit, int is_sorted, 00148 const oski_index_t * ptr, 00149 const oski_index_t * ind, 00150 const oski_value_t * val, 00151 oski_value_t alpha, oski_value_t * x, 00152 oski_index_t num_vecs, 00153 oski_index_t rowinc, oski_index_t colinc); 00154 00155 void CSR_MatTrisolveUpper (oski_index_t m, oski_index_t indbase, 00156 int is_unit, int is_sorted, 00157 const oski_index_t * ptr, const oski_index_t * ind, 00158 const oski_value_t * val, oski_value_t alpha, 00159 oski_value_t * x, oski_index_t num_vecs, 00160 oski_index_t rowinc, oski_index_t colinc); 00161 00162 void CSR_MatTransTrisolveUpper (oski_index_t m, oski_index_t indbase, 00163 int is_unit, int is_sorted, 00164 const oski_index_t * ptr, 00165 const oski_index_t * ind, 00166 const oski_value_t * val, oski_value_t alpha, 00167 oski_value_t * x, oski_index_t num_vecs, 00168 oski_index_t rowinc, oski_index_t colinc); 00169 00170 void CSR_MatConjTrisolveUpper (oski_index_t m, oski_index_t indbase, 00171 int is_unit, int is_sorted, 00172 const oski_index_t * ptr, 00173 const oski_index_t * ind, 00174 const oski_value_t * val, oski_value_t alpha, 00175 oski_value_t * x, oski_index_t num_vecs, 00176 oski_index_t rowinc, oski_index_t colinc); 00177 00178 void CSR_MatConjTransTrisolveUpper (oski_index_t m, oski_index_t indbase, 00179 int is_unit, int is_sorted, 00180 const oski_index_t * ptr, 00181 const oski_index_t * ind, 00182 const oski_value_t * val, 00183 oski_value_t alpha, oski_value_t * x, 00184 oski_index_t num_vecs, 00185 oski_index_t rowinc, oski_index_t colinc); 00188 #endif 00189 00190 /* eof */