#pragma once

// level1

#define axpy_plain axpy_s_plain
#define gthr_plain gthr_s_plain
#define gthrz_plain gthrz_s_plain
#define rot_plain rot_s_plain
#define sctr_plain sctr_s_plain
#define doti_plain doti_s_plain

// coo
#define update_values_coo_plain update_values_s_coo_plain
#define set_value_coo_plain set_value_s_coo_plain

#define add_coo_plain add_s_coo_plain
#define add_coo_trans_plain add_s_coo_trans_plain

#define gemv_coo_plain gemv_s_coo_plain
#define gemv_coo_trans_plain gemv_s_coo_trans_plain
#define symv_coo_n_lo_plain symv_s_coo_n_lo_plain
#define symv_coo_u_lo_plain symv_s_coo_u_lo_plain
#define symv_coo_n_hi_plain symv_s_coo_n_hi_plain
#define symv_coo_u_hi_plain symv_s_coo_u_hi_plain
#define trmv_coo_n_lo_plain trmv_s_coo_n_lo_plain
#define trmv_coo_u_lo_plain trmv_s_coo_u_lo_plain
#define trmv_coo_n_hi_plain trmv_s_coo_n_hi_plain
#define trmv_coo_u_hi_plain trmv_s_coo_u_hi_plain
#define trmv_coo_n_lo_trans_plain trmv_s_coo_n_lo_trans_plain
#define trmv_coo_u_lo_trans_plain trmv_s_coo_u_lo_trans_plain
#define trmv_coo_n_hi_trans_plain trmv_s_coo_n_hi_trans_plain
#define trmv_coo_u_hi_trans_plain trmv_s_coo_u_hi_trans_plain
#define diagmv_coo_n_plain diagmv_s_coo_n_plain
#define diagmv_coo_u_plain diagmv_s_coo_u_plain

#define gemm_coo_row_plain gemm_s_coo_row_plain
#define gemm_coo_col_plain gemm_s_coo_col_plain
#define gemm_coo_row_trans_plain gemm_s_coo_row_trans_plain
#define gemm_coo_col_trans_plain gemm_s_coo_col_trans_plain
#define symm_coo_n_lo_row_plain symm_s_coo_n_lo_row_plain
#define symm_coo_u_lo_row_plain symm_s_coo_u_lo_row_plain
#define symm_coo_n_hi_row_plain symm_s_coo_n_hi_row_plain
#define symm_coo_u_hi_row_plain symm_s_coo_u_hi_row_plain
#define symm_coo_n_lo_col_plain symm_s_coo_n_lo_col_plain
#define symm_coo_u_lo_col_plain symm_s_coo_u_lo_col_plain
#define symm_coo_n_hi_col_plain symm_s_coo_n_hi_col_plain
#define symm_coo_u_hi_col_plain symm_s_coo_u_hi_col_plain
#define trmm_coo_n_lo_row_plain trmm_s_coo_n_lo_row_plain
#define trmm_coo_u_lo_row_plain trmm_s_coo_u_lo_row_plain
#define trmm_coo_n_hi_row_plain trmm_s_coo_n_hi_row_plain
#define trmm_coo_u_hi_row_plain trmm_s_coo_u_hi_row_plain
#define trmm_coo_n_lo_col_plain trmm_s_coo_n_lo_col_plain
#define trmm_coo_u_lo_col_plain trmm_s_coo_u_lo_col_plain
#define trmm_coo_n_hi_col_plain trmm_s_coo_n_hi_col_plain
#define trmm_coo_u_hi_col_plain trmm_s_coo_u_hi_col_plain
#define trmm_coo_n_lo_row_trans_plain trmm_s_coo_n_lo_row_trans_plain
#define trmm_coo_u_lo_row_trans_plain trmm_s_coo_u_lo_row_trans_plain
#define trmm_coo_n_hi_row_trans_plain trmm_s_coo_n_hi_row_trans_plain
#define trmm_coo_u_hi_row_trans_plain trmm_s_coo_u_hi_row_trans_plain
#define trmm_coo_n_lo_col_trans_plain trmm_s_coo_n_lo_col_trans_plain
#define trmm_coo_u_lo_col_trans_plain trmm_s_coo_u_lo_col_trans_plain
#define trmm_coo_n_hi_col_trans_plain trmm_s_coo_n_hi_col_trans_plain
#define trmm_coo_u_hi_col_trans_plain trmm_s_coo_u_hi_col_trans_plain
#define diagmm_coo_n_row_plain diagmm_s_coo_n_row_plain
#define diagmm_coo_u_row_plain diagmm_s_coo_u_row_plain
#define diagmm_coo_n_col_plain diagmm_s_coo_n_col_plain
#define diagmm_coo_u_col_plain diagmm_s_coo_u_col_plain

#define spmmd_coo_row_plain spmmd_s_coo_row_plain
#define spmmd_coo_col_plain spmmd_s_coo_col_plain
#define spmmd_coo_row_trans_plain spmmd_s_coo_row_trans_plain
#define spmmd_coo_col_trans_plain spmmd_s_coo_col_trans_plain

#define spmm_coo_plain spmm_s_coo_plain
#define spmm_coo_trans_plain spmm_s_coo_trans_plain

#define trsv_coo_n_lo_plain trsv_s_coo_n_lo_plain
#define trsv_coo_u_lo_plain trsv_s_coo_u_lo_plain
#define trsv_coo_n_hi_plain trsv_s_coo_n_hi_plain
#define trsv_coo_u_hi_plain trsv_s_coo_u_hi_plain
#define trsv_coo_n_lo_trans_plain trsv_s_coo_n_lo_trans_plain
#define trsv_coo_u_lo_trans_plain trsv_s_coo_u_lo_trans_plain
#define trsv_coo_n_hi_trans_plain trsv_s_coo_n_hi_trans_plain
#define trsv_coo_u_hi_trans_plain trsv_s_coo_u_hi_trans_plain
#define diagsv_coo_n_plain diagsv_s_coo_n_plain
#define diagsv_coo_u_plain diagsv_s_coo_u_plain

#define trsm_coo_n_lo_row_plain trsm_s_coo_n_lo_row_plain
#define trsm_coo_u_lo_row_plain trsm_s_coo_u_lo_row_plain
#define trsm_coo_n_hi_row_plain trsm_s_coo_n_hi_row_plain
#define trsm_coo_u_hi_row_plain trsm_s_coo_u_hi_row_plain
#define trsm_coo_n_lo_col_plain trsm_s_coo_n_lo_col_plain
#define trsm_coo_u_lo_col_plain trsm_s_coo_u_lo_col_plain
#define trsm_coo_n_hi_col_plain trsm_s_coo_n_hi_col_plain
#define trsm_coo_u_hi_col_plain trsm_s_coo_u_hi_col_plain
#define trsm_coo_n_lo_row_trans_plain trsm_s_coo_n_lo_row_trans_plain
#define trsm_coo_u_lo_row_trans_plain trsm_s_coo_u_lo_row_trans_plain
#define trsm_coo_n_hi_row_trans_plain trsm_s_coo_n_hi_row_trans_plain
#define trsm_coo_u_hi_row_trans_plain trsm_s_coo_u_hi_row_trans_plain
#define trsm_coo_n_lo_col_trans_plain trsm_s_coo_n_lo_col_trans_plain
#define trsm_coo_u_lo_col_trans_plain trsm_s_coo_u_lo_col_trans_plain
#define trsm_coo_n_hi_col_trans_plain trsm_s_coo_n_hi_col_trans_plain
#define trsm_coo_u_hi_col_trans_plain trsm_s_coo_u_hi_col_trans_plain
#define diagsm_coo_n_row_plain diagsm_s_coo_n_row_plain
#define diagsm_coo_u_row_plain diagsm_s_coo_u_row_plain
#define diagsm_coo_n_col_plain diagsm_s_coo_n_col_plain
#define diagsm_coo_u_col_plain diagsm_s_coo_u_col_plain

// csr
#define update_values_csr_plain update_values_s_csr_plain
#define set_value_csr_plain set_value_s_csr_plain

#define add_csr_plain add_s_csr_plain
#define add_csr_trans_plain add_s_csr_trans_plain
#define add_csr_conj_plain add_s_csr_conj_plain

#define gemv_csr_plain gemv_s_csr_plain
#define gemv_csr_trans_plain gemv_s_csr_trans_plain
#define gemv_csr_conj_plain gemv_s_csr_conj_plain
#define symv_csr_n_lo_plain symv_s_csr_n_lo_plain
#define symv_csr_u_lo_plain symv_s_csr_u_lo_plain
#define symv_csr_n_hi_plain symv_s_csr_n_hi_plain
#define symv_csr_u_hi_plain symv_s_csr_u_hi_plain
#define trmv_csr_n_lo_plain trmv_s_csr_n_lo_plain
#define trmv_csr_u_lo_plain trmv_s_csr_u_lo_plain
#define trmv_csr_n_hi_plain trmv_s_csr_n_hi_plain
#define trmv_csr_u_hi_plain trmv_s_csr_u_hi_plain
#define trmv_csr_n_lo_trans_plain trmv_s_csr_n_lo_trans_plain
#define trmv_csr_u_lo_trans_plain trmv_s_csr_u_lo_trans_plain
#define trmv_csr_n_hi_trans_plain trmv_s_csr_n_hi_trans_plain
#define trmv_csr_u_hi_trans_plain trmv_s_csr_u_hi_trans_plain
#define trmv_csr_n_lo_conj_plain trmv_s_csr_n_lo_conj_plain
#define trmv_csr_u_lo_conj_plain trmv_s_csr_u_lo_conj_plain
#define trmv_csr_n_hi_conj_plain trmv_s_csr_n_hi_conj_plain
#define trmv_csr_u_hi_conj_plain trmv_s_csr_u_hi_conj_plain
#define diagmv_csr_n_plain diagmv_s_csr_n_plain
#define diagmv_csr_u_plain diagmv_s_csr_u_plain

