Prev | Next |

@(@\newcommand{\B}[1]{{\bf #1}} \newcommand{\R}[1]{{\rm #1}}@)@

Syntax

Purpose

x

y

Derivative

Directional Derivative

Example

*y* = abs(*x*)

Sets

*y*

equal to the absolute value of @(@
x
@)@.
The argument

*x*

can be an instance of `float`

,
an `a_float`

, an `a2float`

, or an `numpy.array`

of such objects.
If

*x*

is an instance of `float`

,
*y*

will also be an instance of
*float*

.
Otherwise
*y*

will have the same type as
*x*

.

In the case where
*x*

is an array,
*y*

will
the same shape as
*x*

and the elements of
*y*

will have the same type as the elements of
*x*

.
pycppad defines the derivative of the absolute value function by @[@ \R{abs}^{(1)} (x) = \R{sign} (x) = \left\{ \begin{array}{ll} 1 & \R{if} \; x > 0 \\ 0 & \R{if} \; x = 0 \\ -1 & \R{if} \; x < 0 \end{array} \right. @]@

Prior to 2011-12-30 , forward mode computed the directional derivative of the absolute value function which is defined by @[@ \R{abs}^\circ ( x , d ) = \lim_{\lambda \downarrow 0 } \frac{\R{abs}(x + \lambda d) - \R{abs}(x) }{ \lambda } @]@ For @(@ x \neq 0 @)@, @[@ \R{abs}^\circ ( x , d ) = \R{abs}^{(1)} ( x ) * d @]@ and @(@ \R{abs}^\circ (0 , d) = |d| @)@.

The file abs.py contains an example and test of this function.

Input File: pycppad/pycppad.cpp