mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-06 22:55:08 +00:00
Use less memory, check on symbmm
This commit is contained in:
@@ -4238,7 +4238,7 @@ subroutine psb_ccsrspspmm(a,b,c,info)
|
||||
! Estimate number of nonzeros on output.
|
||||
nza = a%get_nzeros()
|
||||
nzb = b%get_nzeros()
|
||||
nzc = max(nint(0.5*(nza+nzb)),ma,mb,na,nb)
|
||||
nzc = max(nint(0.25*(nza+nzb)),ma,nb)
|
||||
call c%allocate(ma,nb,nzc)
|
||||
|
||||
call csr_spspmm(a,b,c,info)
|
||||
@@ -4276,9 +4276,9 @@ contains
|
||||
|
||||
nze = min(size(c%val),size(c%ja))
|
||||
isz = max(ma,na,mb,nb)
|
||||
call psb_realloc(isz,row,info)
|
||||
if (info == 0) call psb_realloc(isz,idxs,info)
|
||||
if (info == 0) call psb_realloc(isz,irow,info)
|
||||
call psb_realloc(nb,row,info)
|
||||
if (info == 0) call psb_realloc(na,idxs,info)
|
||||
if (info == 0) call psb_realloc(nb,irow,info)
|
||||
if (info /= 0) return
|
||||
row = dzero
|
||||
irow = 0
|
||||
@@ -6613,7 +6613,7 @@ subroutine psb_lccsrspspmm(a,b,c,info)
|
||||
|
||||
nza = a%get_nzeros()
|
||||
nzb = b%get_nzeros()
|
||||
nzc = 2*(nza+nzb)
|
||||
nzc = max(nint(0.25*(nza+nzb)),ma,nb)
|
||||
call c%allocate(ma,nb,nzc)
|
||||
|
||||
call csr_spspmm(a,b,c,info)
|
||||
@@ -6651,9 +6651,9 @@ contains
|
||||
|
||||
nze = min(size(c%val),size(c%ja))
|
||||
isz = max(ma,na,mb,nb)
|
||||
call psb_realloc(isz,row,info)
|
||||
if (info == 0) call psb_realloc(isz,idxs,info)
|
||||
if (info == 0) call psb_realloc(isz,irow,info)
|
||||
call psb_realloc(nb,row,info)
|
||||
if (info == 0) call psb_realloc(na,idxs,info)
|
||||
if (info == 0) call psb_realloc(nb,irow,info)
|
||||
if (info /= 0) return
|
||||
row = dzero
|
||||
irow = 0
|
||||
|
||||
@@ -4238,7 +4238,7 @@ subroutine psb_dcsrspspmm(a,b,c,info)
|
||||
! Estimate number of nonzeros on output.
|
||||
nza = a%get_nzeros()
|
||||
nzb = b%get_nzeros()
|
||||
nzc = max(nint(0.5*(nza+nzb)),ma,mb,na,nb)
|
||||
nzc = max(nint(0.25*(nza+nzb)),ma,nb)
|
||||
call c%allocate(ma,nb,nzc)
|
||||
|
||||
call csr_spspmm(a,b,c,info)
|
||||
@@ -4276,9 +4276,9 @@ contains
|
||||
|
||||
nze = min(size(c%val),size(c%ja))
|
||||
isz = max(ma,na,mb,nb)
|
||||
call psb_realloc(isz,row,info)
|
||||
if (info == 0) call psb_realloc(isz,idxs,info)
|
||||
if (info == 0) call psb_realloc(isz,irow,info)
|
||||
call psb_realloc(nb,row,info)
|
||||
if (info == 0) call psb_realloc(na,idxs,info)
|
||||
if (info == 0) call psb_realloc(nb,irow,info)
|
||||
if (info /= 0) return
|
||||
row = dzero
|
||||
irow = 0
|
||||
@@ -6613,7 +6613,7 @@ subroutine psb_ldcsrspspmm(a,b,c,info)
|
||||
|
||||
nza = a%get_nzeros()
|
||||
nzb = b%get_nzeros()
|
||||
nzc = 2*(nza+nzb)
|
||||
nzc = max(nint(0.25*(nza+nzb)),ma,nb)
|
||||
call c%allocate(ma,nb,nzc)
|
||||
|
||||
call csr_spspmm(a,b,c,info)
|
||||
@@ -6651,9 +6651,9 @@ contains
|
||||
|
||||
nze = min(size(c%val),size(c%ja))
|
||||
isz = max(ma,na,mb,nb)
|
||||
call psb_realloc(isz,row,info)
|
||||
if (info == 0) call psb_realloc(isz,idxs,info)
|
||||
if (info == 0) call psb_realloc(isz,irow,info)
|
||||
call psb_realloc(nb,row,info)
|
||||
if (info == 0) call psb_realloc(na,idxs,info)
|
||||
if (info == 0) call psb_realloc(nb,irow,info)
|
||||
if (info /= 0) return
|
||||
row = dzero
|
||||
irow = 0
|
||||
|
||||
@@ -4238,7 +4238,7 @@ subroutine psb_scsrspspmm(a,b,c,info)
|
||||
! Estimate number of nonzeros on output.
|
||||
nza = a%get_nzeros()
|
||||
nzb = b%get_nzeros()
|
||||
nzc = max(nint(0.5*(nza+nzb)),ma,mb,na,nb)
|
||||
nzc = max(nint(0.25*(nza+nzb)),ma,nb)
|
||||
call c%allocate(ma,nb,nzc)
|
||||
|
||||
call csr_spspmm(a,b,c,info)
|
||||
@@ -4276,9 +4276,9 @@ contains
|
||||
|
||||
nze = min(size(c%val),size(c%ja))
|
||||
isz = max(ma,na,mb,nb)
|
||||
call psb_realloc(isz,row,info)
|
||||
if (info == 0) call psb_realloc(isz,idxs,info)
|
||||
if (info == 0) call psb_realloc(isz,irow,info)
|
||||
call psb_realloc(nb,row,info)
|
||||
if (info == 0) call psb_realloc(na,idxs,info)
|
||||
if (info == 0) call psb_realloc(nb,irow,info)
|
||||
if (info /= 0) return
|
||||
row = dzero
|
||||
irow = 0
|
||||
@@ -6613,7 +6613,7 @@ subroutine psb_lscsrspspmm(a,b,c,info)
|
||||
|
||||
nza = a%get_nzeros()
|
||||
nzb = b%get_nzeros()
|
||||
nzc = 2*(nza+nzb)
|
||||
nzc = max(nint(0.25*(nza+nzb)),ma,nb)
|
||||
call c%allocate(ma,nb,nzc)
|
||||
|
||||
call csr_spspmm(a,b,c,info)
|
||||
@@ -6651,9 +6651,9 @@ contains
|
||||
|
||||
nze = min(size(c%val),size(c%ja))
|
||||
isz = max(ma,na,mb,nb)
|
||||
call psb_realloc(isz,row,info)
|
||||
if (info == 0) call psb_realloc(isz,idxs,info)
|
||||
if (info == 0) call psb_realloc(isz,irow,info)
|
||||
call psb_realloc(nb,row,info)
|
||||
if (info == 0) call psb_realloc(na,idxs,info)
|
||||
if (info == 0) call psb_realloc(nb,irow,info)
|
||||
if (info /= 0) return
|
||||
row = dzero
|
||||
irow = 0
|
||||
|
||||
@@ -4238,7 +4238,7 @@ subroutine psb_zcsrspspmm(a,b,c,info)
|
||||
! Estimate number of nonzeros on output.
|
||||
nza = a%get_nzeros()
|
||||
nzb = b%get_nzeros()
|
||||
nzc = max(nint(0.5*(nza+nzb)),ma,mb,na,nb)
|
||||
nzc = max(nint(0.25*(nza+nzb)),ma,nb)
|
||||
call c%allocate(ma,nb,nzc)
|
||||
|
||||
call csr_spspmm(a,b,c,info)
|
||||
@@ -4276,9 +4276,9 @@ contains
|
||||
|
||||
nze = min(size(c%val),size(c%ja))
|
||||
isz = max(ma,na,mb,nb)
|
||||
call psb_realloc(isz,row,info)
|
||||
if (info == 0) call psb_realloc(isz,idxs,info)
|
||||
if (info == 0) call psb_realloc(isz,irow,info)
|
||||
call psb_realloc(nb,row,info)
|
||||
if (info == 0) call psb_realloc(na,idxs,info)
|
||||
if (info == 0) call psb_realloc(nb,irow,info)
|
||||
if (info /= 0) return
|
||||
row = dzero
|
||||
irow = 0
|
||||
@@ -6613,7 +6613,7 @@ subroutine psb_lzcsrspspmm(a,b,c,info)
|
||||
|
||||
nza = a%get_nzeros()
|
||||
nzb = b%get_nzeros()
|
||||
nzc = 2*(nza+nzb)
|
||||
nzc = max(nint(0.25*(nza+nzb)),ma,nb)
|
||||
call c%allocate(ma,nb,nzc)
|
||||
|
||||
call csr_spspmm(a,b,c,info)
|
||||
@@ -6651,9 +6651,9 @@ contains
|
||||
|
||||
nze = min(size(c%val),size(c%ja))
|
||||
isz = max(ma,na,mb,nb)
|
||||
call psb_realloc(isz,row,info)
|
||||
if (info == 0) call psb_realloc(isz,idxs,info)
|
||||
if (info == 0) call psb_realloc(isz,irow,info)
|
||||
call psb_realloc(nb,row,info)
|
||||
if (info == 0) call psb_realloc(na,idxs,info)
|
||||
if (info == 0) call psb_realloc(nb,irow,info)
|
||||
if (info /= 0) return
|
||||
row = dzero
|
||||
irow = 0
|
||||
|
||||
@@ -85,6 +85,7 @@ end subroutine psb_csymbmm
|
||||
subroutine psb_cbase_symbmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_sort_mod
|
||||
use psb_serial_mod, only : symbmm
|
||||
implicit none
|
||||
|
||||
class(psb_c_base_sparse_mat), intent(in) :: a,b
|
||||
|
||||
@@ -85,6 +85,7 @@ end subroutine psb_dsymbmm
|
||||
subroutine psb_dbase_symbmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_sort_mod
|
||||
use psb_serial_mod, only : symbmm
|
||||
implicit none
|
||||
|
||||
class(psb_d_base_sparse_mat), intent(in) :: a,b
|
||||
|
||||
@@ -85,6 +85,7 @@ end subroutine psb_ssymbmm
|
||||
subroutine psb_sbase_symbmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_sort_mod
|
||||
use psb_serial_mod, only : symbmm
|
||||
implicit none
|
||||
|
||||
class(psb_s_base_sparse_mat), intent(in) :: a,b
|
||||
|
||||
@@ -85,6 +85,7 @@ end subroutine psb_zsymbmm
|
||||
subroutine psb_zbase_symbmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_sort_mod
|
||||
use psb_serial_mod, only : symbmm
|
||||
implicit none
|
||||
|
||||
class(psb_z_base_sparse_mat), intent(in) :: a,b
|
||||
|
||||
Reference in New Issue
Block a user