2016-07-22 32 views
0

いくつかのコードを疎行列に変換しようとしています。spsolveを呼び出せません

no matching function call to 'spsolve(arma::spmat&, arma::sp_mat&)

エラー行がある - - 私はしかし、私はそれをしようとしたとき、私は上でコンパイルエラーを取得し、私はhttp://arma.sourceforge.net/docs.html#spsolve

からSPSOLVEを使用することができるはずことがわかり arma::sp_mat xu = arma::spsolve(WuT, YTCupu);

hereから

明らかに私は行方不明ですが、私はそれを理解できません。助言がありますか?ここで

がロードされているものである

> sessionInfo() 
R version 3.3.1 (2016-06-21) 
Platform: x86_64-pc-linux-gnu (64-bit) 
Running under: Ubuntu 14.04.4 LTS 

locale: 
[1] LC_CTYPE=en_US.UTF-8  LC_NUMERIC=C    LC_TIME=en_US.UTF-8  
[4] LC_COLLATE=en_US.UTF-8  LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 
[7] LC_PAPER=en_US.UTF-8  LC_NAME=C     LC_ADDRESS=C    
[10] LC_TELEPHONE=C    LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] recommenderlabrats_1.0 RcppArmadillo_0.7.100.3.1 recommenderlab_0.2-0  
[4] registry_0.3    proxy_0.4-16    arules_1.4-1    
[7] Matrix_1.2-6    

loaded via a namespace (and not attached): 
[1] tools_3.3.1  Rcpp_0.12.6  grid_3.3.1  irlba_2.0.0  lattice_0.20-24 

答えて

2

チェックspsolve documentation再び:

Aがスパース行列がある

、Bは密行列またはベクトルであり、Xは不明である

アルマジロには2つの疎な行列を解く方法はありません。できるだけ良い方法は次のとおりです。

#include <RcppArmadillo.h> 
using namespace Rcpp; 

// [[Rcpp::depends(RcppArmadillo)]] 

// [[Rcpp::export]] 
void arma_solve_tester() { 
    // SPARSE 
    arma::sp_mat A = arma::sprandu<arma::sp_mat>(1000, 1000, 0.1); 

    arma::vec b = arma::randu<arma::vec>(1000); // DENSE 
    arma::mat B = arma::randu<arma::mat>(1000, 5); // DENSE 

    arma::vec x = spsolve(A, b); // solve one system 
    arma::mat X = spsolve(A, B); // solve several systems 
} 

Eigen's sparse documentationをちらっと見ている私は、どちらかを使用できるかどうかは完全にはわかりません。

+0

'sparse on sparse'を解決するのはいいかもしれませんし、新しいマイクロパッケージ(呼び出しをエクスポートすることさえ)さえ可能です。 –

+0

もしそれが開発されていれば、アルマジロの上流へのプッシュでなければなりません。私は疎なアルゴリズムを調べなければならないでしょう。 – coatless

+0

MLPACKで使用されているような希少なものがあるので、ライアンの質問になるかもしれません。我々はそれらを電子メールで送ることができる。 –

関連する問題