C++ example based on <rsb.hpp> using timings for common matrix operations on RsbMatrix: RsbMatrix.get_coo(), rsb_coo_sort(), rsb_time().
- Author
- Michele Martone
#include <complex>
#include <array>
#include <vector>
#include <iomanip>
#include <iostream>
#include <string>
template <typename nt_t>
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;
}
{
#ifdef RSB_NUMERICAL_TYPE_FLOAT
#endif
#ifdef RSB_NUMERICAL_TYPE_DOUBLE
#endif
#ifdef RSB_NUMERICAL_TYPE_FLOAT_COMPLEX
#endif
#ifdef RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX
#endif
}
auto main() -> int
Definition assemble.cpp:38
void bench(const std::string filename, rsb_flags_t order)
Definition autotune.cpp:42
Class initializing/finalizing librsb state.
Definition rsb.hpp:272
rsb_int_t get_num_threads(void) const
Definition rsb.hpp:360
Represent a sparse matrix in RSB format by means of librsb.
Definition rsb.hpp:532
rsb_time_t rsb_time(void)
Definition rsb_rsb.c:1697
rsb_err_t rsb_coo_sort(void *VA, rsb_coo_idx_t *IA, rsb_coo_idx_t *JA, rsb_nnz_idx_t nnzA, rsb_coo_idx_t nrA, rsb_coo_idx_t ncA, rsb_type_t typecode, rsb_flags_t flagsA)
Definition rsb_rsb.c:702
#define RSB_FLAG_NOFLAGS
Definition rsb.h:478
rsb_flags_t rsb_trans_t
Definition rsb.h:400
rsb_real_t rsb_time_t
Definition rsb.h:411
signed int rsb_int_t
Definition rsb.h:392
Classes RsbLib and RsbMatrix provide native C++ access to librsb.
#define RSB_TRANSPOSITION_N
N: Non transposed flag, valid for rsb_trans_t typed variables.
Definition rsb_types.h:138