以下函数计算
log(x + y)
,给定log(x)
和log(y)
的值,如果x
或y
非常大或非常小,则避免溢出或下溢:double log_add(double logx, double logy)
{
return max(logx, logy) + log1p(exp(-fabs(logx - logy)));
}
必须有一个类似的log_sub
函数来计算log(x - y)
。它是什么?
更一般地,我需要计算log(x - y - z)
,已知log(x)
、log(y)
和log(z)
。通过log_add
和log_sub
,我可以在两个步骤中计算log(x - y - z)
,但也许有一种更优化的方法吗?
y
的对数,而不是y
本身。 - a06e