#define gemm_csr_row_plain gemm_s_csr_row_plain
#define gemm_csr_col_plain gemm_s_csr_col_plain
#define gemm_csr_row_trans_plain gemm_s_csr_row_trans_plain
#define gemm_csr_col_trans_plain gemm_s_csr_col_trans_plain
// #define gemm_csr_row_conj_plain gemm_s_csr_row_conj_plain
// #define gemm_csr_col_conj_plain gemm_s_csr_col_conj_plain
#define symm_csr_n_lo_row_plain symm_s_csr_n_lo_row_plain
#define symm_csr_u_lo_row_plain symm_s_csr_u_lo_row_plain
#define symm_csr_n_hi_row_plain symm_s_csr_n_hi_row_plain
#define symm_csr_u_hi_row_plain symm_s_csr_u_hi_row_plain
#define symm_csr_n_lo_col_plain symm_s_csr_n_lo_col_plain
#define symm_csr_u_lo_col_plain symm_s_csr_u_lo_col_plain
#define symm_csr_n_hi_col_plain symm_s_csr_n_hi_col_plain
#define symm_csr_u_hi_col_plain symm_s_csr_u_hi_col_plain
#define trmm_csr_n_lo_row_plain trmm_s_csr_n_lo_row_plain
#define trmm_csr_u_lo_row_plain trmm_s_csr_u_lo_row_plain
#define trmm_csr_n_hi_row_plain trmm_s_csr_n_hi_row_plain
#define trmm_csr_u_hi_row_plain trmm_s_csr_u_hi_row_plain
#define trmm_csr_n_lo_col_plain trmm_s_csr_n_lo_col_plain
#define trmm_csr_u_lo_col_plain trmm_s_csr_u_lo_col_plain
#define trmm_csr_n_hi_col_plain trmm_s_csr_n_hi_col_plain
#define trmm_csr_u_hi_col_plain trmm_s_csr_u_hi_col_plain
#define trmm_csr_n_lo_row_trans_plain trmm_s_csr_n_lo_row_trans_plain
#define trmm_csr_u_lo_row_trans_plain trmm_s_csr_u_lo_row_trans_plain
#define trmm_csr_n_hi_row_trans_plain trmm_s_csr_n_hi_row_trans_plain
#define trmm_csr_u_hi_row_trans_plain trmm_s_csr_u_hi_row_trans_plain
#define trmm_csr_n_lo_col_trans_plain trmm_s_csr_n_lo_col_trans_plain
#define trmm_csr_u_lo_col_trans_plain trmm_s_csr_u_lo_col_trans_plain
#define trmm_csr_n_hi_col_trans_plain trmm_s_csr_n_hi_col_trans_plain
#define trmm_csr_u_hi_col_trans_plain trmm_s_csr_u_hi_col_trans_plain
#define trmm_csr_n_lo_row_conj_plain trmm_s_csr_n_lo_row_conj_plain
#define trmm_csr_u_lo_row_conj_plain trmm_s_csr_u_lo_row_conj_plain
#define trmm_csr_n_hi_row_conj_plain trmm_s_csr_n_hi_row_conj_plain
#define trmm_csr_u_hi_row_conj_plain trmm_s_csr_u_hi_row_conj_plain
#define trmm_csr_n_lo_col_conj_plain trmm_s_csr_n_lo_col_conj_plain
#define trmm_csr_u_lo_col_conj_plain trmm_s_csr_u_lo_col_conj_plain
#define trmm_csr_n_hi_col_conj_plain trmm_s_csr_n_hi_col_conj_plain
#define trmm_csr_u_hi_col_conj_plain trmm_s_csr_u_hi_col_conj_plain
#define diagmm_csr_n_row_plain diagmm_s_csr_n_row_plain
#define diagmm_csr_u_row_plain diagmm_s_csr_u_row_plain
#define diagmm_csr_n_col_plain diagmm_s_csr_n_col_plain
#define diagmm_csr_u_col_plain diagmm_s_csr_u_col_plain

#define spmmd_csr_row_plain spmmd_s_csr_row_plain
#define spmmd_csr_col_plain spmmd_s_csr_col_plain
#define spmmd_csr_row_trans_plain spmmd_s_csr_row_trans_plain
#define spmmd_csr_col_trans_plain spmmd_s_csr_col_trans_plain
#define spmmd_csr_row_conj_plain spmmd_s_csr_row_conj_plain
#define spmmd_csr_col_conj_plain spmmd_s_csr_col_conj_plain

#define spmm_csr_plain spmm_s_csr_plain
#define spmm_csr_trans_plain spmm_s_csr_trans_plain
#define spmm_csr_conj_plain spmm_s_csr_conj_plain

#define trsv_csr_n_lo_plain trsv_s_csr_n_lo_plain
#define trsv_csr_u_lo_plain trsv_s_csr_u_lo_plain
#define trsv_csr_n_hi_plain trsv_s_csr_n_hi_plain
#define trsv_csr_u_hi_plain trsv_s_csr_u_hi_plain
#define trsv_csr_n_lo_trans_plain trsv_s_csr_n_lo_trans_plain
#define trsv_csr_u_lo_trans_plain trsv_s_csr_u_lo_trans_plain
#define trsv_csr_n_hi_trans_plain trsv_s_csr_n_hi_trans_plain
#define trsv_csr_u_hi_trans_plain trsv_s_csr_u_hi_trans_plain
#define trsv_csr_n_lo_conj_plain trsv_s_csr_n_lo_conj_plain
#define trsv_csr_u_lo_conj_plain trsv_s_csr_u_lo_conj_plain
#define trsv_csr_n_hi_conj_plain trsv_s_csr_n_hi_conj_plain
#define trsv_csr_u_hi_conj_plain trsv_s_csr_u_hi_conj_plain
#define diagsv_csr_n_plain diagsv_s_csr_n_plain
#define diagsv_csr_u_plain diagsv_s_csr_u_plain

#define trsm_csr_n_lo_row_plain trsm_s_csr_n_lo_row_plain
#define trsm_csr_u_lo_row_plain trsm_s_csr_u_lo_row_plain
#define trsm_csr_n_hi_row_plain trsm_s_csr_n_hi_row_plain
#define trsm_csr_u_hi_row_plain trsm_s_csr_u_hi_row_plain
#define trsm_csr_n_lo_col_plain trsm_s_csr_n_lo_col_plain
#define trsm_csr_u_lo_col_plain trsm_s_csr_u_lo_col_plain
#define trsm_csr_n_hi_col_plain trsm_s_csr_n_hi_col_plain
#define trsm_csr_u_hi_col_plain trsm_s_csr_u_hi_col_plain
#define trsm_csr_n_lo_row_trans_plain trsm_s_csr_n_lo_row_trans_plain
#define trsm_csr_u_lo_row_trans_plain trsm_s_csr_u_lo_row_trans_plain
#define trsm_csr_n_hi_row_trans_plain trsm_s_csr_n_hi_row_trans_plain
#define trsm_csr_u_hi_row_trans_plain trsm_s_csr_u_hi_row_trans_plain
#define trsm_csr_n_lo_col_trans_plain trsm_s_csr_n_lo_col_trans_plain
#define trsm_csr_u_lo_col_trans_plain trsm_s_csr_u_lo_col_trans_plain
#define trsm_csr_n_hi_col_trans_plain trsm_s_csr_n_hi_col_trans_plain
#define trsm_csr_u_hi_col_trans_plain trsm_s_csr_u_hi_col_trans_plain
#define trsm_csr_n_lo_row_conj_plain trsm_s_csr_n_lo_row_conj_plain
#define trsm_csr_u_lo_row_conj_plain trsm_s_csr_u_lo_row_conj_plain
#define trsm_csr_n_hi_row_conj_plain trsm_s_csr_n_hi_row_conj_plain
#define trsm_csr_u_hi_row_conj_plain trsm_s_csr_u_hi_row_conj_plain
#define trsm_csr_n_lo_col_conj_plain trsm_s_csr_n_lo_col_conj_plain
#define trsm_csr_u_lo_col_conj_plain trsm_s_csr_u_lo_col_conj_plain
#define trsm_csr_n_hi_col_conj_plain trsm_s_csr_n_hi_col_conj_plain
#define trsm_csr_u_hi_col_conj_plain trsm_s_csr_u_hi_col_conj_plain
#define diagsm_csr_n_row_plain diagsm_s_csr_n_row_plain
#define diagsm_csr_u_row_plain diagsm_s_csr_u_row_plain
#define diagsm_csr_n_col_plain diagsm_s_csr_n_col_plain
#define diagsm_csr_u_col_plain diagsm_s_csr_u_col_plain

// csc
#define update_values_csc_plain update_values_s_csc_plain
#define set_value_csc_plain set_value_s_csc_plain

#define add_csc_plain add_s_csc_plain
#define add_csc_trans_plain add_s_csc_trans_plain

#define gemv_csc_plain gemv_s_csc_plain
#define gemv_csc_trans_plain gemv_s_csc_trans_plain
#define symv_csc_n_lo_plain symv_s_csc_n_lo_plain
#define symv_csc_u_lo_plain symv_s_csc_u_lo_plain
#define symv_csc_n_hi_plain symv_s_csc_n_hi_plain
#define symv_csc_u_hi_plain symv_s_csc_u_hi_plain
#define trmv_csc_n_lo_plain trmv_s_csc_n_lo_plain
#define trmv_csc_u_lo_plain trmv_s_csc_u_lo_plain
#define trmv_csc_n_hi_plain trmv_s_csc_n_hi_plain
#define trmv_csc_u_hi_plain trmv_s_csc_u_hi_plain
#define trmv_csc_n_lo_trans_plain trmv_s_csc_n_lo_trans_plain
#define trmv_csc_u_lo_trans_plain trmv_s_csc_u_lo_trans_plain
#define trmv_csc_n_hi_trans_plain trmv_s_csc_n_hi_trans_plain
#define trmv_csc_u_hi_trans_plain trmv_s_csc_u_hi_trans_plain
#define diagmv_csc_n_plain diagmv_s_csc_n_plain
#define diagmv_csc_u_plain diagmv_s_csc_u_plain

#define gemm_csc_row_plain gemm_s_csc_row_plain
#define gemm_csc_col_plain gemm_s_csc_col_plain
#define gemm_csc_row_trans_plain gemm_s_csc_row_trans_plain
#define gemm_csc_col_trans_plain gemm_s_csc_col_trans_plain
#define symm_csc_n_lo_row_plain symm_s_csc_n_lo_row_plain
#define symm_csc_u_lo_row_plain symm_s_csc_u_lo_row_plain
#define symm_csc_n_hi_row_plain symm_s_csc_n_hi_row_plain
#define symm_csc_u_hi_row_plain symm_s_csc_u_hi_row_plain
#define symm_csc_n_lo_col_plain symm_s_csc_n_lo_col_plain
#define symm_csc_u_lo_col_plain symm_s_csc_u_lo_col_plain
#define symm_csc_n_hi_col_plain symm_s_csc_n_hi_col_plain
#define symm_csc_u_hi_col_plain symm_s_csc_u_hi_col_plain
#define trmm_csc_n_lo_row_plain trmm_s_csc_n_lo_row_plain
#define trmm_csc_u_lo_row_plain trmm_s_csc_u_lo_row_plain
#define trmm_csc_n_hi_row_plain trmm_s_csc_n_hi_row_plain
#define trmm_csc_u_hi_row_plain trmm_s_csc_u_hi_row_plain
#define trmm_csc_n_lo_col_plain trmm_s_csc_n_lo_col_plain
#define trmm_csc_u_lo_col_plain trmm_s_csc_u_lo_col_plain
#define trmm_csc_n_hi_col_plain trmm_s_csc_n_hi_col_plain
#define trmm_csc_u_hi_col_plain trmm_s_csc_u_hi_col_plain
#define trmm_csc_n_lo_row_trans_plain trmm_s_csc_n_lo_row_trans_plain
#define trmm_csc_u_lo_row_trans_plain trmm_s_csc_u_lo_row_trans_plain
#define trmm_csc_n_hi_row_trans_plain trmm_s_csc_n_hi_row_trans_plain
#define trmm_csc_u_hi_row_trans_plain trmm_s_csc_u_hi_row_trans_plain
#define trmm_csc_n_lo_col_trans_plain trmm_s_csc_n_lo_col_trans_plain
#define trmm_csc_u_lo_col_trans_plain trmm_s_csc_u_lo_col_trans_plain
#define trmm_csc_n_hi_col_trans_plain trmm_s_csc_n_hi_col_trans_plain
#define trmm_csc_u_hi_col_trans_plain trmm_s_csc_u_hi_col_trans_plain
#define diagmm_csc_n_row_plain diagmm_s_csc_n_row_plain
#define diagmm_csc_u_row_plain diagmm_s_csc_u_row_plain
#define diagmm_csc_n_col_plain diagmm_s_csc_n_col_plain
#define diagmm_csc_u_col_plain diagmm_s_csc_u_col_plain

#define spmmd_csc_row_plain spmmd_s_csc_row_plain
#define spmmd_csc_col_plain spmmd_s_csc_col_plain
#define spmmd_csc_row_trans_plain spmmd_s_csc_row_trans_plain
#define spmmd_csc_col_trans_plain spmmd_s_csc_col_trans_plain

#define spmm_csc_plain spmm_s_csc_plain
#define spmm_csc_trans_plain spmm_s_csc_trans_plain

#define trsv_csc_n_lo_plain trsv_s_csc_n_lo_plain
#define trsv_csc_u_lo_plain trsv_s_csc_u_lo_plain
#define trsv_csc_n_hi_plain trsv_s_csc_n_hi_plain
#define trsv_csc_u_hi_plain trsv_s_csc_u_hi_plain
#define trsv_csc_n_lo_trans_plain trsv_s_csc_n_lo_trans_plain
#define trsv_csc_u_lo_trans_plain trsv_s_csc_u_lo_trans_plain
#define trsv_csc_n_hi_trans_plain trsv_s_csc_n_hi_trans_plain
#define trsv_csc_u_hi_trans_plain trsv_s_csc_u_hi_trans_plain
#define diagsv_csc_n_plain diagsv_s_csc_n_plain
#define diagsv_csc_u_plain diagsv_s_csc_u_plain

#define trsm_csc_n_lo_row_plain trsm_s_csc_n_lo_row_plain
#define trsm_csc_u_lo_row_plain trsm_s_csc_u_lo_row_plain
#define trsm_csc_n_hi_row_plain trsm_s_csc_n_hi_row_plain
#define trsm_csc_u_hi_row_plain trsm_s_csc_u_hi_row_plain
#define trsm_csc_n_lo_col_plain trsm_s_csc_n_lo_col_plain
#define trsm_csc_u_lo_col_plain trsm_s_csc_u_lo_col_plain
#define trsm_csc_n_hi_col_plain trsm_s_csc_n_hi_col_plain
#define trsm_csc_u_hi_col_plain trsm_s_csc_u_hi_col_plain
#define trsm_csc_n_lo_row_trans_plain trsm_s_csc_n_lo_row_trans_plain
#define trsm_csc_u_lo_row_trans_plain trsm_s_csc_u_lo_row_trans_plain
#define trsm_csc_n_hi_row_trans_plain trsm_s_csc_n_hi_row_trans_plain
#define trsm_csc_u_hi_row_trans_plain trsm_s_csc_u_hi_row_trans_plain
#define trsm_csc_n_lo_col_trans_plain trsm_s_csc_n_lo_col_trans_plain
#define trsm_csc_u_lo_col_trans_plain trsm_s_csc_u_lo_col_trans_plain
#define trsm_csc_n_hi_col_trans_plain trsm_s_csc_n_hi_col_trans_plain
#define trsm_csc_u_hi_col_trans_plain trsm_s_csc_u_hi_col_trans_plain
#define diagsm_csc_n_row_plain diagsm_s_csc_n_row_plain
#define diagsm_csc_u_row_plain diagsm_s_csc_u_row_plain
#define diagsm_csc_n_col_plain diagsm_s_csc_n_col_plain
#define diagsm_csc_u_col_plain diagsm_s_csc_u_col_plain

// bsr 
#define update_values_bsr_plain update_values_s_bsr_plain
#define set_value_bsr_plain set_value_s_bsr_plain

#define add_bsr_plain add_s_bsr_plain
#define add_bsr_trans_plain add_s_bsr_trans_plain

#define gemv_bsr_plain gemv_s_bsr_plain
#define gemv_bsr_trans_plain gemv_s_bsr_trans_plain
#define symv_bsr_n_lo_plain symv_s_bsr_n_lo_plain
#define symv_bsr_u_lo_plain symv_s_bsr_u_lo_plain
#define symv_bsr_n_hi_plain symv_s_bsr_n_hi_plain
#define symv_bsr_u_hi_plain symv_s_bsr_u_hi_plain
#define trmv_bsr_n_lo_plain trmv_s_bsr_n_lo_plain
#define trmv_bsr_u_lo_plain trmv_s_bsr_u_lo_plain
#define trmv_bsr_n_hi_plain trmv_s_bsr_n_hi_plain
#define trmv_bsr_u_hi_plain trmv_s_bsr_u_hi_plain
#define trmv_bsr_n_lo_trans_plain trmv_s_bsr_n_lo_trans_plain
#define trmv_bsr_u_lo_trans_plain trmv_s_bsr_u_lo_trans_plain
#define trmv_bsr_n_hi_trans_plain trmv_s_bsr_n_hi_trans_plain
#define trmv_bsr_u_hi_trans_plain trmv_s_bsr_u_hi_trans_plain
#define diagmv_bsr_n_plain diagmv_s_bsr_n_plain
#define diagmv_bsr_u_plain diagmv_s_bsr_u_plain

