2 # ifndef CPPAD_LOCAL_SPARSE_UNARY_OP_HPP
3 # define CPPAD_LOCAL_SPARSE_UNARY_OP_HPP
15 namespace CppAD {
namespace local {
65 template <
class Vector_set>
69 Vector_set& sparsity )
74 sparsity.assignment(i_z, i_x, sparsity);
126 template <
class Vector_set>
130 Vector_set& sparsity )
135 sparsity.binary_union(i_x, i_x, i_z, sparsity);
155 template <
class Vector_set>
160 const Vector_set& for_jac_sparsity ,
161 Vector_set& rev_hes_sparsity )
166 rev_hes_sparsity.binary_union(i_x, i_x, i_z, rev_hes_sparsity);
168 rev_jacobian[i_x] |= rev_jacobian[i_z];
188 template <
class Vector_set>
193 const Vector_set& for_jac_sparsity ,
194 Vector_set& rev_hes_sparsity )
199 rev_hes_sparsity.binary_union(i_x, i_x, i_z, rev_hes_sparsity);
200 if( rev_jacobian[i_z] )
201 rev_hes_sparsity.binary_union(i_x, i_x, i_x, for_jac_sparsity);
203 rev_jacobian[i_x] |= rev_jacobian[i_z];
228 template <
class Vector_set>
231 const Vector_set& for_jac_sparsity ,
232 Vector_set& for_hes_sparsity )
235 typename Vector_set::const_iterator itr(for_jac_sparsity, i_v);
241 while( i_x < for_jac_sparsity.end() )
243 for_hes_sparsity.binary_union(i_x, i_x, i_v, for_jac_sparsity);
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.
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.
#define CPPAD_ASSERT_UNKNOWN(exp)
Check that exp is true, if not terminate execution.
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.
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.
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.