\(\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}} }\)
pow¶
View page sourceThe AD Power Function¶
Syntax¶
pow
( x , y )See Also¶
Purpose¶
Determines the value of the power function which is defined by
If y is a Variable¶
If y is a variable,
the pow
function may use
logarithms and exponentiation to compute derivatives.
This will not work if x is less than or equal zero.
If y is a Parameter¶
If y is a parameter, a different method is used to compute the derivatives; see pow_forward . In the special case where x is zero, zero is returned as the derivative. This is correct when y minus the order of the derivative is greater than zero. If y minus the order of the derivative is zero, then y is an integer. If y minus the order of the derivative is less than zero, the actual derivative is infinite.
If y is an Integer¶
If the value of y is an integer, the pow_int function can be used to compute this value using only multiplication (and division if y is negative). This will work even if x is less than or equal zero.
x¶
The argument x has one of the following prototypes
const
Base & xconst AD
< Base >& xconst VecAD
< Base >:: reference&
xy¶
The argument y has one of the following prototypes
const
Base & yconst AD
< Base >& yconst VecAD
< Base >:: reference&
yz¶
If both x and y are Base objects, the result z is also a Base object. Otherwise, it has prototype
AD
< Base > z
Operation Sequence¶
This is an AD of Base atomic operation and hence is part of the current AD of Base operation sequence .
Example¶
The files pow.cpp and pow_nan.cpp are examples tests of this function.