CppAD: A C++ Algorithmic Differentiation Package  20171217
template<class Base >
 void CppAD::local::optimize::usage_cexp_result2arg ( const player< Base > * play, bool sum_result, size_t i_result, size_t i_arg, vector< struct_opt_op_info > & opt_op_info, sparse_list & cexp_set )
inline

Increarse argument usage and propagate cexp_set from result to argument.

Parameters
 play is the player for the old operation sequence. sum_result is result an addition or subtraction operator (passed for speed so do not need to call add_or_subtract for result). i_result is the operator index for the result operator. i_arg is the operator index for the argument to the result operator. opt_op_info structure that holds the information for each of the operators. The output value of opt_op_info[i_arg].usage is increased; to be specific, If sum_result is true and the input value of opt_op_info[i_arg].usage is no_usage, its output value is csum_usage. Otherwise, the output value of opt_op_info[i_arg].usage is yes_usage. cexp_set This is a vector of sets with one set for each operator. We denote the i-th set by set[i].
• In the special case where cexp_set.n_set() is zero, cexp_set is not changed.
• If cexp_set.n_set() != 0 and opt_op_info[i_arg].usage == no_usage, the input value of set[i_arg] must be empty. In this case the output value if set[i_arg] is equal to set[i_result] (which may also be empty).
• If cexp_set.n_set() != 0 and opt_op_info[i_arg].usage != no_usage, the output value of set[i_arg] is the intersection of its input value and set[i_result].

Definition at line 91 of file get_opt_op_info.hpp.

Referenced by get_opt_op_info().