AOT計算で呼び出し自体を早くする三角関数
Diff: AOTTrigon.h
- Revision:
- 10:5bccb4bc4f33
- Parent:
- 9:d6153f6a5f75
- Child:
- 11:19594eeb6f2b
--- a/AOTTrigon.h Mon Dec 29 02:41:37 2014 +0000 +++ b/AOTTrigon.h Mon Dec 29 08:58:51 2014 +0000 @@ -1,5 +1,6 @@ #pragma once #include "math.h" +#include "mbed.h" /** AOTTrigon class * AOT計算によって三角関数の計算を高速化します。 @@ -9,27 +10,27 @@ public: AOTTrigon(); - inline float sin(float); - inline float cos(float); - inline float tan(float); + inline double sin(double); + inline double cos(double); + inline double tan(double); private: - float *t_sin; - float rate; + double *t_sin; + double rate; const double pi; }; -inline float AOTTrigon::sin(float x) +inline double AOTTrigon::sin(double x) { return t_sin[((int)(x * rate)) & 0xFF]; } -inline float AOTTrigon::cos(float x) +inline double AOTTrigon::cos(double x) { return sin(x + pi / 2.0f); } -inline float AOTTrigon::tan(float x) +inline double AOTTrigon::tan(double x) { return sin(x) / cos(x); } \ No newline at end of file