7070size (:: LanczosConversion ) = (∞,∞)
7171copy (R:: LanczosConversion ) = R
7272
73+ Base. permutedims (R:: LanczosConversion{<:Number} ) = transpose (R)
74+
7375bandwidths (:: LanczosConversion ) = (0 ,∞)
7476colsupport (L:: LanczosConversion , j) = 1 : maximum (j)
7577rowsupport (L:: LanczosConversion , j) = minimum (j): ∞
178180
179181LanczosPolynomial (w:: AbstractQuasiVector ) = LanczosPolynomial (w, orthonormalpolynomial (singularities (w)))
180182
183+
184+
181185orthogonalityweight (Q:: LanczosPolynomial ) = Q. w
182186
183187axes (Q:: LanczosPolynomial ) = (axes (Q. w,1 ),OneToInf ())
@@ -221,8 +225,18 @@ function ldiv(Qn::SubQuasiArray{<:Any,2,<:LanczosPolynomial,<:Tuple{<:Inclusion,
221225 Q = parent (Qn)
222226 LanczosConversion (Q. data)[jr,jr] \ (Q. P[:,jr] \ C)
223227end
228+
229+ struct LanczosLayout <: AbstractBasisLayout end
230+
231+ MemoryLayout (:: Type{<:LanczosPolynomial} ) = LanczosLayout ()
224232arguments (:: ApplyLayout{typeof(*)} , Q:: LanczosPolynomial ) = Q. P, LanczosConversion (Q. data)
233+ copy (L:: Ldiv{LanczosLayout,Lay} ) where Lay<: AbstractLazyLayout = copy (Ldiv {ApplyLayout{typeof(*)},Lay} (L. A,L. B))
234+ copy (L:: Ldiv{LanczosLayout,ApplyLayout{typeof(*)}} ) = copy (Ldiv {ApplyLayout{typeof(*)},ApplyLayout{typeof(*)}} (L. A,L. B))
235+ copy (L:: Ldiv{LanczosLayout,ApplyLayout{typeof(*)},<:Any,<:AbstractQuasiVector} ) = copy (Ldiv {ApplyLayout{typeof(*)},ApplyLayout{typeof(*)}} (L. A,L. B))
225236LazyArrays. _mul_arguments (Q:: LanczosPolynomial ) = arguments (ApplyLayout {typeof(*)} (), Q)
226237LazyArrays. _mul_arguments (Q:: QuasiAdjoint{<:Any,<:LanczosPolynomial} ) = arguments (ApplyLayout {typeof(*)} (), Q)
227238
228- \ (A:: LanczosPolynomial , x:: AbstractQuasiVector ) = ApplyQuasiArray (A) \ x
239+
240+ broadcastbasis (:: typeof (+ ), P:: Union{Normalized,LanczosPolynomial} , Q:: Union{Normalized,LanczosPolynomial} ) = broadcastbasis (+ , P. P, Q. P)
241+ broadcastbasis (:: typeof (+ ), P:: Union{Normalized,LanczosPolynomial} , Q) = broadcastbasis (+ , P. P, Q)
242+ broadcastbasis (:: typeof (+ ), P, Q:: Union{Normalized,LanczosPolynomial} ) = broadcastbasis (+ , P, Q. P)
0 commit comments