CppAD: A C++ Algorithmic Differentiation Package  20171217
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
CppAD::local Namespace Reference

Namespaces

 optimize
 
 subgraph
 

Classes

class  ADTape
 Class used to hold tape that records AD<Base> operations. More...
 
struct  internal_sparsity
 Template structure used obtain the internal sparsity pattern type form the corresponding element type. More...
 
struct  internal_sparsity< bool >
 Specilization for bool elements. More...
 
struct  internal_sparsity< std::set< size_t > >
 Specilization for std::set<size_t> elements. More...
 
class  player
 Class used to store and play back an operation sequence recording. More...
 
class  pod_vector
 A vector class with Type element that does not use element constructors or destructors when Type is Plain Old Data (pod). More...
 
class  recorder
 Class used to store an operation sequence while it is being recorded (the operation sequence is copied to the player class for playback). More...
 
class  sparse_list
 Vector of sets of positive integers, each set stored as a singly linked list. More...
 
class  sparse_list_const_iterator
 cons_iterator for one set of positive integers in a sparse_list object. More...
 
class  sparse_pack
 Vector of sets of postivie integers, each set stored as a packed boolean array. More...
 
class  sparse_pack_const_iterator
 cons_iterator for one set of positive integers in a sparse_pack object. More...
 
class  sparse_sizevec
 Vector of sets of positive integers, each set stored as a size_t vector. More...
 
class  sparse_sizevec_const_iterator
 cons_iterator for one set of positive integers in a sparse_sizevec object. More...
 

Enumerations

enum  enum_user_state { start_user, arg_user, ret_user, end_user }
 
enum  OpCode {
  AbsOp, AcosOp, AcoshOp, AddpvOp,
  AddvvOp, AsinOp, AsinhOp, AtanOp,
  AtanhOp, BeginOp, CExpOp, CosOp,
  CoshOp, CSkipOp, CSumOp, DisOp,
  DivpvOp, DivvpOp, DivvvOp, EndOp,
  EqpvOp, EqvvOp, ErfOp, ExpOp,
  Expm1Op, InvOp, LdpOp, LdvOp,
  LepvOp, LevpOp, LevvOp, LogOp,
  Log1pOp, LtpvOp, LtvpOp, LtvvOp,
  MulpvOp, MulvvOp, NepvOp, NevvOp,
  ParOp, PowpvOp, PowvpOp, PowvvOp,
  PriOp, SignOp, SinOp, SinhOp,
  SqrtOp, StppOp, StpvOp, StvpOp,
  StvvOp, SubpvOp, SubvpOp, SubvvOp,
  TanOp, TanhOp, UserOp, UsrapOp,
  UsravOp, UsrrpOp, UsrrvOp, ZmulpvOp,
  ZmulvpOp, ZmulvvOp, NumberOp
}
 Type used to distinguish different AD< Base > atomic operations. More...
 

Functions

size_t arg_is_variable (OpCode op, const addr_t *arg, pod_vector< bool > &is_variable)
 Determines which arguments are variaibles for an operator. More...
 
template<class VectorSet , class VectorSize >
void color_general_cppad (const VectorSet &pattern, const VectorSize &row, const VectorSize &col, CppAD::vector< size_t > &color)
 Determine which rows of a general sparse matrix can be computed together; i.e., do not have non-zero entries with the same column index. More...
 
template<class VectorSet >
void color_symmetric_colpack (const VectorSet &pattern, CppAD::vector< size_t > &row, CppAD::vector< size_t > &col, CppAD::vector< size_t > &color)
 Colpack algorithm for determining which rows of a symmetric sparse matrix can be computed together. More...
 
template<class VectorSet >
void color_symmetric_cppad (const VectorSet &pattern, CppAD::vector< size_t > &row, CppAD::vector< size_t > &col, CppAD::vector< size_t > &color)
 CppAD algorithm for determining which rows of a symmetric sparse matrix can be computed together. More...
 
template<class Base >
void conditional_exp_op (size_t i_z, const addr_t *arg, size_t num_par, const Base *parameter, size_t cap_order)
 Shared documentation for conditional expressions (not called). More...
 
template<class Base , class Vector_set >
void for_hes_sweep (const local::player< Base > *play, size_t n, size_t numvar, const Vector_set &for_jac_sparse, const Vector_set &rev_jac_sparse, Vector_set &for_hes_sparse)
 Given the forward Jacobian sparsity pattern for all the variables, and the reverse Jacobian sparsity pattern for the dependent variables, ForHesSweep computes the Hessian sparsity pattern for all the independent variables. More...
 
template<class Base , class Vector_set >
void for_jac_sweep (const local::player< Base > *play, bool dependency, size_t n, size_t numvar, Vector_set &var_sparsity)
 Given the sparsity pattern for the independent variables, ForJacSweep computes the sparsity pattern for all the other variables. More...
 
template<class Base >
void forward0sweep (const local::player< Base > *play, std::ostream &s_out, bool print, size_t n, size_t numvar, size_t J, Base *taylor, bool *cskip_op, pod_vector< addr_t > &var_by_load_op, size_t compare_change_count, size_t &compare_change_number, size_t &compare_change_op_index)
 Compute zero order forward mode Taylor coefficients. More...
 
