为实数提供动力的最快方法是什么?

What is the fastest way to power real numbers?

当然我知道 cmath(math.h) 中有一个很好的 pow() 函数,但没有触及 pow() 的背景什么是幂数最快的方法 亲手?

您在问两个不同的问题:

  • 为实数求幂的最快方法是什么?
  • 用自己的双手计算幂数的最快方法是什么?

这些有不同的答案。

pow 很快。标准库实现通常由非常聪明的人编写,由其他聪明人审查,然后由更聪明的人重构。因此,使用提供的标准库实现几乎总是比尝试自己重新实现标准库要好。

但是,如果您坚持创建自己的 pow 实现,您应该首先使用它们的泰勒级数展开实现 explog。然后使用下面的属性:

pow(base,power) = exp( power * log(base) )

注意,如果base为负数,则应先计算pow(-base,power),然后对base进行奇偶校验以确定结果的符号。