N -body simulations are simple in principle, because they involve merely integrating the 6 N ordinary differential equations defining the particle motions in Newtonian gravity. In practice, the number N of particles involved is usually very large (typical simulations include many millions, the Millennium simulation included ten billion) and the number of particle-particle interactions needing to be computed increases on the order of N, and so direct integration of the differential equations can be prohibitively computationally expensive. Therefore, a number of refinements are commonly used.