Browse Source

test perf fastSin

Mathias Labeyrie 11 years ago
parent
commit
74cfc7451a
1 changed files with 21 additions and 0 deletions
  1. 21 0
      test/gtx/gtx_fast_trigonometry.cpp

+ 21 - 0
test/gtx/gtx_fast_trigonometry.cpp

@@ -33,12 +33,33 @@ namespace fastCos{
 	}
 }
 
+namespace fastSin{
+	int perf()
+	{
+		const float begin = -glm::pi<float>();
+		const float end = glm::pi<float>();
+		float result = 0.f;
+		const std::clock_t timestamp1 = std::clock();
+		for (float i = begin; i<end; i = nextafterf(i, end))
+			result = glm::fastSin(i);
+		const std::clock_t timestamp2 = std::clock();
+		for (float i = begin; i<end; i = nextafterf(i, end))
+			result = glm::sin(i);
+		const std::clock_t timestamp3 = std::clock();
+		const std::clock_t time_fast = timestamp2 - timestamp1;
+		const std::clock_t time_default = timestamp3 - timestamp2;
+		std::printf("fastSin Time %d clocks\n", static_cast<unsigned int>(time_fast));
+		std::printf("sin Time %d clocks\n", static_cast<unsigned int>(time_default));
+		return time_fast < time_default ? 0 : 1;
+	}
+}
 
 int main()
 {
 	int Error(0);
 
 	Error += ::fastCos::perf();
+	Error += ::fastSin::perf();
 
 	return Error;
 }