Releases: francof2a/fxpmath
Releases · francof2a/fxpmath
version 0.4.10
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.tomlas canonical source. - Added dynamic versioning from
fxpmath.__version__. - Added installation smoke testing to validate install/import/version behavior.
- Fixed complex
urawconversion 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
Fxpwith negativen_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
dtypeerror at certain precision - #79 Deprecation using pip v23.1
- #85 Wrap overflow breaks on
0.0value - #86 Rounding-mode feature work and cleanup tracking updates
- #94 Missing
py.typedmarker 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
urawconversion 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 behaviorreshape_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
- #41 @desvdp
- #48 @edschofield
- #49 @nfrancque
- #55 @ruoting0103
- #66 @pablokrupa
- #67 @VincentChen1017
- #76 @DaveKirkland
- #77 @Ethan-lsh
- #79 @sebaestschn
- #80 @alb-pol
- #85 @sjgallagher2
- #86 @danilo-bc
- #89 @jrmoserbaltimore
- #94 @jtmoon79
- #95 @OliverKillane
- #98 @jmriddell
- #102 @javValverde
Code Contributors (since v0.4.9 to release branch)
- falcaraz
- Matthieu Dartiailh
Upgrade Notes
Fxp.shape = ...is deprecated; usereshape()orreshape_inplace().- Package version for this release is
0.4.10. - Tag to publish after merge:
v0.4.10.
v0.4.9
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_binmethod 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
prefixfor binary and hexadecimal representations. - Fix
cumsumfunction bug when dealing with sizes bigger than 32 bits (windows) / 64 bits (linux) (issue #76). - Fix
numpy.reshapefunction handling. This function was returning optimal size instead of same by default (issue #77). - Fix negative number parsing in
dtypestring (issue #80).
Solved issues
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
version 0.4.7
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
absmethod.
Thanks to:
@DanChianucci for issue #60
version 0.4.6
version 0.4.6
- Fix complex
truedivandfloordivmethods (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
version 0.4.5
- Fix FutureWarning in subdtype 'str' comparison (issue #45).
- dtype argument added to
resizemethod. - new method
get_dtypeto get dtype using argumentnotation. - Docstring of
get_dtype,resize,reshape,flatten,set_val,astype,get_val,raw,uraw,equal - Order parameter for
reshapeand flatten methods.
Thanks to
@qarlosalberto (issue #45)
version 0.4.4
version 0.4.3
version 0.4.3
- Fxp adds
configas 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.truedivwithnumpy.divide. - Add
axesparameter totransposemethod.
version 0.4.2
version 0.4.2
- Add template to Config object.
- Fix config update from Fxp's template.
version 0.4.1
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