Prev Next atomic_four_call

@(@\newcommand{\W}[1]{ \; #1 \; } \newcommand{\R}[1]{ {\rm #1} } \newcommand{\B}[1]{ {\bf #1} } \newcommand{\D}[2]{ \frac{\partial #1}{\partial #2} } \newcommand{\DD}[3]{ \frac{\partial^2 #1}{\partial #2 \partial #3} } \newcommand{\Dpow}[2]{ \frac{\partial^{#1}}{\partial {#2}^{#1}} } \newcommand{\dpow}[2]{ \frac{ {\rm d}^{#1}}{{\rm d}\, {#2}^{#1}} }@)@This is cppad-20221105 documentation. Here is a link to its current documentation .
Calling an Atomic Function

Syntax
afun(axay)
ay = afun(call_idaxay)

Prototype

template <class Base> template <class ADVector>
void atomic_four<Base>::operator()(
    size_t           call_id ,
    const ADVector&  ax      ,
    ADVector&        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 start recording .

Base
This is the Base in the afun constructor. It is also the Base type of the elements of ax and ay in the atomic function call. To be specific, the elements of ax and ay have type AD<Base> .

ADVector
The type ADVector must be a simple vector class with elements of type AD<Base> .

afun
is a atomic_user object and this afun function call is implemented by the atomic_four class.

ax
The size of this vector determines n . It specifies vector @(@ x \in \B{R}^n @)@ at which an AD<Base> version of @(@ y = g(x) @)@ is to be evaluated.

ay
The size of this vector determines m . The input values of its elements are not specified (must not matter). Upon return, it is an AD<Base> version of @(@ y = g(x) @)@.

call_id
This optional argument has default value zero. It can be used to specify additional information about this call to afun . For example, it could specify the index in vector of structures in the afun object where the actual information is placed.

for_type
The for_type routine will be called once, for each call to an atomic function, before any other callbacks corresponding to the atomic function call. This enables you to store, during the for_type routine, the values in type_x and or type_y corresponding to this atomic function call.

Restriction
The value of call_id must be less than or equal
    std::numeric_limits<
cppad_tape_id_type>::max()
see cppad_tape_id_type .
Input File: include/cppad/core/atomic/four/call.hpp