gpt4 book ai didi

c++ - 对重载函数的模糊调用 - log 与 ptrdiff_t

转载 作者:太空宇宙 更新时间:2023-11-04 13:59:13 24 4
gpt4 key购买 nike

我收到了这样的代码行entr -= normed_eigval * log(normed_eigval)/log(dim);

虽然 normed_eigval 源自 complexArray*,但我知道 dim 属于 ptrdiff_t 类型。当我尝试使用 MATLAB 的 MEX 接口(interface)和 Visual Studio 10 作为编译器编译代码时,我收到一个错误:

C2668: ambiguous call to overloaded function

告诉我 log 可以是 long doublefloatdouble

我使用的是 64 位 Windows 机器。我可以使用类型转换解决这个问题吗?如果是,我应该选择哪种类型?我认为如果 size_tptrdiff_t 要转换为标准整数类型,在 64 位 Windows 下可能会出现一些问题...

最佳答案

选择与 normed_eigval 一致的那个,因为它决定了您使用的数字精度。您会将 ptrdiff_t 整数转换为浮点值,然后取其对数。

如果您需要更快地进行,您可能可以预先计算对数的倒数。

关于c++ - 对重载函数的模糊调用 - log 与 ptrdiff_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19923862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com