704 } |
704 } |
705 |
705 |
706 impl<F : Float, const N : usize> Linear<Loc<F, N>> for Loc<F, N> { } |
706 impl<F : Float, const N : usize> Linear<Loc<F, N>> for Loc<F, N> { } |
707 |
707 |
708 impl<F : Float, const N : usize> AXPY<F, Loc<F, N>> for Loc<F, N> { |
708 impl<F : Float, const N : usize> AXPY<F, Loc<F, N>> for Loc<F, N> { |
709 type Owned = Self; |
|
710 |
|
711 #[inline] |
709 #[inline] |
712 fn add_mul<I : Instance<Loc<F, N>>>(mut self, α : F, x : I, β : F) -> Self { |
710 fn add_mul<I : Instance<Loc<F, N>>>(mut self, α : F, x : I, β : F) -> Self { |
713 self.axpy(α, x, β); |
711 self.axpy(α, x, β); |
714 self |
712 self |
715 } |
713 } |
729 fn copy_from<I : Instance<Loc<F, N>>>(&mut self, x : I) { |
727 fn copy_from<I : Instance<Loc<F, N>>>(&mut self, x : I) { |
730 x.eval(|x̃| map2_mut(self, x̃, |yi, xi| *yi = *xi )) |
728 x.eval(|x̃| map2_mut(self, x̃, |yi, xi| *yi = *xi )) |
731 } |
729 } |
732 |
730 |
733 #[inline] |
731 #[inline] |
734 fn similar_origin(&self) -> Self::Owned { |
732 fn similar_origin(&self) -> Self { |
735 Self::ORIGIN |
733 Self::ORIGIN |
736 } |
734 } |
737 |
735 |
738 #[inline] |
736 #[inline] |
739 fn set_zero(&mut self) { |
737 fn set_zero(&mut self) { |