1 #include <iostream>
2 #include <Eigen/Dense>
3 
4 using namespace std;
5 using namespace Eigen;
6 
main()7 int main()
8 {
9    Matrix3f A;
10    A << 1, 2, 5,
11         2, 1, 4,
12         3, 0, 3;
13    cout << "Here is the matrix A:\n" << A << endl;
14    FullPivLU<Matrix3f> lu_decomp(A);
15    cout << "The rank of A is " << lu_decomp.rank() << endl;
16    cout << "Here is a matrix whose columns form a basis of the null-space of A:\n"
17         << lu_decomp.kernel() << endl;
18    cout << "Here is a matrix whose columns form a basis of the column-space of A:\n"
19         << lu_decomp.image(A) << endl; // yes, have to pass the original A
20 }
21