src/euclidean/wrap.rs

branch
dev
changeset 177
b071a1b484f8
parent 176
21e51de02ab6
child 179
724413fc8d17
equal deleted inserted replaced
176:21e51de02ab6 177:b071a1b484f8
146 } 146 }
147 147
148 impl<$($qual)*> $crate::norms::Dist<$crate::norms::L2, $F> for $type 148 impl<$($qual)*> $crate::norms::Dist<$crate::norms::L2, $F> for $type
149 { 149 {
150 fn dist<I: $crate::instance::Instance<Self>>(&self, other : I, p : $crate::norms::L2) -> $F { 150 fn dist<I: $crate::instance::Instance<Self>>(&self, other : I, p : $crate::norms::L2) -> $F {
151 other.eval_ref(|x| self.get_view().dist(x, p)) 151 other.eval_ref(|x| self.get_view().dist(x.get_view(), p))
152 } 152 }
153 } 153 }
154 154
155 impl<$($qual)*> $crate::norms::Normed<$F> for $type { 155 impl<$($qual)*> $crate::norms::Normed<$F> for $type {
156 type NormExp = $crate::norms::L2; 156 type NormExp = $crate::norms::L2;
224 // Self: std::ops::MulAssign<F> + std::ops::DivAssign<F>, 224 // Self: std::ops::MulAssign<F> + std::ops::DivAssign<F>,
225 // Self::Unwrapped: std::ops::MulAssign<F> + std::ops::DivAssign<F>, 225 // Self::Unwrapped: std::ops::MulAssign<F> + std::ops::DivAssign<F>,
226 { 226 {
227 fn axpy<I: $crate::instance::Instance<Self>>(&mut self, α: $F, x: I, β: $F) { 227 fn axpy<I: $crate::instance::Instance<Self>>(&mut self, α: $F, x: I, β: $F) {
228 x.eval_decompose(|v| { 228 x.eval_decompose(|v| {
229 self.get_view_mut().axpy(α, v.get_view(), β) 229 self.get_view_mut().axpy(α, (*v).get_view(), β)
230 }) 230 })
231 } 231 }
232 232
233 fn copy_from<I: $crate::instance::Instance<Self>>(&mut self, x: I) { 233 fn copy_from<I: $crate::instance::Instance<Self>>(&mut self, x: I) {
234 x.eval_decompose(|v| { 234 x.eval_decompose(|v| {
235 self.get_view_mut().copy_from(&v.get_view()) 235 self.get_view_mut().copy_from((*v).get_view())
236 }) 236 })
237 } 237 }
238 238
239 fn scale_from<I: $crate::instance::Instance<Self>>(&mut self, α: $F, x: I) { 239 fn scale_from<I: $crate::instance::Instance<Self>>(&mut self, α: $F, x: I) {
240 x.eval_decompose(|v| { 240 x.eval_decompose(|v| {
241 self.get_view_mut().scale_from(α, v.get_view()) 241 self.get_view_mut().scale_from(α, (*v).get_view())
242 }) 242 })
243 } 243 }
244 244
245 /// Set self to zero. 245 /// Set self to zero.
246 fn set_zero(&mut self) { 246 fn set_zero(&mut self) {

mercurial