===============================================================================
IT++ version 4.2.0                                         Released: 2010-09-21
-------------------------------------------------------------------------------

IT++ 4.2.0 is a new stable release based on the SVN development branch
(trunk). Additionally to the new features and modifications listed below, it
comprises all bug fixes included in the previous 4.0.x stable releases.


New features:
-------------

* Added SISO class implementing several algorithms used in turbo decoders/
receivers

* Added EXIT class for EXIT chart computation of turbo receivers

* Added STC class for the generation of Space Time block codes used in MIMO
systems with turbo receivers

* Added support for testing IT++ library in Visual C++ (2008 and 2010). Current approach 
relies on fc (file compare) utility.

* Added rank() function, which calculates the rank of a matrix by counting
  the number of non-zero singular values. SVD function from LAPACK is thus
  required by this function.

* Added implementation of Gamma(alpha, beta) random number generator. The
  implementation of the Gamma_RNG::sample() function was taken from the R
  statistical language.

* Added qr() overloaded function that does not compute Q. For some tasks
  (triangularization) the Q matrix is not really needed.

* Added missing get(int i) method and operator=(const std::string &) to the
  Mat class

* Added element-wise division operator with a scalar as the dividend to the
  Mat class

* Added missing operator=(const std::string &) to the Vec class

* Added missing operator(bin_list) and get(index_list) methods to the Vec
  class

* Added LDPC_Code::get_ninfo() function, which returns the number of
  information bits in a codeword.

* Added cheb() and chebwin() function to evaluate the coefficients of the
  Dolph-Chebyshev window.


Modifications:
--------------

* License updated from "GPLv2 or later" to "GPLv3 or later"

* Mersenne Twister core random number generator replaced with an improved
  Double-precision SIMD-oriented Fast Mersenne Twister (dSFMT)
  implementation, which is 1.8-2.4 times faster than the previous code.

* Vector string parser reimplemented to support multiple "a:b:c" format
  strings. For instance:
    ivec v = "1:2:5, 6 8 9:-1:0";
  now works. Memory handling is also more efficient, i.e. for the cases when
  "a:b:c" format is not used, memory is allocated only once. This solves
  feature request #2041480.

* Auto-calculate the BCH generator polynomial from (n, t) parameters. With
  this change, the generator polynomial and 'k' (message word length)
  parameters do not have to be explicitly passed to the class constructor.

* Moved portability related definitions from config.h and other header files
  to a common system and architecture dependent header itcompat.h

* Deprecated Mat<>::set_submatrix(r1,r2,c1,c2,m) function

* Deprecated elem_div(t,v) and set_subvector(i1, i2, &v) function of the Vec
  class

* Removed previously deprecated demodulate_soft_bits_approx() functions

* Removed the deprecated multiplication operator of a column vector and a
  matrix with only one row

* Renamed check_big_endianness() to a simpler is_bigendian()

