πの値を取得する最も速い方法は何ですか?
個人的な課題として、πの値を取得する最速の方法を探しています。より具体的には、などの#define定数を使用しM_PIたり、数値をハードコーディングしたりする必要のない方法を使用しています。 以下のプログラムは、私が知るさまざまな方法をテストします。インラインアセンブリバージョンは理論的には最速のオプションですが、移植性はありません。他のバージョンと比較するためのベースラインとして含めました。私のテストでは、組み込みで、4 * atan(1)バージョンをGCC 4.2で最も高速にatan(1)しています。これは、を定数に自動フォールディングするためです。で-fno-builtin指定され、atan2(0, -1)バージョンが最速です。 主なテストプログラムはpitimes.c次のとおりです(): #include <math.h> #include <stdio.h> #include <time.h> #define ITERS 10000000 #define TESTWITH(x) { \ diff = 0.0; \ time1 = clock(); \ for (i = 0; i < ITERS; ++i) \ diff += (x) - M_PI; \ time2 = clock(); \ printf("%s\t=> %e, time …