where E is the potential energy, c is the vector of constraints, and w are the corresponding Lagrange multipliers. The goal of the iterative diagonalization procedure for saddle point optimization, outlined in algorithm 1, is to find the leftmost eigenvector of the Hessian of the potential energy H. For constrained optimization, the goal is instead to find the leftmost eigenvector of the Hessian of the Lagrangian H L , as this is the Hessian (or approximation thereof) that is used in the optimization procedure (see section 2.4). When performing an optimization in an internal coordinate basis, our algorithm iteratively diagonalizes the Hessian in the nonredundant internal coordinate basis q. One could alternately perform iterative diagonalization of the Hessian in the unconstrained nonredundant space q. However, it is useful to know the energetic coupling between the constrained and unconstrained degrees of freedom, particularly for extrapolation of the gradient as in equation 26 below. For this reason, we include constrained degrees of freedom in the iterative Hessian diagonalization procedure.