librsb  1.3
Data Types | Modules | Macros | Functions/Subroutines | Variables
rsb_blas_sparse.F90 File Reference

Implementation of the Fortran Sparse BLAS interface to librsb (see The Sparse BLAS interface to librsb (blas_sparse.h, rsb_blas_sparse.F90)). More...

Data Types

interface  blas_sparse::uscr_insert_entry
 A Sparse BLAS interface for RSB. More...
 
interface  blas_sparse::uscr_insert_entries
 inserts multiple entries More...
 
interface  blas_sparse::uscr_insert_col
 inserts a sparse column More...
 
interface  blas_sparse::uscr_insert_row
 inserts a sparse row More...
 
interface  blas_sparse::uscr_insert_clique
 inserts a clique More...
 
interface  blas_sparse::uscr_insert_block
 inserts a dense block More...
 
interface  blas_sparse::usmv
 multiplication : c <- beta c + alpha A b More...
 
interface  blas_sparse::ussv
 triangular solve: b <- alpha A^-1 b More...
 
interface  blas_sparse::usmm
 multiplication : c <- beta c + alpha A b More...
 
interface  blas_sparse::ussm
 triangular solve: b <- alpha A^-1 b More...
 
interface  blas_sparse::rsb_blas_get_mtx
 

Modules

module  blas_sparse
 

Macros

#define RSB_HAVE_RSB_KERNELS   1
 
#define C_RSB_INT_KND_   C_INT
 

Functions/Subroutines

subroutine blas_sparse::usds (A, istat)
 Destroys a matrix. More...
 
subroutine blas_sparse::uscr_end (A, istat)
 Makes an assembled matrix out of a matrix in build state. After this, it is not possible anymore to insert nonzeroes, but computational routines. More...
 
subroutine blas_sparse::usgp (A, pname, istat)
 Get a matrix property. More...
 
subroutine blas_sparse::ussp (A, pname, istat)
 Set a matrix property. Should be called just after creation, before nonzeroes insertion. More...
 
