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

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

The C++ source code corresponding to this operation is

     z = erf(x)
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 of the Taylor coefficients that we are computing the partial derivatives with respect to.
i_zvariable index corresponding to the last (primary) result for this operation; i.e. the row index in taylor corresponding to z. The auxillary results are called y_j have index i_z - j.
argarg[0]: is the variable index corresponding to x.
arg[1]: is the parameter index corresponding to the value zero.
  • [2]: is the parameter index correspodning to the value 2 / sqrt(pi).
parameterparameter[ arg[1] ] is the value zero, and parameter[ arg[2] ] is the value 2 / sqrt(pi).
cap_ordermaximum number of orders that will fit in the taylor array.
taylorInput: taylor [ arg[0] * cap_order + k ] for k = 0 , ... , d, is the k-th order Taylor coefficient corresponding to x.
taylor [ (i_z - j) * cap_order + k ] for k = 0 , ... , d, and for j = 0 , ... , 4, is the k-th order Taylor coefficient corresponding to the j-th result for this operation.
nc_partialnumber of columns in the matrix containing all the partial derivatives
partialInput: partial [ arg[0] * 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 - j) * nc_partial + k ] for k = 0 , ... , d, and for j = 0 , ... , 4, is the partial derivative of G( z , x , w , u , ... ) with respect to the k-th order Taylor coefficient for the j-th result of this operation.
Output: partial [ arg[0] * 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-j) * nc_partial + k ] for k = 0 , ... , d, and for j = 0 , ... , 4, may be used as work space; i.e., may change in an unspecified manner.
Checked Assertions
  • NumArg(op) == 3
  • NumRes(op) == 5
  • q < cap_order
  • p <= q

Definition at line 479 of file erf_op.hpp.

Referenced by reverse_sweep().