2 # ifndef CPPAD_LOCAL_CSUM_OP_HPP
3 # define CPPAD_LOCAL_CSUM_OP_HPP
16 namespace CppAD {
namespace local {
98 const Base* parameter ,
110 arg[0] + arg[1] == arg[ arg[0] + arg[1] + 3 ]
114 Base* z = taylor + i_z * cap_order;
115 for(k = p; k <= q; k++)
118 z[p] = parameter[ arg[2] ];
124 x = taylor + arg[++j] * cap_order;
125 for(k = p; k <= q; k++)
131 x = taylor + arg[++j] * cap_order;
132 for(k = p; k <= q; k++)
210 template <
class Base>
217 const Base* parameter ,
229 arg[0] + arg[1] == arg[ arg[0] + arg[1] + 3 ]
233 size_t num_taylor_per_var = (cap_order-1) * r + 1;
234 size_t m = (q-1)*r + 1;
235 Base* z = taylor + i_z * num_taylor_per_var + m;
236 for(ell = 0; ell < r; ell++)
243 x = taylor + arg[++j] * num_taylor_per_var + m;
244 for(ell = 0; ell < r; ell++)
250 x = taylor + arg[++j] * num_taylor_per_var + m;
251 for(ell = 0; ell < r; ell++)
331 template <
class Base>
344 Base* pz = partial + i_z * nc_partial;
352 px = partial + arg[++j] * nc_partial;
360 px = partial + arg[++j] * nc_partial;
424 template <
class Vector_set>
428 Vector_set& sparsity )
429 { sparsity.clear(i_z);
436 sparsity.binary_union(
501 template <
class Vector_set>
505 Vector_set& sparsity )
513 sparsity.binary_union(
599 template <
class Vector_set>
604 Vector_set& rev_hes_sparsity )
612 rev_hes_sparsity.binary_union(
618 rev_jacobian[arg[j]] |= rev_jacobian[i_z];
CPPAD_TAPE_ADDR_TYPE addr_t
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.
size_t NumRes(OpCode op)
Number of variables resulting from the specified operation.
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.
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.
#define CPPAD_ASSERT_UNKNOWN(exp)
Check that exp is true, if not terminate execution.
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.
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.
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.