iterate op• Data kinds: none → table (an op determined by its arguments alone — it takes no image or data input)
• Call: import fullseye as fs; fs.ledger.iterate_fixed_point(g='cos', x0=None, method='anderson', tol=1e-10, rtol=0.0, max_iter=500, m=5, on_fail='raise', keep_iterates=False) -> 'dict' (to call the implementation directly, import converge; converge.iterate_fixed_point(g='cos', x0=None, method='anderson', tol=1e-10, rtol=0.0, max_iter=500, m=5, on_fail='raise', keep_iterates=False) -> 'dict'; from the registry, opsconverge.get("iterate_fixed_point"))
Solve x = g(x) by fixed-point iteration (plain / Aitken / Anderson) and refuse if it does not converge.
g is a callable mapping an iterate (scalar or array) to one of the same shape, or the name of a built-in example ("cos": x = cos x, x0 = 1, fixed point 0.7390851332...). The residual is f_k = g(x_k) - x_k and the run has converged when ||f_k|| <= tol + rtol * ||x_k|| (2-norm). The value returned is g(x_k).
method:
• "plain" x_{k+1} = g(x_k) — the bounce-by-bounce Neumann sum for a linear map.
• "aitken" Aitken's delta-squared on x, g(x), g(g(x)) per step (Steffensen form), component-wise; a component whose second difference vanishes takes g(g(x)).
• "anderson" Anderson acceleration (Walker & Ni 2011, Algorithm AA) with memory m, written as their eq. (3.1): gamma = argmin ||f_k - dF_k gamma||_2 with dF_k = (f_{k-m_k+1} - f_{k-m_k}, ..., f_k - f_{k-1}), then x_{k+1} = g(x_k) - dG_k gamma (dG holds the same differences of g). The least-squares problem is solved by a QR factorisation; while cond(R) > ANDERSON_COND_MAX (1e8) the left-most (oldest) column is dropped (section 4 of Walker & Ni, after Yang et al.). On a linear map with no columns dropped this reproduces GMRES (their Theorem 2.2): the gates check it.
Returned (a table dict): x (g(x_k)), converged, n_iter, n_evals (calls of g), residual_history (||f_k|| per iterate), lipschitz_estimate (largest secant ratio of g over the stored iterates), error_estimate = L/(1-L) * ||f_k|| — the a-posteriori contraction bound on |g(x_k) - x*|, None when the estimated L is not below 1 — columns_dropped (Anderson conditioning) and method.
Refusal: divergence (non-finite residual or growth by DIVERGENCE_FACTOR = 1e8), a period-2 oscillation, stagnation or running out of max_iter raises NotConvergedError (a MetricContractError) with the record attached. With on_fail="record" the record is returned instead, with x = None and the last iterate under last_iterate — never under x.
• convergent_computation family guide
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• converge_tour — py -3.11 examples/converge_tour.py
table as input)—
iterate)—
*Provenance: converge.py — CONVERGE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.