我正在写一个非常计算密集的过程用于在移动设备和我限制为32位CPU。实质上,我正在执行大量数据集(> 12k有符号16位整数)的点积。浮点运算速度太慢,所以我一直在寻找一种方法来执行与整数类型相同的计算。我偶然发现了一种叫做Block Floating Point算术的算法(链接论文第17页)。它做得相当不错,但是现在我面临着32位的问题,仅仅不足以存储足够精确的计算结果。“模拟” 64位整数有两个32位整数
只是为了澄清,这还不够精确的原因是,我将不得不大大减少我的每一个阵列元素的精确度得到了一些嵌入到最终的32位整数。这是总共约16000个事情使我的结果如此之大。
有没有一种方法(我喜欢的文章或教程的引用)使用两个32位整数作为最显著字和至少显著字和他们(定义算术+, - ,* ,/)有效地处理数据?另外,有没有更好的方法来做这些事情?这种方法有问题吗?我对使用的编程语言非常灵活。我更喜欢C/C++,但Java也适用。我确信有人以前做过这个。
我有一个愚蠢的问题 - 为什么你不能使用长,这是64位甚至32位的CPU? – MJB 2011-06-10 14:47:36
愚蠢的答案是,你可以。我被一份文件误导了。谢谢=) – Phonon 2011-06-10 14:54:13
考虑切换到本机代码。 – 2011-06-10 14:55:39