pub trait MatVecBuilder<'a, T, La, Lx>{
// 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§
fn parallelize(self) -> Self
Sourcefn add_to_scaled<Ly: Layout>(self, y: &mut DSlice<T, 1, Ly>, beta: T)
fn add_to_scaled<Ly: Layout>(self, y: &mut DSlice<T, 1, Ly>, beta: T)
A := α·A·x + β·y
Sourcefn add_outer<Ly: Layout>(self, y: &DSlice<T, 1, Ly>, beta: T) -> DTensor<T, 2>
fn add_outer<Ly: Layout>(self, y: &DSlice<T, 1, Ly>, beta: T) -> DTensor<T, 2>
Rank-1 update: β·x·yᵀ + α·A
Sourcefn add_outer_special(self, beta: T, ty: Type, tr: Triangle) -> DTensor<T, 2>
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.