Qr
Note
precision may be lost if the magnitudes of the elements of input
are large
While it should always give you a valid decomposition, it may not give you the same one across platforms - it will depend on your LAPACK implementation.
qr(input, some=TRUE, out=NULL) -> (Tensor, Tensor)
Computes the QR decomposition of a matrix or a batch of matrices input
,
and returns a namedtuple (Q, R) of tensors such that \(\mbox{input} = Q R\)
with \(Q\) being an orthogonal matrix or batch of orthogonal matrices and
\(R\) being an upper triangular matrix or batch of upper triangular matrices.
If some
is TRUE
, then this function returns the thin (reduced) QR factorization.
Otherwise, if some
is FALSE
, this function returns the complete QR factorization.
Examples
if (torch_is_installed()) {
a = torch_tensor(matrix(c(12., -51, 4, 6, 167, -68, -4, 24, -41), ncol = 3, byrow = TRUE))
out = torch_qr(a)
q = out[[1]]
r = out[[2]]
torch_mm(q, r)$round()
torch_mm(q$t(), q)$round()
}
#> torch_tensor
#> 1 -0 0
#> -0 1 0
#> 0 0 1
#> [ CPUFloatType{3,3} ]