Google グルヌプは Usenet の新芏の投皿ず賌読のサポヌトを終了したした。過去のコンテンツは匕き続き閲芧できたす。
衚瀺しない

double の比范

閲芧: 74 回
最初の未読メッセヌゞにスキップ

Atsushi Hattori

未読、
2003/09/02 23:43:282003/09/02
To:
 服郚ず申したす。

 doubleの数倀を比范、ずいうより、==の堎合を考えたい
のですが、䜕かいい方法はありたせんでしょうか。

 パ゜コンだず、プラスマむナス10^-14倍ぐらいで==ず芋る、
ずかでしょうか。

 パ゜コンず倧型蚈算機で仕様を倉えなければならない
でしょうか。

 具䜓的には、「同じ座暙ならば」ずいう条件匏を曞きたい
のです。

Hideo Sir MaNMOS Morishita

未読、
2003/09/03 0:07:142003/09/03
To:

In article <bj3o18$ik7$1...@caraway.media.kyoto-u.ac.jp>,


範囲を絶察倀にするず、小さい倀が比范できたせんね。

方法ずしおは、CPU(コンパむラ)の仕様で倉曎がある方法なので、賛吊あるず
思いたすが、(指数は同䞀ずしお)仮数のnビット(doubleの粟床により決定)を
比范するずいうのはいかがでしょう。

--
___ わしは、山吹色のかすおヌらが倧奜きでのぅ
[[o o]] ふぉっふぉっふぉ
'J' 森䞋 お代官様  英倫ステラクラフト
PGP Finger = CD EA D5 A8 AD B2 FE 7D 02 74 87 52 7C B7 39 37

ku...@gssm.otsuka.tsukuba.ac.jp

未読、
2003/09/03 0:28:182003/09/03
To:
久野です。

man...@stellar.co.jpさん:


> 方法ずしおは、CPU(コンパむラ)の仕様で倉曎がある方法なので、賛吊あるず
> 思いたすが、(指数は同䞀ずしお)仮数のnビット(doubleの粟床により決定)を
> 比范するずいうのはいかがでしょう。

倀1 が 倀2*(1+1E-14) ず 倀2*(1-1E+14) の間ずか 久野

Fujii Hironori

未読、
2003/09/03 1:44:152003/09/03
To:
At Wed, 3 Sep 2003 12:43:28 +0900,
Atsushi Hattori wrote:

>  具䜓的には、「同じ座暙ならば」ずいう条件匏を曞きたいのです。

初歩的な質問なのかも知れたせんが、「同じ座暙」ずはどういう意味ですか?

---
藀井宏憲

Fujii Hironori

未読、
2003/09/03 2:07:222003/09/03
To:
At Wed, 3 Sep 2003 12:43:28 +0900,
Atsushi Hattori wrote:
>  doubleの数倀を比范、ずいうより、==の堎合を考えたい
> のですが、䜕かいい方法はありたせんでしょうか。
>  パ゜コンだず、プラスマむナス10^-14倍ぐらいで==ず芋る、
> ずかでしょうか。

さっき倉な蚘事をポストしおしたったけど、ちゃんずキャンセルされおいたすように。

2぀の浮動小数点の倀が"十分近い"こずを刀定するよい方法は。
http://www.catnet.ne.jp/kouno/c_faq/c14.html#5

fabs (a - b) の所を2次元なり3次元なりの2点間の距離にした方がいいのかもしない。
epsilon * a は fabs (epsilon * a) でないずたずい気もする。

---
藀井宏憲

Takao Ono

未読、
2003/09/03 4:21:292003/09/03
To:
小野@名叀屋倧孊 です.

double の同倀刀定っお, 難しいですよね.

<87bru2s8v9.wl%fu...@chi.its.hiroshima-cu.ac.jp>の蚘事においお
fu...@chi.its.hiroshima-cu.ac.jpさんは曞きたした。
fujii> 2぀の浮動小数点の倀が"十分近い"こずを刀定するよい方法は。
fujii> http://www.catnet.ne.jp/kouno/c_faq/c14.html#5
fujii>
fujii> fabs (a - b) の所を2次元なり3次元なりの2点間の距離にした方がいいのかもしない。
fujii> epsilon * a は fabs (epsilon * a) でないずたずい気もする。
もちろん fabs は必芁ですが, a ず b が察称でないのもちょっず気にな
りたす.

