julia> using Krylov, LinearOperators
julia> A, B = rand(2, 2), rand(2, 2);
julia> block_gmres(A, B)
([0.041370389388870915 0.25094348322476523; 0.10937029411860183 0.31680627052050375], SimpleStats
niter: 1
solved: true
inconsistent: false
residuals: []
Aresiduals: []
κ₂(A): []
timer: 160.56μs
status: solution good enough given atol and rtol
)
julia> block_gmres(LinearOperator(A), B)
ERROR: MethodError: no method matching mul!(::Matrix{…}, ::LinearOperator{…}, ::Matrix{…}, ::Bool, ::Bool)
Closest candidates are:
mul!(::AbstractMatrix, ::LinearAlgebra.AbstractTriangular, ::AbstractMatrix, ::Number, ::Number)
@ LinearAlgebra ~/.julia/juliaup/julia-1.10.2+0.x64.linux.gnu/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:736
mul!(::AbstractMatrix, ::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.Diagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, ::AbstractMatrix, ::Number, ::Number)
@ LinearAlgebra ~/.julia/juliaup/julia-1.10.2+0.x64.linux.gnu/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:427
mul!(::AbstractVecOrMat, ::LinearAlgebra.UniformScaling, ::AbstractVecOrMat, ::Number, ::Number)
@ LinearAlgebra ~/.julia/juliaup/julia-1.10.2+0.x64.linux.gnu/share/julia/stdlib/v1.10/LinearAlgebra/src/uniformscaling.jl:284
...
Stacktrace:
[1] mul!
@ ~/.julia/juliaup/julia-1.10.2+0.x64.linux.gnu/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:237 [inlined]
[2] block_gmres!(solver::BlockGmresSolver{…}, A::LinearOperator{…}, B::Matrix{…}; M::LinearAlgebra.UniformScaling{…}, N::LinearAlgebra.UniformScaling{…}, ldiv::Bool, restart::Bool, reorthogonalization::Bool, atol::Float64, rtol::Float64, itmax::Int64, timemax::Float64, verbose::Int64, history::Bool, callback::Krylov.var"#29#36", iostream::Core.CoreSTDOUT)
@ Krylov ~/.julia/packages/Krylov/pv2NF/src/block_gmres.jl:242
[3] block_gmres!
@ ~/.julia/packages/Krylov/pv2NF/src/block_gmres.jl:115 [inlined]
[4] block_gmres(A::LinearOperator{…}, B::Matrix{…}; memory::Int64, M::LinearAlgebra.UniformScaling{…}, N::LinearAlgebra.UniformScaling{…}, ldiv::Bool, restart::Bool, reorthogonalization::Bool, atol::Float64, rtol::Float64, itmax::Int64, timemax::Float64, verbose::Int64, history::Bool, callback::Krylov.var"#29#36", iostream::Core.CoreSTDOUT)
@ Krylov ~/.julia/packages/Krylov/pv2NF/src/block_gmres.jl:110
[5] block_gmres(A::LinearOperator{…}, B::Matrix{…})
@ Krylov ~/.julia/packages/Krylov/pv2NF/src/block_gmres.jl:105
[6] top-level scope
@ REPL[7]:1
Some type information was truncated. Use `show(err)` to see complete types.
I think this is a LinearOperators.jl issue, right?