29
29
function gs! (A, b, x, start, step, stop)
30
30
n = size (A, 1 )
31
31
z = zero (eltype (A))
32
- @inbounds for col = 1 : size (x, 2 )
33
- for i = start: step: stop
32
+ @inbounds for col in 1 : size (x, 2 )
33
+ for i in start: step: stop
34
34
rsum = z
35
35
d = z
36
36
for j in nzrange (A, i)
37
37
row = A. rowval[j]
38
38
val = A. nzval[j]
39
39
d = ifelse (i == row, val, d)
40
- rsum += ifelse (i == row, 0 , val * x[row, col])
40
+ rsum += ifelse (i == row, z , val * x[row, col])
41
41
end
42
42
x[i, col] = ifelse (d == 0 , x[i, col], (b[i, col] - rsum) / d)
43
43
end
@@ -57,6 +57,7 @@ function (jacobi::Jacobi)(A, x, b)
57
57
ω = jacobi. ω
58
58
one = Base. one (eltype (A))
59
59
temp = jacobi. temp
60
+ z = zero (eltype (A))
60
61
61
62
for i in 1 : jacobi. iter
62
63
@inbounds for col = 1 : size (x, 2 )
@@ -65,15 +66,15 @@ function (jacobi::Jacobi)(A, x, b)
65
66
end
66
67
67
68
for i = 1 : size (A, 1 )
68
- rsum = zero ( eltype (A))
69
- diag = zero ( eltype (A))
69
+ rsum = z
70
+ diag = z
70
71
71
72
for j in nzrange (A, i)
72
73
row = A. rowval[j]
73
74
val = A. nzval[j]
74
75
75
76
diag = ifelse (row == i, val, diag)
76
- rsum += ifelse (row == i, 0 , val * temp[row, col])
77
+ rsum += ifelse (row == i, z , val * temp[row, col])
77
78
end
78
79
79
80
xcand = (one - ω) * temp[i, col] + ω * ((b[i, col] - rsum) / diag)
@@ -116,15 +117,16 @@ function (pjacobmapper::ParallelJacobiMapper)(i)
116
117
col = pjacobmapper.col
117
118
118
119
one = Base.one(eltype(A))
119
- rsum = zero(eltype(A))
120
- diag = zero(eltype(A))
120
+ z = zero(eltype(A))
121
+ rsum = z
122
+ diag = z
121
123
122
124
for j in nzrange(A, i)
123
125
row = A.rowval[j]
124
126
val = A.nzval[j]
125
127
126
128
diag = ifelse(row == i, val, diag)
127
- rsum += ifelse(row == i, 0 , val * temp[row, col])
129
+ rsum += ifelse(row == i, z , val * temp[row, col])
128
130
end
129
131
xcand = (one - ω) * temp[i, col] + ω * ((b[i, col] - rsum) / diag)
130
132
0 commit comments