[英]How to fix this Eigen matrix inversion overflow error?
#include "Eigen/Core"
#include <iostream>
using namespace std;
using namespace Eigen;
int main() {
Matrix <float, 2, 2 > J;
J << 0.0f, -1.0f, 1.0f, 0.0f;
Matrix <float, 2, 2 > I;
I << 1.0f, 0.0f, 0.0f, 1.0f;
Matrix <float, 2, 2 > A;
A = 20.0f * I + 30.0f * J;
Matrix <float, 2, 2 > B;
B = 10.0f * I + 25.0f * J;
Matrix <float, 2, 2 > C;
C = B;
cout << C.inverse() << endl;
return 0;
}
它給出了一個我無法修復的錯誤。 我不知道這里“未解決的外部問題”是什么意思,如果是溢出錯誤如何解決?
如果您查看MatrixBase::inverse
的文檔,您會發現它要求您包含Eigen/LU
。 Godbolt 演示: https ://godbolt.org/z/ydfALn
如果你只包含Eigen/Core
,你只會得到一個inverse
的前向聲明,編譯器會假設它會在別處實現並且鏈接器會失敗,因為它找不到符號。
包括Eigen/Dense
也可以,因為它包括 ia Eigen/LU
標頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.