Skip to content

Commit 972a606

Browse files
committed
Koornwinder -> Jacobi
1 parent 82afce2 commit 972a606

10 files changed

+392
-751
lines changed

REQUIRE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ RecipesBase 0.5.0
88
FastTransforms 0.4.1
99
StaticArrays 0.3
1010
SpecialFunctions 0.6
11+
LazyArrays 0.2.1

examples/.ipynb_checkpoints/Advection-diffusion on a triangle-checkpoint.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@
378378
},
379379
"outputs": [],
380380
"source": [
381-
"S = TriangleWeight(1,1,1,KoornwinderTriangle(1,1,1))\n",
381+
"S = TriangleWeight(1,1,1,JacobiTriangle(1,1,1))\n",
382382
"Δ = Laplacian(S)\n",
383383
"Dx = Derivative(S,[1,0])\n",
384384
"Dy = Derivative(S,[0,1])\n",

examples/Advection-diffusion on a triangle.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
"outputs": [
3131
{
3232
"ename": "LoadError",
33-
"evalue": "LoadError: MethodError: no method matching points(::MultivariateOrthogonalPolynomials.Triangle, ::Int64)\nClosest candidates are:\n points{T,DD}(::Union{ApproxFun.Domain{T,2},ApproxFun.Space{T,DD,2}}, ::Any, !Matched::Any) at /Users/solver/.julia/v0.5/ApproxFun/src/Multivariate/TensorSpace.jl:438\n points(!Matched::MultivariateOrthogonalPolynomials.KoornwinderTriangle, ::Integer) at /Users/solver/.julia/v0.5/MultivariateOrthogonalPolynomials/src/Triangle.jl:40\n points(!Matched::ApproxFun.IntervalCurve{S<:ApproxFun.Space,T}, ::Integer) at /Users/solver/.julia/v0.5/ApproxFun/src/Domains/Curve.jl:30\n ...\nwhile loading In[30], in expression starting on line 4",
33+
"evalue": "LoadError: MethodError: no method matching points(::MultivariateOrthogonalPolynomials.Triangle, ::Int64)\nClosest candidates are:\n points{T,DD}(::Union{ApproxFun.Domain{T,2},ApproxFun.Space{T,DD,2}}, ::Any, !Matched::Any) at /Users/solver/.julia/v0.5/ApproxFun/src/Multivariate/TensorSpace.jl:438\n points(!Matched::MultivariateOrthogonalPolynomials.JacobiTriangle, ::Integer) at /Users/solver/.julia/v0.5/MultivariateOrthogonalPolynomials/src/Triangle.jl:40\n points(!Matched::ApproxFun.IntervalCurve{S<:ApproxFun.Space,T}, ::Integer) at /Users/solver/.julia/v0.5/ApproxFun/src/Domains/Curve.jl:30\n ...\nwhile loading In[30], in expression starting on line 4",
3434
"output_type": "error",
3535
"traceback": [
36-
"LoadError: MethodError: no method matching points(::MultivariateOrthogonalPolynomials.Triangle, ::Int64)\nClosest candidates are:\n points{T,DD}(::Union{ApproxFun.Domain{T,2},ApproxFun.Space{T,DD,2}}, ::Any, !Matched::Any) at /Users/solver/.julia/v0.5/ApproxFun/src/Multivariate/TensorSpace.jl:438\n points(!Matched::MultivariateOrthogonalPolynomials.KoornwinderTriangle, ::Integer) at /Users/solver/.julia/v0.5/MultivariateOrthogonalPolynomials/src/Triangle.jl:40\n points(!Matched::ApproxFun.IntervalCurve{S<:ApproxFun.Space,T}, ::Integer) at /Users/solver/.julia/v0.5/ApproxFun/src/Domains/Curve.jl:30\n ...\nwhile loading In[30], in expression starting on line 4",
36+
"LoadError: MethodError: no method matching points(::MultivariateOrthogonalPolynomials.Triangle, ::Int64)\nClosest candidates are:\n points{T,DD}(::Union{ApproxFun.Domain{T,2},ApproxFun.Space{T,DD,2}}, ::Any, !Matched::Any) at /Users/solver/.julia/v0.5/ApproxFun/src/Multivariate/TensorSpace.jl:438\n points(!Matched::MultivariateOrthogonalPolynomials.JacobiTriangle, ::Integer) at /Users/solver/.julia/v0.5/MultivariateOrthogonalPolynomials/src/Triangle.jl:40\n points(!Matched::ApproxFun.IntervalCurve{S<:ApproxFun.Space,T}, ::Integer) at /Users/solver/.julia/v0.5/ApproxFun/src/Domains/Curve.jl:30\n ...\nwhile loading In[30], in expression starting on line 4",
3737
"",
3838
" in points(::MultivariateOrthogonalPolynomials.ProductTriangle, ::Int64) at /Users/solver/.julia/v0.5/ApproxFun/src/Fun/Space.jl:144"
3939
]
@@ -379,7 +379,7 @@
379379
},
380380
"outputs": [],
381381
"source": [
382-
"S = TriangleWeight(1,1,1,KoornwinderTriangle(1,1,1))\n",
382+
"S = TriangleWeight(1,1,1,JacobiTriangle(1,1,1))\n",
383383
"Δ = Laplacian(S)\n",
384384
"Dx = Derivative(S,[1,0])\n",
385385
"Dy = Derivative(S,[0,1])\n",

examples/twotriangles.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,12 @@ plot(u[4])
6969
ncoefficients(u[4])
7070
@which points(u[4].space,210)
7171
points(u[4].space,ncoefficients(u[4]))
72-
pts=points(KoornwinderTriangle(0,0,0),210)
72+
pts=points(JacobiTriangle(0,0,0),210)
7373
fromcanonical(S,pts[1])
7474
K = S
7575
n = 210
7676
map(Vec,map(vec,points(ProductTriangle(K),round(Int,sqrt(n)),round(Int,sqrt(n))))...)
77-
S = KoornwinderTriangle(0,0,0,d[2])
77+
S = JacobiTriangle(0,0,0,d[2])
7878
fromcanonical(S, Vec(0.1,0.2))
7979
u[1](0.1,0.2)-real(exp(0.1+0.2im)) # ~ 4.5E-16
8080
u[4](0.6,0.7)-real(exp(0.6+0.7im)) # ~ 6.7E-16

src/DirichletTriangle.jl

Lines changed: 48 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# this is TriangleWeight(a,b,c,KoornwinderTriangle(a,b,c)) with some extra columns to span
1+
# this is TriangleWeight(a,b,c,JacobiTriangle(a,b,c)) with some extra columns to span
22
# all the polynomials
33
struct DirichletTriangle{a,b,c} <: Space{Triangle,Float64}
44
domain::Triangle
55
end
66

77
DirichletTriangle{a,b,c}() where {a,b,c} = DirichletTriangle{a,b,c}(Triangle())
88

9-
canonicalspace(D::DirichletTriangle) = KoornwinderTriangle(0,0,0,domain(D))
9+
canonicalspace(D::DirichletTriangle) = JacobiTriangle(0,0,0,domain(D))
1010

1111
spacescompatible(A::DirichletTriangle{a,b,c}, B::DirichletTriangle{a,b,c}) where {a,b,c} =
1212
domainscompatible(A,B)
@@ -29,20 +29,20 @@ for OP in (:block,:blockstart,:blockstop)
2929
end
3030

3131

32-
function maxspace_rule(A::DirichletTriangle, B::KoornwinderTriangle)
32+
function maxspace_rule(A::DirichletTriangle, B::JacobiTriangle)
3333
domainscompatible(A,B) && return B
3434
NoSpace()
3535
end
3636

37-
function conversion_rule(A::DirichletTriangle, B::KoornwinderTriangle)
37+
function conversion_rule(A::DirichletTriangle, B::JacobiTriangle)
3838
domainscompatible(A,B) && return A
3939
NoSpace()
4040
end
4141

4242

43-
Conversion(A::DirichletTriangle{1,0,0}, B::KoornwinderTriangle) = ConcreteConversion(A,B)
44-
Conversion(A::DirichletTriangle{0,1,0} ,B::KoornwinderTriangle) = ConcreteConversion(A,B)
45-
Conversion(A::DirichletTriangle{0,0,1}, B::KoornwinderTriangle) = ConcreteConversion(A,B)
43+
Conversion(A::DirichletTriangle{1,0,0}, B::JacobiTriangle) = ConcreteConversion(A,B)
44+
Conversion(A::DirichletTriangle{0,1,0} ,B::JacobiTriangle) = ConcreteConversion(A,B)
45+
Conversion(A::DirichletTriangle{0,0,1}, B::JacobiTriangle) = ConcreteConversion(A,B)
4646
function Conversion(A::DirichletTriangle{a,b,c}, B::DirichletTriangle{d,e,f}) where {a,b,c,d,e,f}
4747
@assert a  d && b  e && c  f
4848
@assert domainscompatible(A,B)
@@ -53,7 +53,7 @@ function Conversion(A::DirichletTriangle{a,b,c}, B::DirichletTriangle{d,e,f}) wh
5353
# c > f &&
5454
return Conversion(A,DirichletTriangle{a,b,c-1}(domain(A)),B)
5555
end
56-
function Conversion(A::DirichletTriangle{a,b,c}, B::KoornwinderTriangle) where {a,b,c}
56+
function Conversion(A::DirichletTriangle{a,b,c}, B::JacobiTriangle) where {a,b,c}
5757
@assert a  0 && b  0 && c  0
5858
@assert domainscompatible(A,B)
5959
# if only one is bigger, we can do a concrete conversion
@@ -69,26 +69,18 @@ isbandedblockbanded(::ConcreteConversion{<:DirichletTriangle,<:DirichletTriangle
6969

7070

7171

72-
isbandedblockbanded(::ConcreteConversion{<:DirichletTriangle,KoornwinderTriangle})= true
72+
isbandedblockbanded(::ConcreteConversion{<:DirichletTriangle,JacobiTriangle})= true
7373

74-
blockbandinds(::ConcreteConversion{DirichletTriangle{1,0,0},KoornwinderTriangle}) = (0,1)
75-
blockbandinds(::ConcreteConversion{DirichletTriangle{0,1,0},KoornwinderTriangle}) = (0,1)
76-
blockbandinds(::ConcreteConversion{DirichletTriangle{0,0,1},KoornwinderTriangle}) = (0,1)
74+
blockbandwidths(::ConcreteConversion{DirichletTriangle{1,0,0},JacobiTriangle}) = (0,1)
75+
blockbandwidths(::ConcreteConversion{DirichletTriangle{0,1,0},JacobiTriangle}) = (0,1)
76+
blockbandwidths(::ConcreteConversion{DirichletTriangle{0,0,1},JacobiTriangle}) = (0,1)
7777

78+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{1,0,0},JacobiTriangle}) = (0,0)
79+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{0,1,0},JacobiTriangle}) = (0,1)
80+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{0,0,1},JacobiTriangle}) = (0,1)
7881

