c++ - Eigen::LLT< Eigen::MatrixXd > 类型不完整
问题描述
看看这段代码。在 Ubuntu 上编译...
MatrixXd A(3,3);
A << 4,-1,2, -1,6,0, 2,0,5;
cout << "The matrix A is" << endl << A << endl;
LLT<MatrixXd> lltOfA(A); // compute the Cholesky decomposition of A
这是一个doctest案例:
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include <doctest/doctest.h>
#include <Eigen/Core>
TEST_CASE("llt")
{
Eigen::MatrixXd A(3,3);
A<<1,2,3,4,5,6,7,8,9;
Eigen::LLT<Eigen::MatrixXd> lltof(A);
}
编译失败:
/src/test/test-proto.cc:40:38: error: variable ‘Eigen::LLT<Eigen::Matrix<double, -1, -1>, 1> lltof’ has initializer but incomplete type
Eigen::LLT<Eigen::MatrixXd> lltof(A);
是什么赋予了?这从我的代码中减少到完全代表文档。
解决方案
哎呀。测试用例应该是:
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include <doctest/doctest.h>
#include "proto.h"
#include <Eigen/Dense> //NOT Eigen/Core
TEST_CASE("llt")
{
Eigen::MatrixXd A(3,3);
A<<1,2,3,4,5,6,7,8,9;
Eigen::LLT<Eigen::MatrixXd> lltof(A);
}
注意 中的变化#include
。
愚蠢的错误,但我要把它留给我未来的自己/谷歌。
推荐阅读
- asp.net - 在 .net 核心 Web 应用程序中以编程方式更改 preloadEnabled
- python - Python 变量,在 Jupyter 笔记本中,尽管没有进一步的操作,但已修改
- html - HTML 表单/输入自动完成关闭
- r - 我可以更改 irf() - 函数的冲击大小吗?
- python - 根据现有列中的值计算新列
- typescript - 可以使用函数类型强制执行“无未知属性”吗?
- c - 在大多数操作系统中,为什么堆栈不能在运行时增加?
- python - 无法使用请求从网页中获取通往下一页的其余名称
- python - 如何将列表项的值插入 KivyMD 中的另一个屏幕
- c++ - 使用带有结构数据类型的 unordered_multimap