diff -r 53ab61a41d70 -r ef02a80bf4bc src/euclidean/wrap.rs --- a/src/euclidean/wrap.rs Wed Sep 03 21:31:13 2025 -0500 +++ b/src/euclidean/wrap.rs Wed Sep 03 22:05:33 2025 -0500 @@ -137,6 +137,36 @@ $crate::self_ownable!($type where $($qual)*); + impl<$($qual)*> $crate::norms::Norm<$crate::norms::L2, $F> for $type + { + fn norm(&self, p : $crate::norms::L2) -> $F { + self.get_view().norm(p) + } + } + + impl<$($qual)*> $crate::norms::Dist<$crate::norms::L2, $F> for $type + { + fn dist>(&self, other : I, p : $crate::norms::L2) -> $F { + other.eval_decompose(|x| self.get_view().dist(p, x)) + } + } + + impl<$($qual)*> $crate::norms::Normed<$F> for $type { + type NormExp = $crate::norms::L2; + + fn norm_exponent(&self) -> Self::NormExp { + $crate::norms::L2 + } + } + + impl<$($qual)*> $crate::norms::HasDual<$F> for $type { + type DualSpace = Self; + + fn dual_origin(&self) -> Self { + self.similar_origin(self) + } + } + impl<$($qual)*> $crate::euclidean::Euclidean<$F> for $type // where // Self: $crate::euclidean::wrap::Wrapped @@ -207,13 +237,13 @@ fn scale_from>(&mut self, α: $F, x: I) { x.eval_decompose(|v| { - self.get_mut_view().scale_from(α, v.get_view()) + self.get_view_mut().scale_from(α, v.get_view()) }) } /// Set self to zero. fn set_zero(&mut self) { - self.get_mut_view().set_zero() + self.get_view_mut().set_zero() } }