|
|
@ -125,6 +125,7 @@ module psb_c_base_mat_mod
|
|
|
|
procedure, pass(a) :: arwsum => psb_c_base_arwsum
|
|
|
|
procedure, pass(a) :: arwsum => psb_c_base_arwsum
|
|
|
|
procedure, pass(a) :: colsum => psb_c_base_colsum
|
|
|
|
procedure, pass(a) :: colsum => psb_c_base_colsum
|
|
|
|
procedure, pass(a) :: aclsum => psb_c_base_aclsum
|
|
|
|
procedure, pass(a) :: aclsum => psb_c_base_aclsum
|
|
|
|
|
|
|
|
procedure, pass(a) :: scalpid => psb_c_base_scalplusidentity
|
|
|
|
end type psb_c_base_sparse_mat
|
|
|
|
end type psb_c_base_sparse_mat
|
|
|
|
|
|
|
|
|
|
|
|
private :: c_base_mat_sync, c_base_mat_is_host, c_base_mat_is_dev, &
|
|
|
|
private :: c_base_mat_sync, c_base_mat_is_host, c_base_mat_is_dev, &
|
|
|
@ -226,6 +227,7 @@ module psb_c_base_mat_mod
|
|
|
|
procedure, pass(a) :: arwsum => psb_c_coo_arwsum
|
|
|
|
procedure, pass(a) :: arwsum => psb_c_coo_arwsum
|
|
|
|
procedure, pass(a) :: colsum => psb_c_coo_colsum
|
|
|
|
procedure, pass(a) :: colsum => psb_c_coo_colsum
|
|
|
|
procedure, pass(a) :: aclsum => psb_c_coo_aclsum
|
|
|
|
procedure, pass(a) :: aclsum => psb_c_coo_aclsum
|
|
|
|
|
|
|
|
procedure, pass(a) :: scalpid => psb_c_coo_scalplusidentity
|
|
|
|
|
|
|
|
|
|
|
|
end type psb_c_coo_sparse_mat
|
|
|
|
end type psb_c_coo_sparse_mat
|
|
|
|
|
|
|
|
|
|
|
@ -290,6 +292,7 @@ module psb_c_base_mat_mod
|
|
|
|
procedure, pass(a) :: arwsum => psb_lc_base_arwsum
|
|
|
|
procedure, pass(a) :: arwsum => psb_lc_base_arwsum
|
|
|
|
procedure, pass(a) :: colsum => psb_lc_base_colsum
|
|
|
|
procedure, pass(a) :: colsum => psb_lc_base_colsum
|
|
|
|
procedure, pass(a) :: aclsum => psb_lc_base_aclsum
|
|
|
|
procedure, pass(a) :: aclsum => psb_lc_base_aclsum
|
|
|
|
|
|
|
|
procedure, pass(a) :: scalpid => psb_lc_base_scalplusidentity
|
|
|
|
!
|
|
|
|
!
|
|
|
|
! Convert internal indices
|
|
|
|
! Convert internal indices
|
|
|
|
!
|
|
|
|
!
|
|
|
@ -390,6 +393,7 @@ module psb_c_base_mat_mod
|
|
|
|
procedure, pass(a) :: arwsum => psb_lc_coo_arwsum
|
|
|
|
procedure, pass(a) :: arwsum => psb_lc_coo_arwsum
|
|
|
|
procedure, pass(a) :: colsum => psb_lc_coo_colsum
|
|
|
|
procedure, pass(a) :: colsum => psb_lc_coo_colsum
|
|
|
|
procedure, pass(a) :: aclsum => psb_lc_coo_aclsum
|
|
|
|
procedure, pass(a) :: aclsum => psb_lc_coo_aclsum
|
|
|
|
|
|
|
|
procedure, pass(a) :: scalpid => psb_lc_coo_scalplusidentity
|
|
|
|
|
|
|
|
|
|
|
|
!
|
|
|
|
!
|
|
|
|
! This is COO specific
|
|
|
|
! This is COO specific
|
|
|
@ -1454,6 +1458,23 @@ module psb_c_base_mat_mod
|
|
|
|
end subroutine psb_c_base_scal
|
|
|
|
end subroutine psb_c_base_scal
|
|
|
|
end interface
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
|
|
|
|
|
|
|
|
!> Function base_scalplusidentity:
|
|
|
|
|
|
|
|
!! \memberof psb_c_base_sparse_mat
|
|
|
|
|
|
|
|
!! \brief Scale a matrix by a vector and sums an identity
|
|
|
|
|
|
|
|
!!
|
|
|
|
|
|
|
|
!! \param d Scaling
|
|
|
|
|
|
|
|
!! \param info return code
|
|
|
|
|
|
|
|
!
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
subroutine psb_c_base_scalplusidentity(d,a,info)
|
|
|
|
|
|
|
|
import
|
|
|
|
|
|
|
|
class(psb_c_base_sparse_mat), intent(inout) :: a
|
|
|
|
|
|
|
|
complex(psb_spk_), intent(in) :: d
|
|
|
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
|
|
|
end subroutine psb_c_base_scalplusidentity
|
|
|
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
|
|
!
|
|
|
|
!
|
|
|
|
!> Function base_maxval:
|
|
|
|
!> Function base_maxval:
|
|
|
|
!! \memberof psb_c_base_sparse_mat
|
|
|
|
!! \memberof psb_c_base_sparse_mat
|
|
|
@ -2099,6 +2120,17 @@ module psb_c_base_mat_mod
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
end subroutine psb_c_coo_scals
|
|
|
|
end subroutine psb_c_coo_scals
|
|
|
|
end interface
|
|
|
|
end interface
|
|
|
|
|
|
|
|
!>
|
|
|
|
|
|
|
|
!! \memberof psb_c_coo_sparse_mat
|
|
|
|
|
|
|
|
!! \see psb_c_base_mat_mod::psb_c_base_scalplusidentity
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
subroutine psb_c_coo_scalplusidentity(d,a,info)
|
|
|
|
|
|
|
|
import
|
|
|
|
|
|
|
|
class(psb_c_coo_sparse_mat), intent(inout) :: a
|
|
|
|
|
|
|
|
complex(psb_spk_), intent(in) :: d
|
|
|
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
|
|
|
end subroutine psb_c_coo_scalplusidentity
|
|
|
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
|
|
! == =================
|
|
|
|
! == =================
|
|
|
|
!
|
|
|
|
!
|
|
|
@ -2839,6 +2871,23 @@ module psb_c_base_mat_mod
|
|
|
|
end subroutine psb_lc_base_scals
|
|
|
|
end subroutine psb_lc_base_scals
|
|
|
|
end interface
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
|
|
|
|
|
|
|
|
!> Function base_scalsplusidentity:
|
|
|
|
|
|
|
|
!! \memberof psb_lc_base_sparse_mat
|
|
|
|
|
|
|
|
!! \brief Scale a matrix by a single scalar value and adds identity
|
|
|
|
|
|
|
|
!!
|
|
|
|
|
|
|
|
!! \param d Scaling factor
|
|
|
|
|
|
|
|
!! \param info return code
|
|
|
|
|
|
|
|
!
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
subroutine psb_lc_base_scalplusidentity(d,a,info)
|
|
|
|
|
|
|
|
import
|
|
|
|
|
|
|
|
class(psb_lc_base_sparse_mat), intent(inout) :: a
|
|
|
|
|
|
|
|
complex(psb_spk_), intent(in) :: d
|
|
|
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
|
|
|
end subroutine psb_lc_base_scalplusidentity
|
|
|
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
|
|
!
|
|
|
|
!
|
|
|
|
!> Function base_scal:
|
|
|
|
!> Function base_scal:
|
|
|
|
!! \memberof psb_lc_base_sparse_mat
|
|
|
|
!! \memberof psb_lc_base_sparse_mat
|
|
|
@ -3436,6 +3485,18 @@ module psb_c_base_mat_mod
|
|
|
|
end subroutine psb_lc_coo_scals
|
|
|
|
end subroutine psb_lc_coo_scals
|
|
|
|
end interface
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!>
|
|
|
|
|
|
|
|
!! \memberof psb_lc_coo_sparse_mat
|
|
|
|
|
|
|
|
!! \see psb_lc_base_mat_mod::psb_lc_base_scalplusidentity
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
subroutine psb_lc_coo_scalplusidentity(d,a,info)
|
|
|
|
|
|
|
|
import
|
|
|
|
|
|
|
|
class(psb_lc_coo_sparse_mat), intent(inout) :: a
|
|
|
|
|
|
|
|
complex(psb_spk_), intent(in) :: d
|
|
|
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
|
|
|
end subroutine psb_lc_coo_scalplusidentity
|
|
|
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
|
|
contains
|
|
|
|
contains
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -3899,6 +3960,3 @@ contains
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end module psb_c_base_mat_mod
|
|
|
|
end module psb_c_base_mat_mod
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|