Files
bx/tests/math_bench.cpp
Branimir Karadžić d652f283b2 Implemented SIMD sqrt.
2018-01-28 19:03:22 -08:00

72 lines
1.4 KiB
C++

/*
* Copyright 2010-2018 Branimir Karadzic. All rights reserved.
* License: https://github.com/bkaradzic/bx#license-bsd-2-clause
*/
#include <bx/math.h>
#include <bx/timer.h>
#include <bx/file.h>
#include <math.h>
void math_bench()
{
bx::WriterI* writer = bx::getStdOut();
bx::writePrintf(writer, "Math bench\n\n");
float result = 0.0f;
float max = 1389.0f;
{
int64_t elapsed = -bx::getHPCounter();
result = 0.0f;
for (float xx = 0.0f; xx < max; xx += 0.1f)
{
result += ::sqrtf(xx);
}
elapsed += bx::getHPCounter();
bx::writePrintf(writer, " ::sqrtf: %15f, %f\n", double(elapsed), result);
}
{
int64_t elapsed = -bx::getHPCounter();
result = 0.0f;
for (float xx = 0.0f; xx < max; xx += 0.1f)
{
result += bx::sqrtRef(xx);
}
elapsed += bx::getHPCounter();
bx::writePrintf(writer, " bx::sqrtRef: %15f, %f\n", double(elapsed), result);
}
{
int64_t elapsed = -bx::getHPCounter();
result = 0.0f;
for (float xx = 0.0f; xx < max; xx += 0.1f)
{
result += bx::sqrtRef(xx);
}
elapsed += bx::getHPCounter();
bx::writePrintf(writer, "bx::sqrtSimd: %15f, %f\n", double(elapsed), result);
}
{
int64_t elapsed = -bx::getHPCounter();
result = 0.0f;
for (float xx = 0.0f; xx < max; xx += 0.1f)
{
result += bx::sqrt(xx);
}
elapsed += bx::getHPCounter();
bx::writePrintf(writer, " bx::sqrt: %15f, %f\n", double(elapsed), result);
}
}