Skip to content
/ ADOL-C Public
forked from coin-or/ADOL-C

A Package for Automatic Differentiation of Algorithms Written in C/C++

License

Notifications You must be signed in to change notification settings

petsc/ADOL-C

 
 

Repository files navigation

     ADOL-C

This new version of ADOL-C features new library functions for

  - sparse Jacobians and sparse Hessians
  - external differentiated functions
  - optimal checkpointing
  - adapted differentiation of fixed point iterations
  - parallel differentiation of OpenMP-parallel loops
  - Lie derivatives of scalar, vector and covector fields

and many bug fixes.

Furthermore the source code was adapted to allow a compilation with
WINDOWS compilers. See file "INSTALL" for generic installation
instructions and special instructions for the installation on a WINDOWS
platform.

The complete documentation can be found in the subdirectory "doc".



LOCAL INSTALLATION
==================

1. Type autoreconf -fi

2. Run configure with possibly using one of these options:

  --prefix=PREFIX         install library and header files in PREFIX
                          (default: ${HOME}/adolc_base)
 
  --enable-sparse           build sparse drivers [default=no]

  --with-openmp-flag=FLAG use FLAG to enable OpenMP at compile time
                          [default=none]

  --enable-docexa           build documented examples [default=no]
  --enable-addexa           build additional examples [default=no]
  --enable-parexa           build parallel example [default=no], if yes
                          -with-openmp-flag=FLAG required

  --with-cflags=FLAGS     use CFLAGS=FLAGS (default: -g -O2)
  --with-cxxflags=FLAGS   use CXXFLAGS=FLAGS (default: -g -02 -std=c++11)

  --with-boost=BOOST_PATH path to the compiled boost library, otherwise
                          the system one is chosen by default (if exists)

3. Type make 

4. Type make install

   By default, `make install' will install all the files in ${PREFIX}/lib and
   ${PREFIX}/include. You can specify another installation directory by using
   the --prefix-option in the configure call.

This procedure provides all makefiles required in the approporate directories.
Execute 'configure --help' for more details on other available option.



Nonlocal installation
=====================

As mentioned in INSTALL one can configure the adolc package to be installed
in a different directory than "${HOME}/adolc_base" by using the "--prefix=PATH"
configure option. This is typically used for global installations. Common PATHs
are "/usr" and "/usr/local/", and others are known to be used. Fine control
over the installation directories can be gained by supplying additional
configure options. See "./configure --help" for details.

Completing the installation by executing "make install" requires write
permissions for all target directories. Make sure to have them or the result
may be surprising otherwise.

A global installation can be helpfull if many users need the library. By adding
the library's path to "/etc/ld.so.conf" the usage of LD_LIBRARY_PATH and the
"-L" link switch becomes unnecessary. In many cases, for instance for
PATH=/usr/local, the use of the -I directive for compiling sources becomes
unnecessary too.



Examples
========

Examples must be configured to build by using the configure switches
   --enable-docexa or --enable-addexa.
They will never be installed by make install but can be found in the
appropriate example subdirectory.


Windows Compilation with MINGW
==============================

Please refer to INSTALL

Windows Compilation with Visual Studio
======================================

Please refer to the file windows/Readme_VC++.txt for building the library and
ADOL-C/examples/Readme_VC++.txt for the documented examples.



Unit tests
==========

ADOL-C provides more than 400 unit tests to verify its basic functionality.
For more information how to run the tests, please check the README file in ADOL-C/boost-test directory.

Enjoy this new version!

About

A Package for Automatic Differentiation of Algorithms Written in C/C++

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 38.2%
  • C 23.6%
  • Makefile 19.8%
  • Shell 8.6%
  • TeX 5.9%
  • SWIG 1.9%
  • Other 2.0%