Releases: deepnmr/optimalcontrol
Releases · deepnmr/optimalcontrol
Release list
v0.4.0
- Refactor sweep across the Python and Rust sources (net -400 lines): dedupe
the GRAPE entry-point validation preamble, thegrape_xybasis dispatch,
the Hessian generator assembly, and the Rust eigenpropagator; unify
checkpoint serialisation and waveform validation behind single authorities.
Behavior verified equivalent against the pre-refactor tree (fixed-seed
value/gradient/Hessian/fidelity/ensemble/IO comparisons, bit-identical on
the pure Python path). - Remove dead public surface: the unused
gradient_ascentoptimizer, the
never-wiredprint_iteration_tablediagnostics helper, and the Rust
grape_member_value_gradients_vectorskernel with its Python wrapper.
run_grapecontinues to offerlbfgsandnewton. - Consolidate the ten per-example Bruker shape writers into
optimalcontrol.io.export_bruker_shape(byte-identical output; the shared
writer rejects mismatched amplitude/phase lengths). - Tighten
import_jcamp_dx: files must carry##CHANNELSand
##$OPTIMALCONTROL_TIMES(the layout-guessing fallbacks were untested and
unreachable fromexport_brukerround trips). - Restore the shape-mismatch
ValueErrorinfinal_fidelitythat the
fidelity-dispatch cleanup briefly dropped, with a regression test. - Fix plotting helpers to resolve the parent figure on any matplotlib
version instead of requiring 3.10 forget_figure(root=True). - Make
mypyactually check the package (the pinnedpython_version = 3.10
aborted inside numpy stubs on Python 3.14) and fix the seven latent typing
errors it revealed.