xref: /aosp_15_r20/external/eigen/doc/examples/class_CwiseUnaryOp_ptrfun.cpp (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Li #include <Eigen/Core>
2*bf2c3715SXin Li #include <iostream>
3*bf2c3715SXin Li using namespace Eigen;
4*bf2c3715SXin Li using namespace std;
5*bf2c3715SXin Li 
6*bf2c3715SXin Li // define function to be applied coefficient-wise
ramp(double x)7*bf2c3715SXin Li double ramp(double x)
8*bf2c3715SXin Li {
9*bf2c3715SXin Li   if (x > 0)
10*bf2c3715SXin Li     return x;
11*bf2c3715SXin Li   else
12*bf2c3715SXin Li     return 0;
13*bf2c3715SXin Li }
14*bf2c3715SXin Li 
main(int,char **)15*bf2c3715SXin Li int main(int, char**)
16*bf2c3715SXin Li {
17*bf2c3715SXin Li   Matrix4d m1 = Matrix4d::Random();
18*bf2c3715SXin Li   cout << m1 << endl << "becomes: " << endl << m1.unaryExpr(ptr_fun(ramp)) << endl;
19*bf2c3715SXin Li   return 0;
20*bf2c3715SXin Li }
21