Numo::Linalgライブラリを使用したいのですが,RuntimeErrorが出てしまい,原因がわかりません
数値計算でNumo::Linalgライブラリを使用したいため,以下のようなコードを書きました.
ところが,下記のURLにあるようにBackend Libraryを指定しても下記のようなRuntimeエラーが出てしまいます.
https://github.com/ruby-numo/numo-linalg
https://github.com/ruby-numo/numo-linalg/blob/master/doc/select-backend.md
エラーメッセージ
/Users/xxxx/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/numo-linalg-0.1.3/lib/numo/linalg/loader.rb:145:in``'load_lapack': cannot find BLAS/LAPABK library (RuntimeError)
原因が全くわからないので,どなたかご教授お願い致します.
require 'test/unit'
require 'numo/linalg/use/lapack'
require 'numo/linalg/use/openblas'
# Numo 最小二乗法
def NumoLeastSquare(x, y)
# xの転置行列, yの転置行列 を NArray に変換する(NumRu::Lapack.cgelssの実装上,転置しなければいけない)
nx = NArray.to_na(x.transpose)
ny = NArray.to_na(y.transpose)
# 最小二乗法を解く
# => || b - Ax || が最小となる x を求める
# b に上書きされる
a, b, s, rank, info = Numo::Linalg::Lapack.cgelss(nx, ny, 0.00001.to_f)
return b
end
class UnitTest < Test::Unit::TestCase
def test_Numo_lapack_cgelss
a = [[Complex(2.0, 0.0), Complex(0.0, 0.0)], [Complex(-1.0, 0.0), Complex(1.0, 0.0)], [Complex(0.0, 0.0), Complex(2.0, 0.0)]]
b = [[Complex(1.0, 0.0)], [Complex(0.0, 0.0)], [Complex(-1.0, 0.0)]]
h = NumoLeastSquare(a, b)
p h.size
for i in 0 ... h.size do
p "h[#{i}] = #{h[i]}"
end
end
end