Saved in:
Bibliographic Details
Main Authors: Hohage, Thorsten, Mickan, Philipp Ronald, Rügge, Christoph, Oberender, Jakob Florian, Ehlers, Björn, Müller, Björn, Aarset, Christian
Format: Recurso digital
Language:
Published: Zenodo 2025
Online Access:https://doi.org/10.5281/zenodo.17992139
Tags: Add Tag
No Tags, Be the first to tag this record!
Table of Contents:
  • <h2>RegPy 1.0.0 Release Notes</h2> <p>RegPy 1.0.0 marks a major step toward a more flexible, modular, and future-proof library for regularization methods. This release introduces <strong>duck typing for vectors</strong>, significantly extends the operator framework, and consolidates regularization configuration into a unified <strong><code>Setting</code></strong>.</p> <h3>Key Highlights</h3> <h4>Duck Typing for Vectors (Major Architectural Change)</h4> <p>RegPy is no longer limited to NumPy-based vectors. All core algorithms now operate on <strong>duck-typed vectors</strong>, requiring only linear additivity and scalar multiplication/division for core feature. Some parts may require additional functionality such as real or imaginary part of a vector to be well-defined.</p> <p>This enables:</p> <ul> <li>Seamless use of <strong>custom vector types</strong></li> <li>Native support for <strong>direct sums via <code>TupleVectors</code></strong></li> <li>A <strong>NGSolve integration</strong> built around the new <code>NgsBaseVector</code> wrapper of the NGSolve <code>BaseVector</code></li> </ul> <p>This change substantially broadens RegPy's applicability beyond NumPy and lays the groundwork for tighter integration with external numerical backends.</p> <h4>Unified <code>Setting</code> Class – Foundation for Future Releases</h4> <p>The former <code>RegularizationSetting</code> and <code>TikhonovRegularizationSetting</code> have been merged into a single <strong><code>Setting</code></strong> class.<br> The new <code>Setting</code>:</p> <ul> <li>Retains full backward functionality</li> <li>Manages and extracts data from data-fidelity functionals, which now manage and store data</li> <li>Centralizes regularization configuration</li> </ul> <p><strong>Future releases will focus on extending and leveraging <code>Setting</code> as the main configuration and orchestration layer</strong> across solvers, and stopping rules.</p> <h3>Other Notable Additions</h3> <ul> <li>Operator norms via power method or Lanczos (SciPy)</li> <li>Operator graphs for building complex operator pipelines</li> <li>New operators including <code>OuterProduct</code>, <code>EinSum</code>, and <code>PartOfOperator</code></li> <li>Iteratively Regularized Newton solver for nonlinear problems</li> <li>Improved solver step-size strategies (FISTA, Landweber)</li> <li>Enhanced stopping rules with solver awareness and history tracking</li> <li>Expanded testing, improved diagnostics, and cleaner error handling</li> </ul> <h3>Cleanup & Stability</h3> <ul> <li>Deprecated and removed obsolete solvers and operators</li> <li>Refactored module structure into core/base and backend-specific layers</li> <li>Fixed a critical issue in IRGNM Krylov basis handling</li> </ul> <p><strong>RegPy 1.0.0 establishes a stable, extensible foundation</strong> with greater flexibility, cleaner abstractions, and a clear architectural direction. Users are encouraged to migrate toward the new <code>Setting</code>-based workflow as future releases will build upon it extensively.</p>