template<class Base >
void forward1sweep (const local::player< Base > *play, std::ostream &s_out, const bool print, const size_t p, const size_t q, const size_t n, const size_t numvar, const size_t J, Base *taylor, bool *cskip_op, pod_vector< addr_t > &var_by_load_op, size_t compare_change_count, size_t &compare_change_number, size_t &compare_change_op_index)
 Compute arbitrary order forward mode Taylor coefficients. More...
 
template<class Base >
void forward2sweep (const local::player< Base > *play, const size_t q, const size_t r, const size_t n, const size_t numvar, const size_t J, Base *taylor, const bool *cskip_op, const pod_vector< addr_t > &var_by_load_op)
 Compute multiple directions forward mode Taylor coefficients. More...
 
template<class Base >
void forward_abs_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = AbsOp. More...
 
template<class Base >
void forward_abs_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = AbsOp. More...
 
template<class Base >
void forward_abs_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple directions forward mode Taylor coefficient for op = AbsOp. More...
 
template<class Base >
void forward_acos_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = AcosOp. More...
 
template<class Base >
void forward_acos_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = AcosOp. More...
 
template<class Base >
void forward_acos_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple directions forward mode Taylor coefficient for op = AcosOp. More...
 
template<class Base >
void forward_acosh_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = AcoshOp. More...
 
template<class Base >
void forward_acosh_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = AcoshOp. More...
 
template<class Base >
void forward_acosh_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple directions forward mode Taylor coefficient for op = AcoshOp. More...
 
template<class Base >
void forward_addpv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = AddpvOp. More...
 
template<class Base >
void forward_addpv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = AddpvOp. More...
 
template<class Base >
void forward_addpv_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)
 Multiple directions forward mode Taylor coefficients for op = AddpvOp. More...
 
template<class Base >
void forward_addvv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = AddvvOp. More...
 
template<class Base >
void forward_addvv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficients for result of op = AddvvOp. More...
 
template<class Base >
void forward_addvv_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)
 Multiple directions forward mode Taylor coefficients for op = AddvvOp. More...
 
template<class Base >
void forward_asin_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = AsinOp. More...
 
template<class Base >
void forward_asin_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = AsinOp. More...
 
template<class Base >
void forward_asin_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple directions forward mode Taylor coefficient for op = AsinOp. More...
 
template<class Base >
void forward_asinh_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = AsinhOp. More...
 
template<class Base >
void forward_asinh_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = AsinhOp. More...
 
template<class Base >
void forward_asinh_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple directions forward mode Taylor coefficient for op = AsinhOp. More...
 
template<class Base >
void forward_atan_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Forward mode Taylor coefficient for result of op = AtanOp. More...
 
template<class Base >
void forward_atan_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Zero order forward mode Taylor coefficient for result of op = AtanOp. More...
 
template<class Base >
void forward_atan_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple direction Taylor coefficient for op = AtanOp. More...
 
template<class Base >
void forward_atanh_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Forward mode Taylor coefficient for result of op = AtanhOp. More...
 
template<class Base >
void forward_atanh_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Zero order forward mode Taylor coefficient for result of op = AtanhOp. More...
 
template<class Base >
void forward_atanh_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple direction Taylor coefficient for op = AtanhOp. More...
 
template<class Base >
void forward_binary_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Prototype forward mode x op y (not used) More...
 
template<class Base >
void forward_binary_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Prototype zero order forward mode x op y (not used) More...
 
template<class Base >
void forward_binary_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)
 Prototype multiple direction forward mode x op y (not used) More...
 
template<class Base >
void forward_cond_op (size_t p, size_t q, size_t i_z, const addr_t *arg, size_t num_par, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for op = CExpOp. More...
 
template<class Base >
void forward_cond_op_0 (size_t i_z, const addr_t *arg, size_t num_par, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficients for op = CExpOp. More...
 
template<class Base >
void forward_cond_op_dir (size_t q, size_t r, size_t i_z, const addr_t *arg, size_t num_par, const Base *parameter, size_t cap_order, Base *taylor)
 Multiple directions forward mode Taylor coefficients for op = CExpOp. More...
 
template<class Base >
void forward_cos_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = CosOp. More...
 
template<class Base >
void forward_cos_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = CosOp. More...
 
template<class Base >
void forward_cos_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = CosOp. More...
 
template<class Base >
void forward_cosh_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = CoshOp. More...
 
template<class Base >
void forward_cosh_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = CoshOp. More...
 
template<class Base >
void forward_cosh_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = CoshOp. More...
 
template<class Base >
void forward_cskip_op_0 (size_t i_z, const addr_t *arg, size_t num_par, const Base *parameter, size_t cap_order, Base *taylor, bool *cskip_op)
 Zero order forward mode execution of op = CSkipOp. More...
 
template<class Base >
void forward_csum_op (size_t p, size_t q, size_t i_z, const addr_t *arg, size_t num_par, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = CsumOp. More...
 
template<class Base >
void forward_csum_op_dir (size_t q, size_t r, size_t i_z, const addr_t *arg, size_t num_par, const Base *parameter, size_t cap_order, Base *taylor)
 Multiple direction forward mode Taylor coefficients for op = CsumOp. More...
 
template<class Base >
void forward_dis_op (size_t p, size_t q, size_t r, size_t i_z, const addr_t *arg, size_t cap_order, Base *taylor)
 forward mode Taylor coefficient for result of op = DisOp. More...
 
template<class Base >
void forward_divpv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = DivpvOp. More...
 
template<class Base >
void forward_divpv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = DivpvOp. More...
 
template<class Base >
void forward_divpv_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)
 Multiple directions forward mode Taylor coefficients for op = DivpvOp. More...
 
template<class Base >
void forward_divvp_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = DivvvOp. More...
 
template<class Base >
void forward_divvp_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficients for result of op = DivvvOp. More...
 
template<class Base >
void forward_divvp_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)
 Multiple direction forward mode Taylor coefficients for op = DivvvOp. More...
 
template<class Base >
void forward_divvv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = DivvvOp. More...
 
template<class Base >
void forward_divvv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficients for result of op = DivvvOp. More...
 
template<class Base >
void forward_divvv_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)
 Multiple directions forward mode Taylor coefficients for op = DivvvOp. More...
 
