[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002684] Re: bug in GPhys.each_along_dims
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:002684] Re: bug in GPhys.each_along_dims
- From: Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxxx>
- Date: Tue, 15 Aug 2006 12:25:12 +0900
西澤さま
下記、対処して cvs commit しました。
(テストはしてますが、不具合ありましたらお知らせください。)
> 西澤です。
>
> GPhys.each_along_dims
> で、
> 渡すGPhys が NArrayMiss を持っている(?)場合、
>
> /usr/lib/ruby/1.8/numru/gphys/varray.rb:543:in `[]=': NArrayMiss#to_f
> should return Float (TypeError)
> from /usr/lib/ruby/1.8/numru/gphys/varray.rb:543:in `[]='
> from /usr/lib/ruby/1.8/numru/gphys/gphys.rb:569:in `[]='
> from /usr/lib/ruby/1.8/numru/gphys/gphys.rb:894:in `each_along_dims'
> from /usr/lib/ruby/1.8/numru/gphys/gphys.rb:892:in `each_along_dims'
> from /usr/lib/ruby/1.8/numru/gphys/gphys.rb:868:in `each_along_dims'
>
> というエラーになります。
>
>
> gphys/gphys/rb の
> 888 vary = VArray.new( NArray.new(rs.ntype,
> *grid.shape), rs.data )
> で NArray をつくっているので
> an_instans_of_NArray[hoge] = an_insans_of_NArrayMiss
> ということになっているのだと思われます。
> gphyes[0][*([0..0]*gphyses[0].rank)].val.class.new()
> とかするんでしょうか(あってるかな?)。
>
>
> あと、
> 816 if loopdims.length == 0
> 817 raise ArgumentError, "No loop dimension is specified "+
> 818 " -- In that case, you don't need this iterator."
> 819 end
> となっていて、第2引数の配列の長さが0のときは、
> 確かにこのメソッドをよぶ意味は無いのですが、
> 例外をあげるのではなく、
> return yield(gphyses)
> となっていると(あってるかな?)、
> 動的にスクリプトを生成する際に、loopdimsの長さが0でも期待したものが返って来るのでうれしいです。
>
>
>
> --
> Seiya Nishizawa
> Research Institute for Mathematical Sciences, Kyoto University
> Oiwake-cho Kitarakawa Sakyo-ku Kyoto, Japan, 606-8502
> Tel: +81-75-753-7252
> Fax: +81-75-753-7272
>
堀之内 武 horinout@xxxxxxxxxxxxxxxxxx
京都大学生存圏研究所 611-0011 宇治市五ヶ庄