|
94 | 94 |
|
95 | 95 | getindex(Q::QLPackedQ{T,<:InfBandedMatrix{T}}, i::Int, j::Int) where T =
|
96 | 96 | (Q'*[Zeros{T}(i-1); one(T); Zeros{T}(∞)])[j]'
|
| 97 | +getindex(Q::QLPackedQ{<:Any,<:InfBandedMatrix}, I::AbstractVector{Int}, J::AbstractVector{Int}) = |
| 98 | + [Q[i,j] for i in I, j in J] |
97 | 99 |
|
98 | 100 | getL(Q::QL, ::NTuple{2,InfiniteCardinal{0}}) = LowerTriangular(Q.factors)
|
99 | 101 | getL(Q::QLHessenberg, ::NTuple{2,InfiniteCardinal{0}}) = LowerTriangular(Q.factors)
|
@@ -173,7 +175,7 @@ function materialize!(M::Lmul{<:AdjQLPackedQLayout{<:BandedColumns},<:PaddedLayo
|
173 | 175 | B
|
174 | 176 | end
|
175 | 177 |
|
176 |
| -function _lmul_cache(A::AbstractMatrix{T}, x::AbstractVector{S}) where {T,S} |
| 178 | +function _lmul_cache(A::Union{AbstractMatrix{T},AbstractQ{T}}, x::AbstractVector{S}) where {T,S} |
177 | 179 | TS = promote_op(matprod, T, S)
|
178 | 180 | lmul!(A, cache(convert(AbstractVector{TS},x)))
|
179 | 181 | end
|
|
264 | 266 |
|
265 | 267 | getindex(Q::QLPackedQ{T,<:InfBlockBandedMatrix{T}}, i::Integer, j::Integer) where T =
|
266 | 268 | (Q'*Vcat(Zeros{T}(i-1), one(T), Zeros{T}(∞)))[j]'
|
| 269 | +getindex(Q::QLPackedQ{<:Any,<:InfBlockBandedMatrix}, I::AbstractVector{Int}, J::AbstractVector{Int}) = |
| 270 | + [Q[i,j] for i in I, j in J] |
267 | 271 |
|
268 | 272 | function (*)(A::QLPackedQ{T,<:InfBlockBandedMatrix}, x::AbstractVector{S}) where {T,S}
|
269 | 273 | TS = promote_op(matprod, T, S)
|
|
0 commit comments