aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/examples
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2013-07-13 12:36:55 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2013-07-13 12:36:55 +0200
commit9a16519d62c7315c8ecf00c6c4cb2dbd4a12f9d3 (patch)
tree2ff2212531a4734df335bb5013e6bbd16b5971d7 /doc/examples
parent06a5bcecf68cd7d1d65ef3cc27dca69da6094303 (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.cpp19
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;
+}