Repository navigation
v.2.3.0 - state dtype unification
✅ 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