ファンクション・ジェネレータ
Dependencies: mbed SerialTxRxIntr MyTicker7 Array_Matrix
FastSin.hpp@1:ea5aa7f3d68c, 2020-12-23 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Wed Dec 23 01:07:09 2020 +0000
- Revision:
- 1:ea5aa7f3d68c
- Parent:
- 0:17c762b41fc7
2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:17c762b41fc7 | 1 | //----------------------------------------------------------- |
MikamiUitOpen | 0:17c762b41fc7 | 2 | // FastSin() 関数 |
MikamiUitOpen | 1:ea5aa7f3d68c | 3 | // sin(πx/2) の値の計算 |
MikamiUitOpen | 0:17c762b41fc7 | 4 | // |
MikamiUitOpen | 0:17c762b41fc7 | 5 | // 2020/06/01, Copyright (c) 2020 MIKAMI, Naoki |
MikamiUitOpen | 0:17c762b41fc7 | 6 | //----------------------------------------------------------- |
MikamiUitOpen | 0:17c762b41fc7 | 7 | |
MikamiUitOpen | 0:17c762b41fc7 | 8 | #ifndef FASTSIN_POLYNOMIAL_HPP |
MikamiUitOpen | 0:17c762b41fc7 | 9 | #define FASTSIN_POLYNOMIAL_HPP |
MikamiUitOpen | 0:17c762b41fc7 | 10 | |
MikamiUitOpen | 0:17c762b41fc7 | 11 | namespace Mikami |
MikamiUitOpen | 0:17c762b41fc7 | 12 | { |
MikamiUitOpen | 0:17c762b41fc7 | 13 | // 引数の範囲: -2 <= x <= 2 |
MikamiUitOpen | 0:17c762b41fc7 | 14 | inline float FastSin(float x) |
MikamiUitOpen | 0:17c762b41fc7 | 15 | { |
MikamiUitOpen | 0:17c762b41fc7 | 16 | static const float A1 = 1.570320019210f; |
MikamiUitOpen | 0:17c762b41fc7 | 17 | static const float A3 = -0.642113166941f; |
MikamiUitOpen | 0:17c762b41fc7 | 18 | static const float A5 = 0.071860854119f; |
MikamiUitOpen | 0:17c762b41fc7 | 19 | |
MikamiUitOpen | 0:17c762b41fc7 | 20 | if (x > 1.0f) x = 2.0f - x; |
MikamiUitOpen | 0:17c762b41fc7 | 21 | if (x < -1.0f) x = -2.0f - x; |
MikamiUitOpen | 0:17c762b41fc7 | 22 | float x2 = x*x; |
MikamiUitOpen | 0:17c762b41fc7 | 23 | return ((A5*x2 + A3)*x2 + A1)*x; |
MikamiUitOpen | 0:17c762b41fc7 | 24 | } |
MikamiUitOpen | 0:17c762b41fc7 | 25 | } |
MikamiUitOpen | 0:17c762b41fc7 | 26 | #endif // FASTSIN_POLYNOMIAL_HPP |