template<class Base >
void forward_eqpv_op_0 (size_t &count, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Zero order forward mode comparison check that left == right. More...
 
template<class Base >
void forward_eqvv_op_0 (size_t &count, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Zero order forward mode comparison check that left == right. More...
 
template<class Base >
void forward_erf_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Forward mode Taylor coefficient for result of op = ErfOp. More...
 
template<class Base >
void forward_erf_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Zero order Forward mode Taylor coefficient for result of op = ErfOp. More...
 
template<class Base >
void forward_erf_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)
 Forward mode Taylor coefficient for result of op = ErfOp. More...
 
template<class Base >
void forward_exp_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Forward mode Taylor coefficient for result of op = ExpOp. More...
 
template<class Base >
void forward_exp_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Zero order forward mode Taylor coefficient for result of op = ExpOp. More...
 
template<class Base >
void forward_exp_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple direction forward mode Taylor coefficient for op = ExpOp. More...
 
template<class Base >
void forward_expm1_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Forward mode Taylor coefficient for result of op = Expm1Op. More...
 
template<class Base >
void forward_expm1_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Zero order forward mode Taylor coefficient for result of op = Expm1Op. More...
 
template<class Base >
void forward_expm1_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple direction forward mode Taylor coefficient for op = Expm1Op. More...
 
template<class Base >
void forward_lepv_op_0 (size_t &count, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Zero order forward mode comparison check that left <= right. More...
 
template<class Base >
void forward_levp_op_0 (size_t &count, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Zero order forward mode comparison check that left <= right. More...
 
template<class Base >
void forward_levv_op_0 (size_t &count, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Zero order forward mode comparison check that left <= right. More...
 
template<class Base >
void forward_load_op (const local::player< Base > *play, OpCode op, size_t p, size_t q, size_t r, size_t cap_order, size_t i_z, const addr_t *arg, const addr_t *var_by_load_op, Base *taylor)
 Forward mode, except for zero order, for op = LdpOp or op = LdvOp. More...
 
template<class Base >
void forward_load_op_0 (const local::player< Base > *play, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor, bool *isvar_by_ind, size_t *index_by_ind, addr_t *var_by_load_op)
 Shared documentation for zero order forward mode implementation of op = LdpOp or LdvOp (not called). More...
 
template<class Base >
void forward_load_p_op_0 (const local::player< Base > *play, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor, bool *isvar_by_ind, size_t *index_by_ind, addr_t *var_by_load_op)
 Zero order forward mode implementation of op = LdpOp. More...
 
template<class Base >
void forward_load_v_op_0 (const local::player< Base > *play, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor, bool *isvar_by_ind, size_t *index_by_ind, addr_t *var_by_load_op)
 Zero order forward mode implementation of op = LdvOp. More...
 
template<class Base >
void forward_log1p_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = Log1pOp. More...
 
template<class Base >
void forward_log1p_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = Log1pOp. More...
 
template<class Base >
void forward_log1p_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Muiltiple directions Taylor coefficient for op = Log1pOp. More...
 
template<class Base >
void forward_log_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = LogOp. More...
 
template<class Base >
void forward_log_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = LogOp. More...
 
template<class Base >
void forward_log_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Muiltiple directions Taylor coefficient for op = LogOp. More...
 
template<class Base >
void forward_ltpv_op_0 (size_t &count, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Zero order forward mode comparison check that left < right. More...
 
template<class Base >
void forward_ltvp_op_0 (size_t &count, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Zero order forward mode comparison check that left < right. More...
 
template<class Base >
void forward_ltvv_op_0 (size_t &count, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Zero order forward mode comparison check that left < right. More...
 
template<class Base >
void forward_mulpv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = MulpvOp. More...
 
template<class Base >
void forward_mulpv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = MulpvOp. More...
 
template<class Base >
void forward_mulpv_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)
 Multiple directions forward mode Taylor coefficients for op = MulpvOp. More...
 
template<class Base >
void forward_mulvv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = MulvvOp. More...
 
template<class Base >
void forward_mulvv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficients for result of op = MulvvOp. More...
 
template<class Base >
void forward_mulvv_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)
 Multiple directions forward mode Taylor coefficients for op = MulvvOp. More...
 
template<class Base >
void forward_nepv_op_0 (size_t &count, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Zero order forward mode comparison check that left != right. More...
 
template<class Base >
void forward_nevv_op_0 (size_t &count, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Zero order forward mode comparison check that left != right. More...
 
template<class Base >
void forward_par_op_0 (size_t i_z, const addr_t *arg, size_t num_par, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = ParOp. More...
 
template<class Base >
void forward_pow_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Prototype for forward mode z = pow(x, y) (not used). More...
 
template<class Base >
void forward_pow_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Prototype for zero order forward mode z = pow(x, y) (not used). More...
 
template<class Base >
void forward_pow_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)
 Prototype for multiple direction forward mode z = pow(x, y) (not used). More...
 
template<class Base >
void forward_powpv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = PowpvOp. More...
 
template<class Base >
void forward_powpv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = PowpvOp. More...
 
template<class Base >
void forward_powpv_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)
 Multiple directions forward mode Taylor coefficients for op = PowpvOp. More...
 
template<class Base >
void forward_powvp_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = PowvpOp. More...
 
template<class Base >
void forward_powvp_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficients for result of op = PowvpOp. More...
 
template<class Base >
void forward_powvp_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)
 Multiple directions forward mode Taylor coefficients for op = PowvpOp. More...
 
template<class Base >
void forward_powvv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = PowvvOp. More...
 
template<class Base >
void forward_powvv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficients for result of op = PowvvOp. More...
 
template<class Base >
void forward_powvv_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)
 Multiple directions forward mode Taylor coefficients for op = PowvvOp. More...
 
template<class Base >
void forward_pri_0 (std::ostream &s_out, const addr_t *arg, size_t num_text, const char *text, size_t num_par, const Base *parameter, size_t cap_order, const Base *taylor)
 Print operation for parameters; i.e., op = PriOp. More...
 
template<class Base >
void forward_sign_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = SignOp. More...
 
template<class Base >
void forward_sign_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = SignOp. More...
 
template<class Base >
void forward_sign_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple direction forward mode Taylor coefficient for op = SignOp. More...
 
template<class Base >
void forward_sin_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = SinOp. More...
 
template<class Base >
void forward_sin_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = SinOp. More...
 
template<class Base >
void forward_sin_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = SinOp. More...
 
template<class Base >
void forward_sinh_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = SinhOp. More...
 
template<class Base >
void forward_sinh_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = SinhOp. More...
 
template<class Base >
void forward_sinh_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = SinhOp. More...
 
template<class Vector_set >
void forward_sparse_hessian_div_op (const addr_t *arg, const Vector_set &for_jac_sparsity, Vector_set &for_hes_sparsity)
 Forward mode Hessian sparsity pattern for division operator. More...
 
template<class Vector_set >
void forward_sparse_hessian_mul_op (const addr_t *arg, const Vector_set &for_jac_sparsity, Vector_set &for_hes_sparsity)
 Forward mode Hessian sparsity pattern for multiplication operator. More...
 
template<class Vector_set >
void forward_sparse_hessian_nonlinear_unary_op (size_t i_v, const Vector_set &for_jac_sparsity, Vector_set &for_hes_sparsity)
 Forward mode Hessian sparsity pattern for non-linear unary operators. More...
 
template<class Vector_set >
void forward_sparse_hessian_pow_op (const addr_t *arg, const Vector_set &for_jac_sparsity, Vector_set &for_hes_sparsity)
 Forward mode Hessian sparsity pattern for power operator. More...
 
template<class Vector_set >
void forward_sparse_jacobian_binary_op (size_t i_z, const addr_t *arg, Vector_set &sparsity)
 Forward mode Jacobian sparsity pattern for all binary operators. More...
 
template<class Vector_set >
void forward_sparse_jacobian_cond_op (bool dependency, size_t i_z, const addr_t *arg, size_t num_par, Vector_set &sparsity)
 Compute forward Jacobian sparsity patterns for op = CExpOp. More...
 
template<class Vector_set >
void forward_sparse_jacobian_csum_op (size_t i_z, const addr_t *arg, Vector_set &sparsity)
 Forward mode Jacobian sparsity pattern for CSumOp operator. More...
 
template<class Vector_set >
void forward_sparse_jacobian_unary_op (size_t i_z, size_t i_x, Vector_set &sparsity)
 Forward mode Jacobian sparsity pattern for all unary operators. More...
 
template<class Vector_set >
void forward_sparse_load_op (bool dependency, OpCode op, size_t i_z, const addr_t *arg, size_t num_combined, const size_t *combined, Vector_set &var_sparsity, Vector_set &vecad_sparsity)
 Forward mode sparsity operations for LdpOp and LdvOp. More...
 
template<class Vector_set >
void forward_sparse_store_op (bool dependency, OpCode op, const addr_t *arg, size_t num_combined, const size_t *combined, Vector_set &var_sparsity, Vector_set &vecad_sparsity)
 Forward mode sparsity operations for StpvOp and StvvOp. More...
 
template<class Base >
void forward_sqrt_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = SqrtOp. More...
 
template<class Base >
void forward_sqrt_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = SqrtOp. More...
 
template<class Base >
void forward_sqrt_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple direction forward mode Taylor coefficient for op = SqrtOp. More...
 
template<class Base >
void forward_store_op_0 (size_t i_z, const addr_t *arg, size_t num_par, size_t cap_order, Base *taylor, bool *isvar_by_ind, size_t *index_by_ind)
 Shared documentation for zero order forward implementation of op = StppOp, StpvOp, StvpOp, or StvvOp (not called). More...
 
template<class Base >
void forward_store_pp_op_0 (size_t i_z, const addr_t *arg, size_t num_par, size_t cap_order, Base *taylor, bool *isvar_by_ind, size_t *index_by_ind)
 Zero order forward mode implementation of op = StppOp. More...
 
template<class Base >
void forward_store_pv_op_0 (size_t i_z, const addr_t *arg, size_t num_par, size_t cap_order, Base *taylor, bool *isvar_by_ind, size_t *index_by_ind)
 Zero order forward mode implementation of op = StpvOp. More...
 
template<class Base >
void forward_store_vp_op_0 (size_t i_z, const addr_t *arg, size_t num_par, size_t cap_order, Base *taylor, bool *isvar_by_ind, size_t *index_by_ind)
 Zero order forward mode implementation of op = StvpOp. More...
 
template<class Base >
void forward_store_vv_op_0 (size_t i_z, const addr_t *arg, size_t num_par, size_t cap_order, Base *taylor, bool *isvar_by_ind, size_t *index_by_ind)
 Zero order forward mode implementation of op = StvvOp. More...
 
template<class Base >
void forward_subpv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = SubpvOp. More...
 
template<class Base >
void forward_subpv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = SubpvOp. More...
 
template<class Base >
void forward_subpv_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)
 Multiple directions forward mode Taylor coefficients for op = SubpvOp. More...
 
template<class Base >
void forward_subvp_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = SubvvOp. More...
 
template<class Base >
void forward_subvp_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficients for result of op = SubvvOp. More...
 
template<class Base >
void forward_subvp_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)
 Multiple directions forward mode Taylor coefficients for op = SubvvOp. More...
 
template<class Base >
void forward_subvv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = SubvvOp. More...
 
template<class Base >
void forward_subvv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficients for result of op = SubvvOp. More...
 
template<class Base >
void 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)
 Multiple directions forward mode Taylor coefficients for op = SubvvOp. More...
 
template<class Base >
void forward_tan_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = TanOp. More...
 
template<class Base >
void forward_tan_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = TanOp. More...
 
template<class Base >
void forward_tan_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple directions forward mode Taylor coefficient for op = TanOp. More...
 
template<class Base >
void forward_tanh_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficient for result of op = TanOp. More...
 
template<class Base >
void forward_tanh_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = TanOp. More...
 
template<class Base >
void forward_tanh_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Multiple directions forward mode Taylor coefficient for op = TanOp. More...
 
template<class Base >
void forward_unary1_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Prototype for forward mode unary operator with one result (not used). More...
 
template<class Base >
void forward_unary1_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Prototype for zero order forward mode unary operator with one result (not used). More...
 
template<class Base >
void forward_unary1_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Prototype for multiple direction forward mode unary operator with one result (not used). More...
 
template<class Base >
void forward_unary2_op (size_t p, size_t q, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Prototype for forward mode unary operator with two results (not used). More...
 
template<class Base >
void forward_unary2_op_0 (size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Prototype for zero order forward mode unary operator with two results (not used). More...
 
template<class Base >
void forward_unary2_op_dir (size_t q, size_t r, size_t i_z, size_t i_x, size_t cap_order, Base *taylor)
 Prototype for multiple direction forward mode unary operator with two results (not used). More...
 
template<class Base >
void forward_zmulpv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = ZmulpvOp. More...
 
template<class Base >
void forward_zmulpv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = ZmulpvOp. More...
 
template<class Base >
void forward_zmulpv_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)
 Multiple directions forward mode Taylor coefficients for op = ZmulpvOp. More...
 
template<class Base >
void forward_zmulvp_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = ZmulvpOp. More...
 
template<class Base >
void forward_zmulvp_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficient for result of op = ZmulvpOp. More...
 
template<class Base >
void forward_zmulvp_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)
 Multiple directions forward mode Taylor coefficients for op = ZmulvpOp. More...
 
template<class Base >
void forward_zmulvv_op (size_t p, size_t q, size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute forward mode Taylor coefficients for result of op = ZmulvvOp. More...
 
template<class Base >
void forward_zmulvv_op_0 (size_t i_z, const addr_t *arg, const Base *parameter, size_t cap_order, Base *taylor)
 Compute zero order forward mode Taylor coefficients for result of op = ZmulvvOp. More...
 
template<class Base >
void forward_zmulvv_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)
 Multiple directions forward mode Taylor coefficients for op = ZmulvvOp. More...
 
template<class SizeVector , class InternalSparsity >
void get_internal_sparsity (bool transpose, const vector< size_t > &internal_index, const InternalSparsity &internal_pattern, sparse_rc< SizeVector > &pattern_out)
 Get sparsity pattern for a sub-set of variables. More...
 
template<class InternalSparsity >
void get_internal_sparsity (bool transpose, const vector< size_t > &internal_index, const InternalSparsity &internal_pattern, vectorBool &pattern_out)
 
template<class InternalSparsity >
void get_internal_sparsity (bool transpose, const vector< size_t > &internal_index, const InternalSparsity &internal_pattern, vector< bool > &pattern_out)
 
template<class InternalSparsity >
void get_internal_sparsity (bool transpose, const vector< size_t > &internal_index, const InternalSparsity &internal_pattern, vector< std::set< size_t > > &pattern_out)
 
template<>
bool is_pod< OpCode > (void)
 specialize is_pod<OpCode> to be true More...
 
template<>
bool is_pod< sparse_list::pair_size_t > (void)
 
template<class Value >
unsigned short local_hash_code (const Value &value)
 General purpose hash code for an arbitrary value. More...
 
template<class Base >
unsigned short local_hash_code (OpCode op, const addr_t *arg, size_t npar, const Base *par)
 Specialized hash code for a CppAD operator and its arguments. More...
 
size_t NumArg (OpCode op)
 Number of arguments for a specified operator. More...
 
size_t NumRes (OpCode op)
 Number of variables resulting from the specified operation. More...
 
template<class Scalar >
const std::set< Scalar > & one_element_std_set (void)
 A standard set with one element. More...
 
const char * OpName (OpCode op)
 Fetch the name for a specified operation. More...
 
template<class Base >
void printOp (std::ostream &os, const local::player< Base > *play, size_t i_op, size_t i_var, OpCode op, const addr_t *ind)
 Prints a single operator and its operands. More...
 
template<class Type >
void printOpField (std::ostream &os, const char *leader, const Type &value, size_t width)
 Prints a single field corresponding to an operator. More...
 
template<class Value >
void printOpResult (std::ostream &os, size_t nfz, const Value *fz, size_t nrz, const Value *rz)
 Prints the result values correspnding to an operator. More...
 
void prototype_put_arg (void)
 Prototype for putting operation argument indices in the recording. More...
 
template<class Base , class Vector_set >
void rev_hes_sweep (const local::player< Base > *play, size_t n, size_t numvar, const Vector_set &for_jac_sparse, bool *RevJac, Vector_set &rev_hes_sparse)
 Given the forward Jacobian sparsity pattern for all the variables, and the reverse Jacobian sparsity pattern for the dependent variables, RevHesSweep computes the Hessian sparsity pattern for all the independent variables. More...
 
template<class Base , class Vector_set >
void rev_jac_sweep (const local::player< Base > *play, bool dependency, size_t n, size_t numvar, Vector_set &var_sparsity)
 Given the sparsity pattern for the dependent variables, RevJacSweep computes the sparsity pattern for all the independent variables. More...
 
template<class Base >
void reverse_abs_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = AbsOp. More...
 
template<class Base >
void reverse_acos_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = AcosOp. More...
 
template<class Base >
void reverse_acosh_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = AcoshOp. More...
 
template<class Base >
void reverse_addpv_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)
 Compute reverse mode partial derivative for result of op = AddpvOp. More...
 
