\(\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}} }\)
abs
AD Absolute Value Functions: abs, fabs
Syntax
abs
( x )fabs
( x )x, y
See the Possible Types for a unary standard math function.
Atomic
In the case where x is an AD type, this is an atomic operation .
Complex Types
The functions abs
and fabs
are not defined for the base types
std::complex<float>
or std::complex<double>
because the complex abs
function is not complex differentiable
(see complex types faq ).
Derivative
CppAD defines the derivative of the abs
function is
the sign function; i.e.,
The result for x == 0 used to be a directional derivative.
Example
The file fabs.cpp contains an example and test of this function.