feat: v0.2.0 — sequence helpers, irregular-time stepping, Bayesian filtering, MLE fit#1
Merged
Merged
Conversation
…ltering, MLE fit Expands linoss-dynamics from a single-step physics primitive into a higher-level multi-use library for oscillatory state-space dynamics, while keeping the core NumPy-only. Added (NumPy-only core): - linoss_scan: sequence helper that runs linoss_step over a (T, n) input - damped_oscillator_closed_form: analytic step supporting variable dt (irregular sampling) - stability module: is_stable, eigvals_to_freq_damping, freq_damping_to_oscillator_block, period_from_omega, harmonic_stack - filters module: kalman_filter, rts_smoother Added (optional [probabilistic] extra; requires scipy): - discretize module: discretize_lti_with_noise (van Loan), discretize_control (ZOH), oscillator_mats - fit module: fit_oscillator_mle (L-BFGS-B parameter recovery) Docs and tutorials: - 8 runnable examples covering single-step, forced, damped, energy tracking, convergence, typed errors, sunspots fit, and Kalman phase tracking - docs/api.md: per-function API reference - docs/roadmap.md: public vision document (v0.3 candidates, v1.0 unified oscillator+attractor goal, v1.x spatial extensions, explicit non-goals) - README Vision section linking to roadmap - PROVENANCE: framing-only attribution; no shared code with upstream JAX impl - architecture.md: lineage section grounding the package in the research family Verification: - 119/119 pytest green (Python 3.11) - ruff check clean across src/tests/examples - compileall clean - python -m build produces wheel + sdist; twine check PASSED - Clean-venv install from local wheel: all 23 public symbols importable, smoke test green scipy-gated symbols use module-level __getattr__ to raise LinOSSError with install hint if scipy is absent, instead of bare AttributeError.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expands
linoss-dynamicsfrom a single-step physics primitive into a higher-level multi-use library for oscillatory state-space dynamics, while keeping the core NumPy-only.This is the first PyPI release. v0.1.0 was never published.
What changed
Core (NumPy-only)
linoss_scan(U, A, dt, ...)— sequence helper runninglinoss_stepover a (T, n) input.damped_oscillator_closed_form— analytic step supporting variabledt(irregular sampling); handles underdamped, critically damped, and overdamped regimes via exact matrix exponential.stabilitymodule:is_stable,eigvals_to_freq_damping,freq_damping_to_oscillator_block,period_from_omega,harmonic_stack.filtersmodule:kalman_filter,rts_smoother— Bayesian state estimation over oscillator state-space models.Optional
[probabilistic]extra (scipy)discretize_lti_with_noise,discretize_control,oscillator_mats— van Loan exact matrix-exponential discretization.fit_oscillator_mle— MLE parameter recovery via L-BFGS-B in log-parameter space.Docs and tutorials
examples/directory with 8 runnable tutorials.docs/api.md— per-function API reference.docs/roadmap.md— public vision document (v0.3 candidates, v1.0 unified oscillator+attractor goal, v1.x spatial extensions, explicit non-goals).Notable
__getattr__to raiseLinOSSErrorwith install hint if scipy is absent (instead of bareAttributeError).is_stablefor both modes.[probabilistic].Test plan
python -m ruff check src tests examplescleanpython -m compileall -q src tests examplescleanpython -m buildproduces wheel + sdistpython -m twine check dist/*PASSED for bothRoadmap
This release is the v0.2.0 milestone of the public roadmap at
docs/roadmap.md. v1.0 will introduce unified oscillator + attractor primitives. v1.x explores spatio-temporal extensions (BioOSS-class). See roadmap for the full vision.