Trait CanonicalOrthogonalisable

Source
pub trait CanonicalOrthogonalisable {
    type NumType;
    type RealType;

    // Required method
    fn calc_canonical_orthogonal_matrix(
        &self,
        complex_symmetric: bool,
        preserves_full_rank: bool,
        thresh_offdiag: Self::RealType,
        thresh_zeroov: Self::RealType,
    ) -> Result<CanonicalOrthogonalisationResult<Self::NumType>, Error>;
}
Expand description

Trait for Löwdin canonical orthogonalisation of a square matrix.

Required Associated Types§

Source

type NumType

Numerical type of the matrix elements.

Source

type RealType

Type of real threshold values.

Required Methods§

Source

fn calc_canonical_orthogonal_matrix( &self, complex_symmetric: bool, preserves_full_rank: bool, thresh_offdiag: Self::RealType, thresh_zeroov: Self::RealType, ) -> Result<CanonicalOrthogonalisationResult<Self::NumType>, Error>

Calculates the Löwdin canonical orthogonalisation matrix $\mathbf{X}$ for a square matrix.

§Arguments
  • complex_symmetric - Boolean indicating if the orthogonalisation is with respect to the complex-symmetric inner product.
  • preserves_full_rank - Boolean indicating if a full-rank square matrix should be left unchanged, thus forcing $\mathbf{X} = \mathbf{I}$.
  • thresh_offdiag - Threshold for verifying that the orthogonalised matrix is indeed orthogonal.
  • thresh_zeroov - Threshold for determining zero eigenvalues of the input square matrix.
§Returns

The canonical orthogonalisation result.

Implementations on Foreign Types§

Source§

impl CanonicalOrthogonalisable for ArrayView2<'_, f32>

Source§

type NumType = f32

Source§

type RealType = f32

Source§

fn calc_canonical_orthogonal_matrix( &self, _: bool, preserves_full_rank: bool, thresh_offdiag: f32, thresh_zeroov: f32, ) -> Result<CanonicalOrthogonalisationResult<Self::NumType>, Error>

Source§

impl CanonicalOrthogonalisable for ArrayView2<'_, f64>

Source§

type NumType = f64

Source§

type RealType = f64

Source§

fn calc_canonical_orthogonal_matrix( &self, _: bool, preserves_full_rank: bool, thresh_offdiag: f64, thresh_zeroov: f64, ) -> Result<CanonicalOrthogonalisationResult<Self::NumType>, Error>

Source§

impl<T> CanonicalOrthogonalisable for ArrayView2<'_, Complex<T>>
where T: Float + Scalar<Complex = Complex<T>>, Complex<T>: ComplexFloat<Real = T> + Scalar<Real = T, Complex = Complex<T>> + Lapack,

Source§

type NumType = Complex<T>

Source§

type RealType = T

Source§

fn calc_canonical_orthogonal_matrix( &self, complex_symmetric: bool, preserves_full_rank: bool, thresh_offdiag: T, thresh_zeroov: T, ) -> Result<CanonicalOrthogonalisationResult<Self::NumType>, Error>

Implementors§