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 Lidouble 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 Liint 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