#define gemm_bsr_row_plain gemm_s_bsr_row_plain
#define gemm_bsr_col_plain gemm_s_bsr_col_plain
#define gemm_bsr_row_trans_plain gemm_s_bsr_row_trans_plain
#define gemm_bsr_col_trans_plain gemm_s_bsr_col_trans_plain
#define symm_bsr_n_lo_row_plain symm_s_bsr_n_lo_row_plain
#define symm_bsr_u_lo_row_plain symm_s_bsr_u_lo_row_plain
#define symm_bsr_n_hi_row_plain symm_s_bsr_n_hi_row_plain
#define symm_bsr_u_hi_row_plain symm_s_bsr_u_hi_row_plain
#define symm_bsr_n_lo_col_plain symm_s_bsr_n_lo_col_plain
#define symm_bsr_u_lo_col_plain symm_s_bsr_u_lo_col_plain
#define symm_bsr_n_hi_col_plain symm_s_bsr_n_hi_col_plain
#define symm_bsr_u_hi_col_plain symm_s_bsr_u_hi_col_plain
#define trmm_bsr_n_lo_row_plain trmm_s_bsr_n_lo_row_plain
#define trmm_bsr_u_lo_row_plain trmm_s_bsr_u_lo_row_plain
#define trmm_bsr_n_hi_row_plain trmm_s_bsr_n_hi_row_plain
#define trmm_bsr_u_hi_row_plain trmm_s_bsr_u_hi_row_plain
#define trmm_bsr_n_lo_col_plain trmm_s_bsr_n_lo_col_plain
#define trmm_bsr_u_lo_col_plain trmm_s_bsr_u_lo_col_plain
#define trmm_bsr_n_hi_col_plain trmm_s_bsr_n_hi_col_plain
#define trmm_bsr_u_hi_col_plain trmm_s_bsr_u_hi_col_plain
#define trmm_bsr_n_lo_row_trans_plain trmm_s_bsr_n_lo_row_trans_plain
#define trmm_bsr_u_lo_row_trans_plain trmm_s_bsr_u_lo_row_trans_plain
#define trmm_bsr_n_hi_row_trans_plain trmm_s_bsr_n_hi_row_trans_plain
#define trmm_bsr_u_hi_row_trans_plain trmm_s_bsr_u_hi_row_trans_plain
#define trmm_bsr_n_lo_col_trans_plain trmm_s_bsr_n_lo_col_trans_plain
#define trmm_bsr_u_lo_col_trans_plain trmm_s_bsr_u_lo_col_trans_plain
#define trmm_bsr_n_hi_col_trans_plain trmm_s_bsr_n_hi_col_trans_plain
#define trmm_bsr_u_hi_col_trans_plain trmm_s_bsr_u_hi_col_trans_plain
#define diagmm_bsr_n_row_plain diagmm_s_bsr_n_row_plain
#define diagmm_bsr_u_row_plain diagmm_s_bsr_u_row_plain
#define diagmm_bsr_n_col_plain diagmm_s_bsr_n_col_plain
#define diagmm_bsr_u_col_plain diagmm_s_bsr_u_col_plain

#define spmmd_bsr_row_plain spmmd_s_bsr_row_plain
#define spmmd_bsr_col_plain spmmd_s_bsr_col_plain
#define spmmd_bsr_row_trans_plain spmmd_s_bsr_row_trans_plain
#define spmmd_bsr_col_trans_plain spmmd_s_bsr_col_trans_plain

#define spmm_bsr_plain spmm_s_bsr_plain
#define spmm_bsr_trans_plain spmm_s_bsr_trans_plain

#define trsv_bsr_n_lo_plain trsv_s_bsr_n_lo_plain
#define trsv_bsr_u_lo_plain trsv_s_bsr_u_lo_plain
#define trsv_bsr_n_hi_plain trsv_s_bsr_n_hi_plain
#define trsv_bsr_u_hi_plain trsv_s_bsr_u_hi_plain
#define trsv_bsr_n_lo_trans_plain trsv_s_bsr_n_lo_trans_plain
#define trsv_bsr_u_lo_trans_plain trsv_s_bsr_u_lo_trans_plain
#define trsv_bsr_n_hi_trans_plain trsv_s_bsr_n_hi_trans_plain
#define trsv_bsr_u_hi_trans_plain trsv_s_bsr_u_hi_trans_plain
#define diagsv_bsr_n_plain diagsv_s_bsr_n_plain
#define diagsv_bsr_u_plain diagsv_s_bsr_u_plain

#define trsm_bsr_n_lo_row_plain trsm_s_bsr_n_lo_row_plain
#define trsm_bsr_u_lo_row_plain trsm_s_bsr_u_lo_row_plain
#define trsm_bsr_n_hi_row_plain trsm_s_bsr_n_hi_row_plain
#define trsm_bsr_u_hi_row_plain trsm_s_bsr_u_hi_row_plain
#define trsm_bsr_n_lo_col_plain trsm_s_bsr_n_lo_col_plain
#define trsm_bsr_u_lo_col_plain trsm_s_bsr_u_lo_col_plain
#define trsm_bsr_n_hi_col_plain trsm_s_bsr_n_hi_col_plain
#define trsm_bsr_u_hi_col_plain trsm_s_bsr_u_hi_col_plain
#define trsm_bsr_n_lo_row_trans_plain trsm_s_bsr_n_lo_row_trans_plain
#define trsm_bsr_u_lo_row_trans_plain trsm_s_bsr_u_lo_row_trans_plain
#define trsm_bsr_n_hi_row_trans_plain trsm_s_bsr_n_hi_row_trans_plain
#define trsm_bsr_u_hi_row_trans_plain trsm_s_bsr_u_hi_row_trans_plain
#define trsm_bsr_n_lo_col_trans_plain trsm_s_bsr_n_lo_col_trans_plain
#define trsm_bsr_u_lo_col_trans_plain trsm_s_bsr_u_lo_col_trans_plain
#define trsm_bsr_n_hi_col_trans_plain trsm_s_bsr_n_hi_col_trans_plain
#define trsm_bsr_u_hi_col_trans_plain trsm_s_bsr_u_hi_col_trans_plain
#define diagsm_bsr_n_row_plain diagsm_s_bsr_n_row_plain
#define diagsm_bsr_u_row_plain diagsm_s_bsr_u_row_plain
#define diagsm_bsr_n_col_plain diagsm_s_bsr_n_col_plain
#define diagsm_bsr_u_col_plain diagsm_s_bsr_u_col_plain




#define add_bsr_plain add_s_bsr_plain
#define add_bsr_trans_plain add_s_bsr_trans_plain

#define gemv_bsr_plain gemv_s_bsr_plain
#define gemv_bsr_trans_plain gemv_s_bsr_trans_plain
#define symv_bsr_n_lo_plain symv_s_bsr_n_lo_plain
#define symv_bsr_u_lo_plain symv_s_bsr_u_lo_plain
#define symv_bsr_n_hi_plain symv_s_bsr_n_hi_plain
#define symv_bsr_u_hi_plain symv_s_bsr_u_hi_plain
#define trmv_bsr_n_lo_plain trmv_s_bsr_n_lo_plain
#define trmv_bsr_u_lo_plain trmv_s_bsr_u_lo_plain
#define trmv_bsr_n_hi_plain trmv_s_bsr_n_hi_plain
#define trmv_bsr_u_hi_plain trmv_s_bsr_u_hi_plain
#define trmv_bsr_n_lo_trans_plain trmv_s_bsr_n_lo_trans_plain
#define trmv_bsr_u_lo_trans_plain trmv_s_bsr_u_lo_trans_plain
#define trmv_bsr_n_hi_trans_plain trmv_s_bsr_n_hi_trans_plain
#define trmv_bsr_u_hi_trans_plain trmv_s_bsr_u_hi_trans_plain
#define diagmv_bsr_n_plain diagmv_s_bsr_n_plain
#define diagmv_bsr_u_plain diagmv_s_bsr_u_plain

