Changelog
All notable changes to PEPit.jl are documented in this file. The format is based on Keep a Changelog, and the project aims to follow Semantic Versioning.
[Unreleased]
Added
- Mathematical interpolation conditions (in display-math fences, verified against each
add_class_constraints!implementation) in the docstrings of all 16 function classes and 13 operator classes. - Academic references in all function/operator class docstrings, ported from the corresponding Python PEPit docstrings (Taylor-Hendrickx-Glineur, Ryu-Taylor-Bergeling-Giselsson, Bousselmi-Hendrickx-Glineur, Bauschke-Combettes, and others).
- Class-specific notes ported from Python PEPit: differentiability and
reuse_gradientbehavior,L == Inf/beta == 0degenerate-parameter advice, the nonexpansive infimal-displacement-vector discussion, and the documented adjoint usagegradient!(M.T, u)forLinearOperator. - A representative
# Returns approximately: (...)output line inside the# Julia usageblock of every example docstring (96 examples), generated by running each example with its documented arguments (Clarabel).
Fixed
- Class docstring usage examples previously showed the template placeholder
OrderedDict("L" => 1.0) # adapt keys to the classfor every class; each class now shows its actual parameter keys ("mu","beta","M","rho","partition", ...), so copy-pasting no longer raisesKeyError. - Mislabeled prose in operator docstrings:
LipschitzOperatorand bothCocoerciveStronglyMonotoneOperator*variants described "Cocoercive operators";BlockSmoothConvexFunctionExpensivereferred to itself by a non-existent name (RefinedBlockSmoothConvexFunctionExpensive). - Ten example docstrings falsely claimed "No bibliographic reference was listed in the corresponding Python PEPit example docstring"; eight now carry the actual references (Lieder; Gu-Yang; Kim; Park-Ryu; Bousselmi et al.; Goujaud et al.) and the remaining two state that no reference exists.
- Broken display-math fence in the theoretical-guarantee block of
examples/fixed_point_problems/krasnoselskii_mann_constant_step_sizes.jl. # Note/# Warningpseudo-headings with indented bodies in class docstrings (rendered as code blocks by Documenter) replaced with proper!!! note/!!! warningadmonitions; generic# Fieldsboilerplate replaced with accurate per-class field descriptions.
[0.1.2] - 2026-06-08
Added
- Documenter.jl documentation scaffold with API reference pages, an executable Quick Start, tutorials, contributing guide, release notes, and custom styling.
- GitHub Actions workflow for building and deploying the documentation site.
- Comprehensive source docstrings for the public API and key implementation helpers across the core objects, function classes, operator classes, primitive steps, and utilities.
- Mathematical docstrings for all
wc_*example functions. - Executable, expanded Quick Start covering worst-case instance recovery with
evaluate, the explicit dual certificate (solve_dual!,eval_dual,DualPEPCertificate), and dimension-reduction heuristics (tracetrick,logdetiters). - Contributing guide with templates for adding function/operator classes, primitive steps, and worked examples.
- Automatically generated Examples overview, category pages, and per-example pages extracted from the corresponding
wc_*function docstrings. - This changelog and a "Release notes" page in the documentation.
Changed
evaluateis now exported. It is the documented way to recover numerical realizations ofPoint/Expressionobjects after solving.- Standardized all documentation links and documentation deployment on
github.com/PerformanceEstimation/PEPit.jl. - Tests now access internal counters and helper functions as
PEPit.<name>after those symbols were removed from the public export list.
Fixed
evaluatewas documented and shown in the Quick Start but not exported, so user code following the Quick Start raisedUndefVarError.- Broken display-math block in the
inexact_gradient_step!docstring: the conditional definition is now contained in a singlemathfence (previously part of it rendered as raw LaTeX / a code block). - De-Pythonized the
inexact_gradient_step!docstring: a# Throwssection now documents the realErrorException, with Julia string/list syntax.
Removed
- Internal symbols are no longer exported into the public namespace: the global counters (
Point_counter,Expression_counter,Function_counter,Global_Constraint_counter,PSDMatrix_counter,NEXT_ID) and the internal helpers (_is_already_evaluated_on_point,_separate_leaf_functions_regarding_their_need_on_point,_get_nb_eigs_and_corrected). They remain reachable asPEPit.<name>.
[0.1.1]
- Initial documented release: the core PEP workflow (
PEP,Point,Expression,Constraint,PSDMatrix), function and operator interpolation classes, primitive steps,solve!/solve_dual!, and ~96 worked examples validated against the PythonPEPitpackage.