|
|
@@ -11,7 +11,6 @@
|
|
|
|
|
|
typedef float (*MathFn)(float);
|
|
|
|
|
|
-
|
|
|
template<MathFn mfn>
|
|
|
float mathTest(const char* _name)
|
|
|
{
|
|
|
@@ -32,37 +31,48 @@ float mathTest(const char* _name)
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+float rsqrt(float _a)
|
|
|
+{
|
|
|
+ return 1.0f/::sqrtf(_a);
|
|
|
+}
|
|
|
+
|
|
|
void math_bench()
|
|
|
{
|
|
|
bx::WriterI* writer = bx::getStdOut();
|
|
|
bx::writePrintf(writer, "Math bench\n\n");
|
|
|
|
|
|
- mathTest< ::sqrtf >("::sqrtf");
|
|
|
- mathTest<bx::sqrtRef >("bx::sqrtRef");
|
|
|
- mathTest<bx::sqrtSimd>("bx::sqrtSimd");
|
|
|
- mathTest<bx::sqrt >("bx::sqrt");
|
|
|
+ mathTest< ::sqrtf >("::sqrtf");
|
|
|
+ mathTest<bx::sqrtRef >("bx::sqrtRef");
|
|
|
+ mathTest<bx::sqrtSimd >("bx::sqrtSimd");
|
|
|
+ mathTest<bx::sqrt >("bx::sqrt");
|
|
|
+
|
|
|
+ bx::writePrintf(writer, "\n");
|
|
|
+ mathTest< ::rsqrt >("::rsqrtf");
|
|
|
+ mathTest<bx::rsqrtRef >("bx::sqrtRef");
|
|
|
+ mathTest<bx::rsqrtSimd>("bx::sqrtSimd");
|
|
|
+ mathTest<bx::rsqrt >("bx::rsqrt");
|
|
|
|
|
|
bx::writePrintf(writer, "\n");
|
|
|
- mathTest< ::sinf >("::sinf");
|
|
|
- mathTest<bx::sin >("bx::sin");
|
|
|
+ mathTest< ::sinf >("::sinf");
|
|
|
+ mathTest<bx::sin >("bx::sin");
|
|
|
|
|
|
bx::writePrintf(writer, "\n");
|
|
|
- mathTest< ::asinf >("::asinf");
|
|
|
- mathTest<bx::asin >("bx::asin");
|
|
|
+ mathTest< ::asinf>("::asinf");
|
|
|
+ mathTest<bx::asin >("bx::asin");
|
|
|
|
|
|
bx::writePrintf(writer, "\n");
|
|
|
- mathTest< ::cosf >("::cosf");
|
|
|
- mathTest<bx::cos >("bx::cos");
|
|
|
+ mathTest< ::cosf >("::cosf");
|
|
|
+ mathTest<bx::cos >("bx::cos");
|
|
|
|
|
|
bx::writePrintf(writer, "\n");
|
|
|
- mathTest< ::acosf >("::acosf");
|
|
|
- mathTest<bx::acos >("bx::acos");
|
|
|
+ mathTest< ::acosf>("::acosf");
|
|
|
+ mathTest<bx::acos >("bx::acos");
|
|
|
|
|
|
bx::writePrintf(writer, "\n");
|
|
|
- mathTest< ::tanf >("::tanf");
|
|
|
- mathTest<bx::tan >("bx::tan");
|
|
|
+ mathTest< ::tanf >("::tanf");
|
|
|
+ mathTest<bx::tan >("bx::tan");
|
|
|
|
|
|
bx::writePrintf(writer, "\n");
|
|
|
- mathTest< ::atanf >("::atanf");
|
|
|
- mathTest<bx::atan >("bx::atan");
|
|
|
+ mathTest< ::atanf>("::atanf");
|
|
|
+ mathTest<bx::atan >("bx::atan");
|
|
|
}
|