Skip to content

Releases: francof2a/fxpmath

version 0.4.10

24 Mar 02:39
90b7766

Choose a tag to compare

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.

v0.4.9

08 Feb 01:15
1e000ff

Choose a tag to compare

version 0.4.9

  • Fix wrap fuction over n_word_max (issue #41).
  • Inaccuracy flag is propagated to a new Fxp or resulting Fxp if one or more input Fxp are inaccurate (issue #48).
  • New from_bin method and function. Set value or create new Fxp from a binary string (issue #49).
  • Support to complex binary strings as input format.
  • Force to config.op_input_size='best' when power operation has an constant operator (non-Fxp). Add warning message. (issue #89).
  • Selection of prefix for binary and hexadecimal representations.
  • Fix cumsum function bug when dealing with sizes bigger than 32 bits (windows) / 64 bits (linux) (issue #76).
  • Fix numpy.reshape function handling. This function was returning optimal size instead of same by default (issue #77).
  • Fix negative number parsing in dtype string (issue #80).

Solved issues

#41 #48 #49 #76 #77 #80 #89

Thanks to

@desvdp @edschofield @nfrancque @Ethan-lsh @alb-pol @jrmoserbaltimore for reporting fixed issues and everyone else whose issues are still open.

version 0.4.8

24 Apr 20:22
3ede955

Choose a tag to compare

version 0.4.8

  • Fix value dtype handling for windows OS and uint as 32 bits (issue #60).
  • __getitem__ method return a Fxp with raw value as view (issue #62).
  • Add tests for issues #60 and #62.

Thanks to:

@DanChianucci , @lucacutrignelli

version 0.4.7

15 Apr 21:12

Choose a tag to compare

version 0.4.7

  • Keep val as original_vdtype and not as object when it is convenient (solve issue #60).
  • Convert vdtype to float when scaling transformation is applied.
  • Add abs method.

Thanks to:
@DanChianucci for issue #60

version 0.4.6

01 Apr 22:58
dd5b476

Choose a tag to compare

version 0.4.6

  • Fix complex truediv and floordiv methods (issue #53).
  • Fix complex binary, hexadecimal and base representation for arrays (issue #56).
  • Tests updates for complex representations.
  • Solve init by dtype when it is complex (issue #58).

Thanks to:
@ruoting0103 , @mousecat98

version 0.4.5

03 Dec 20:51
338494f

Choose a tag to compare

version 0.4.5

  • Fix FutureWarning in subdtype 'str' comparison (issue #45).
  • dtype argument added to resize method.
  • new method get_dtype to get dtype using argument notation.
  • Docstring of get_dtype, resize, reshape, flatten, set_val, astype, get_val, raw, uraw, equal
  • Order parameter for reshape and flatten methods.

Thanks to

@qarlosalberto (issue #45)

version 0.4.4

06 Oct 12:54

Choose a tag to compare

version 0.4.4

  • Fix wrapping and scaling issue #44.

thanks to @desvdp

version 0.4.3

21 Sep 11:08

Choose a tag to compare

version 0.4.3

  • Fxp adds config as optional init parameter (kwarg).
  • Functions (operators) over one and two variables copy first operator configuration by default.
  • Changes above fixed wrap overflowing bug after operation (issue #42 solved).
  • Wrap function of utils fix bug when data has more than n_word_max (64 bits in the most of cases) (issue #41 soved).
  • Config new methods: copy, deepcopy.
  • Fix warning about internal complex check (issue #39).
  • Add link implementation between functions.truediv with numpy.divide.
  • Add axes parameter to transpose method.

version 0.4.2

21 Jul 14:53

Choose a tag to compare

version 0.4.2

  • Add template to Config object.
  • Fix config update from Fxp's template.

version 0.4.1

05 Jul 17:26

Choose a tag to compare

changelog

  • Test Numpy precision at init.
  • Independent definition of n_word_max and error for config.
  • Fix astype casting when dtype and vdtype is None.
  • Fix casting to object in extended cumprod function.
  • Independent definition of n_word_max and error for config.
  • Fix astype casting when dtype and vdtype is None.
  • Fix casting to object in extended cumprod function.
  • Fix casting to object in extended precision multiply.
  • Fix casting to object inside constructor.
  • fix integer repr
  • support numpy array of strings

Issues fixed: #26, #31