@@ -1,68 +1,87 @@
-General improvements for the future
+IT++ version 4.2.0 Released: 2010-09-21
-* Speed improvements:
- - revise the idea of shallow matrix views
-* Possibly add linear programming (LP) in the form of an external library
-* Add routines for optimization
- - Use GSL for fminbnd (brent) and fminunc (BFGS)?
- - Add other routines from http://plato.asu.edu/guide.html and
- http://www.mat.univie.ac.at/~neum/glopt.html - LP, SDP, SOCP...
-* Support for existing wireless standards, e.g. GSM/GPRS, WCDMA, WLAN,
- WIMAX, etc.
-* IT++ interpreter
+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.
-* Multi-dimensional arrays
+* Added SISO class implementing several algorithms used in turbo decoders/
-* The member ">>" and "<< operators needs to be revised. The "<<" operator
- does not always match the ">>" one.
+* Added EXIT class for EXIT chart computation of turbo receivers
-* Make an m-file load/saver (similar to it-file).
+* Added STC class for the generation of Space Time block codes used in MIMO
+systems with turbo receivers
-* Soft-in soft-out turbo decoder (Erik)
+* Added support for testing IT++ library in Visual C++ (2008 and 2010). Current approach
+relies on fc (file compare) utility.
-* Class for operation on index sets? (Erik)
+* 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.
-* Revision of (scalar) modulators to use fast likelihood algebra and
- to take soft inputs (for higher order constellations) (Erik)
+* Added implementation of Gamma(alpha, beta) random number generator. The
+ implementation of the Gamma_RNG::sample() function was taken from the R
+ statistical language.
-* Sparse matrix class:
- - should choose the transposed matrix also (for fast row access)? (Erik)
- - is there any gain by maintaining the index vector sorted? (Erik)
- - add cout for Sparse_Vec and Sparse_Mat (Pal)
+* Added qr() overloaded function that does not compute Q. For some tasks
+ (triangularization) the Q matrix is not really needed.
-* GF2mat_dense class: (Erik)
- - There is probably potential for improving the efficiency of some
- of the matrix/vector multiplication operators (see specific
- comments in the code)
+* Added missing get(int i) method and operator=(const std::string &) to the
+ Mat class
- - Implement a general GF(2)-matrix class which offers the user a
- transparent interface (user does not need to know whether the
- sparse or the dense representation is used)?
+* Added element-wise division operator with a scalar as the dividend to the
+ Mat class
-* LDPC classes: (Erik)
- - Implement ACE-measured based random matrix generation of
- irregular codes
+* Added missing operator=(const std::string &) to the Vec class
- - Add more extensive information gathering functions
+* Added missing operator(bin_list) and get(index_list) methods to the Vec
- - Support for efficient encoding, using sparse representation of
- generator matrix
+* Added LDPC_Code::get_ninfo() function, which returns the number of
+ information bits in a codeword.
- - Support for structured parity check matrices
+* Added cheb() and chebwin() function to evaluate the coefficients of the
+ Dolph-Chebyshev window.
- - Optimizations in decoder? Implement suboptimum decoding schemes,
- e.g. min-sum?
- - In MGW-cycle removal algorithm, hardcode a binomial expansion of
- the adjacency matrix for higher powers to improve efficiency
+* 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
+* 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()