pub trait VecOps<T, D1: Dim> {
type Real;
// Required methods
fn add_to_scaled<Lx: Layout, Ly: Layout>(
&self,
alpha: T,
x: &Slice<T, (D1,), Lx>,
y: &mut Slice<T, (D1,), Ly>,
);
fn dot<Lx: Layout, Ly: Layout>(
&self,
x: &Slice<T, (D1,), Lx>,
y: &Slice<T, (D1,), Ly>,
) -> T;
fn dotc<Lx: Layout, Ly: Layout>(
&self,
x: &Slice<T, (D1,), Lx>,
y: &Slice<T, (D1,), Ly>,
) -> T;
fn norm2<Lx: Layout>(&self, x: &Slice<T, (D1,), Lx>) -> Self::Real;
fn norm1<Lx: Layout>(&self, x: &Slice<T, (D1,), Lx>) -> Self::Real;
fn rot<Lx: Layout, Ly: Layout>(
&self,
x: &mut Slice<T, (D1,), Lx>,
y: &mut Slice<T, (D1,), Ly>,
c: Self::Real,
s: T,
);
}Expand description
Vector operations and basic linear algebra utilities
Required Associated Types§
Required Methods§
Sourcefn add_to_scaled<Lx: Layout, Ly: Layout>(
&self,
alpha: T,
x: &Slice<T, (D1,), Lx>,
y: &mut Slice<T, (D1,), Ly>,
)
fn add_to_scaled<Lx: Layout, Ly: Layout>( &self, alpha: T, x: &Slice<T, (D1,), Lx>, y: &mut Slice<T, (D1,), Ly>, )
Accumulate a scaled vector: y := α·x + y
Sourcefn dot<Lx: Layout, Ly: Layout>(
&self,
x: &Slice<T, (D1,), Lx>,
y: &Slice<T, (D1,), Ly>,
) -> T
fn dot<Lx: Layout, Ly: Layout>( &self, x: &Slice<T, (D1,), Lx>, y: &Slice<T, (D1,), Ly>, ) -> T
Dot product: ∑xᵢyᵢ
Sourcefn dotc<Lx: Layout, Ly: Layout>(
&self,
x: &Slice<T, (D1,), Lx>,
y: &Slice<T, (D1,), Ly>,
) -> T
fn dotc<Lx: Layout, Ly: Layout>( &self, x: &Slice<T, (D1,), Lx>, y: &Slice<T, (D1,), Ly>, ) -> T
Conjugated dot product: ∑conj(xᵢ) * yᵢ (BLAS convention)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".