File List
Here is a list of all files with brief descriptions:

examples |
autotune.c | C "RSB autotune" example program based on <rsb.h>. uses rsb_file_mtx_load(), rsb_spmm(), rsb_tune_spmm()
backsolve.c | C triangular solve example program. Uses rsb_spsv(),rsb_tune_spsm(). Based on <rsb.h>
cplusplus.cpp | C++ program using the C <rsb.h> interface. Uses rsb_tune_spmm(), rsb_spmv()
fortran.F90 |
fortran_rsb_fi.F90 | RSB.F90-based usage: rsb_mtx_alloc_from_coo_const(), rsb_tune_spmm(), rsb_file_mtx_save(), rsb_spmv(), ..
hello-spblas.c | A first C "hello RSB" example program using a Sparse BLAS interface and <rsb.h>. Uses BLAS_duscr_begin(), BLAS_ussp(), BLAS_usgp(), BLAS_duscr_insert_entries(), BLAS_duscr_end(), BLAS_dusget_element(),BLAS_dusmv(),BLAS_usds()
hello.c | A first "hello RSB" example C program based on <rsb.h>. Uses rsb_lib_set_opt(), rsb_mtx_get_info_str()
io-spblas.c | Example C program using the Sparse BLAS interface and reading from file using rsb_blas_file_mtx_load(), BLAS_usgp(), BLAS_dusmv(), BLAS_usds()
power.c | A toy <rsb.h>-based C program implementing the power method for computing matrix eigenvalues. Uses rsb_spmv()
snippets.c | Collection of C snippets of other examples. Used piecewise the documentation. Not intended to be read as example
transpose.c | A toy <rsb.h>-based C program showing instantiation, transposition and other operations on a single matrix. Uses rsb_mtx_clone(), rsb_file_mtx_save(), rsb_file_mtx_get_dims(), rsb_file_mtx_load()
rsblib |
examples |
assemble.cpp | C++ example based on <rsb.hpp> assembling RsbMatrix by pieces
autotune.cpp | C++ example based on <rsb.hpp> for performance-benchmarking a matrix from file using RsbMatrix.tune_spmm(), for various right-hand side counts
bench.cpp | C++ example based on <rsb.hpp> for performance-benchmarking a matrix from file using RsbMatrix.spmm(), for various right-hand side counts
build.cpp | C++ example based on <rsb.hpp> using timings for common matrix operations on RsbMatrix: RsbMatrix.get_coo(), rsb_coo_sort(), rsb_time()
example.cpp | C++ example based on <rsb.hpp> using RsbMatrix.spmm()
misc.cpp | C++ example based on <rsb.hpp> showing various RsbMatrix operations
mtx2bin.cpp | C++ example based on <rsb.hpp> converting a Matrix Market file into a custom format using RsbMatrix.get_coo()
render.cpp | C++ example based on <rsb.hpp> of invoking the autotuner on an RsbMatrix matrix with RsbMatrix.tune_spmm() and rendering it with RsbMatrix.rndr()
span.cpp | C++ example based on <rsb.hpp> illustrating use of RsbMatrix.file_save(), and std::span-based versions of RsbMatrix.tune_spmm(), RsbMatrix.spmv()
twonnz.cpp | C++ example based on <rsb.hpp> measuring RsbMatrix.spmm() performance of a matrix with only two elements; this is is effectively measuring performance of result vector scaling
rsb.hpp | Classes `RsbLib` and `RsbMatrix` provide native C++ access to `librsb`
blas_sparse.h | This file specifies the Sparse BLAS interface to librsb. Supported types :(float,double,float complex,double complex) . Unsupported types:() . Level 1 ops :(dot,axpy,ga,gz,sc) . Level 2 ops :(mv,sv) . Level 3 ops :(mm,sm)
rsb.F90 | Header file automatically generated from <rsb.h>, offering ISO-C-BINDING interfaces to <rsb.h>'s functions. Defines `MODULE` `rsb`. For examples of usage, see Fortran examples in Example programs and code. The official documentation is that of <rsb.h>. Make sure you are using a modern Fortran compiler
rsb.h | This file declares the user interface functions and data structures for the `librsb` library (see The librsb library interface (rsb.h, optional ones rsb.hpp and rsb.F90))
rsb_blas_sparse.F90 | Implementation of the Fortran Sparse BLAS interface to `librsb` (see The Sparse BLAS interface to librsb (blas_sparse.h, rsb_blas_sparse.F90))
rsb_libspblas.c | This file implements Sparse BLAS for librsb. Supported types :(float,double,float complex,double complex) . Unsupported types:() . Level 1 ops :(dot,axpy,ga,gz,sc) . Level 2 ops :(mv,sv) . Level 3 ops :(mm,sm)
rsb_libspblas.h | This file specifies the Sparse BLAS interface to librsb. Supported types :(float,double,float complex,double complex) . Unsupported types:() . Level 1 ops :(dot,axpy,ga,gz,sc) . Level 2 ops :(mv,sv) . Level 3 ops :(mm,sm)
rsb_rsb.c | Implementation of the library user interface specified in rsb.h and rsb_types.h

rsb_types.h

Macros and constants, which are type specific and used by rsb.h.
Here reside declarations related to supported matrix numerical types, and other declarations according to the build time options.
If you wish to use this library with different matrix numerical types, you shall regenerate the library source code accordingly; see the README file how to do this.
Only a those declarations which are documented are meant to be part of the API.
The rest is meant as internals.
See also matrix_type_symbols_section