|
!PiRamanujan.BAS
OPTION ARITHMETIC RATIONAL
LET t0=TIME
LET kou=1
LET s=kou*1103
LET i=1
DO
LET kou=kou*(4*i-1)*(4*i-2)*(4*i-3)/(6147814464*i^3)
LET s=s+kou*(26390*i+1103)
!PRINT s
LET i=i+1
LOOP WHILE ABS(kou)>1E-10001 !EPS(0)
LET x=8 ! SQR(8)をコンパイラに事前に計算させないため
LET s=9801/(s*SQRT(x))
!PRINT USING"#." & REPEAT$("#",999): s
!PRINT USING"#." & REPEAT$("#",999): PI
LET TM=TIME-t0
PRINT USING"####." & REPEAT$("#",2):TM;
PRINT "秒"
LET t0=TIME
LET s=s-3
PRINT "3."
PRINT "[";STR$(1)&"-";STR$(1000)&"]"
PRINT
DO
LET s=s*10
LET b=INT(s)
LET cc=cc+1
IF MOD(cc,5)=0 THEN PRINT STR$(b)&" "; ELSE PRINT STR$(b);
IF MOD(cc,50)=0 THEN PRINT
IF MOD(cc,1000)=0 THEN
PRINT
PRINT "[";STR$(cc+1)&"-";STR$(cc+1000)&"]"
PRINT
END IF
LET s=s-b
LOOP UNTIL cc>1E4-1
PRINT
LET TM=TIME-t0
PRINT USING"####." & REPEAT$("#",2):TM;
PRINT "秒"
END
EXTERNAL FUNCTION SQRT(n)
OPTION ARITHMETIC RATIONAL
LET x=n !SQR(x)
LET z=0.5
LET a=(1+x)*z
LET b=x/a
DO
LET c=(a+b)*z
LET d=x/c
LET a=c
LET b=d
LET aa=ROUND(a,10001)
LET bb=ROUND(b,10001)
LOOP UNTIL aa=bb
LET SQRT=b
END FUNCTION
-----------------------------------------------------
1万桁の設定
設定方法は
LOOP WHILE ABS(kou)>1E-10001 !EPS(0)
LOOP UNTIL cc>1E4-1
LET aa=ROUND(a,10001)
LET bb=ROUND(b,10001)
4ヶ所 5万桁の精度確認済
5万桁計算時間 4時間22分54.06秒
■ パソコン環境
ウィンドウズ : Microsoft Windows 7
サービスパック : なし
システムの種類 : 32 ビット
メモリー : 3.00 GB
プロセッサー :Intel Core i7 4790K
Processor 1 ID = 0
Number of cores 4 (max 8)
Number of threads 8 (max 16)
Name Intel Core i7 4790K
Codename Haswell
Specification Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
Package (platform ID) Socket 1150 LGA (0x1)
CPUID 6.C.3
Extended CPUID 6.3C
Core Stepping C0
Technology 22 nm
TDP Limit 88.0 Watts
Tjmax 100.0 ーC
Core Speed 4499.0 MHz
Multiplier x Bus Speed 45.0 x 100.0 MHz
Stock frequency 4000 MHz
Instructions sets MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, EM64T, VT-x, AES, AVX, AVX2, FMA3, TSX
L1 Data cache 4 x 32 KBytes, 8-way set associative, 64-byte line size
L1 Instruction cache 4 x 32 KBytes, 8-way set associative, 64-byte line size
L2 cache 4 x 256 KBytes, 8-way set associative, 64-byte line size
L3 cache 8 MBytes, 16-way set associative, 64-byte line size
FID/VID Control yes
精度確認は 円周率 (π, PI) を参照しました。
有理数モードの小数点以下の出力を、知る限り試しましたが、上手くできませんでした。
0をまたぐとズレます。よい方法教えて下さい。
http://blogs.yahoo.co.jp/donald_stinger
|
|