abs

View page source

AD Absolute Value Functions: abs, fabs

Syntax

y = abs ( x )
y = 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.,

\[\begin{split}{\rm abs}^{(1)} ( x ) = {\rm sign} (x ) = \left\{ \begin{array}{rl} +1 & {\rm if} \; x > 0 \\ 0 & {\rm if} \; x = 0 \\ -1 & {\rm if} \; x < 0 \end{array} \right.\end{split}\]

The result for x == 0 used to be a directional derivative.

Example

The file fabs.cpp contains an example and test of this function.