pub trait DeterminantHInto {
type Elem: Scalar;
// Required methods
fn deth_into(self) -> Result<<Self::Elem as Scalar>::Real>;
fn sln_deth_into(
self,
) -> Result<(<Self::Elem as Scalar>::Real, <Self::Elem as Scalar>::Real)>;
}
Expand description
An interface for calculating determinants of Hermitian (or real symmetric) matrices.
Required Associated Types§
Required Methods§
sourcefn deth_into(self) -> Result<<Self::Elem as Scalar>::Real>
fn deth_into(self) -> Result<<Self::Elem as Scalar>::Real>
Computes the determinant of the Hermitian (or real symmetric) matrix.
sourcefn sln_deth_into(
self,
) -> Result<(<Self::Elem as Scalar>::Real, <Self::Elem as Scalar>::Real)>
fn sln_deth_into( self, ) -> Result<(<Self::Elem as Scalar>::Real, <Self::Elem as Scalar>::Real)>
Computes the (sign, natural_log)
of the determinant of the Hermitian
(or real symmetric) matrix.
The natural_log
is the natural logarithm of the absolute value of the
determinant. If the determinant is zero, sign
is 0 and natural_log
is negative infinity.
To obtain the determinant, you can compute sign * natural_log.exp()
or just call .deth_into()
instead.
This method is more robust than .deth_into()
to very small or very
large determinants since it returns the natural logarithm of the
determinant rather than the determinant itself.