[#29170] Call for Papers Linux Conference 2001 — akira yamada / やまだあきら <akira@...>

18 messages 2001/04/10
[#30213] Re: Call for Papers Linux Conference 2001 — akira yamada / やまだあきら <akira@...> 2001/06/13

[#29190] Time Stamp Copy of File.copy — "たけ(tk)" <ggb03124@...>

 ftools.rb の move では utime を行っていて日付が同じになりますが、copy

42 messages 2001/04/11
[#29193] Re: Time Stamp Copy of File.copy — matz@... (Yukihiro Matsumoto) 2001/04/11

まつもと ゆきひろです

[#29201] Re: Time Stamp Copy of File.copy — " たけ (tk)" <ggb03124@...> 2001/04/11

たけ(tk)です。

[#29203] Re: Time Stamp Copy of File.copy — WATANABE Hirofumi <eban@...> 2001/04/11

わたなべです.

[#29212] Re: Time Stamp Copy of File.copy — Minero Aoki <aamine@...> 2001/04/12

あおきです。

[#29215] Re: Time Stamp Copy of File.copy — " たけ (tk)" <ggb03124@...> 2001/04/12

たけ(tk)です。

[#29220] Re: Time Stamp Copy of File.copy — Minero Aoki <aamine@...> 2001/04/12

あおきです。

[#29234] Re: Time Stamp Copy of File.copy — " たけ (tk)" <ggb03124@...> 2001/04/13

たけ(tk)です。

[#29236] Re: Time Stamp Copy of File.copy — matz@... (Yukihiro Matsumoto) 2001/04/13

まつもと ゆきひろです

[#29238] Array#include! — " たけ (tk)" <ggb03124@...> 2001/04/13

たけ(tk)です。

[#29244] Re: Array#include! — matz@... (Yukihiro Matsumoto) 2001/04/13

まつもと ゆきひろです

[#29348] Open3 — NISHIO Mizuho <mzh@...>

どうも西尾です。

16 messages 2001/04/20

[#29397] rnet.rb 〜高レベルネットライブラリ〜 — rubikitch <rubikitch@...>

るびきちです。

11 messages 2001/04/24

[ruby-list:29364] Re: binary IO of integer and FP / Marshal

From: shudo@...
Date: 2001-04-21 07:55:48 UTC
List: ruby-list #29364
首藤です。

> |marshaling の際に可読表現に変換せずに、バイナリのまま
> |書き出した方がいいんじゃないかと思いますが、いかがでしょう。

> |そうすれば、正負の無限大 (Inf)、NaN にも対応できますし。

少なくとも僕の手もと (Linux + glibc 2.2.1 や SunOS 5.5.1) では、
strtod(3) が inf, -inf, NaN に対応していました。ごめんなさい。
(strtod("nAn", 0) でも NaN が得られました。)

まつもとさん wrote:

> marshalは精度を維持することよりも可搬性を重視してああなって
> るんですが、最近はみんなIEEE形式だと思っても構わないんでしょうか?

首> x86, SPARC, PowerPC, MIPS, Alpha は IEEE 754 準拠です。

です。

浮動小数点数の marshaling にバイナリ表現と可読表現のどちらを用いるか、
どちらにしても損得あると思います。

バイナリ表現だと、確かに、異なるマシン間の可搬性に不安が残るわけです。

10 進数の可読表現でわずかに不安を感じているのは、
仮数部が 2 進数では有限小数だけれど 10 進数だと無限小数になる場合など、
marshal, unmarshal で値が変化してしまうかもしれないことです。

…ならば、符号, 指数部, 仮数部に分けて、2進数で書き出せば、
可搬性を保ちながら上記の不安を取り除けそうです。

しかしそこまでやらなくても、
現在の marshal 処理 sprintf(buf, "%.12g", d) の
フォーマットを %.15e にするだけで、
精度の維持という点では、けっこう改善されると思います。


marshaling については昔何度か考える機会がありました。
最初の試みでは XDR を用いたのですが、
のちの試みでは XDR のライブラリを使うのが面倒になったのと
性能を上げたかったのとで、IEEE 754 形式を仮定して、
バイトオーダだけ補整して書き出すようにしました。


Kazuyuki Shudo/首藤一幸   私をたばねないで あらせいとうの花のように
  shudo@computer.org

In This Thread