Trait ndarray_linalg::solveh::DeterminantH

source ·
pub trait DeterminantH {
    type Elem: Scalar;

    // Required methods
    fn deth(&self) -> Result<<Self::Elem as Scalar>::Real>;
    fn sln_deth(
        &self,
    ) -> Result<(<Self::Elem as Scalar>::Real, <Self::Elem as Scalar>::Real)>;
}
Expand description

An interface for calculating determinants of Hermitian (or real symmetric) matrix refs.

Required Associated Types§

source

type Elem: Scalar

The element type of the matrix.

Required Methods§

source

fn deth(&self) -> Result<<Self::Elem as Scalar>::Real>

Computes the determinant of the Hermitian (or real symmetric) matrix.

source

fn sln_deth( &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() instead.

This method is more robust than .deth() to very small or very large determinants since it returns the natural logarithm of the determinant rather than the determinant itself.

Implementations on Foreign Types§

source§

impl<A, S> DeterminantH for ArrayBase<S, Ix2>
where A: Scalar + Lapack, S: Data<Elem = A>,

source§

type Elem = A

source§

fn deth(&self) -> Result<A::Real>

source§

fn sln_deth(&self) -> Result<(A::Real, A::Real)>

Implementors§