forked from vectorclass/version2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
209 lines (179 loc) · 9.03 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
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
Change log for Vector class library
-----------------------------------
2020-02-25 version 2.01.01
* added function store_nt
* New dispatch_example1.cpp dispatch_example2.cpp
2019-11-23 version 2.01.00
* problem with performance of permute and blend functions fixed by avoiding
unions in constexpr functions
2019-10-31 version 2.00.02
* bug fix in permute function
* is_nan function improved
* templates constant4ui etc. improved
2019-08-02 version 2.00
Derived from version 1.40
* use C++17
* use compact boolean vectors of all sizes if AVX512VL is enabled
* permute and blend functions improved, using C++17 metaprogramming features
* deprecated functions removed
2019-08-02 version 1.40
* hosted on github
* license changed to Apache 2.0.
* added classes Vec64c, Vec64uc, Vec32s, Vec32us
* test bench and scripts for automatic testing of VCL
* new functions: maximum, minimum, to_float, to_double
* conversion of bitfields to boolean vectors with load_bits. This replaces to_vec4ib etc.
* shift_bytes_up/down functions changed to templates (old versions deprecated)
* removed VECTORMATH define. vectormath_lib.h rewritten. svmlpatch.lib added.
* many improvements and bug fixes
* renamed functions: round_to_int and round_to_int64 functions renamed to roundi,
* renamed functions: the type letter is removed from all permute and blend functions,
e.g. permute4f renamed to permute4.
These changes are made to facilitate generic template programming
* renamed functions: to_Vec.. Replaced by load_bits member functions
* deprecated functions: set_bit, get_bit
* deprecated bit vector classes: Vec128b, Vec256b, Vec512b
2017-07-27 version 1.30
* fixed bug in permute8f for a particular combination of indexes
2017-05-10 version 1.29
* Reversed Apple Clang patch in version 1.28 because the problem has reoccurred in
later versions of Clang
2017-05-02 version 1.28
* Fixed problem with Apple Clang version 6.2 in vectorf128.h
* Fixed return type for Vec8sb operator > (Vec8us, Vec8us)
* cpuid function modified in instrset_detect.cpp
2017-02-19 version 1.27
* fixed problem with scatter functions in MS Visual Studio
2016-12-21 version 1.26
* added constant4ui template
* fixed error for complexvec.h with clang
* fixed error in vectormath_exp.h for MAX_VECTOR_SIZE < 512
2016-11-25 version 1.25
* scatter functions
* new functions to_float for unsigned integer vectors
* instrset_detect function can detect AVX512VL, AVX512BW, AVX512DQ
* functions hasF16C and hasAVX512ER for detecting instruction set extensions
* fix bugs in horizontal_and and pow(0,0) for AVX512
* functions improved for AVX512 and AVX512VL: pow, approx_recipr,
approx_rsqrt
* functions improved for AVX512DQ: 64 bit multiplication, to_double,
32 and 64 bit rotate_left, round_to_int64, truncate_to_int64
* functions improved for AVX512ER: approx_recipr, approx_rsqrt,
exponential functions
2016-10-31 version 1.24
* fix bug in Vec8uq constructor in vectori512e.h
2016-09-27 version 1.23
* temporary fix of a problem in Clang version 3.9 inserted in vectorf128.h
2016-05-03 version 1.22
* added optional namespace
* fixed problem with decimal.h
2016-04-24 version 1.21
* fix problems with XOP option in gcc
* improved horizontal_and/or for sse2
* improved Vec2q and Vec4q constructor on Microsoft Visual Studio 2015
* removed warnings by gcc option -Wcast-qual
2015-12-04 version 1.20
* round functions: suppress precision exception under SSE4.1 and higher
* fix compiler problems with AVX512 multiplication in gcc version 5.1
* fix compiler problems with pow function in Microsoft Visual Studio 2015
2015-11-14 version 1.19
* fix various problems with Clang compiler
2015-09-25 version 1.18
* fix compiler error for Vec8s divide_by_i(Vec8s const & x) under Clang compiler
* fix error in Vec4d::size() in vectorf256e.h
2015-07-31 version 1.17
* improved operator > for Vec4uq
* more special cases in blend4q
* nan_code functions made static inline
* template parameter BTYPE renamed to BVTYPE in mathematical functions to avoid clash
with macro named BTYPE in winnt.h
* fixed bug in Vec4db constructor
2014-10-24 version 1.16
* workaround for problem in Clang compiler extended to version 3.09 because not
fixed yet by Clang (vectorf128.h line 134)
* recognize problem with Apple version of Clang reporting wrong version number
* remove various minor problems with Clang
* function pow(vector, int) modified to strengthen type checking and avoid compiler warnings
* manual discusses dynamic allocation of arrays of vectors
* various minor changes
2014-10-17 version 1.15
* added files ranvec1.h and ranvec1.cpp for random number generator
* constructors to make boolean vectors from their elements
* constructors and = operators to broadcast boolean scalar into boolean vectors
* various lookup functions improved
* operators &, |, ^, ~, etc. defined for various boolean vectors to avoid converson
to integer vectors
* nmul_add functions
* mul_add etc. moved to main header files
* explicit fused multiply-and-add used in math functions to improve performance
on compilers that don't automatically insert FMA
2014-07-24 version 1.14
* support for AVX-512f instruction set and 512-bit vectors:
Vec16i, Vec16ui, Vec8q, Vec8uq, Vec16f, Vec8d, and corresponding boolean vectors
* new define MAX_VECTOR_SIZE, valid values are 128, 256 and 512
* added hyperbolic functions sinh, cosh, tanh, asinh, acosh, atanh
* size() member function on all vector classes returns the number of elements
* functions for conversion between boolean vectors and integer bitfields
* extracting an element from a boolean vector now returns a bool, not an int
* improved precision in exp2 and exp10 functions
* various bug fixes
2014-05-11 version 1.13
* pow function improved
* mul_add, mul_sub, mul_sub_x functions
* propagation of error codes through nan_code function
* "denormal" renamed to "subnormal" everywhere, in accordance with IEEE 754-2008 standard
2014-04-20 version 1.12
* inline implementation of mathematical functions added (vectormath_exp.h vectormath_trig.h
vectormath_common.h)
* vectormath.h renamed to vectormath_lib.h because a new alternative is added
* gather functions with constant indexes
* function sign_combine
* function pow_const(vector, const int)
* function pow_ratio(vector, const int, const int)
* functions horizontal_find_first, horizontal_count
* function recipr_sqrt removed
* functions round_to_int64_limited, truncate_to_int64_limited, to_double_limited
* function cubic_root renamed to cbrt
* function atan(vector,vector) renamed to atan2
* function if_mul
* function Vec4i round_to_int(Vec2d)
* operator & (float vector, boolean vector)
* operator &= (int vector, int vector)
* removed constructor Vec128b(int) and Vec256b(int) to avoid implicit conversion
* removed signalling nan function
* minor improvements in various blend and lookup functions
2014-03-01 version 1.11
* fixed missing unsigned operators >>= in vectori256.h
2013-10-04 version 1.10
* clear distinction between boolean vectors and integer vectors for the sake of
compatibility with mask registers in forthcoming AVX512 instruction set
* added function if_add
* tentative support for clang version 3.3 with workaround for bugs
* remove ambiguity for builtin m128i operator == in clang compiler.
* problems in clang compiler, bug reports filed at clang
(http://llvm.org/bugs/show_bug.cgi?id=17164, 17312)
* instrset.h fixes problem with macros named min and max in MS windows.h
* workaround problem in MS Visual Studio 11.0. Bug report 735861 and 804274
* minor bug fixes
2013-03-31 version 1.03 beta
* bug fix for Vec2d cos (Vec2d const & x), VECTORMATH = 1
2012-08-01 version 1.02 beta
* added file vector3d.h for 3-dimensional vectors
* added file complexvec.h for complex numbers and complex vectors
* added file quaternion.h for quaternions
* added function change_sign for floating point vectors
* added operators +, -, *, / between floating point vectors and scalars to remove
overloading ambiguity
2012-07-08 version 1.01 beta
* added file decimal.h with Number <-> string conversion functions:
bin2bcd, bin2ascii, bin2hex_ascii, ascii2bin
* added andnot function for boolean vectors
* added functions shift_bytes_up and shift_bytes_down
* added operators for unsigned integer vector classes: >>=, &, &&, |, ||, ^, ~
* inteldispatchpatch.cpp removed. Use asmlib instead (www.agner.org/optimize/#asmlib)
* prefix ++ and -- operators now return a reference, postfix operators return a value
* various improvements in permute and blend functions
* minor improvement in abs function
* added version number to VECTORCLASS_H
2012-05-30 version 1.00 beta
* first public release at www.agner.org