537 lines (370 with data), 21.3 kB
===============================================================================
IT++ version 3.10.12 Released: 2007-07-12
-------------------------------------------------------------------------------
This bug-fix release is intended to be the final release of 3.10.x stable
branch. The current development branch 3.99.x will soon become a new stable
branch, starting from version 4.0.0. Therefore, we recommend to start using
3.99.x releases instead of 3.10.x ones.
As usual, this release includes only bug-fixes and minor modifications that
do not change the interface.
Modifications:
--------------
* Improvements in MKL detection macros: MKL release 9.1.018 has different
naming of a lapack shared library (-lmkl_lapack32 and -lmkl_lapack64
replaced with -lmkl_lapack).
* Not setting "-fno-exceptions" flag in CXXFLAGS and CXXFLAGS_DEBUG, even if
"--disable-exceptions" switch is used.
Bug-fixes:
----------
* Fixed bug [1752576] in operators "+=" and "-=", which gave wrong
results when adding or substracting a vector from itself.
* Fixed bug [1739500] in hadamard() function. The initial recursion for
creating Hadamard matrices has to start with a 1x1 matrix H = [1], not
with a 2x2 matrix.
* Fixed bug [1739267] in binom() and binom_i() functions, which gave wrong
results for n=k.
* Fixed bug [1738716] by correcting the MSVC++ project files to include
proper source and header files
* Fixed bug [1730610] by using binary mode when opening *.pnm and *.pgm
image files for reading (Source coding module)
===============================================================================
IT++ version 3.10.11 Released: 2007-06-02
-------------------------------------------------------------------------------
This is the next bug-fix release of the stable IT++ library. As usually, no
new features have been added since our previous release 3.10.10. Only minor
modifications and bug-fixes have been done.
Bug-fixes:
----------
* Fixed bug [1727923]. Actually the behaviour of the function is not changed
at all. Instead, the documentation is improved to clearly describe what
this method does.
* Fixed bug [1724746], i.e. a problem with modified input data in
ifft_real() function.
* Fixed a minor problem in the schur_test program, which caused failed test
when linking IT++ with some LAPACK implementations
* Fixed linking errors when trying to use Hadamard and Walsh-Hadamard
transform functions. This fixes bug [1719146].
* Fixed bug [1703731] by implementing the missing double2mxArray() and
double_complex2mxArray() functions
* Added missing #include <cstdlib> and <limits> header files. This fixes
problems when building using GCC 4.3 snapshot.
===============================================================================
IT++ version 3.10.10 Released: 2007-04-10
-------------------------------------------------------------------------------
This is the next bug-fix release of the stable IT++ library. Therefore, no
new features have been added since 3.10.9 was released. Only minor
modifications and bug-fixes have been done.
Modifications:
--------------
* Test programs are linked to the optimised library by default.
* A separate MSVC++ project file created to simplify linking the IT++
library with ACML (PGI build) under Windows. Documentation updated
accordingly.
* Speed and portability improvements in the configuration scripts backported
from the development branch.
Bug-fixes:
----------
* Fixed bug [1693384] in it_file low_level_write(std::string) method caused
by a missing explicit cast of string size to 32-bit int. Only 64-bit
architectures were affected by this bug.
* CPU_Timer and Real_Timer tests are now independent of each other. This
should solve possible test failures in specific cases (e.g. high CPU
load).
===============================================================================
IT++ version 3.10.9 Released: 2007-02-10
-------------------------------------------------------------------------------
This is the next bug-fix release of the stable IT++ library. Therefore, no
new features have been added since 3.10.8 was released. Only minor
modifications and bug-fixes have been done.
Modifications:
--------------
* Added test file for a binary it_file format. It is supposed to assert
wrong endianness detection on various platforms.
* Added a manual page for itpp-config script
* Improved portability by adding support for <endian.h> system header,
available at least on Linux systems.
Bug-fixes:
----------
* Fixed bug [1635988] by implementing the twist() function in a similar way
as the original TWIST() macro from Takuji Nishimura's and Makoto
Matsumoto's C sources.
* Fixed wrong assertion check in QAM modulator set_M() function. This
problem was reported on the Help forum.
* Protected inheritance of the Convolutional_Code class replaced with a
public one. This fixes the problem of assigning the
Punctured_Convolutional_Code class object to a pointer of Channel_Code
class.
* Added missing architecture checks, which should fix bugs [1641691] and
[1640347].
* Minor fixes to prevent "unused variable" warnings when ASSERT_LEVEL flag
is not defined.
* Fixed non-portable parts of the Makefile reported by the latest stable
automake 1.10
===============================================================================
IT++ version 3.10.8 Released: 2007-01-14
-------------------------------------------------------------------------------
This is the next bug-fix release of a stable IT++ library. Therefore, no new
features have been added since 3.10.7 release. Only minor modifications and
bug-fixes have been done.
Modifications:
--------------
* Implemented feature request [1216416]. Multiply operator `*' of a vector
`v' and single-row matrix `m' now works for any size of vector `v'. This
change is backward compatible with the previous implementation.
* Cleaned up the exception handling in the PNM class and added GCC specific
"-fno-exceptions" flag to CXXFLAGS_OPT and CXXFLAGS_DEBUG when
"--enable-exceptions" is not used.
Bug-fixes:
----------
* Updated Mersenne Twister random number generator sources to the latest
version 1.0 published by Richard J. Wagner on 15th May, 2003.
* Fixed a problem with discretization of the TDL_Channel delay profile in
the case when the sampling frequency is too low, as compared to the delay
profile resolution.
* A few other minor fixes. For a full list of them, please check the
ChangeLog file.
===============================================================================
IT++ version 3.10.7 Released: 2006-12-04
-------------------------------------------------------------------------------
This is the next bug-fix release of a stable IT++ library. Therefore, no new
features have been added since 3.10.6 release. Only minor modifications and
bug-fixes have been done.
Bug-fixes:
----------
* Fixed a problem with detection of the ACML library on 64-bit platforms.
* Minor code readability and efficiency improvements in modulator_nd.cpp
file.
* Fixed bug [1570388] by adding a warning message to `get_no_mixtures()'
function saying that it is deprecated and that `get_no_gaussians()' should
be used instead.
* Function `needed_bits()' marked as deprecated, because its name was
misleading (see bug [1480535]). The following two functions were added
instead: `int2bits()' and `levels2bits()'. The first one returns the
number of bits required for representing an unsigned integer, e.g.
"int2bits(0) = 1", "int2bits(2) = 2". The latter one returns the number of
bits to code a certain, positive number of values (levels). For example:
"levels2bits(1) = 1", "levels2bits(2) = 1".
* Fixed auto-detected library flags, which are required for linking with a
static IT++ library.
===============================================================================
IT++ version 3.10.6 Released: 2006-10-15
-------------------------------------------------------------------------------
This is a bug-fix release. Therefore, no new features have been added since
release 3.10.5. Only minor modifications and bug-fixes have been done.
Bug-fixes:
----------
* Fixed bug [1576333]. The problem with undefined non-weak symbols has been
solved according to the solution from Section 7.3.5 "Libtool Convenience
Libraries" of automake manual. Thanks to Ed Hill for reporting this bug
and his work on RPM package for Fedora Core.
* Fixed an error in ND_UQAM class.
* Changed the definition of LLRs from log(P(b=1)/P(b=0)) to
log(P(b=0)/P(b=1)) in the LLR and Modulator_ND classes. This was done to
conform to the conventions in the scalar modulator class.
* Fixed bug [1572807]. Modulator_2d can not be initialised with non-even
number of symbols. Therefore, additional checks have been added to the
set() function. Thanks to George Jongren for reporting this bug.
* Added a check for undersampled PDP in Channel_Specification::discretize()
function. Non default Doppler spectrum can not be used when sampling
frequency is too low.
* Fixed bug [1545798]. Sparse vectors are now correctly compared using `=='
operator. Thanks to Timo for reporting this bug.
* Fixed bug [1542064]. The problem was that the index in the
tap_doppler_spectrum array in the TDL_Channel::init() function could go
out of bounds, if the TDL_Channel class was used with two different channel
profile lengths. Thanks to Jordy Potman for reporting this bug and
providing a patch with a solution.
* Fixed bug [1542482]. Now binom_i(n, k) works properly and gives the same
results as binom(n, k).
===============================================================================
IT++ version 3.10.5 Released: 2006-08-15
-------------------------------------------------------------------------------
This is a bug-fix release. Therefore, no new features have been added since
release 3.10.4. Only minor modifications and bug-fixes have been done.
Bug-fixes:
----------
* Documentation improvements in modulator_nd.{cpp,h}, llr.{cpp,h} and
verification.doc.
* Replaced deprecated hypot(x, y) function with std::sqrt(x*x + y*y)
calculation. BTW, macro definition `M_2PI' replaced with a global constant
`m_2pi'. This prevents compilation warnings under MSVC++ .NET compiler.
* Fixed bug [1538210], caused by an uninitialised variable `m2' used for
covariance calculation. Thanks to Max Moorkamp for reporting this bug.
* Fixed bugs [1088420] and [1456235]. The problems reported in these bug
reports were caused by calculation of the log() or exp() function using
`Inf', `NaN' or `zero' argument, which came from previous calculation. Two
special functions `trunc_log()' and `trunc_exp()' have been implemented,
which performs some checks of their argument and eventually truncate or
saturate the result. This fixes all problems in MAP-decode function of the
RSC decoder and soft demodulate functions in various modulators.
* Fixed a problem in Parser initialisation caused by passing a C-style
string as the argument of init(std::string) function.
===============================================================================
IT++ version 3.10.4 Released: 2006-08-07
-------------------------------------------------------------------------------
This is a bug-fix release. Therefore, no new features have been added
since release 3.10.3. Only minor modifications and bug-fixes have been done.
Bug-fixes:
----------
* A set of changes in the MSVC++ .NET project file, which is now located in
a separate `win32' subdirectory. Now IT++ should compile and link without
any warnings under MSVC++ compiler. Installation manual updated
accordingly.
* Fixed a minor bug in the RSC code test program. The generator polynomials
were initialised with a string using octal notation, which is not
supported by Vec<> parser yet.
* Added explicit check for a fortran compiler. If not found, BLAS, CBLAS and
LAPACK are not checked.
* Fixed a bug that caused unresolved erfc() function under MSVC++ .NET
compiler. The function definition is now outside namespace itpp.
* Fixed a minor problem with overloaded virtual function open() (itfile.h).
* Conversion from integer to std::string implemented in pure C++ by using
std::stringstream class (itassert.cpp).
* Fixed a minor problem with duplicated declaration of tgamma(), lgamma()
and cbrt() functions.
===============================================================================
IT++ version 3.10.3 Released: 2006-07-11
-------------------------------------------------------------------------------
This is a bug-fix release. Therefore, no new features have been added
since release 3.10.2. Only minor modifications and bug-fixes have been done.
Bug-fixes:
----------
* Fixed bug [1516976] by setting the threshold of round_to_zero() function
to 1e-13. Thanks to Rosario for reporting this bug.
* Fixed bug [1506524]. The `K' variable is now initialised in the
Convolutional_Code default constructor. Thanks to Hakan Eriksson for
finding this bug.
* Fixed a small problem with possible hazard in timing test.
===============================================================================
IT++ version 3.10.2 Released: 2006-05-15
-------------------------------------------------------------------------------
This is a bug-fix release. Therefore, no new features have been added
since release 3.10.1. Only minor modifications and bug-fixes have been done.
Bug-fixes:
----------
* Fixed gettimeofday() function definition for Windows based platforms
(MinGW, MSVC++). No need for MINGW definition any more.
* Added checks for `acosh', `asinh', `atanh', `lgamma' and `tgamma'
functions, and `signgam' declaration. This solves problems on some
platforms where these declaration and/or functions are not available.
* Fixed a problem with different line endings on Windows based platforms.
Now, sed program is necessary for performing tests.
* Fixed bug [1483125]. Now a complex dot product is properly returned by a
`dot' function when using ACML blas libraries. Thanks to Danilo Zanatta
for reporting this bug.
* Fixed bug [1480535]. Now needed_bits() returns a proper number of bits
required to represent integer `n', e.g. "needed_bits(0) = 1",
"needed_bits(7) = 3", "needed_bits(8) = 4".
* Fixed a small bug related to missing #include statement and cleaned up the
code of `itpp/itmex.h'.
* Fixed a bug in the `==' operator in `itpp/base/svec.h'. Thanks to Mattias
Andersson for discovering the bug.
* Fixed bug [1469860]. Now fir1() declaration matches its definition. Thanks
to Jordy Potman for reporting this bug.
* A few other minor bug-fixes. For a full list of them, please check the
ChangeLog file.
===============================================================================
IT++ version 3.10.1 Released: 2006-04-11
-------------------------------------------------------------------------------
This is a bug-fix release. Therefore, no new features have been added
since release 3.10.0. Only minor modifications and bug-fixes have been done.
Bug-fixes:
----------
* Fixed a bug caused by improper wrapping of backslash functions using
it_assert1() macro.
* Fixed bug [1468011], so AR_Filter now works when using a single
coefficient value, e.g. a = "0.5".
* Fixed improper behaviour of the encode_trunc() and decode_trunc()
functions. Now, each execution of these functions does not reset the
encoder and decoder states, so it can be used to perform continous
decoding process. An additional reset() function has been added to reset
the encoder and decoder states.
* Fixed lgamma() and gamma() functions definitions for MSVC++ .NET.
* Fixed a problem with a few Bessel functions provided by <cmath> under
MSVC++ .NET (different naming conventions).
* Fixed CBLAS interface when using ACML's BLAS implementation.
* Fixes in configuration scripts due to linking problems uder Cygwin.
* A few other minor bug-fixes. For a full list of them, please check the
ChangeLog file.
===============================================================================
IT++ version 3.10.0 Released: 2006-03-15
-------------------------------------------------------------------------------
This is a final release of the IT++ version 3.10.0. Here is a brief summary
of the new features, modifications and bug fixes since IT++ version 3.9.1
was released:
New features:
-------------
* Documentation improvements:
- added a list of features of IT++
- added first draft of how a Matlab/IT++ conversion table can look like;
more to be added later
- verification pages redesigned to include more information
* First version of the vector/MIMO modulator class added.
* Added support for creating RPM packages using the itpp.spec file.
* Added Newton search optimization routines (BFGS algorithm and
line-search). For matlab compatibility the fminunc() is implemented.
* Added IDCT implementation based on Intel MKL library.
* Added support for AMD Core Math Library (ACML): FFT/IFFT and DCT/IDCT.
* New Log-Likelihood Ratio (LLR) algebra class added.
* The turbo decoders can use table-lookup based computation of Jacobian
logarithm (set metric to "TABLE")
* New blackman() windowing function added.
* Added log() funtion for complex vectors and matrices.
* New modified_yulewalker(), arma_estimator() and yulewalk() filter design
functions added.
* New polyval() functions for vec and cvec input combinations added.
* Implemented sqrtm() function that calculates the matrix square root for
real and complex matrices. Based on Octave implementation.
* Implemented Schur decomposition functions for real and complex matrices
using LAPACK's DGEES and ZGEES routines.
Modifications:
--------------
* Changes in the configuration process. It is now possible to build and
install two separate libraries: an optimised `libitpp.*' and debug
`libitpp_debug.*'. The latter one is only build when `--enable-debug'
switch is used during configuration.
* Removed `--with-march' GCC-specific optimisation switch. CXXFLAGS should
be used instead.
* Removed limits_test, which was only useful on 32-bit platforms.
* Updated tutorial example programs and their description. Removed
unnecessary reference files for the tutorial programs.
* Matlab/Octave itload.m and itsave.m scripts are now installed in
$PREFIX/share/doc.
* Major redesign of the configuration scripts. The following things changed:
- checks for BLAS now detect MKL, ACML, ATLAS and reference (NetLib's)
BLAS implementations; if found, HAVE_BLAS is defined
- checks for LAPACK also detect MKL, ACML, ATLAS and reference LAPACK
library; if found, HAVE_LAPACK is defined
- checks for CBLAS detect MKL, ATLAS and reference implementation, however
CBLAS is fully optional; if found, HAVE_CBLAS is defined
- new checks for FFT: detects MKL or FFTW3 implementation; if found,
HAVE_FFT and either HAVE_FFTW3 or HAVE_FFT_MKL8 are defined
- new checks for <mkl_dfti.h> and <fftw3.h> header files provided by
external libraries; not using <itpp/base/fftw3.h> any more.
It is now possible to mix various implementation of BLAS, LAPACK and FFT
routines, e.g.:
- use MKL's BLAS, reference NetLib's LAPACK and FFTW3,
- use ACML for BLAS and LAPACK, reference NetLib's CBLAS and FFTW3.
* Statistical norm() functions revised - from now the implementation is
similar to the one in Octave, i.e. both vector- and matrix-based functions
accept "fro" argument to choose the Frobenius norm.
* Project files for MS Visual C++ .NET 2003/2005 updated and added.
* Windowing function moved from specmat.{h,cpp} to new files window.{h,cpp}.
Documentation improved by the way.
* Added zero-padding for fft_real() and ifft_real() functions.
Bug-fixes:
---------
* Fixed a bug in cblas library detection when using BLAS and CBLAS from IT++
External package on Cygwin.
* Fixed a bug in Makefile.common that caused that an improper
<itpp/config.h> header file was used during compilation.
* Small fix in the automatic MKL's LAPACK library detection. Now using
shared libraries `-lmkl_lapack32' and `-lmkl_lapack64' instead of a static
one by default.
* Small fix that solves MSVC++ .NET compilation problem (#include <ctime>)
* Fixed bug [1418707] by adding the FFTW_UNALIGNED option to the plan
creation flags, which allows a standard memory allocation of input and
output data. This temporary solution reduces performance on processors
that use SSE and SSE2 instructions.
* A lot of other minor bug-fixes. For a full list of them, please check the
ChangeLog file.