Re: 素数判定

 投稿者:SHIRAISHI Kazuo  投稿日:2021年 6月12日(土)09時31分17秒
  たろささんへのお返事です。

十進BASIC Version 7.8.5.4     計算結果 11
BASIC Accelerator Ver. 2.0.2.0   計算結果 10
BASIC Accelerator Ver. 1.2.0.5   計算結果 10

計算途中で2^53を超えるのが原因だと思います。

BASICAccも32ビットコードを生成すれば,Ver.7.8.5.4と同じ結果になります。
Windows版のBASICAccは,64ビットを指定すると,Intel CPUのSSE2を利用するコードを生成します。
Windows版で32ビットを指定したときは,Intel CPUのFPUを利用するコードを生成します。
Intel FPUを用いると内部では80ビットの拡張精度数で計算し,仮数部に64ビットの精度があるので,2^53を超えても正確に計算できることがあります。
 

Re: 素数判定

 投稿者:たろさ  投稿日:2021年 6月13日(日)14時08分45秒
  > No.4921[元記事へ]

SHIRAISHI Kazuoさんへのお返事です。

> たろささんへのお返事です。
>
> 十進BASIC Version 7.8.5.4     計算結果 11
> BASIC Accelerator Ver. 2.0.2.0   計算結果 10
> BASIC Accelerator Ver. 1.2.0.5   計算結果 10
>
> 計算途中で2^53を超えるのが原因だと思います。
>
> BASICAccも32ビットコードを生成すれば,Ver.7.8.5.4と同じ結果になります。
> Windows版のBASICAccは,64ビットを指定すると,Intel CPUのSSE2を利用するコードを生成します。
> Windows版で32ビットを指定したときは,Intel CPUのFPUを利用するコードを生成します。
> Intel FPUを用いると内部では80ビットの拡張精度数で計算し,仮数部に64ビットの精度があるので,2^53を超えても正確に計算できることがあります。
>

ありがとうございます。
素数計数関数(英: Prime-counting function)π(x)
6n-1,6n+1の篩
1億までの素数の精度確認の時に遭遇

2^53=9.0072E+15
(1E+8)^2=1E+16

10進から16進また、16進から10進に対応なのか?

計算の仕組みは分かりませんが、6n-1,6n+1の篩の計算
配列 DIM A(n)=1 の処理速度は驚くほど高速。
 

戻る