CQエレクトロニクス・セミナで使用するファンクション・ジェネレータの プログラム
Dependencies: Array_Matrix mbed SerialTxRxIntr MyTicker7
FastSin.hpp@0:8c8bc21159d9, 2022-02-25 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Fri Feb 25 02:36:55 2022 +0000
- Revision:
- 0:8c8bc21159d9
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:8c8bc21159d9 | 1 | //----------------------------------------------------------- |
MikamiUitOpen | 0:8c8bc21159d9 | 2 | // FastSin() 関数 |
MikamiUitOpen | 0:8c8bc21159d9 | 3 | // sin(πx/2) の値の計算 |
MikamiUitOpen | 0:8c8bc21159d9 | 4 | // |
MikamiUitOpen | 0:8c8bc21159d9 | 5 | // 2020/06/01, Copyright (c) 2020 MIKAMI, Naoki |
MikamiUitOpen | 0:8c8bc21159d9 | 6 | //----------------------------------------------------------- |
MikamiUitOpen | 0:8c8bc21159d9 | 7 | |
MikamiUitOpen | 0:8c8bc21159d9 | 8 | #ifndef FASTSIN_POLYNOMIAL_HPP |
MikamiUitOpen | 0:8c8bc21159d9 | 9 | #define FASTSIN_POLYNOMIAL_HPP |
MikamiUitOpen | 0:8c8bc21159d9 | 10 | |
MikamiUitOpen | 0:8c8bc21159d9 | 11 | namespace Mikami |
MikamiUitOpen | 0:8c8bc21159d9 | 12 | { |
MikamiUitOpen | 0:8c8bc21159d9 | 13 | // 引数の範囲: -2 <= x <= 2 |
MikamiUitOpen | 0:8c8bc21159d9 | 14 | inline float FastSin(float x) |
MikamiUitOpen | 0:8c8bc21159d9 | 15 | { |
MikamiUitOpen | 0:8c8bc21159d9 | 16 | static const float A1 = 1.570320019210f; |
MikamiUitOpen | 0:8c8bc21159d9 | 17 | static const float A3 = -0.642113166941f; |
MikamiUitOpen | 0:8c8bc21159d9 | 18 | static const float A5 = 0.071860854119f; |
MikamiUitOpen | 0:8c8bc21159d9 | 19 | |
MikamiUitOpen | 0:8c8bc21159d9 | 20 | if (x > 1.0f) x = 2.0f - x; |
MikamiUitOpen | 0:8c8bc21159d9 | 21 | if (x < -1.0f) x = -2.0f - x; |
MikamiUitOpen | 0:8c8bc21159d9 | 22 | float x2 = x*x; |
MikamiUitOpen | 0:8c8bc21159d9 | 23 | return ((A5*x2 + A3)*x2 + A1)*x; |
MikamiUitOpen | 0:8c8bc21159d9 | 24 | } |
MikamiUitOpen | 0:8c8bc21159d9 | 25 | } |
MikamiUitOpen | 0:8c8bc21159d9 | 26 | #endif // FASTSIN_POLYNOMIAL_HPP |