1c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include <unsupported/Eigen/MatrixFunctions> 2c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include <iostream> 3c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 4c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathusing namespace Eigen; 5c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 6c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathstd::complex<double> expfn(std::complex<double> x, int) 7c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 8c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return std::exp(x); 9c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 10c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 11c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathint main() 12c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 13c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath const double pi = std::acos(-1.0); 14c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 15c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath MatrixXd A(3,3); 16c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath A << 0, -pi/4, 0, 17c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath pi/4, 0, 0, 18c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 0, 0, 0; 19c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 20c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath std::cout << "The matrix A is:\n" << A << "\n\n"; 21c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath std::cout << "The matrix exponential of A is:\n" 22c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath << A.matrixFunction(expfn) << "\n\n"; 23c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 24