2012-12-27 24 views
3

我敢肯定,答案很明顯,但是我沒有看到源代碼就找不到它。什麼是gnuplot浮點數的內部表示?

什麼是gnuplot浮點數的內部表示?它是平臺的double?它是否使用自己的內部表示?它可以做任意精度?

+1

滑稽的劃分,我用'gnuplot的精度'在一個專用的服務中,不需要查看任何來源..(「有時」浮動,「通常」翻倍,「否」爲任意) – 2012-12-27 09:14:48

+0

感謝您使用搜索詞幫助我。如果你發佈這個答案,我很高興你接受它。 – iter

回答

2

一個快速的谷歌搜索會出現,儘可能以雙精度完成計算,但是,這裏有一個小小的轉換。一個IEEE雙精度數的範圍應該最多不超過1.797e308,但是,如果你試圖給gnuplot的一個數字,大,它扼流圈:

gnuplot> plot '-' u 0:($1/2.) 
input data ('e' ends) > 1.7976931348623157e+308 
input data ('e' ends) > 30 
input data ('e' ends) > e 
Warning: empty x range [1:1], adjusting to [0.99:1.01] 
Warning: empty y range [15:15], adjusting to [14.85:15.15] 

現在,如果你表現出的gnuplot的範圍變量:

gnuplot> show variables all 

你會看到一些東西,是一個有些奇怪:

GPVAL_DATA_X2_MIN = 8.98846567431158e+307 
GPVAL_DATA_X2_MAX = -8.98846567431158e+307 

有了這個號碼重複幾次。 (請注意,這個數字大致正確):

gnuplot> !python -c 'import sys; print sys.float_info.max/2.' 
8.98846567431e+307 

**(Python的浮動是系統的雙精度)。

現在有點打轉轉:

gnuplot> a = 8.98846567431e+307 
gnuplot> a = 8.98846567432e+307 
      ^
     undefined value 

所以大概的gnuplot的浮點數字上升到系統的最大雙精度(如果可能)按2