# HG changeset patch # User Tuomo Valkonen # Date 1613856391 18000 # Node ID d5e10d963303ee510051b1d095ebf0c69fd05848 # Parent 3b7fcc6515851cb726e24526c894cdd60a16d5c5 Add "extra" string output to simple_iterate. diff -r 3b7fcc651585 -r d5e10d963303 src/Iterate.jl --- a/src/Iterate.jl Sat Feb 20 16:26:02 2021 -0500 +++ b/src/Iterate.jl Sat Feb 20 16:26:31 2021 -0500 @@ -22,30 +22,35 @@ # on demand. ######################################################################## +function simple_verbosity(iter, params, calc_objective) + if params.verbose_iter!=0 && mod(iter, params.verbose_iter) == 0 + v, extra₀ = calc_objective() + if isa(extra₀, AbstractString) + extra = " [$extra₀]" + else + extra = "" + end + @printf("%d/%d J=%f%s\n", iter, params.maxiter, v, extra) + return true + end +end + function simple_iterate(step :: Function, - params::NamedTuple) + params :: NamedTuple) for iter=1:params.maxiter step() do calc_objective - if params.verbose_iter!=0 && mod(iter, params.verbose_iter) == 0 - v, _ = calc_objective() - @printf("%d/%d J=%f\n", iter, params.maxiter, v) - return true - end + simple_verbosity(iter, params, calc_objective) end end end function simple_iterate(step :: Function, - datachannel::Channel{T}, - params::NamedTuple) where T + datachannel :: Channel{T}, + params :: NamedTuple) where T for iter=1:params.maxiter d = take!(datachannel) step(d) do calc_objective - if params.verbose_iter!=0 && mod(iter, params.verbose_iter) == 0 - v, _ = calc_objective() - @printf("%d/%d J=%f\n", iter, params.maxiter, v) - return true - end + simple_verbosity(iter, params, calc_objective) end end end