[#27417] selector namespace — Shugo Maeda <shugo@...>

前田です。

17 messages 2005/10/13

[#27458] Matrix class is broken without mathn — akira yamada / やまだあきら <akira@...>

Debianユーザからrequire "mathn"しないときに

28 messages 2005/10/19
[#27461] Re: Matrix class is broken without mathn — Yukihiro Matsumoto <matz@...> 2005/10/19

まつもと ゆきひろです

[#27596] Re: Matrix class is broken without mathn — Masahiro Sakai (酒井政裕) <sakai@...> 2005/10/31

酒井といいます。

[#27601] Re: Matrix class is broken without mathn — Yukihiro Matsumoto <matz@...> 2005/10/31

まつもと ゆきひろです

[#27605] Re: Matrix class is broken without mathn — keiju@... (石塚圭樹) 2005/10/31

けいじゅ@いしつかです.

[#27691] Re: Matrix class is broken without mathn — Shin-ichiro HARA <sinara@...> 2005/11/12

原です。

[#27700] Re: Matrix class is broken without mathn — keiju@... (石塚圭樹) 2005/11/14

けいじゅ@いしつかです.

[#27484] 1.8.4 feature freeze? — "URABE Shyouhei aka. mput" <root@...>

卜部です。

19 messages 2005/10/23
[#27485] Re: 1.8.4 feature freeze? — Yukihiro Matsumoto <matz@...> 2005/10/23

まつもと ゆきひろです

[#27492] Re: [ ruby-Bugs-2613 ] building ruby 1.8.3 on Solaris — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

20 messages 2005/10/24
[#27493] Re: [ ruby-Bugs-2613 ] building ruby 1.8.3 on Solaris — Yukihiro Matsumoto <matz@...> 2005/10/24

まつもと ゆきひろです

[#27494] Re: [ ruby-Bugs-2613 ] building ruby 1.8.3 on Solaris — WATANABE Hirofumi <eban@...> 2005/10/24

わたなべです。

[#27495] Re: [ ruby-Bugs-2613 ] building ruby 1.8.3 on Solaris — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/10/24

山本です。

[#27503] Re: [ ruby-Bugs-2613 ] building ruby 1.8.3 on Solaris — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/10/25

山本です。

[#27504] Re: [ ruby-Bugs-2613 ] building ruby 1.8.3 on Solaris — "U.Nakamura" <usa@...> 2005/10/25

こんにちは、なかむら(う)です。

[#27505] Re: [ ruby-Bugs-2613 ] building ruby 1.8.3 on Solaris — nobuyoshi nakada <nobuyoshi.nakada@...> 2005/10/25

なかだです。

[#27551] 1.8.4 検証を(だれが|どのように)行うか — "URABE Shyouhei aka.mput" <root@...>

さて、 1.8.4-Preview1

41 messages 2005/10/28
[#27561] Re: 1.8.4 検証を(だれが|どのように)行うか — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/10/30

山本です。

[#27562] Re: 1.8.4 検証を(だれが�匹里茲Δ�)行うか — "URABE Shyouhei aka.mput" <root@...> 2005/10/30

卜部です。

[#27566] Re: 1.8.4 検証を(だれが|どのように)行うか — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/10/30

山本です。

[#27586] Re: 1.8.4 検証を(だれが|どのように)行うか — "U.Nakamura" <usa@...> 2005/10/31

こんにちは、なかむら(う)です。

[#27587] Re: 1.8.4 検証を(だれが|どのように)行うか — Yukihiro Matsumoto <matz@...> 2005/10/31

まつもと ゆきひろです

[ruby-dev:27571] Re: 1.8.4 検証を(だれが|どのように)行うか

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2005-10-30 14:53:31 UTC
List: ruby-dev #27571
山本です。

>> >  4) Failure:
>> >test_precision(TestFloat) [e:\ruby-cvs\ruby_1_8\test/ruby/test_float.rb:46]:
>> ><3.75176750364613e+17> expected but was
>> ><3.75176750364613e+17>.
>> 
>> これは浮動小数点数の比較ですが、たぶん有効桁の最後の数字が違うという程度の
>> 差があるのでしょう。(実際、エラーメッセージ上は数値に違いがありません)
>
>ということは、その前のコメントアウトされているテストのほうがよ
>り適切ということでしょうか。

上のでもエラーになりました。でも、単独でテストするとエラーにならないので、何か
環境が微妙な影響を与えるのかもしれません。

  def test_precision
    #s = "3.7517675036461267e+17"
    #assert(s == sprintf("%.16e", s.to_f))
    f = 3.7517675036461267e+17
    assert_equal(0.0, f - sprintf("%.16e", f).to_f)
  end

という感じにすると

  8) Failure:
test_precision(TestFloat) [e:\ruby-cvs\ruby_1_8\test/ruby/test_float.rb:47]:
<0> expected but was
<64.0>.

となって、もう少し状況がよくわかります。

irb(main):001:0> 3.7517675036461267e+17
=> 3.75176750364613e+17
irb(main):002:0> 0.0000000000000001e+17
=> 10.0

というか、浮動小数点数は == では比較できなくて、|a - b| < epsiron とか、
ある非常に小さい数との比較でしか判定できなかった気がします。

http://boost.cppll.jp/HEAD/libs/test/doc/floating_point_comparison.htm

を参考にこんな感じにすると、全体テストでもエラーになりませんでした。

  def test_precision
    u = 3.7517675036461267e+17
    v = sprintf("%.16e", u).to_f
    assert((u-v).abs / u.abs <= Float::EPSILON)
    assert((u-v).abs / v.abs <= Float::EPSILON)
  end

# 右辺が Float::EPSILON でいいのかはよくわかりませんけど


In This Thread