50442


数値計算で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)`

原因が全くわからないので，どなたかご教授お願い致します．

[code]

    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
    
[/code]


CC BY-SA 4.0
2018-11-15T15:57:25.963
50364
2018-11-19T09:04:42.837
2018-11-16T01:31:16.907
30173
30173
question
ruby rubygems
Numo::Linalgライブラリを使用したいのですが，RuntimeErrorが出てしまい，原因がわかりません


[Numo::Linalg](https://github.com/ruby-numo/numo-
linalg)のGitHubの、`README.md`によると、

> Install [LAPACK](http://www.netlib.org/lapack/) or alternative package.  
>  (LAPACKか互換のパッケージが必要です）

補足として

> Numo::Linalg requires C-interface
> [CBLAS](http://www.netlib.org/blas/#_cblas) and
> [LAPACKE](http://www.netlib.org/lapack/lapacke.html) interface. These are
> included in LAPACK package.  
>  (訳：`Numo::Linalg`はC-インターフェースとしてCLABSとLAPACKEが必要ですが、`LAPACK`に含まれています)

更に

> Recommended: use one of following faster libraries:  
>  (訳：ライブラリーを高速に動かすためには以下のいずれかのライブラリーが必要です)

[ATLAS](https://sourceforge.net/projects/math-atlas/)  
[OpenBLAS](http://www.openblas.net)  
[Intel MKL](https://software.intel.com/en-us/mkl)

とあるので、`LAPACK`のインストールが別途必須で、  
より処理速度を求める場合には、`ATLAS`,`OpenBLAS`,`Intel MKL`これらのうちいずれかをインストールすれば良いのでは無いでしょうか。

訳が間違っていた場合はご容赦またはご指摘よろしくお願いします。


CC BY-SA 4.0
2018-11-15T17:00:30.030
50365
2018-11-15T17:00:30.030
14745
50364
answer

[code]

    require 'numo/linalg/use/lapack'
    
[/code]

の行を削除してはどうでしょうか。

[code]

    require 'numo/linalg/use/openblas'
    
[/code]

の行だけで実行できるはずです。


CC BY-SA 4.0
2018-11-19T09:04:42.837
50442
2018-11-19T09:04:42.837
31056
50364
answer