2 # ifndef CPPAD_LOCAL_COND_OP_HPP 
    3 # define CPPAD_LOCAL_COND_OP_HPP 
   15 namespace CppAD { 
namespace local { 
 
  104      const Base*    parameter   ,
 
  180 template <
class Vector_set>
 
  289 template <
class Base>
 
  296      const Base*    parameter   ,
 
  299 {    Base y_0, y_1, y_2, y_3;
 
  301      Base* z = taylor + i_z * cap_order;
 
  310           y_0 = taylor[ arg[2] * cap_order + 0 ];
 
  314           y_0 = parameter[ arg[2] ];
 
  318           y_1 = taylor[ arg[3] * cap_order + 0 ];
 
  322           y_1 = parameter[ arg[3] ];
 
  327                y_2 = taylor[ arg[4] * cap_order + 0 ];
 
  331                y_2 = parameter[ arg[4] ];
 
  335                y_3 = taylor[ arg[5] * cap_order + 0 ];
 
  339                y_3 = parameter[ arg[5] ];
 
  350      for(
size_t d = p; d <= q; d++)
 
  353                y_2 = taylor[ arg[4] * cap_order + d];
 
  358                y_3 = taylor[ arg[5] * cap_order + d];
 
  481 template <
class Base>
 
  488      const Base*    parameter   ,
 
  491 {    Base y_0, y_1, y_2, y_3;
 
  493      size_t num_taylor_per_var = (cap_order-1) * r + 1;
 
  494      Base* z = taylor + i_z * num_taylor_per_var;
 
  505           y_0 = taylor[ arg[2] * num_taylor_per_var + 0 ];
 
  509           y_0 = parameter[ arg[2] ];
 
  513           y_1 = taylor[ arg[3] * num_taylor_per_var + 0 ];
 
  517           y_1 = parameter[ arg[3] ];
 
  519      size_t m = (q-1) * r + 1;
 
  520      for(
size_t ell = 0; ell < r; ell++)
 
  523                y_2 = taylor[ arg[4] * num_taylor_per_var + m + ell];
 
  528                y_3 = taylor[ arg[5] * num_taylor_per_var + m + ell];
 
  630 template <
class Base>
 
  635      const Base*    parameter   ,
 
  638 {    Base y_0, y_1, y_2, y_3;
 
  648           y_0 = taylor[ arg[2] * cap_order + 0 ];
 
  652           y_0 = parameter[ arg[2] ];
 
  656           y_1 = taylor[ arg[3] * cap_order + 0 ];
 
  660           y_1 = parameter[ arg[3] ];
 
  664           y_2 = taylor[ arg[4] * cap_order + 0 ];
 
  668           y_2 = parameter[ arg[4] ];
 
  672           y_3 = taylor[ arg[5] * cap_order + 0 ];
 
  676           y_3 = parameter[ arg[5] ];
 
  678      z = taylor + i_z * cap_order;
 
  813 template <
class Base>
 
  819      const Base*    parameter   ,
 
  835      pz = partial + i_z * nc_partial + 0;
 
  838           y_0 = taylor[ arg[2] * cap_order + 0 ];
 
  842           y_0 = parameter[ arg[2] ];
 
  846           y_1 = taylor[ arg[3] * cap_order + 0 ];
 
  850           y_1 = parameter[ arg[3] ];
 
  854           py_2 = partial + arg[4] * nc_partial;
 
  868           py_3 = partial + arg[5] * nc_partial;
 
  980 template <
class Vector_set>
 
  986      Vector_set&        sparsity      )
 
  994      for( 
size_t j = 0; j < 4; j++)
 
  995      {    
if( ! ( arg[1] & k ) )
 
 1000      sparsity.clear(i_z);
 
 1003                sparsity.binary_union(i_z, i_z, arg[2], sparsity);
 
 1005                sparsity.binary_union(i_z, i_z, arg[3], sparsity);
 
 1008           sparsity.binary_union(i_z, i_z, arg[4], sparsity);
 
 1010           sparsity.binary_union(i_z, i_z, arg[5], sparsity);
 
 1121 template <
class Vector_set>
 
 1127      Vector_set&         sparsity      )
 
 1135      for( 
size_t j = 0; j < 4; j++)
 
 1136      {    
if( ! ( arg[1] & k ) )
 
 1143                sparsity.binary_union(arg[2], arg[2], i_z, sparsity);
 
 1145                sparsity.binary_union(arg[3], arg[3], i_z, sparsity);
 
 1149           sparsity.binary_union(arg[4], arg[4], i_z, sparsity);
 
 1151           sparsity.binary_union(arg[5], arg[5], i_z, sparsity);
 
 1278 template <
class Vector_set>
 
 1284      Vector_set&          hes_sparsity  )
 
 1293      for( 
size_t j = 0; j < 4; j++)
 
 1294      {    
if( ! ( arg[1] & k ) )
 
 1301           hes_sparsity.binary_union(arg[4], arg[4], i_z, hes_sparsity);
 
 1302           jac_reverse[ arg[4] ] |= jac_reverse[i_z];
 
 1306           hes_sparsity.binary_union(arg[5], arg[5], i_z, hes_sparsity);
 
 1307           jac_reverse[ arg[5] ] |= jac_reverse[i_z];
 
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. 
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. 
CPPAD_TAPE_ADDR_TYPE addr_t
size_t NumArg(OpCode op)
Number of arguments for a specified operator. 
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). 
size_t NumRes(OpCode op)
Number of variables resulting from the specified operation. 
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. 
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. 
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. 
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). 
#define CPPAD_ASSERT_UNKNOWN(exp)
Check that exp is true, if not terminate execution. 
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. 
std::complex< double > CondExpOp(enum CppAD::CompareOp cop, const std::complex< double > &left, const std::complex< double > &right, const std::complex< double > &trueCase, const std::complex< double > &falseCase)
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.