Ignore:
Timestamp:
Oct 18, 2013 6:21:31 PM (7 years ago)
Author:
bradbell
Message:

First versiont that actually skips operations (forward0sweep only).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/opt_cond_exp/cppad/local/forward0sweep.hpp

    r2968 r2969  
    168168        }
    169169
     170        // zero order, so initialize conditional skip flags
     171        for(i = 0; i < numvar; i++)
     172                cskip_var[i] = false;
     173
    170174        // work space used by UserOp.
    171175        const size_t user_q = 0;     // lowest order
     
    219223                // this op
    220224                Rec->next_forward(op, arg, i_op, i_var);
     225
     226                // check if we are skipping this operation
     227                CPPAD_ASSERT_UNKNOWN( NumRes(CSkipOp) == 0 );
     228                CPPAD_ASSERT_UNKNOWN( NumRes(EndOp)  == 0 );
     229                while( cskip_var[i_var] && NumRes(op) > 0 )
     230                {       Rec->next_forward(op, arg, i_op, i_var);
     231                        if( op == CSumOp )
     232                        {       // CSumOp has a variable number of arguments and
     233                                Rec->forward_csum(op, arg, i_op, i_var);
     234                        }
     235                }
     236
    221237# ifndef NDEBUG
    222238                if( i_op <= n )
Note: See TracChangeset for help on using the changeset viewer.