subroutine blas_sparse::suscr_begin (m, n, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::duscr_begin (m, n, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::cuscr_begin (m, n, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::zuscr_begin (m, n, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::suscr_block_begin (Mb, Nb, k, l, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::duscr_block_begin (Mb, Nb, k, l, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::cuscr_block_begin (Mb, Nb, k, l, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::zuscr_block_begin (Mb, Nb, k, l, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::suscr_variable_block_begin (Mb, Nb, K, L, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::duscr_variable_block_begin (Mb, Nb, K, L, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::cuscr_variable_block_begin (Mb, Nb, K, L, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::zuscr_variable_block_begin (Mb, Nb, K, L, A, istat)
 Allocates an empty matrix (A) and leaves it in build state. More...
 
subroutine blas_sparse::suscr_end (A, istat)
 Makes an assembled matrix out of a matrix in build state. After this, it is not possible anymore to insert nonzeroes, but computational routines. More...
 
subroutine blas_sparse::duscr_end (A, istat)
 Makes an assembled matrix out of a matrix in build state. After this, it is not possible anymore to insert nonzeroes, but computational routines. More...
 
subroutine blas_sparse::cuscr_end (A, istat)
 Makes an assembled matrix out of a matrix in build state. After this, it is not possible anymore to insert nonzeroes, but computational routines. More...
 
subroutine blas_sparse::zuscr_end (A, istat)
 Makes an assembled matrix out of a matrix in build state. After this, it is not possible anymore to insert nonzeroes, but computational routines. More...
 
subroutine blas_sparse::suscr_insert_entry (A, val, i, j, istat)
 Inserts an entry in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::duscr_insert_entry (A, val, i, j, istat)
 Inserts an entry in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::cuscr_insert_entry (A, val, i, j, istat)
 Inserts an entry in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::zuscr_insert_entry (A, val, i, j, istat)
 Inserts an entry in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::suscr_insert_entries (A, nnz, val, indx, jndx, istat)
 Inserts entries in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::duscr_insert_entries (A, nnz, val, indx, jndx, istat)
 Inserts entries in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::cuscr_insert_entries (A, nnz, val, indx, jndx, istat)
 Inserts entries in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::zuscr_insert_entries (A, nnz, val, indx, jndx, istat)
 Inserts entries in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::suscr_insert_col (A, j, nnz, val, indx, istat)
 Inserts a whole column in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::duscr_insert_col (A, j, nnz, val, indx, istat)
 Inserts a whole column in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::cuscr_insert_col (A, j, nnz, val, indx, istat)
 Inserts a whole column in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::zuscr_insert_col (A, j, nnz, val, indx, istat)
 Inserts a whole column in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::suscr_insert_row (A, i, nnz, val, indx, istat)
 Inserts a whole row in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::duscr_insert_row (A, i, nnz, val, indx, istat)
 Inserts a whole row in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::cuscr_insert_row (A, i, nnz, val, indx, istat)
 Inserts a whole row in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::zuscr_insert_row (A, i, nnz, val, indx, istat)
 Inserts a whole row in a matrix, assuming it is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::suscr_insert_clique (A, k, l, val, row_stride, col_stride, indx, jndx, istat)
 Inserts a whole clique in a matrix, assuming this is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::duscr_insert_clique (A, k, l, val, row_stride, col_stride, indx, jndx, istat)
 Inserts a whole clique in a matrix, assuming this is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::cuscr_insert_clique (A, k, l, val, row_stride, col_stride, indx, jndx, istat)
 Inserts a whole clique in a matrix, assuming this is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::zuscr_insert_clique (A, k, l, val, row_stride, col_stride, indx, jndx, istat)
 Inserts a whole clique in a matrix, assuming this is in build state. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::suscr_insert_block (A, val, row_stride, col_stride, i, j, istat)
 Inserts a whole block in a matrix, assuming it is in build state. The block size is assumed to be the one specified when calling the (type) corresponding matrix blocked begin function. If not called a blocked begin function, will assume 1x1 (that is, no) blocking. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::duscr_insert_block (A, val, row_stride, col_stride, i, j, istat)
 Inserts a whole block in a matrix, assuming it is in build state. The block size is assumed to be the one specified when calling the (type) corresponding matrix blocked begin function. If not called a blocked begin function, will assume 1x1 (that is, no) blocking. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::cuscr_insert_block (A, val, row_stride, col_stride, i, j, istat)
 Inserts a whole block in a matrix, assuming it is in build state. The block size is assumed to be the one specified when calling the (type) corresponding matrix blocked begin function. If not called a blocked begin function, will assume 1x1 (that is, no) blocking. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::zuscr_insert_block (A, val, row_stride, col_stride, i, j, istat)
 Inserts a whole block in a matrix, assuming it is in build state. The block size is assumed to be the one specified when calling the (type) corresponding matrix blocked begin function. If not called a blocked begin function, will assume 1x1 (that is, no) blocking. By default, duplicate entries will be summed together. More...
 
subroutine blas_sparse::susmv (transA, alpha, A, x, incx, y, incy, istat)
 Multiply by a dense vector. Either of $Y \leftarrow \alpha A X + Y ,$ $Y \leftarrow \alpha A^T X + Y,$ $Y \leftarrow \alpha A^H X + Y$, depending on the value of transA. More...
 
subroutine blas_sparse::dusmv (transA, alpha, A, x, incx, y, incy, istat)
 Multiply by a dense vector. Either of $Y \leftarrow \alpha A X + Y ,$ $Y \leftarrow \alpha A^T X + Y,$ $Y \leftarrow \alpha A^H X + Y$, depending on the value of transA. More...
 
subroutine blas_sparse::cusmv (transA, alpha, A, x, incx, y, incy, istat)
 Multiply by a dense vector. Either of $Y \leftarrow \alpha A X + Y ,$ $Y \leftarrow \alpha A^T X + Y,$ $Y \leftarrow \alpha A^H X + Y$, depending on the value of transA. More...
 
subroutine blas_sparse::zusmv (transA, alpha, A, x, incx, y, incy, istat)
 Multiply by a dense vector. Either of $Y \leftarrow \alpha A X + Y ,$ $Y \leftarrow \alpha A^T X + Y,$ $Y \leftarrow \alpha A^H X + Y$, depending on the value of transA. More...
 
subroutine blas_sparse::sussv (transT, alpha, T, x, incx, istat)
 Triangular solve, by a dense vector. Either of $X \leftarrow \alpha T^{-1}X,$ $X \leftarrow \alpha T^{-T}X,$ $X \leftarrow \alpha T^{-H}X$, depending on the value of transT. More...
 
subroutine blas_sparse::dussv (transT, alpha, T, x, incx, istat)
 Triangular solve, by a dense vector. Either of $X \leftarrow \alpha T^{-1}X,$ $X \leftarrow \alpha T^{-T}X,$ $X \leftarrow \alpha T^{-H}X$, depending on the value of transT. More...
 
subroutine blas_sparse::cussv (transT, alpha, T, x, incx, istat)
 Triangular solve, by a dense vector. Either of $X \leftarrow \alpha T^{-1}X,$ $X \leftarrow \alpha T^{-T}X,$ $X \leftarrow \alpha T^{-H}X$, depending on the value of transT. More...
 
subroutine blas_sparse::zussv (transT, alpha, T, x, incx, istat)
 Triangular solve, by a dense vector. Either of $X \leftarrow \alpha T^{-1}X,$ $X \leftarrow \alpha T^{-T}X,$ $X \leftarrow \alpha T^{-H}X$, depending on the value of transT. More...
 
subroutine blas_sparse::susmm (order, transA, nrhs, alpha, A, b, ldb, c, ldc, istat)
 Multiply by a dense matrix (aka multi-vector). Either of $C \leftarrow \alpha AB+C,$ $C \leftarrow \alpha A^T B+C,$ $C \leftarrow \alpha A^H B+C$, depending on the value of transA. More...
 
subroutine blas_sparse::dusmm (order, transA, nrhs, alpha, A, b, ldb, c, ldc, istat)
 Multiply by a dense matrix (aka multi-vector). Either of $C \leftarrow \alpha AB+C,$ $C \leftarrow \alpha A^T B+C,$ $C \leftarrow \alpha A^H B+C$, depending on the value of transA. More...
 
subroutine blas_sparse::cusmm (order, transA, nrhs, alpha, A, b, ldb, c, ldc, istat)
 Multiply by a dense matrix (aka multi-vector). Either of $C \leftarrow \alpha AB+C,$ $C \leftarrow \alpha A^T B+C,$ $C \leftarrow \alpha A^H B+C$, depending on the value of transA. More...
 
subroutine blas_sparse::zusmm (order, transA, nrhs, alpha, A, b, ldb, c, ldc, istat)
 Multiply by a dense matrix (aka multi-vector). Either of $C \leftarrow \alpha AB+C,$ $C \leftarrow \alpha A^T B+C,$ $C \leftarrow \alpha A^H B+C$, depending on the value of transA. More...
 
subroutine blas_sparse::sussm (order, transT, nrhs, alpha, T, b, ldb, istat)
 Triangular solve, by a dense matrix (aka multi-vector). Either of $B \leftarrow \alpha T^{-1} B,$ $B \leftarrow \alpha T^{-T} B,$ $B \leftarrow \alpha T^{-H} B$, depending on the value of transT. More...
 
subroutine blas_sparse::dussm (order, transT, nrhs, alpha, T, b, ldb, istat)
 Triangular solve, by a dense matrix (aka multi-vector). Either of $B \leftarrow \alpha T^{-1} B,$ $B \leftarrow \alpha T^{-T} B,$ $B \leftarrow \alpha T^{-H} B$, depending on the value of transT. More...
 
subroutine blas_sparse::cussm (order, transT, nrhs, alpha, T, b, ldb, istat)
 Triangular solve, by a dense matrix (aka multi-vector). Either of $B \leftarrow \alpha T^{-1} B,$ $B \leftarrow \alpha T^{-T} B,$ $B \leftarrow \alpha T^{-H} B$, depending on the value of transT. More...
 
subroutine blas_sparse::zussm (order, transT, nrhs, alpha, T, b, ldb, istat)
 Triangular solve, by a dense matrix (aka multi-vector). Either of $B \leftarrow \alpha T^{-1} B,$ $B \leftarrow \alpha T^{-T} B,$ $B \leftarrow \alpha T^{-H} B$, depending on the value of transT. More...
 

Variables

integer, parameter blas_sparse::blas_sparse_const_success =0
 
integer, parameter blas_sparse::blas_sparse_const_failure =-1
 
integer, parameter blas_sparse::blas_sparse_const_not_available =-9999
 
integer, parameter blas_sparse::blas_rowmajor =101
 
integer, parameter blas_sparse::blas_colmajor =102
 
integer, parameter blas_sparse::blas_no_trans =111
 
integer, parameter blas_sparse::blas_trans =112
 
integer, parameter blas_sparse::blas_conj_trans =113
 
integer, parameter blas_sparse::blas_upper =121
 
integer, parameter blas_sparse::blas_lower =122
 
integer, parameter blas_sparse::blas_non_unit_diag =131
 
integer, parameter blas_sparse::blas_unit_diag =132
 
integer, parameter blas_sparse::blas_left_side =141
 
integer, parameter blas_sparse::blas_right_side =142
 
integer, parameter blas_sparse::blas_base =151
 
integer, parameter blas_sparse::blas_t =152
 
integer, parameter blas_sparse::blas_rnd =153
 
integer, parameter blas_sparse::blas_ieee =154
 
integer, parameter blas_sparse::blas_emin =155
 
integer, parameter blas_sparse::blas_emax =156
 
integer, parameter blas_sparse::blas_eps =157
 
integer, parameter blas_sparse::blas_prec =158
 
integer, parameter blas_sparse::blas_underflow =159
 
integer, parameter blas_sparse::blas_overflow =160
 
integer, parameter blas_sparse::blas_sfmin =161
 
integer, parameter blas_sparse::blas_one_norm =171
 
integer, parameter blas_sparse::blas_real_one_norm =172
 
integer, parameter blas_sparse::blas_two_norm =173
 
integer, parameter blas_sparse::blas_frobenius_norm =174
 
integer, parameter blas_sparse::blas_inf_norm =175
 
integer, parameter blas_sparse::blas_real_inf_norm =176
 
integer, parameter blas_sparse::blas_max_norm =177
 
integer, parameter blas_sparse::blas_real_max_norm =178
 
integer, parameter blas_sparse::blas_increasing_order =181
 
integer, parameter blas_sparse::blas_decreasing_order =182
 
integer, parameter blas_sparse::blas_conj =191
 
integer, parameter blas_sparse::blas_no_conj =192
 
integer, parameter blas_sparse::blas_jrot_inner =201
 
integer, parameter blas_sparse::blas_jrot_outer =202
 
integer, parameter blas_sparse::blas_jrot_sorted =203
 
integer, parameter blas_sparse::blas_prec_single =211
 
integer, parameter blas_sparse::blas_prec_double =212
 
integer, parameter blas_sparse::blas_prec_indigenous =213
 
integer, parameter blas_sparse::blas_prec_extra =214
 
integer, parameter blas_sparse::blas_zero_base =221
 
integer, parameter blas_sparse::blas_one_base =222
 
integer, parameter blas_sparse::blas_general =231
 
integer, parameter blas_sparse::blas_symmetric =232
 
integer, parameter blas_sparse::blas_hermitian =233
 
integer, parameter blas_sparse::blas_triangular =234
 
integer, parameter blas_sparse::blas_lower_triangular =235
 
integer, parameter blas_sparse::blas_upper_triangular =236
 
integer, parameter blas_sparse::blas_lower_symmetric =237
 
integer, parameter blas_sparse::blas_upper_symmetric =238
 
integer, parameter blas_sparse::blas_lower_hermitian =239
 
integer, parameter blas_sparse::blas_upper_hermitian =240
 
integer, parameter blas_sparse::blas_complex =241
 
integer, parameter blas_sparse::blas_real =242
 
integer, parameter blas_sparse::blas_double_precision =243
 
integer, parameter blas_sparse::blas_single_precision =244
 
integer, parameter blas_sparse::blas_num_rows =251
 
integer, parameter blas_sparse::blas_num_cols =252
 
integer, parameter blas_sparse::blas_num_nonzeros =253
 
integer, parameter blas_sparse::blas_invalid_handle =261
 
integer, parameter blas_sparse::blas_new_handle =262
 
integer, parameter blas_sparse::blas_open_handle =263
 
integer, parameter blas_sparse::blas_valid_handle =264
 
integer, parameter blas_sparse::blas_regular =271
 
integer, parameter blas_sparse::blas_irregular =272
 
integer, parameter blas_sparse::blas_block =273
 
integer, parameter blas_sparse::blas_unassembled =274
 
integer, parameter blas_sparse::blas_rsb_spmv_autotuning_on =6660
 
integer, parameter blas_sparse::blas_rsb_spmv_autotuning_off =6661
 
integer, parameter blas_sparse::blas_rsb_spmv_n_autotuning_on =6662
 
integer, parameter blas_sparse::blas_rsb_spmv_n_autotuning_off =6663
 
integer, parameter blas_sparse::blas_rsb_spmv_t_autotuning_on =6664
 
integer, parameter blas_sparse::blas_rsb_spmv_t_autotuning_off =6665
 
integer, parameter blas_sparse::blas_rsb_autotune_next_operation =6666
 
integer, parameter blas_sparse::blas_rsb_rep_rec =9993
 
integer, parameter blas_sparse::blas_rsb_rep_hwi =9994
 
integer, parameter blas_sparse::blas_rsb_rep_rsb =9995
 
integer, parameter blas_sparse::blas_rsb_rep_csr =9996
 
integer, parameter blas_sparse::blas_rsb_rep_coo =9997
 
integer, parameter blas_sparse::blas_rsb_duplicates_ovw =9998
 
integer, parameter blas_sparse::blas_rsb_duplicates_sum =9999
 
integer, parameter blas_sparse::rsb_blas_idx_kind =4
 
integer, parameter blas_sparse::rsb_blas_ist_kind =4
 

Detailed Description

Implementation of the Fortran Sparse BLAS interface to librsb (see The Sparse BLAS interface to librsb (blas_sparse.h, rsb_blas_sparse.F90)).

Macro Definition Documentation

◆ C_RSB_INT_KND_

#define C_RSB_INT_KND_   C_INT

◆ RSB_HAVE_RSB_KERNELS

#define RSB_HAVE_RSB_KERNELS   1