All notable changes to PNL will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Remove the full tensor representation of
PnlBasis
and only use the sparse tensor (#9).
- Fix unpacking of sparse matrices.
- Apply optional non-linear pre-treatment to the data before renormalisation in
PnlBasis
(#8).
- Remove internal C translation of Blas & Lapack.
- Improve basis memory management (#7).
- Fix packing/unpacking of
PnlBasis
objects.
pnl_mat_fprint
was printing tostdout
instead of the file descriptor.
- Add missing documentation on local bases.
- Add tests for basis tensor constructors.
- For the sake of consistency, the constructors
pnl_basis_create_local
andpnl_basis_create_local_regular
are renamed topnl_basis_local_create
andpnl_basis_local_create_regular
. - The function
pnl_basis_i
is not markedinline
anymore. - In functions to compute a basis derivative, first check that
Df
is notNULL
. - Prevent standard
PnlBasis
constructors to be used to create a local basis (typePNL_BASIS_LOCAL
). - Refactor
PnlBasis
tensor constructors to drop the recursive and copy approach.
- Add missing definitions for Windows in
pnl.def
.
- Add local bases (#5)
- The macros
RETRIEVE
andCREATE
are prefixed withPNL_RAND
. This is a breaking change. - Add
PNL_
prefix toFALSE
,TRUE
,OK
andFAIL
. This is a breaking change.
- Add
pnl_mat_print_csv
to print a matrix in a csv format.
- Add missing libwinpthread-1.dll to post_build event
- Add missing libwinpthread-1.dll to Windows binaries
- Fix libgfortran version for Windows binary release
- Fix README typos
- Add missing exports to pnl.def
- Fix strcasecmp not available on MSVC
- Fix PNL_RANGE_CHECK_OFF in Release mode
- Add new functions for sparse matrices
- Add pnl_vect_set_subblock
- Add FFT api with work spaces
- Fix memory corruption in LECUYER random number generator.
- Set
mem_size
field to 0 in_free
methods.
- Fix compilation error with Glibc 2.27 (missing symbols in
math.h
)
- Fix wrong release number
- Fix compilation error with Glibc 2.27 (missing symbols in
math.h
) - Fix initialization of Mersenne Twister random generator with random seed.
- Fix access to global variables under Windows. This was causing a segfault in
random_test
.
- Add
BUILD_SHARED_LIBS
as a CMake option to set the type of library to build. Default value inON
. When set toOFF
, PNL is built as a static library.
- Add option
PNL_ENABLE_TESTS=OFF
to CMake to disable tests. Default value is sON
.
- Update the
CMakeuser.incl
mechanism. - Update some installation path to be more consistent with Linux standards:
CMakeuser.incl
is installed to<prefix>/share/pnl
,PnlConfig.cmake
is installed to<prefix>/lib/cmake/pnl/
.
- Fix minor bugs in
pnl_sp_mat_isequal
andmtherr
. - Fix some compilation warnings in
LP_Solve
.
- Read sparse matrices from file.
- Update read functions to deal with comments.
- Add floating point comparison functions for vectors and matrices.
- Add a linear programming routine based on the Simplex implementation of LP_Solve.
- Fix a few bugs.
- Improve CMake's integration for Visual Studio.
- The binary version pnl-win64-1.7.5 is compatible with Visual Studio up to VS2013 but not with VS2015. If you use VS2015, download the source files and compile them yourself.
- Fix minor bugs.
- Provide a
PnlConfig.cmake
file to use CMakefind_package
command in config mode. - Enable in-place
MPI
reductions ofPNLObject
s.
- Improve the efficiency of creating and evaluating
PnlBasis
objects.
- Fix compiling errors in the examples under MSVC.
- Add non tensor functions to
PnlBasis
objects. - Add Complex error functions based on the
Faddeeva
package.
- A CMake module to include the library in other projects.
- The non central chi squared distribution to the random number generation toolbox.
- Improves and fixes a bug in the pnl_basis module.
- Minor fixes in the examples
- Improvement of the inline facility detection in CMake. This fixes a bug of the 1.7.0 under Windows.
- Random number generation. All methods know how to handle QMC generators. Three new distributions have been added: log-normal, inverse gaussian and asymmetric double exponential distributions.
- Linear Algebra. Computations of the logarithm and exponential of complex matrices. Sparse matrix object.
- Optimization. Newton's algorithm with Armijo line search.
- Three new distributions are added: log-normal, inverse gaussian and asymmetric double exponential distributions.
- The evaluation of a multivariate polynomial is greatly improved thanks to the use of sparse storage of these objects. This new implementation relies on sparse matrices.
- The internal structure of the top level object is modified to keep track of the number references on to a given object, which has enabled us to improve by a great deal the memory management of lists and arrays.
- Add a few functions for rounding (some are part of C99).
- Improve Blas & Lapack detection on Mac OS X.
- Fix a minor bug in two dimensional FFT.
- The compilation chain has moved from the
Autotools
to CMake.
MPI_Reduce
binding forPnlVect
andPnlMat
objects.- 2D FFT.
- The user can define new function bases and register them for further usage as native bases.
- The PnlObject structure has three new function members: clone, copy, new. It is mainly useful for inheritance purposes.
- Linear solver using a QR decomposition with column pivoting
- Inverse of permutations and its application in place
- Approximations for inverse hyperbolic functions (part of C99 but missing under Visual)
- Most macros are renamed with a pnl_ prefix to avoid name clashes
- New functions to extract data from Hmatrices as vectors or matrices
- New PnlArray type: array of PnlObjects. It is often a good alternative to using Hmatrices.
- Redesign of how Hmatrices are stored in memory
- A bug in
pnl_mat_{lower,upper}_syslin
has been fixed
- Runge Kutta Fehler 45 integrator for n dimensional ODEs
- LU decomposition of tridiagonal matrices
- Cholesky factorization with complete pivoting for positive semidefinite matrices
- New threadsafe Sobol generators (from John Burkardt)
- Design of a new unit test framework
- New organisation of the manual
- Update Lapack to version 3.2.1
- Integration of the Mersenne Twister Dynamic Creator version 0.6.1
- Generation of Bessel random variables
- A generator for parallel computing (MPI) is added : Dynamic created Mersenne Twister
- Sparse polynomial bases based on hyperbolic sets of indices. Bases can be centered and normalized.
- Save/Load interface based on MPI Pack/Unpack
- Random number generators become thread-safe.
- Bindings for MPI
- Update of random number generators to work on 64-bit machines