spmv Interface

public interface spmv

Module Procedures

private subroutine spmv_coo_1d_sp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(COO_sp_type), intent(in) :: matrix
real(kind=sp), intent(in) :: vec_x(:)
real(kind=sp), intent(inout) :: vec_y(:)
real(kind=sp), intent(in), optional :: alpha
real(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csr_1d_sp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSR_sp_type), intent(in) :: matrix
real(kind=sp), intent(in) :: vec_x(:)
real(kind=sp), intent(inout) :: vec_y(:)
real(kind=sp), intent(in), optional :: alpha
real(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csc_1d_sp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSC_sp_type), intent(in) :: matrix
real(kind=sp), intent(in) :: vec_x(:)
real(kind=sp), intent(inout) :: vec_y(:)
real(kind=sp), intent(in), optional :: alpha
real(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_ell_1d_sp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(ELL_sp_type), intent(in) :: matrix
real(kind=sp), intent(in) :: vec_x(:)
real(kind=sp), intent(inout) :: vec_y(:)
real(kind=sp), intent(in), optional :: alpha
real(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_coo_2d_sp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(COO_sp_type), intent(in) :: matrix
real(kind=sp), intent(in) :: vec_x(:,:)
real(kind=sp), intent(inout) :: vec_y(:,:)
real(kind=sp), intent(in), optional :: alpha
real(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csr_2d_sp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSR_sp_type), intent(in) :: matrix
real(kind=sp), intent(in) :: vec_x(:,:)
real(kind=sp), intent(inout) :: vec_y(:,:)
real(kind=sp), intent(in), optional :: alpha
real(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csc_2d_sp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSC_sp_type), intent(in) :: matrix
real(kind=sp), intent(in) :: vec_x(:,:)
real(kind=sp), intent(inout) :: vec_y(:,:)
real(kind=sp), intent(in), optional :: alpha
real(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_ell_2d_sp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(ELL_sp_type), intent(in) :: matrix
real(kind=sp), intent(in) :: vec_x(:,:)
real(kind=sp), intent(inout) :: vec_y(:,:)
real(kind=sp), intent(in), optional :: alpha
real(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_sellc_sp(matrix, vec_x, vec_y, alpha, beta, op)

This algorithm was gracefully provided by Ivan Privec and adapted by Jose Alves

Arguments

Type IntentOptional Attributes Name
type(SELLC_sp_type), intent(in) :: matrix
real(kind=sp), intent(in) :: vec_x(:)
real(kind=sp), intent(inout) :: vec_y(:)
real(kind=sp), intent(in), optional :: alpha
real(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_coo_1d_dp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(COO_dp_type), intent(in) :: matrix
real(kind=dp), intent(in) :: vec_x(:)
real(kind=dp), intent(inout) :: vec_y(:)
real(kind=dp), intent(in), optional :: alpha
real(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csr_1d_dp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSR_dp_type), intent(in) :: matrix
real(kind=dp), intent(in) :: vec_x(:)
real(kind=dp), intent(inout) :: vec_y(:)
real(kind=dp), intent(in), optional :: alpha
real(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csc_1d_dp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSC_dp_type), intent(in) :: matrix
real(kind=dp), intent(in) :: vec_x(:)
real(kind=dp), intent(inout) :: vec_y(:)
real(kind=dp), intent(in), optional :: alpha
real(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_ell_1d_dp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(ELL_dp_type), intent(in) :: matrix
real(kind=dp), intent(in) :: vec_x(:)
real(kind=dp), intent(inout) :: vec_y(:)
real(kind=dp), intent(in), optional :: alpha
real(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_coo_2d_dp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(COO_dp_type), intent(in) :: matrix
real(kind=dp), intent(in) :: vec_x(:,:)
real(kind=dp), intent(inout) :: vec_y(:,:)
real(kind=dp), intent(in), optional :: alpha
real(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csr_2d_dp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSR_dp_type), intent(in) :: matrix
real(kind=dp), intent(in) :: vec_x(:,:)
real(kind=dp), intent(inout) :: vec_y(:,:)
real(kind=dp), intent(in), optional :: alpha
real(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csc_2d_dp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSC_dp_type), intent(in) :: matrix
real(kind=dp), intent(in) :: vec_x(:,:)
real(kind=dp), intent(inout) :: vec_y(:,:)
real(kind=dp), intent(in), optional :: alpha
real(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_ell_2d_dp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(ELL_dp_type), intent(in) :: matrix
real(kind=dp), intent(in) :: vec_x(:,:)
real(kind=dp), intent(inout) :: vec_y(:,:)
real(kind=dp), intent(in), optional :: alpha
real(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_sellc_dp(matrix, vec_x, vec_y, alpha, beta, op)

This algorithm was gracefully provided by Ivan Privec and adapted by Jose Alves

Arguments

Type IntentOptional Attributes Name
type(SELLC_dp_type), intent(in) :: matrix
real(kind=dp), intent(in) :: vec_x(:)
real(kind=dp), intent(inout) :: vec_y(:)
real(kind=dp), intent(in), optional :: alpha
real(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_coo_1d_csp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(COO_csp_type), intent(in) :: matrix
complex(kind=sp), intent(in) :: vec_x(:)
complex(kind=sp), intent(inout) :: vec_y(:)
complex(kind=sp), intent(in), optional :: alpha
complex(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csr_1d_csp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSR_csp_type), intent(in) :: matrix
complex(kind=sp), intent(in) :: vec_x(:)
complex(kind=sp), intent(inout) :: vec_y(:)
complex(kind=sp), intent(in), optional :: alpha
complex(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csc_1d_csp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSC_csp_type), intent(in) :: matrix
complex(kind=sp), intent(in) :: vec_x(:)
complex(kind=sp), intent(inout) :: vec_y(:)
complex(kind=sp), intent(in), optional :: alpha
complex(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_ell_1d_csp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(ELL_csp_type), intent(in) :: matrix
complex(kind=sp), intent(in) :: vec_x(:)
complex(kind=sp), intent(inout) :: vec_y(:)
complex(kind=sp), intent(in), optional :: alpha
complex(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_coo_2d_csp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(COO_csp_type), intent(in) :: matrix
complex(kind=sp), intent(in) :: vec_x(:,:)
complex(kind=sp), intent(inout) :: vec_y(:,:)
complex(kind=sp), intent(in), optional :: alpha
complex(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csr_2d_csp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSR_csp_type), intent(in) :: matrix
complex(kind=sp), intent(in) :: vec_x(:,:)
complex(kind=sp), intent(inout) :: vec_y(:,:)
complex(kind=sp), intent(in), optional :: alpha
complex(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csc_2d_csp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSC_csp_type), intent(in) :: matrix
complex(kind=sp), intent(in) :: vec_x(:,:)
complex(kind=sp), intent(inout) :: vec_y(:,:)
complex(kind=sp), intent(in), optional :: alpha
complex(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_ell_2d_csp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(ELL_csp_type), intent(in) :: matrix
complex(kind=sp), intent(in) :: vec_x(:,:)
complex(kind=sp), intent(inout) :: vec_y(:,:)
complex(kind=sp), intent(in), optional :: alpha
complex(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_sellc_csp(matrix, vec_x, vec_y, alpha, beta, op)

This algorithm was gracefully provided by Ivan Privec and adapted by Jose Alves

Arguments

Type IntentOptional Attributes Name
type(SELLC_csp_type), intent(in) :: matrix
complex(kind=sp), intent(in) :: vec_x(:)
complex(kind=sp), intent(inout) :: vec_y(:)
complex(kind=sp), intent(in), optional :: alpha
complex(kind=sp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_coo_1d_cdp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(COO_cdp_type), intent(in) :: matrix
complex(kind=dp), intent(in) :: vec_x(:)
complex(kind=dp), intent(inout) :: vec_y(:)
complex(kind=dp), intent(in), optional :: alpha
complex(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csr_1d_cdp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSR_cdp_type), intent(in) :: matrix
complex(kind=dp), intent(in) :: vec_x(:)
complex(kind=dp), intent(inout) :: vec_y(:)
complex(kind=dp), intent(in), optional :: alpha
complex(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csc_1d_cdp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSC_cdp_type), intent(in) :: matrix
complex(kind=dp), intent(in) :: vec_x(:)
complex(kind=dp), intent(inout) :: vec_y(:)
complex(kind=dp), intent(in), optional :: alpha
complex(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_ell_1d_cdp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(ELL_cdp_type), intent(in) :: matrix
complex(kind=dp), intent(in) :: vec_x(:)
complex(kind=dp), intent(inout) :: vec_y(:)
complex(kind=dp), intent(in), optional :: alpha
complex(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_coo_2d_cdp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(COO_cdp_type), intent(in) :: matrix
complex(kind=dp), intent(in) :: vec_x(:,:)
complex(kind=dp), intent(inout) :: vec_y(:,:)
complex(kind=dp), intent(in), optional :: alpha
complex(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csr_2d_cdp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSR_cdp_type), intent(in) :: matrix
complex(kind=dp), intent(in) :: vec_x(:,:)
complex(kind=dp), intent(inout) :: vec_y(:,:)
complex(kind=dp), intent(in), optional :: alpha
complex(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_csc_2d_cdp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(CSC_cdp_type), intent(in) :: matrix
complex(kind=dp), intent(in) :: vec_x(:,:)
complex(kind=dp), intent(inout) :: vec_y(:,:)
complex(kind=dp), intent(in), optional :: alpha
complex(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_ell_2d_cdp(matrix, vec_x, vec_y, alpha, beta, op)

Arguments

Type IntentOptional Attributes Name
type(ELL_cdp_type), intent(in) :: matrix
complex(kind=dp), intent(in) :: vec_x(:,:)
complex(kind=dp), intent(inout) :: vec_y(:,:)
complex(kind=dp), intent(in), optional :: alpha
complex(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op

private subroutine spmv_sellc_cdp(matrix, vec_x, vec_y, alpha, beta, op)

This algorithm was gracefully provided by Ivan Privec and adapted by Jose Alves

Arguments

Type IntentOptional Attributes Name
type(SELLC_cdp_type), intent(in) :: matrix
complex(kind=dp), intent(in) :: vec_x(:)
complex(kind=dp), intent(inout) :: vec_y(:)
complex(kind=dp), intent(in), optional :: alpha
complex(kind=dp), intent(in), optional :: beta
character(len=1), intent(in), optional :: op