diff options
author | Gael Guennebaud <g.gael@free.fr> | 2013-07-13 12:36:55 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2013-07-13 12:36:55 +0200 |
commit | 9a16519d62c7315c8ecf00c6c4cb2dbd4a12f9d3 (patch) | |
tree | 2ff2212531a4734df335bb5013e6bbd16b5971d7 /doc/examples | |
parent | 06a5bcecf68cd7d1d65ef3cc27dca69da6094303 (diff) |
Extend the "functions taking Eigen type" doc page to present the Ref<> option.
Diffstat (limited to 'doc/examples')
-rw-r--r-- | doc/examples/function_taking_ref.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/doc/examples/function_taking_ref.cpp b/doc/examples/function_taking_ref.cpp new file mode 100644 index 000000000..162a202e4 --- /dev/null +++ b/doc/examples/function_taking_ref.cpp @@ -0,0 +1,19 @@ +#include <iostream> +#include <Eigen/SVD> +using namespace Eigen; +using namespace std; + +float inv_cond(const Ref<const MatrixXf>& a) +{ + const VectorXf sing_vals = a.jacobiSvd().singularValues(); + return sing_vals(sing_vals.size()-1) / sing_vals(0); +} + +int main() +{ + Matrix4f m = Matrix4f::Random(); + cout << "matrix m:" << endl << m << endl << endl; + cout << "inv_cond(m): " << inv_cond(m) << endl; + cout << "inv_cond(m(1:3,1:3)): " << inv_cond(m.topLeftCorner(3,3)) << endl; + cout << "inv_cond(m+I): " << inv_cond(m+Matrix4f::Identity()) << endl; +} |