CppAD: A C++ Algorithmic Differentiation Package
20171217
|
|
inline |
Compute reverse mode partial derivative for result of op = ZmulpvOp.
The C++ source code corresponding to this operation is
z = azmul(x, y)
In the documentation below, this operations is for the case where x is a parameter and y is a variable.
This routine is given the partial derivatives of a function G( z , y , x , w , ... ) and it uses them to compute the partial derivatives of
H( y , x , w , u , ... ) = G[ z(x , y) , y , x , w , u , ... ]
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 . |
d | highest order Taylor coefficient that we are computing the partial derivatives with respect to. |
i_z | variable index corresponding to the result for this operation; i.e. the row index in taylor corresponding to z. |
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. |
taylor | taylor [ i_z * cap_order + k ] for k = 0 , ... , d is the k-th order Taylor coefficient corresponding to z. If x is a variable, taylor [ arg[0] * cap_order + k ] for k = 0 , ... , d is the k-th order Taylor coefficient corresponding to x. If y is a variable, taylor [ arg[1] * cap_order + k ] for k = 0 , ... , d is the k-th order Taylor coefficient corresponding to y. |
nc_partial | number of colums in the matrix containing all the partial derivatives. |
partial | Input: partial [ i_z * nc_partial + k ] for k = 0 , ... , d is the partial derivative of G( z , y , x , w , u , ... ) with respect to the k-th order Taylor coefficient for z. Input: If x is a variable, partial [ arg[0] * nc_partial + k ] for k = 0 , ... , d is the partial derivative of G( z , y , x , w , u , ... ) with respect to the k-th order Taylor coefficient for x. Input: If y is a variable, partial [ arg[1] * nc_partial + k ] for k = 0 , ... , d is the partial derivative of G( z , x , w , u , ... ) with respect to the k-th order Taylor coefficient for the auxillary variable y. Output: If x is a variable, partial [ arg[0] * nc_partial + k ] for k = 0 , ... , d is the partial derivative of H( y , x , w , u , ... ) with respect to the k-th order Taylor coefficient for x. Output: If y is a variable, partial [ arg[1] * nc_partial + k ] for k = 0 , ... , d is the partial derivative of H( y , x , w , u , ... ) with respect to the k-th order Taylor coefficient for y. Output: partial [ i_z * nc_partial + k ] for k = 0 , ... , d may be used as work space; i.e., may change in an unspecified manner. |
Definition at line 325 of file zmul_op.hpp.
Referenced by reverse_sweep().