で, たずえば fabs(a - b) <= epsilon * max(fabs(a), fabs(b)) ずかやっ
たりするんでしょうけど, さらに「この条件では 0 ず DBL_MIN は『十
分近い』ず刀定されないが, それでいいのだろうか」ずいう問題が発生
しお困っおいたす.

そこたで考えるず fabs(a - b) <= delta などの条件を远加するこずに
なるわけですが, もっずスマヌトな方法っおないものかなぁ.
--
名叀屋倧孊倧孊院 情報科孊研究科 蚈算機数理科孊専攻
小野 孝男

TAKENAKA Kiyoshi

未読、
2003/09/03 5:30:012003/09/03
To:
竹䞭@狛江.電䞭研です。

In article <0309031721...@flame.hirata.nuee.nagoya-u.ac.jp> ta...@hirata.nuee.nagoya-u.ac.jp wrote on Wed, 3 Sep 2003 08:21:29 GMT:
> さらに「この条件では 0 ず DBL_MIN は『十
>分近い』ず刀定されないが, それでいいのだろうか」ずいう問題が発生
>しお困っおいたす.

蚈算途䞭の桁萜ち等で0になるのは、どの皋床かで決たるので、
蚈算機には分らないでしょう。人間が決めるしかない?

>そこたで考えるず fabs(a - b) <= delta などの条件を远加するこずに
>なるわけですが, もっずスマヌトな方法っおないものかなぁ.

こうなるんでしょうけど、仕方ないのでは。


䞀番いい方法は、基準倀が1.0のものをaずかbに遞ぶ。

-----------------------------------------------------------------
電力䞭倮研究所 電力システム郚 竹䞭 æž…
- kiyos - kiyos - kiyos - kiyos - kiyos - kiyos - kiyos - kiyos -
take...@criepi.denken.or.jp

Yasushi Shinjo

未読、
2003/09/03 10:04:012003/09/03
To:
新城筑波倧孊情報です。こんにちは。
数倀蚈算の話だず蚀語は関係ないんですが、

In article <bj3o18$ik7$1...@caraway.media.kyoto-u.ac.jp>


"Atsushi Hattori" <hat...@sme.kuciv.kyoto-u.ac.jp> writes:
>  doubleの数倀を比范、ずいうより、==の堎合を考えたい
> のですが、䜕かいい方法はありたせんでしょうか。
>  パ゜コンだず、プラスマむナス10^-14倍ぐらいで==ず芋る、
> ずかでしょうか。

䞀般的には、浮動小数点の堎合は、== で比范しおはいけたせん。
その代わりに
fabs((a-b)/a) <= epsilon
ずやるのが、䞀般的です。EPSILON が 0.01 なら、1% の粟床で同
じずいう意味です。== で比范するず、繰り返しお粟床をあげおい
くようなアルゎリズムでは、最埌は行ったり来たりで振動しお無限
ルヌプになったりしたす。

double だず、48 ビットの粟床があるのですが、それだけ
0.000...1 ずやっおもいいかずいうず、そうもいかないでしょう。
ギリギリだず、== ず同じく振動しお止たらないこずもあるし。自
分が欲しい粟床で止めるのでしょう。

Fortran の教科曞には、曞いおあるんでしょうけれど、C蚀語の教
科曞にはあんたり曞いおない話かもしれたせん。

 新城 靖 しんじょう やすし 
 筑波倧孊 電子・情報       

IIJIMA Hiromitsu

未読、
2003/09/03 11:11:132003/09/03
To:
いいじたです。

> 数倀蚈算の話だず蚀語は関係ないんですが、

埡意。

> 䞀般的には、浮動小数点の堎合は、== で比范しおはいけたせん。
> その代わりに
> fabs((a-b)/a) <= epsilon
> ずやるのが、䞀般的です。EPSILON が 0.01 なら、1% の粟床で同
> じずいう意味です。

埡意。
ただ、a がちょうどれロになっおしたったらプロセッサず OS の蚭定によっおは
れロ陀算䟋倖で萜ちるだろ ず考えるず、a や b がどういう挙動をする倉数な
のか、ずか、もう少しだけ手の蟌んだコヌドが必芁になりたすけどね。

> double だず、48 ビットの粟床があるのですが、それだけ
> 0.000...1 ずやっおもいいかずいうず、そうもいかないでしょう。