template<class Base >
void reverse_addvv_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)
 Compute reverse mode partial derivatives for result of op = AddvvOp. More...
 
template<class Base >
void reverse_asin_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = AsinOp. More...
 
template<class Base >
void reverse_asinh_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = AsinhOp. More...
 
template<class Base >
void reverse_atan_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Reverse mode partial derivatives for result of op = AtanOp. More...
 
template<class Base >
void reverse_atanh_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Reverse mode partial derivatives for result of op = AtanhOp. More...
 
template<class Base >
void reverse_binary_op (size_t d, size_t i_z, addr_t *arg, const Base *parameter, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Prototype for reverse mode binary operator x op y (not used). More...
 
template<class Base >
void reverse_cond_op (size_t d, size_t i_z, const addr_t *arg, size_t num_par, const Base *parameter, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode Taylor coefficients for op = CExpOp. More...
 
template<class Base >
void reverse_cos_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = CosOp. More...
 
template<class Base >
void reverse_cosh_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = CoshOp. More...
 
template<class Base >
void reverse_csum_op (size_t d, size_t i_z, const addr_t *arg, size_t nc_partial, Base *partial)
 Compute reverse mode Taylor coefficients for result of op = CsumOp. More...
 
template<class Base >
void reverse_divpv_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)
 Compute reverse mode partial derivative for result of op = DivpvOp. More...
 
template<class Base >
void reverse_divvp_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)
 Compute reverse mode partial derivative for result of op = DivvpOp. More...
 
