\(\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}} }\)
base_identical¶
View page sourceBase Type Requirements for Identically Equal Comparisons¶
EqualOpSeq¶
If function EqualOpSeq is used with
arguments of type AD
< Base > ,
the type Base must support the syntax
b =
CppAD::EqualOpSeq
( u , v )
This should return true if and only if u is identically equal to v and it makes no different which one is used. The arguments u and v have prototype
const
Base & uconst
Base & vThe return value b has prototype
bool
b
The Simple Case¶
If Base is a relatively simple type,
the EqualOpSeq
function can be defined by
namespace CppAD
{inline
Base EqualOpSeq
( const
Base & u
, const
Base & v
)return u
== v
; }For example, see base_alloc .
More Complicated Case¶
The variables u and v are not identically equal in the following case:
The type Base is
AD<double>
.The following assignment made using type Base : x [0] = x [1] = 1. ,
The Independent operations is used to make x the independent variable vector,
During the corresponding recording, u = x [0] , v = x [1] .
Note that during a future Forward calculation, u and v could correspond to different values. For example, see adolc EqualOpSeq .
Identical¶
IdenticalCon¶
A Base object is a
Constant parameter
when used in an AD
< Base > operation sequence.
It is however still possible for a parameter to change its value; e.g.,
see the more complicated case above.
Prototypes¶
The argument u has prototype
const
Base u
If it is present, the argument v has prototype
const
Base v
The result b has prototype
bool
b
Identical Functions¶
The type Base must support the following functions (in the CppAD namespace):
Syntax |
Result |
b = |
the Base value will always be the same |
b = |
u equals zero and |
b = |
u equals one and |
b = |
u equals v ,
|
Examples¶
See base_alloc .