-
Notifications
You must be signed in to change notification settings - Fork 2
/
NEWS
302 lines (257 loc) · 16.3 KB
/
NEWS
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
################################################################################
# Encoding: UTF-8 Tab size: 4 #
# #
# LINASM NEWS #
# #
# License: LGPLv3+ Copyleft (Ɔ) 2016, Jack Black #
################################################################################
#******************************************************************************#
# Release 1.13 (stable) [2016-07-08] #
#******************************************************************************#
ADT's functions may change container elements or manipulate with built in
iterators. This can result to data inconsistency among different threads.
To solve this possible issue, a programmer have to separate read and write
operations to containers. Write operation can not be invoked in the same time
with other write or read operations, and should get exclusive access to
the container. Read operations can be processed simultaneously with each other,
but not with write operation (because of possible dirty reads).
Access predicates solve these problems and support lock methods for exclusive
writes and concurrent reads from different threads. Lock functions return
TRUE state only when you get appropriate access to the container. They support
wait and no wait behaviors. If wait flag is set, then lock functions wait until
the lock is taken. In no wait mode they try to get lock for some short period
of time (spinlock cycle). And if no success, then return FALSE. Your code may
check the return status and do something else instead of just waiting.
Also in this release:
* Was added prefetch code to MultiTree and UniqueTree, which improved binary
search algorithms in these containers.
* Added non linear filters to Filter library, which do Min, Max and Median
filtering of integer and floating-point arrays.
* MinMeap and MaxHeap were refactored to have correct cache friendly
alignment of internal data.
#******************************************************************************#
# Release 1.12 (stable) [2016-04-16] #
#******************************************************************************#
To provide multithreaded highly concurrent read only access to elements of ADT
containers were developed external iterators. They allow to walk through
the elements in very fast and efficient way. You can not change data, using
this iterator, but can do non blocking multithreaded access for reading,
searching and counting elements. In opposite to forward and backward iterators
the external iterator lost its actual position when you change ADT structure
(insert, remove set or overwrite its elements). In such case you should
each time to reassign external iterator before doing sequence of read only
operations.
Minor changes:
* Array library: Added functions GetBit, SetBit, ResetBit, InvertBit,
FindSetBitFwd, FindResetBitFwd, FindSetBitBwd, FindResetBitBwd, CountBits
* Complex library: Improved functions to operate with complex numbers
* Matrix library: Added functions to operate with complex number matrices
#******************************************************************************#
# Release 1.11 (stable) [2015-09-13] #
#******************************************************************************#
New version of LinAsm library is completely ready after one year of testing and
developing. Version 1.11 fixes few bugs were found after conversion library to
shared object file and adds new modules/libraries to fast mathematical
operations.
The bugs where fixed:
* Time library: Fixed negative year extraction error in ExtractDate function
* Filter library: Fixed broken pointer to Array::Mul function
* String library: Fixed pointer error in Copy functions
* Array and Vector library: Fixed pointer error in QuickSort and
QuickSortKey functions
New libraries are added in this release:
* Approximation - library for approximation of empirical data by well known
math functions
* Complex - fast core functions to operate with complex numbers
* FHT - Fast Hartley transformation (analog of fast Fourier transformation)
* Matrix - Typical matrix operations and solvers for linear systems
* 2D vector - primitives to work with two dimensional vectors
* 3D vector - primitives to work with three dimensional vectors
More detailed information about LinAsm changes see into ChangeLog file.
#******************************************************************************#
# Release 1.10 (stable) [2014-09-05] #
#******************************************************************************#
LinAsm library is converted into shared object file (*.so) instead of static lib
file (*.a). Also was fixed compilation bag in MAP macro and added new functions
into Math block.
Here is the list of changed were made:
* Array library: Fixed compilation error in MAP macro.
* Math library: Added functions Cancel, AbsError, RelError, SinH, CosH,
TanH, ArcSinH, ArcCosH, ArcTanH.
* Math library: Improved functions Exp2, Exp2m1, Exp10, Exp10m1, Exp, Expm1
and trigonometric functions.
* Math library: Improved speed of Log functions.
#******************************************************************************#
# Release 1.03 (stable) [2014-08-03] #
#******************************************************************************#
This release adds new math functions which were not developed until now,
such as inverse trigonometric and logarithmic functions. Also were rewrote
exponentiation functions and trigonometric functions too.
The detailed list of new functions is here:
* Math library: Were added functions: Sin, Cos, Tan, SinCos. All of them
do range reductions for all available angle values supported by
floating-point format.
* Math library: Inverse trigonometric functions: ArcSin, ArcCos, ArcTan
compute inverse sine, cosine and tangent values.
* Math library: New logarithmic functions compute logarithm values to base
2, 10, e (natural logarithm base) and to custom base.
* Math library: Functions ExpB and ExpBm1 can compute "base" raised to "exp"
power, where "base" and "exp" are floating-point numbers. Base should be
positive number or zero.
* Array library: Were added functions Sign (replace value with its sign,
using three-state comparison comparison), SumSqrDiff, SumAbsDiff.
* Statistics library: Were released Fechner and Spearman correlation,
fast and efficient for big data series.
#******************************************************************************#
# Release 1.02 (stable) [2014-05-02] #
#******************************************************************************#
New extends abstract data type library with new class called "Vector", which
provides the same functionality as STL vector class, but works faster. Also were
redesigned "Array" library. Were added object array functions such as object
searching, sorting, counting, extracting unique objects and so on. String
library also was recreated to works with array of strings. Were added
bidirectional search for symbol, symbols set, and substrings.
Minor changed in this release:
* Added function IsInit in all ADT classes.
* Improved data conversion functions in the "Array" library.
* Added functions FindSequenceFwd and FindSequenceBwd in MultiTree and
MultiHash abstract data types.
* Added functions MinFwd, MinBwd, MaxFwd, MaxBwd in MultiTree, UniqueTree,
MultiHash and UniqueHash ADTs.
* Added functions FindSymbolFwd, FindSymbolBwd, FindSymbolsFwd,
FindSymbolsBwd, FindSubStringFwd, FindSubStringBwd in the "String" library.
* Added functions: InsertHead, InsertTail, ExtractHead, ExtractTail in
Deque ADT.
* Added functions Insert, Extract in Stack ADT.
* Added index rearrangement call back function in Heap ADT, which allow
to trace objects when heap swap elements to correct their order during
Insert and Extract operations.
#******************************************************************************#
# Release 1.01 (stable) [2014-02-08] #
#******************************************************************************#
In this release were added new abstract data types:
* MultiHash.h - Multiply keys hash table ADT
* UniqueHash.h - Unique keys hash table ADT
* List.h - Doubly linked list ADT
* Ring.h - Circular doubly linked list ADT
Also were fixed found bugs in following abstract data types: MaxHeap.h,
MinHeap.h, MultiTree.h, UniqueTree.h. Check the ChangeLog file for more
information about changes in this release.
#******************************************************************************#
# Release 1.00 (stable) [2013-12-16] #
#******************************************************************************#
Finally stable release after ten month of debugging, optimization and writing
new libraries. In this release I am glad to present you new modules, which
significantly extend LinAsm applications. They implement abstract data types
such as Stack, Deque, Min/Max heaps and very powerful tree structure - in-memory
b-trees. Also were added new libraries: Object pool and Accumulating buffer
to optimize memory management routines. For detailed descriptions of the new
modules, fixed bugs and new features see documentation and ChangeLog file inside
the release archive.
Here is brief description of new modules in the LinAsm project:
* Accumulator.h - Accumulating buffer library
* Pool.h - Object pool library
* FPU.h - FPU control functions library
* SIMD.h - SIMD control functions library
* Stack.h - Stack ADT
* Deque.h - Double-ended queue ADT
* MaxHeap.h - Binary max heap ADT
* MinHeap.h - Binary min heap ADT
* MultiTree.h - Multiply keys b-tree ADT
* UniqueTree.h - Unique keys b-tree ADT
#******************************************************************************#
# Release 0.99 (beta) [2013-02-04] #
#******************************************************************************#
It is time to global optimization. For this release I completely rewrote modules
"Array", "Statistics" and "String". Plus I made some brief improvement in
Math library. In previous version of LinAsm release the modules "Statistics"
and "String" were working too slow. String library even was not optimized.
Now all this is fixed and work much faster (here is the test of statistics
library). Many of new functions were added to Array and String modules.
Some functions have changed prototypes + few bugs were fixed. Details can be
found in "ChangeLog" file inside the package archive.
Major changes in this version:
* String library is completely rewrote with vector instructions. Now it is
very fast.
* Were added integer arithmetic functions to Array library.
* Added robust statistics functions "LowerQuartile", "UpperQuartile"
and "InterquartileRange" for integer types.
* Improved rounding functions in Math library.
* Array library has new functions to merge sorted arrays, collect
unique values and compute count of duplicates.
* String module now can manage array of strings. Were implemented searching
and sorting operations. Added check for duplicate strings.
* Changed prototypes for key sorting functions in Array library. Removed
binary searching functions for complex keys.
* Were fixed incorrect loop counter in Statistics library for functions
"Variance", "StandardDeviation", and "AbsoluteDeviation".
#******************************************************************************#
# Release 0.98 (beta) [2012-10-25] #
#******************************************************************************#
After two months of hard working on a new release, I finally have finished
a lot of functions (but not all of them) which have to be in final library.
In this release I improved many functions from Math library, which were working
too slow in previous version, and added much faster mathematical routines
for engineering calculations.
Almost all of them use vector instructions and work 2 times faster then
their analogs from GNU C library. A performance test will be added later in
release 0.99, when Math library is complete.
Also in new release were:
* added functions "Move", "Clone" and rounding routines in Array library
* added functions "Exp2", "Exp2m1", "Exp10", "Exp10m1", "Exp", "Expm1" for
real argument and improved "Exp2", "Exp10", "Exp" for integral argument
* improved "Scale2", "Scale10" and "ScaleE" functions
* added trigonometric functions "SinQ", "CosQ", "TanQ", "CotQ", "SinCosQ",
"Cath" and improved "Hypot" function
* added "GCD" and "LCM" functions
* added fast "RoundInt" and "Truncate" functions
* fixed error in Math library (see ChangeLog for details)
* added string concatenation functions and "ReplaceSymbol" function in
String library
#******************************************************************************#
# Release 0.97 (beta) [2012-08-27] #
#******************************************************************************#
This release extends libraries usage for non C++ projects and provide C
prototypes for all functions and data structures. The C functions have the
same behavior and parameters, like original C++ functions, and work in the
same ways like their originals. The assembly language code stays the same for
both variants, and it is shared between them, just providing aliases for already
implemented functions.
Also in release 0.97 were:
* fixed non critical bug in Array library
* changed function names in String library
* modified parameters passing method for Numbers library
For more details about release changes see the ChangeLog file inside the LinAsm
package v0.97.
#******************************************************************************#
# Release 0.96 (beta) [2012-08-23] #
#******************************************************************************#
As I promised before in my future plans for the project, I added Digital Signals
Processing (DSP) functions to the library package. They implement FIR filters
and window functions for future Spectral analysis module. Now LinAsm release
has the two additional libraries:
* Filter - Finite impulse response digital filters
* Window - Window functions for digital signal processing
And from now the project has a beta version label. So it is almost done, and
can be used in your software development projects.
#******************************************************************************#
# First release 0.95 (alpha) [2012-08-15] #
#******************************************************************************#
At last, I have finished all preparation for the first release of LinAsm
project. I made code checks and wrote good documentation (as I think) for
libraries functions. But you should remember that this is first public release
of the project. And it is early alpha version. So it may have some bugs
and mistakes in the source code. If you find some, please send them
to the bug tracker.
This release includes following libraries:
* Angle - Angles conversion from different units
* Array - Common routines that are useful for arrays
* Math - Math routines
* Numbers - Numbers conversion functions
* Sequence - Subsequence searching algorithms
* Statistics - Widely used statistical functions
* String - Safe string functions
* Time - Time functions
################################################################################
# END OF FILE #
################################################################################