lines 8-61 of file: include/cppad/core/atomic/two/afun.hpp

{xrst_begin atomic_two_afun app}

Using AD Version of Atomic Function
###################################

Syntax
******
*afun* ( *ax* , *ay* )

Purpose
*******
Given *ax* ,
this call computes the corresponding value of *ay* .
If ``AD`` < *Base* > operations are being recorded,
it enters the computation as an atomic operation in the recording;
see :ref:`Independent@Start Recording` .

ADVector
********
The type *ADVector* must be a
:ref:`simple vector class<SimpleVector-name>` with elements of type
``AD`` < *Base* > ; see :ref:`atomic_two_ctor@atomic_base@Base` .

afun
****
is a :ref:`atomic_two_ctor@atomic_user` object
and this *afun* function call is implemented by the
:ref:`atomic<atomic_two_ctor@atomic_base>` class.

ax
**
This argument has prototype

   ``const`` *ADVector* & *ax*

and size must be equal to *n* .
It specifies vector :math:`x \in \B{R}^n`
at which an ``AD`` < *Base* > version of
:math:`y = f(x)` is to be evaluated; see
:ref:`atomic_two_ctor@atomic_base@Base` .

ay
**
This argument has prototype

   *ADVector* & *ay*

and size must be equal to *m* .
The input values of its elements
are not specified (must not matter).
Upon return, it is an ``AD`` < *Base* > version of
:math:`y = f(x)`.

{xrst_end atomic_two_afun}
