mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
Use new TRIL/TRIU in GS build to improve performance.
This commit is contained in:
@@ -79,9 +79,8 @@ subroutine mld_c_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
|
||||
!
|
||||
! This cuts out the off-diagonal part, because it's supposed to
|
||||
! be handled by the outer Jacobi smoother.
|
||||
!
|
||||
call a%tril(sv%l,info,diag=-1)
|
||||
call a%triu(sv%u,info,jmax=nrow_a)
|
||||
!
|
||||
call a%tril(sv%l,info,diag=-1,jmax=nrow_a,u=sv%u)
|
||||
|
||||
else
|
||||
|
||||
|
||||
@@ -72,16 +72,13 @@ subroutine mld_c_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
|
||||
|
||||
nrow_a = a%get_nrows()
|
||||
nztota = a%get_nzeros()
|
||||
!!$ if (present(b)) then
|
||||
!!$ nztota = nztota + b%get_nzeros()
|
||||
!!$ end if
|
||||
|
||||
if (sv%eps <= dzero) then
|
||||
!
|
||||
! This cuts out the off-diagonal part, because it's supposed to
|
||||
! be handled by the outer Jacobi smoother.
|
||||
!
|
||||
call a%tril(sv%l,info)
|
||||
call a%triu(sv%u,info,diag=1,jmax=nrow_a)
|
||||
call a%tril(sv%l,info,diag=0,jmax=nrow_a,u=sv%u)
|
||||
|
||||
else
|
||||
|
||||
|
||||
@@ -79,9 +79,8 @@ subroutine mld_d_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
|
||||
!
|
||||
! This cuts out the off-diagonal part, because it's supposed to
|
||||
! be handled by the outer Jacobi smoother.
|
||||
!
|
||||
call a%tril(sv%l,info,diag=-1)
|
||||
call a%triu(sv%u,info,jmax=nrow_a)
|
||||
!
|
||||
call a%tril(sv%l,info,diag=-1,jmax=nrow_a,u=sv%u)
|
||||
|
||||
else
|
||||
|
||||
|
||||
@@ -72,16 +72,13 @@ subroutine mld_d_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
|
||||
|
||||
nrow_a = a%get_nrows()
|
||||
nztota = a%get_nzeros()
|
||||
!!$ if (present(b)) then
|
||||
!!$ nztota = nztota + b%get_nzeros()
|
||||
!!$ end if
|
||||
|
||||
if (sv%eps <= dzero) then
|
||||
!
|
||||
! This cuts out the off-diagonal part, because it's supposed to
|
||||
! be handled by the outer Jacobi smoother.
|
||||
!
|
||||
call a%tril(sv%l,info)
|
||||
call a%triu(sv%u,info,diag=1,jmax=nrow_a)
|
||||
call a%tril(sv%l,info,diag=0,jmax=nrow_a,u=sv%u)
|
||||
|
||||
else
|
||||
|
||||
|
||||
@@ -79,9 +79,8 @@ subroutine mld_s_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
|
||||
!
|
||||
! This cuts out the off-diagonal part, because it's supposed to
|
||||
! be handled by the outer Jacobi smoother.
|
||||
!
|
||||
call a%tril(sv%l,info,diag=-1)
|
||||
call a%triu(sv%u,info,jmax=nrow_a)
|
||||
!
|
||||
call a%tril(sv%l,info,diag=-1,jmax=nrow_a,u=sv%u)
|
||||
|
||||
else
|
||||
|
||||
|
||||
@@ -72,16 +72,13 @@ subroutine mld_s_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
|
||||
|
||||
nrow_a = a%get_nrows()
|
||||
nztota = a%get_nzeros()
|
||||
!!$ if (present(b)) then
|
||||
!!$ nztota = nztota + b%get_nzeros()
|
||||
!!$ end if
|
||||
|
||||
if (sv%eps <= dzero) then
|
||||
!
|
||||
! This cuts out the off-diagonal part, because it's supposed to
|
||||
! be handled by the outer Jacobi smoother.
|
||||
!
|
||||
call a%tril(sv%l,info)
|
||||
call a%triu(sv%u,info,diag=1,jmax=nrow_a)
|
||||
call a%tril(sv%l,info,diag=0,jmax=nrow_a,u=sv%u)
|
||||
|
||||
else
|
||||
|
||||
|
||||
@@ -79,9 +79,8 @@ subroutine mld_z_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
|
||||
!
|
||||
! This cuts out the off-diagonal part, because it's supposed to
|
||||
! be handled by the outer Jacobi smoother.
|
||||
!
|
||||
call a%tril(sv%l,info,diag=-1)
|
||||
call a%triu(sv%u,info,jmax=nrow_a)
|
||||
!
|
||||
call a%tril(sv%l,info,diag=-1,jmax=nrow_a,u=sv%u)
|
||||
|
||||
else
|
||||
|
||||
|
||||
@@ -72,16 +72,13 @@ subroutine mld_z_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
|
||||
|
||||
nrow_a = a%get_nrows()
|
||||
nztota = a%get_nzeros()
|
||||
!!$ if (present(b)) then
|
||||
!!$ nztota = nztota + b%get_nzeros()
|
||||
!!$ end if
|
||||
|
||||
if (sv%eps <= dzero) then
|
||||
!
|
||||
! This cuts out the off-diagonal part, because it's supposed to
|
||||
! be handled by the outer Jacobi smoother.
|
||||
!
|
||||
call a%tril(sv%l,info)
|
||||
call a%triu(sv%u,info,diag=1,jmax=nrow_a)
|
||||
call a%tril(sv%l,info,diag=0,jmax=nrow_a,u=sv%u)
|
||||
|
||||
else
|
||||
|
||||
|
||||
Reference in New Issue
Block a user