Profile cover photo
Profile photo
Automatic Differentiation by OverLoading in C++
Automatic Differentiation by OverLoading in C++


Post has attachment
We now have an experimental interface to the ADOL-C library from the R language. Anyone interested check out the swig branch on

Also as an offshoot there is an alternative to pyadolc available too.

For more information contact us on the mailing list.
Add a comment...

Just before the holiday season in December 2015 we released the latest version 2.6.0 of ADOL-C. Here are afew highlight changes since version 2.5.2:

* Drivers for Lie-Derivatives (by Mirko Franke).
* New extended interface for external functions, which may be used to interface to source transformation tools. Previous interface remains intact too.
* Driver to compute the abs-normal form of piecewise smooth functions.
* Mechanism to compute sparsity pattern of abs-normal form.
* Interface to define passive parameters that can be changed before each trace interpretation. Major use case is Lagrange Multipliers.
* Interface to AdjoinableMPI improved and debugged.
* ADOL-C now uses boost (>= 1.54) for increased execution speed if detected during build.
* ADOL-C and all applications must be compiled using a C++11 compiler.
* Many, many odd and sundry bugfixes.
Add a comment...

We have released a new ADOL-C bugfix release version 2.5.2. This fixes a rather serious bug in hess_mat() and hessian2() along with some cosmetic changes.
Add a comment...

since a large number of fixes have been committed since the last release in February, we have now released a bugfix only release version 2.5.1.

- Lots of hidden and longstanding bugs have been fixed.
- Compatibility with clang/clang++ compilers established.
- Compatibility with recent versions of pyadolc established.

The new version is now available in all the usual places.
Add a comment...

We are pleased to announce the release of ADOL-C version 2.5.0. The source code is available from the SVN repository on COIN-OR in the releases/2.5.0 subdirectory. The tarballs should be available on the COIN-OR download server by tomorrow. (For those using git, the appropriate commit in master has been tagged too).

The major features in this release are:
* An overhaul of the internal memory management to make it
  more efficient
* Support for the AdjoinableMPI API (thanks to Jean Utke)
* Overhaul of the external functions interface (thanks to Jean Utke)
* Support for piecewise linearizations of piecewise smooth functions
* Support for pkg-config (thanks to Oliver Sander)
* Computations on the NVIDIA-GPU in forward mode using CUDA
* Overhaul of the traceless forward mode.
* Support for sparsity in traceless forward mode.
* Fixes in higher order tensor propagation
* Fix a function name conflict
     address() -> tensor_address()
* Various other small misceleneous fixes

The diffstat since version 2.4.1 shows
145 files changed, 29303 insertions(+), 19383 deletions(-)
Add a comment...

Post has attachment

Post has attachment

We have released version 2.4.1 in order to fix debian bug #700937. No other code changes since 2.4.0

Thanks to Barak A. Perlmutter for reporting.
Add a comment...

Almost a year after the last release, here is ADOL-C 2.4.0. Checkout the homepage and update. A special thanks to Jean Utke for his help.

New features include:
- a new class advector allowing various branching operations without the need for retracing. Some of these include computed indices, table lookups, piecewise functions, permutations of variables etc. This also introduces an internal class adubref, representing active temporary references to the elements of an advector.
- a new faster algorithm for detecting hessian sparsity patterns in nonl_ind_forward_. The old algorithm can still be used by calling nonl_ind_old_forward_
- a completely revamped interface for externally differentiated functions. These allow you to specify parts of the differentiable function and its derivatives with custom code.
- an enhancement in the internal memory manager to allow for contiguous location numbers. Also a new function ensureContiguousLocations(size_t) that one should call before allocating adoubles that need to have contiguous locations. This is the case e.g. during checkpointing and externally differentiated functions, as well as indexing operations on advectors.
- some improvements in configurability by adding new flags to ./configure
- new functionality "advanced branching" (disabled by default) that helps reduce retracing in code with branching operations by disabling passive comparison operations. If-then-else structures need to be rewritten differently using condassigns or selections on advectors. This is especially useful for people who are writing new code and are worried about branching and retracing.
- restructured source tree to separate user-interface headers from sources and internal headers.
- many more small bugfixes
Add a comment...

Post has attachment
Wait while more posts are being loaded