@@ -267,25 +267,32 @@ for op in (:+, :-)
267
267
268
268
for J̃ = 1 : M
269
269
J = Block (J̃)
270
+ # joint block range
270
271
for K = Block .(max (1 ,J̃- min (A_u,B_u)): min (N,J̃+ min (A_l,B_l)))
271
272
view (C,K,J) .= $ op .(view (A,K,J), view (B,K,J))
272
273
end
274
+ # above, A but not B
273
275
for K = Block .(max (1 ,J̃- A_u): min (N,J̃- B_u- 1 ))
274
276
view (C,K,J) .= view (A,K,J)
275
277
end
278
+ # above, B but not A
276
279
for K = Block .(max (1 ,J̃- B_u): min (N,J̃- A_u- 1 ))
277
280
view (C,K,J) .= $ op .(view (B,K,J))
278
281
end
279
- for K = Block .(max (1 ,J̃+ B_l+ 1 ): min (N,J̃+ A_u))
282
+ # below, A but not B
283
+ for K = Block .(max (1 ,J̃+ B_l+ 1 ): min (N,J̃+ A_l))
280
284
view (C,K,J) .= view (A,K,J)
281
285
end
282
- for K = Block .(max (1 ,J̃+ A_l+ 1 ): min (N,J̃+ B_u))
286
+ # below, B but not A
287
+ for K = Block .(max (1 ,J̃+ A_l+ 1 ): min (N,J̃+ B_l))
283
288
view (C,K,J) .= $ op .(view (B,K,J))
284
289
end
290
+ # above, neither
285
291
for K = Block .(max (J̃- C_u,1 ): min (J̃- max (A_u,B_u)- 1 ,N))
286
292
view (C,K,J) .= zero (T)
287
293
end
288
- for K = Block .(max (J̃+ max (A_l,B_l)+ 1 ,1 ): min (J̃+ C_u,N))
294
+ # below, neither
295
+ for K = Block .(max (J̃+ max (A_l,B_l)+ 1 ,1 ): min (J̃+ C_l,N))
289
296
view (C,K,J) .= zero (T)
290
297
end
291
298
end
0 commit comments