#define gemm_bsr_row_plain gemm_s_bsr_row_plain
#define gemm_bsr_col_plain gemm_s_bsr_col_plain
#define gemm_bsr_row_trans_plain gemm_s_bsr_row_trans_plain
#define gemm_bsr_col_trans_plain gemm_s_bsr_col_trans_plain
#define symm_bsr_n_lo_row_plain symm_s_bsr_n_lo_row_plain
#define symm_bsr_u_lo_row_plain symm_s_bsr_u_lo_row_plain
#define symm_bsr_n_hi_row_plain symm_s_bsr_n_hi_row_plain
#define symm_bsr_u_hi_row_plain symm_s_bsr_u_hi_row_plain
#define symm_bsr_n_lo_col_plain symm_s_bsr_n_lo_col_plain
#define symm_bsr_u_lo_col_plain symm_s_bsr_u_lo_col_plain
#define symm_bsr_n_hi_col_plain symm_s_bsr_n_hi_col_plain
#define symm_bsr_u_hi_col_plain symm_s_bsr_u_hi_col_plain
#define trmm_bsr_n_lo_row_plain trmm_s_bsr_n_lo_row_plain
#define trmm_bsr_u_lo_row_plain trmm_s_bsr_u_lo_row_plain
#define trmm_bsr_n_hi_row_plain trmm_s_bsr_n_hi_row_plain
#define trmm_bsr_u_hi_row_plain trmm_s_bsr_u_hi_row_plain
#define trmm_bsr_n_lo_col_plain trmm_s_bsr_n_lo_col_plain
#define trmm_bsr_u_lo_col_plain trmm_s_bsr_u_lo_col_plain
#define trmm_bsr_n_hi_col_plain trmm_s_bsr_n_hi_col_plain
#define trmm_bsr_u_hi_col_plain trmm_s_bsr_u_hi_col_plain
#define trmm_bsr_n_lo_row_trans_plain trmm_s_bsr_n_lo_row_trans_plain
#define trmm_bsr_u_lo_row_trans_plain trmm_s_bsr_u_lo_row_trans_plain
#define trmm_bsr_n_hi_row_trans_plain trmm_s_bsr_n_hi_row_trans_plain
#define trmm_bsr_u_hi_row_trans_plain trmm_s_bsr_u_hi_row_trans_plain
#define trmm_bsr_n_lo_col_trans_plain trmm_s_bsr_n_lo_col_trans_plain
#define trmm_bsr_u_lo_col_trans_plain trmm_s_bsr_u_lo_col_trans_plain
#define trmm_bsr_n_hi_col_trans_plain trmm_s_bsr_n_hi_col_trans_plain
#define trmm_bsr_u_hi_col_trans_plain trmm_s_bsr_u_hi_col_trans_plain
#define diagmm_bsr_n_row_plain diagmm_s_bsr_n_row_plain
#define diagmm_bsr_u_row_plain diagmm_s_bsr_u_row_plain
#define diagmm_bsr_n_col_plain diagmm_s_bsr_n_col_plain
#define diagmm_bsr_u_col_plain diagmm_s_bsr_u_col_plain

#define spmmd_bsr_row_plain spmmd_s_bsr_row_plain
#define spmmd_bsr_col_plain spmmd_s_bsr_col_plain
#define spmmd_bsr_row_trans_plain spmmd_s_bsr_row_trans_plain
#define spmmd_bsr_col_trans_plain spmmd_s_bsr_col_trans_plain

#define spmm_bsr_plain spmm_s_bsr_plain
#define spmm_bsr_trans_plain spmm_s_bsr_trans_plain

#define trsv_bsr_n_lo_plain trsv_s_bsr_n_lo_plain
#define trsv_bsr_u_lo_plain trsv_s_bsr_u_lo_plain
#define trsv_bsr_n_hi_plain trsv_s_bsr_n_hi_plain
#define trsv_bsr_u_hi_plain trsv_s_bsr_u_hi_plain
#define trsv_bsr_n_lo_trans_plain trsv_s_bsr_n_lo_trans_plain
#define trsv_bsr_u_lo_trans_plain trsv_s_bsr_u_lo_trans_plain
#define trsv_bsr_n_hi_trans_plain trsv_s_bsr_n_hi_trans_plain
#define trsv_bsr_u_hi_trans_plain trsv_s_bsr_u_hi_trans_plain
#define diagsv_bsr_n_plain diagsv_s_bsr_n_plain
#define diagsv_bsr_u_plain diagsv_s_bsr_u_plain

#define trsm_bsr_n_lo_row_plain trsm_s_bsr_n_lo_row_plain
#define trsm_bsr_u_lo_row_plain trsm_s_bsr_u_lo_row_plain
#define trsm_bsr_n_hi_row_plain trsm_s_bsr_n_hi_row_plain
#define trsm_bsr_u_hi_row_plain trsm_s_bsr_u_hi_row_plain
#define trsm_bsr_n_lo_col_plain trsm_s_bsr_n_lo_col_plain
#define trsm_bsr_u_lo_col_plain trsm_s_bsr_u_lo_col_plain
#define trsm_bsr_n_hi_col_plain trsm_s_bsr_n_hi_col_plain
#define trsm_bsr_u_hi_col_plain trsm_s_bsr_u_hi_col_plain
#define trsm_bsr_n_lo_row_trans_plain trsm_s_bsr_n_lo_row_trans_plain
#define trsm_bsr_u_lo_row_trans_plain trsm_s_bsr_u_lo_row_trans_plain
#define trsm_bsr_n_hi_row_trans_plain trsm_s_bsr_n_hi_row_trans_plain
#define trsm_bsr_u_hi_row_trans_plain trsm_s_bsr_u_hi_row_trans_plain
#define trsm_bsr_n_lo_col_trans_plain trsm_s_bsr_n_lo_col_trans_plain
#define trsm_bsr_u_lo_col_trans_plain trsm_s_bsr_u_lo_col_trans_plain
#define trsm_bsr_n_hi_col_trans_plain trsm_s_bsr_n_hi_col_trans_plain
#define trsm_bsr_u_hi_col_trans_plain trsm_s_bsr_u_hi_col_trans_plain
#define diagsm_bsr_n_row_plain diagsm_s_bsr_n_row_plain
#define diagsm_bsr_u_row_plain diagsm_s_bsr_u_row_plain
#define diagsm_bsr_n_col_plain diagsm_s_bsr_n_col_plain
#define diagsm_bsr_u_col_plain diagsm_s_bsr_u_col_plain
#define add_bsr_plain add_s_bsr_plain
#define add_bsr_trans_plain add_s_bsr_trans_plain

#define gemv_bsr_plain gemv_s_bsr_plain
#define gemv_bsr_trans_plain gemv_s_bsr_trans_plain
#define symv_bsr_n_lo_plain symv_s_bsr_n_lo_plain
#define symv_bsr_u_lo_plain symv_s_bsr_u_lo_plain
#define symv_bsr_n_hi_plain symv_s_bsr_n_hi_plain
#define symv_bsr_u_hi_plain symv_s_bsr_u_hi_plain
#define trmv_bsr_n_lo_plain trmv_s_bsr_n_lo_plain
#define trmv_bsr_u_lo_plain trmv_s_bsr_u_lo_plain
#define trmv_bsr_n_hi_plain trmv_s_bsr_n_hi_plain
#define trmv_bsr_u_hi_plain trmv_s_bsr_u_hi_plain
#define trmv_bsr_n_lo_trans_plain trmv_s_bsr_n_lo_trans_plain
#define trmv_bsr_u_lo_trans_plain trmv_s_bsr_u_lo_trans_plain
#define trmv_bsr_n_hi_trans_plain trmv_s_bsr_n_hi_trans_plain
#define trmv_bsr_u_hi_trans_plain trmv_s_bsr_u_hi_trans_plain
#define diagmv_bsr_n_plain diagmv_s_bsr_n_plain
#define diagmv_bsr_u_plain diagmv_s_bsr_u_plain

#define gemm_bsr_row_plain gemm_s_bsr_row_plain
#define gemm_bsr_col_plain gemm_s_bsr_col_plain
#define gemm_bsr_row_trans_plain gemm_s_bsr_row_trans_plain
#define gemm_bsr_col_trans_plain gemm_s_bsr_col_trans_plain
#define symm_bsr_n_lo_row_plain symm_s_bsr_n_lo_row_plain
#define symm_bsr_u_lo_row_plain symm_s_bsr_u_lo_row_plain
#define symm_bsr_n_hi_row_plain symm_s_bsr_n_hi_row_plain
#define symm_bsr_u_hi_row_plain symm_s_bsr_u_hi_row_plain
#define symm_bsr_n_lo_col_plain symm_s_bsr_n_lo_col_plain
#define symm_bsr_u_lo_col_plain symm_s_bsr_u_lo_col_plain
#define symm_bsr_n_hi_col_plain symm_s_bsr_n_hi_col_plain
#define symm_bsr_u_hi_col_plain symm_s_bsr_u_hi_col_plain
#define trmm_bsr_n_lo_row_plain trmm_s_bsr_n_lo_row_plain
#define trmm_bsr_u_lo_row_plain trmm_s_bsr_u_lo_row_plain
#define trmm_bsr_n_hi_row_plain trmm_s_bsr_n_hi_row_plain
#define trmm_bsr_u_hi_row_plain trmm_s_bsr_u_hi_row_plain
#define trmm_bsr_n_lo_col_plain trmm_s_bsr_n_lo_col_plain
#define trmm_bsr_u_lo_col_plain trmm_s_bsr_u_lo_col_plain
#define trmm_bsr_n_hi_col_plain trmm_s_bsr_n_hi_col_plain
#define trmm_bsr_u_hi_col_plain trmm_s_bsr_u_hi_col_plain
#define trmm_bsr_n_lo_row_trans_plain trmm_s_bsr_n_lo_row_trans_plain
#define trmm_bsr_u_lo_row_trans_plain trmm_s_bsr_u_lo_row_trans_plain
#define trmm_bsr_n_hi_row_trans_plain trmm_s_bsr_n_hi_row_trans_plain
#define trmm_bsr_u_hi_row_trans_plain trmm_s_bsr_u_hi_row_trans_plain
#define trmm_bsr_n_lo_col_trans_plain trmm_s_bsr_n_lo_col_trans_plain
#define trmm_bsr_u_lo_col_trans_plain trmm_s_bsr_u_lo_col_trans_plain
#define trmm_bsr_n_hi_col_trans_plain trmm_s_bsr_n_hi_col_trans_plain
#define trmm_bsr_u_hi_col_trans_plain trmm_s_bsr_u_hi_col_trans_plain
#define diagmm_bsr_n_row_plain diagmm_s_bsr_n_row_plain
#define diagmm_bsr_u_row_plain diagmm_s_bsr_u_row_plain
#define diagmm_bsr_n_col_plain diagmm_s_bsr_n_col_plain
#define diagmm_bsr_u_col_plain diagmm_s_bsr_u_col_plain

#define spmmd_bsr_row_plain spmmd_s_bsr_row_plain
#define spmmd_bsr_col_plain spmmd_s_bsr_col_plain
#define spmmd_bsr_row_trans_plain spmmd_s_bsr_row_trans_plain
#define spmmd_bsr_col_trans_plain spmmd_s_bsr_col_trans_plain

#define spmm_bsr_plain spmm_s_bsr_plain
#define spmm_bsr_trans_plain spmm_s_bsr_trans_plain

#define trsv_bsr_n_lo_plain trsv_s_bsr_n_lo_plain
#define trsv_bsr_u_lo_plain trsv_s_bsr_u_lo_plain
#define trsv_bsr_n_hi_plain trsv_s_bsr_n_hi_plain
#define trsv_bsr_u_hi_plain trsv_s_bsr_u_hi_plain
#define trsv_bsr_n_lo_trans_plain trsv_s_bsr_n_lo_trans_plain
#define trsv_bsr_u_lo_trans_plain trsv_s_bsr_u_lo_trans_plain
#define trsv_bsr_n_hi_trans_plain trsv_s_bsr_n_hi_trans_plain
#define trsv_bsr_u_hi_trans_plain trsv_s_bsr_u_hi_trans_plain
#define diagsv_bsr_n_plain diagsv_s_bsr_n_plain
#define diagsv_bsr_u_plain diagsv_s_bsr_u_plain

#define trsm_bsr_n_lo_row_plain trsm_s_bsr_n_lo_row_plain
#define trsm_bsr_u_lo_row_plain trsm_s_bsr_u_lo_row_plain
#define trsm_bsr_n_hi_row_plain trsm_s_bsr_n_hi_row_plain
#define trsm_bsr_u_hi_row_plain trsm_s_bsr_u_hi_row_plain
#define trsm_bsr_n_lo_col_plain trsm_s_bsr_n_lo_col_plain
#define trsm_bsr_u_lo_col_plain trsm_s_bsr_u_lo_col_plain
#define trsm_bsr_n_hi_col_plain trsm_s_bsr_n_hi_col_plain
#define trsm_bsr_u_hi_col_plain trsm_s_bsr_u_hi_col_plain
#define trsm_bsr_n_lo_row_trans_plain trsm_s_bsr_n_lo_row_trans_plain
#define trsm_bsr_u_lo_row_trans_plain trsm_s_bsr_u_lo_row_trans_plain
#define trsm_bsr_n_hi_row_trans_plain trsm_s_bsr_n_hi_row_trans_plain
#define trsm_bsr_u_hi_row_trans_plain trsm_s_bsr_u_hi_row_trans_plain
#define trsm_bsr_n_lo_col_trans_plain trsm_s_bsr_n_lo_col_trans_plain
#define trsm_bsr_u_lo_col_trans_plain trsm_s_bsr_u_lo_col_trans_plain
#define trsm_bsr_n_hi_col_trans_plain trsm_s_bsr_n_hi_col_trans_plain
#define trsm_bsr_u_hi_col_trans_plain trsm_s_bsr_u_hi_col_trans_plain
#define diagsm_bsr_n_row_plain diagsm_s_bsr_n_row_plain
#define diagsm_bsr_u_row_plain diagsm_s_bsr_u_row_plain
#define diagsm_bsr_n_col_plain diagsm_s_bsr_n_col_plain
#define diagsm_bsr_u_col_plain diagsm_s_bsr_u_col_plain
#define add_bsr_plain add_s_bsr_plain
#define add_bsr_trans_plain add_s_bsr_trans_plain

#define gemv_bsr_plain gemv_s_bsr_plain
#define gemv_bsr_trans_plain gemv_s_bsr_trans_plain
#define symv_bsr_n_lo_plain symv_s_bsr_n_lo_plain
#define symv_bsr_u_lo_plain symv_s_bsr_u_lo_plain
#define symv_bsr_n_hi_plain symv_s_bsr_n_hi_plain
#define symv_bsr_u_hi_plain symv_s_bsr_u_hi_plain
#define trmv_bsr_n_lo_plain trmv_s_bsr_n_lo_plain
#define trmv_bsr_u_lo_plain trmv_s_bsr_u_lo_plain
#define trmv_bsr_n_hi_plain trmv_s_bsr_n_hi_plain
#define trmv_bsr_u_hi_plain trmv_s_bsr_u_hi_plain
#define trmv_bsr_n_lo_trans_plain trmv_s_bsr_n_lo_trans_plain
#define trmv_bsr_u_lo_trans_plain trmv_s_bsr_u_lo_trans_plain
#define trmv_bsr_n_hi_trans_plain trmv_s_bsr_n_hi_trans_plain
#define trmv_bsr_u_hi_trans_plain trmv_s_bsr_u_hi_trans_plain
#define diagmv_bsr_n_plain diagmv_s_bsr_n_plain
#define diagmv_bsr_u_plain diagmv_s_bsr_u_plain

#define gemm_bsr_row_plain gemm_s_bsr_row_plain
#define gemm_bsr_col_plain gemm_s_bsr_col_plain
#define gemm_bsr_row_trans_plain gemm_s_bsr_row_trans_plain
#define gemm_bsr_col_trans_plain gemm_s_bsr_col_trans_plain
#define symm_bsr_n_lo_row_plain symm_s_bsr_n_lo_row_plain
#define symm_bsr_u_lo_row_plain symm_s_bsr_u_lo_row_plain
#define symm_bsr_n_hi_row_plain symm_s_bsr_n_hi_row_plain
#define symm_bsr_u_hi_row_plain symm_s_bsr_u_hi_row_plain
#define symm_bsr_n_lo_col_plain symm_s_bsr_n_lo_col_plain
#define symm_bsr_u_lo_col_plain symm_s_bsr_u_lo_col_plain
#define symm_bsr_n_hi_col_plain symm_s_bsr_n_hi_col_plain
#define symm_bsr_u_hi_col_plain symm_s_bsr_u_hi_col_plain
#define trmm_bsr_n_lo_row_plain trmm_s_bsr_n_lo_row_plain
#define trmm_bsr_u_lo_row_plain trmm_s_bsr_u_lo_row_plain
#define trmm_bsr_n_hi_row_plain trmm_s_bsr_n_hi_row_plain
#define trmm_bsr_u_hi_row_plain trmm_s_bsr_u_hi_row_plain
#define trmm_bsr_n_lo_col_plain trmm_s_bsr_n_lo_col_plain
#define trmm_bsr_u_lo_col_plain trmm_s_bsr_u_lo_col_plain
#define trmm_bsr_n_hi_col_plain trmm_s_bsr_n_hi_col_plain
#define trmm_bsr_u_hi_col_plain trmm_s_bsr_u_hi_col_plain
#define trmm_bsr_n_lo_row_trans_plain trmm_s_bsr_n_lo_row_trans_plain
#define trmm_bsr_u_lo_row_trans_plain trmm_s_bsr_u_lo_row_trans_plain
#define trmm_bsr_n_hi_row_trans_plain trmm_s_bsr_n_hi_row_trans_plain
#define trmm_bsr_u_hi_row_trans_plain trmm_s_bsr_u_hi_row_trans_plain
#define trmm_bsr_n_lo_col_trans_plain trmm_s_bsr_n_lo_col_trans_plain
#define trmm_bsr_u_lo_col_trans_plain trmm_s_bsr_u_lo_col_trans_plain
#define trmm_bsr_n_hi_col_trans_plain trmm_s_bsr_n_hi_col_trans_plain
#define trmm_bsr_u_hi_col_trans_plain trmm_s_bsr_u_hi_col_trans_plain
#define diagmm_bsr_n_row_plain diagmm_s_bsr_n_row_plain
#define diagmm_bsr_u_row_plain diagmm_s_bsr_u_row_plain
#define diagmm_bsr_n_col_plain diagmm_s_bsr_n_col_plain
#define diagmm_bsr_u_col_plain diagmm_s_bsr_u_col_plain

#define spmmd_bsr_row_plain spmmd_s_bsr_row_plain
#define spmmd_bsr_col_plain spmmd_s_bsr_col_plain
#define spmmd_bsr_row_trans_plain spmmd_s_bsr_row_trans_plain
#define spmmd_bsr_col_trans_plain spmmd_s_bsr_col_trans_plain

