Changeset 3334


Ignore:
Timestamp:
Sep 15, 2014 10:08:40 AM (6 years ago)
Author:
bradbell
Message:

Add chace2var argument to printOp (but not used yet).

Location:
branches/cache/cppad/local
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/cache/cppad/local/for_jac_sweep.hpp

    r3324 r3334  
    182182        std::cout << std::endl;
    183183        CppAD::vectorBool z_value(limit);
     184
     185        // 2DO: implement tracing cache
     186        CppAD::vector<addr_t> cache2var;
    184187# endif
    185188
     
    716719                        i_var,
    717720                        op,
    718                         arg_tmp
     721                        arg_tmp,
     722                        cache2var
    719723                );
    720724                if( NumRes(op) > 0 ) printOpResult(
  • branches/cache/cppad/local/forward1sweep.hpp

    r3324 r3334  
    292292# if CPPAD_FORWARD1SWEEP_TRACE
    293293        std::cout << std::endl;
     294
     295        // 2DO: implement tracing cache
     296        CppAD::vector<addr_t> cache2var;
    294297# endif
    295298        bool more_operators = true;
     
    826829                                        user_iy[i],
    827830                                        UsrrvOp,
    828                                         CPPAD_NULL
     831                                        CPPAD_NULL,
     832                                        cache2var
    829833                                );
    830834                                Base* Z_tmp = taylor + user_iy[i] * J;
     
    853857                                i_var,
    854858                                op,
    855                                 arg_tmp
     859                                arg_tmp,
     860                                cache2var
    856861                        );
    857862                        if( NumRes(op) > 0 ) printOpResult(
  • branches/cache/cppad/local/forward2sweep.hpp

    r3324 r3334  
    222222        std::cout << std::endl;
    223223        CppAD::vector<Base> Z_vec(q+1);
     224
     225        // 2DO: implement tracing cache
     226        CppAD::vector<addr_t> cache2var;
    224227# endif
    225228        bool more_operators = true;
     
    667670                                        user_iy[i],
    668671                                        UsrrvOp,
    669                                         CPPAD_NULL
     672                                        CPPAD_NULL,
     673                                        cache2var
    670674                                );
    671675                                Base* Z_tmp = taylor + user_iy[i]*((J-1) * r + 1);
     
    699703                                i_var,
    700704                                op,
    701                                 arg_tmp
     705                                arg_tmp,
     706                                cache2var
    702707                        );
    703708                        Base* Z_tmp = CPPAD_NULL;
  • branches/cache/cppad/local/op_code.hpp

    r3333 r3334  
    597597The operator code (OpCode) for this operation.
    598598
    599 \param ind
     599\param arg
    600600is the vector of argument indices for this operation
    601601(must have NumArg(op) elements).
     602
     603\param cache2var
     604If this vector has size zero, there is no cache and the argument indices
     605are the variable indices.
     606Otherwise, there is a cache and if arg[i_arg] is a variable
     607        cache2var[ arg[i_arg] - play->num_var_rec() ]
     608is the corresponding varialbe index. Note that this is a sort of kludge
     609becasue the cache comes after the varialbes and uses the same taylor vector.
    602610*/
    603611template <class Base>
    604612void printOp(
    605         std::ostream&          os     ,
    606         const player<Base>*    play   ,
    607         size_t                 i_op   ,
    608         size_t                 i_var  ,
    609         OpCode                 op     ,
    610         const addr_t*          ind    )
     613        std::ostream&                os        ,
     614        const player<Base>*          play      ,
     615        size_t                       i_op      ,
     616        size_t                       i_var     ,
     617        OpCode                       op        ,
     618        const addr_t*                arg       ,
     619        const CppAD::vector<addr_t>& cache2var )
    611620{       size_t i;
    612621        CPPAD_ASSERT_KNOWN(
     
    614623                "cannot print trace of AD operations in parallel mode"
    615624        );
     625        //
     626        size_t n_arg = NumArg(op);
     627        CppAD::vector<addr_t> ind(n_arg);
     628        for(i = 0; i < n_arg; i++)
     629                ind[i] = arg[i];
     630        if( cache2var.size() > 0 )
     631        {       for(i = 0; i < n_arg; i++)
     632                        if( arg_is_variable(op, arg, i) )
     633                                ind[i] = cache2var[ arg[i] ];
     634        }
     635        //
    616636        static const char *CompareOpName[] =
    617637                { "Lt", "Le", "Eq", "Ge", "Gt", "Ne" };
  • branches/cache/cppad/local/rev_hes_sweep.hpp

    r3301 r3334  
    205205        CppAD::vectorBool zf_value(limit);
    206206        CppAD::vectorBool zh_value(limit);
     207
     208        // 2DO: implement tracing cache
     209        CppAD::vector<addr_t> cache2var;
    207210# endif
    208211        bool more_operators = true;
     
    792795                        i_var,
    793796                        op,
    794                         arg
     797                        arg,
     798                        cache2var
    795799                );
    796800                // should also print RevJac[i_var], but printOpResult does not
  • branches/cache/cppad/local/rev_jac_sweep.hpp

    r3301 r3334  
    194194        std::cout << std::endl;
    195195        CppAD::vectorBool z_value(limit);
     196
     197        // 2DO: implement tracing cache
     198        CppAD::vector<addr_t> cache2var;
    196199# endif
    197200        bool more_operators = true;
     
    718721                        i_var,
    719722                        op,
    720                         arg
     723                        arg,
     724                        cache2var
    721725                );
    722726                if( NumRes(op) > 0 && op != BeginOp ) printOpResult(
Note: See TracChangeset for help on using the changeset viewer.