# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
# SPDX-FileCopyrightText: Bradley M. Bell <bradbell@seanet.com>
# SPDX-FileContributor: 2003-24 Bradley M. Bell
# ----------------------------------------------------------------------------
{xrst_begin cppad_testvector}
{xrst_spell
   ublas
}

Choosing the CppAD Test Vector Template Class
#############################################

Syntax
******
| ``CPPAD_TESTVECTOR`` ( *Scalar* ) *vec*

Example Simple Vector
*********************
The value *cppad_testvector*
in the :ref:`cmake@CMake Command` must be one of the
following:
``boost`` , ``cppad`` , ``eigen`` , or ``std`` .
It specifies which :ref:`simplevector-name`
corresponds to the template class
:ref:`CPPAD_TESTVECTOR<testvector-name>`
which is used for many of the CppAD examples and tests.

std
***
If *cppad_testvector* is *std* ,
the ``std::vector`` template class is used to define
``CPPAD_TESTVECTOR`` .

cppad
*****
If *cppad_testvector* is *cppad* ,
the :ref:`cppad_vector-name` template class is used to define
``CPPAD_TESTVECTOR`` .

boost
*****
If *cppad_testvector* is *boost* ,
`boost ublas vector <https://www.boost.org/doc/libs/1_52_0/libs/numeric/ublas/doc/vector.htm>`_
template class is used to define
``CPPAD_TESTVECTOR`` .
In this case, the
`cmake FindBoost <https://cmake.org//cmake/help/cmake2.6docs.html#module:FindBoost>`_
module must be able to automatically figure out where Boost is installed.

eigen
*****
If *cppad_testvector* is *eigen* ,
one of the eigen template classes is used to define
``CPPAD_TESTVECTOR`` .
In this case,
:ref:`cmake@Eigen` must be found and c++14 must be supported.

{xrst_end cppad_testvector}
