| 22 F : Num, |
22 F : Num, |
| 23 X : Space, |
23 X : Space, |
| 24 { |
24 { |
| 25 type Owned : AXPY<F, X>; |
25 type Owned : AXPY<F, X>; |
| 26 |
26 |
| |
27 /// Computes `βy + αx`, where `y` is `Self`. |
| |
28 fn add_mul<I : Instance<X>>(self, α : F, x : I, β : F) -> Self::Owned ; |
| |
29 |
| 27 /// Computes `y = βy + αx`, where `y` is `Self`. |
30 /// Computes `y = βy + αx`, where `y` is `Self`. |
| 28 fn axpy<I : Instance<X>>(&mut self, α : F, x : I, β : F); |
31 fn axpy<I : Instance<X>>(&mut self, α : F, x : I, β : F); |
| 29 |
32 |
| 30 /// Copies `x` to `self`. |
33 /// Copies `x` to `self`. |
| 31 fn copy_from<I : Instance<X>>(&mut self, x : I) { |
34 fn copy_from<I : Instance<X>>(&mut self, x : I) { |
| 45 } |
48 } |
| 46 |
49 |
| 47 /// Efficient in-place application for [`Linear`] operators. |
50 /// Efficient in-place application for [`Linear`] operators. |
| 48 #[replace_float_literals(F::cast_from(literal))] |
51 #[replace_float_literals(F::cast_from(literal))] |
| 49 pub trait GEMV<F : Num, X : Space, Y = <Self as Mapping<X>>::Codomain> : Linear<X> { |
52 pub trait GEMV<F : Num, X : Space, Y = <Self as Mapping<X>>::Codomain> : Linear<X> { |
| |
53 |
| 50 /// Computes `y = αAx + βy`, where `A` is `Self`. |
54 /// Computes `y = αAx + βy`, where `A` is `Self`. |
| 51 fn gemv<I : Instance<X>>(&self, y : &mut Y, α : F, x : I, β : F); |
55 fn gemv<I : Instance<X>>(&self, y : &mut Y, α : F, x : I, β : F); |
| 52 |
56 |
| 53 #[inline] |
57 #[inline] |
| 54 /// Computes `y = Ax`, where `A` is `Self` |
58 /// Computes `y = Ax`, where `A` is `Self` |