我需要實現一個數字復發平方根通用浮點格式,使得exp_size + mant_size + 1 < = 64數字復發平方根
我基本上沿襲了實施建議這裏 handbook of floating point arithmetic在軟件實現的浮點運算符。
我試圖測試我的實現(不是一個詳盡的測試),基本上像32位格式它看起來像正常工作,而像尾數= 10格式,指數= 5爲輸入x = 0.25給我0.5它顯然給我0.707031。
,所以我是遊蕩,如果對小幅面也許數字復發的方法有一些限制或沒有或只是......我的實現是壞的......
我希望你能幫助我...這是一個痛苦從0實現這個東西...
FPU的計算都在較高的比特進行計數mantisa和指數(i8087 + FPU的內部編號表示是80bit的),結果是然後截斷到輸出。如果你模仿這個,你得到了正確的答案。如果你不想這樣,你可以使用bin搜索方法(由於需要乘法運算會慢一點,但結果應該更精確) – Spektre
我不確定要理解你說的是什麼。但是,基本上「我的」方法是計算尾數大小的數字,尾數大小的數字+1,這是因爲平方根需要1位數字才能正確舍入。但對我來說,聽起來有點奇怪,例如,對於10位尾數精度(例如)和5的指數,我沒有得到輸入0.25的正確答案。 – user8469759