# include <cppad/utility/speed_test.hpp>
// Some compilers have gotten smarter and do not calucate somthing that is not used// so make the result a global.
double global_result = 0.0;
std::string Test(size_t size, size_t repeat)
{ // setup
double *a = new double[size];
double *b = new double[size];
size_t i = size;;
while(i)
{ --i;
a[i] = double(i);
b[i] = double(2 * i);
}
// operations we are timingwhile(repeat--)
{ i = size;;
while(i)
{ --i;
global_result += a[i] * b[i];
}
}
// teardowndelete [] a;
delete [] b;
// return a test name that is valid for all sizes and repeatsreturn "double: result = sum_i a[i] * b[i]";
}
int main(void)
{
CppAD::SpeedTest(Test, 20, 20, 100);
return 0;
}
Output
Executing of the program above generated the following output
(the rates will be different for each particular system):