使用犰狳时dgssvx中存在非法值 我用ARMADILO库来解决我的C++代码中稀疏线性系统。p>
当我想使用spsolve()函数(调用SuperLu)时,我得到以下错误: **输入dgssvx时,参数编号13具有非法值 当我不使用spsolve()和密集矩阵时,一切都进展顺利使用犰狳时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
提前感谢当我查看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。提供代码以再现错误。提供代码以再现错误。