# qrfact(A)

``````..  qrfact(A) -> SPQR.Factorization

Compute the QR factorization of a sparse matrix ``A``. A fill-reducing permutation is used. The main application of this type is to solve least squares problems with ``\``. The function calls the C library SPQR and a few additional functions from the library are wrapped but not exported.``````

## Examples

The `qrfact(A, pivot=Val{false})` function computes the QR factorization of matrix `A`. The return type of `F` depends on the element type of `A` and whether pivoting is specified (with `pivot==Val{true}`). Here are some examples and explanations of its usage:

1. Compute QR factorization of a matrix:

``````julia> A = [1 2; 3 4; 5 6];
julia> F = qrfact(A)
QR{Float64,Array{Float64,2}} with factorizations Q and R:
Q factor:
3×3 LinearAlgebra.QRCompactWYQ{Float64,Array{Float64,2}}:
-0.16903   0.897085  -0.408248
-0.507092  -0.276026  -0.816497
-0.845154   0.345033   0.408248
R factor:
2×2 Array{Float64,2}:
-5.91608  -7.43735
0.0       0.828078``````

This example computes the QR factorization of matrix `A` and stores the result in `F`. The `QR` object `F` contains the `Q` factor and the `R` factor.

2. Compute QR factorization with pivoting:

``````julia> A = [1 2; 3 4; 5 6];
julia> F = qrfact(A, pivot=Val{true})
QRPivoted{Float64,Array{Float64,2}} with factorizations Q, R, and P:
Q factor:
3×3 LinearAlgebra.QRPackedQ{Float64,Array{Float64,2}}:
-0.16903   0.897085  -0.408248
-0.507092  -0.276026  -0.816497
-0.845154   0.345033   0.408248
R factor:
2×2 Array{Float64,2}:
-5.91608  -7.43735
0.0       0.828078
P permutation:
3-element Array{Int64,1}:
3
2
1``````

This example computes the QR factorization of matrix `A` with pivoting enabled. The `QRPivoted` object `F` contains the `Q` factor, the `R` factor, and the permutation matrix `P`.

3. Access individual components of the factorization:

``````julia> Q = F[:Q]
3×3 LinearAlgebra.QRCompactWYQ{Float64,Array{Float64,2}}:
-0.16903   0.897085  -0.408248
-0.507092  -0.276026  -0.816497
-0.845154   0.345033   0.408248

julia> R = F[:R]
2×2 Array{Float64,2}:
-5.91608  -7.43735
0.0       0.828078

julia> P = F[:P]
3-element Array{Int64,1}:
3
2
1``````

This example shows how to access the `Q`, `R`, and `P` components of the factorization `F`.

Ac_ldiv_B, Ac_ldiv_Bc, Ac_mul_B, Ac_mul_Bc, Ac_rdiv_B, Ac_rdiv_Bc, At_ldiv_B, At_ldiv_Bt, At_mul_B, At_mul_Bt, At_rdiv_B, At_rdiv_Bt, A_ldiv_Bc, A_ldiv_Bt, A_mul_B!, A_mul_Bc, A_mul_Bt, A_rdiv_Bc, A_rdiv_Bt, Bidiagonal, cond, conv2, det, diag, diagind, diagm, diff, eig, eigvals, eigvecs, expm, eye, full, inv, isdiag, ishermitian, isposdef, isposdef!, issym, istril, istriu, logabsdet, logdet, lyap, norm, qrfact, rank, repmat, rot180, rotl90, rotr90, sortrows, sqrtm, SymTridiagonal, trace, Tridiagonal, tril, tril!, triu, triu!, writedlm,

## User Contributed Notes

The format of note supported is markdown, use triple backtick to start and end a code block.

*Required Field
Details

Checking you are not a robot: