Библиотеки разреженных матриц для Ruby - PullRequest
13 голосов
/ 18 июля 2011

Я ищу библиотеку Sparse Matrix, которую я могу использовать из Ruby. В настоящее время я использую привязки GNU Scientific Library , предоставляемые гемом "gsl", но мое приложение было бы лучше оптимизировано, если бы я использовал выделенную библиотеку разреженных матриц. Я исследовал библиотеки linalg и NArray . Ни одна из этих трех библиотек не поддерживает хранение или операции, оптимизированные для разреженных матриц.

Есть ли что-то, что я пропустил - или существующую библиотеку C, для которой можно написать привязки? Я предпочел бы первое последнему, так как я не писал C-привязок в Ruby раньше, но я бы хотел попробовать это.

Ответы [ 4 ]

3 голосов
/ 22 сентября 2011

Как и Билл, упомянутый выше, интерпретация чистого рубина будет медленнее, чем вы хотите, но может пригодиться для создания прототипов.Я работал над именно такой библиотекой на https://github.com/hmcfletch/sparse-matrix

Я еще не выпустил ее как драгоценный камень, и над ней еще предстоит проделать дополнительную работу, но посмотрите, есть ли у васпотребность.

2 голосов
/ 14 октября 2011

Вы видели SciRuby ?

В настоящее время у нас нет разреженной матрицы, но мы работаем над этим.Мы также переписываем NArray с благословения Масахиро Танаки.

Одна из целей - заставить все работать в чистом Ruby, в C (обычно через привязки GSL) и в Java для JRuby.(Чистый Рубин мог бы стать запасным вариантом, если бы GSL и т. Д. Были бы недоступны.)

Примечание: Это ужасный ответ на этот вопрос.Я публикую это здесь главным образом, чтобы любой, кто занимается такими вещами, знал, где нас найти.=)

2 голосов
/ 26 июля 2011

Чистые рубиновые решения будут смехотворно медленными. Я хотел бы подобрать что-то вроде MTJ (http://code.google.com/p/matrix-toolkits-java/) и использовать его под JRuby.

Там есть куча java-кода; большая часть этого довольно зрелая, хотя я не знаю места достаточно хорошо, чтобы рекомендовать определенную библиотеку. Я могу вам сказать, что я часто использовал java от jruby, и с ним приятно работать.

...