Skip to content

Commit 591136c

Browse files
authored
inference in normalized space multiplication (#194)
1 parent 2a759ef commit 591136c

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed

src/Spaces/Jacobi/JacobiOperators.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ function Conversion(L::Jacobi,M::Jacobi)
180180
end
181181
end
182182

183-
throw(ArgumentError("please implement $A$B"))
183+
throw(ArgumentError("please implement $L$M"))
184184
end
185185

186186
bandwidths(::ConcreteConversion{<:Jacobi,<:Jacobi}) = (0,1)

src/Spaces/PolynomialSpace.jl

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -486,17 +486,16 @@ end
486486

487487
function Multiplication(f::Fun{<:PolynomialSpace}, sp::NormalizedPolynomialSpace)
488488
unnorm_sp = canonicalspace(sp)
489-
O = Conversion(unnorm_sp,sp) *
490-
Multiplication(f,unnorm_sp) * Conversion(sp, unnorm_sp)
489+
O = ConcreteConversion(unnorm_sp,sp) *
490+
Multiplication(f,unnorm_sp) * ConcreteConversion(sp, unnorm_sp)
491491
MultiplicationWrapper(f, O, sp)
492492
end
493493

494-
function Multiplication(f::Fun{ <: NormalizedPolynomialSpace}, sp::PolynomialSpace)
495-
Multiplication(Conversion(space(f), canonicalspace(f))*f, sp)
494+
function Multiplication(f::Fun{<:NormalizedPolynomialSpace}, sp::PolynomialSpace)
495+
Multiplication(ConcreteConversion(space(f), canonicalspace(f))*f, sp)
496496
end
497497

498-
function Multiplication(f::Fun{U},sp::NormalizedPolynomialSpace) where U <: NormalizedPolynomialSpace
499-
csp = canonicalspace(f)
500-
fc = Conversion(space(f), csp)*f
498+
function Multiplication(f::Fun{<:NormalizedPolynomialSpace}, sp::NormalizedPolynomialSpace)
499+
fc = ConcreteConversion(space(f), canonicalspace(f))*f
501500
Multiplication(fc, sp)
502501
end

test/JacobiTest.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,13 @@ using Static
300300
M = @inferred Multiplication(Fun(L), NormalizedPolynomialSpace(L))
301301
@test M * Fun(NormalizedLegendre()) Fun(x->x^2, NormalizedLegendre())
302302
end
303+
304+
M1 = @inferred Multiplication(Fun(Legendre()), NormalizedLegendre())
305+
@test M1 * Fun(x->x^4, NormalizedLegendre()) Fun(x->x^5, NormalizedLegendre())
306+
M2 = @inferred Multiplication(Fun(NormalizedLegendre()), Legendre())
307+
@test M2 * Fun(x->x^4, Legendre()) Fun(x->x^5, Legendre())
308+
M3 = @inferred Multiplication(Fun(NormalizedLegendre()), NormalizedLegendre())
309+
@test M3 * Fun(x->x^4, NormalizedLegendre()) Fun(x->x^5, NormalizedLegendre())
303310
end
304311

305312
@testset "Jacobi integrate and sum" begin

0 commit comments

Comments
 (0)