【发布时间】:2018-04-24 21:15:03
【问题描述】:
我正在将一些 C# 代码转换为 C++,其中包含 Math.Log(1 + x) 的用法,其中 x 可以是接近于零的非常小的值。在处理log(1 + x) 时,我遇到了使用std::log1p 的建议(在C++ 中),其中x 接近于零,即to avoid loss of precision。
C#/.NET Math.Log 方法是否以同样避免精度损失的方式实现?我在 .NET API 参考中找不到类似的 Math.Log1p() 函数。
【问题讨论】:
-
自己试试?
-
MSDN 对此事有什么要说的吗?
-
@Plutonix - 我尝试搜索 log1p 但找不到任何东西。 Math.Log 条目的侧边栏中没有类似的内容:msdn.microsoft.com/en-us/library/system.math.log(v=vs.110).aspx
-
@Steve 我现在没有测试 C#/.NET 代码的方法,我在 linux 机器上编写 C++(是的,我想我可以安装 Mono 等)
-
在我看来精度损失不在函数内部,而是在准备输入参数时。
标签: c# c++ .net precision logarithm