aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2010-12-27 16:35:25 +0000
committerGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2010-12-27 16:35:25 +0000
commit657013c9743d9774d2fbb227b16e575b2f1ac2b0 (patch)
treec393a7a1a1f71cdc73b69c0f7e27064a282cb0d3
parent265e1ef4ef4e44d9b3e69040d84044c19b60370b (diff)
Mention ptr_fun in docs for .unaryExpr()
-rw-r--r--Eigen/src/plugins/CommonCwiseUnaryOps.h14
-rw-r--r--doc/examples/class_CwiseUnaryOp_ptrfun.cpp20
2 files changed, 31 insertions, 3 deletions
diff --git a/Eigen/src/plugins/CommonCwiseUnaryOps.h b/Eigen/src/plugins/CommonCwiseUnaryOps.h
index f2da51efa..631d6197b 100644
--- a/Eigen/src/plugins/CommonCwiseUnaryOps.h
+++ b/Eigen/src/plugins/CommonCwiseUnaryOps.h
@@ -130,10 +130,18 @@ real() const { return derived(); }
inline const ImagReturnType
imag() const { return derived(); }
-/** \returns an expression of a custom coefficient-wise unary operator \a func of *this
+/** \brief Apply a unary operator coefficient-wise
+ * \param[in] func Functor implementing the unary operator
+ * \tparam CustomUnaryOp Type of \a func
+ * \returns An expression of a custom coefficient-wise unary operator \a func of *this
*
- * The template parameter \a CustomUnaryOp is the type of the functor
- * of the custom unary operator.
+ * The function \c ptr_fun() from the C++ standard library can be used to make functors out of normal functions.
+ *
+ * Example:
+ * \include class_CwiseUnaryOp_ptrfun.cpp
+ * Output: \verbinclude class_CwiseUnaryOp_ptrfun.out
+ *
+ * Genuine functors allow for more possibilities, for instance it may contain a state.
*
* Example:
* \include class_CwiseUnaryOp.cpp
diff --git a/doc/examples/class_CwiseUnaryOp_ptrfun.cpp b/doc/examples/class_CwiseUnaryOp_ptrfun.cpp
new file mode 100644
index 000000000..36706d8ed
--- /dev/null
+++ b/doc/examples/class_CwiseUnaryOp_ptrfun.cpp
@@ -0,0 +1,20 @@
+#include <Eigen/Core>
+#include <iostream>
+using namespace Eigen;
+using namespace std;
+
+// define function to be applied coefficient-wise
+double ramp(double x)
+{
+ if (x > 0)
+ return x;
+ else
+ return 0;
+}
+
+int main(int, char**)
+{
+ Matrix4d m1 = Matrix4d::Random();
+ cout << m1 << endl << "becomes: " << endl << m1.unaryExpr(ptr_fun(ramp)) << endl;
+ return 0;
+}