#include "cpuTime.H" #include "Pair.H" #include "randomGenerator.H" using namespace Foam; //- Number of calculations to do. Need 10^8-ish to get enough time (~2 seconds) // to meaningfully compare. static const label n = 100000000; //- Range of exponents to calculate. From -E to +E. Zero will be omitted so // that we can do roots, too. At small values (<8) integer powers win. At // larger values (>16), scalar powers do better. static const label E = 4; //- Run a given power method template Pair run(Pow pow) { randomGenerator rndGen(0); cpuTime time; scalar y = 0; for (label i = 0; i < n; ++ i) { const scalar x = rndGen.sampleAB(rootSmall, rootGreat); const label e = rndGen.sample01