@@ -44,7 +44,7 @@ WeightedDunklXuDisk(β) = DunklXuDiskWeight(β) .* DunklXuDisk(β)
4444 k = mortar (Base. OneTo .(oneto (∞)))
4545 dat = BlockBroadcastArray (hcat,
4646 ((k .+ (β - 1 )) ./ (2 k .+ (2 β - 1 )) .* (n .- k .+ 1 )),
47- 0 .* n ,
47+ Zeros (( axes (n, 1 ),)) ,
4848 (((k .+ 2 β) .* (k .+ (2 β + 1 ))) ./ ((2 k .+ (2 β - 1 )) .* (2 k .+ 2 β)) .* (n .+ k .+ 2 β) ./ 2 )
4949 )
5050 DunklXuDisk (β+ 1 ) * _BandedBlockBandedMatrix (dat' , axes (k,1 ), (- 1 ,1 ), (0 ,2 ))
6565 k = mortar (Base. OneTo .(oneto (∞)))
6666 dat = BlockBroadcastArray (hcat,
6767 (- 4 .* (k .+ (β - 1 )). * (n .- k .+ 1 ). / (2 k .+ (2 β - 1 ))),
68- 0 .* n ,
68+ Zeros (( axes (n, 1 ),)) ,
6969 (- k .* (k .+ 1 ) ./ ((2 k .+ (2 β - 1 )) .* (k .+ β)) .* (n .+ k .+ 2 β))
7070 )
7171 WeightedDunklXuDisk (β- 1 ) * _BandedBlockBandedMatrix (dat' , axes (k,1 ), (1 ,- 1 ), (2 ,0 ))
8383function dunklxu_raising (β)
8484 n = mortar (Fill .(oneto (∞),oneto (∞)))
8585 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 ))
9898end
9999
100100function \ (A:: DunklXuDisk , B:: DunklXuDisk )
@@ -111,18 +111,18 @@ end
111111function dunklxu_lowering (β)
112112 n = mortar (Fill .(oneto (∞),oneto (∞)))
113113 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 ))
126126end
127127
128128function \ (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- ((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 ))
158158end
159159
160160# Actually Jyᵀ
161161function 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 )) .* (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 ))
177176end
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 ) ./ (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 ))
189188end
0 commit comments