In L1-GS only add nonzero D1 entries.

This commit is contained in:
Salvatore Filippone
2020-05-27 10:50:06 +02:00
parent 108b4dd00d
commit adc5aebd6b
8 changed files with 112 additions and 64 deletions
+14 -8
View File
@@ -95,11 +95,14 @@ subroutine mld_c_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = -sv%xtra(k)
if (sv%xtra(k) /= szero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = -sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%l%mv_from(tcoo)
@@ -109,11 +112,14 @@ subroutine mld_c_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = sv%xtra(k)
if (sv%xtra(k) /= szero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%u%mv_from(tcoo)
end block
+14 -8
View File
@@ -93,11 +93,14 @@ subroutine mld_c_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = sv%xtra(k)
if (sv%xtra(k) /= szero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%l%mv_from(tcoo)
@@ -107,11 +110,14 @@ subroutine mld_c_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = -sv%xtra(k)
if (sv%xtra(k) /= szero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = -sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%u%mv_from(tcoo)
end block
+14 -8
View File
@@ -95,11 +95,14 @@ subroutine mld_d_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = -sv%xtra(k)
if (sv%xtra(k) /= dzero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = -sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%l%mv_from(tcoo)
@@ -109,11 +112,14 @@ subroutine mld_d_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = sv%xtra(k)
if (sv%xtra(k) /= dzero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%u%mv_from(tcoo)
end block
+14 -8
View File
@@ -93,11 +93,14 @@ subroutine mld_d_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = sv%xtra(k)
if (sv%xtra(k) /= dzero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%l%mv_from(tcoo)
@@ -107,11 +110,14 @@ subroutine mld_d_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = -sv%xtra(k)
if (sv%xtra(k) /= dzero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = -sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%u%mv_from(tcoo)
end block
+14 -8
View File
@@ -95,11 +95,14 @@ subroutine mld_s_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = -sv%xtra(k)
if (sv%xtra(k) /= szero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = -sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%l%mv_from(tcoo)
@@ -109,11 +112,14 @@ subroutine mld_s_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = sv%xtra(k)
if (sv%xtra(k) /= szero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%u%mv_from(tcoo)
end block
+14 -8
View File
@@ -93,11 +93,14 @@ subroutine mld_s_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = sv%xtra(k)
if (sv%xtra(k) /= szero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%l%mv_from(tcoo)
@@ -107,11 +110,14 @@ subroutine mld_s_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = -sv%xtra(k)
if (sv%xtra(k) /= szero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = -sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%u%mv_from(tcoo)
end block
+14 -8
View File
@@ -95,11 +95,14 @@ subroutine mld_z_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = -sv%xtra(k)
if (sv%xtra(k) /= dzero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = -sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%l%mv_from(tcoo)
@@ -109,11 +112,14 @@ subroutine mld_z_bwgs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = sv%xtra(k)
if (sv%xtra(k) /= dzero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%u%mv_from(tcoo)
end block
+14 -8
View File
@@ -93,11 +93,14 @@ subroutine mld_z_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = sv%xtra(k)
if (sv%xtra(k) /= dzero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%l%mv_from(tcoo)
@@ -107,11 +110,14 @@ subroutine mld_z_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
call tcoo%ensure_size(nz+nrm)
call tcoo%set_dupl(psb_dupl_add_)
do k=1,nrm
tcoo%ia(nz+k) = k
tcoo%ja(nz+k) = k
tcoo%val(nz+k) = -sv%xtra(k)
if (sv%xtra(k) /= dzero) then
nz = nz + 1
tcoo%ia(nz) = k
tcoo%ja(nz) = k
tcoo%val(nz) = -sv%xtra(k)
end if
end do
call tcoo%set_nzeros(nz+nrm)
call tcoo%set_nzeros(nz)
call tcoo%fix(info)
call sv%u%mv_from(tcoo)
end block