我正在编写一个应用程序,在某个块中需要对实数进行3*500*500次幂运算。当我使用exp(y*log(x))算法时,程序明显会出现延迟。如果我使用另一种基于数据类型玩耍的算法,则速度显着更快,但该算法不太精确,虽然为模拟提供了不错的结果,但在速度方面仍不完美。
是否有任何精确的幂运算算法,比exp(y*log(x))更快?
谢谢您的帮助。
是否有任何精确的幂运算算法,比exp(y*log(x))更快?
谢谢您的帮助。
根据你的算法(特别是如果你没有太多的加法),有时可以在对数空间下工作(至少部分)。你可能已经考虑过这一点,但如果你的中间表示是log_x和log_y,那么log(x^y) = exp(log_y) * log_x,速度会更快。如果你能够有选择地使用它,那么计算log(x^y)作为y * log_x甚至更便宜。如果你可以避免甚至只是几个指数运算,你就可以获得很高的性能。如果有任何方法可以重写你的循环,以便将指数运算操作移到最内层循环之外,那么这几乎可以确定会提高性能。