new alg for qr

This commit is contained in:
elvis
2023-11-20 15:28:24 +01:00
parent 1e9a248822
commit b23c4524d3
3 changed files with 1734 additions and 22 deletions

View File

@ -16,7 +16,6 @@ end
function qrhous!(A::AbstractMatrix{T})::QRthin{T} where T
m, n = size(A)
d = zeros(n)
@inbounds begin
for j 1:n
@ -25,7 +24,7 @@ function qrhous!(A::AbstractMatrix{T})::QRthin{T} where T
d[j]= copysign(s, -A[j,j])
fak = sqrt(s * (s + abs(A[j,j])))
A[j,j] -= d[j]
A[j:m, j] ./= fak
if j < n
@ -44,7 +43,8 @@ function qyhous(A::QRthin{T}, y::AbstractArray{T}) where T
m, n = size(A.A)
z = deepcopy(y)
for j n:-1:1
z[j:m] = z[j:m] - A.A[j:m, j] * (A.A[j:m, j]' * z[j:m])
# z[j:m] = z[j:m] - A.A[j:m, j] * (A.A[j:m, j]' * z[j:m])
z[j:m] -= A.A[j:m, j] .* dot(A.A[j:m, j], z[j:m])
end
return z
end