inline void approximateNearestOrthogonalMatrix(const Eigen::MatrixBase<Derived>& R) { Eigen::Matrix3d E = R.transpose() * R; E.diagonal().array() -= 1; const_cast<Eigen::MatrixBase<Derived>&>(R) -= 0.5 * R * E; }