Closed franckgaga closed 8 months ago
I think this issue is related to a new type AdjointFactorization
introduced in v1.10, which is breaking (see #46874). Unfortunately, in the next two weeks I will be not available to look for a fix, but perhaps @dkarrasch could help in this issue.
This looks like an oversight in LinearMaps.jl
: the product of a matrix and a linear map yields a LinearMaps.CompositeMap
, but AbstractQ
s no longer subtype AbstractMatrix
and hence are not covered by that method anymore. I'll take a look at it tomorrow. Hopefully, that will fix the issue.
Actually, it's something else. It's an unintended type piracy that occured due to changes in Base/LinearAlgebra. https://github.com/JuliaLang/julia/pull/51132 should help here, together with corresponding changes in LinearMaps.jl.
The nightly tests with Julia Version 1.11.0-DEV.448
, produced plenty of errors, of which I picked out only a few below with the corresponding Julia statements:
1. MethodError: no method matching schur(::LinearMaps.BlockMap{Float64, Tuple{LinearMaps.WrappedMap{Float64, Matrix{Float64}}, LinearMaps.WrappedMap{Float64, Matrix{Float64}}, LinearMaps.UniformScalingMap{Float64}, LinearMaps.WrappedMap{Float64, Matrix{Float64}}}, Tuple{Int64, Int64}})
S = schur([A -G; -Q -copy(A')])
2. MethodError: no method matching schur(::LinearMaps.BlockMap{Float64, Tuple{LinearMaps.WrappedMap{Float64, Matrix{Float64}}, LinearMaps.WrappedMap{Float64, Matrix{Float64}}, LinearMaps.UniformScalingMap{Float64}, LinearMaps.WrappedMap{Float64, LinearAlgebra.Adjoint{Float64, Matrix{Float64}}}}, Tuple{Int64, Int64}}, ::Matrix{Float64})
L = [ A -G; -Q -A']
P = [ E zeros(T,n,n); zeros(T,n,n) E']
LPS = schur(L,P)
3. MethodError: no method matching *(::LinearAlgebra.QRCompactWYQ{Float64, Matrix{Float64}, Matrix{Float64}}, ::LinearMaps.BlockMap{Bool, Tuple{LinearMaps.WrappedMap{Bool, Matrix{Bool}}, LinearMaps.UniformScalingMap{Bool}}, Tuple{Int64, Int64}})
n2 = n+n;
W = qr(Matrix([S; B; R]));
cond(W.R) * epsm < 1 || error("The extended Hamiltonian/skew-Hamiltonian pencil is not regular")
z = W.Q*[fill(false,m,n2); I ]
4. MethodError: no method matching *(::LinearAlgebra.AdjointQ{Float64, LinearAlgebra.QRCompactWYQ{Float64, Matrix{Float64}, Matrix{Float64}}}, ::LinearMaps.BlockMap{Float64, Tuple{LinearMaps.WrappedMap{Float64, Matrix{Float64}}, LinearMaps.UniformScalingMap{Bool}, Vararg{LinearMaps.WrappedMap{Float64, Matrix{Float64}}, 4}}, Tuple{Int64, Int64}})
n2 = n+n;
F = qr([A'; -B'])
L2 = F.Q'*[-Q E' -S; copy(S') zeros(T,m,n) R]
While with the current Julia version v1.9.3 there are no problems, I am afraid it will be not possible to register new versions of the package as soon as v1.10 will be the current version. Is there a realistic chance to get rid of these errors for the next Julia version or should I try to find a workarround in each case to avoid errors? Any suggestion in this respect is welcome.
I have launched the necessary PRs both in Julia Base/LinearAlgebra and LinearMaps.jl. For the time being, you could simply ignore CI on v1.10/nightly and release new versions as long as the older versions pass.
It seems to work now on the beta
channel of juliaup
, that is v1.10.0-rc1
. I will close the issue and you can re-open it if it comes back.
Hi,
Thanks for all the great works! It's great to have an OO alternative to MATLAB.
On Julia v.1.10.0-beta2 (you can install it with
UpdateJulia.jl
orjuliaup
),ared
function crash.If I do:
I get this error:
and the complete types with
show(err)
are:Francis Gagnon