#define spmm_bsr_plain spmm_s_bsr_plain
#define spmm_bsr_trans_plain spmm_s_bsr_trans_plain

#define trsv_bsr_n_lo_plain trsv_s_bsr_n_lo_plain
#define trsv_bsr_u_lo_plain trsv_s_bsr_u_lo_plain
#define trsv_bsr_n_hi_plain trsv_s_bsr_n_hi_plain
#define trsv_bsr_u_hi_plain trsv_s_bsr_u_hi_plain
#define trsv_bsr_n_lo_trans_plain trsv_s_bsr_n_lo_trans_plain
#define trsv_bsr_u_lo_trans_plain trsv_s_bsr_u_lo_trans_plain
#define trsv_bsr_n_hi_trans_plain trsv_s_bsr_n_hi_trans_plain
#define trsv_bsr_u_hi_trans_plain trsv_s_bsr_u_hi_trans_plain
#define diagsv_bsr_n_plain diagsv_s_bsr_n_plain
#define diagsv_bsr_u_plain diagsv_s_bsr_u_plain

#define trsm_bsr_n_lo_row_plain trsm_s_bsr_n_lo_row_plain
#define trsm_bsr_u_lo_row_plain trsm_s_bsr_u_lo_row_plain
#define trsm_bsr_n_hi_row_plain trsm_s_bsr_n_hi_row_plain
#define trsm_bsr_u_hi_row_plain trsm_s_bsr_u_hi_row_plain
#define trsm_bsr_n_lo_col_plain trsm_s_bsr_n_lo_col_plain
#define trsm_bsr_u_lo_col_plain trsm_s_bsr_u_lo_col_plain
#define trsm_bsr_n_hi_col_plain trsm_s_bsr_n_hi_col_plain
#define trsm_bsr_u_hi_col_plain trsm_s_bsr_u_hi_col_plain
#define trsm_bsr_n_lo_row_trans_plain trsm_s_bsr_n_lo_row_trans_plain
#define trsm_bsr_u_lo_row_trans_plain trsm_s_bsr_u_lo_row_trans_plain
#define trsm_bsr_n_hi_row_trans_plain trsm_s_bsr_n_hi_row_trans_plain
#define trsm_bsr_u_hi_row_trans_plain trsm_s_bsr_u_hi_row_trans_plain
#define trsm_bsr_n_lo_col_trans_plain trsm_s_bsr_n_lo_col_trans_plain
#define trsm_bsr_u_lo_col_trans_plain trsm_s_bsr_u_lo_col_trans_plain
#define trsm_bsr_n_hi_col_trans_plain trsm_s_bsr_n_hi_col_trans_plain
#define trsm_bsr_u_hi_col_trans_plain trsm_s_bsr_u_hi_col_trans_plain
#define diagsm_bsr_n_row_plain diagsm_s_bsr_n_row_plain
#define diagsm_bsr_u_row_plain diagsm_s_bsr_u_row_plain
#define diagsm_bsr_n_col_plain diagsm_s_bsr_n_col_plain
#define diagsm_bsr_u_col_plain diagsm_s_bsr_u_col_plain

// sky
#define update_values_sky_plain update_values_s_sky_plain
#define set_value_sky_plain set_value_s_sky_plain

#define add_sky_plain add_s_sky_plain
#define add_sky_trans_plain add_s_sky_trans_plain

#define gemv_sky_plain gemv_s_sky_plain
#define gemv_sky_trans_plain gemv_s_sky_trans_plain
#define symv_sky_n_lo_plain symv_s_sky_n_lo_plain
#define symv_sky_u_lo_plain symv_s_sky_u_lo_plain
#define symv_sky_n_hi_plain symv_s_sky_n_hi_plain
#define symv_sky_u_hi_plain symv_s_sky_u_hi_plain
#define trmv_sky_n_lo_plain trmv_s_sky_n_lo_plain
#define trmv_sky_u_lo_plain trmv_s_sky_u_lo_plain
#define trmv_sky_n_hi_plain trmv_s_sky_n_hi_plain
#define trmv_sky_u_hi_plain trmv_s_sky_u_hi_plain
#define trmv_sky_n_lo_trans_plain trmv_s_sky_n_lo_trans_plain
#define trmv_sky_u_lo_trans_plain trmv_s_sky_u_lo_trans_plain
#define trmv_sky_n_hi_trans_plain trmv_s_sky_n_hi_trans_plain
#define trmv_sky_u_hi_trans_plain trmv_s_sky_u_hi_trans_plain
#define diagmv_sky_n_plain diagmv_s_sky_n_plain
#define diagmv_sky_u_plain diagmv_s_sky_u_plain

#define gemm_sky_row_plain gemm_s_sky_row_plain
#define gemm_sky_col_plain gemm_s_sky_col_plain
#define gemm_sky_row_trans_plain gemm_s_sky_row_trans_plain
#define gemm_sky_col_trans_plain gemm_s_sky_col_trans_plain
#define symm_sky_n_lo_row_plain symm_s_sky_n_lo_row_plain
#define symm_sky_u_lo_row_plain symm_s_sky_u_lo_row_plain
#define symm_sky_n_hi_row_plain symm_s_sky_n_hi_row_plain
#define symm_sky_u_hi_row_plain symm_s_sky_u_hi_row_plain
#define symm_sky_n_lo_col_plain symm_s_sky_n_lo_col_plain
#define symm_sky_u_lo_col_plain symm_s_sky_u_lo_col_plain
#define symm_sky_n_hi_col_plain symm_s_sky_n_hi_col_plain
#define symm_sky_u_hi_col_plain symm_s_sky_u_hi_col_plain
#define trmm_sky_n_lo_row_plain trmm_s_sky_n_lo_row_plain
#define trmm_sky_u_lo_row_plain trmm_s_sky_u_lo_row_plain
#define trmm_sky_n_hi_row_plain trmm_s_sky_n_hi_row_plain
#define trmm_sky_u_hi_row_plain trmm_s_sky_u_hi_row_plain
#define trmm_sky_n_lo_col_plain trmm_s_sky_n_lo_col_plain
#define trmm_sky_u_lo_col_plain trmm_s_sky_u_lo_col_plain
#define trmm_sky_n_hi_col_plain trmm_s_sky_n_hi_col_plain
#define trmm_sky_u_hi_col_plain trmm_s_sky_u_hi_col_plain
#define trmm_sky_n_lo_row_trans_plain trmm_s_sky_n_lo_row_trans_plain
#define trmm_sky_u_lo_row_trans_plain trmm_s_sky_u_lo_row_trans_plain
#define trmm_sky_n_hi_row_trans_plain trmm_s_sky_n_hi_row_trans_plain
#define trmm_sky_u_hi_row_trans_plain trmm_s_sky_u_hi_row_trans_plain
#define trmm_sky_n_lo_col_trans_plain trmm_s_sky_n_lo_col_trans_plain
#define trmm_sky_u_lo_col_trans_plain trmm_s_sky_u_lo_col_trans_plain
#define trmm_sky_n_hi_col_trans_plain trmm_s_sky_n_hi_col_trans_plain
#define trmm_sky_u_hi_col_trans_plain trmm_s_sky_u_hi_col_trans_plain
#define diagmm_sky_n_row_plain diagmm_s_sky_n_row_plain
#define diagmm_sky_u_row_plain diagmm_s_sky_u_row_plain
#define diagmm_sky_n_col_plain diagmm_s_sky_n_col_plain
#define diagmm_sky_u_col_plain diagmm_s_sky_u_col_plain

#define spmmd_sky_row_plain spmmd_s_sky_row_plain
#define spmmd_sky_col_plain spmmd_s_sky_col_plain
#define spmmd_sky_row_trans_plain spmmd_s_sky_row_trans_plain
#define spmmd_sky_col_trans_plain spmmd_s_sky_col_trans_plain

#define spmm_sky_plain spmm_s_sky_plain
#define spmm_sky_trans_plain spmm_s_sky_trans_plain

#define trsv_sky_n_lo_plain trsv_s_sky_n_lo_plain
#define trsv_sky_u_lo_plain trsv_s_sky_u_lo_plain
#define trsv_sky_n_hi_plain trsv_s_sky_n_hi_plain
#define trsv_sky_u_hi_plain trsv_s_sky_u_hi_plain
#define trsv_sky_n_lo_trans_plain trsv_s_sky_n_lo_trans_plain
#define trsv_sky_u_lo_trans_plain trsv_s_sky_u_lo_trans_plain
#define trsv_sky_n_hi_trans_plain trsv_s_sky_n_hi_trans_plain
#define trsv_sky_u_hi_trans_plain trsv_s_sky_u_hi_trans_plain
#define diagsv_sky_n_plain diagsv_s_sky_n_plain
#define diagsv_sky_u_plain diagsv_s_sky_u_plain

