diff -r c4e394a9c84c -r 402d717bb5c0 src/nalgebra_support.rs --- a/src/nalgebra_support.rs Mon Sep 01 13:51:03 2025 -0500 +++ b/src/nalgebra_support.rs Mon Sep 01 20:55:34 2025 -0500 @@ -273,10 +273,12 @@ impl Euclidean for Vector where M: Dim, - S: StorageMut + Clone, + S: Storage, E: Float + Scalar + Zero + One + RealField, DefaultAllocator: Allocator, { + type OwnedEuclidean = OVector; + #[inline] fn dot>(&self, other: I) -> E { other.eval_ref_decompose(|r| Vector::::dot(self, r)) @@ -296,7 +298,7 @@ impl StaticEuclidean for Vector where M: DimName, - S: StorageMut + Clone, + S: Storage, E: Float + Scalar + Zero + One + RealField, DefaultAllocator: Allocator, { @@ -310,7 +312,7 @@ impl Normed for Vector where M: Dim, - S: Storage + Clone, + S: Storage, E: Float + Scalar + Zero + One + RealField, DefaultAllocator: Allocator, { @@ -330,12 +332,11 @@ impl HasDual for Vector where M: Dim, - S: StorageMut + Clone, + S: Storage, E: Float + Scalar + Zero + One + RealField, DefaultAllocator: Allocator, { - // TODO: Doesn't work with different storage formats. - type DualSpace = Vector; + type DualSpace = OVector; fn dual_origin(&self) -> OVector { OVector::zeros_generic(M::from_usize(self.len()), Const)