2011-07-18 12 views
13

Rubyから使用できるSparse Matrixライブラリを探しています。私は現在、 "gsl"宝石によって提供されているGNU Scientific Library bindingsを使用していますが、専用の希薄なマトリックスライブラリを使用した場合、私のアプリケーションはより最適化されます。私はlinalgNArrayのライブラリを調査しました。これらの3つのライブラリのどれも、疎行列最適化されたストレージまたは操作をサポートしていません。Rubyのスパース行列ライブラリ

私が見逃したことがありますか?またはバインディングを書き込むことができる既存のCライブラリですか?以前はRubyでCバインディングを書いていなかったので、後者のほうが好きですが、私はそれを試してみるつもりです。

答えて

3

上記のように、純粋なルビーの解釈は、あなたが望むよりも遅くなるでしょうが、プロトタイプ作成には良いかもしれません。私はそのような図書館だけで作業していますhttps://github.com/hmcfletch/sparse-matrix

私はまだ宝石としてそれをリリースしておらず、それ以上の作業が必要ですが、必要がある場合は見てください。

+0

素晴らしいです、ありがとうございます。以前はあなたの図書館を見ましたが、かなりの変更を加えたようです。とても有難い! –

+0

@HMCFletch、SciRubyにマージすることに興味がありますか?私たちは、narrayの書き直しに取り組んでいます。まもなく、まばらな行列をコーディングし始めました。 –

1
+0

ありがとうございました!はい、あります。非常に強力ですが、このライブラリではRubyに近いものを望みます。 –

+0

:RSRubyはRPy(同等のPythonモジュール)のポートで、 は完全なRインタプリタをRubyに埋め込みます。つまり、Rubyを介してR関数/変数にアクセスするには、 にする必要があります。それは Rubyforgeからの宝石または情報源として入手可能です: http://rubyforge.org/projects/rsruby/ – francpaul

+0

申し訳ありませんが、私はRとそのRubyバインディングに精通しています。プロジェクト(私は、Rランタイム全体をインストールする必要なしに、宝石として配布できるものが欲しいです)。コメントをいただきありがとうございます - それは間違いなく私がスタンドアロンのアプリケーションや問題に取り組んでいる人にお勧めするアプローチです。 –

2

ピュアルビー・ソリューションは、とてつもなく遅いのことを行っています。私はMTJ(http://code.google.com/p/matrix-toolkits-java/)のようなものを手に取ってJRubyの下で使ってみたいです。

そこにはたくさんのJavaコードがあります。私は特定のライブラリを推薦するのに十分なスペースを知らないけれども、それはかなり成熟しています。私はjrubyからJavaを頻繁に使用したことを伝えることができます。

+0

これは良いフィット感のようです。ありがとうございます。私はまだ別のルビーバージョンで動作するようにFFIバインディングを使って何かに興味を持っていましたが、これは良いアプローチのようです。ライブラリを見て、JRubyで動作させることができるかどうかを確認します。 –

2

SciRubyを見ましたか?

現在実装されている疎行列はありませんが、現在取り組んでいます。田中正博の祝福を受け、NArrayの書き直し作業も進んでいます。

1つの目標は、すべて純粋なRuby、C(GSLバインディング経由)、およびJRubyのJavaで動作させることです。 (純粋なルビーは、GSLなどが利用できなかった場合には後退となります)

サイドノート:これはこの質問に対するひどい答えです。私はそれを主にここに掲示するので、そのようなことに取り組んでいる誰かが私たちを見つける場所を知っています。 =)

+0

うわー、いいえ、私はいませんでした - ずっと前に科学的なルビープロジェクトがありましたが、それがまだ活発であることはわかりませんでした。ありがとう! –

+1

これについて最新情報をお持ちですか? NMatrixの最初のアルファが消えています。 'gem install nmatrix'。それはSciRubyの一部であり、それはリストのリストとイエールの疎のサポートを持っています。 –

関連する問題