昨年の3月にもブログで触れたのだが、以下の PI + PI + IP の計算を行い、様々な変数の数値精度を調べている。今回も以下のライブラリを用いる。
ライブラリ GMP (任意精度ライブラリ)
http://gmplib.org/
ライブラリ qd (擬似 4倍、8倍精度ライブラリ)
http://www.cs.berkeley.edu/~yozo/
#define PI 3.141592653589793238462643383279502884197169399375105820
#define IP 5.02884197169399375105820314159265358979323846264338327
今回の目的は long double (Intel系では 80bit) の相対的な精度を調べることにある。
精度の良さは以下のようになる。
GMP 1024bit > dd (仮数部 212bit) > GMP 128bit > dd (仮数部 106bit) > GMP 64bit > long double (仮数部 64bit) > double (仮数部 53bit)
+14.89844637278335071073342987801879644393920898437500 double
+14.89844637278335237086379638782318579615093767642975 long double
0.148984463727833523698e2 GMP 64 bits
0.1489844637278335236989269414146880472509e2 GMP 128 bits
0.1489844637278335236989269414146880472510693786988417389928759183851738069265823364104030973932230874e2 GMP 1024 bits
+1.48984463727833523698926941414688047251069378698841738992875918e+01 qd_real
+1.4898446372783352369892694141468e+01 dd_real
ライブラリ GMP (任意精度ライブラリ)
http://gmplib.org/
ライブラリ qd (擬似 4倍、8倍精度ライブラリ)
http://www.cs.berkeley.edu/~yozo/
#define PI 3.141592653589793238462643383279502884197169399375105820
#define IP 5.02884197169399375105820314159265358979323846264338327
今回の目的は long double (Intel系では 80bit) の相対的な精度を調べることにある。
精度の良さは以下のようになる。
GMP 1024bit > dd (仮数部 212bit) > GMP 128bit > dd (仮数部 106bit) > GMP 64bit > long double (仮数部 64bit) > double (仮数部 53bit)
+14.89844637278335071073342987801879644393920898437500 double
+14.89844637278335237086379638782318579615093767642975 long double
0.148984463727833523698e2 GMP 64 bits
0.1489844637278335236989269414146880472509e2 GMP 128 bits
0.1489844637278335236989269414146880472510693786988417389928759183851738069265823364104030973932230874e2 GMP 1024 bits
+1.48984463727833523698926941414688047251069378698841738992875918e+01 qd_real
+1.4898446372783352369892694141468e+01 dd_real