MatVecBuilder

Trait MatVecBuilder 

Source
pub trait MatVecBuilder<'a, T, La, Lx>
where La: Layout + 'a, Lx: Layout + 'a, T: 'a,
{ // Required methods fn parallelize(self) -> Self; fn scale(self, alpha: T) -> Self; fn eval(self) -> DTensor<T, 1>; fn overwrite<Ly: Layout>(self, y: &mut DSlice<T, 1, Ly>); fn add_to<Ly: Layout>(self, y: &mut DSlice<T, 1, Ly>); fn add_to_scaled<Ly: Layout>(self, y: &mut DSlice<T, 1, Ly>, beta: T); fn add_outer<Ly: Layout>( self, y: &DSlice<T, 1, Ly>, beta: T, ) -> DTensor<T, 2>; fn add_outer_special(self, beta: T, ty: Type, tr: Triangle) -> DTensor<T, 2>; }
Expand description

Builder interface for configuring matrix-vector operations

Required Methods§

Source

fn parallelize(self) -> Self

Source

fn scale(self, alpha: T) -> Self

A := α·A

Source

fn eval(self) -> DTensor<T, 1>

Returns α·A·x

Source

fn overwrite<Ly: Layout>(self, y: &mut DSlice<T, 1, Ly>)

A := α·A·x

Source

fn add_to<Ly: Layout>(self, y: &mut DSlice<T, 1, Ly>)

A := α·A·x + y

Source

fn add_to_scaled<Ly: Layout>(self, y: &mut DSlice<T, 1, Ly>, beta: T)

A := α·A·x + β·y

Source

fn add_outer<Ly: Layout>(self, y: &DSlice<T, 1, Ly>, beta: T) -> DTensor<T, 2>

Rank-1 update: β·x·yᵀ + α·A

Source

fn add_outer_special(self, beta: T, ty: Type, tr: Triangle) -> DTensor<T, 2>

Rank-1 update: β·x·xᵀ (or x·x†) + α·A

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§