CppAD: A C++ Algorithmic Differentiation Package
20171217
|
|
inline |
Multiple directions forward mode Taylor coefficients for op = PowpvOp.
The C++ source code corresponding to this operation is
z = pow(x, y)
In the documentation below, this operations is for the case where x is a parameter and y is a variable.
Base | base type for the operator; i.e., this operation was recorded using AD< Base > and computations by this routine are done using type Base. |
q | order of the Taylor coefficient that we are computing. |
r | is the number of Taylor coefficient directions that we are computing |
i_z | variable index corresponding to the last (primary) result for this operation; i.e. the row index in taylor corresponding to z. Note that there are three results for this operation, below they are referred to as z_0, z_1, z_2 and correspond to z_0 = log(x) z_1 = z0 * y z_2 = exp(z1)It follows that the final result is equal to z; i.e., z = z_2 = pow(x, y). |
arg | arg[0] index corresponding to the left operand for this operator; i.e. the index corresponding to x. arg[1] index corresponding to the right operand for this operator; i.e. the index corresponding to y. |
parameter | If x is a parameter, parameter [ arg[0] ] is the value corresponding to x. If y is a parameter, parameter [ arg[1] ] is the value corresponding to y. |
cap_order | maximum number of orders that will fit in the taylor array. |
tpv = (cap_order-1) * r + 1
which is the number of Taylor coefficients per variabletaylor | Input: If x is a variable, taylor [ arg[0] * tpv + 0 ] is the zero order coefficient corresponding to x and taylor [ arg[0] * tpv + (k-1)*r+1+ell ] for k = 1 , ... , q, ell = 0 , ... , r-1, is the k-th order Taylor coefficient corresponding to x for the ell-th direction. Input: If y is a variable, taylor [ arg[1] * tpv + 0 ] is the zero order coefficient corresponding to y and taylor [ arg[1] * tpv + (k-1)*r+1+ell ] for k = 1 , ... , q, ell = 0 , ... , r-1, is the k-th order Taylor coefficient corresponding to y for the ell-th direction. Input: taylor [ (i_z-2+j) * tpv + 0 ] , is the zero order coefficient corresponding to z_j and taylor [ (i_z-2+j) * tpv + (k-1)*r+1+ell ] , for j = 0, 1, 2 , k = 0 , ... , q-1, ell = 0, ... , r-1, is the k-th order Taylor coefficient corresponding to z_j for the ell-th direction. Output: taylor [ (i_z-2+j) * tpv + (q-1)*r+1+ell ] , for j = 0, 1, 2 , ell = 0, ... , r-1, is the q-th order Taylor coefficient corresponding to z_j for the ell-th direction. |
Definition at line 303 of file pow_op.hpp.
Referenced by forward2sweep().