[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002681] bug in GPhys.each_along_dims
- To: Dennou-ruby <dennou-ruby@xxxxxxxxxxx>
- Subject: [dennou-ruby:002681] bug in GPhys.each_along_dims
- From: "Seiya Nishizawa" <seiya@xxxxxxxxxxxxxx>
- Date: Sun, 13 Aug 2006 17:37:08 +0900
- Sender: seiyani@xxxxxxxxx
西澤です。
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