Skip to content

Commit f157502

Browse files
authored
update broken ops (#106)
* update broken ops * Update Project.toml
1 parent cc448aa commit f157502

File tree

4 files changed

+91
-90
lines changed

4 files changed

+91
-90
lines changed

Project.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,19 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
2626
[compat]
2727
ArrayLayouts = "0.7"
2828
BandedMatrices = "0.16"
29-
BlockArrays = "0.16"
30-
BlockBandedMatrices = "0.10.1, 0.11"
29+
BlockArrays = "0.16.7"
30+
BlockBandedMatrices = "0.11"
3131
ClassicalOrthogonalPolynomials = "0.4.2"
3232
ContinuumArrays = "0.8, 0.9"
3333
DomainSets = "0.5"
3434
FastTransforms = "0.12"
3535
FillArrays = "0.11, 0.12"
3636
HarmonicOrthogonalPolynomials = "0.2"
37-
InfiniteArrays = "0.11, 0.12"
38-
InfiniteLinearAlgebra = "0.5, 0.6"
37+
InfiniteArrays = "0.12"
38+
InfiniteLinearAlgebra = "0.6"
3939
LazyArrays = "0.21.8"
40-
LazyBandedMatrices = "0.6.1, 0.7"
41-
QuasiArrays = "0.6, 0.7, 0.8"
40+
LazyBandedMatrices = "0.7"
41+
QuasiArrays = "0.8"
4242
SpecialFunctions = "1"
4343
StaticArrays = "1"
4444
julia = "1.6"

src/rectdisk.jl

Lines changed: 49 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ WeightedDunklXuDisk(β) = DunklXuDiskWeight(β) .* DunklXuDisk(β)
4444
k = mortar(Base.OneTo.(oneto(∞)))
4545
dat = BlockBroadcastArray(hcat,
4646
((k .+- 1)) ./ (2k .+ (2β - 1)) .* (n .- k .+ 1)),
47-
0 .* n,
47+
Zeros((axes(n,1),)),
4848
(((k .+ 2β) .* (k .+ (2β + 1))) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β)) .* (n .+ k .+ 2β) ./ 2)
4949
)
5050
DunklXuDisk+1) * _BandedBlockBandedMatrix(dat', axes(k,1), (-1,1), (0,2))
@@ -65,7 +65,7 @@ end
6565
k = mortar(Base.OneTo.(oneto(∞)))
6666
dat = BlockBroadcastArray(hcat,
6767
(-4 .* (k .+- 1)).*(n .- k .+ 1)./(2k .+ (2β - 1))),
68-
0 .* n,
68+
Zeros((axes(n,1),)),
6969
(-k .* (k .+ 1) ./ ((2k .+ (2β - 1)) .* (k .+ β)) .* (n .+ k .+ 2β))
7070
)
7171
WeightedDunklXuDisk-1) * _BandedBlockBandedMatrix(dat', axes(k,1), (1,-1), (2,0))
@@ -83,18 +83,18 @@ end
8383
function dunklxu_raising(β)
8484
n = mortar(Fill.(oneto(∞),oneto(∞)))
8585
k = mortar(Base.OneTo.(oneto(∞)))
86-
dat = PseudoBlockArray(Vcat(
87-
(-(k .+- 1)) .* (2n .+ (2β - 1)) ./ ((2k .+ (2β - 1)) .* (4n .+ 4β)))', # n-2, k-2
88-
(0 .* n)', # n-2, k-1
89-
(-(k .+ 2β) .* (k .+ (2β + 1)) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β)) .* (2n .+ (2β-1)) ./ (8n .+ 8β))', # n-2, k
90-
(0 .* n)', # n-1, k-2
91-
(0 .* n)', # n-1, k-1
92-
(0 .* n)', # n-1, k
93-
(2 .* (k .+- 1)) .* (n .- k .+ 1) .* (n .- k .+ 2) ./ ((2k .+ (2β-1)) .* (2n .+ 2β) .* (2n .+ (2β + 1))))', # n, k-2
94-
(0 .* n)', # n, k-1
95-
((k .+ 2β) .* (k .+ (2β + 1)) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β)) .* (n .+ k .+ 2β) .* (n .+ k .+ (2β + 1)) ./ ((2n .+ 2β) .* (2n .+ (2β + 1))))' # n, k
96-
), (blockedrange(Fill(3,3)), axes(n,1)))
97-
_BandedBlockBandedMatrix(dat, axes(k,1), (0,2), (0,2))
86+
dat = BlockHcat(
87+
BlockBroadcastArray(hcat,
88+
(-(k .+- 1)) .* (2n .+ (2β - 1)) ./ ((2k .+ (2β - 1)) .* (4n .+ 4β))), # n-2, k-2
89+
Zeros((axes(n,1),)), # n-2, k-1
90+
(-(k .+ 2β) .* (k .+ (2β + 1)) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β)) .* (2n .+ (2β-1)) ./ (8n .+ 8β))), # n-2, k
91+
Zeros((axes(n,1), Base.OneTo(3))),
92+
BlockBroadcastArray(hcat,
93+
(2 .* (k .+- 1)) .* (n .- k .+ 1) .* (n .- k .+ 2) ./ ((2k .+ (2β-1)) .* (2n .+ 2β) .* (2n .+ (2β + 1)))), # n, k-2
94+
Zeros((axes(n,1),)), # n, k-1
95+
((k .+ 2β) .* (k .+ (2β + 1)) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β)) .* (n .+ k .+ 2β) .* (n .+ k .+ (2β + 1)) ./ ((2n .+ 2β) .* (2n .+ (2β + 1)))) # n, k
96+
))
97+
_BandedBlockBandedMatrix(dat', axes(k,1), (0,2), (0,2))
9898
end
9999

100100
function \(A::DunklXuDisk, B::DunklXuDisk)
@@ -111,18 +111,18 @@ end
111111
function dunklxu_lowering(β)
112112
n = mortar(Fill.(oneto(∞),oneto(∞)))
113113
k = mortar(Base.OneTo.(oneto(∞)))
114-
dat = PseudoBlockArray(Vcat(
115-
((2n .+ (2β - 1)) ./ (n .+ β) .* (k .+- 1)) ./ (2k .+ (2β - 1)))', # n, k
116-
(0 .* n)', # n, k+1
117-
((n .+- 1/2)) ./ (n .+ β) .* k .* (k .+ 1) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β)))', # n, k+2
118-
(0 .* n)', # n+1, k
119-
(0 .* n)', # n+1, k+1
120-
(0 .* n)', # n+1, k+2
121-
(-8 .* (n .- k .+ 1) .* (n .- k .+ 2) ./ ((2n .+ 2β) .* (2n .+ (2β + 1))) .* (k .+- 1)) ./(2k .+ (2β - 1)))', # n+2, k
122-
(0 .* n)', # n+2, k+1
123-
(-4 .* (n .+ k .+ 2β) .* (n .+ k .+ (2β + 1)) ./ ((2n .+ 2β) .* (2n .+ (2β + 1))) .* k .* (k .+ 1) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β)))' # n+2, k+2
124-
), (blockedrange(Fill(3,3)), axes(n,1)))
125-
_BandedBlockBandedMatrix(dat, axes(k,1), (2,0), (2,0))
114+
dat = BlockHcat(
115+
BlockBroadcastArray(hcat,
116+
((2n .+ (2β - 1)) ./ (n .+ β) .* (k .+- 1)) ./ (2k .+ (2β - 1))), # n, k
117+
Zeros((axes(n,1),)), # n, k+1
118+
((n .+- 1/2)) ./ (n .+ β) .* k .* (k .+ 1) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β)))), # n, k+2
119+
Zeros((axes(n,1), Base.OneTo(3))),
120+
BlockBroadcastArray(hcat,
121+
(-8 .* (n .- k .+ 1) .* (n .- k .+ 2) ./ ((2n .+ 2β) .* (2n .+ (2β + 1))) .* (k .+- 1)) ./(2k .+ (2β - 1))), # n+2, k
122+
Zeros((axes(n,1),)), # n+2, k+1
123+
(-4 .* (n .+ k .+ 2β) .* (n .+ k .+ (2β + 1)) ./ ((2n .+ 2β) .* (2n .+ (2β + 1))) .* k .* (k .+ 1) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β))) # n+2, k+2
124+
))
125+
_BandedBlockBandedMatrix(dat', axes(k,1), (2,0), (2,0))
126126
end
127127

128128
function \(w_A::WeightedDunklXuDisk, w_B::WeightedDunklXuDisk)
@@ -149,41 +149,40 @@ function jacobimatrix(::Val{1}, P::DunklXuDisk)
149149
β = P.β
150150
n = mortar(Fill.(oneto(∞),oneto(∞)))
151151
k = mortar(Base.OneTo.(oneto(∞)))
152-
dat = PseudoBlockArray(Vcat(
153-
((2n .+ (2β - 1)) ./ (4n .+ 4β))', # n-1, k
154-
(0 .* n)', # n, k
155-
((n .- k .+ 1) .* (n .+ k .+ 2β) ./ ((n .+ β) .* (2n .+ (2β + 1))))', # n+1, k
156-
), (blockedrange(Fill(1, 3)), axes(n,1)))
157-
_BandedBlockBandedMatrix(dat, axes(k,1), (1,1), (0,0))
152+
dat = BlockHcat(
153+
((2n .+ (2β - 1)) ./ (4n .+ 4β)), # n-1, k
154+
Zeros((axes(n,1),)), # n, k
155+
((n .- k .+ 1) .* (n .+ k .+ 2β) ./ ((n .+ β) .* (2n .+ (2β + 1)))), # n+1, k
156+
)
157+
_BandedBlockBandedMatrix(dat', axes(k,1), (1,1), (0,0))
158158
end
159159

160160
# Actually Jyᵀ
161161
function jacobimatrix(::Val{2}, P::DunklXuDisk)
162162
β = P.β
163163
n = mortar(Fill.(oneto(∞),oneto(∞)))
164164
k = mortar(Base.OneTo.(oneto(∞)))
165-
dat = PseudoBlockArray(Vcat(
166-
((k .+- 1)) .* (2n .+ (2β - 1)) ./ ((2k .+ (2β - 1)) .* (2n .+ 2β)))', # n-1, k-1
167-
(0 .* n)', # n-1, k
168-
(-k .* (k .+ 2β) .* (2n .+ (2β - 1)) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β) .* (4n .+ 4β)))', # n-1, k+1
169-
(0 .* n)', # n, k-1
170-
(0 .* n)', # n, k
171-
(0 .* n)', # n, k+1
172-
(-(2k .+ (2β - 2)) .* (n .- k .+ 1) .* (n .- k .+ 2) ./ ((2k .+ (2β - 1)) .* (n .+ β) .* (2n .+ (2β + 1))))', # n+1, k-1
173-
(0 .* n)', # n+1, k
174-
(k .* (k .+ 2β) .* (n .+ k .+ 2β) .* (n .+ k .+ (2β + 1)) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β) .* (n .+ β) .* (2n .+ (2β + 1))))', # n+1, k+1
175-
), (blockedrange(Fill(3, 3)), axes(n,1)))
176-
_BandedBlockBandedMatrix(dat, axes(k,1), (1,1), (1,1))
165+
dat = BlockHcat(
166+
BlockBroadcastArray(hcat,
167+
((k .+- 1)) .* (2n .+ (2β - 1)) ./ ((2k .+ (2β - 1)) .* (2n .+ 2β))), # n-1, k-1
168+
Zeros((axes(n,1),)), # n-1, k
169+
(-k .* (k .+ 2β) .* (2n .+ (2β - 1)) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β) .* (4n .+ 4β)))), # n-1, k+1
170+
Zeros((axes(n,1),Base.OneTo(3))),
171+
BlockBroadcastArray(hcat,
172+
(-(2k .+ (2β - 2)) .* (n .- k .+ 1) .* (n .- k .+ 2) ./ ((2k .+ (2β - 1)) .* (n .+ β) .* (2n .+ (2β + 1)))), # n+1, k-1
173+
Zeros((axes(n,1),)), # n+1, k
174+
(k .* (k .+ 2β) .* (n .+ k .+ 2β) .* (n .+ k .+ (2β + 1)) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β) .* (n .+ β) .* (2n .+ (2β + 1)))))) # n+1, k+1
175+
_BandedBlockBandedMatrix(dat', axes(k,1), (1,1), (1,1))
177176
end
178177

179178
@simplify function *(A::AngularMomentum, P::DunklXuDisk)
180179
β = P.β
181180
n = mortar(Fill.(oneto(∞),oneto(∞)))
182181
k = mortar(Base.OneTo.(oneto(∞)))
183-
dat = PseudoBlockArray(Vcat(
184-
(2 .* (k .+- 1)) .* (n .- k .+ 1) ./ (2k .+ (2β - 1)))', # n, k-1
185-
(0 .* n)', # n, k
186-
(-k .* (k .+ 2β) .* (n .+ k .+ 2β) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β)))', # n, k+1
187-
), (blockedrange(Fill(3, 1)), axes(n,1)))
188-
DunklXuDisk(β) * _BandedBlockBandedMatrix(dat, axes(k,1), (0,0), (1,1))
182+
dat = BlockBroadcastArray(hcat,
183+
(2 .* (k .+- 1)) .* (n .- k .+ 1) ./ (2k .+ (2β - 1))), # n, k-1
184+
Zeros((axes(n,1),)), # n, k
185+
(-k .* (k .+ 2β) .* (n .+ k .+ 2β) ./ ((2k .+ (2β - 1)) .* (2k .+ 2β)))) # n, k+1
186+
187+
DunklXuDisk(β) * _BandedBlockBandedMatrix(dat', axes(k,1), (0,0), (1,1))
189188
end

src/triangle.jl

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -136,57 +136,60 @@ end
136136
function Ry(a,b,c)
137137
n = mortar(Fill.(oneto(∞),oneto(∞)))
138138
k = mortar(Base.OneTo.(oneto(∞)))
139-
dat = PseudoBlockArray(Vcat(
140-
((k .+ (c-1) ) .* (n .+ k .+ (b+c-1)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
141-
((k .- n .- a ) .* (k .+ (b+c)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
142-
((k .+ (c-1) ) .* (k .- n .- 1) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
143-
((n .+ k .+ (a+b+c) ) .* (k .+ (b+c)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))'
144-
), (blockedrange(Fill(2,2)), axes(n,1)))
145-
_BandedBlockBandedMatrix(dat, axes(k,1), (0,1), (0,1))
139+
dat = BlockHcat(
140+
BlockBroadcastArray(hcat,
141+
((k .+ (c-1) ) .* (n .+ k .+ (b+c-1)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) ))),
142+
((k .- n .- a ) .* (k .+ (b+c)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))),
143+
BlockBroadcastArray(hcat,
144+
((k .+ (c-1) ) .* (k .- n .- 1) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) ))),
145+
((n .+ k .+ (a+b+c) ) .* (k .+ (b+c)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))))
146+
_BandedBlockBandedMatrix(dat', axes(k,1), (0,1), (0,1))
146147
end
147148

148149
function Rz(a,b,c)
149150
n = mortar(Fill.(oneto(∞),oneto(∞)))
150151
k = mortar(Base.OneTo.(oneto(∞)))
151-
dat = PseudoBlockArray(Vcat(
152-
(-(k .+ (b-1) ) .* (n .+ k .+ (b+c-1)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
153-
((k .- n .- a ) .* (k .+ (b+c)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
154-
(-(k .+ (b-1) ) .* (k .- n .- 1) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
155-
((n .+ k .+ (a+b+c) ) .* (k .+ (b+c)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))'
156-
), (blockedrange(Fill(2,2)), axes(n,1)))
157-
_BandedBlockBandedMatrix(dat, axes(k,1), (0,1), (0,1))
152+
dat = BlockHcat(
153+
BlockBroadcastArray(hcat,
154+
(-(k .+ (b-1) ) .* (n .+ k .+ (b+c-1)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) ))),
155+
((k .- n .- a ) .* (k .+ (b+c)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))),
156+
BlockBroadcastArray(hcat,
157+
(-(k .+ (b-1) ) .* (k .- n .- 1) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) ))),
158+
((n .+ k .+ (a+b+c) ) .* (k .+ (b+c)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))))
159+
_BandedBlockBandedMatrix(dat', axes(k,1), (0,1), (0,1))
158160
end
159161

160162
function Lx(a,b,c)
161163
n = mortar(Fill.(oneto(∞),oneto(∞)))
162164
k = mortar(Base.OneTo.(oneto(∞)))
163-
dat = PseudoBlockArray(Vcat(
164-
((n .- k .+ a) ./ (2n .+ (a+b+c)))',
165-
((n .- k .+ 1) ./ (2n .+ (a+b+c)))'
166-
), (blockedrange(Fill(1,2)), axes(n,1)))
167-
_BandedBlockBandedMatrix(dat, axes(k,1), (1,0), (0,0))
165+
dat = BlockHcat(
166+
((n .- k .+ a) ./ (2n .+ (a+b+c))),
167+
((n .- k .+ 1) ./ (2n .+ (a+b+c))))
168+
_BandedBlockBandedMatrix(dat', axes(k,1), (1,0), (0,0))
168169
end
169170
function Ly(a,b,c)
170171
n = mortar(Fill.(oneto(∞),oneto(∞)))
171172
k = mortar(Base.OneTo.(oneto(∞)))
172-
dat = PseudoBlockArray(Vcat(
173-
((k .+ (b-1) ) .* (n .+ k .+ (b+c-1)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
174-
(k .* (k .- n .- a ) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
175-
((k .+ (b-1) ) .* (k .- n .- 1) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
176-
( k .* (n .+ k .+ (a+b+c) ) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))'
177-
), (blockedrange(Fill(2,2)), axes(n,1)))
178-
_BandedBlockBandedMatrix(dat, axes(k,1), (1,0), (1,0))
173+
dat = BlockHcat(
174+
BlockBroadcastArray(hcat,
175+
((k .+ (b-1) ) .* (n .+ k .+ (b+c-1)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) ))),
176+
(k .* (k .- n .- a ) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))),
177+
BlockBroadcastArray(hcat,
178+
((k .+ (b-1) ) .* (k .- n .- 1) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) ))),
179+
( k .* (n .+ k .+ (a+b+c) ) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))))
180+
_BandedBlockBandedMatrix(dat', axes(k,1), (1,0), (1,0))
179181
end
180182
function Lz(a,b,c)
181183
n = mortar(Fill.(oneto(∞),oneto(∞)))
182184
k = mortar(Base.OneTo.(oneto(∞)))
183-
dat = PseudoBlockArray(Vcat(
184-
((k .+ (c-1) ) .* (n .+ k .+ (b+c-1)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
185-
(k .* (n .- k .+ a ) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
186-
((k .+ (c-1) ) .* (k .- n .- 1) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))',
187-
( (-k) .* (n .+ k .+ (a+b+c) ) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))'
188-
), (blockedrange(Fill(2,2)), axes(n,1)))
189-
_BandedBlockBandedMatrix(dat, axes(k,1), (1,0), (1,0))
185+
dat = BlockHcat(
186+
BlockBroadcastArray(hcat,
187+
((k .+ (c-1) ) .* (n .+ k .+ (b+c-1)) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) ))),
188+
(k .* (n .- k .+ a ) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))),
189+
BlockBroadcastArray(hcat,
190+
((k .+ (c-1) ) .* (k .- n .- 1) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) ))),
191+
( (-k) .* (n .+ k .+ (a+b+c) ) ./ ((2n .+ (a+b+c)) .* (2k .+ (b+c-1) )))))
192+
_BandedBlockBandedMatrix(dat', axes(k,1), (1,0), (1,0))
190193
end
191194

192195

test/test_rectdisk.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import MultivariateOrthogonalPolynomials: dunklxu_raising, dunklxu_lowering, Ang
1717

1818
@testset "operators" begin
1919
N = 5
20-
2120
β = 0.123
2221

2322
P = DunklXuDisk(β)

0 commit comments

Comments
 (0)