[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:001046] Re: Ruby + SWIG + GSL



堀之内です。

小塚君、反応が遅れがちですみません。

> > とりあえずまだ、ちらと眺めてみただけですが、質問です。
> > Vector を例としてますが、SWIG による自動生成の
> > 結果は常定さんの Ruby/GSL と同じ仕様になるように
> > なってるのでしょうか(呼出し仕様及びデータの内部
> > 構造について)。つまり、今後常定さんのラッパーを拡充
> > していく上で、SWIG をこう活用すればいいのだという例に
> > なっているかどうかが、知りたいことなのですが。
> 
> 内部構造はgsl_vectorの構造体をData_Wrap_Structで
> そのままRubyのクラスにラップしているので全く同じものです。

これはとてもいいですね。

> ただ、メソッドの引数などは一部違ってしまっています。
> 例えばVector::newなどはRuby/GSLではサイズだけでなく
> データの代入をすることができますが、これができなくなっています。
> 呼びだすgsl_vector_allocが初期値の代入を行わないものなので。
>
> かなりトリッキーな手を使えばそろえることも可能でしょうが
> これは生成したコードを修正した方が楽と考えています。

初期化のところは、Ruby 世界から GSL への橋渡しですから、自動生成
に頼っている限りあまり便利なものが出来ないのは仕方ないですね。こ
こはやはり Ruby 的に使いやすいよう手作業で調整すべきところでしょ
う。さらに、GSLのオブジェクトから NArray 等への変換や要素の抜き
出し等、手作業でやるべきところは他にもありますね。それにしても、
計算部分のほとんど(全部?)を自動生成に頼れると随分楽になります
ね。手作業プログラミングは GSL 世界と Ruby 世界の行き来の部分に
関してのみ行って、あとは SWIG に任せればよい(そのための SWIG 用
スクリプトは書かないとなりませんが) --- という認識でいいんです
よね、きっと。

ところで、常定さんに質問ですが(ここまで読んでくれてますか?)、
GSL の中で次はこれをラップしたいと思ってたものはありませんか。小
塚君には次はそれに関して作業して貰えれば嬉しいと思ってます。ひょっ
として Vector / Matrix の時とは質的に違う新たな問題が出てこない
とも限らないと思いますし(GSLは統一性が薄いような気がしますので...)。

堀之内 武                    horinout@xxxxxx
京都大学宙空電波科学研究センター     611-0011 宇治市五ヶ庄