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
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} ]