Skip to content

Commit e81ad6c

Browse files
committed
work on cone
1 parent 36eb1f8 commit e81ad6c

File tree

4 files changed

+28
-5
lines changed

4 files changed

+28
-5
lines changed

src/Cone/Cone.jl

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,14 +175,33 @@ tensorizer(K::LegendreCone) = BallTensorizer()
175175

176176
rectspace(::DuffyCone) = NormalizedJacobi(0,1,Segment(1,0))*ZernikeDisk()
177177

178-
178+
function points(sp::Cone,n)
179+
pts=Array{float(eltype(domain(sp)))}(undef,0)
180+
a,b = sp.spaces
181+
if isfinite(dimension(a)) && isfinite(dimension(b))
182+
N,M=dimension(a),dimension(b)
183+
elseif isfinite(dimension(a))
184+
N=dimension(a)
185+
M=n÷N
186+
elseif isfinite(dimension(b))
187+
M=dimension(b)
188+
N=n÷M
189+
else
190+
N=M=round(Int,sqrt(n))
191+
end
192+
193+
for y in points(b,M), x in points(a,N)
194+
push!(pts,Vec(x...,y...))
195+
end
196+
pts
197+
end
179198

180199

181200
points(::Cone, n) = conemap.(points(rectspace(DuffyCone()), n))
182201
checkpoints(::Cone) = conemap.(checkpoints(rectspace(DuffyCone())))
183202

184203

185-
function plan_transform(S::DuffyCone, n::AbstractVector)
204+
function plan_transform(sp::DuffyCone, n::AbstractVector)
186205
rs = rectspace(S)
187206
P = TransformPlan(sp,((plan_transform(sp.spaces[1],T,N),N), (plan_transform(sp.spaces[2],T,M),M)), Val{false})
188207
TransformPlan(S, P, Val{false})

src/Disk/Disk.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ DiskTensorizer() = Tensorizer((Ones{Int}(∞),Ones{Int}(∞)))
4242
tensorizer(K::ChebyshevDisk) = DiskTensorizer()
4343

4444
# we have each polynomial
45-
blocklengths(K::ChebyshevDisk) = 1:
45+
blocklengths(K::ChebyshevDisk) = Base.OneTo(∞)
46+
blocklengths(K::ZernikeDisk) = Base.OneTo(∞)
4647

4748
for OP in (:block,:blockstart,:blockstop)
4849
@eval begin

test/test_cone.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using ApproxFun, MultivariateOrthogonalPolynomials, StaticArrays, Test
2+
import ApproxFunBase: checkpoints
23
import MultivariateOrthogonalPolynomials: rectspace, totensor, duffy2legendreconic!, legendre2duffyconic!, c_plan_rottriangle, plan_transform
34

45
@testset "Conic" begin

test/test_disk.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using Revise
2-
using ApproxFun, MultivariateOrthogonalPolynomials
2+
using ApproxFun, MultivariateOrthogonalPolynomials, InfiniteArrays
33
import MultivariateOrthogonalPolynomials: checkerboard, icheckerboard, CDisk2CxfPlan
4-
import ApproxFunBase: totensor
4+
import ApproxFunBase: totensor, blocklengths
55
import ApproxFunOrthogonalPolynomials: jacobip
66

77

@@ -112,4 +112,6 @@ end
112112
@test f(0.1,0.2) 1.0
113113
f = Fun((x,y) -> exp(x*cos(y-0.1)), ZernikeDisk())
114114
@test f(0.1,0.2) exp(0.1*cos(0.1))
115+
116+
@test blocklengths(ZernikeDisk()) == Base.OneTo(∞)
115117
end

0 commit comments

Comments
 (0)