Double Speed: Evaluate a Polynomial
Keywords: double speed: evaluate polynomial link_poly speed specifications implementation

| Prev | Next |  |  |  |  |  | double_poly.cpp |

Double Speed: Evaluate a Polynomial
Specifications
See link_poly .
Implementation `

    # include <cppad/cppad.hpp>
    # include <cppad/speed/uniform_01.hpp>

    // Note that CppAD uses global_memory at the main program level
    extern bool
         global_onetape, global_atomic, global_optimize;

    bool link_poly(
         size_t                     size     ,
         size_t                     repeat   ,
         CppAD::vector<double>     &a        ,  // coefficients of polynomial
         CppAD::vector<double>     &z        ,  // polynomial argument value
         CppAD::vector<double>     &p        )  // second derivative w.r.t z
    {
         if(global_onetape||global_atomic||global_optimize)
              return false;
         // -----------------------------------------------------
         // setup

         // ------------------------------------------------------
         while(repeat--)
         {    // get the next argument value
              CppAD::uniform_01(1, z);

              // evaluate the polynomial at the new argument value
              p[0] = CppAD::Poly(0, a, z[0]);
         }
         return true;
    }

`

Input File: speed/double/poly.cpp