1#include <Eigen/Core> 2#include <iostream> 3using namespace Eigen; 4using namespace std; 5 6// define a custom template binary functor 7template<typename Scalar> struct MakeComplexOp { 8 EIGEN_EMPTY_STRUCT_CTOR(MakeComplexOp) 9 typedef complex<Scalar> result_type; 10 complex<Scalar> operator()(const Scalar& a, const Scalar& b) const { return complex<Scalar>(a,b); } 11}; 12 13int main(int, char**) 14{ 15 Matrix4d m1 = Matrix4d::Random(), m2 = Matrix4d::Random(); 16 cout << m1.binaryExpr(m2, MakeComplexOp<double>()) << endl; 17 return 0; 18} 19