// $Id: mainpage.txt 1615 2014-02-07 00:24:51Z jsibert $
/**
 \mainpage Comprehensive Documentation of Functions and Classes
<br><center>
\image html admb-logo-notext-72.png
</center><br>

<B>
<ul>
  <li> Documentation of mathematical functions can be found in the 
"Function Reference" tab.</li>
  <li> C++ class documentation can be found in the "Classes" tab. </li>
  <li> Documentation for global funtions and source code listings can be found in the "Source Code" tab. </li>
  <li> The "Related Pages" tab contains a list of deprecated code and is under construction. </li>
</ul>
</B>

<br>
<br>
This version of the API documentation is a work in progress.
Partial documentation of some of the AUTODIF Library and ADMB classes can
found on the "Classes" and "Source Code" tabs. Most classes are not
fully documented, but see class \ref dvector for an example of 
how it might look.
If you would like to contribute your expertize to the enterprize please 
contact developers@admb-project.org.

<HR width="20%" align=center>
<center>
<H3>
For up-to-date information and download and installation instructions
consult the 
<a href="http://www.admb-project.org/buildbot/documentation/INSTALL.html">Installation Guide</a>.
</H3>
</center>

*/

/*
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 
   \details
  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 FMM Numerical Function Minimization
*/

/**
  \defgroup AD Classes for Automatic Differentiation.
   \details
   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.
    \ingroup AD
*/

/** \defgroup FAD Forward mode Automatic Differentiation.
     \ingroup AD
*/

/** \defgroup CONTRIB User-Contributed Libraries.
    \details 
     Collections of C++ and source code for implementing specialized
     models in ADMB. These modules are maintained by the original authors.
*/

/** \defgroup STATLIB Statistical Fuctions.
    \ingroup CONTRIB
    \details Contributed by Steven Martell.
*/

/** \defgroup ECOL Functions Useful in Ecology.
    \ingroup CONTRIB
    \details Contributed by Mollie Brooks.
*/

/** \defgroup QFC Functions created at the Quantitative Fisheries Center(QFC), Michigan State University.
 
    \ingroup CONTRIB
    \details Contributed by Weihai Liu
*/

/** \defgroup  GDBPRINTLIB Dubugging aids.
    \ingroup CONTRIB
    \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.
*/

