src/linops.rs

branch
dev
changeset 84
4c2e5e65d510
parent 83
9b0a7475a786
child 85
f2fc6115b897
equal deleted inserted replaced
83:9b0a7475a786 84:4c2e5e65d510
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>

mercurial