68 :
V(M.rows(), M.cols())
71 using RowMajor = Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>;
72 using Vector = Eigen::Matrix<T, Eigen::Dynamic, 1>;
73 const unsigned int n = M.rows();
75 Eigen::Map<const RowMajor> mMap(M.data_block(), n, n);
76 const Eigen::SelfAdjointEigenSolver<RowMajor> solver(mMap);
78 if (solver.info() != Eigen::Success)
80 itkGenericExceptionMacro(<<
"SymmetricEigenDecomposition: Eigen SelfAdjointEigenSolver failed: "
84 Eigen::Map<RowMajor>(
V.data_block(), n, n) = solver.eigenvectors();
85 Eigen::Map<Vector>(
D.data_block(), n) = solver.eigenvalues();
87 if (canonicalizeSigns)