@@ -213,12 +213,8 @@ function getindex(M::ConcreteConversion{<:Chebyshev,U,T},
213
213
end
214
214
215
215
216
- function _getindex (M:: ConcreteConversion{U1,U2,T} , k, j) where {DD,RR,
217
- OT<: Union{Integer, HalfOddInteger} ,
218
- U1<: Ultraspherical{<:OT,DD,RR} ,
219
- U2<: Ultraspherical{<:OT,DD,RR} ,T}
220
- # we can assume that λ==m+1
221
- λ= order (rangespace (M))
216
+ function _getindex (:: Type{T} , λ, k, j) where {T}
217
+ # we assume order(domainspace(M))+1==order(rangespace(M))
222
218
c= λ- one (T) # this supports big types
223
219
if k== j
224
220
c/ (k - 2 + λ)
@@ -232,12 +228,12 @@ end
232
228
function getindex (M:: ConcreteConversion{U1,U2,T} , k:: Integer , j:: Integer ) where {DD,RR,
233
229
U1<: Ultraspherical{<:Integer,DD,RR} ,
234
230
U2<: Ultraspherical{<:Integer,DD,RR} ,T}
235
- _getindex (M , k, j)
231
+ _getindex (T, order ( rangespace (M)) , k, j)
236
232
end
237
233
function getindex (M:: ConcreteConversion{U1,U2,T} , k:: Integer , j:: Integer ) where {DD,RR,
238
234
U1<: Ultraspherical{<:HalfOddInteger,DD,RR} ,
239
235
U2<: Ultraspherical{<:HalfOddInteger,DD,RR} ,T}
240
- _getindex (M , k, j)
236
+ _getindex (T, order ( rangespace (M)) , k, j)
241
237
end
242
238
243
239
function getindex (M:: ConcreteConversion{U1,U2,T} ,
@@ -246,14 +242,7 @@ function getindex(M::ConcreteConversion{U1,U2,T},
246
242
U2<: Ultraspherical{<:Any,DD,RR} ,T}
247
243
λ= order (rangespace (M))
248
244
if order (domainspace (M))+ 1 == λ
249
- c= λ- one (T) # this supports big types
250
- if k== j
251
- c/ (k - 2 + λ)
252
- elseif j== k+ 2
253
- - c/ (k + λ)
254
- else
255
- zero (T)
256
- end
245
+ _getindex (T, λ, k, j)
257
246
else
258
247
error (" Not implemented" )
259
248
end
0 commit comments