template<class Base >
void reverse_divvv_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)
 Compute reverse mode partial derivatives for result of op = DivvvOp. More...
 
template<class Base >
void 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)
 Compute reverse mode partial derivatives for result of op = ErfOp. More...
 
template<class Base >
void reverse_exp_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Reverse mode partial derivatives for result of op = ExpOp. More...
 
template<class Base >
void reverse_expm1_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Reverse mode partial derivatives for result of op = Expm1Op. More...
 
template<class Base >
void reverse_load_op (OpCode op, size_t d, size_t i_z, const addr_t *arg, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial, const addr_t *var_by_load_op)
 Reverse mode for op = LdpOp or LdvOp. More...
 
template<class Base >
void reverse_log1p_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = Log1pOp. More...
 
template<class Base >
void reverse_log_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = LogOp. More...
 
template<class Base >
void reverse_mulpv_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)
 Compute reverse mode partial derivative for result of op = MulpvOp. More...
 
template<class Base >
void reverse_mulvv_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)
 Compute reverse mode partial derivatives for result of op = MulvvOp. More...
 
template<class Base >
void reverse_pow_op (size_t d, size_t i_z, addr_t *arg, const Base *parameter, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Prototype for reverse mode z = pow(x, y) (not used). More...
 
template<class Base >
void reverse_powpv_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)
 Compute reverse mode partial derivative for result of op = PowpvOp. More...
 
