Skip to content

Commit 8c2aa90

Browse files
committed
fix solve forward/backward
1 parent 5e15a33 commit 8c2aa90

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

src/stdlib_linalg_iterative_aux.fypp

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,33 +20,29 @@ contains
2020
${t}$, intent(in) :: L(:,:)
2121
${t}$, intent(in) :: b(:)
2222
${t}$, intent(inout) :: x(:)
23-
${t}$ :: aux
2423

2524
integer(ilp) :: i, j, m
2625

27-
do i = 1, size(L,dim=1)
28-
aux = zero_${s}$
29-
do j = 1, i-1
30-
aux = aux + L(i,j)*x(j)
26+
x = zero_${s}$
27+
do j = 1, size(L,dim=1)
28+
x(j) = x(j) + b(j)
29+
do i = j+1, size(L,dim=1)
30+
x(i) = x(i) - L(i,j)*x(j)
3131
end do
32-
x(i) = b(i) - aux
3332
end do
3433
end subroutine
3534

3635
module subroutine solve_backward_triangular_dense_${s}$(U,b,x)
3736
${t}$, intent(in) :: U(:,:)
3837
${t}$, intent(in) :: b(:)
3938
${t}$, intent(inout) :: x(:)
40-
${t}$ :: aux
41-
${t}$ :: baux(size(x))
4239

4340
integer(ilp) :: i, j, m
4441

45-
baux = zero_${s}$
46-
do i = size(U,dim=1), 1, -1
47-
x(i) = x(i) - baux(i)
48-
do j = i+1, size(U,dim=2)
49-
baux(j) = baux(j) + U(i,j)*x(i)
42+
do j = size(U,dim=1), 1, -1
43+
x(j) = b(j)
44+
do i = 1, j-1
45+
x(i) = x(i) - U(i,j)*x(j)
5046
end do
5147
end do
5248
end subroutine

0 commit comments

Comments
 (0)