高精度計算サイト

カシオの高精度計算サイトを試してみた。適当に「統計関数 > 超幾何分布」とたどって,例題の x = 14,n = 50,M = 60,N = 200 をそのまま試してみる。演算桁数は50桁まで選べるが,とりあえずデフォルトの演算桁数(22桁)では

確率密度 f(x,n,M,N) = 0.1342936640436631826
下側累積確率 P(x,n,M,N) = 0.4339792084682835697

と19桁まで出る。Rで検算(にならないか ^^;)してみたら,CPUによって結果が違う:

> options(digits=16)
> dhyper(14,60,140,50)
[1] 0.1342936640436632 # Linux (Intel)
[1] 0.1342936640436631 # Mac (PPC)
> phyper(14,60,140,50)
[1] 0.4339792084682836 # Linux (Intel)
[1] 0.4339792084682834 # Mac (PPC)

やっぱりIntelのほうが正確だ。

これは PPC の FPU が 64bit で Intel のが 80bit だからでしょうか?

仮数のサイズが (多分) 8bit 違いますからね。

64ビット対79ビット

たぶんそのせいだと思います

これは面白いサイトですね

4次方程式も解ける(Home->「数学公式集」->「方程式」)ようですので,自作のものと比較してみました。

 http://ex-cs.sist.ac.jp/~tkouya/try_cee_algebraic_eq.html

近接根の問題

x^4 - 4 * x^3 + 5.9999999995 * x^2 - 3.999999999 * x + 0.99999999950000000004
= (x - 1.00001)(x - 0.99999)(x - 1.00002)(x - 0.99998)

を入力してみましたが,ちゃんと解けてますね。係数も含めて確かに指定精度で計算しているようです。内部でどんなライブラリを使っているのか知りたいなぁ。

「桁数可変型演算」

「桁数可変型演算」で検索したら以下の文書が見つかりました。
http://techon.nikkeibp.co.jp/award/papers/2004_co02_02.pdf

FPGAを使ったハードウェア演算システムのようです。

Re: 「桁数可変型演算」

ありがとうございます。FPGAなんですか!

Keisanが朝日新聞に

今朝の土曜版(be)で大きく紹介されていました。

Intel Mac でも PPC Mac

Intel Mac でも PPC Mac と同じなのですが????

Re: Intel Mac でも PPC Mac

えっ? そういえば確かめてませんでした。研究室のIntel Mac miniでやってみたら,ほんとですね!

考えられることとして,Mac版はIntelでもlong doubleを使っていないということなのでしょうか。

Re: Intel Mac でも PPC Mac

ia32のLinuxは80bit拡張精度(OSデフォルト)を利用しています.
ia32のFreeBSDも80bit拡張精度(OS非デフォルト)を利用しています.
ia32のWindowsはeval単位でfinitを発行して80bit拡張精度(無理矢理-winは64bit精度推奨)を利用しています.
# WinAPIの中に精度を64bitに強制するものがあったので
x86_64のLinuxはfp-modelのデフォルトがsseなので64bitの精度になります.
Macは64bit精度です.
bar等誤差が致命的な物はlong doubleを使いますが,他は普通のdoubleで演算します.
速度的な物と精度的な物のトレードオフですが, 例えばFTZ/DAZなどはoffにしています.(例えicc+IntelCPUでも)
なので, Intelなら正しいと言うのは...

Re: Intel Mac でも PPC Mac

中の人さま,解説どうもありがとうございます。

Linuxでもx86_64では64ビット精度とは知りませんでした。違いが問題になることはないと思いますが,確かに今までマシンによってp値の末位が違うことはときどき経験していました。勉強になりました。

コメントの表示オプション

お好みの表示方法を選択し、「設定の保存」をクリックすると、表示方法を変更することができます。