psblas-3.3-maint:

base/psblas/psb_cspmm.f90
 base/psblas/psb_dspmm.f90
 base/psblas/psb_sspmm.f90
 base/psblas/psb_zspmm.f90

Fix for transpose spmm_vect.
psblas-3.3-maint
Salvatore Filippone 11 years ago
parent e922cc52b4
commit 503f8c2b99

@ -813,8 +813,11 @@ subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,&
call psi_ovrl_save(x%v,xvsave,desc_a,info) call psi_ovrl_save(x%v,xvsave,desc_a,info)
if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info)
!!! THIS SHOULD BE FIXED !!! But beta is almost never /= 0 if (beta /= czero) then
!!$ yp(nrow+1:ncol) = czero call y%sync()
y%v%v(nrow+1:ncol) = czero
call y%v%set_host()
end if
! local Matrix-vector product ! local Matrix-vector product
if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_)

@ -813,8 +813,11 @@ subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,&
call psi_ovrl_save(x%v,xvsave,desc_a,info) call psi_ovrl_save(x%v,xvsave,desc_a,info)
if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info)
!!! THIS SHOULD BE FIXED !!! But beta is almost never /= 0 if (beta /= dzero) then
!!$ yp(nrow+1:ncol) = dzero call y%sync()
y%v%v(nrow+1:ncol) = dzero
call y%v%set_host()
end if
! local Matrix-vector product ! local Matrix-vector product
if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_)

@ -813,8 +813,11 @@ subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,&
call psi_ovrl_save(x%v,xvsave,desc_a,info) call psi_ovrl_save(x%v,xvsave,desc_a,info)
if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info)
!!! THIS SHOULD BE FIXED !!! But beta is almost never /= 0 if (beta /= szero) then
!!$ yp(nrow+1:ncol) = szero call y%sync()
y%v%v(nrow+1:ncol) = szero
call y%v%set_host()
end if
! local Matrix-vector product ! local Matrix-vector product
if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_)

@ -813,8 +813,11 @@ subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,&
call psi_ovrl_save(x%v,xvsave,desc_a,info) call psi_ovrl_save(x%v,xvsave,desc_a,info)
if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info)
!!! THIS SHOULD BE FIXED !!! But beta is almost never /= 0 if (beta /= zzero) then
!!$ yp(nrow+1:ncol) = zzero call y%sync()
y%v%v(nrow+1:ncol) = zzero
call y%v%set_host()
end if
! local Matrix-vector product ! local Matrix-vector product
if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_)

Loading…
Cancel
Save