gpt4 book ai didi

c - 使用浮点运算来表示整数运算的标准保证

转载 作者:行者123 更新时间:2023-12-04 11:58:30 24 4
gpt4 key购买 nike

我正在编写一些要在非常异构的集群上运行的代码。该程序使用 3、4 或 5 个 32 位字(无符号整数)执行区间算术,以表示区间的高精度边界。在我看来,在某些情况下用浮点数表示某些单词可能会产生加速。所以,我的问题是两部分:

1) C11 标准中是否有任何关于将精确表示的整数范围以及哪些范围的输入对的乘积可以精确表示的保证?一个乘法错误可能会完全改变结果。

2)这甚至是一种合理的方法吗?似乎处理器内浮点和整数处理的分离将允许数据同时通过两条管道运行,从而提高吞吐量。不过,我对硬件知之甚少,所以我不确定整数和浮点的管道实际上是否都是分开的,或者,如果它们是分开的,是否可以同时使用。

我知道这种事情的有效性取决于平台,但现在我担心这种方法的可靠性。如果它可靠,我可以对其进行基准测试并查看,但是我无法证明可靠性。其次,也许这种方法没有什么希望,如果是这样,我想知道这样我就可以专注于其他地方。

谢谢!

最佳答案

通过 <float.h> 中定义的宏,您应该可以使用所有您需要知道的限制并且仍然具有整数精度。 .那里有浮点类型的准确描述,FLT_RADIX对于基数,FLT_MANT_DIG对于位数等。

如您所说,这种方法是否有效取决于平台。您应该意识到这在很大程度上取决于您拥有的特定处理器,而不仅仅是处理器系列。从一种 Intel 或 AMD 处理器变体到另一种,可能已经存在明显的差异。因此,您基本上会对所有可能性进行基准测试,并拥有决定程序启动时使用哪个变体的代码。

关于c - 使用浮点运算来表示整数运算的标准保证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28956587/

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