1

我有许多单精度 IEEE 浮点数的列表。如何遍历列表并将所有数字相乘以确保最大精度,并且没有上溢/下溢?我们假设不应该有任意精度乘法的上溢/下溢,然后截断为浮点数。

是否可以在不实际乘以数字的情况下查看浮点列表并找出最佳顺序,或者我们必须开始乘以,然后才尝试找到我们应该乘以的下一个数字以保持最大精度,在一种反馈中(下一步搜索)算法?我们可以限制自己基于遍历列表并仅添加指数进行排序吗?

对于 i 均匀分布的浮点数,其尾数为 m 位,指数为 n 位,其中一个 cpu 将乘法结果存储在一个具有 r 位尾数和 s 位指数的寄存器中,然后在读取时截断回 m+n,假设以任意精度将这些数字相乘并截断为原始 m+n 位格式不会产生上溢/下溢,那么与有限 r+s 位寄存器相乘不会产生溢出的可能性有多大?在没有溢出的情况下,根据 i、n、m、r 和 s,我可以从这个操作中获得什么样的精度?

对于浮点数、双精度数和各种常见的寄存器大小,对于小、中、大和非常大的 i,一个很好的部分答案就是回答这个问题。

4

0 回答 0