Rev | Line | |
---|
[136] | 1 | #include <iostream>
|
---|
| 2 | #include <Eigen/SVD>
|
---|
| 3 | using namespace Eigen;
|
---|
| 4 | using namespace std;
|
---|
| 5 |
|
---|
| 6 | float inv_cond(const Ref<const MatrixXf>& a)
|
---|
| 7 | {
|
---|
| 8 | const VectorXf sing_vals = a.jacobiSvd().singularValues();
|
---|
| 9 | return sing_vals(sing_vals.size()-1) / sing_vals(0);
|
---|
| 10 | }
|
---|
| 11 |
|
---|
| 12 | int main()
|
---|
| 13 | {
|
---|
| 14 | Matrix4f m = Matrix4f::Random();
|
---|
| 15 | cout << "matrix m:" << endl << m << endl << endl;
|
---|
| 16 | cout << "inv_cond(m): " << inv_cond(m) << endl;
|
---|
| 17 | cout << "inv_cond(m(1:3,1:3)): " << inv_cond(m.topLeftCorner(3,3)) << endl;
|
---|
| 18 | cout << "inv_cond(m+I): " << inv_cond(m+Matrix4f::Identity()) << endl;
|
---|
| 19 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.