Skip to content

Commit 692ea10

Browse files
authored
diagonal interlace in Laurent(Circle()) Derivative (#80)
1 parent 5b867fd commit 692ea10

File tree

6 files changed

+12
-13
lines changed

6 files changed

+12
-13
lines changed

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "ApproxFunFourier"
22
uuid = "59844689-9c9d-51bf-9583-5b794ec66d30"
3-
version = "0.3.13"
3+
version = "0.3.14"
44

55
[deps]
66
AbstractFFTs = "621f4979-c628-5d54-868e-fcf4e3e8185c"
@@ -17,7 +17,7 @@ StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
1717

1818
[compat]
1919
AbstractFFTs = "0.5, 1"
20-
ApproxFunBase = "0.8"
20+
ApproxFunBase = "0.8.6"
2121
ApproxFunBaseTest = "0.1"
2222
Aqua = "0.5"
2323
BandedMatrices = "0.16, 0.17"

src/ApproxFunFourier.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import ApproxFunBase: Fun, SumSpace, SubSpace, NoSpace, IntervalOrSegment,
3535
reverseeven!, negateeven!, cfstype, alternatesign!, extremal_args,
3636
hesseneigvals, chebyshev_clenshaw, roots, EmptyDomain,
3737
chebmult_getindex, components, affine_setdiff, complexroots,
38-
assert_integer, companion_matrix
38+
assert_integer, companion_matrix, InterlaceOperator_Diagonal
3939

4040
import BandedMatrices: bandwidths
4141

src/Domains/Circle.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ end
6060
orientationsign(d::Circle) = d.orientation ? 1 : -1
6161

6262
fromcanonical(d::Circle{T,V,Complex{V}},θ) where {T<:Number,V<:Real} =
63-
d.radius * cis(orientationsign(d) * θ) + d.center
63+
d.radius * exp(orientationsign(d) * 1.0im * θ) + d.center
6464
fromcanonicalD(d::Circle{T},θ) where {T<:Number} =
65-
orientationsign(d) * d.radius * 1.0im * cis(orientationsign(d) * θ)
65+
orientationsign(d) * d.radius * 1.0im * exp(orientationsign(d) * 1.0im * θ)
6666

6767

6868
fromcanonical(d::Circle{T}::Number) where {T<:SVector} =

src/FourierOperators.jl

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,9 @@ getindex(C::ConcreteConversion{Fourier{DD,R1},Fourier{DD,R2},T},k::Integer,j::In
8484

8585

8686
### Cos/Sine
87-
88-
89-
function Derivative(S::Union{CosSpace,SinSpace},order)
90-
@assert isa(domain(S),PeriodicSegment)
87+
function Derivative(S::Union{CosSpace,SinSpace}, order::Number)
88+
assert_integer(order)
89+
@assert isa(domain(S), PeriodicSegment)
9190
@assert order > 0 "order of derivative must be > 0"
9291
ConcreteDerivative(S,order)
9392
end

src/LaurentOperators.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,7 @@ function Derivative(S::Laurent{<:Circle}, k::Number)
8181
assert_integer(k)
8282
@assert k > 0 " order of derivative must be > 0"
8383
t = map(s->Derivative(s,k), S.spaces)
84-
v = convert_vector_or_svector(t)
85-
D = Diagonal(v)
86-
O = InterlaceOperator(D, SumSpace)
84+
O = InterlaceOperator_Diagonal(t, S)
8785
DerivativeWrapper(O,k)
8886
end
8987

test/runtests.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ end
212212
@test B*Fun(sin,domainspace(B)) 1.0
213213

214214
## Diagonal Derivative
215-
D = Derivative(Laurent())
215+
D = @inferred Derivative(Laurent())
216216
@test isdiag(D)
217217
end
218218

@@ -289,6 +289,8 @@ end
289289
## Test bug in multiplication
290290
y = Fun(Circle())
291291
@test (y^2) Fun(z->z^2,domain(y))
292+
293+
@inferred Derivative(Laurent(Circle()))
292294
end
293295

294296

0 commit comments

Comments
 (0)