Is there any implementation/API for the QR factorization based on Givens rotations that don’t produce the Q matrix but gives an API for applying the Givens rotations to a vector possibly after inverting/transposing them? I believe the Givens rotation variant should be more sparsity and memory friendly than the Householder reflection variant.

Also it seems like `qrfact`

doesn’t work at all on sparse matrices. Am I missing something?

```
julia> a = sprand(100,100,0.05);
julia> b = qrfact(a);
julia> b[:Q];
ERROR: MethodError: no method matching getindex(::Base.SparseArrays.SPQR.Factorization{Float64}, ::Symbol)
julia> b[:R];
ERROR: MethodError: no method matching getindex(::Base.SparseArrays.SPQR.Factorization{Float64}, ::Symbol)
julia> b[:Q] * rand(100);
ERROR: MethodError: no method matching getindex(::Base.SparseArrays.SPQR.Factorization{Float64}, ::Symbol)
julia> a = rand(100,100);
julia> b = qrfact(a);
julia> b[:Q];
julia> b[:R];
julia> b[:Q] * rand(100);
```