diff -r 5f2b65738e66 -r cecdde4ff5c9 src/fb.rs --- a/src/fb.rs Wed Nov 06 14:58:31 2024 -0500 +++ b/src/fb.rs Wed Nov 06 18:39:24 2024 -0500 @@ -76,19 +76,20 @@ F : Desc + Mapping, G : Prox + Mapping, I : AlgIteratorFactory> { + + // Closure that calculates current status + let status = |x : &M| IterInfo { + value : f.apply(x) + g.apply(x), + point : x.clone(), + }; // Perform as many iterations as requested by `iterator`. - for i in iterator.iter() { + for i in iterator.iter_init(|| status(&x)) { // Forward-backward step x = g.prox(τ, f.desc(τ, x)); // If requested by `iterator`, calculate function value and store iterate. - i.if_verbose(|| { - IterInfo { - value : f.apply(&x) + g.apply(&x), - point : x.clone(), - } - }) + i.if_verbose(|| status(&x)) } // Return final iterate.