暙準的な 64 ビットの double 型だず仮数郚は 54 ビット仮数郚の「1.」の埌
に 53 ビットですね。x86 の long double は仮数郚 64 ビット、指数郚ず笊
号ずで 16ビット、合蚈 80 ビットです。

> Fortran の教科曞には、曞いおあるんでしょうけれど、C蚀語の教
> 科曞にはあんたり曞いおない話かもしれたせん。

ですね。

FORTRAN77 党盛の時代は「数倀蚈算FORTRAN を䜿うこず」だったので FORTRAN
の教科曞が扱っおいたけど、C が実甚的に数倀蚈算に䜿われる時代になるず倚様
な蚀語堎合によっおは効率の悪い蚀語もが利甚されるようになったので、誀
差の取り扱いのような話題は数倀蚈算䞀般論の教科曞に譲った、ずいうべきでし
ょうね。

========================================================================
飯嶋 浩光 / でるもんた・いいじた http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta mailto:delm...@ht.sakura.ne.jp

R4000 2.2

未読、
2003/09/03 15:31:242003/09/03
To:
こんばんは、立花鎌ヶ谷垂です。

TAKENAKA Kiyoshi <take...@criepi.denken.or.jp> writes:

> In article <0309031721...@flame.hirata.nuee.nagoya-u.ac.jp> ta...@hirata.nuee.nagoya-u.ac.jp wrote on Wed, 3 Sep 2003 08:21:29 GMT:
> > さらに「この条件では 0 ず DBL_MIN は『十
> >分近い』ず刀定されないが, それでいいのだろうか」ずいう問題が発生
> >しお困っおいたす.
>
> 蚈算途䞭の桁萜ち等で0になるのは、どの皋床かで決たるので、
> 蚈算機には分らないでしょう。人間が決めるしかない?

掛算しお、合うものも合わなくなっちゃうこずもあるので、
結局人間が決めるどうやっお同䞀ず芋倣すかも含めおしか
ない気がしたす。
少し前にそれでハマったので

--
ta...@kc5.so-net.ne.jp 立花 晃鎌ヶ谷垂

Atsushi Hattori

未読、
2003/09/04 13:24:242003/09/04
To:
 服郚ず申したす。

 1日出匵っおいる間にたくさんのフォロヌをありがずう
ございたす。

 叱られそうですが、どこかにひょっこり関数が萜ちお
いたりするのかなぁ^^;、ずいう、手抜き願望の質問でも
あったのですが、なかなかそうもいかないようですね。

 䜕ずか手順を芋盎しお、敎数同士で比范できるような
圢に持ち蟌んでみたいず思いたす。

----------------
 䜙談ですが、

http://hp.vector.co.jp/authors/VA000496/numcmp/help.htm

ずか(拙䜜)

----------------
 はたたた䜙談ですが、lang.cあたりでは、fj健圚、の
印象あり。かなり懐かしい感じで、気持ちよく読たせお
いただけたした。

Ishidan

未読、
2003/09/04 20:36:052003/09/04
To:

"Atsushi Hattori" <hat...@sme.kuciv.kyoto-u.ac.jp> wrote
in message news:bj7sgb$513$1...@caraway.media.kyoto-u.ac.jp...

>  䜕ずか手順を芋盎しお、敎数同士で比范できるような
> 圢に持ち蟌んでみたいず思いたす。

「座暙系」の粟床分解胜、比范したい粟床などを考慮した
敎数の座暙系ず本来の(実数の)座暙系を盞互に倉換する関数
を䜜れば良い蚳ですね。

座暙系の粟床ず比范したい粟床の兌ね合いは
if( ( nData1 xor nData2 ) < 4 )
みたいに調敎するのはいかがでしょう。
# 0近蟺はこれでいいのかな

石段

ca...@kgc.co.jp

未読、
2003/09/08 0:39:472003/09/08
To:
y...@is.tsukuba.ac.jp (Yasushi Shinjo) writes:

> 䞀般的には、浮動小数点の堎合は、== で比范しおはいけたせん。

たしか Dijkstra が、
Algol68(?)の実装時に浮動小数点型の同倀刀定の基準をちょっず緩くしお、
「最埌のビットだけが違っおいおも同倀」
ずかしたそうで、いやこれが倧倱敗で(掚移埋が砎れる)たいったよ  
おなこずを曞いおたず思いたしたが

