You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ulia> A =BigFloat.(randn(5,5)); b =BigFloat.(randn(5));
julia>resize!(copy(qr(A) \ b), 3)
3-element Array{BigFloat,1}:1.1283432250394525630136322167252436900762819187976199294186406099009949690108220.30468988735820317400877733162199133402279164027141822423613821856207642531978020.9309977144595598360049286776484760070368732518629144855630406146909686632942985
I could be wrong, but I think this is because the output vector is shared with a temporary vector in the QR factorization (maybe a Householder reflector?) that doesn't get cleared before its use in the solve phase. Copying the output places a memory barrier between it and a temporary array. (Not saying this is ideal.)
Note that lu works fine (perhaps because it implements elementary row operations in-place, i.e. without any temporary storage.)
This is a bit surprising:
I tried to debug, the culprit seems to be somewhere in the orthogonal
lmul!
:https://github.com/JuliaLang/julia/blob/efad4e3134540c7a45d385b047f145cb0da6d385/stdlib/LinearAlgebra/src/qr.jl#L634
But nothing stands out...
The text was updated successfully, but these errors were encountered: