使用犰狳时dgssvx中存在非法值 我用ARMADILO库来解决我的C++代码中稀疏线性系统。p>

使用犰狳时dgssvx中存在非法值 我用ARMADILO库来解决我的C++代码中稀疏线性系统。p>,c++,armadillo,C++,Armadillo,当我想使用spsolve()函数(调用SuperLu)时,我得到以下错误: **输入dgssvx时,参数编号13具有非法值 当我不使用spsolve()和密集矩阵时,一切都进展顺利 提前感谢当我查看dgssvx例程时,错误13与右侧b的错误格式有关 #include <iostream> #include <armadillo> using namespace std; using namespace arma; int main() { sp_mat A = s

当我想使用spsolve()函数(调用SuperLu)时,我得到以下错误:

**输入dgssvx时,参数编号13具有非法值

当我不使用spsolve()和密集矩阵时,一切都进展顺利


提前感谢

当我查看dgssvx例程时,错误13与右侧b的错误格式有关

#include <iostream>
#include <armadillo>

using namespace std; 
using namespace arma;

int main() {

sp_mat A = sprandu<sp_mat>(1000,1000,0.1) ;
vec b = randu<vec>(1000) ;
vec x =spsolve(A,b) ;
return 0;
}
#包括
#包括
使用名称空间std;
使用arma;
int main(){
sp_mat A=sprandu(10001000,0.1);
vec b=randu(1000);
vec x=spsolve(A,b);
返回0;
}

当我查看dgssvx例程时,错误13与右侧b的错误格式有关

#include <iostream>
#include <armadillo>

using namespace std; 
using namespace arma;

int main() {

sp_mat A = sprandu<sp_mat>(1000,1000,0.1) ;
vec b = randu<vec>(1000) ;
vec x =spsolve(A,b) ;
return 0;
}
#包括
#包括
使用名称空间std;
使用arma;
int main(){
sp_mat A=sprandu(10001000,0.1);
vec b=randu(1000);
vec x=spsolve(A,b);
返回0;
}
我使用GCC 6.3.0版和Armadillo 7.600.2版运行您的确切代码(包括相同的代码)。您是否在程序中正确链接到SuperLU库?ARMA\U USE\U SUPERLU定义了吗?这一定与链接有关,因为
dgssvx
是superlu库调用的包装器:

听起来好像当你调用
spsolve
犰狳无法调用SuperLU。不确定订单是否重要,但我先链接SuperLU,然后链接LAPack,然后链接BLAS。

您的确切代码(包括相同的代码)使用GCC版本6.3.0和Armadillo版本7.600.2为我运行。您是否在程序中正确链接到SuperLU库?ARMA\U USE\U SUPERLU定义了吗?这一定与链接有关,因为
dgssvx
是superlu库调用的包装器:


听起来好像当你调用
spsolve
犰狳无法调用SuperLU。不确定顺序是否重要,但我先链接SuperLU,然后链接LAPack,然后链接BLAS。

提供代码以再现错误。提供代码以再现错误。