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