我正在寫一個非常計算密集的過程用於在移動設備和我限制爲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