Can I re-wind gravity? Suppose I perform an arbitrary simulation where I integrate the motions of a collection of particles which interact only gravitationally. Suppose I use a time reversible integrator (to be specific, let's say leapfrog, which is also symplectic, in case that's important). The fact that the integrator is termed 'time reversible' is highly suggestive that I should be able to run my simulation 'in reverse' simply by choosing time steps that are the negatives of the time steps used to run the simulation 'forwards'. But is this actually true? Does it matter how I calculate forces (accelerations)? For instance, does it matter if I'm using direct summation of $GM/r^2$, or a tree algorithm such as a Barnes-Hut tree? One last simplification, let's suppose I have a computer capable of arbitrary floating point precision so that we can ignore roundoff error.
 A: TL;DR: Yes. Although in reality you don't have unlimited floating point precision, and this will almost always break time-reversibility.
I should point out that not all integrators are time-reversible. For example, predictor-corrector schemes, and most schemes that deal with constraints. The Verlet method, however, is time-reversible, even for large time-steps. It is fairly trivial (but cumbersome) to show this by applying a forward integration step and then a backward one and getting back to where you started.
Related: What does the time-reversibility of Verlet (or other) integration mean?
In reality, however, limited floating-point precision will introduce small errors that will grow exponentially (due to the Lyapunov instability) and break the time-reversibility.
Regarding force field optimisations, they will only break time-reversibility if the computed forces depend on the history of the trajectory or are in any way stochastic. This is not the case for a naive implementation of Barnes-Hut.