7982

80-
81-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,0,0},KoornwinderTriangle}) = (0,0)
82-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,0,0},KoornwinderTriangle},k::Integer) = 0
83-
84-
subblockbandinds(::ConcreteConversion{DirichletTriangle{0,1,0},KoornwinderTriangle}) = (0,1)
85-
subblockbandinds(::ConcreteConversion{DirichletTriangle{0,1,0},KoornwinderTriangle},k::Integer) = k==1 ? 0 : 1
86-
87-
88-
subblockbandinds(::ConcreteConversion{DirichletTriangle{0,0,1},KoornwinderTriangle}) = (0,1)
89-
subblockbandinds(::ConcreteConversion{DirichletTriangle{0,0,1},KoornwinderTriangle},k::Integer) = k==1 ? 0 : 1
90-
91-
function getindex(R::ConcreteConversion{DirichletTriangle{1,0,0},KoornwinderTriangle},k::Integer,j::Integer)
83+
function getindex(R::ConcreteConversion{DirichletTriangle{1,0,0},JacobiTriangle},k::Integer,j::Integer)
9284
T=eltype(R)
9385
K = Int(block(rangespace(R),k))
9486
J = Int(block(domainspace(R),j))
@@ -112,7 +104,7 @@ end
112104

113105

114106

115-
function getindex(R::ConcreteConversion{DirichletTriangle{0,1,0},KoornwinderTriangle,T},k::Integer,j::Integer) where T
107+
function getindex(R::ConcreteConversion{DirichletTriangle{0,1,0},JacobiTriangle,T},k::Integer,j::Integer) where T
116108
K = Int(block(rangespace(R),k))
117109
J = Int(block(domainspace(R),j))
118110
κ=k-blockstart(rangespace(R),K)+1
@@ -138,7 +130,7 @@ function getindex(R::ConcreteConversion{DirichletTriangle{0,1,0},KoornwinderTria
138130
end
139131

140132

141-
function getindex(R::ConcreteConversion{DirichletTriangle{0,0,1},KoornwinderTriangle,T},k::Integer,j::Integer) where T
133+
function getindex(R::ConcreteConversion{DirichletTriangle{0,0,1},JacobiTriangle,T},k::Integer,j::Integer) where T
142134
K = Int(block(rangespace(R),k))
143135
J = Int(block(domainspace(R),j))
144136
κ=k-blockstart(rangespace(R),K)+1
@@ -164,36 +156,20 @@ function getindex(R::ConcreteConversion{DirichletTriangle{0,0,1},KoornwinderTria
164156
end
165157

166158

167-
blockbandinds(::ConcreteConversion{DirichletTriangle{1,1,0},DirichletTriangle{0,1,0}}) = (0,1)
168-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,1,0},DirichletTriangle{0,1,0}}) = (0,0)
169-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,1,0},DirichletTriangle{0,1,0}},k::Integer) = 0
170-
171-
blockbandinds(::ConcreteConversion{DirichletTriangle{1,0,1},DirichletTriangle{0,0,1}}) = (0,1)
172-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,0,1},DirichletTriangle{0,0,1}}) = (0,0)
173-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,0,1},DirichletTriangle{0,0,1}},k::Integer) = 0
174-
175-
176-
177-
178-
blockbandinds(::ConcreteConversion{DirichletTriangle{1,1,0},DirichletTriangle{1,0,0}}) = (0,1)
179-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,1,0},DirichletTriangle{1,0,0}}) = (0,1)
180-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,1,0},DirichletTriangle{1,0,0}},k::Integer) = k==1 ? 0 : 1
181-
182-
blockbandinds(::ConcreteConversion{DirichletTriangle{1,0,1},DirichletTriangle{1,0,0}}) = (0,1)
183-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,0,1},DirichletTriangle{1,0,0}}) = (0,1)
184-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,0,1},DirichletTriangle{1,0,0}},k::Integer) = k==1 ? 0 : 1
185-
186-
187-
blockbandinds(::ConcreteConversion{DirichletTriangle{0,1,1},DirichletTriangle{0,0,1}}) = (0,1)
188-
subblockbandinds(::ConcreteConversion{DirichletTriangle{0,1,1},DirichletTriangle{0,0,1}}) = (0,1)
189-
subblockbandinds(::ConcreteConversion{DirichletTriangle{0,1,1},DirichletTriangle{0,0,1}},k::Integer) = k==1 ? 0 : 1
190-
159+
blockbandwidths(::ConcreteConversion{DirichletTriangle{1,1,0},DirichletTriangle{0,1,0}}) = (0,1)
160+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{1,1,0},DirichletTriangle{0,1,0}}) = (0,0)
161+
blockbandwidths(::ConcreteConversion{DirichletTriangle{1,0,1},DirichletTriangle{0,0,1}}) = (0,1)
162+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{1,0,1},DirichletTriangle{0,0,1}}) = (0,0)
163+
blockbandwidths(::ConcreteConversion{DirichletTriangle{1,1,0},DirichletTriangle{1,0,0}}) = (0,1)
164+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{1,1,0},DirichletTriangle{1,0,0}}) = (0,1)
165+
blockbandwidths(::ConcreteConversion{DirichletTriangle{1,0,1},DirichletTriangle{1,0,0}}) = (0,1)
166+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{1,0,1},DirichletTriangle{1,0,0}}) = (0,1)
167+
blockbandwidths(::ConcreteConversion{DirichletTriangle{0,1,1},DirichletTriangle{0,0,1}}) = (0,1)
168+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{0,1,1},DirichletTriangle{0,0,1}}) = (0,1)
169+
blockbandwidths(::ConcreteConversion{DirichletTriangle{0,1,1},DirichletTriangle{0,1,0}}) = (0,1)
170+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{0,1,1},DirichletTriangle{0,1,0}}) = (0,1)
191171

192172

193-
blockbandinds(::ConcreteConversion{DirichletTriangle{0,1,1},DirichletTriangle{0,1,0}}) = (0,1)
194-
subblockbandinds(::ConcreteConversion{DirichletTriangle{0,1,1},DirichletTriangle{0,1,0}}) = (0,1)
195-
subblockbandinds(::ConcreteConversion{DirichletTriangle{0,1,1},DirichletTriangle{0,1,0}},k::Integer) = k==1 ? 0 : 1
196-
197173

198174

199175
function getindex(R::ConcreteConversion{DirichletTriangle{1,1,0},DirichletTriangle{0,1,0}},k::Integer,j::Integer)
@@ -396,27 +372,12 @@ function getindex(R::ConcreteConversion{DirichletTriangle{0,1,1},DirichletTriang
396372
end
397373

398374

399-
400-
401-
402-
blockbandinds(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{0,1,1}}) = (0,1)
403-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{0,1,1}}) = (0,0)
404-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{0,1,1}},k::Integer) = 0
405-
406-
407-
blockbandinds(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{1,0,1}}) = (0,1)
408-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{1,0,1}}) = (0,1)
409-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{1,0,1}},k::Integer) = k==1 ? 0 : 1
410-
411-
412-
blockbandinds(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{1,1,0}}) = (0,1)
413-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{1,1,0}}) = (0,1)
414-
subblockbandinds(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{1,1,0}},k::Integer) = k==1 ? 0 : 1
415-
416-
417-
418-
419-
375+
blockbandwidths(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{0,1,1}}) = (0,1)
376+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{0,1,1}}) = (0,0)
377+
blockbandwidths(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{1,0,1}}) = (0,1)
378+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{1,0,1}}) = (0,1)
379+
blockbandwidths(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{1,1,0}}) = (0,1)
380+
subblockbandwidths(::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{1,1,0}}) = (0,1)
420381

