CppAD: A C++ Algorithmic Differentiation Package  20171217
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
template<class Base >
void CppAD::local::forward_powvp_op ( size_t  p,
size_t  q,
size_t  i_z,
const addr_t *  arg,
const Base *  parameter,
size_t  cap_order,
Base *  taylor 
)
inline

Compute forward mode Taylor coefficients for result of op = PowvpOp.

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 variable and y is a parameter.

Template Parameters
Basebase type for the operator; i.e., this operation was recorded using AD< Base > and computations by this routine are done using type Base.
Parameters
plowest order of the Taylor coefficient that we are computing.
qhighest order of the Taylor coefficient that we are computing.
i_zvariable 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).
argarg[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.
parameterIf 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_ordermaximum number of orders that will fit in the taylor array.
taylorInput: If x is a variable, taylor [ arg[0] * cap_order + k ] for k = 0 , ... , q, is the k-th order Taylor coefficient corresponding to x.
Input: If y is a variable, taylor [ arg[1] * cap_order + k ] for k = 0 , ... , q is the k-th order Taylor coefficient corresponding to y.
Input: taylor [ (i_z-2+j) * cap_order + k ], for j = 0, 1, 2 , for k = 0 , ... , p-1, is the k-th order Taylor coefficient corresponding to z_j.
Output: taylor [ (i_z-2+j) * cap_order + k ], is the k-th order Taylor coefficient corresponding to z_j.
Checked Assertions
  • NumArg(op) == 2
  • NumRes(op) == 3
  • If x is a variable, arg[0] < i_z - 2
  • If y is a variable, arg[1] < i_z - 2
  • q < cap_order
  • p <= q

Definition at line 471 of file pow_op.hpp.

Referenced by forward1sweep().