----------------------------------------- lines 6-52 of file: speed/double/poly.cpp ----------------------------------------- {xrst_begin double_poly.cpp} Double Speed: Evaluate a Polynomial ################################### Specifications ************** See :ref:`link_poly-name` . Implementation ************** {xrst_spell_off} {xrst_code cpp} */ # include # include // Note that CppAD uses global_option["memory"] at the main program level # include extern std::map global_option; bool link_poly( size_t size , size_t repeat , CppAD::vector &a , // coefficients of polynomial CppAD::vector &z , // polynomial argument value CppAD::vector &p ) // second derivative w.r.t z { if(global_option["onetape"]||global_option["atomic"]||global_option["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; } /* {xrst_code} {xrst_spell_on} {xrst_end double_poly.cpp}