Computes the sign and natural logarithm of the absolute value of the determinant of a square matrix.
Source:R/linalg.R
linalg_slogdet.Rd
For complex A
, it returns the angle and the natural logarithm of the modulus of the
determinant, that is, a logarithmic polar decomposition of the determinant.
Supports input of float, double, cfloat and cdouble dtypes.
Also supports batches of matrices, and if A
is a batch of matrices then
the output has the same batch dimensions.
Value
A list (sign, logabsdet)
.
logabsdet
will always be real-valued, even when A
is complex.
sign
will have the same dtype as A
.
Notes
The determinant can be recovered as
sign * exp(logabsdet)
.When a matrix has a determinant of zero, it returns
(0, -Inf)
.
See also
Other linalg:
linalg_cholesky_ex()
,
linalg_cholesky()
,
linalg_det()
,
linalg_eigh()
,
linalg_eigvalsh()
,
linalg_eigvals()
,
linalg_eig()
,
linalg_householder_product()
,
linalg_inv_ex()
,
linalg_inv()
,
linalg_lstsq()
,
linalg_matrix_norm()
,
linalg_matrix_power()
,
linalg_matrix_rank()
,
linalg_multi_dot()
,
linalg_norm()
,
linalg_pinv()
,
linalg_qr()
,
linalg_solve_triangular()
,
linalg_solve()
,
linalg_svdvals()
,
linalg_svd()
,
linalg_tensorinv()
,
linalg_tensorsolve()
,
linalg_vector_norm()
Examples
if (torch_is_installed()) {
a <- torch_randn(3, 3)
linalg_slogdet(a)
}
#> [[1]]
#> torch_tensor
#> -1
#> [ CPUFloatType{} ]
#>
#> [[2]]
#> torch_tensor
#> 0.643368
#> [ CPUFloatType{} ]
#>