@@ -14,12 +14,12 @@ isperiodic(C::ContinuousSpace) = isperiodic(domain(C))
14
14
15
15
spacescompatible (a:: ContinuousSpace ,b:: ContinuousSpace ) = domainscompatible (a,b)
16
16
conversion_rule (a:: ContinuousSpace ,
17
- b:: PiecewiseSpace{CD,DD,RR} ) where {CD <: Tuple{Vararg{ChebyshevDirichlet{1,1,DDD,RRR }}} ,DD,RR <: Real } where {DDD,RRR} = a
17
+ b:: PiecewiseSpace {<: Tuple{Vararg{<: ChebyshevDirichlet{1,1}}} ,<: Any , <: Real }) = a
18
18
19
19
plan_transform (sp:: ContinuousSpace ,vals:: AbstractVector ) =
20
20
TransformPlan {eltype(vals),typeof(sp),false,Nothing} (sp,nothing )
21
21
22
- function * (P:: TransformPlan{T,SS ,false} ,vals:: AbstractVector{T} ) where {T,SS <: ContinuousSpace }
22
+ function * (P:: TransformPlan{T,<:ContinuousSpace ,false} ,vals:: AbstractVector{T} ) where {T}
23
23
S = P. space
24
24
n= length (vals)
25
25
d= domain (S)
@@ -131,27 +131,26 @@ coefficients(cfsin::AbstractVector,A::ContinuousSpace,B::ContinuousSpace) =
131
131
132
132
133
133
# We implemnt conversion between continuous space and PiecewiseSpace with Chebyshev dirichlet
134
- function Conversion (ps:: PiecewiseSpace{CD,DD,RR} ,cs:: ContinuousSpace ) where {CD<: Tuple{Vararg{ChebyshevDirichlet{1,1,DDD,RRR}}} ,
135
- DD,RR<: Real } where {DDD,RRR}
134
+ const PiecewiseSpaceReal{CD} = PiecewiseSpace{CD,<: Any ,<: Real }
135
+ const PiecewiseSpaceRealChebyDirichlet11 = PiecewiseSpaceReal{<: Tuple{Vararg{<:ChebyshevDirichlet{1,1}}} }
136
+
137
+ function Conversion (ps:: PiecewiseSpaceRealChebyDirichlet11 , cs:: ContinuousSpace )
136
138
@assert ps == canonicalspace (cs)
137
139
ConcreteConversion (ps,cs)
138
140
end
139
141
140
- function Conversion (cs:: ContinuousSpace ,ps:: PiecewiseSpace{CD,DD,RR} ) where {CD<: Tuple{Vararg{ChebyshevDirichlet{1,1,DDD,RRR}}} ,
141
- DD,RR<: Real } where {DDD,RRR}
142
+ function Conversion (cs:: ContinuousSpace ,ps:: PiecewiseSpaceRealChebyDirichlet11 )
142
143
@assert ps == canonicalspace (cs)
143
144
ConcreteConversion (cs,ps)
144
145
end
145
146
146
147
147
- bandwidths (C:: ConcreteConversion{PiecewiseSpace{CD,DD,RR},CS} ) where {CD<: Tuple{Vararg{ChebyshevDirichlet{1,1,DDD,RRR}}} ,
148
- DD,RR<: Real ,CS<: ContinuousSpace } where {DDD,RRR} =
148
+ bandwidths (C:: ConcreteConversion{<:PiecewiseSpaceRealChebyDirichlet11,<:ContinuousSpace} ) =
149
149
1 ,ncomponents (domain (rangespace (C)))
150
150
151
151
152
- function getindex (C:: ConcreteConversion{PiecewiseSpace{CD,DD,RR},CS,T} ,
153
- k:: Integer ,j:: Integer ) where {T,DD,RR<: Real ,CS<: ContinuousSpace ,
154
- CD<: Tuple{Vararg{ChebyshevDirichlet{1,1,DDD,RRR}}} } where {DDD,RRR}
152
+ function getindex (C:: ConcreteConversion{<:PiecewiseSpaceRealChebyDirichlet11,<:ContinuousSpace,T} ,
153
+ k:: Integer ,j:: Integer ) where {T}
155
154
d= domain (rangespace (C))
156
155
K= ncomponents (d)
157
156
if isperiodic (d)
@@ -182,16 +181,12 @@ function getindex(C::ConcreteConversion{PiecewiseSpace{CD,DD,RR},CS,T},
182
181
end
183
182
184
183
185
- bandwidths (C:: ConcreteConversion {<: ContinuousSpace ,
186
- PiecewiseSpace{CD,DD,RR}}) where {CD<: Tuple{Vararg{ChebyshevDirichlet{1,1,DDD,RRR}}} ,
187
- DD,RR<: Real } where {DDD,RRR} =
184
+ bandwidths (C:: ConcreteConversion{<:ContinuousSpace, <:PiecewiseSpaceRealChebyDirichlet11} ) =
188
185
isperiodic (domainspace (C)) ? (2 ncomponents (domain (rangespace (C)))- 1 ,1 ) :
189
186
(ncomponents (domain (rangespace (C))),1 )
190
187
191
- function getindex (C:: ConcreteConversion {<: ContinuousSpace ,
192
- PiecewiseSpace{CD,DD,RR},T},
193
- k:: Integer ,j:: Integer ) where {T,CD<: Tuple{Vararg{ChebyshevDirichlet{1,1,DDD,RRR}}} ,
194
- DD,RR<: Real } where {DDD,RRR}
188
+ function getindex (C:: ConcreteConversion{<:ContinuousSpace,<:PiecewiseSpaceRealChebyDirichlet11,T} ,
189
+ k:: Integer ,j:: Integer ) where {T}
195
190
d= domain (domainspace (C))
196
191
K= ncomponents (d)
197
192
if isperiodic (d)
0 commit comments