#include <complex>
#include <array>
#include <vector>
#include <iomanip>
#include <iostream>
#include <string>
#include <omp.h>
template <typename nt_t>
void bench(
const std::string filename) {
std::vector<nt_t> VA(mtx.nnz());
std::vector<rsb_coo_idx_t> IA(mtx.nnz());
std::vector<rsb_coo_idx_t> JA(mtx.nnz());
std::cout << "copy-" << nt << " took " << dt << std::endl;
std::cout << "get_coo-" << nt << " took " << dt << std::endl;
std::cout << "rsb_coo_sort-T-" << nt << " took " << dt << std::endl;
std::cout << "rsb_coo_sort-N-" << nt << " took " << dt << std::endl;
}
auto main(
const int argc,
char * argv[]) ->
int {
const std::string filename{ argc > 1 ? argv[1] : "../A.mtx"};
#ifdef RSB_NUMERICAL_TYPE_FLOAT
bench<float>(filename);
#endif
#ifdef RSB_NUMERICAL_TYPE_DOUBLE
bench<double>(filename);
#endif
#ifdef RSB_NUMERICAL_TYPE_FLOAT_COMPLEX
bench<std::complex<float>>(filename);
#endif
#ifdef RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX
bench<std::complex<double>>(filename);
#endif
}