Skip to content

v.2.3.0 - state dtype unification

Choose a tag to compare

@c4dynamics c4dynamics released this 21 Dec 19:30
· 1274 commits to main since this release

✅ Release Notes (GitHub / PyPI)

🚀 c4dynamics 2.2.0 — Deterministic State Type & Safer Assignments

This release brings a major improvement to the reliability of the State object.
To ensure consistent numerical precision and avoid dtype-related bugs, the state vector is now always stored internally as float64.

🔒 Fixed Internal Precision

Regardless of how variables are created or assigned, they are stored as np.float64.
This eliminates ambiguity and ensures predictable results in simulation, filters, dynamics, and optimization routines.

🔄 Deterministic Assignment Semantics

  • All assignments to X or to individual fields are automatically cast to float64.
  • Assignments with incorrect length raise a clear exception.
  • All mutation paths update the underlying array reliably (previous versions could fail silently).

💡 Why this matters

  • More stable Kalman filters
  • Predictable integrators
  • No platform-dependent dtype quirks
  • Better compatibility with SciPy & NumPy internals
  • Zero surprises when assigning Python ints, numpy ints, lists, or arrays

Full Changelog: v2.2.0...v2.3.0