56 SUBROUTINE zgejsv(N, A, B, X, MAX_ITER, TOL, OMEGA, INFO)
64 INTEGER :: N, MAX_ITER, INFO
65 DOUBLE COMPLEX :: A(*), B(N), X(N)
66 DOUBLE PRECISION :: TOL, OMEGA
70 INTEGER :: I, J, K, INDEX
71 DOUBLE COMPLEX :: X_NEW(N)
73 DOUBLE PRECISION :: DIFF, MAX_DIFF
88 index = (i - 1) * n + j
89 s = s + a(index) * x(j)
94 index = (i - 1) * n + i
95 IF (a(index) .EQ. (0.0d0,0.0d0))
THEN
101 x_new(i) = (b(i) - s) / a(index)
102 x_new(i) = x(i) + omega * (x_new(i) - x(i))
109 diff = abs(x_new(i) - x(i))
110 IF (diff .GT. max_diff) max_diff = diff
114 IF (max_diff .LT. tol)
THEN
subroutine zgejsv(n, a, b, x, max_iter, tol, omega, info)