template<class Base >
void reverse_powvp_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)
 Compute reverse mode partial derivative for result of op = PowvpOp. More...
 
template<class Base >
void reverse_powvv_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)
 Compute reverse mode partial derivatives for result of op = PowvvOp. More...
 
template<class Base >
void reverse_sign_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = SignOp. More...
 
template<class Base >
void reverse_sin_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = SinOp. More...
 
template<class Base >
void reverse_sinh_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = SinhOp. More...
 
template<class Vector_set >
void reverse_sparse_hessian_addsub_op (size_t i_z, const addr_t *arg, bool *jac_reverse, const Vector_set &for_jac_sparsity, Vector_set &rev_hes_sparsity)
 Reverse mode Hessian sparsity pattern for add and subtract operators. More...
 
template<class Vector_set >
void reverse_sparse_hessian_binary_op (size_t i_z, const addr_t *arg, bool *jac_reverse, Vector_set &for_jac_sparsity, Vector_set &rev_hes_sparsity)
 Prototype for reverse mode Hessian sparsity binary operators. More...
 
template<class Vector_set >
void reverse_sparse_hessian_cond_op (size_t i_z, const addr_t *arg, size_t num_par, bool *jac_reverse, Vector_set &hes_sparsity)
 Compute reverse Hessian sparsity patterns for op = CExpOp. More...
 
