1 # ifndef CPPAD_LOCAL_SUBGRAPH_ARG_VARIABLE_HPP
2 # define CPPAD_LOCAL_SUBGRAPH_ARG_VARIABLE_HPP
17 namespace CppAD {
namespace local {
namespace subgraph {
44 template <
typename Base>
73 size_t j_var = op_arg[0];
96 for(
size_t j = 0; j < num_arg; ++j)
97 {
if( is_variable[j] )
98 {
size_t j_var = op_arg[j];
void resize(size_t n)
resize the vector (existing elements preserved when n <= capacity_).
size_t arg_is_variable(OpCode op, const addr_t *arg, pod_vector< bool > &is_variable)
Determines which arguments are variaibles for an operator.
void push_back(const Type &e)
Add an element to theh back of this vector.
CPPAD_TAPE_ADDR_TYPE addr_t
Class used to store and play back an operation sequence recording.
File used to define pod_vector class.
void get_argument_variable(const player< Base > *play, size_t i_op, pod_vector< size_t > &variable, pod_vector< bool > &work)
Determine the set of arguments, for an operator, that are variables.
OpCode
Type used to distinguish different AD< Base > atomic operations.
void get_op_info(size_t op_index, OpCode &op, const addr_t *&op_arg, size_t &var_index) const
fetch the information corresponding to an operator
size_t size(void) const
current number of elements in this vector.
#define CPPAD_ASSERT_UNKNOWN(exp)
Check that exp is true, if not terminate execution.
#define CPPAD_ASSERT_NARG_NRES(op, n_arg, n_res)
Check that operator op has the specified number of of arguments and results.