@@ -100,7 +100,7 @@ rangespace(D::ConcreteDerivative{S}) where {S<:SinSpace} = iseven(D.order) ? D.s
100
100
101
101
function getindex (D:: ConcreteDerivative{CS,OT,T} ,k:: Integer ,j:: Integer ) where {CS<: CosSpace ,OT,T}
102
102
d= domain (D)
103
- m= D. order
103
+ m= Int ( D. order)
104
104
C= convert (T,2 / complexlength (d)* π)
105
105
106
106
if k== j && mod (m,4 )== 0
118
118
119
119
function getindex (D:: ConcreteDerivative{CS,OT,T} ,k:: Integer ,j:: Integer ) where {CS<: SinSpace ,OT,T}
120
120
d= domain (D)
121
- m= D. order
121
+ m= Int ( D. order)
122
122
C= convert (T,2 / complexlength (d)* π)
123
123
124
124
if k== j && mod (m,4 )== 0
@@ -136,13 +136,18 @@ end
136
136
137
137
138
138
# Use Laurent derivative
139
- Derivative (S:: Fourier{DD,RR} ,k:: Integer ) where {DD<: Circle ,RR} =
139
+ function Derivative (S:: Fourier{<:Circle} , k:: Number )
140
+ @assert Integer (k) == k " order must be an integer"
140
141
DerivativeWrapper (Derivative (Laurent (S),k)* Conversion (S,Laurent (S)),k)
142
+ end
141
143
142
- Integral (:: CosSpace ,m:: Integer ) =
143
- error (" Integral not defined for CosSpace. Use Integral(CosSpace()|(2:∞)) if first coefficient vanishes." )
144
+ Integral (:: CosSpace , m:: Number ) =
145
+ error (" Integral not defined for CosSpace. Use Integral(CosSpace()|(2:Infinities. ∞)) if first coefficient vanishes." )
144
146
145
- Integral (sp:: SinSpace{<:PeriodicSegment} , m:: Integer ) = ConcreteIntegral (sp,m)
147
+ function Integral (sp:: SinSpace{<:PeriodicSegment} , m:: Number )
148
+ @assert Integer (m) == m " order must be an integer"
149
+ ConcreteIntegral (sp,m)
150
+ end
146
151
147
152
bandwidths (D:: ConcreteIntegral{<:SinSpace} ) = iseven (D. order) ? (0 ,0 ) : (1 ,0 )
148
153
rangespace (D:: ConcreteIntegral{<:CosSpace} ) = iseven (D. order) ? D. space : SinSpace (domain (D))
@@ -151,7 +156,7 @@ rangespace(D::ConcreteIntegral{<:SinSpace}) = iseven(D.order) ? D.space : CosSpa
151
156
function getindex (D:: ConcreteIntegral{CS,OT,T} ,k:: Integer ,j:: Integer ) where {CS<: SinSpace ,OT,T}
152
157
d= domain (D)
153
158
@assert isa (d,PeriodicSegment)
154
- m= D. order
159
+ m= Int ( D. order)
155
160
C= convert (T,2 / complexlength (d)* π)
156
161
157
162
@@ -168,7 +173,8 @@ function getindex(D::ConcreteIntegral{CS,OT,T},k::Integer,j::Integer) where {CS<
168
173
end
169
174
end
170
175
171
- function Integral (S:: SubSpace{<:CosSpace,<:AbstractInfUnitRange{Int},<:PeriodicSegment} ,k:: Integer )
176
+ function Integral (S:: SubSpace{<:CosSpace,<:AbstractInfUnitRange{Int},<:PeriodicSegment} ,k:: Number )
177
+ @assert Integer (k) == k " order must be an integer"
172
178
@assert first (S. indexes)== 2
173
179
ConcreteIntegral (S,k)
174
180
end
@@ -181,7 +187,7 @@ rangespace(D::ConcreteIntegral{<:SubSpace{<:CosSpace,<:AbstractInfUnitRange{Int}
181
187
function getindex (D:: ConcreteIntegral{<:SubSpace{<:CosSpace,<:AbstractInfUnitRange{Int},<:PeriodicSegment}} ,
182
188
k:: Integer ,j:: Integer )
183
189
d= domain (D)
184
- m= D. order
190
+ m= Int ( D. order)
185
191
T= eltype (D)
186
192
C= convert (T,2 / complexlength (d)* π)
187
193
@@ -192,7 +198,7 @@ function getindex(D::ConcreteIntegral{<:SubSpace{<:CosSpace,<:AbstractInfUnitRan
192
198
elseif mod (m,4 )== 2
193
199
- (C* k)^ (- m)
194
200
elseif mod (m,4 )== 1
195
- (C* k)^ (- m)
201
+ (C* k)^ (- m)
196
202
else # mod(m,4)==3
197
203
- (C* k)^ (- m)
198
204
end
0 commit comments