154 |
154 |
155 impl<X : Clone + Space> Linear<X> for IdOp<X> |
155 impl<X : Clone + Space> Linear<X> for IdOp<X> |
156 { } |
156 { } |
157 |
157 |
158 #[replace_float_literals(F::cast_from(literal))] |
158 #[replace_float_literals(F::cast_from(literal))] |
159 impl<F : Num, X, Y> GEMV<F, X, Y> for IdOp<X> |
159 impl<F : Num, X> GEMV<F, X, X> for IdOp<X> |
160 where |
160 where |
161 Y : AXPY<F>, |
161 X : AXPY<F> + Clone + Space |
162 X : Clone + Space |
|
163 { |
162 { |
164 // Computes `y = αAx + βy`, where `A` is `Self`. |
163 // Computes `y = αAx + βy`, where `A` is `Self`. |
165 fn gemv<I : Instance<X>>(&self, y : &mut Y, α : F, x : I, β : F) { |
164 fn gemv<I : Instance<X>>(&self, y : &mut X, α : F, x : I, β : F) { |
166 y.axpy(α, x, β) |
165 y.axpy(α, x, β) |
167 } |
166 } |
168 |
167 |
169 fn apply_mut<I : Instance<X>>(&self, y : &mut Y, x : I){ |
168 fn apply_mut<I : Instance<X>>(&self, y : &mut X, x : I){ |
170 y.copy_from(x); |
169 y.copy_from(x); |
171 } |
170 } |
172 } |
171 } |
173 |
172 |
174 impl<F, X, E> BoundedLinear<X, E, E, F> for IdOp<X> |
173 impl<F, X, E> BoundedLinear<X, E, E, F> for IdOp<X> |