--- a/NEWS
+++ b/NEWS
@@ -1,554 +0,0 @@
-===============================================================================
-IT++ version 4.0.7                                         Released: 2009-12-27
--------------------------------------------------------------------------------
-
-IT++ 4.0.7 is the next maintenance release based on the IT++ stable branch
-itpp-4-0. A list of modifications and bug-fixes is presented below:
-
-
-Modifications:
---------------
-
-* Added support for automatic detection of MKL 10.2 libraries when using GCC
-
-* Improved performance of the Frobenious norm function
-
-* Improved documentation on the accuracy of LLR calculations
-
-* Disabled optimization flag "-O1" for the debug builds
-
-
-Bug-fixes:
-----------
-
-* Added equality and inequality operators for Vec<complex<double>> type (bug
-  report #2909998)
-
-* Added missing templated instantiations of is_hermitian() and is_unitary()
-  functions (bug report #2392728)
-
-* Added missing include files, so IT++ compiles cleanly with GCC 4.4 (bug
-  report #2780001)
-
-
-===============================================================================
-IT++ version 4.0.6                                         Released: 2008-10-08
--------------------------------------------------------------------------------
-
-IT++ 4.0.6 is the next maintenance release based on the current IT++ stable
-branch (itpp-4-0). As usual, a brief list of modifications and bug-fixes is
-presented below:
-
-
-Modifications:
---------------
-
-* Added GDB debugger helper display macros for IT++ data types (feature
-  request [1913404])
-
-* Reduced number of divisions in a sinc() function implementation
-
-* "itpp/config.h" no longer included in "itpp/base/itassert.h" header file
-
-
-Bug-fixes:
-----------
-
-* Fixed broken implementation of toeplitz() function for the case when two
-  different complex-valued input vectors are used as input arguments (bug
-  report [2110119]).
-
-* Fixed a minor bug in GF::set_size() method: the content of "alphapow" and
-  "logalpha" static variables is now properly copied when resizing them.
-
-* Fixed sort() and sort_index() so they again work for vectors with less
-  than two elements.
-
-* Fixed bug [2041474] in Vec<>::split() method, which was a regression with
-  respect to the previous 3.10.x stable releases.
-
-* Fixed incorrect usage of ZDOTU BLAS function when linking to 64-bit MKL
-  library for GNU/Linux (zdotusub Fortran wrapper function is required)
-
-* Suppressed warnings about deprecated "/Wp64" option when compiling with MS
-  Visual C++ Express 2008
-
-
-===============================================================================
-IT++ version 4.0.5                                         Released: 2008-07-19
--------------------------------------------------------------------------------
-
-IT++ 4.0.5 is the next maintenance release of the current IT++ stable branch
-(itpp-4-0). As usual, a brief list of modifications and bug-fixes is
-presented below:
-
-
-Modifications:
---------------
-
-* Mat<>::set_size() method now resets the number of rows/columns, if one of
-  the dimensions of a matrix is zero. This is consistent with the
-  constructor behaviour.
-
-* Suppressed a few MSVC++ warnings (C4512, C4701, C4244 and C4100) by minor
-  re-factoring of some code fragments
-
-* Changed the default debugging CFLAGS to "-g -O1" or "-Wall -ggdb -O1
-  -pipe", where the latter set is used with GCC.
-
-* Suppressed GCC 4.3 warnings on "ambiguous else" due to missing braces
-
-* Coding style unified and beautified using Artistic Style (astyle) source
-  code formatter
-
-
-Bug-fixes:
-----------
-
-* Fixed bug [2017948] in parsing from string routine of Vec<int> for "a:b:c"
-  format specifier
-
-* Fixed bug [2004345] causing incorrect result of Mat::concat_vertical(),
-  when one of the input matrices was empty. In such case the result is now a
-  copy of the other (non-empty) matrix.
-
-* Fixed bug [1995743] in BCH::decode() function, which resulted in a
-  decoding failure, while a codeword should have been correctable in theory.
-
-* Fixed one regression due to a missing "inline" keyword in
-  Vec<>::outer_product() specialisation
-
-* Fixed bug [1941219], which reports broken initialisation of
-  Fast_ICA::set_init_guess() method.
-
-
-===============================================================================
-IT++ version 4.0.4                                         Released: 2008-03-31
--------------------------------------------------------------------------------
-
-IT++ 4.0.4 is the next bug-fix release of the current IT++ stable branch
-(itpp-4-0). As usual, a brief list of modifications and bug-fixes in this
-maintenance release is presented below:
-
-
-Modifications:
---------------
-
-* Added support for "-1" indexing in Vec<>::del(i1, i2) method. For instance,
-  v.del(4, -1) should delete all elements of v starting from the fourth one.
-
-* In case of an overflow saturate QLLR values instead of aborting.
-
-* Improved performance of expand_base() and calculate_base_matrix() methods
-  of the BLDPC_Parity class
-
-* Const member functions in BERC and BLERC classes are now really "const".
-
-* Added new tests for error counters, converting functions and block LDPC
-  code classes
-
-* Clean-ups of the Vec and Mat classes (removed unnecessary "const"
-  keywords, use consistent naming, use in_range() private methods, revise
-  inlining of functions)
-
-* Minor documentation improvements (spelling fixes in the base module and
-  improved sqr() documentation).
-
-
-Bug-fixes:
-----------
-
-* Fixed bug [1908644] in Modulator<>::set(symbols, bits2symbols) function.
-  The bitmap matrix used in the demodulate_bits() function of the
-  Modulator<> base class was improperly constructed from the input
-  bits2symbols mapping vector. This resulted in demodulation errors for some
-  constellations, e.g. 64-QAM or 8-PSK.
-
-* Fixed wrong size of the resulting bit vector of the LDPC_Code::decode()
-  function
-
-* Fixed wrong conditions in it_assert_debug() calls of elem_mult_out()
-  methods of the Vec and Math classes
-
-* Fading_Generator::generate(int) methods in the derived classes are no
-  longer hidden.
-
-* Warnings are no longer treated as errors under MSVC++ compiler. This
-  should workaround the bug [1900236].
-
-* Fixed incorrect implementation of rint() function not available under
-  MSVC++ compiler
-
-* Fixed complex constructors in operators.cpp to build with g++ 4.3
-
-
-===============================================================================
-IT++ version 4.0.3                                         Released: 2008-02-21
--------------------------------------------------------------------------------
-
-This bug-fix release is only intended to fix the wrong calling method of
-BLAS zdotu_ function, used in IT++ 4.0.1 and 4.0.2 releases. The problem is
-due to the fact that a std::complex<double> C++ type is not compatible with
-COMPLEX in Fortran. This appears to be especially visible when calling the
-Fortran functions that return a complex result.
-
-Therefore, the most portable solution to call such functions from C++ is to
-use a Fortran wrapper function that passes the complex result as the
-function argument. For this particular problem, the zdotusub_ wrapper
-function is provided. Besides, the configure script provides a new
-"--with-zdotu=<method>" option to override the default calling method of
-zdotu_ function. The valid options are as follows:
-- "zdotusub" - use the zdotusub_ Fortran wrapper function (default, if a
-   Fortran compiler is available)
-- "void" - compatible with BLAS libraries built with g77 compiler and BLAS
-  provided by Intel MKL
-- "none" - not using the zdotu_ function at all
-
-Please note that if IT++ 4.0.2 release works fine for you (all tests pass),
-you do not need to update IT++ to version 4.0.3.
-
-
-===============================================================================
-IT++ version 4.0.2                                         Released: 2008-02-15
--------------------------------------------------------------------------------
-
-This is the second bug-fix release of the current IT++ stable branch
-(itpp-4-0). A brief list of modifications and bug-fixes in this maintenance
-release is as follows:
-
-
-Modifications:
---------------
-
-* Documentation improvements:
-  - better description of the encoding/decoding and encoder state setting
-    functions of the Convolutional_Code class
-  - detailed description added to the get_bits2symbols() method of the
-    Modulator base class
-  - missing itpp namespace documentation is now generated (due to the
-    Doxygen's changes)
-
-* Added support for building a DLL library on Cygwin (IT++ has to be linked
-  to Cygwin's libblas and liblapack DLLs).
-
-
-Bug-fixes:
-----------
-
-* Fixed wrong result of the log_add() function for infinite arguments
-  (bug report [1863940])
-
-* Fixed GF2mat_sparse_alist::from_sparse() conversion function, which was
-  not usable for most of non-regular sparse matrices.
-
-* Fixed wrong verbose output of the Parser::get() function for "int" and
-  "bool" types of the parsed variables
-
-* Improved zdotu_ calling convention tests, which should solve problems with
-  blas_test and vec_test reported for 64-bit versions of Debian and SUSE
-  Linux systems (bug report [1855481]). A Fortran wrapper function zdotusub_
-  is no longer distributed with IT++.
-
-
-===============================================================================
-IT++ version 4.0.1                                         Released: 2007-12-15
--------------------------------------------------------------------------------
-
-This is the first bug-fix release of the current stable itpp-4-0 branch. As
-usual, the maintenance release of the IT++ library is backward compatible
-with previous versions from the same branch (4.0.x), because only bug-fixes
-and modifications that do not break the interface have been included.
-
-Here is a brief summary of the most important changes included in this
-release:
-
-
-Modifications:
---------------
-
-* Fortran compiler is no longer required for detection of some BLAS/LAPACK
-  implementations. For instance, the BLAS and LAPACK libraries provided by
-  Intel MKL or Apple's Accelerate Framework can be used without Fortran
-  compiler installed.
-
-* Flags and libraries returned by itpp-config and "pkg-config itpp" commands
-  are adjusted to the linker requirements of a particular platform and
-  library type. With this change, the use of "--static" switch should be no
-  longer necessary. This should also fix linking problems to a shared
-  library on Mac OS X.
-
-* Major improvement in calculation performance of SVD and QR decomposition
-  routines, especially for larger matrices.
-
-* "operator*(Vec &v, Mat &m)" documented as deprecated, because its
-  behaviour is equivalent to "outer_product(v, m.get_row(0))".
-
-* "-Werror" flag is not used any more by default when compiling the
-  debugging library.
-
-* Documentation improvements of svd() and diag() functions
-
-* Latest MKL and ACML libraries should be automatically detected on both 32-
-  and 64-bit systems.
-
-* The MS Visual C++ project files now use environment variables (INCLUDE,
-  LIB and PATH) to find the location of header and library files of MKL and
-  ACML. Besides, multi-threaded DLL libraries are built by default.
-
-* "min" and "max" macros are now unconditionally undefined in config.h and
-  config_msvc.h. IT++ uses std::min() and std::max() functions.
-
-* Autoconf 2.60 is now required when building from SVN.
-
-* Improved configure checks for isfinite(), isinf() and isnan() functions.
-  This should improve portability of the library on other UNIX and BSD
-  systems.
-
-* The configuration summary is logged in the config.log file.
-
-* Added "itpp_debug.pc" pkg-config's file for linking with the debugging
-  library.
-
-
-Bug-fixes:
-----------
-
-* Fixed compilation errors when using GCC 4.3 (bug-report [1848375])
-
-* Fixed LDPC tutorial examples (bug-report [1827041])
-
-* Added a workaround for a compilation error of a few explicit
-  instantiations in converters.cpp when using GCC 3.3.x with
-  "-finline-functions" flag enabled (bug-report [1818395])
-
-* The distributed files "itpp.spec" and "itpp-config.1" are no longer
-  removed when invoking a "make distclean" command (bug-report [1818391]).
-
-* Fixed wrong calculation of bessely() caused by incompatible
-  implementations of gamma() and lgamma() functions. This problem was only
-  visible when using an Intel C++ compiler.
-
-* Prevent warnings about string to char* conversions when using GCC >= 4.2
-
-
-===============================================================================
-IT++ version 4.0.0                                         Released: 2007-10-14
--------------------------------------------------------------------------------
-
-IT++ 4.0.0 is the new stable release based on itpp-3-99 development branch.
-It supersedes our previous 3.10.x stable versions. After over one and a half
-year of intensive development it includes a lot of new features and
-improvements with respect to IT++ 3.10.12 release (the previous stable
-version).
-
-A brief summary of the most important additions and changes is listed below.
-Should you need more detailed history of changes that are new in this
-release, please have a look at the NEWS-3.99 and ChangeLog files.
-
-
-New features:
--------------
-
-### Base module: ###
-
-* New functions for initializing vectors and matrices from strings
-  implemented. Main features of the improved parser are as follows:
-  - Decimal, octal and hexadecimal notation support according to C/C++
-    conventions, i.e. octal numbers starts with `0' (e.g. `0133', `077'),
-    decimal numbers starts with `1-9' or are single `0' digits, hexadecimal
-    numbers starts with `0x' or `0X' prefix and have at least one `0-9',
-    `a-f' or `A-F' digit after (e.g. 0xFF, 0x0, 0x070).
-  - Mixing of various representations in one string
-  - Signed numbers supported, i.e. with leading `+', `-' signs, e.g.
-    `-1000', `+0133', `-0x1'
-  - Vector values separated with spaces ` ', tabs `\t' or comma `,'
-  - Matlab's "a:b" or "a:b:c" notation for increasing and decreasing
-    values, e.g. "0:2:10", "-9:-18", "4:-1:0", "0x0:0x8:0xFF"
-  - Matrix rows separated with a single semicolon `;'
-  - `NaN' (not a number) and `Inf' (infinity) values properly interpreted
-  - Detection of syntax errors during parsing
-
-* New features of the communication channels:
-  - Implemented missing "Gauss I" and "Gauss II" Doppler spectra required by
-    a few COST207 channel models
-  - Channel_Specification and TDL_Channel classes extended with support of
-    LOS (Rice) fading for any tap. Removed Doppler spectrum of type `Rice',
-    since its generation method was the same as of the `Jakes' one. To
-    obtain the `Rice' spectrum, a relative power, and optionally relative
-    Doppler, needs to be defined for certain taps.
-  - Implemented exponential channel profile generation function
-
-* New implementation of the Normal_RNG and Complex_Normal_RNG classes, which
-  uses so-called Ziggurat algorithm. The new generators are about 4-5 times
-  faster than the previous ones using Box-Mueller method (feature request
-  [1707969] and [1711727]).
-
-* New Sort class implementation included with four different algorithms:
-  Introsort, Heap sort, Quick sort and Insertion sort. The implementation of
-  the new sorting functions is much faster than our previous QS()
-  implementation due to the use of low level pointer arithmetic (feature
-  request [1746876]).
-
-* Added repmat() functions, which expand an input matrix or vector to a
-  larger one by concatenating multiple copies of the input one.
-
-* New methods in Vec and Mat classes: elem_mult_inplace(), elem_mult_out(),
-  elem_div_out(), elem_mult_sum(), elem_div_sum() and sumsum()
-
-* New methods: set_rows() and set_cols() implemented in the Mat class
-
-* Added missing left(), right() and mid() methods to the Array class
-
-### Communications module: ###
-
-* Added new classes for Low-Density Parity Check (LDPC) codes. So-called
-  Block LDPC (B-LDPC) codes, or Quasi-Cyclic LDPC codes are supported as
-  well.
-
-* Added support for MacKay's "alist" representation of sparse GF(2)
-  matrices
-
-* Added systematic codewords support in BCH and RS encoder/decoder classes
-  (feature request [1418250])
-
-* Added a new function waterfilling() to solve water-filling problems
-
-### Statistics module: ###
-
-* Created a new set of Mixture of Gaussians (MOG) classes (Statistics
-  module)
-
-* Added templated Histogram class provided (feature request [1451288])
-
-### Other: ###
-
-* MS Visual C++ .NET project file for linking IT++ with ACML added. Also
-  added MSVC++ project files for building test programs.
-
-
-Modifications:
---------------
-
-### Base module: ###
-
-* Major changes in IT++ file format related classes:
-  - the new file format (version 3) is incompatible with version 2, which
-    was used in IT++ 3.10.x series; for backward compatibility the previous
-    format can be handled using the it_file_old and it_ifile_old classes,
-    which are considered as deprecated and will be removed from the library
-    in future
-  - data is always saved using a little endian byte ordering; files files
-    written on machines using big or little endian ordering should be
-    identical; endianity variable removed from the data_header structure
-  - all size variables are stored using fixed-width 64-bit unsigned integer
-    type, and therefore are independent of the architecture word size (32-
-    or 64-bit)
-  - short and int data types are explicitly casted to fixed-with types
-    int16_t, uint16_t, int32_t and uint32_t, since C/C++ standards do not
-    assume fixed widths of these types
-  - cleaner and more efficient implementation of the write_data_header()
-    function
-  - added missing implementation of a pack() function, which compacts an
-    opened it_file by removing free space between data blocks
-  - added optional description filed which can be saved with each variable
-  - added missing operators and methods for reading and writing svec and
-    smat data types
-  - test program improved
-  - itload.m and itsave.m M-files updated to be compatible with the latest
-    IT++ file format
-
-* Improved and reorganised existing error handling macros:
-  - using standard NDEBUG flag for controlling it_assert_debug() macro,
-    which replaced a three-level ASSERT_LEVEL definition
-  - for backward compatibility it_assert0() and it_assert1() now behaves the
-    same as it_assert_debug()
-  - added new it_info() and it_info_debug() macros for printing information
-    messages; it_info_debug() is also dependent on the NDEBUG compile-time
-    definition
-  - added it_error_msg_style() function for changing the format of
-    it_assert(), it_error() and it_warning() messages; if style is set to
-    Minimum, file name and line number of the error/assert/warning macro is
-    not printed
-  - error functions extended to handle stream operators like `<<' or
-    `std::endl' in concatenation with strings (feature request [1569867])
-
-* Improved the consistency of the alloc(), free() and set_size() methods in
-  the Array, Mat and Vec classes
-
-* General performance improvements of various operators in Vec and Mat
-  classes by using a copy_vector() function where possible. The
-  copy_vector() function use BLAS 1 routines for double and complex<double>
-  arguments.
-
-* The outer_product() function now uses an extra argument "hermitian", which
-  controls the calculation for complex vectors. By default "hermitian" is
-  set to false, which results in (x * y^T) calculation. If "hermitian" is
-  true, (x * y^H) is calculated. This solution is backward compatible with
-  3.10.x interface of outer_product(). Final fix for bug [1727923].
-
-### Communications module: ###
-
-* Major redesign of 1D and 2D modulator classes. From now, there is only one
-  templated base class Modulator, which can handle 1D (real) and 2D
-  (complex) constellations. Other modulators inherits from this base class.
-  BPSK and PAM modulators are split into: BPSK_c/PAM_c classes which have
-  complex-valued interfaces, and BPSK/PAM that have real-valued interfaces.
-  Besides, demodulate_soft_bits() functions take an additional parameter
-  "method" to switch between Log-MAP or approximate demodulation. The input
-  signal for the Modulator_2D has now a slightly different meaning. Also an
-  improper definition of the QPSK constellation is fixed (it was a 4-QAM
-  modulator previously).
-
-* Important updates in the communication channels:
-  - Fading generators inheritance model redesigned. Now there are three
-    types of fading: Independent, Static and Correlated. The Correlated
-    fading can be generated using Rice (MEDS), FIR or IFFT methods. The
-    default fading type is set to `Independent'.
-  - The delay profile discretization function is improved and moved to the
-    TDL_Channel class. An additional parameter `sampling_time' is required
-    when setting the channel profile using the Channel_Specification object.
-    It is now possible to discretize the channel with too low sampling
-    frequency, but only if the taps being merged into a new single tap use
-    the same Doppler spectrum type.
-  - Cleaned up the interfaces of various fading generator classes
-
-* Improved interfaces of Modulator_ND classes, so they are now more similar
-  to 1D and 2D modulators. BTW, implemented Zero-Forcing (ZF) Log-MAP soft
-  demodulator.
-
-### Signal processing module: ###
-
-* Memory allocation for double and complex<double> based vectors and
-  matrices uses 16-byte alignment. This results in much better performance
-  (up to 30% improvement) of FFT/IFFT and DCT/IDCT operations when using
-  FFTW external library (feature request [1418707]).
-
-### Other: ###
-
-* Removed dependency on the external CBLAS library by providing direct
-  interfaces to Fortran BLAS routines (feature request [1746876]).
-
-* New "Signal Processing", "Statistics" and "Numerical Optimization" modules
-  created from a subset of classes and functions from the "Base" module
-
-* Restructuring of the source files in the "Base" module. Some of the
-  functions grouped in "Linear Algebra" and "Mathematical and Miscellaneous
-  Functions" sub-modules.
-
-* Modularization added to the configuration scripts. It is now possible to
-  select a limited set of modules, which will be built and installed as the
-  IT++ library.
-
-* Improvements in itpp-config and pkg-config's itpp.pc scripts. The changes
-  are intended to follow the distinction between linking to a static and
-  shared version of the library, which is used in pkg-config's itpp.pc file.
-  By default "itpp-config --libs" returns "-I${prefix}/lib -litpp", whereas
-  when "--static" is added in front of "--libs", the returned string is
-  extended with a set of external library names required for proper static
-  linking. Moreover, an additional "--debug" switch has been added, which
-  changes the output of "itpp-config --cflags" and "itpp-config --libs" by
-  providing debugging flags and debugging library name. For backward
-  compatibility "--cflags-opt", "--cflags-debug", "--libs-opt" and
-  "--libs-debug" still exist, but they are not documented and their use is
-  deprecated.
-