mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-24 14:51:49 +00:00
psblas3:
base/modules/psb_c_serial_mod.f90 base/modules/psb_d_serial_mod.f90 base/modules/psb_s_serial_mod.f90 base/modules/psb_z_serial_mod.f90 base/serial/Makefile base/serial/impl/psb_c_csc_impl.f90 base/serial/impl/psb_c_csr_impl.f90 base/serial/impl/psb_d_csc_impl.f90 base/serial/impl/psb_d_csr_impl.f90 base/serial/impl/psb_s_csc_impl.f90 base/serial/impl/psb_s_csr_impl.f90 base/serial/impl/psb_z_csc_impl.f90 base/serial/impl/psb_z_csr_impl.f90 New sparse matrix-sparse matrix product. Implementation details for CSR/CSC matrices.
This commit is contained in:
@@ -51,6 +51,33 @@ module psb_c_serial_mod
|
||||
end function psb_casum_s
|
||||
end interface psb_asum
|
||||
|
||||
interface psb_spspmm
|
||||
subroutine psb_cspspmm(a,b,c,info)
|
||||
use psb_c_mat_mod, only : psb_cspmat_type
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
type(psb_cspmat_type), intent(in) :: a,b
|
||||
type(psb_cspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_cspspmm
|
||||
subroutine psb_ccsrspspmm(a,b,c,info)
|
||||
use psb_c_mat_mod, only : psb_c_csr_sparse_mat
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
class(psb_c_csr_sparse_mat), intent(in) :: a,b
|
||||
type(psb_c_csr_sparse_mat), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_ccsrspspmm
|
||||
subroutine psb_ccscspspmm(a,b,c,info)
|
||||
use psb_c_mat_mod, only : psb_c_csc_sparse_mat
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
class(psb_c_csc_sparse_mat), intent(in) :: a,b
|
||||
type(psb_c_csc_sparse_mat), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_ccscspspmm
|
||||
end interface
|
||||
|
||||
interface psb_symbmm
|
||||
subroutine psb_csymbmm(a,b,c,info)
|
||||
use psb_c_mat_mod, only : psb_cspmat_type
|
||||
|
||||
@@ -51,6 +51,33 @@ module psb_d_serial_mod
|
||||
end function psb_dasum_s
|
||||
end interface psb_asum
|
||||
|
||||
interface psb_spspmm
|
||||
subroutine psb_dspspmm(a,b,c,info)
|
||||
use psb_d_mat_mod, only : psb_dspmat_type
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
type(psb_dspmat_type), intent(in) :: a,b
|
||||
type(psb_dspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_dspspmm
|
||||
subroutine psb_dcsrspspmm(a,b,c,info)
|
||||
use psb_d_mat_mod, only : psb_d_csr_sparse_mat
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
class(psb_d_csr_sparse_mat), intent(in) :: a,b
|
||||
type(psb_d_csr_sparse_mat), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_dcsrspspmm
|
||||
subroutine psb_dcscspspmm(a,b,c,info)
|
||||
use psb_d_mat_mod, only : psb_d_csc_sparse_mat
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
class(psb_d_csc_sparse_mat), intent(in) :: a,b
|
||||
type(psb_d_csc_sparse_mat), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_dcscspspmm
|
||||
end interface
|
||||
|
||||
interface psb_symbmm
|
||||
subroutine psb_dsymbmm(a,b,c,info)
|
||||
use psb_d_mat_mod, only : psb_dspmat_type
|
||||
|
||||
@@ -51,6 +51,33 @@ module psb_s_serial_mod
|
||||
end function psb_sasum_s
|
||||
end interface psb_asum
|
||||
|
||||
interface psb_spspmm
|
||||
subroutine psb_sspspmm(a,b,c,info)
|
||||
use psb_s_mat_mod, only : psb_sspmat_type
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
type(psb_sspmat_type), intent(in) :: a,b
|
||||
type(psb_sspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_sspspmm
|
||||
subroutine psb_scsrspspmm(a,b,c,info)
|
||||
use psb_s_mat_mod, only : psb_s_csr_sparse_mat
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
class(psb_s_csr_sparse_mat), intent(in) :: a,b
|
||||
type(psb_s_csr_sparse_mat), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_scsrspspmm
|
||||
subroutine psb_scscspspmm(a,b,c,info)
|
||||
use psb_s_mat_mod, only : psb_s_csc_sparse_mat
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
class(psb_s_csc_sparse_mat), intent(in) :: a,b
|
||||
type(psb_s_csc_sparse_mat), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_scscspspmm
|
||||
end interface
|
||||
|
||||
interface psb_symbmm
|
||||
subroutine psb_ssymbmm(a,b,c,info)
|
||||
use psb_s_mat_mod, only : psb_sspmat_type
|
||||
|
||||
@@ -51,6 +51,33 @@ module psb_z_serial_mod
|
||||
end function psb_zasum_s
|
||||
end interface psb_asum
|
||||
|
||||
interface psb_spspmm
|
||||
subroutine psb_zspspmm(a,b,c,info)
|
||||
use psb_z_mat_mod, only : psb_zspmat_type
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
type(psb_zspmat_type), intent(in) :: a,b
|
||||
type(psb_zspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_zspspmm
|
||||
subroutine psb_zcsrspspmm(a,b,c,info)
|
||||
use psb_z_mat_mod, only : psb_z_csr_sparse_mat
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
class(psb_z_csr_sparse_mat), intent(in) :: a,b
|
||||
type(psb_z_csr_sparse_mat), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_zcsrspspmm
|
||||
subroutine psb_zcscspspmm(a,b,c,info)
|
||||
use psb_z_mat_mod, only : psb_z_csc_sparse_mat
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
class(psb_z_csc_sparse_mat), intent(in) :: a,b
|
||||
type(psb_z_csc_sparse_mat), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_zcscspspmm
|
||||
end interface
|
||||
|
||||
interface psb_symbmm
|
||||
subroutine psb_zsymbmm(a,b,c,info)
|
||||
use psb_z_mat_mod, only : psb_zspmat_type
|
||||
|
||||
Reference in New Issue
Block a user