\(\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}} }\)
atomic_three_afun
Using AD Version of an Atomic Function
Syntax
Prototype
template <class Base>
template <class ADVector>
void atomic_three<Base>::operator()(
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 type of the elements of ax and ay
in the call to the afun atomic operation.
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_three class.
ax
This argument has prototype
const
ADVector & ax
and size must be equal to n .
It specifies vector \(x \in \B{R}^n\)
at which an AD
< Base > version of
\(y = g(x)\) is to be evaluated; see
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
\(y = g(x)\).