205
205
206
206
_norm (x:: Number ) = abs (x)
207
207
208
- function materialize! (M:: MatLmulVec{<:AdjQRPackedQLayout{<:AdaptiveLayout},<:PaddedLayout} )
208
+ function materialize! (M:: MatLmulVec{<:AdjQRPackedQLayout{<:AdaptiveLayout},<:PaddedLayout} ; tolerance = floatmin ( real ( eltype (M))) )
209
209
adjA,B = M. A,M. B
210
- T = eltype (M)
211
210
COLGROWTH = 1000 # rate to grow columns
212
- tol = floatmin (real (T))
213
211
214
212
require_one_based_indexing (B)
215
213
A = adjA. parent
@@ -235,7 +233,7 @@ function materialize!(M::MatLmulVec{<:AdjQRPackedQLayout{<:AdaptiveLayout},<:Pad
235
233
kr = j: cs_max
236
234
resizedata! (B, min (cs_max,mB))
237
235
Bdata = paddeddata (B)
238
- if (j > sB && maximum (_norm,view (Bdata,j: last (colsupport (A. factors,j)))) ≤ tol )
236
+ if (j > sB && maximum (_norm,view (Bdata,j: last (colsupport (A. factors,j)))) ≤ tolerance )
239
237
break
240
238
end
241
239
partialqr! (A. factors. data, min (cs_max,nA))
@@ -244,7 +242,7 @@ function materialize!(M::MatLmulVec{<:AdjQRPackedQLayout{<:AdaptiveLayout},<:Pad
244
242
jr = last (jr)+ 1 : min (last (jr)+ COLGROWTH,nA)
245
243
end
246
244
end
247
- resizedata_chop! (B, tol )
245
+ resizedata_chop! (B, tolerance )
248
246
end
249
247
250
248
function resizedata! (B:: PseudoBlockVector , M:: Block{1} )
341
339
342
340
343
341
344
- ldiv! (dest:: AbstractVector , F:: QR{<:Any,<:AdaptiveQRFactors} , b:: AbstractVector ) =
345
- ldiv! (F, copyto! (dest, b))
342
+ ldiv! (dest:: AbstractVector , F:: QR{<:Any,<:AdaptiveQRFactors} , b:: AbstractVector ; kwds... ) = ldiv! (F, copyto! (dest, b); kwds... )
346
343
ldiv! (F:: QR{<:Any,<:AdaptiveQRFactors} , b:: AbstractVector ; kwds... ) = ldiv! (F. R, lmul! (F. Q' ,b; kwds... ))
347
344
ldiv! (F:: QR{<:Any,<:AdaptiveQRFactors} , b:: LayoutVector ; kwds... ) = ldiv! (F. R, lmul! (F. Q' ,b; kwds... ))
348
345
\ (F:: QR{<:Any,<:AdaptiveQRFactors} , B:: AbstractVector ; kwds... ) = ldiv! (F. R, * (F. Q' , B; kwds... ))
0 commit comments