CppAD: A C++ Algorithmic Differentiation Package  20171217
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
template<class Vector_set >
void CppAD::local::reverse_sparse_jacobian_binary_op ( size_t  i_z,
const addr_t *  arg,
Vector_set &  sparsity 
)
inline

Reverse mode Jacobian sparsity pattern for all binary operators.

The C++ source code corresponding to a unary operation has the form

     z = fun(x, y)

where fun is a C++ unary function and x and y are variables, or it has the form

     z = x op y

where op is a C++ bianry operator and x and y are variables.

This routine is given the sparsity patterns for a function G(z, y, x, ... ) and it uses them to compute the sparsity patterns for

     H( y, x, w , u , ... ) = G[ z(x,y) , y , x , w , u , ... ]
Template Parameters
Vector_setis the type used for vectors of sets. It can be either sparse_pack or sparse_list.
Parameters
i_zvariable index corresponding to the result for this operation; i.e., z.
argarg[0] variable index corresponding to the left operand for this operator; i.e., x.



arg[1] variable index corresponding to the right operand for this operator; i.e., y.

Parameters
sparsityThe set with index i_z in sparsity is the sparsity pattern for z corresponding ot the function G.

The set with index arg[0] in sparsity is the sparsity pattern for x. On input, it corresponds to the function G, and on output it corresponds to H.

The set with index arg[1] in sparsity is the sparsity pattern for y. On input, it corresponds to the function G, and on output it corresponds to H.

Checked Assertions:
  • arg[0] < i_z
  • arg[1] < i_z

Definition at line 156 of file sparse_binary_op.hpp.

Referenced by rev_jac_sweep().