Prev Next atomic_three_ctor

@(@\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 .
Atomic Function Constructor

Syntax
class atomic_user : public CppAD::atomic_three<Base> {
public:
    
atomic_user(ctor_arg_list) : CppAD::atomic_three<Base>(name)
    
...
};
atomic_user afun(ctor_arg_list)

Prototype


template <class Base>
atomic_three<Base>::atomic_three(const std::string& name )

atomic_user

ctor_arg_list
Is a list of arguments for the atomic_user constructor.

afun
The object afun must stay in scope for as long as the corresponding atomic function is used. This includes use by any ADFun<Base> that has this atomic_user operation in its operation sequence .

Implementation
The user defined atomic_user class is a publicly derived class of atomic_three<Base> . It should be declared as follows:
    class 
atomic_user : public CppAD::atomic_three<Base> {
    public:
        
atomic_user(ctor_arg_list) : atomic_three<Base>(name)
    
...
    };
where ... denotes the rest of the implementation of the derived class. This includes completing the constructor and all the virtual functions that have their atomic_three implementations replaced by atomic_user implementations.

atomic_three

Restrictions
The atomic_three constructor and destructor cannot be called in parallel mode.

Base
The template parameter determines the Base type for this AD<Base> atomic operation.

name
This atomic_three constructor argument has the following prototype
    const std::string& 
name
It is the name for this atomic function and is used for error reporting. The suggested value for name is afun or atomic_user , i.e., the name of the corresponding atomic object or class.

Example

Define Constructor
The following is an example of a atomic function constructor definition: get_started.cpp .

Use Constructor
The following is an example using a atomic function constructor: get_started.cpp .
Input File: include/cppad/core/atomic/three/ctor.hpp