421382
function getindex(R::ConcreteConversion{DirichletTriangle{1,1,1},DirichletTriangle{0,1,1},T},k::Integer,j::Integer)::T where {T}
422383
K = Int(block(rangespace(R),k))
@@ -628,7 +589,7 @@ end
628589

629590
isblockbanded(::ConcreteConversion{<:DirichletTriangle,<:Jacobi}) = true
630591

631-
blockbandinds(::ConcreteConversion{<:DirichletTriangle,<:Jacobi}) = (0,0)
592+
blockbandwidths(::ConcreteConversion{<:DirichletTriangle,<:Jacobi}) = (0,0)
632593
function getindex(R::ConcreteConversion{DirichletTriangle{1,0,0},<:Jacobi},k::Integer,j::Integer)
633594
T=eltype(R)
634595
J = Int(block(domainspace(R),j))
@@ -669,7 +630,7 @@ end
669630
Dirichlet(d::Triangle) = Dirichlet(DirichletTriangle{1,1,1}(d))
670631

671632

672-
Base.sum(f::Fun{<:DirichletTriangle}) = sum(Fun(f,KoornwinderTriangle(0,0,0,domain(f))))
633+
Base.sum(f::Fun{<:DirichletTriangle}) = sum(Fun(f,JacobiTriangle(0,0,0,domain(f))))
673634

