\(\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¶
View page sourceUsing 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)\).