Ignore:
Timestamp:
Oct 18, 2013 10:16:02 PM (7 years ago)
Author:
bradbell
Message:

Convert forward_sweep to handel CSkip operators.

forward0sweep.hpp: minor clean up of doxygen, alphabetic order ops.

File:
1 edited

Legend:

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

    r2969 r2970  
    111111index i on the tape.
    112112
     113\param cskip_var
     114Is a vector with size \c numvar,
     115the input value of the elements does not matter.
     116Upon return, if cskip_var[i] is true, the value of variable with index i
     117does not affect any of the dependent variable (given the value
     118of the independent variables).
     119
    113120\a return
    114121The return value is equal to the number of ComOp operations
     
    117124(Note that if NDEBUG is true, there are no ComOp operations
    118125in Rec and hence this return value is always zero.)
    119 
    120 \param cskip_var
    121 Is a vector with size \c numvar,
    122 the input value of the elements does not matter.
    123 Upon return, if cskip_var[i] is true, the value of variable with index i
    124 does not affect any of the dependent variable (given the value
    125 of the independent variables).
    126126*/
    127127
     
    223223                // this op
    224224                Rec->next_forward(op, arg, i_op, i_var);
     225                CPPAD_ASSERT_UNKNOWN( (i_op > n)  | (op == InvOp) ); 
     226                CPPAD_ASSERT_UNKNOWN( (i_op <= n) | (op != InvOp) ); 
    225227
    226228                // check if we are skipping this operation
     
    235237                }
    236238
    237 # ifndef NDEBUG
    238                 if( i_op <= n )
    239                 {       CPPAD_ASSERT_UNKNOWN((op == InvOp) | (op == BeginOp));
    240                 }
    241                 else    CPPAD_ASSERT_UNKNOWN((op != InvOp) & (op != BeginOp));
    242 # endif
    243 
    244239                // action to take depends on the case
    245240                switch( op )
     
    279274                        CPPAD_ASSERT_UNKNOWN( i_var < numvar  );
    280275                        forward_atan_op_0(i_var, arg[0], J, Taylor);
     276                        break;
     277                        // -------------------------------------------------
     278
     279                        case CExpOp:
     280                        // Use the general case with d == 0
     281                        // (could create an optimzied verison for this case)
     282                        forward_cond_op_0(
     283                                i_var, arg, num_par, parameter, J, Taylor
     284                        );
     285                        break;
     286                        // ---------------------------------------------------
     287                        case ComOp:
     288                        forward_comp_op_0(
     289                        compareCount, arg, num_par, parameter, J, Taylor
     290                        );
     291                        break;
     292                        // ---------------------------------------------------
     293
     294                        case CosOp:
     295                        // sin(x), cos(x)
     296                        CPPAD_ASSERT_UNKNOWN( i_var < numvar  );
     297                        forward_cos_op_0(i_var, arg[0], J, Taylor);
     298                        break;
     299                        // ---------------------------------------------------
     300
     301                        case CoshOp:
     302                        // sinh(x), cosh(x)
     303                        CPPAD_ASSERT_UNKNOWN( i_var < numvar  );
     304                        forward_cosh_op_0(i_var, arg[0], J, Taylor);
    281305                        break;
    282306                        // -------------------------------------------------
     
    301325                                0, 0, i_var, arg, num_par, parameter, J, Taylor
    302326                        );
    303                         break;
    304 
    305                         // -------------------------------------------------
    306                         case CExpOp:
    307                         // Use the general case with d == 0
    308                         // (could create an optimzied verison for this case)
    309                         forward_cond_op_0(
    310                                 i_var, arg, num_par, parameter, J, Taylor
    311                         );
    312                         break;
    313                         // ---------------------------------------------------
    314                         case ComOp:
    315                         forward_comp_op_0(
    316                         compareCount, arg, num_par, parameter, J, Taylor
    317                         );
    318                         break;
    319                         // ---------------------------------------------------
    320 
    321                         case CosOp:
    322                         // sin(x), cos(x)
    323                         CPPAD_ASSERT_UNKNOWN( i_var < numvar  );
    324                         forward_cos_op_0(i_var, arg[0], J, Taylor);
    325                         break;
    326                         // ---------------------------------------------------
    327 
    328                         case CoshOp:
    329                         // sinh(x), cosh(x)
    330                         CPPAD_ASSERT_UNKNOWN( i_var < numvar  );
    331                         forward_cosh_op_0(i_var, arg[0], J, Taylor);
    332327                        break;
    333328                        // -------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.