跟着papers and source code for double-double arithmetic一段時間後,我仍然無法找出dd_real(定義爲struct dd_real { double x[2];...}
)的數字是如何分成兩個雙精度的。說如果我初始化它與一個字符串,dd_real pi = "3.14159265358979323846264338327950";
什麼將pi.x[0]
和pi.xi[1]
?我需要理解它,然後編寫一個希望的小Python函數。作爲兩個雙打總和的雙雙精度浮點數
我不想調用QD庫的原因是,我寧願重新實現Python中的正確拆分,以便將我的35位精度常量(以字符串形式給出)作爲double2
發送給CUDA代碼在那裏將被視爲雙重雙精度,由GQD library處理 - 似乎是處理CUDA中的擴展精度問題的唯一庫。不幸的是,在Python方面,也排除了mpmath。
如果您以二進制或十六進制格式舉例,它會更容易。即使某人從字面上回答了你的問題(通過告訴你「pi.x [0]」和「pi.x [1]」的值),你將無法理解關於原始十進制值。 – 2012-03-25 03:53:22
另請注意,double double決不是「任意精度」。這只是「更精確的IEEE 754雙精度,同時利用可用的雙精度硬件」。 – 2012-03-25 04:05:01