xxxxxxxxxx
import std.algorithm;
import std.datetime.stopwatch;
import std.random;
import std.stdio;
double[] arr;
void fun()
{
auto r = arr.map!(x => x*x).sum(0.0);
writeln(r);
}
void fun1()
{
double r = 0.0;
foreach(e; arr)
{
r += e*e;
}
writeln(r);
}
void fun2()
{
double r = 0.0;
for(size_t i = 0; i < 32_000_000; i++)
{
auto e = arr[i];
r+=e*e;
}
writeln(r);
}
void main()
{
enum amountOfRuns = 10;
arr = new double[32_000_000];
foreach(ref e; arr)
{
e = uniform(0.0, 1000.0);
}
auto result = benchmark!(fun, fun1, fun2)(amountOfRuns);
writeln(result[0]/amountOfRuns);
writeln(result[1]/amountOfRuns);
writeln(result[2]/amountOfRuns);
}