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_subvv_op_dir ( size_t  q,
size_t  r,
size_t  i_z,
const addr_t *  arg,
const Base *  parameter,
size_t  cap_order,
Base *  taylor 
)
inline

Multiple directions forward mode Taylor coefficients for op = SubvvOp.

The C++ source code corresponding to this operation is

     z = x - y

In the documentation below, this operations is for the case where both x and y are variables and the argument parameter is not used.

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
qis the order of the Taylor coefficients that we are computing.
rnumber of directions for Taylor coefficients that we are computing
i_zvariable index corresponding to the result for this operation; i.e. the row index in taylor corresponding to z.
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.
tpv
We use the notation tpv = (cap_order-1) * r + 1 which is the number of Taylor coefficients per variable
Parameters
taylorInput: If x is a variable, taylor [ arg[0] * tpv + 0 ], is the zero order Taylor coefficient for all directions and taylor [ arg[0] * tpv + (k-1)*r + ell + 1 ], for k = 1 , ... , q, ell = 0, ..., r-1, is the k-th order Taylor coefficient corresponding to x and the ell-th direction.
Input: If y is a variable, taylor [ arg[1] * tpv + 0 ], is the zero order Taylor coefficient for all directions and taylor [ arg[1] * tpv + (k-1)*r + ell + 1 ], for k = 1 , ... , q, ell = 0, ..., r-1, is the k-th order Taylor coefficient corresponding to y and the ell-th direction.
Input: taylor [ i_z * tpv + 0 ], is the zero order Taylor coefficient for all directions and taylor [ i_z * tpv + (k-1)*r + ell + 1 ], for k = 1 , ... , q-1, ell = 0, ..., r-1, is the k-th order Taylor coefficient corresponding to z and the ell-th direction.
Output: taylor [ i_z * tpv + (q-1)*r + ell + 1], ell = 0, ..., r-1, is the q-th order Taylor coefficient corresponding to z and the ell-th direction.
Checked Assertions
  • NumArg(op) == 2
  • NumRes(op) == 1
  • 0 < q < cap_order

Definition at line 76 of file sub_op.hpp.

Referenced by forward2sweep().