@@ -181,7 +181,7 @@ function resizedata!(co::CachedOperator{T,<:AlmostBandedMatrix{T},<:InterlaceOpe
181181 end
182182
183183 (l,u)= bandwidths (co. data. bands)
184- pad! (co. data,n, n+ u)
184+ co . data = pad (co. data, n, n+ u)
185185
186186 r = rank (co. data. fill)
187187 ind = findfirst (op-> isinf (size (op,1 )),co. op. ops)
@@ -227,8 +227,7 @@ function resizedata!(co::CachedOperator{T,<:AlmostBandedMatrix{T},<:InterlaceOpe
227227 p = length (d∞)
228228
229229 (l,u)= bandwidths (co. data. bands)
230- pad! (co. data,n,n+ u)
231- co. data
230+ co. data = pad (co. data,n,n+ u)
232231 # r is number of extra rows, ncols is number of extra columns
233232 r = rank (co. data. fill)
234233 ncols = mapreduce (d-> isfinite (d) ? d : 0 ,+ ,ddims)
@@ -286,36 +285,38 @@ function resizedata!(QR::QROperator{<:CachedOperator{T,<:AlmostBandedMatrix{T}}}
286285 MO = QR. R_cache
287286 W = QR. H
288287
289- R = MO. data. bands
290- M = R . l + 1 # number of diag+subdiagonal bands
288+ Rl, Ru = bandwidths ( MO. data. bands)
289+ M = Rl + 1 # number of diag+subdiagonal bands
291290
292291 if col+ M- 1 ≥ MO. datasize[1 ]
293292 resizedata! (MO,(col+ M- 1 )+ 100 ,:) # double the last rows
294293 end
295294
295+ R = MO. data. bands # has to be accessed after the resizedata!
296+
296297 if col > size (W,2 )
297298 W = QR. H = unsafe_resize! (W,:,2 col)
298299 end
299300
300301 F = MO. data. fill. U
301302
302303 for k = QR. ncols+ 1 : col
303- W[:,k] = view (R. data, (R . u + 1 ). + (0 : R . l ), k) # diagonal and below
304+ W[:,k] = view (R. data, (Ru + 1 ). + (0 : Rl ), k) # diagonal and below
304305 wp = view (W,:,k)
305306 W[1 ,k]+= flipsign (norm (wp),W[1 ,k])
306307 normalize! (wp)
307308
308309 # scale banded entries
309- for j = k: k+ R . u
310- dind = R . u + 1 + k- j
310+ for j = k: k+ Ru
311+ dind = Ru + 1 + k- j
311312 v = view (R. data, range (dind, length= M), j)
312313 dt = dot (wp,v)
313314 axpy! (- 2 dt,wp,v)
314315 end
315316
316317 # scale banded/filled entries
317- for j = (k+ R . u ). + (1 : M- 1 )
318- p = j- k- R . u
318+ for j = (k+ Ru ). + (1 : M- 1 )
319+ p = j- k- Ru
319320 v = view (R. data,1 : M- p,j) # shift down each time
320321 wp2= view (wp,p+ 1 : M)
321322 dt = dot (wp2,v)
0 commit comments