Skip to main content

CanonicalOrthogonalisable

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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

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§