使用双精度浮点精确到2 ^ 53实现整数乘法吗?

Ste*_* Lu 5 math floating-point linear-algebra double-precision lapack

我问,因为我正在计算矩阵乘法,其中所有矩阵值都是整数.

我想使用LAPACK,以便获得正确的快速代码.将两个大整数(其乘积小于2^53)整数存储为doubles时,会产生double包含精确整数结果的整数吗?

Dav*_*nan 6

你的分析是正确的:

  • -2 53和2 53之间的所有整数都可以精确表示为双精度.
  • IEEE754标准要求精确执行计算,然后四舍五入到最接近的可表示数字.

因此,将精确表示两个值的乘积,该乘积等于该范围中的整数.

参考: 每个计算机科学家应该了解浮点运算.关键部分是IEEE标准与操作有关的讨论.这包含上面第二个要点的陈述.你已经知道了第一个要点,这是完成论证的第二点.