674635

675636

@@ -683,11 +644,11 @@ function Derivative(A::DirichletTriangle{1,0,1}, order)
683644
if d == Triangle()
684645
ConcreteDerivative(A,order)
685646
else
686-
S = KoornwinderTriangle(0,0,0,d)
647+
S = JacobiTriangle(0,0,0,d)
687648
DerivativeWrapper(Derivative(S,order)*Conversion(A,S),order)
688649
end
689650
elseif order == [0,1]
690-
S = KoornwinderTriangle(0,0,0,d)
651+
S = JacobiTriangle(0,0,0,d)
691652
DerivativeWrapper(Derivative(S,order)*Conversion(A,S),order)
692653
elseif order[1] 1
693654
D = Derivative(A,[1,0])
@@ -705,11 +666,11 @@ function Derivative(A::DirichletTriangle{0,1,1}, order)
705666
if d == Triangle()
706667
ConcreteDerivative(A,order)
707668
else
708-
S = KoornwinderTriangle(0,0,0,d)
669+
S = JacobiTriangle(0,0,0,d)
709670
DerivativeWrapper(Derivative(S,order)*Conversion(A,S),order)
710671
end
711672
elseif order == [1,0]
712-
S = KoornwinderTriangle(0,0,0,d)
673+
S = JacobiTriangle(0,0,0,d)
713674
DerivativeWrapper(Derivative(S,order)*Conversion(A,S),order)
714675
elseif order[1] > 1
715676
D = Derivative(A,[1,0])
@@ -752,21 +713,18 @@ function Derivative(A::DirichletTriangle{1,1,1}, order)
752713
end
753714

754715

