BeBOP Optimized Sparse Kernel Interface Library
1.0.1h
|
00001 00009 #if !defined(INC_UTIL_TESTVEC_H) 00010 00011 #define INC_UTIL_TESTVEC_H 00012 00013 #include <stdlib.h> 00014 00015 #include <oski/common.h> 00016 #include <oski/matrix.h> 00017 #include <oski/matcreate.h> 00018 #include <oski/vecview.h> 00019 00020 #if defined(DO_NAME_MANGLING) 00021 00023 #define testvec_Create MANGLE_(testvec_Create) 00024 #define testvec_CalcDataSize MANGLE_(testvec_CalcDataSize) 00025 #define testvec_Clone MANGLE_(testvec_Clone) 00026 #define testvec_Destroy MANGLE_(testvec_Destroy) 00027 00028 #define testmat_ChangeSizeDenseCSR \ 00029 MANGLE_(testmat_ChangeSizeDenseCSR) 00030 #define testmat_ChangeSizeDenseTriCSR \ 00031 MANGLE_(testmat_ChangeSizeDenseTriCSR) 00032 #define testmat_GenDenseCSR MANGLE_(testmat_GenDenseCSR) 00033 #define testmat_GenRandomCSR MANGLE_(testmat_GenRandomCSR) 00034 #define testmat_GenTriCSR MANGLE_(testmat_GenTriCSR) 00035 #define testmat_GenTriCSC MANGLE_(testmat_GenTriCSC) 00036 #define testmat_GenBlockedBandedCSR MANGLE_(testmat_GenBlockedBandedCSR) 00037 00038 #define check_MatMult_instance \ 00039 MANGLE_(check_MatMult_instance) 00040 #define check_MatTrisolve_instance \ 00041 MANGLE_(check_MatTrisolve_instance) 00042 #define check_MatTransMatMult_instance \ 00043 MANGLE_(check_MatTransMatMult_instance) 00044 #define check_MatMultAndMatTransMult_instance \ 00045 MANGLE_(check_MatMultAndMatTransMult_instance) 00046 00047 #define testmat_ChooseDim MANGLE_(testmat_ChooseDim) 00048 #define ChooseDivisible MANGLE_(ChooseDivisible) 00049 00050 #endif 00051 00056 oski_vecview_t testvec_Create (oski_index_t len, oski_index_t num_vecs, 00057 oski_storage_t orient, int use_minstride); 00058 00063 size_t testvec_CalcDataSize (const oski_vecview_t x); 00064 00068 oski_vecview_t testvec_Clone (const oski_vecview_t x); 00069 00073 void testvec_Destroy (oski_vecview_t x); 00074 00079 size_t testmat_ChooseDim (size_t nz_volume, size_t elem_size); 00080 00085 size_t ChooseDivisible (size_t n, size_t d); 00086 00092 void testmat_GenDenseCSR (oski_index_t m, oski_index_t n, 00093 oski_index_t ** p_ptr, oski_index_t ** p_ind, 00094 oski_value_t ** p_val); 00095 00100 void testmat_ChangeSizeDenseCSR (oski_index_t m_new, oski_index_t n_new, 00101 oski_index_t * ptr, oski_index_t * ind); 00102 00107 void testmat_ChangeSizeDenseTriCSR (oski_index_t n_new, 00108 int make_lower, int cond_for_trisolve, 00109 oski_index_t * ptr, oski_index_t * ind, 00110 oski_value_t * val); 00111 00117 void testmat_GenTriCSR (oski_index_t m, oski_index_t max_nnz_row, 00118 oski_inmatprop_t shape, int is_unitdiag, 00119 int is_sorted, int indbase, oski_index_t ** p_ptr, 00120 oski_index_t ** p_ind, oski_value_t ** p_val); 00121 00127 void testmat_GenTriCSC (oski_index_t m, oski_index_t max_nnz_row, 00128 oski_inmatprop_t shape, int is_unitdiag, 00129 int is_sorted, int indbase, oski_index_t ** p_ptr, 00130 oski_index_t ** p_ind, oski_value_t ** p_val); 00131 00136 void testmat_GenBlockedBandedCSR (oski_index_t k_min, oski_index_t row_min, 00137 oski_index_t r, oski_index_t c, 00138 oski_index_t * p_n, 00139 oski_index_t ** p_ptr, 00140 oski_index_t ** p_ind, 00141 oski_value_t ** p_val); 00145 int check_MatMult_instance (const oski_matrix_t A0, const oski_matrix_t A1, 00146 oski_matop_t opA, oski_value_t alpha, 00147 const oski_vecview_t x, oski_value_t beta, 00148 oski_vecview_t y0); 00149 00153 int check_MatTrisolve_instance (const oski_matrix_t T0, 00154 const oski_matrix_t T1, oski_matop_t opT, 00155 oski_value_t alpha, const oski_vecview_t b); 00156 00160 int check_MatTransMatMult_instance (const oski_matrix_t A0, 00161 const oski_matrix_t A1, oski_ataop_t opA, 00162 oski_value_t alpha, 00163 const oski_vecview_t x, oski_value_t beta, 00164 oski_vecview_t y0, oski_vecview_t t0); 00165 00170 int check_MatMultAndMatTransMult_instance (const oski_matrix_t A0, 00171 const oski_matrix_t A1, 00172 oski_value_t alpha, 00173 const oski_vecview_t x, 00174 oski_value_t beta, 00175 oski_vecview_t y, oski_matop_t opA, 00176 oski_value_t omega, 00177 const oski_vecview_t w, 00178 oski_value_t zeta, 00179 oski_vecview_t z); 00180 00185 oski_matrix_t testmat_GenRandomCSR (oski_index_t m, oski_index_t n, 00186 oski_index_t min_nnz_row, 00187 oski_index_t max_nnz_row, 00188 oski_inmatprop_t shape, 00189 int implicit_diag, int index_base, 00190 oski_copymode_t copymode, 00191 oski_index_t ** p_ptr, 00192 oski_index_t ** p_ind, 00193 oski_value_t ** p_val); 00194 00195 #endif 00196 00197 /* eof */