Skip to content

Commit c5b40a0

Browse files
committed
specialize Derivative
1 parent b10990b commit c5b40a0

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

src/Spaces/Jacobi/JacobiOperators.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
## Derivative
22

3+
# specialize Derivative so that this is type-inferred even without constant propagation
4+
Derivative(J::Jacobi) = ConcreteDerivative(J,1)
35
@inline function _Derivative(J::Jacobi, k::Number)
46
assert_integer(k)
57
k==1 ? ConcreteDerivative(J,1) :

test/JacobiTest.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,10 @@ using StaticArrays: SVector
110110
end
111111

112112
@testset "Derivative" begin
113-
D = if VERSION >= v"1.8"
114-
@inferred Derivative(Jacobi(0.,1.,Segment(1.,0.)))
115-
else
116-
Derivative(Jacobi(0.,1.,Segment(1.,0.)))
113+
D = @inferred Derivative(Jacobi(0.,1.,Segment(1.,0.)))
114+
if VERSION >= v"1.8"
115+
D2 = @inferred (() -> Derivative(Jacobi(0.,1.,Segment(1.,0.)), 1))()
116+
@test D2 == D
117117
end
118118
@time testbandedoperator(D)
119119
# only one band should be populated

0 commit comments

Comments
 (0)