[#697] ++[Re: dylan [Re: swap values(Re: call by reference)]] —
けいじゅ@SHLジャパンです.
1 message
1996/10/01
[#869] Append Member — Kouki Higuchi <luke@...>
Please let me be a participate.
1 message
1996/10/20
[#895] sleep eternaly on BOW(Re: ruby 0.99.2-961023 available) — Shin-ichiro Hara <sinara@...>
原です。
6 messages
1996/10/24
[#906] [REQ]Get Strings!<3> GETS, SUB — Shin-ichiro Hara <sinara@...>
原です。
5 messages
1996/10/27
[#907] [REQ]Get Strings!<4> SPLIT — Shin-ichiro Hara <sinara@...>
原です。
6 messages
1996/10/27
[#920] bug report(each) — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
8 messages
1996/10/29
[#928] Re: hajimemashite — Itsuro Saito <saito@...>
斎藤@東大電子情報です.
9 messages
1996/10/29
[#938] ruby 0.99.3-961030 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
7 messages
1996/10/30
[#954] Rational — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
23 messages
1996/10/30
[#955] Re: Rational
— matz@... (Yukihiro Matsumoto)
1996/10/30
まつもと ゆきひろです.
[#968] Re: Rational
—
1996/10/31
けいじゅ@SHLジャパンです.
[#970] Re: Rational
— matz@... (Yukihiro Matsumoto)
1996/10/31
まつもと ゆきひろです.
[#956] Re: Rational[coerce(Re: ruby 0.99.3-961030 available) ] — Shin-ichiro Hara <sinara@...>
原です。
4 messages
1996/10/30
[#965] ruby-mode — Yasuo OHBA <jammy@...>
大庭@SHLJapanです.
6 messages
1996/10/31
[ruby-list:884] Re: Bug report and Request
From:
matz@... (Yukihiro Matsumoto)
Date:
1996-10-22 08:06:59 UTC
List:
ruby-list #884
まつもと ゆきひろです.
In message "[ruby-list:880] Bug report and Request"
on 96/10/22, Keiju ISHITSUKA <keiju@shljapan.co.jp> writes:
|
|けいじゅ@SHLジャパンです.
|[1] print 10000000000000000000000 - 10000000000000000000001
|
|やってみればわかります. 変な結果が出ます. Bignumの引き算で結果がマイナ
|スになる時におかしくなるようです.
はい,修正しました.条件は大きさの近いBignum同士の引き算で結
果が負になるものでした.MS Byteでしか大きさチェックを行って
いなかったせいで,負になるなることを検出できないでいました.
|[2]
| $stdout.sync = TRUE
| print a = Float(982273762)
| print b = Float(1184838904)
| print a/b
| --
| 9.82274e+08 1.62161e-308 Floating exception
|
|bの結果が明らかにおかしいですね. あとちょっと気になるのが, Floating
|exceptionは発生するものと考えて良いのかしら??
修正しました.doubleを返す関数のプロトタイプ宣言を忘れていた
ためです.昔のCならこれで良かったんですけどねえ.
Floating exceptionはrubyでは検出していません.ですからライブ
ラリによるというべきでしょう.ただし今回は変な値を元に計算し
たせいで出たものですけど.
|[3]
|B array[bignum]
|
|これは意地悪なのですが, indexにbignumが使えません. いまのrubyの配列の
|実装では a[bignum] = foo は, メモリアロケーションの関係で無理だと思い
|まのでいいのかな...
これは仕様です.rubyは31bitの範囲内で収まる整数はFixnumに
変換しますから,Bignumであるということは20億以上の大きさがあ
る訳です.rubyの配列は疎ではありませんから,現実的に不可能で
すよね.
|ただ, もうちょっとましなエラーを出した方が...
エラーメッセージは変えました.
|[4] array[RANGE or idx, len] = array(size)
|array1[index, len] = array2
|
|の処理で, array2の長さが lenと同じ場合の処理に特別な対応をとっていない
|せいだと思うのですが, もうちょっと工夫していただけないでしょうか?
もっともです.修正しました.この例の場合ですといつでも(少し
だけ)高速になりました.
|[5] Array.new(size)
|
|[4]プログラムで コメントになっているところを置き換えて実行してみて下さ
|い. 落ちます!!
sizeを指定した時のメモリの初期化で間違っているところがありま
した.ごめんなさい.
|[6] Time
|Time.tv_secの様に絶対秒数(を計るメソッドはあるのですが, 絶対マイクロ秒
|を計るメソッドが用意してありません. ベンチマークとかする時には良く使う
|ので, 用意してもらえませんか?
絶対マイクロ秒か,intの範囲を越えてしまいますが,Bignumがあ
れば可能ですね.とはいえ,どういう名前にしましょうか.独自の
ものを導入する時にはいつも名前に悩むんですよね.
|あと, Timeには, tm構造体から月(tm_mon)を取り出すメソッドがないのですが...
|なんか理由があるのですか?
|
|最後に, 時間の加減算をサポートして下さい.
両方とも対応してます.ドキュメントに書き忘れていました.Time
の引き算はオペランドがTimeの時はその差分をFloatで,数値の時
にはその分だけ前の時間を返します.
まつもと ゆきひろ /:|)