lines 6-63 of file: speed/double/ode.cpp {xrst_begin double_ode.cpp} Double Speed: Ode Solution ########################## Specifications ************** See :ref:`link_ode-name` . Implementation ************** {xrst_spell_off} {xrst_code cpp} */ # include # include # include # include // Note that CppAD uses global_option["memory"] at the main program level # include extern std::map global_option; bool link_ode( size_t size , size_t repeat , CppAD::vector &x , CppAD::vector &jacobian ) { if(global_option["onetape"]||global_option["atomic"]||global_option["optimize"]) return false; // ------------------------------------------------------------- // setup assert( x.size() == size ); size_t n = size; size_t m = 0; CppAD::vector f(n); while(repeat--) { // choose next x value uniform_01(n, x); // evaluate function CppAD::ode_evaluate(x, m, f); } size_t i; for(i = 0; i < n; i++) jacobian[i] = f[i]; return true; } /* {xrst_code} {xrst_spell_on} {xrst_end double_ode.cpp}