AOT計算で呼び出し自体を早くする三角関数

Dependents:   NuMidi401 NuFM401

Revision:
0:2888f1d9a23e
Child:
2:d8c9637a5f09
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AOTTrigon.cpp	Mon Dec 22 13:10:53 2014 +0000
@@ -0,0 +1,21 @@
+#include "AOTTrigon.h"
+
+AOTTrigon::AOTTrigon(int divide) {
+    division = divide;
+    rate = division / (3.14159265358979323846264 * 2.0);
+    t_sin = new double[division];
+    for(int i = 0; i < division; i++) 
+        t_sin[i] = sin((double)i / division * (3.14159265358979323846264 * 2.0));
+}
+
+inline double AOTTrigon::sine(double x) {
+    return t_sin[(int)(fmod(x,3.14159265358979323846264*2.0)*rate)];
+}
+
+inline double AOTTrigon::cosine(double x) {
+    return sine(x+3.14159265358979323846264/2.0);
+}
+
+inline double AOTTrigon::tangent(double x) {
+    return sine(x)/cosine(x);
+}
\ No newline at end of file