Prev | Next | atomic_two_ctor |
atomic_user afun(ctor_arg_list)
atomic_base<Base>(name, sparsity)
atomic_user
constructor.
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
.
atomic_user
class is a publicly derived class of
atomic_base<Base>
.
It should be declared as follows:
class atomic_user : public CppAD::atomic_base<Base> {
public:
atomic_user(ctor_arg_list) : atomic_base<Base>(name, sparsity)
...
};
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_base
implementations replaced by
atomic_user
implementations.
atomic_base
constructor and destructor cannot be called in
parallel
mode.
Base
type for this
AD<Base>
atomic operation.
atomic_base
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.
atomic_base
constructor argument has prototype
atomic_base<Base>::option_enum sparsity
The current
sparsity
for an atomic_base
object
determines which type of sparsity patterns it uses
and its value is one of the following:
sparsity
| sparsity patterns |
atomic_base<Base>::pack_sparsity_enum
| vectorBool |
atomic_base<Base>::bool_sparsity_enum
|
vector
<bool>
|
atomic_base<Base>::set_sparsity_enum
|
vector
<std::set<std::size_t> >
|
sparsity
if it is not
included in the constructor (which may be either the bool or set option).