lines 8-86 of file: include/cppad/core/chkpoint_two/ctor.hpp

{xrst_begin chkpoint_two_ctor}
{xrst_spell
   chk
   destructed
}

Checkpoint Function Constructor
###############################

Syntax
******

| ``chkpoint_two`` < *Base* > *chk_fun* ( *fun* , *name* ,
| |tab| *internal_bool* , *use_hes_sparsity* , *use_base2ad* , *use_in_parallel*
| )

Prototype
*********
{xrst_literal
   // BEGIN_PROTOTYPE
   // END_PROTOTYPE
}

Parallel
********
This constructor, and its corresponding destructor, must not be called in
:ref:`parallel<ta_in_parallel-name>` mode.
The object *chk_fun* should not be destructed for as long as there is
an ``ADFun`` < *Base* > object the has *chk_fun* in its recording.

Base
****
The type *Base* specifies the base type for AD operations.

fun
***
This specifies the function :math:`g(x)`.
Note that *fun* may or may not have been
:ref:`optimized<optimize-name>` before calling the constructor.
This will determine if the internal representation for *g* ( *x* )
is optimized.

name
****
is the name used for reporting errors using this checkpoint function.

internal_bool
*************
If true, sparsity calculations are done with sets represented
by vectors of boolean values.
Otherwise, vectors of sets are used for sparsity patterns.

use_hes_sparsity
****************
If true, Hessian sparsity patterns can be calculated for
``ADFun`` < *Base* > objects that have uses of *chk_fun*
in their recording.
This requires some extra memory and extra computation during the constructor.

use_base2ad
***********
If this is true, *chk_fun* can be used during the recording
of ``ADFun`` < *Base* > objects that get converted to
``ADFun< AD<`` *Base* > > objects using :ref:`base2ad-name` .
This requires some extra memory and extra computation during the constructor.

use_in_parallel
***************
If this is true, *chk_fun* can be used
:ref:`ta_parallel_setup@in_parallel` .
This requires some extra memory for a constant copy of the *fun*
information and a separate copy (that changes) for each thread.

chk_fun
*******
This is a checkpoint function representation of :math:`g(x)`
that can be used during the recording of ``AD`` < *Base* > operations.

{xrst_end chkpoint_two_ctor}