template<class Vector_set >
void reverse_sparse_hessian_csum_op (size_t i_z, const addr_t *arg, bool *rev_jacobian, Vector_set &rev_hes_sparsity)
 Reverse mode Hessian sparsity pattern for CSumOp operator. More...
 
template<class Vector_set >
void reverse_sparse_hessian_div_op (size_t i_z, const addr_t *arg, bool *jac_reverse, const Vector_set &for_jac_sparsity, Vector_set &rev_hes_sparsity)
 Reverse mode Hessian sparsity pattern for division operator. More...
 
template<class Vector_set >
void reverse_sparse_hessian_linear_unary_op (size_t i_z, size_t i_x, bool *rev_jacobian, const Vector_set &for_jac_sparsity, Vector_set &rev_hes_sparsity)
 Reverse mode Hessian sparsity pattern for linear unary operators. More...
 
template<class Vector_set >
void reverse_sparse_hessian_load_op (OpCode op, size_t i_z, const addr_t *arg, size_t num_combined, const size_t *combined, Vector_set &var_sparsity, Vector_set &vecad_sparsity, bool *var_jacobian, bool *vecad_jacobian)
 Reverse mode Hessian sparsity operations for LdpOp and LdvOp. More...
 
template<class Vector_set >
void reverse_sparse_hessian_mul_op (size_t i_z, const addr_t *arg, bool *jac_reverse, const Vector_set &for_jac_sparsity, Vector_set &rev_hes_sparsity)
 Reverse mode Hessian sparsity pattern for multiplication operator. More...
 
template<class Vector_set >
void reverse_sparse_hessian_nonlinear_unary_op (size_t i_z, size_t i_x, bool *rev_jacobian, const Vector_set &for_jac_sparsity, Vector_set &rev_hes_sparsity)
 Reverse mode Hessian sparsity pattern for non-linear unary operators. More...
 
template<class Vector_set >
void reverse_sparse_hessian_pow_op (size_t i_z, const addr_t *arg, bool *jac_reverse, const Vector_set &for_jac_sparsity, Vector_set &rev_hes_sparsity)
 Reverse mode Hessian sparsity pattern for power function. More...
 
template<class Vector_set >
void reverse_sparse_hessian_store_op (OpCode op, const addr_t *arg, size_t num_combined, const size_t *combined, Vector_set &var_sparsity, Vector_set &vecad_sparsity, bool *var_jacobian, bool *vecad_jacobian)
 Reverse mode sparsity operations for StpvOp and StvvOp. More...
 
template<class Vector_set >
void reverse_sparse_hessian_unary_op (size_t i_z, size_t i_x, bool *rev_jacobian, Vector_set &for_jac_sparsity, Vector_set &rev_hes_sparsity)
 Prototype for reverse mode Hessian sparsity unary operators. More...
 
template<class Vector_set >
void reverse_sparse_jacobian_binary_op (size_t i_z, const addr_t *arg, Vector_set &sparsity)
 Reverse mode Jacobian sparsity pattern for all binary operators. More...
 
template<class Vector_set >
void reverse_sparse_jacobian_cond_op (bool dependency, size_t i_z, const addr_t *arg, size_t num_par, Vector_set &sparsity)
 Compute reverse Jacobian sparsity patterns for op = CExpOp. More...
 
template<class Vector_set >
void reverse_sparse_jacobian_csum_op (size_t i_z, const addr_t *arg, Vector_set &sparsity)
 Reverse mode Jacobian sparsity pattern for CSumOp operator. More...
 
template<class Vector_set >
void reverse_sparse_jacobian_load_op (bool dependency, OpCode op, size_t i_z, const addr_t *arg, size_t num_combined, const size_t *combined, Vector_set &var_sparsity, Vector_set &vecad_sparsity)
 Reverse mode Jacobian sparsity operations for LdpOp and LdvOp. More...
 
