Skip to main content

DenseKernel

Trait DenseKernel 

Source
pub trait DenseKernel<T: Real> {
    // Required methods
    fn potrf(&self, a: &mut DenseBlock<T>) -> Result<(), DenseError>;
    fn sytrf(
        &self,
        a: &mut DenseBlock<T>,
        perm: &mut Perm,
        pivot_2x2: &mut Vec<bool>,
    ) -> Result<Inertia, DenseError>;
    fn trsm_lower(
        &self,
        l: &DenseBlock<T>,
        b: &mut DenseBlock<T>,
        transpose: bool,
    );
    fn gemm_sub(
        &self,
        a: &DenseBlock<T>,
        b: &DenseBlock<T>,
        c: &mut DenseBlock<T>,
    );
    fn syrk_sub(&self, a: &DenseBlock<T>, c: &mut DenseBlock<T>);
    fn name(&self) -> &'static str;
}
Expand description

The kernels a supernodal factorization needs (BLAS-3 names kept for recognizability). Square blocks are read and written in their lower triangle (invariant (D3)).

Required Methods§

Source

fn potrf(&self, a: &mut DenseBlock<T>) -> Result<(), DenseError>

In-place Cholesky A = L Lᵀ of a square block (Algorithm P).

Source

fn sytrf( &self, a: &mut DenseBlock<T>, perm: &mut Perm, pivot_2x2: &mut Vec<bool>, ) -> Result<Inertia, DenseError>

In-place P A Pᵀ = L B Lᵀ with 1×1/2×2 pivots (Bunch–Kaufman, Algorithm B); returns the inertia and writes the permutation into perm and the 2×2 marks into pivot_2x2 (both resized to n).

Source

fn trsm_lower(&self, l: &DenseBlock<T>, b: &mut DenseBlock<T>, transpose: bool)

B ← B L⁻ᵀ (transpose = true) or B ← L⁻¹ B (false), L square, non-unit lower triangular.

§Panics

If the dimensions do not agree.

Source

fn gemm_sub(&self, a: &DenseBlock<T>, b: &DenseBlock<T>, c: &mut DenseBlock<T>)

C ← C − A Bᵀ.

§Panics

If the dimensions do not agree.

Source

fn syrk_sub(&self, a: &DenseBlock<T>, c: &mut DenseBlock<T>)

C ← C − A Aᵀ, lower triangle of C.

§Panics

If the dimensions do not agree.

Source

fn name(&self) -> &'static str

A short name for logs and tables.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§