Bugs were fixed. A few warnings reported in MSVC++
2008 and GCC 4.3 are suppressed. The default
debugging CFLAGS was changed slightly. The source
code formatting is now unified thanks to the
Artistic Style (astyle) code formatter and
beautifier.
This maintenance release fixes the following bugs:
an incorrect bits2symbols bitmap in Modulator<>
base class, wrong size of the LDPC_Code::decode()
output bit vector, improper checks in
elem_mult_out() methods of Vec and Mat classes,
hidden Fading_Generator::generate() methods, wrong
implementation of rint() under MSVC++, and a few
others.
This release fixed incorrect calling of the BLAS zdotu_ function, which caused blas_test and vec_test failures on some architectures (e.g. Debian SPARC/Alpha/ARM) or when using non-standard optimization flags (e.g. -fomit-frame-pointer). The problem is due to the fact that the std::complex<double> C++ type is not compatible with COMPLEX in Fortran.
This release fixes an incorrect result of the log_add() function [1863940] and a problem with testing the zdotu_ calling convention on 64-bit systems [1855481]. Two other minor bugs in GF2mat_sparse_alist::from_sparse() and Parser::get() functions were fixed. A set of documentation improvements is included in this release.
The detection of external BLAS/LAPACK libraries
has been improved. It is now possible to use Intel
MKL or Apple's Accelerate Framework without a
Fortran compiler. SVD and QR decompositions are
now calculated much faster. Also, itpp-config and
pkg-config's itpp.pc scripts have been improved,
so the use of an additional explicit "--static"
switch should be not necessary in most common
cases. Finally, all bugs reported for version
4.0.0 have been fixed.