Skip to content

version 0.4.10

Latest

Choose a tag to compare

@francof2a francof2a released this 24 Mar 02:39
90b7766

fxpmath v0.4.10

v0.4.10 is a stability and modernization release focused on packaging updates, correctness fixes, reshape/bitwise behavior alignment, and stronger regression coverage across platforms and Python versions.

Highlights

  • Migrated packaging metadata to PEP 517 / PEP 621 with pyproject.toml as canonical source.
  • Added dynamic versioning from fxpmath.__version__.
  • Added installation smoke testing to validate install/import/version behavior.
  • Fixed complex uraw conversion correctness (#102).
  • Fixed repeated increment + int() casting regression (#98).
  • Implemented/clarified complex bitwise behavior and expanded regression coverage (#55).
  • Improved reshape behavior compatibility with NumPy, including explicit reshape_inplace.
  • Expanded CI coverage (multi-OS + modern Python matrix) and upgraded core Actions to current versions.

Solved / Addressed Issues

From v0.4.9 changelog

  • #41 Overflow behavior at instantiation fails for long words
  • #48 Flags not propagated
  • #49 Reversal of .bin()
  • #76 NumPy issue with bigger bit sizes
  • #77 Precision error when numpy.reshape
  • #80 Creation of Fxp with negative n_frac
  • #89 Infinite loop on exponent

Addressed in commits/changelog during v0.4.10 cycle

  • #55 Complex bitwise behavior confusion
  • #66 Unexpected behavior using equal() with NumPy arrays
  • #67 Complex dtype error at certain precision
  • #79 Deprecation using pip v23.1
  • #85 Wrap overflow breaks on 0.0 value
  • #86 Rounding-mode feature work and cleanup tracking updates
  • #94 Missing py.typed marker for typing tools
  • #95 Invalid dtypes allowed
  • #98 'int' object has no attribute 'flatten' regression
  • #102 Incorrect complex float→integer conversion path

Detailed Change Notes

  • Packaging modernization with pyproject.toml + dynamic version source.
  • Added installation smoke tests (tests/test_installation.py).
  • Complex uraw conversion fix + regression tests.
  • Scalar/object int-casting hardening + regression tests.
  • Complex bitwise semantics implementation and test expansion.
  • Bitwise internals refactor for broadcasted array-vs-array operations.
  • 64-bit bitwise regression coverage for scalar/array/broadcast paths.

  • Reshape API alignment with NumPy semantics:
    • reshape() copy-style behavior
    • reshape_inplace(shape, order='C') for explicit in-place reshape
    • deprecation warning for Fxp.shape = ...
  • Compatibility/test updates across Python and OS CI matrix.

Thanks

Huge thanks to all reporters and contributors who helped shape this release.

Issue Reporters

Code Contributors (since v0.4.9 to release branch)

  • falcaraz
  • Matthieu Dartiailh

Upgrade Notes

  • Fxp.shape = ... is deprecated; use reshape() or reshape_inplace().
  • Package version for this release is 0.4.10.
  • Tag to publish after merge: v0.4.10.