-
Notifications
You must be signed in to change notification settings - Fork 38
Overload _BandedMatrix(::BandedRows, A::AbstactMatrix) #486
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Overload _BandedMatrix(::BandedRows, A::AbstactMatrix) #486
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #486 +/- ##
==========================================
+ Coverage 89.80% 89.94% +0.13%
==========================================
Files 27 27
Lines 3719 3731 +12
==========================================
+ Hits 3340 3356 +16
+ Misses 379 375 -4 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
I think there needs to be an interface for bandedrowsdata(Ac::Transpose) = transpose(bandeddata(parent(Ac)))
bandedrowsdata(Ac::Adjoint{<:Real}) = transpose(bandeddata(parent(Ac)))This would avoid the special case when not an |
|
Like this? |
|
can you get codecov diff up to 100% please? |
|
Done |
|
Ah this actually breaks some stuff Expression: ≈((D * Weighted(Q))[0.1, 1:5], ((Weighted(Q))[0.1 + h, 1:5] - (Weighted(Q))[0.1, 1:5]) / h, atol = 100h)
MethodError: no method matching bandedrowsdata(::SubArray{Float64, 2, Transpose{Float64, BandedMatrix{Float64, ApplyArray{Float64, 2, typeof(vcat), Tuple{Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}, Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{Cumsum{Float64, 1, AbstractVector{Float64}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}, SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}}}}}, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}, MulAddAccumulate{Float64}}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}}}}}}}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}}}, InfiniteArrays.OneToInf{Int64}}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}, false})
The function `bandedrowsdata` exists, but no method is defined for this combination of argument types.
Closest candidates are:
bandedrowsdata(::Adjoint{<:Real})
@ BandedMatrices C:\Users\djv23\.julia\packages\BandedMatrices\N0Z3F\src\interfaceimpl.jl:34
bandedrowsdata(::Transpose)
@ BandedMatrices C:\Users\djv23\.julia\packages\BandedMatrices\N0Z3F\src\interfaceimpl.jl:33
Stacktrace:
[1] _BandedMatrix(::BandedMatrices.BandedRows{LazyArrays.LazyLayout}, A::SubArray{Float64, 2, Transpose{Float64, BandedMatrix{Float64, ApplyArray{Float64, 2, typeof(vcat), Tuple{Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}, Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{Cumsum{Float64, 1, AbstractVector{Float64}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}, SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}}}}}, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}, MulAddAccumulate{Float64}}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}}}}}}}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}}}, InfiniteArrays.OneToInf{Int64}}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}, false})
@ BandedMatrices C:\Users\djv23\.julia\packages\BandedMatrices\N0Z3F\src\banded\BandedMatrix.jl:268
[2] BandedMatrix(A::SubArray{Float64, 2, Transpose{Float64, BandedMatrix{Float64, ApplyArray{Float64, 2, typeof(vcat), Tuple{Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}, Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{Cumsum{Float64, 1, AbstractVector{Float64}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}, SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}}}}}, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}, MulAddAccumulate{Float64}}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}}}}}}}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}}}, InfiniteArrays.OneToInf{Int64}}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}, false})
@ BandedMatrices C:\Users\djv23\.julia\packages\BandedMatrices\N0Z3F\src\banded\BandedMatrix.jl:261
[3] sub_materialize(::BandedMatrices.BandedRows{LazyArrays.LazyLayout}, V::SubArray{Float64, 2, Transpose{Float64, BandedMatrix{Float64, ApplyArray{Float64, 2, typeof(vcat), Tuple{Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}, Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{Cumsum{Float64, 1, AbstractVector{Float64}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}, SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}}}}}, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}, MulAddAccumulate{Float64}}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}}}}}}}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}}}, InfiniteArrays.OneToInf{Int64}}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}, false}, ::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}})
@ BandedMatrices C:\Users\djv23\.julia\packages\BandedMatrices\N0Z3F\src\generic\indexing.jl:28
[4] sub_materialize
@ C:\Users\djv23\.julia\packages\ArrayLayouts\FxFFC\src\ArrayLayouts.jl:136 [inlined]
[5] sub_materialize
@ C:\Users\djv23\.julia\packages\ArrayLayouts\FxFFC\src\ArrayLayouts.jl:137 [inlined]
[6] map
@ .\tuple.jl:356 [inlined]
[7] sub_materialize
@ C:\Users\djv23\.julia\packages\LazyArrays\gHXdm\src\linalg\mul.jl:263 [inlined]
[8] sub_materialize(V::SubArray{Float64, 1, ApplyQuasiMatrix{Float64, typeof(*), Tuple{Weighted{Float64, SemiclassicalJacobi{Float64}}, BandedMatrix{Float64, ApplyArray{Float64, 2, typeof(vcat), Tuple{Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}, Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{Cumsum{Float64, 1, AbstractVector{Float64}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}, SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}}}}}, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}, MulAddAccumulate{Float64}}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}}}}}}}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}}}, InfiniteArrays.OneToInf{Int64}}}}, Tuple{Float64, UnitRange{Int64}}, false})
@ ArrayLayouts C:\Users\djv23\.julia\packages\ArrayLayouts\FxFFC\src\ArrayLayouts.jl:137
[9] layout_getindex
@ C:\Users\djv23\.julia\packages\ArrayLayouts\FxFFC\src\ArrayLayouts.jl:143 [inlined]
[10] _getindex(::Type, ::IndexCartesian, A::ApplyQuasiMatrix{Float64, typeof(*), Tuple{Weighted{Float64, SemiclassicalJacobi{Float64}}, BandedMatrix{Float64, ApplyArray{Float64, 2, typeof(vcat), Tuple{Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}, Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{Cumsum{Float64, 1, AbstractVector{Float64}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}, SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}}}}}, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}, MulAddAccumulate{Float64}}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}}}}}}}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}}}, InfiniteArrays.OneToInf{Int64}}}}, I::Tuple{Float64, UnitRange{Int64}})
@ QuasiArrays C:\Users\djv23\.julia\packages\QuasiArrays\0NCTx\src\abstractquasiarray.jl:381
[11] _getindex(::Type{Tuple{Float64, Int64}}, A::ApplyQuasiMatrix{Float64, typeof(*), Tuple{Weighted{Float64, SemiclassicalJacobi{Float64}}, BandedMatrix{Float64, ApplyArray{Float64, 2, typeof(vcat), Tuple{Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}, Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{Cumsum{Float64, 1, AbstractVector{Float64}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}, SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}}}}}, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}, MulAddAccumulate{Float64}}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}}}}}}}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}}}, InfiniteArrays.OneToInf{Int64}}}}, I::Tuple{Float64, UnitRange{Int64}})
@ QuasiArrays C:\Users\djv23\.julia\packages\QuasiArrays\0NCTx\src\abstractquasiarray.jl:372
[12] getindex(::ApplyQuasiMatrix{Float64, typeof(*), Tuple{Weighted{Float64, SemiclassicalJacobi{Float64}}, BandedMatrix{Float64, ApplyArray{Float64, 2, typeof(vcat), Tuple{Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}, Adjoint{Float64, BroadcastVector{Float64, LinearAlgebra.var"#5#6"{typeof(*)}, Tuple{Float64, BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{Cumsum{Float64, 1, AbstractVector{Float64}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}, SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{SubArray{Float64, 1, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, Tuple{InfiniteArrays.InfUnitRange{Int64}}, false}}}}}}}}}, BroadcastVector{Float64, typeof(*), Tuple{InfiniteArrays.InfUnitRange{Int64}, BroadcastVector{Float64, typeof(+), Tuple{BroadcastVector{Float64, typeof(*), Tuple{BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}, MulAddAccumulate{Float64}}}, BroadcastVector{Float64, typeof(/), Tuple{BroadcastVector{Float64, typeof(-), Tuple{BroadcastVector{Float64, typeof(/), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}, InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}, BroadcastVector{Float64, typeof(inv), Tuple{InfiniteLinearAlgebra.TridiagonalConjugationBand{Float64}}}}}}}}}}}, Accumulate{Float64, 1, typeof(*), Vector{Float64}, AbstractVector{Float64}}}}}}}}}, InfiniteArrays.OneToInf{Int64}}}}, ::Float64, ::UnitRange{Int64})
@ QuasiArrays C:\Users\djv23\.julia\packages\QuasiArrays\0NCTx\src\abstractquasiarray.jl:367
[13] macro expansion
@ C:\Users\djv23\.julia\juliaup\julia-1.11.7+0.x64.w64.mingw32\share\julia\stdlib\v1.11\Test\src\Test.jl:677 [inlined]
[14] macro expansion
@ C:\Users\djv23\.julia\dev\SemiclassicalOrthogonalPolynomials.jl\test\test_derivative.jl:131 [inlined]
[15] macro expansion
@ C:\Users\djv23\.julia\juliaup\julia-1.11.7+0.x64.w64.mingw32\share\julia\stdlib\v1.11\Test\src\Test.jl:1709 [inlined]
[16] macro expansion
@ C:\Users\djv23\.julia\dev\SemiclassicalOrthogonalPolynomials.jl\test\test_derivative.jl:122 [inlined]
[17] macro expansion
@ C:\Users\djv23\.julia\juliaup\julia-1.11.7+0.x64.w64.mingw32\share\julia\stdlib\v1.11\Test\src\Test.jl:1709 [inlined]
[18] top-level scope
@ C:\Users\djv23\.julia\dev\SemiclassicalOrthogonalPolynomials.jl\test\test_derivative.jl:7with a missing method for |
|
Ah I see you also found that in #487 already |
|
yes it's fixed. turns out none of the tests tested negative bands |
Closes #485
The method is to basically just flip the parent matrix's data around to match the data needed for the adjoint. I'm not sure what other than
Union{Adjoint, Transpose}givesBandedRowsbut there's another branch to handle that case, just using the old definition.