# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
# SPDX-FileCopyrightText: Bradley M. Bell <bradbell@seanet.com>
# SPDX-FileContributor: 2003-22 Bradley M. Bell
# ----------------------------------------------------------------------------
{xrst_begin addon app}
{xrst_spell
   adcomp
   cg
   includedir
   laplace
   libcppad
   libdir
   perl
   py
   pycppad
   tmb
}

CppAD Addons
############

Name
****
Each CppAD addon has a short name which we denote by *name* below,
a longer name *longer* and a *description* :

.. list-table::
   :widths: auto

   * - *name*
     - *longer*
     - *description*
   * - `tmb <https://github.com/kaskr/adcomp>`_
     - ``adcomp``
     - An R Interface to CppAD with Random Effects Modeling Utilities
   * - `cg <https://github.com/joaoleal/CppADCodeGen/>`_
     - ``CppADCodeGen``
     - C++ Source Code Generation of CppAD Derivative Calculations
   * - `mixed <https://bradbell.github.io/cppad_mixed>`_
     - ``cppad_mixed``
     - A C++ Interface to Random Effects Laplace Approximation
   * - `swig <https://bradbell.github.io/cppad_swig>`_
     - ``cppad_swig``
     - A C++ AD Library with a Swig Interface to Perl, Octave, and Python
   * - `cppad_py <https://bradbell.github.io/cppad_py>`_
     - ``cppad_py``
     - A Python Interface to CppAD
   * - `pycppad <http://www.seanet.com/~bradbell/pycppad/pycppad.htm>`_
     - ``pycppad``
     - A Python Interface to CppAD (no longer being developed)

Include Files
*************
If *includedir* is the directory where the include files are installed,
the file

   *includedir* / ``include/cppad/`` *name* . ``hpp``

and the directory

   *includedir* / ``include/cppad/`` *name*

are reserved for use by the *name* addon.

Library Files
*************
If *libdir* is the directory where CppAD library files are installed,
files with the name

| |tab| *libdir* / ``libcppad_`` *name* . *ext*
| |tab| *libdir* / ``libcppad_`` *name* _ *anything* . *ext*

where *anything* and *ext* are arbitrary,
are reserved for use by the *name* addon.

Preprocessor Symbols
********************
C++ preprocessor symbols that begin with

   ``CPPAD_`` *NAME* _

where *NAME* is a upper-case version of *name* ,
are reserved for use by the *name* addon.

Namespace
*********
The C++ namespace

   ``CppAD::`` *name*

is reserved for use by the *name* addon.

{xrst_end addon}
