Skip to content

Commit 678590c

Browse files
committed
Support broadcasting and operators
1 parent 4598ff4 commit 678590c

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

src/ClassicalOrthogonalPolynomials.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import LazyArrays: MemoryLayout, Applied, ApplyStyle, flatten, _flatten, colsupp
1515
AbstractCachedVector, AbstractCachedMatrix
1616
import ArrayLayouts: MatMulVecAdd, materialize!, _fill_lmul!, sublayout, sub_materialize, lmul!, ldiv!, ldiv, transposelayout, triangulardata,
1717
subdiagonaldata, diagonaldata, supdiagonaldata
18-
import LazyBandedMatrices: SymTridiagonal, Bidiagonal, Tridiagonal
19-
import LinearAlgebra: pinv, factorize, qr, adjoint, transpose
18+
import LazyBandedMatrices: SymTridiagonal, Bidiagonal, Tridiagonal, AbstractLazyBandedLayout
19+
import LinearAlgebra: pinv, factorize, qr, adjoint, transpose, dot
2020
import BandedMatrices: AbstractBandedLayout, AbstractBandedMatrix, _BandedMatrix, bandeddata
2121
import FillArrays: AbstractFill, getindex_value
2222

src/clenshaw.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ bandwidths(M::Clenshaw) = (length(M.c)-1,length(M.c)-1)
263263
Base.array_summary(io::IO, C::Clenshaw{T}, inds::Tuple{Vararg{OneToInf{Int}}}) where T =
264264
print(io, Base.dims2string(length.(inds)), " Clenshaw{$T} with $(length(C.c)) degree polynomial")
265265

266-
struct ClenshawLayout <: AbstractBandedLayout end
266+
struct ClenshawLayout <: AbstractLazyBandedLayout end
267267
MemoryLayout(::Type{<:Clenshaw}) = ClenshawLayout()
268268
sublayout(::ClenshawLayout, ::Type{<:NTuple{2,AbstractUnitRange{Int}}}) = ClenshawLayout()
269269
sub_materialize(::ClenshawLayout, V) = BandedMatrix(V)

test/test_odes.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,4 +170,14 @@ import SemiseparableMatrices: VcatAlmostBandedLayout
170170
u = L \ [airyai(-ε^(-2/3)); airyai^(2/3)); zeros(∞)]
171171
@test T[-0.1,:]'u airyai(-0.1*ε^(-2/3))
172172
end
173+
174+
@testset "combo operators" begin
175+
T = Chebyshev()
176+
C = Ultraspherical(2)
177+
x = axes(T,1)
178+
D = Derivative(x)
179+
L = x .* D + cos.(x) .* D^2
180+
M = C \ (L * T)
181+
@test C[0.1,:]' * (M * (T \ exp.(x))) (0.1 + cos(0.1))*exp(0.1)
182+
end
173183
end

0 commit comments

Comments
 (0)