src/fb.rs

changeset 7
8979a6638424
parent 5
f248e1434c3b
child 12
3b05a8b45b95
--- a/src/fb.rs	Mon Oct 21 08:44:23 2024 -0500
+++ b/src/fb.rs	Mon Oct 21 10:02:57 2024 -0500
@@ -1,10 +1,11 @@
 
-use alg_tools::iterate::AlgIteratorFactory;
+use alg_tools::iterate::{AlgIteratorFactory, LogRepr};
 use alg_tools::mapping::{Mapping, Sum};
 use serde::Serialize;
 use std::iter::Sum as SumTrait;
+use colored::ColoredString;
 
-use crate::manifold::ManifoldPoint;
+use crate::manifold::{EmbeddedManifoldPoint, ManifoldPoint};
 
 /// Trait for function objects that implement gradients
 pub trait Grad<M : ManifoldPoint> {
@@ -45,6 +46,15 @@
     point : M,
 }
 
+impl<M : ManifoldPoint + EmbeddedManifoldPoint> LogRepr for IterInfo<M> {
+    fn logrepr(&self) -> ColoredString {
+        format!("{}\t {}",
+            self.value,
+            self.point.embedded_coords()
+        ).as_str().into()
+    }
+}
+
 pub fn forward_backward<M, F, G, I>(
     f : &F,
     g : &G,
@@ -52,7 +62,7 @@
     τ : f64,
     iterator : I
 ) -> M
-where M : ManifoldPoint,
+where M : ManifoldPoint + EmbeddedManifoldPoint,
       F : Desc<M> +  Mapping<M, Codomain = f64>,
       G : Prox<M> +  Mapping<M, Codomain = f64>,
       I : AlgIteratorFactory<IterInfo<M>> {

mercurial