【发布时间】:2011-04-10 23:01:58
【问题描述】:
如何用 C++ 重写以下伪代码?
real array sine_table[-1000..1000]
for x from -1000 to 1000
sine_table[x] := sine(pi * x / 1000)
我需要创建一个 sine_table 查找表。
【问题讨论】:
-
任务的哪一部分需要帮助?调用
sin函数?应对您想要负索引的事实?声明一个数组?在 C++ 中编写for循环?在 C++ 中找出代表实数的类型的名称?全部? -
您可能希望在查找表完成后对其进行性能测试,并验证它实际上是否比仅调用 sin()(或 sinf())更快。现代 CPU 的运行速度比现代 RAM 快得多,以至于您可能会发现在表中查找结果比再次计算结果需要更长的时间(因为计算结果可以完全在 CPU 上完成)
-
不仅如此,你还有更多的代码,你会从 CPU 缓存中踢出一些行。您需要在真实的例程中对其进行性能测试,而不仅仅是在测试平台中。
-
这可能适用于嵌入式系统或 FPGA,其中查找比计算更快
x — (x^3)/(3!) + (x^5)/(5!) — (x^7)/(7!) + ...
标签: c++ lookup pseudocode trigonometry