【发布时间】:2013-06-04 08:39:47
【问题描述】:
cmath exp() 和 log() 函数总是对称的吗?
如果我这样做了,那就去吧
double x;
double y = exp(log(x));
assert(x == y);
断言是否会失败,在这种情况下:在什么情况下?我们可以假设x 是一个有理数> 0。
【问题讨论】:
-
存在舍入错误和表示错误。
-
请注意,
x可以采用的 所有 值都是有理数(NaN/inf 除外)。 -
请在另一个 Stack Overflow 帖子中询问您关于
log和exp在不同系统上的保证的问题。在一篇文章中提出两个问题是有问题的,因为受访者可能会在不同的答案中回答不同的问题,并且您只能将其中一个标记为已接受。简而言之,当前的数学库在质量和具体实现方面各不相同,因此不同平台的结果并不完全相同。 -
@OliCharlesworth 是的,因此是理性的
-
@EricPostpischil 完成。