Indirectly, yes. While useful as a theoretical tool, the determinant is rarely useful for computational purposes. E.g., for solving systems, Cramer's rule is very expensive compared to LU factorization (getrf). Given

det(AB) = det(A) det(B)

and for a lower or upper triangular matrix T, det(T) is the product of its diagonal entries, you can compute the determinant by doing an LU factorization (getrf), then multiplying the diagonal entries of U. det(A) = det(LU) = det(U). The diagonal entries of L are 1, so det(L) = 1.

-mark

## Matrix Determinant

### Re: Matrix Determinant

Correction: the determinant also requires checking whether the permutation P in ipiv is odd or even. If odd, det(P) = -1, if even, det(P) = +1.

det( A ) = det( P ) * prod( diag( U ) )

But just to check for invertibility, you only need to check that diag( U ) is all non-zero.

Also note that the determinant often grows very quickly with the matrix size. E.g., det( rand( 1000, 1000 ) ) = ±Inf; it overflows in double precision. Of course, this is not true of all matrices, like permutation and orthogonal matrices have det = ±1.

-mark

det( A ) = det( P ) * prod( diag( U ) )

But just to check for invertibility, you only need to check that diag( U ) is all non-zero.

Also note that the determinant often grows very quickly with the matrix size. E.g., det( rand( 1000, 1000 ) ) = ±Inf; it overflows in double precision. Of course, this is not true of all matrices, like permutation and orthogonal matrices have det = ±1.

-mark