CppAD: A C++ Algorithmic Differentiation Package  20130102
template<class Base >
void reverse_sqrt_op ( size_t  d,
size_t  i_z,
size_t  i_x,
size_t  nc_taylor,
const Base *  taylor,
size_t  nc_partial,
Base *  partial 
) [inline]

Compute reverse mode partial derivatives for result of op = SqrtOp.

The C++ source code corresponding to this operation is

	z = sqrt(x)

This routine is given the partial derivatives of a function G(z , x , w, u ... ) and it uses them to compute the partial derivatives of

	H( x , w , u , ... ) = G[ z(x) , x , w , u , ... ]
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:
dhighest order Taylor coefficient that we are computing the partial derivatives with respect to.
i_zvariable index corresponding to the result for this operation; i.e. the row index in taylor to z.
i_xvariable index corresponding to the argument for this operation; i.e. the row index in taylor corresponding to x.
nc_taylornumber of colums in the matrix containing all the Taylor coefficients.
taylortaylor [ i_x * nc_taylor + k ] for k = 0 , ... , d is the k-th order Taylor coefficient corresponding to x.
taylor [ i_z * nc_taylor + k ] for k = 0 , ... , d is the k-th order Taylor coefficient corresponding to z.
nc_partialnumber of colums in the matrix containing all the partial derivatives.
partialInput: partial [ i_x * 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 x.
Input: partial [ i_z * 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 z.
Output: partial [ i_x * nc_partial + k ] for k = 0 , ... , d is the partial derivative of H( x , w , u , ... ) with respect to the k-th order Taylor coefficient for x.
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.
Checked Assumptions
  • NumArg(op) == 1
  • NumRes(op) == 1
  • i_x < i_z
  • d < nc_taylor
  • d < nc_partial

Definition at line 113 of file sqrt_op.hpp.

Referenced by ReverseSweep().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines