@@ -44,7 +44,7 @@ WeightedDunklXuDisk(β) = DunklXuDiskWeight(β) .* DunklXuDisk(β)
44
44
k = mortar (Base. OneTo .(oneto (∞)))
45
45
dat = BlockBroadcastArray (hcat,
46
46
((k .+ (β - 1 )) ./ (2 k .+ (2 β - 1 )) .* (n .- k .+ 1 )),
47
- 0 .* n ,
47
+ Zeros (( axes (n, 1 ),)) ,
48
48
(((k .+ 2 β) .* (k .+ (2 β + 1 ))) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 2 β)) .* (n .+ k .+ 2 β) ./ 2 )
49
49
)
50
50
DunklXuDisk (β+ 1 ) * _BandedBlockBandedMatrix (dat' , axes (k,1 ), (- 1 ,1 ), (0 ,2 ))
65
65
k = mortar (Base. OneTo .(oneto (∞)))
66
66
dat = BlockBroadcastArray (hcat,
67
67
(- 4 .* (k .+ (β - 1 )). * (n .- k .+ 1 ). / (2 k .+ (2 β - 1 ))),
68
- 0 .* n ,
68
+ Zeros (( axes (n, 1 ),)) ,
69
69
(- k .* (k .+ 1 ) ./ ((2 k .+ (2 β - 1 )) .* (k .+ β)) .* (n .+ k .+ 2 β))
70
70
)
71
71
WeightedDunklXuDisk (β- 1 ) * _BandedBlockBandedMatrix (dat' , axes (k,1 ), (1 ,- 1 ), (2 ,0 ))
83
83
function dunklxu_raising (β)
84
84
n = mortar (Fill .(oneto (∞),oneto (∞)))
85
85
k = mortar (Base. OneTo .(oneto (∞)))
86
- dat = PseudoBlockArray ( Vcat (
87
- ( - (k .+ (β - 1 )) .* ( 2 n .+ ( 2 β - 1 )) ./ (( 2 k .+ ( 2 β - 1 )) .* ( 4 n .+ 4 β))) ' , # n-2, k-2
88
- ( 0 .* n) ' , # n-2, k-1
89
- ( - (k .+ 2 β) .* (k .+ ( 2 β + 1 )) ./ (( 2 k .+ ( 2 β - 1 )) .* ( 2 k .+ 2 β)) .* ( 2 n .+ ( 2 β - 1 )) ./ ( 8 n .+ 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 ) ./ ((2 k .+ (2 β- 1 )) .* (2 n .+ 2 β) .* (2 n .+ (2 β + 1 ))))' , # n, k-2
94
- ( 0 .* n) ' , # n, k-1
95
- ((k .+ 2 β) .* (k .+ (2 β + 1 )) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 2 β)) .* (n .+ k .+ 2 β) .* (n .+ k .+ (2 β + 1 )) ./ ((2 n .+ 2 β) .* (2 n .+ (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 )) .* ( 2 n .+ ( 2 β - 1 )) ./ (( 2 k .+ ( 2 β - 1 )) .* ( 4 n .+ 4 β))) , # n-2, k-2
89
+ Zeros (( axes (n, 1 ),)) , # n-2, k-1
90
+ ( - (k .+ 2 β) .* (k .+ ( 2 β + 1 )) ./ (( 2 k .+ ( 2 β - 1 )) .* ( 2 k .+ 2 β)) .* ( 2 n .+ ( 2 β - 1 )) ./ ( 8 n .+ 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 ) ./ ((2 k .+ (2 β- 1 )) .* (2 n .+ 2 β) .* (2 n .+ (2 β + 1 )))), # n, k-2
94
+ Zeros (( axes (n, 1 ),)) , # n, k-1
95
+ ((k .+ 2 β) .* (k .+ (2 β + 1 )) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 2 β)) .* (n .+ k .+ 2 β) .* (n .+ k .+ (2 β + 1 )) ./ ((2 n .+ 2 β) .* (2 n .+ (2 β + 1 )))) # n, k
96
+ ))
97
+ _BandedBlockBandedMatrix (dat' , axes (k,1 ), (0 ,2 ), (0 ,2 ))
98
98
end
99
99
100
100
function \ (A:: DunklXuDisk , B:: DunklXuDisk )
@@ -111,18 +111,18 @@ end
111
111
function dunklxu_lowering (β)
112
112
n = mortar (Fill .(oneto (∞),oneto (∞)))
113
113
k = mortar (Base. OneTo .(oneto (∞)))
114
- dat = PseudoBlockArray ( Vcat (
115
- (( 2 n .+ ( 2 β - 1 )) ./ (n .+ β) .* (k .+ (β - 1 )) ./ ( 2 k .+ ( 2 β - 1 ))) ' , # n, k
116
- ( 0 .* n) ' , # n, k+1
117
- ((n .+ (β - 1 / 2 )) ./ (n .+ β) .* k .* (k .+ 1 ) ./ (( 2 k .+ ( 2 β - 1 )) .* ( 2 k .+ 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 ) ./ ((2 n .+ 2 β) .* (2 n .+ (2 β + 1 ))) .* (k .+ (β - 1 )) ./ (2 k .+ (2 β - 1 )))' , # n+2, k
122
- ( 0 .* n) ' , # n+2, k+1
123
- (- 4 .* (n .+ k .+ 2 β) .* (n .+ k .+ (2 β + 1 )) ./ ((2 n .+ 2 β) .* (2 n .+ (2 β + 1 ))) .* k .* (k .+ 1 ) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 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
+ (( 2 n .+ ( 2 β - 1 )) ./ (n .+ β) .* (k .+ (β - 1 )) ./ ( 2 k .+ ( 2 β - 1 ))) , # n, k
117
+ Zeros (( axes (n, 1 ),)) , # n, k+1
118
+ ((n .+ (β - 1 / 2 )) ./ (n .+ β) .* k .* (k .+ 1 ) ./ (( 2 k .+ ( 2 β - 1 )) .* ( 2 k .+ 2 β)))) , # n, k+2
119
+ Zeros (( axes (n, 1 ), Base . OneTo ( 3 ))),
120
+ BlockBroadcastArray (hcat,
121
+ (- 8 .* (n .- k .+ 1 ) .* (n .- k .+ 2 ) ./ ((2 n .+ 2 β) .* (2 n .+ (2 β + 1 ))) .* (k .+ (β - 1 )) ./ (2 k .+ (2 β - 1 ))), # n+2, k
122
+ Zeros (( axes (n, 1 ),)) , # n+2, k+1
123
+ (- 4 .* (n .+ k .+ 2 β) .* (n .+ k .+ (2 β + 1 )) ./ ((2 n .+ 2 β) .* (2 n .+ (2 β + 1 ))) .* k .* (k .+ 1 ) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 2 β))) # n+2, k+2
124
+ ))
125
+ _BandedBlockBandedMatrix (dat' , axes (k,1 ), (2 ,0 ), (2 ,0 ))
126
126
end
127
127
128
128
function \ (w_A:: WeightedDunklXuDisk , w_B:: WeightedDunklXuDisk )
@@ -149,41 +149,40 @@ function jacobimatrix(::Val{1}, P::DunklXuDisk)
149
149
β = P. β
150
150
n = mortar (Fill .(oneto (∞),oneto (∞)))
151
151
k = mortar (Base. OneTo .(oneto (∞)))
152
- dat = PseudoBlockArray ( Vcat (
153
- ((2 n .+ (2 β - 1 )) ./ (4 n .+ 4 β))' , # n-1, k
154
- ( 0 .* n) ' , # n, k
155
- ((n .- k .+ 1 ) .* (n .+ k .+ 2 β) ./ ((n .+ β) .* (2 n .+ (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
+ ((2 n .+ (2 β - 1 )) ./ (4 n .+ 4 β)), # n-1, k
154
+ Zeros (( axes (n, 1 ),)) , # n, k
155
+ ((n .- k .+ 1 ) .* (n .+ k .+ 2 β) ./ ((n .+ β) .* (2 n .+ (2 β + 1 )))), # n+1, k
156
+ )
157
+ _BandedBlockBandedMatrix (dat' , axes (k,1 ), (1 ,1 ), (0 ,0 ))
158
158
end
159
159
160
160
# Actually Jyᵀ
161
161
function jacobimatrix (:: Val{2} , P:: DunklXuDisk )
162
162
β = P. β
163
163
n = mortar (Fill .(oneto (∞),oneto (∞)))
164
164
k = mortar (Base. OneTo .(oneto (∞)))
165
- dat = PseudoBlockArray (Vcat (
166
- ((k .+ (β - 1 )) .* (2 n .+ (2 β - 1 )) ./ ((2 k .+ (2 β - 1 )) .* (2 n .+ 2 β)))' , # n-1, k-1
167
- (0 .* n)' , # n-1, k
168
- (- k .* (k .+ 2 β) .* (2 n .+ (2 β - 1 )) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 2 β) .* (4 n .+ 4 β)))' , # n-1, k+1
169
- (0 .* n)' , # n, k-1
170
- (0 .* n)' , # n, k
171
- (0 .* n)' , # n, k+1
172
- (- (2 k .+ (2 β - 2 )) .* (n .- k .+ 1 ) .* (n .- k .+ 2 ) ./ ((2 k .+ (2 β - 1 )) .* (n .+ β) .* (2 n .+ (2 β + 1 ))))' , # n+1, k-1
173
- (0 .* n)' , # n+1, k
174
- (k .* (k .+ 2 β) .* (n .+ k .+ 2 β) .* (n .+ k .+ (2 β + 1 )) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 2 β) .* (n .+ β) .* (2 n .+ (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 )) .* (2 n .+ (2 β - 1 )) ./ ((2 k .+ (2 β - 1 )) .* (2 n .+ 2 β))), # n-1, k-1
168
+ Zeros ((axes (n,1 ),)), # n-1, k
169
+ (- k .* (k .+ 2 β) .* (2 n .+ (2 β - 1 )) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 2 β) .* (4 n .+ 4 β)))), # n-1, k+1
170
+ Zeros ((axes (n,1 ),Base. OneTo (3 ))),
171
+ BlockBroadcastArray (hcat,
172
+ (- (2 k .+ (2 β - 2 )) .* (n .- k .+ 1 ) .* (n .- k .+ 2 ) ./ ((2 k .+ (2 β - 1 )) .* (n .+ β) .* (2 n .+ (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 )) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 2 β) .* (n .+ β) .* (2 n .+ (2 β + 1 )))))) # n+1, k+1
175
+ _BandedBlockBandedMatrix (dat' , axes (k,1 ), (1 ,1 ), (1 ,1 ))
177
176
end
178
177
179
178
@simplify function * (A:: AngularMomentum , P:: DunklXuDisk )
180
179
β = P. β
181
180
n = mortar (Fill .(oneto (∞),oneto (∞)))
182
181
k = mortar (Base. OneTo .(oneto (∞)))
183
- dat = PseudoBlockArray ( Vcat (
184
- (2 .* (k .+ (β - 1 )) .* (n .- k .+ 1 ) ./ (2 k .+ (2 β - 1 )))' , # n, k-1
185
- ( 0 .* n) ' , # n, k
186
- (- k .* (k .+ 2 β) .* (n .+ k .+ 2 β) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 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 ) ./ (2 k .+ (2 β - 1 ))), # n, k-1
184
+ Zeros (( axes (n, 1 ),)) , # n, k
185
+ (- k .* (k .+ 2 β) .* (n .+ k .+ 2 β) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 2 β)))) # n, k+1
186
+
187
+ DunklXuDisk (β) * _BandedBlockBandedMatrix (dat' , axes (k,1 ), (0 ,0 ), (1 ,1 ))
189
188
end
0 commit comments