\(\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¶
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.