--- 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>> {