void Foam::mosDMDEigenBase::realSymmEigenSolver(const Eigen::MatrixXd& M, Eigen::DiagonalMatrix<scalar, Eigen::Dynamic>& S, Eigen::MatrixXd& U) { // Solve eigenvalues and eigenvectors Eigen::SelfAdjointEigenSolver<Eigen::MatrixXd> eigenSolver; eigenSolver.compute(M); // Sort eigenvalues and corresponding eigenvectors // in descending order SortableList<scalar> sortedList(M.rows()); forAll (sortedList, i) { sortedList[i] = eigenSolver.eigenvalues()[i]; } // Do sort sortedList.sort(); label n = 0; forAllReverse(sortedList, i) { S.diagonal()[n] = sortedList[i]; U.col(n) = eigenSolver.eigenvectors().col(sortedList.indices()[i]); n++; }
units::quantity<units::si::length,float> length_in_sample_space( int d, units::quantity<units::camera::length,float> l ) const { return to_sample.diagonal()[d] * l.value() * units::si::meter; }
units::quantity<units::camera::length,float> length_in_image_space( int d, units::quantity<units::si::length,float> l ) const { return to_image.diagonal()[d] * l.value() * units::camera::pixel; }