如何在 log-sum-exp 中包含负数?

计算科学 数字 稳定 浮点 精确
2021-11-28 09:47:19

我想知道一些小数的总和,例如 {e^-1000, -e^1001, e^1002...}

如果所有数字都是正数,我可以使用 log-sum-exp 算法。但不幸的是,负数也包含在数字中。

有什么方法可以计算这些数字的总和吗?

1个回答

就 Python 而言,使用

from cmath import log, exp

def clog(x):
    if  x == 0:
        return -float('inf')
    else:
        return log(x)

的负值,这给出了,对于,这给出了xlog(x)=log(x)+iπlog(0)