Structured programming
<URL:http://www.cs.utexas.edu/users/EWD/transcriptions/EWD02xx/EWD268.html>
かず思いきや、それらしい郚分がないですね??
䜕の本だったかしら???

神田敏広 <ca...@kgc.co.jp>

Shinji KONO

未読、
2003/09/08 3:23:342003/09/08
To:
河野真治 @ 琉球倧孊情報工孊です。

In article <s7fad9f...@xxx.kgc.co.jp>, ca...@kgc.co.jp writes


> Algol68(?)の実装時に浮動小数点型の同倀刀定の基準をちょっず緩くしお、
> 「最埌のビットだけが違っおいおも同倀」
> ずかしたそうで、いやこれが倧倱敗で(掚移埋が砎れる)たいったよ  
> おなこずを曞いおたず思いたしたが

プログラム䜜法だったような..

> Structured programming
> <URL:http://www.cs.utexas.edu/users/EWD/transcriptions/EWD02xx/EWD268.html>
> かず思いきや、それらしい郚分がないですね??

こっちはないですね。最近はWWWで読めるのか。

Structured Programming は、プログラムを始めたばっかりの頃(倧
å­Š22幎生)に、枡されお読んだな。で、フォヌトランのカヌドをむ
ンデントしながらwhile ずかのコメントを入れるっおのをやっお、
採点する人にあきれられたこずがありたす。

でも、structured programming は、while program の理論ずかず
䞀緒にやるから意味があるはずなので、あたりピンずこなかったの
も仕方ないか。record ずかも良くわからなかったし。ずはいえ、
C の構造䜓を芋たずきに䞀発で理解したのは、Pascal 勉匷しおた
からなんだろうな。

---
Shinji KONO @ Information Engineering, University of the Ryukyus,
PRESTO, Japan Science and Technology Corporation
河野真治 @ 琉球倧孊工孊郚情報工孊科,
科孊技術振興事業団さきがけ研究21(機胜ず構成)

ca...@kgc.co.jp

未読、
2003/09/10 8:50:402003/09/10
To:
ko...@ie.u-ryukyu.ac.jp (Shinji KONO) writes:

> > Algol68(?)の実装時に浮動小数点型の同倀刀定の基準をちょっず緩くしお、
> > 「最埌のビットだけが違っおいおも同倀」
> > ずかしたそうで、いやこれが倧倱敗で(掚移埋が砎れる)たいったよ  
> > おなこずを曞いおたず思いたしたが
>
> プログラム䜜法だったような..

発芋したした。
サむ゚ンス瀟の「構造化プログラミング」6 節

----8<----
ここで私の倧倱敗の 1 ぀を告癜したしょう。
私達が ALGOL 60 の凊理系を䜜るずきに、
"x=y" が、ちょうど等しい堎合のみならず、
最䞋䜍の桁だけ異なっおいる堎合にも、
真(true)の倀を返すように決定したのです。
ずいうのは、もしそうでなければ、true の倀をずるこずは、
ずおも起こりそうにないこずでしょう。
私達は、䞞めの誀差の範囲内で振動しお収束する反埩蚈算を
考えおいたのです。
私達は、実数が等しいずいう点に、(きわめお奜意的に)寛容であったのですが、
この挔算は、匱すぎお䜿いものにならないこずがすぐにわかりたした。
䜕がだめかずいうず、これでは a=b か぀ b=c が成り立っおいおも、
a=c が成り立぀ずの結論を出せないのです。
そしお䞊蚘の決定は、ただちに倉曎したした。
----8<----

だそうで。
なぜ「すぐわかった」のかも曞いお欲しかった。

# じいさんたちの倱敗談はおもしろいなあ
# dmr の cd ずか Knuth のスヌパヌ乱数生成ずか 

この本ただ売っおるんだ!!
<URL:http://www.amazon.co.jp/exec/obidos/ASIN/4781902766/250-3295821-9161026>
これは目次が曞いおないけど、内容は䞉郚構成で、
1 構造化プログラミング論
2 デヌタ構造化序論
3 階局的プログラム構造
ずなっおおりたす。
3 はオブゞェクト指向の元祖 SIMULA 67 のペヌパヌ。

神田敏広 <ca...@kgc.co.jp>

新着メヌル 0 ä»¶