[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:000995] Re: GSL
In message "[dennou-ruby:000994] GSL"
on Fri, 14 Dec 2001 13:27:54 +0900,
Takeshi Horinouchi <horinout@xxxxxx> writes:
> 今日の Ruby-list のメールに、GSL のラップを(一部)やったという
> のが、ありました。中を見たら、配列には独自構造体を使っているので、
> 我々的にはちょっと使えない(かつ Ruby コミュニティーにとっても好
> ましいと言い難い)ものです。NArray を利用することを提案しておき
これすごいですよね。カンドーもんです。
で、ちょっと考えたけど堀之内さんの主張は必ずしも自然じゃない
気がします。というのは、NArrayが計算機世界の多次元配列を抽象
化しているのですが、GSLはいろいろな数学的構造をそれぞれの構
造に応じて抽象化しているからです。例えばGSLではmatrixとarray
は違うものとして扱われています(まあarray自体が積極的にサポー
トされていないのですが)。
GSLは激しく巨大で、APIとして公開している構造体だけで180もあ
ります。
% grep 'typedef struct' /usr/local/include/gsl/*.h | wc
181 457 11649
ちらっとしかみてませんがRuby/GSLの作者の常定芳基さんのとった
方法は、ほとんどのクラスをGSLの構造体の単なる皮としているよ
うです。一つのオブジェクトをGSLの関数間で使い回しする際のコ
ストを考えるとおそらくこの方が効率的でしょう。
もちろん一部にはNArrayインターフェイスを持たせると有意義だと
思いますが、GSLのラッパと、NArrayをベースとした世界は別のも
のではないでしょうか?
結局、現状のRuby/GSLのうちでNArrayインターフェイスをつけると
幸せになれそうな部分を探していくのが近道なのかも知れません。
-- Gotoken