本文整理汇总了C++中Vector_set::is_element方法的典型用法代码示例。如果您正苦于以下问题:C++ Vector_set::is_element方法的具体用法?C++ Vector_set::is_element怎么用?C++ Vector_set::is_element使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Vector_set
的用法示例。
在下文中一共展示了Vector_set::is_element方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ForHesSweep
//.........这里部分代码省略.........
bool user_set = false; // sparsity pattern type is set
bool user_ok = false; // atomic op return value
// next expected operator in a UserOp sequence
enum { user_start, user_arg, user_ret, user_end } user_state = user_start;
//
// pointer to the beginning of the parameter vector
// (used by user atomic functions)
const Base* parameter = CPPAD_NULL;
if( num_par > 0 )
parameter = play->GetPar();
// Initialize
play->forward_start(op, arg, i_op, i_var);
CPPAD_ASSERT_UNKNOWN( op == BeginOp );
bool more_operators = true;
# if CPPAD_FOR_HES_SWEEP_TRACE
std::cout << std::endl;
CppAD::vectorBool zf_value(limit);
CppAD::vectorBool zh_value(limit * limit);
# endif
while(more_operators)
{
// next op
play->forward_next(op, arg, i_op, i_var);
# ifndef NDEBUG
if( i_op <= n )
{ CPPAD_ASSERT_UNKNOWN((op == InvOp) | (op == BeginOp));
}
else CPPAD_ASSERT_UNKNOWN((op != InvOp) & (op != BeginOp));
# endif
// does the Hessian in question have a non-zero derivative
// with respect to this variable
bool include = rev_jac_sparse.is_element(i_var, 0);
//
// operators to include even if derivative is zero
include |= op == EndOp;
include |= op == CSkipOp;
include |= op == UserOp;
include |= op == UsrapOp;
include |= op == UsravOp;
include |= op == UsrrpOp;
include |= op == UsrrvOp;
//
if( include ) switch( op )
{ // operators that should not occurr
// case BeginOp
// -------------------------------------------------
// operators that do not affect hessian
case AbsOp:
case AddvvOp:
case AddpvOp:
case CExpOp:
case DisOp:
case DivvpOp:
case InvOp:
case LdpOp:
case LdvOp:
case MulpvOp:
case ParOp:
case PriOp:
case SignOp:
case StppOp:
case StpvOp:
case StvpOp:
示例2: for_hes
//.........这里部分代码省略.........
// (used by atomic functions)
const Base* parameter = CPPAD_NULL;
if( num_par > 0 )
parameter = play->GetPar();
//
// which parametes are dynamic
const pod_vector<bool>& dyn_par_is( play->dyn_par_is() );
//
// skip the BeginOp at the beginning of the recording
play::const_sequential_iterator itr = play->begin();
// op_info
OpCode op;
size_t i_var;
const Addr* arg;
itr.op_info(op, arg, i_var);
CPPAD_ASSERT_UNKNOWN( op == BeginOp );
# if CPPAD_FOR_HES_TRACE
vector<size_t> atom_funrp; // parameter index for FunrpOp operators
std::cout << std::endl;
CppAD::vectorBool zf_value(limit);
CppAD::vectorBool zh_value(limit * limit);
# endif
bool flag; // temporary for use in switch cases below
bool more_operators = true;
while(more_operators)
{
// next op
(++itr).op_info(op, arg, i_var);
// does the Hessian in question have a non-zero derivative
// with respect to this variable
bool include = NumRes(op) > 0;
if( include )
include = rev_jac_sparse.is_element(i_var, 0);
//
// operators to include even if derivative is zero
include |= op == EndOp;
include |= op == CSkipOp;
include |= op == CSumOp;
include |= op == AFunOp;
include |= op == FunapOp;
include |= op == FunavOp;
include |= op == FunrpOp;
include |= op == FunrvOp;
//
if( include ) switch( op )
{ // operators that should not occurr
// case BeginOp
// -------------------------------------------------
// operators that do not affect hessian
case AbsOp:
case AddvvOp:
case AddpvOp:
case CExpOp:
case DisOp:
case DivvpOp:
case InvOp:
case LdpOp:
case LdvOp:
case MulpvOp:
case ParOp:
case PriOp:
case SignOp:
case StppOp:
case StpvOp:
示例3: ForHesSweep
//.........这里部分代码省略.........
// information set by forward_user (necessary initialization)
enum_user_state user_state = start_user;
// -------------------------------------------------------------------------
//
// pointer to the beginning of the parameter vector
// (used by user atomic functions)
const Base* parameter = CPPAD_NULL;
if( num_par > 0 )
parameter = play->GetPar();
// Initialize
play->forward_start(op, arg, i_op, i_var);
CPPAD_ASSERT_UNKNOWN( op == BeginOp );
bool more_operators = true;
# if CPPAD_FOR_HES_SWEEP_TRACE
vector<size_t> user_usrrp; // parameter index for UsrrpOp operators
CppAD::vectorBool zf_value(limit);
CppAD::vectorBool zh_value(limit * limit);
# endif
bool flag; // temporary for use in switch cases below
while(more_operators)
{
// next op
play->forward_next(op, arg, i_op, i_var);
# ifndef NDEBUG
if( i_op <= n )
{ CPPAD_ASSERT_UNKNOWN((op == InvOp) | (op == BeginOp));
}
else CPPAD_ASSERT_UNKNOWN((op != InvOp) & (op != BeginOp));
# endif
// does the Hessian in question have a non-zero derivative
// with respect to this variable
bool include = rev_jac_sparse.is_element(i_var, 0);
//
// operators to include even if derivative is zero
include |= op == EndOp;
include |= op == CSkipOp;
include |= op == CSumOp;
include |= op == UserOp;
include |= op == UsrapOp;
include |= op == UsravOp;
include |= op == UsrrpOp;
include |= op == UsrrvOp;
//
if( include ) switch( op )
{ // operators that should not occurr
// case BeginOp
// -------------------------------------------------
// operators that do not affect hessian
case AbsOp:
case AddvvOp:
case AddpvOp:
case CExpOp:
case DisOp:
case DivvpOp:
case InvOp:
case LdpOp:
case LdvOp:
case MulpvOp:
case ParOp:
case PriOp:
case SignOp:
case StppOp:
case StpvOp: