dummy-link

InplaceQR

Provides a fully in-place, thin implementation of the Householder-based QR decompositon in Golub and Van Loan's book.

Readme

InplaceQR

Build Status

Coverage Status

codecov.io


julia> using InplaceQR

julia> A = rand(3000,20);

julia> qrb = InplaceQR.QRBuffers(A);

julia> qrc = InplaceQR.qrfact!(copy(A), qrb);

julia> qr = InplaceQR.QR(A, Void);

julia> InplaceQR.QR!(qr, qrc);

julia> qr.Q * qr.R ≈ A
true

julia> using BenchmarkTools

julia> @btime InplaceQR.qrfact!($A, $qrb);
  915.327 μs (2 allocations: 64 bytes)

julia> @btime qrfact!($A);
  763.624 μs (11 allocations: 6.73 KiB)

julia> A = rand(300000000,3);

julia> qrb = InplaceQR.QRBuffers(A);

julia> @time InplaceQR.qrfact!(A, qrb);
  7.305407 seconds (6 allocations: 224 bytes)

julia> @time qrfact!(A);
  4.440609 seconds (15 allocations: 720 bytes)

julia> A = rand(300000,300);

julia> qrb = InplaceQR.QRBuffers(A);

julia> @time InplaceQR.qrfact!(A, qrb);
 26.846153 seconds (6 allocations: 224 bytes)

julia> @time qrfact!(A);
  3.338390 seconds (17 allocations: 169.297 KiB)

First Commit

03/31/2018

Last Touched

8 months ago

Commits

10 commits

Requires:

Used By: