Struct ndarray_linalg::solveh::BKFactorized[][src]

pub struct BKFactorized<S: Data> {
    pub a: ArrayBase<S, Ix2>,
    pub ipiv: Pivot,
}

Represents the Bunch–Kaufman factorization of a Hermitian (or real symmetric) matrix as A = P * U * D * U^H * P^T.

Fields

a: ArrayBase<S, Ix2>ipiv: Pivot

Implementations

impl<A, S> BKFactorized<S> where
    A: Scalar + Lapack,
    S: Data<Elem = A>, 
[src]

pub fn deth(&self) -> A::Real[src]

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

pub fn sln_deth(&self) -> (A::Real, A::Real)[src]

Computes the (sign, natural_log) of the determinant of the factorized 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.

pub fn deth_into(self) -> A::Real[src]

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

pub fn sln_deth_into(self) -> (A::Real, A::Real)[src]

Computes the (sign, natural_log) of the determinant of the factorized 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.

Trait Implementations

impl<A, S> InverseH for BKFactorized<S> where
    A: Scalar + Lapack,
    S: Data<Elem = A>, 
[src]

type Output = Array2<A>

impl<A, S> InverseHInto for BKFactorized<S> where
    A: Scalar + Lapack,
    S: DataMut<Elem = A>, 
[src]

type Output = ArrayBase<S, Ix2>

impl<A, S> SolveH<A> for BKFactorized<S> where
    A: Scalar + Lapack,
    S: Data<Elem = A>, 
[src]

Auto Trait Implementations

impl<S> RefUnwindSafe for BKFactorized<S> where
    S: RefUnwindSafe,
    <S as RawData>::Elem: RefUnwindSafe

impl<S> Send for BKFactorized<S> where
    S: Send

impl<S> Sync for BKFactorized<S> where
    S: Sync

impl<S> Unpin for BKFactorized<S> where
    S: Unpin

impl<S> UnwindSafe for BKFactorized<S> where
    S: UnwindSafe,
    <S as RawData>::Elem: RefUnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,