63 using RowMajor = Eigen::Matrix<TReal, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>;
64 const unsigned int n = M.rows();
66 Eigen::Map<const RowMajor> mMap(M.data_block(), n, M.cols());
67 const Eigen::EigenSolver<Eigen::Matrix<TReal, Eigen::Dynamic, Eigen::Dynamic>> solver(mMap);
69 if (solver.info() != Eigen::Success)
71 itkGenericExceptionMacro(<<
"RealEigenDecomposition: Eigen EigenSolver failed: "
75 using ComplexRowMajor = Eigen::Matrix<ComplexType, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>;
77 Eigen::Map<Eigen::Matrix<ComplexType, Eigen::Dynamic, 1>>(
m_Eigenvalues.data_block(), n) = solver.eigenvalues();
79 Eigen::Map<ComplexRowMajor>(
m_Eigenvectors.data_block(), n, n) = solver.eigenvectors();