我希望向 D 编程语言标准库提交一个补丁,该补丁将允许使用该语言的编译时函数评估工具在编译时评估大部分 std.math。编译时函数评估有几个限制,最重要的是:
- 你不能使用汇编语言。
- 您不能调用 C 代码或源代码不可用的代码。
几个 std.math 函数违反了这些,需要编写编译时版本。我在哪里可以获得有关计算对数、指数、幂和三角函数等事物的良好算法的信息?我更喜欢算法的高级描述而不是实际代码,原因有两个:
为了避免法律上的歧义和需要使我的代码看起来与源代码“足够不同”以确保我拥有版权。
我想要简单、可移植的算法。我不关心微优化,只要它们至少是渐近有效的。
编辑:D的编译时函数评估模型允许在编译时计算的浮点结果与在运行时计算的结果不同,所以我不在乎我的编译时算法是否给出与运行时版本完全相同的结果只要它们在实际显着程度上不那么准确。