-------------------------------------------- lines 6-54 of file: speed/double/mat_mul.cpp -------------------------------------------- {xrst_begin double_mat_mul.cpp} Double Speed: Matrix Multiplication ################################### Specifications ************** See :ref:`link_mat_mul-name` . Implementation ************** {xrst_spell_off} {xrst_code cpp} */ # include # include # include // Note that CppAD uses global_option["memory"] at the main program level # include extern std::map global_option; bool link_mat_mul( size_t size , size_t repeat , CppAD::vector& x , CppAD::vector& z , CppAD::vector& dz ) { if(global_option["onetape"]||global_option["atomic"]||global_option["optimize"]) return false; // ----------------------------------------------------- size_t n = size * size; // number of independent variables CppAD::vector y(n); while(repeat--) { // get the next matrix CppAD::uniform_01(n, x); // do computation mat_sum_sq(size, x, y, z); } return true; } /* {xrst_code} {xrst_spell_on} {xrst_end double_mat_mul.cpp}