13

Ruby에서 사용할 수있는 희소 행렬 라이브러리를 찾고 있습니다. 현재 "gsl"보석에서 제공하는 GNU Scientific Library bindings을 사용하고 있지만, 전용 스파 스 매트릭스 라이브러리를 사용하면 응용 프로그램이 더 최적화됩니다. linalgNArray 라이브러리를 조사했습니다. 이 세 라이브러리 중 어느 것도 스파 스 매트릭스 최적화 저장 또는 조작을 지원하지 않습니다.Ruby 용 희소 행렬 라이브러리

내가 놓친 부분이 있습니까? 아니면 바인딩을 작성할 수있는 기존의 C 라이브러리가 있습니까? 이전에 Ruby에서 C 바인딩을 작성하지 않았으므로, 후자를 선호합니다.하지만이를 시도해 볼 수는 있습니다.

답변

3

위에서 언급 한 Bill과 마찬가지로 순수한 루비 해석은 원하는 것보다 느려지지만 프로토 타입 제작에는 유용 ​​할 수 있습니다. 나는 그런 도서관을 끝내기 위해 일해왔다. https://github.com/hmcfletch/sparse-matrix

아직 보석으로 발표하지 않았으며, 더 많은 작업이 필요하다.

+0

환상적입니다. 고마워요.이전에 도서관을 살펴 봤지만 상당한 변화가 있었던 것처럼 보입니다. 매우 감사! –

+0

@HMCFletch, SciRuby에 합류 할 관심이 있으십니까? 우리는 narray 재 작성을 위해 노력 중이며 이제는 희소 행렬을 코딩하려고하고 있습니다. –

1
+0

답장을 보내 주셔서 감사합니다. 네, 있어요. 매우 강력하지만,이 라이브러리에 대해서는 루비에 더 가까운 것을 원합니다. –

+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에서 사용하고 싶습니다.

거기에 자바 코드가 많이 있습니다. 비록 내가 특정 라이브러리를 추천하기에 충분한 공간을 알지는 못했지만 그것의 대부분은 꽤 성숙했다. jruby에서 Java를 자주 사용했음을 알 수 있으며 함께 작업하는 것이 즐겁습니다.

+0

이것은 잘 맞는 것 같습니다. 고마워요. 나는 여전히 FFI 바인딩을 사용하여 다른 루비 버전과 함께 작업하는 것에 관심이 있지만 좋은 접근 방법처럼 보입니다. 라이브러리를 살펴보고 JRuby에서 작동하도록 할 수 있는지 살펴 보겠습니다. –

2

SciRuby을 보았습니까?

현재 구현 된 스파 스 매트릭스가 없지만 아직 작업 중입니다. 우리는 Masahiro Tanaka의 축복으로 NArray를 다시 작성하는 중입니다.

하나의 목표는 순수 Ruby, C (GSL 바인딩을 통해) 및 JRuby 용 Java에서 모두 작동하도록하는 것입니다. (순수 루비는 GSL 등을 사용할 수없는 경우 대체 될 것입니다.)

사이드 노트 :이 질문에 대한 끔찍한 답변입니다. 나는 그것을 여기에 주로 게시하여 그러한 일을하는 다른 사람이 어디에서 우리를 찾을 수 있는지 알고 있습니다. =)

+0

와우, 아니, 나는 오래 전에 과학 루비 프로젝트가 있었지만 아직 활동적 이었음을 깨닫지 못했다. 감사! –

+1

이것에 대해 최신 정보를 유지하고 있습니까? NMatrix의 첫 번째 알파가 나옵니다. '보석 설치 nmatrix'. SciRuby의 일부이며 목록 및 yale 스파 스 지원을 제공합니다. –

관련 문제