@@ -70,7 +70,7 @@ Base.isnan(::Triangle) = false
70
70
# P_{n-k}^{2k+β+γ+1,α}(2x-1)*(1-x)^k*P_k^{γ,β}(2y/(1-x)-1)
71
71
72
72
73
- immutable ProductTriangle <: AbstractProductSpace {Tuple{WeightedJacobi{Segment{Float64},Float64},
73
+ struct ProductTriangle <: AbstractProductSpace {Tuple{WeightedJacobi{Segment{Float64},Float64},
74
74
Jacobi{Segment{Float64},Float64}},
75
75
Triangle,Float64}
76
76
α:: Float64
@@ -80,7 +80,7 @@ immutable ProductTriangle <: AbstractProductSpace{Tuple{WeightedJacobi{Segment{F
80
80
end
81
81
82
82
83
- immutable KoornwinderTriangle <: Space{Triangle,Float64}
83
+ struct KoornwinderTriangle <: Space{Triangle,Float64}
84
84
α:: Float64
85
85
β:: Float64
86
86
γ:: Float64
338
338
columnspace (T:: ProductTriangle ,k:: Integer ) =
339
339
JacobiWeight (0. ,k- 1. ,Jacobi (T. α,2 k- 1 + T. β+ T. γ,Segment (0. ,1. )))
340
340
341
- Base. sum {KT<:KoornwinderTriangle} (f:: Fun{KT } ) =
341
+ Base. sum (f:: Fun{<:KoornwinderTriangle } ) =
342
342
Fun (f,KoornwinderTriangle (0 ,0 ,0 )). coefficients[1 ]/ 2
343
343
344
344
# convert coefficients
@@ -350,17 +350,17 @@ Base.sum{KT<:KoornwinderTriangle}(f::Fun{KT}) =
350
350
function coefficients (f:: AbstractVector ,K:: KoornwinderTriangle ,P:: ProductTriangle )
351
351
C= totensor (K,f)
352
352
D= Float64[2.0 ^ (- k) for k= 0 : size (C,1 )- 1 ]
353
- fromtensor (K,(C .' )* diagm (D))
353
+ fromtensor (K,transpose (C )* diagm (D))
354
354
end
355
355
356
356
function coefficients (f:: AbstractVector ,K:: ProductTriangle ,P:: KoornwinderTriangle )
357
357
C= totensor (K,f)
358
358
D= Float64[2.0 ^ (k) for k= 0 : size (C,1 )- 1 ]
359
- fromtensor (P,(C* diagm (D)).' )
359
+ fromtensor (P,transpose (C* diagm (D)))
360
360
end
361
361
362
362
363
- function clenshaw2D {T} (Jx,Jy,cfs:: Vector{Vector{T}} ,x,y)
363
+ function clenshaw2D (Jx,Jy,cfs:: Vector{Vector{T}} ,x,y) where T
364
364
N= length (cfs)
365
365
bk1= zeros (T,N+ 1 )
366
366
bk2= zeros (T,N+ 2 )
@@ -545,9 +545,9 @@ function getindex(D::ConcreteDerivative{KoornwinderTriangle},k::Integer,j::Integ
545
545
end
546
546
end
547
547
548
- function Base. convert {T} (:: Type{BandedBlockBandedMatrix} ,
548
+ function Base. convert (:: Type{BandedBlockBandedMatrix} ,
549
549
S:: SubOperator {T,ConcreteDerivative{KoornwinderTriangle,Vector{Int},T},
550
- Tuple{BlockRange1,BlockRange1}})
550
+ Tuple{BlockRange1,BlockRange1}}) where T
551
551
ret = BandedBlockBandedMatrix (Zeros,S)
552
552
D = parent (S)
553
553
sp= domainspace (D)
@@ -851,12 +851,12 @@ end
851
851
# # Jacobi Operators
852
852
853
853
# k is 1, 2, ... for x, y, z,...
854
- immutable Lowering{k,S,T} <: Operator{T}
854
+ struct Lowering{k,S,T} <: Operator{T}
855
855
space:: S
856
856
end
857
857
858
- Base. convert {k} (:: Type{Lowering{k}} ,sp) = Lowering {k,typeof(sp),prectype(sp)} (sp)
859
- Base. convert {x,T,S} (:: Type{Operator{T}} ,J:: Lowering{x,S} ) = Lowering {x,S,T} (J. space)
858
+ Base. convert (:: Type{Lowering{k}} ,sp) where k = Lowering {k,typeof(sp),prectype(sp)} (sp)
859
+ Base. convert (:: Type{Operator{T}} ,J:: Lowering{x,S} ) where {x,T,S} = Lowering {x,S,T} (J. space)
860
860
861
861
862
862
domainspace (R:: Lowering ) = R. space
@@ -882,7 +882,7 @@ rangespace(R::Lowering{3,KoornwinderTriangle}) =
882
882
KoornwinderTriangle (R. space. α,R. space. β,R. space. γ- 1 ,domain (domainspace (R)))
883
883
884
884
885
- function getindex {T} (R:: Lowering{1,KoornwinderTriangle,T} ,k:: Integer ,j:: Integer )
885
+ function getindex (R:: Lowering{1,KoornwinderTriangle,T} ,k:: Integer ,j:: Integer ) where T
886
886
α,β,γ= R. space. α,R. space. β,R. space. γ
887
887
K = Int (block (rangespace (R),k))
888
888
J = Int (block (domainspace (R),j))
@@ -979,8 +979,8 @@ function Base.convert(::Type{BandedBlockBandedMatrix},S::SubOperator{T,Lowering{
979
979
end
980
980
981
981
982
- function Base. convert {T} (:: Type{BandedBlockBandedMatrix} ,S:: SubOperator {T,Lowering{2 ,KoornwinderTriangle,T},
983
- Tuple{BlockRange1,BlockRange1}})
982
+ function Base. convert (:: Type{BandedBlockBandedMatrix} ,S:: SubOperator {T,Lowering{2 ,KoornwinderTriangle,T},
983
+ Tuple{BlockRange1,BlockRange1}}) where T
984
984
ret = BandedBlockBandedMatrix (Zeros,S)
985
985
R = parent (S)
986
986
α,β,γ= R. space. α,R. space. β,R. space. γ
@@ -1017,8 +1017,8 @@ function Base.convert{T}(::Type{BandedBlockBandedMatrix},S::SubOperator{T,Loweri
1017
1017
ret
1018
1018
end
1019
1019
1020
- function Base. convert {T} (:: Type{BandedBlockBandedMatrix} ,S:: SubOperator {T,Lowering{3 ,KoornwinderTriangle,T},
1021
- Tuple{BlockRange1,BlockRange1}})
1020
+ function Base. convert (:: Type{BandedBlockBandedMatrix} ,S:: SubOperator {T,Lowering{3 ,KoornwinderTriangle,T},
1021
+ Tuple{BlockRange1,BlockRange1}}) where T
1022
1022
ret = BandedBlockBandedMatrix (Zeros,S)
1023
1023
R = parent (S)
1024
1024
α,β,γ= R. space. α,R. space. β,R. space. γ
@@ -1057,7 +1057,7 @@ end
1057
1057
1058
1058
# ## Weighted
1059
1059
1060
- immutable TriangleWeight{S} <: WeightSpace{S,Triangle,Float64}
1060
+ struct TriangleWeight{S} <: WeightSpace{S,Triangle,Float64}
1061
1061
α:: Float64
1062
1062
β:: Float64
1063
1063
γ:: Float64
@@ -1082,12 +1082,12 @@ weight(S::TriangleWeight,xy::Vec) = weight(S,xy...)
1082
1082
1083
1083
setdomain (K:: TriangleWeight , d:: Triangle ) = TriangleWeight (K. α,K. β,K. γ,setdomain (K. space,d))
1084
1084
1085
- immutable TriangleWeightEvaluatePlan{S,PP}
1085
+ struct TriangleWeightEvaluatePlan{S,PP}
1086
1086
space:: S
1087
1087
plan:: PP
1088
1088
end
1089
1089
1090
- plan_evaluate {SS} (f:: Fun{TriangleWeight{SS} } ,xy... ) =
1090
+ plan_evaluate (f:: Fun{<: TriangleWeight} ,xy... ) =
1091
1091
TriangleWeightEvaluatePlan (space (f),
1092
1092
plan_evaluate (Fun (space (f). space,coefficients (f)),xy... ))
1093
1093
@@ -1325,7 +1325,7 @@ subblockbandinds(D::ConcreteDerivative{TriangleWeight{KoornwinderTriangle}},k::I
1325
1325
k== 1 ? - 1 : 0 # TODO : subblockbandinds (-1,-1) for Dy
1326
1326
1327
1327
1328
- function getindex {OT,T} (D:: ConcreteDerivative{TriangleWeight{KoornwinderTriangle},OT,T} ,k:: Integer ,j:: Integer ):: T
1328
+ function getindex (D:: ConcreteDerivative{TriangleWeight{KoornwinderTriangle},OT,T} ,k:: Integer ,j:: Integer ) where {OT,T}
1329
1329
α,β,γ= D. space. α,D. space. β,D. space. γ
1330
1330
K = Int (block (rangespace (D),k))
1331
1331
J = Int (block (domainspace (D),j))
@@ -1349,7 +1349,7 @@ end
1349
1349
1350
1350
1351
1351
# # Multiplication Operators
1352
- function operator_clenshaw2D {T} (Jx,Jy,cfs:: Vector{Vector{T}} ,x,y)
1352
+ function operator_clenshaw2D (Jx,Jy,cfs:: Vector{Vector{T}} ,x,y) where T
1353
1353
N= length (cfs)
1354
1354
S = domainspace (x)
1355
1355
Z= ZeroOperator (S,S)
0 commit comments