change log for vectorclass.zip
------------------------------

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
