给定log(a)
and log(b)
,我想计算log(a+b)
(以数值稳定的方式)。
我为此写了一个小函数:
def log_add(logA,logB):
if logA == log(0):
return logB
if logA<logB:
return log_add(logB,logA)
return log( 1 + math.exp(logB-logA) ) + logA
我写了一个程序,这是迄今为止最耗时的一段代码。显然我可以尝试优化它(例如,消除递归调用)。
你知道从和计算的标准math
或函数吗?numpy
log(a+b)
log(a)
log(b)
如果没有,您是否知道为该函数制作单个 C++ 挂钩的简单方法?这不是一个复杂的函数(它使用浮点数),正如我所说,它占用了我运行时的大部分时间。
在此先感谢数值方法忍者!