template<class Vector_set >
void reverse_sparse_jacobian_store_op (bool dependency, OpCode op, const addr_t *arg, size_t num_combined, const size_t *combined, Vector_set &var_sparsity, Vector_set &vecad_sparsity)
 Reverse mode sparsity operations for StpvOp, StvpOp, and StvvOp. More...
 
template<class Vector_set >
void reverse_sparse_jacobian_unary_op (size_t i_z, size_t i_x, Vector_set &sparsity)
 Reverse mode Jacobian sparsity pattern for all unary operators. More...
 
template<class Base >
void reverse_sqrt_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = SqrtOp. More...
 
template<class Base >
void reverse_subpv_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)
 Compute reverse mode partial derivative for result of op = SubpvOp. More...
 
template<class Base >
void reverse_subvp_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)
 Compute reverse mode partial derivative for result of op = SubvpOp. More...
 
template<class Base >
void reverse_subvv_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)
 Compute reverse mode partial derivatives for result of op = SubvvOp. More...
 
template<class Base >
void reverse_sweep (size_t d, size_t n, size_t numvar, const local::player< Base > *play, size_t J, const Base *Taylor, size_t K, Base *Partial, bool *cskip_op, const pod_vector< addr_t > &var_by_load_op, const pod_vector< addr_t > &subgraph)
 Compute derivative of arbitrary order forward mode Taylor coefficients. More...
 
template<class Base >
void reverse_tan_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = TanOp. More...
 
template<class Base >
void reverse_tanh_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Compute reverse mode partial derivatives for result of op = TanOp. More...
 
template<class Base >
void reverse_unary1_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Prototype for reverse mode unary operator with one result (not used). More...
 
template<class Base >
void reverse_unary2_op (size_t d, size_t i_z, size_t i_x, size_t cap_order, const Base *taylor, size_t nc_partial, Base *partial)
 Prototype for reverse mode unary operator with two results (not used). More...
 
template<class Base >
void reverse_zmulpv_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)
 Compute reverse mode partial derivative for result of op = ZmulpvOp. More...
 
template<class Base >
void reverse_zmulvp_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)
 Compute reverse mode partial derivative for result of op = ZmulvpOp. More...
 
template<class Base >
void reverse_zmulvv_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)
 Compute reverse mode partial derivatives for result of op = ZmulvvOp. More...
 
static bool set_get_in_parallel (bool(*in_parallel_new)(void), bool set=false)
 Set and call the routine that determine if we are in parallel execution mode. More...
 
template<class SizeVector , class InternalSparsity >
void set_internal_sparsity (bool zero_empty, bool input_empty, bool transpose, const vector< size_t > &internal_index, InternalSparsity &internal_pattern, const sparse_rc< SizeVector > &pattern_in)
 Update the internal sparsity pattern for a sub-set of rows. More...
 
template<class InternalSparsity >
void set_internal_sparsity (bool zero_empty, bool input_empty, bool transpose, const vector< size_t > &internal_index, InternalSparsity &internal_pattern, const vectorBool &pattern_in)
 
template<class InternalSparsity >
void set_internal_sparsity (bool zero_empty, bool input_empty, bool transpose, const vector< size_t > &internal_index, InternalSparsity &internal_pattern, const vector< bool > &pattern_in)
 
template<class InternalSparsity >
void set_internal_sparsity (bool zero_empty, bool input_empty, bool transpose, const vector< size_t > &internal_index, InternalSparsity &internal_pattern, const vector< std::set< size_t > > &pattern_in)
 
template<class Vector_set >
void sparse_conditional_exp_op (size_t i_z, const addr_t *arg, size_t num_par)
 Shared documentation for conditional expression sparse operations (not called). More...
 
template<class Vector_set >
void sparse_load_op (OpCode op, size_t i_z, const addr_t *arg, size_t num_combined, const size_t *combined, Vector_set &var_sparsity, Vector_set &vecad_sparsity)
 Shared documentation for sparsity operations corresponding to op = LdpOp or LdvOp (not called). More...
 
template<class Vector_set >
void sparse_store_op (OpCode op, const addr_t *arg, size_t num_combined, const size_t *combined, Vector_set &var_sparsity, Vector_set &vecad_sparsity)
 Shared documnetation for sparsity operations corresponding to op = StpvOp or StvvOp (not called). More...
 
template<class VectorSet >
void sparsity_user2internal (sparse_pack &internal, const VectorSet &user, size_t n_set, size_t end, bool transpose, const char *error_msg)
 Copy a user vector of sets sparsity pattern to an internal sparse_pack object. More...
 
template<class VectorSet >
void sparsity_user2internal (sparse_list &internal, const VectorSet &user, size_t n_set, size_t end, bool transpose, const char *error_msg)
 Copy a user vector of sets sparsity pattern to an internal sparse_list object. More...
 
template<class VectorSet >
void sparsity_user2internal (sparse_sizevec &internal, const VectorSet &user, size_t n_set, size_t end, bool transpose, const char *error_msg)
 Copy a user vector of sets sparsity pattern to an internal sparse_sizevec object. More...
 
template<class Scalar >
const std::set< Scalar > & two_element_std_set (void)
 A standard set with a two elements. More...