diff options
Diffstat (limited to 'eigen/doc/examples/class_CwiseUnaryOp.cpp')
-rw-r--r-- | eigen/doc/examples/class_CwiseUnaryOp.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/eigen/doc/examples/class_CwiseUnaryOp.cpp b/eigen/doc/examples/class_CwiseUnaryOp.cpp new file mode 100644 index 0000000..a5fcc15 --- /dev/null +++ b/eigen/doc/examples/class_CwiseUnaryOp.cpp @@ -0,0 +1,19 @@ +#include <Eigen/Core> +#include <iostream> +using namespace Eigen; +using namespace std; + +// define a custom template unary functor +template<typename Scalar> +struct CwiseClampOp { + CwiseClampOp(const Scalar& inf, const Scalar& sup) : m_inf(inf), m_sup(sup) {} + const Scalar operator()(const Scalar& x) const { return x<m_inf ? m_inf : (x>m_sup ? m_sup : x); } + Scalar m_inf, m_sup; +}; + +int main(int, char**) +{ + Matrix4d m1 = Matrix4d::Random(); + cout << m1 << endl << "becomes: " << endl << m1.unaryExpr(CwiseClampOp<double>(-0.5,0.5)) << endl; + return 0; +} |