forked from francof2a/fxpmath
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
121 lines (106 loc) · 5.53 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
version 0.4.1.rc3
--------------------------------------------------
* 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
version 0.4.0
--------------------------------------------------
* Extended precision (beyond 64 bits) in `add`, `sub`, `mult`, `truediv`, `floordiv`, `mod` and `pow` functions and methods (operators).
* Support new input formats for values: `tuples`, `Decimal` type from `decimal` module.
* dtype can be specified at init if `fxp` format or `Q` format (it replaces explicit sizing by signed, n_word, and n_frac parameters).
* Template functionality added. It allows define default format for new Fxp objects.
* Config class created to manage low level configuration of Fxp object's behavior.
- size limits: `max_error`, `n_word_max`. Parameters to define n_word and n_frac of a new Fxp.
- behavior: `op_method` (defines calculation method for ALU operators).
- inputs: `op_input_size` (defines sizing of constant conversion to Fxp in math operations).
- alu ops outpus: `op_out`, `op_out_like`, `op_sizing` (define the sizing method or type for results of ALU operations).
- alu ops with a constant operand: `const_op_sizing` (alternative of `op_sizing` when one of ALU operands is a constant).
- array ops: `array_output_type` (defines the object type when use Numpy functions: Numpy Array or Fxp),
`array_op_out`, `array_op_out_like` (define the output's size), `array_op_method` (defines calculation method for ALU operators).
* Several core calculations/methods mirgrated from `float` to `int` to support extended precision.
* Extended precision flag in status (extended_prec).
* Results of ALU operations with constants keep same size than Fxp object (by default).
* `like` initialization supports overwrite of size parameters.
* Numpy functions dispatch. You can use Fxp as arguments (inputs) of Numpy functions and get Fxp as outputs of them.
* New Fxp properties: size, shape, ndim, T.
* New Fxp methods: reshape, flatten, raw, uraw.
* New Fxp methods from Numpy array methods: all, any, argmax, argmin, argpartition, argsort, max, min, mean, std, var, sum, cumsum, cumprod,
ravel, tolist, sort, conjugate, conj, transpose, item, clip, diagonal, trace, prod, dot, nonzero.
* Support for `bool`, `int`, `float` and `complex` casting.
* dtype included in Fxp's representation (__repr__).
* Callbacks (basic) functionality added: `on_value_change`, `on_status_overflow`, `on_status_underflow`, `on_status_inaccuracy`.
* Some performance improvements.
Note:
It is recommended use Numpy version >= 1.17.x to enable functions dispatch by default. If it's not the case, it is recommended
import fxpmath before numpy or set OS envirnment variable "NUMPY_EXPERIMENTAL_ARRAY_FUNCTION" = "1" before import numpy.
version 0.3.9
--------------------------------------------------
* fix wrapping (issue #20).
version 0.3.8
--------------------------------------------------
* hex representations support padding.
* fix bug with 'b' in hex string (issue #15).
* fix inaccuracy word in status (issue #16).
* fix __pow__ method (issue #17).
* fix bug that only store imaginary part in complex assignement by indexing (issue #19).
version 0.3.7
--------------------------------------------------
* right shift support expand shifting='expand' mode.
* improve performance in indexed assignement.
* Fxp slicing (when Fxp has values as array) returns a Fxp object.
* Fxp accept other Fxp as input value.
* New `sum` function in `functions`.
* Fxp object supports > 64 bits words and values.
* docstrings update.
version 0.3.6
--------------------------------------------------
* chage in setup.py to resolve not installed package dependencies.
version 0.3.5
--------------------------------------------------
* fix wrap error for ndarrays.
version 0.3.4
--------------------------------------------------
* fix wrap error for unsigned Fxp.
version 0.3.3
--------------------------------------------------
* fix shifting bitwise of unsigned values.
* fix wrap error when input was a float.
version 0.3.2
--------------------------------------------------
* fix N dimensional arrays as inputs (N > 1).
version 0.3.1
--------------------------------------------------
* fix init and best_size_calc for Win32 platforms
version 0.3.0
--------------------------------------------------
* support logical (bitwise) operators.
* binary shifting.
* value/s sclaing (scale and offset).
* comparison support.
* inaccuracy status flag to inform that the value stored is not equal to input value.
* info() method now have verbosity to display more information.
* reset() method to reset status flags.
* set_val() now also supports raw value input.
* pow operator.
* inplace operators support.
* some bugs fixed (of course).
version 0.2.0
--------------------------------------------------
* bin, hex, and base representations.
* upper, lower and precision properties.
* arithmetic operators support.
* support for input values as strings, bin, hex, also in fractional format.
* copy Fxp.
* init Fxp like other Fxp previously defined.
* indexing support.
version 0.1.0 (first release)
--------------------------------------------------