File tree Expand file tree Collapse file tree 1 file changed +8
-7
lines changed Expand file tree Collapse file tree 1 file changed +8
-7
lines changed Original file line number Diff line number Diff line change @@ -95,23 +95,24 @@ function simplifying_dot(x,y)
95
95
end
96
96
end
97
97
98
- function ldiv (A:: LU , b)
99
- # unit lower triangular solve first:
98
+ function ldiv (AA, A:: LU , b)
100
99
L = A. L
101
100
U = A. U
102
101
m, n = size (L)
103
102
x = Vector {Any} (undef, length (b))
104
103
b = b[A. p]
105
- for i= 1 : n
106
- sub = simplifying_dot (b[1 : i- 1 ], L[i, 1 : i- 1 ])
107
- x[i] = _iszero (sub) ? b[i] : b[i] - sub
108
- end
109
104
110
105
for i= n: - 1 : 1
111
106
sub = simplifying_dot (b[i+ 1 : end ], U[i,i+ 1 : end ])
112
107
den = U[i,i]
108
+ x[i] = _iszero (sub) ? b[i] : b[i] - sub
109
+ x[i] = _isone (den) ? x[i] : _isone (- den) ? - x[i] : x[i] / den
110
+ end
111
+
112
+ # unit lower triangular solve first:
113
+ for i= 1 : n
114
+ sub = simplifying_dot (x[1 : i- 1 ], L[i, 1 : i- 1 ])
113
115
x[i] = _iszero (sub) ? x[i] : x[i] - sub
114
- x[i] = _isone (U[i,i]) ? x[i] : _isone (- U[i,i]) ? - x[i] : x[i] / U[i,i]
115
116
end
116
117
x
117
118
end
You can’t perform that action at this time.
0 commit comments