AOT計算で呼び出し自体を早くする三角関数
Diff: AOTTrigon.cpp
- 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