#define trsm_sky_n_lo_row_plain trsm_s_sky_n_lo_row_plain
#define trsm_sky_u_lo_row_plain trsm_s_sky_u_lo_row_plain
#define trsm_sky_n_hi_row_plain trsm_s_sky_n_hi_row_plain
#define trsm_sky_u_hi_row_plain trsm_s_sky_u_hi_row_plain
#define trsm_sky_n_lo_col_plain trsm_s_sky_n_lo_col_plain
#define trsm_sky_u_lo_col_plain trsm_s_sky_u_lo_col_plain
#define trsm_sky_n_hi_col_plain trsm_s_sky_n_hi_col_plain
#define trsm_sky_u_hi_col_plain trsm_s_sky_u_hi_col_plain
#define trsm_sky_n_lo_row_trans_plain trsm_s_sky_n_lo_row_trans_plain
#define trsm_sky_u_lo_row_trans_plain trsm_s_sky_u_lo_row_trans_plain
#define trsm_sky_n_hi_row_trans_plain trsm_s_sky_n_hi_row_trans_plain
#define trsm_sky_u_hi_row_trans_plain trsm_s_sky_u_hi_row_trans_plain
#define trsm_sky_n_lo_col_trans_plain trsm_s_sky_n_lo_col_trans_plain
#define trsm_sky_u_lo_col_trans_plain trsm_s_sky_u_lo_col_trans_plain
#define trsm_sky_n_hi_col_trans_plain trsm_s_sky_n_hi_col_trans_plain
#define trsm_sky_u_hi_col_trans_plain trsm_s_sky_u_hi_col_trans_plain
#define diagsm_sky_n_row_plain diagsm_s_sky_n_row_plain
#define diagsm_sky_u_row_plain diagsm_s_sky_u_row_plain
#define diagsm_sky_n_col_plain diagsm_s_sky_n_col_plain
#define diagsm_sky_u_col_plain diagsm_s_sky_u_col_plain

// dia
#define update_values_dia_plain update_values_s_dia_plain
#define set_value_dia_plain set_value_s_dia_plain

#define add_dia_plain add_s_dia_plain
#define add_dia_trans_plain add_s_dia_trans_plain

#define gemv_dia_plain gemv_s_dia_plain
#define gemv_dia_trans_plain gemv_s_dia_trans_plain
#define symv_dia_n_lo_plain symv_s_dia_n_lo_plain
#define symv_dia_u_lo_plain symv_s_dia_u_lo_plain
#define symv_dia_n_hi_plain symv_s_dia_n_hi_plain
#define symv_dia_u_hi_plain symv_s_dia_u_hi_plain
#define trmv_dia_n_lo_plain trmv_s_dia_n_lo_plain
#define trmv_dia_u_lo_plain trmv_s_dia_u_lo_plain
#define trmv_dia_n_hi_plain trmv_s_dia_n_hi_plain
#define trmv_dia_u_hi_plain trmv_s_dia_u_hi_plain
#define trmv_dia_n_lo_trans_plain trmv_s_dia_n_lo_trans_plain
#define trmv_dia_u_lo_trans_plain trmv_s_dia_u_lo_trans_plain
#define trmv_dia_n_hi_trans_plain trmv_s_dia_n_hi_trans_plain
#define trmv_dia_u_hi_trans_plain trmv_s_dia_u_hi_trans_plain
#define diagmv_dia_n_plain diagmv_s_dia_n_plain
#define diagmv_dia_u_plain diagmv_s_dia_u_plain

#define gemm_dia_row_plain gemm_s_dia_row_plain
#define gemm_dia_col_plain gemm_s_dia_col_plain
#define gemm_dia_row_trans_plain gemm_s_dia_row_trans_plain
#define gemm_dia_col_trans_plain gemm_s_dia_col_trans_plain
#define symm_dia_n_lo_row_plain symm_s_dia_n_lo_row_plain
#define symm_dia_u_lo_row_plain symm_s_dia_u_lo_row_plain
#define symm_dia_n_hi_row_plain symm_s_dia_n_hi_row_plain
#define symm_dia_u_hi_row_plain symm_s_dia_u_hi_row_plain
#define symm_dia_n_lo_col_plain symm_s_dia_n_lo_col_plain
#define symm_dia_u_lo_col_plain symm_s_dia_u_lo_col_plain
#define symm_dia_n_hi_col_plain symm_s_dia_n_hi_col_plain
#define symm_dia_u_hi_col_plain symm_s_dia_u_hi_col_plain
#define trmm_dia_n_lo_row_plain trmm_s_dia_n_lo_row_plain
#define trmm_dia_u_lo_row_plain trmm_s_dia_u_lo_row_plain
#define trmm_dia_n_hi_row_plain trmm_s_dia_n_hi_row_plain
#define trmm_dia_u_hi_row_plain trmm_s_dia_u_hi_row_plain
#define trmm_dia_n_lo_col_plain trmm_s_dia_n_lo_col_plain
#define trmm_dia_u_lo_col_plain trmm_s_dia_u_lo_col_plain
#define trmm_dia_n_hi_col_plain trmm_s_dia_n_hi_col_plain
#define trmm_dia_u_hi_col_plain trmm_s_dia_u_hi_col_plain
#define trmm_dia_n_lo_row_trans_plain trmm_s_dia_n_lo_row_trans_plain
#define trmm_dia_u_lo_row_trans_plain trmm_s_dia_u_lo_row_trans_plain
#define trmm_dia_n_hi_row_trans_plain trmm_s_dia_n_hi_row_trans_plain
#define trmm_dia_u_hi_row_trans_plain trmm_s_dia_u_hi_row_trans_plain
#define trmm_dia_n_lo_col_trans_plain trmm_s_dia_n_lo_col_trans_plain
#define trmm_dia_u_lo_col_trans_plain trmm_s_dia_u_lo_col_trans_plain
#define trmm_dia_n_hi_col_trans_plain trmm_s_dia_n_hi_col_trans_plain
#define trmm_dia_u_hi_col_trans_plain trmm_s_dia_u_hi_col_trans_plain
#define diagmm_dia_n_row_plain diagmm_s_dia_n_row_plain
#define diagmm_dia_u_row_plain diagmm_s_dia_u_row_plain
#define diagmm_dia_n_col_plain diagmm_s_dia_n_col_plain
#define diagmm_dia_u_col_plain diagmm_s_dia_u_col_plain

#define spmmd_dia_row_plain spmmd_s_dia_row_plain
#define spmmd_dia_col_plain spmmd_s_dia_col_plain
#define spmmd_dia_row_trans_plain spmmd_s_dia_row_trans_plain
#define spmmd_dia_col_trans_plain spmmd_s_dia_col_trans_plain

#define spmm_dia_plain spmm_s_dia_plain
#define spmm_dia_trans_plain spmm_s_dia_trans_plain

#define trsv_dia_n_lo_plain trsv_s_dia_n_lo_plain
#define trsv_dia_u_lo_plain trsv_s_dia_u_lo_plain
#define trsv_dia_n_hi_plain trsv_s_dia_n_hi_plain
#define trsv_dia_u_hi_plain trsv_s_dia_u_hi_plain
#define trsv_dia_n_lo_trans_plain trsv_s_dia_n_lo_trans_plain
#define trsv_dia_u_lo_trans_plain trsv_s_dia_u_lo_trans_plain
#define trsv_dia_n_hi_trans_plain trsv_s_dia_n_hi_trans_plain
#define trsv_dia_u_hi_trans_plain trsv_s_dia_u_hi_trans_plain
#define diagsv_dia_n_plain diagsv_s_dia_n_plain
#define diagsv_dia_u_plain diagsv_s_dia_u_plain

#define trsm_dia_n_lo_row_plain trsm_s_dia_n_lo_row_plain
#define trsm_dia_u_lo_row_plain trsm_s_dia_u_lo_row_plain
#define trsm_dia_n_hi_row_plain trsm_s_dia_n_hi_row_plain
#define trsm_dia_u_hi_row_plain trsm_s_dia_u_hi_row_plain
#define trsm_dia_n_lo_col_plain trsm_s_dia_n_lo_col_plain
#define trsm_dia_u_lo_col_plain trsm_s_dia_u_lo_col_plain
#define trsm_dia_n_hi_col_plain trsm_s_dia_n_hi_col_plain
#define trsm_dia_u_hi_col_plain trsm_s_dia_u_hi_col_plain
#define trsm_dia_n_lo_row_trans_plain trsm_s_dia_n_lo_row_trans_plain
#define trsm_dia_u_lo_row_trans_plain trsm_s_dia_u_lo_row_trans_plain
#define trsm_dia_n_hi_row_trans_plain trsm_s_dia_n_hi_row_trans_plain
#define trsm_dia_u_hi_row_trans_plain trsm_s_dia_u_hi_row_trans_plain
#define trsm_dia_n_lo_col_trans_plain trsm_s_dia_n_lo_col_trans_plain
#define trsm_dia_u_lo_col_trans_plain trsm_s_dia_u_lo_col_trans_plain
#define trsm_dia_n_hi_col_trans_plain trsm_s_dia_n_hi_col_trans_plain
#define trsm_dia_u_hi_col_trans_plain trsm_s_dia_u_hi_col_trans_plain
#define diagsm_dia_n_row_plain diagsm_s_dia_n_row_plain
#define diagsm_dia_u_row_plain diagsm_s_dia_u_row_plain
#define diagsm_dia_n_col_plain diagsm_s_dia_n_col_plain
#define diagsm_dia_u_col_plain diagsm_s_dia_u_col_plain

