src/dist.rs

changeset 7
8979a6638424
parent 5
f248e1434c3b
child 8
17d71ca4ce84
--- a/src/dist.rs	Mon Oct 21 08:44:23 2024 -0500
+++ b/src/dist.rs	Mon Oct 21 10:02:57 2024 -0500
@@ -4,15 +4,13 @@
 use crate::fb::{Grad, Desc};
 
 /// Structure for distance-to functions
-pub struct DistTo<M : ManifoldPoint> {
-    base : M
-}
+pub struct DistTo<M : ManifoldPoint>(pub M);
 
 impl<M : ManifoldPoint> Apply<M> for DistTo<M> {
     type Output = f64;
 
     fn apply(&self, x : M) -> Self::Output {
-        self.base.dist_to(&x)
+        self.0.dist_to(&x)
     }
 }
 
@@ -20,20 +18,18 @@
     type Output = f64;
 
     fn apply(&self, x : &'a M) -> Self::Output {
-        self.base.dist_to(x)
+        self.0.dist_to(x)
     }
 }
 
 /// Structure for distance-to functions
-pub struct DistToSquaredDiv2<M : ManifoldPoint> {
-    base : M
-}
+pub struct DistToSquaredDiv2<M : ManifoldPoint>(pub M);
 
 impl<M : ManifoldPoint> Apply<M> for DistToSquaredDiv2<M> {
     type Output = f64;
 
     fn apply(&self, x : M) -> Self::Output {
-        let d = self.base.dist_to(&x);
+        let d = self.0.dist_to(&x);
         d*d / 2.0
     }
 }
@@ -42,7 +38,7 @@
     type Output = f64;
 
     fn apply(&self, x : &'a M) -> Self::Output {
-        let d = self.base.dist_to(x);
+        let d = self.0.dist_to(x);
         d*d / 2.0
     }
 }
@@ -55,6 +51,6 @@
 
 impl<M : ManifoldPoint> Grad<M> for DistToSquaredDiv2<M> {
     fn grad(&self, x : &M) -> M::Tangent {
-       x.log(&self.base)
+       x.log(&self.0)
     }
 }

mercurial