// $Id: mainpage.txt 1123 2013-07-20 01:38:28Z jsibert $
\mainpage Comprehensive Documentation of Functions and Classes
\image html admb-logo-notext-72.png
Documentation of mathematical functions can be found on the
Partial documentation of some of the AUTODIF Library and ADMB classes can
found on the "Classes" tab. No class is
fully documented, but see class \ref dvector for an example of
how it might look.
This preliminary version of the API documentation is a work in progress.
If you would like ton contribute your expertize to the enterprize please
For up-to-date information and download and installation instructions
Comments on groupings
/** \defgroup matop Vector and Matrix Operations.
\details The syntax of ADMB Matrix and vector operations follows normal
mathematical conventions as much as possible. If \c u and \c v are
vectors and \c M is a matrix, \code u*M \endcode is a normal matrix
multiplication and \code u*v \endcode is a dot product.
Element-wise multiplications and divisions are accomplished by
\ref elem_prod and \ref elem_div respectively.
If the arguments to these operations are not conformable for the appropriate
type and operation, the application will exit with an error message.
These operations have been overloaded for appropriate combinations of
constant and variable objects.
The overloaded versions with variable
types are optimized for efficient derivative computation.
Only the constant types are currently documented here.
/** \defgroup PDF Probability Density Functions.
/** \defgroup RNG Random Numbers.
/** \defgroup misc "Helper" Functions
\details ADMB functions to perform common operations. These functions are
typically optimized for automatic differentiation and automatically
invoke custom adjoint code.
/** \defgroup prepros Preprosessor (tpl2cpp & tpl2rem)
\details Document "tpl2cpp" and "tpl2rem" as well as their output files (.cpp and .htp)
/** \defgroup DEVEL Development Utilities
\details ADMB functions of use to developers of ADMB code.
* \defgroup gammafunc Factorial, gamma and related functions.
* \defgroup eigen Eigenvalues and eigenvectors.
* \defgroup cub_spline Class and methods for cubic splines.
\defgroup RA RETURN_ARRAY_INCREMENT and RETURN_ARRAY_DECREMENT
These functions must be called in any function that returns
a "variable" object, ie dvariable, dvar_vector, ... Failure to do so
may generate an error message related to an overflow in the
RETURN_ARRAYS stack, or even worse cause derivatives to be incorrect.
\defgroup AD Classes for Automatic Differentiation.
The algorithms for AD in ADMB are invoked by declaring variables to be
instances of specific classes, usually of type dvariable. Operations on instances of these classes invoke specialized overloaded
operators and functions to the required computations and to automatically
compute the required deravitives.
/** \defgroup BAD Reverse mode Automatic Differentiation.
/** \defgroup FAD Forward mode Automatic Differentiation.
/** \defgroup CONTRIB User-Contributed Libraries.
Collections of C++ and source code for implementing specialized
models in ADMB. These modules are maintained by the original authors.
/** \defgroup STATLIB Statistical Fuctions.
\details Contributed by Steven Martell.
/** \defgroup ECOL Functions Useful in Ecology.
\details Contributed by Mollie Brooks.
/** \defgroup QFC Functions created at the Quantitative Fisheries Center(QFC), Michigan State University.
\details Contributed by Weihai Liu
/** \defgroup GDBPRINTLIB Dubugging aids.
\details Functions for printing ADMB objects during GDB sessions.
This functioniality was added to allow easy
viewing of ADMB variables of all types during a GDB debugging session, but
the functions can be used in code.
To use the functions in a GDB session, ADMB must have been built from source
in debug mode, typically using the command 'make debug'. Also, the model
TPL must have been compiled using the debug flag, typically using the command
'admb -g '.
Contributed by Chris Grandin and Dave Fournier
// generate dox for directories
/** \dir src
Main AUTODIF and ADMB source code directories.
/** \dir linad99
Home of \ref fvar.hpp and the source files for most of th AUTODIF library.
/** \dir nh99
Source files for ADMB
/** \dir df1b2-separable
Source files for random effects models.
/** \dir tools99
Source files for "tools" such as the \ref cifstream and \ref adstring classes.
/** \dir sparse
Sparse matrix routines used for some special random effects models.
/** \dir contrib
Houses the contributed libraries
/** \dir ecolib
Source code for ECOL Functions Useful in Ecology;
contributed by Mollie Brooks.
/** \dir qfclib
QFC Functions created at the Quantitative Fisheries Center(QFC),
Michigan State University; Contributed by Weihai Liu.
/** \dir statslib
STATLIB Statistical Fuctions; contributed by Steven Martell.