CQエレクトロニクス・セミナで使用するファンクション・ジェネレータの プログラム

Dependencies:   Array_Matrix mbed SerialTxRxIntr MyTicker7

Committer:
MikamiUitOpen
Date:
Fri Feb 25 02:36:55 2022 +0000
Revision:
0:8c8bc21159d9
1

Who changed what in which revision?

UserRevisionLine numberNew 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