<commit_before>/*
 * Copyright 2010-2018 <NAME>. 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::sqrtSimd(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);
	}
}<commit_msg>Added more math benchmarks.<commit_after>/*
 * Copyright 2010-2018 <NAME>. 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>

typedef float (*MathFn)(float);


template<MathFn mfn>
float mathTest(const char* _name)
{
	bx::WriterI* writer = bx::getStdOut();
	int64_t elapsed = -bx::getHPCounter();

	float result = 0.0f;
	const float max = 1389.0f;

	for (float xx = 0.0f; xx < max; xx += 0.1f)
	{
		result += mfn(xx);
	}

	elapsed += bx::getHPCounter();
	bx::writePrintf(writer, "%-20s: %15f\n", _name, double(elapsed) );

	return result;
}

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");

	bx::writePrintf(writer, "\n");
	mathTest<  ::sinf   >("::sinf");
	mathTest<bx::sin    >("bx::sin");

	bx::writePrintf(writer, "\n");
	mathTest<  ::asinf  >("::asinf");
	mathTest<bx::asin   >("bx::asin");

	bx::writePrintf(writer, "\n");
	mathTest<  ::cosf   >("::cosf");
	mathTest<bx::cos    >("bx::cos");

	bx::writePrintf(writer, "\n");
	mathTest<  ::acosf  >("::acosf");
	mathTest<bx::acos   >("bx::acos");

	bx::writePrintf(writer, "\n");
	mathTest<  ::tanf   >("::tanf");
	mathTest<bx::tan    >("bx::tan");

	bx::writePrintf(writer, "\n");
	mathTest<  ::atanf  >("::atanf");
	mathTest<bx::atan   >("bx::atan");
}
{'fraction_non_alphanumeric': 0.22684563758389262, 'fraction_numerical': 0.027516778523489934, 'mean_word_length': 4.018518518518518, 'pattern_counts': {'":': 7, '<': 35, '<?xml version=': 0, '>': 30, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4079858', 'n_tokens_mistral': 1441, 'n_tokens_neox': 1270, 'n_words': 242}