我尝试初始化一个大小为60,000,000,000的VectorXd。当运行我的软件时,由于向量的大小,我得到以下错误。
有什么解决问题的建议吗?
a.out:/usr/local/easybuild/software/eigen/3.3.3-intel-2018a/include/eigen/src/core/plainobjectbase.h:312:void eigen::plainobjectbase::resize(Eigen::index)[with Derived=eigen::matrix;eigen::index=long int]:断言((SizeAtCompileTime==Dynamic&&(maxsizeatCompiletime==Dynamic size<=maxsizeatCompiletime))SizeAtCompileTime==size>=0'失败。中止(核心转储)
null
//Changing the value of Dynamic breaks the ABI, as Dynamic is often used as a template parameter for Matrix.
const int Dynamic = -1;
因此,您可以通过将特定断言重新定义为更大的类型(如
const long Dynamic = -1;
但是,Eigen的模板参数都被指定为
此外,您将需要大量的RAM或交换空间来使程序运行。