755-
rangespace(D::ConcreteDerivative{DirichletTriangle{1,0,1}}) = KoornwinderTriangle(0,0,0)
756-
rangespace(D::ConcreteDerivative{DirichletTriangle{0,1,1}}) = KoornwinderTriangle(0,0,0)
716+
rangespace(D::ConcreteDerivative{DirichletTriangle{1,0,1}}) = JacobiTriangle(0,0,0)
717+
rangespace(D::ConcreteDerivative{DirichletTriangle{0,1,1}}) = JacobiTriangle(0,0,0)
757718

758719
isbandedblockbanded(::ConcreteDerivative{DirichletTriangle{1,0,1}}) = true
759720
isbandedblockbanded(::ConcreteDerivative{DirichletTriangle{0,1,1}}) = true
760721

761722

762-
blockbandinds(::ConcreteDerivative{DirichletTriangle{1,0,1}}) = (-1,1)
763-
blockbandinds(::ConcreteDerivative{DirichletTriangle{0,1,1}}) = (-1,1)
764-
765-
subblockbandinds(::ConcreteDerivative{DirichletTriangle{1,0,1}}) = (0,1)
766-
subblockbandinds(::ConcreteDerivative{DirichletTriangle{1,0,1}}, k::Integer) = k == 1 ? 0 : 1
723+
blockbandwidths(::ConcreteDerivative{DirichletTriangle{1,0,1}}) = (1,1)
724+
blockbandwidths(::ConcreteDerivative{DirichletTriangle{0,1,1}}) = (1,1)
725+
subblockbandwidths(::ConcreteDerivative{DirichletTriangle{1,0,1}}) = (0,1)
726+
subblockbandwidths(::ConcreteDerivative{DirichletTriangle{0,1,1}}) = (1,1)
767727

768-
subblockbandinds(::ConcreteDerivative{DirichletTriangle{0,1,1}}) = (-1,1)
769-
subblockbandinds(::ConcreteDerivative{DirichletTriangle{0,1,1}}, k::Integer) = k == 1 ? -1 : 1
770728

771729

772730
function getindex(R::ConcreteDerivative{DirichletTriangle{1,0,1}}, k::Integer, j::Integer)

src/MultivariateOrthogonalPolynomials.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ __precompile__()
33
module MultivariateOrthogonalPolynomials
44
using Base, RecipesBase, ApproxFun, BandedMatrices, BlockArrays,
55
FastTransforms, FastGaussQuadrature, StaticArrays, FillArrays,
6-
LinearAlgebra, Libdl, SpecialFunctions
6+
LinearAlgebra, Libdl, SpecialFunctions, LazyArrays
77

88
# package code goes here
99
import Base: values,getindex,setindex!,*, +, -, ==,<,<=,>,
1010
>=,/,^,\,,transpose
1111

1212

13-
import BandedMatrices: mul!, inbands_getindex, inbands_setindex!
13+
import BandedMatrices: inbands_getindex, inbands_setindex!
1414

1515
# ApproxFun general import
1616
import ApproxFun: BandedMatrix, order, blocksize,
@@ -22,7 +22,7 @@ import ApproxFun: BandedMatrix, order, blocksize,
2222
import ApproxFun: fromcanonical, tocanonical, domainscompatible
2323

2424
# Operator import
25-
import ApproxFun: bandinds,SpaceOperator, ConversionWrapper, DerivativeWrapper,
25+
import ApproxFun: bandwidths,SpaceOperator, ConversionWrapper, DerivativeWrapper,
2626
rangespace, domainspace, InterlaceOperator,
2727
promotedomainspace, CalculusOperator, interlace, Multiplication,
2828
choosedomainspace, SubOperator, ZeroOperator,
@@ -45,7 +45,7 @@ import ApproxFun: PolynomialSpace, ConstantSpace, NoSpace, prectype,
4545
# Multivariate import
4646
import ApproxFun: BivariateDomain,DirectSumSpace, AbstractProductSpace, factor,
4747
BivariateFun, ProductFun, LowRankFun, lap, columnspace,
48-
blockbandinds, subblockbandinds, fromtensor, totensor, isbandedblockbanded,
48+
blockbandwidths, subblockbandwidths, fromtensor, totensor, isbandedblockbanded,
4949
Tensorizer, tensorizer, block, blockstart, blockstop, blocklengths,
5050
domaintensorizer, rangetensorizer, blockrange, Block, BlockRange1
5151

0 commit comments

Comments
 (0)