Determinant of triangular matrices.
The determinant of an upper- or lower-triangular square matrix is the product of
its diagonal entries. The upper-triangular case recurses on the last row via the
factorisation in HexDeterminant.LastRow; the lower-triangular case is derived
from it through det_transpose.
The determinant of an upper-triangular square matrix (entries below the
diagonal are zero) over a commutative ring is the product of its diagonal
entries, expressed via a Fin.foldl over the diagonal indices.
The determinant of an upper-triangular square matrix as a List.foldl
product over the diagonal indices in Fin.finRange.
Diagonal-product formula for the determinant of a lower-triangular matrix
(entries above the diagonal are zero). Derived from the upper-triangular form
via det_transpose.
The determinant of a lower-triangular square matrix as a List.foldl
product over the diagonal indices in Fin.finRange.