I have been reading the book Computer Simulation of Liquids by Allen and Tildesley. Starting on page 71, the authors discuss the various algorithms that are used to integrate Newton's equations of motion in molecular dynamics (MD) simulations. Starting on page 78, the authors discuss the Verlet algorithm, which is perhaps the canonical integration algorithm in MD. They state:
Perhaps the most widely used method of integrating the equations of motion is that initially adopted by Verlet (1967) and attributed to Stormer (Gear 1971). This method is a direct solution of the second-order equation $m_i \ddot{\textbf{r}}_i = \textbf{f}_i$. The method is based on postions $\textbf{r}(t)$, accelerations $\textbf{a}(t)$, and the positions $\textbf{r}(t - \delta t)$ from the previous step. The equation for advancing the positions reads as follows:
$$\tag{3.14}\textbf{r}(t + \delta t) = 2\textbf{r}(t) - \textbf{r}(t - \delta t) + \delta t^2 \textbf{a}(t).$$
There are several points to note about eqn (3.14). It will be seen that the velocities do not appear at all. They have been eliminated by addition of the equations obtained by Taylor expansion about $\textbf{r}(t)$:
$$\textbf{r}(t + \delta t) = \textbf{r}(t) + \delta t \textbf{v}(t) + (1/2) \delta t^2 \textbf{a}(t) + ...$$
$$\tag{3.15}\textbf{r}(t - \delta t) = \textbf{r}(t) - \delta t \textbf{v}(t) + (1/2) \delta t^2 \textbf{a}(t) - ... .$$
Then, later (on page 80), the authors state:
Against the Verlet algorithm, ... the form of the algorithm may needlessly introduce some numerical imprecision. This arises because, in eqn (3.14), a small term ($\mathcal{O}(\delta t^2)$) is added to a difference of large terms ($\mathcal{O}(\delta t^0)$), in order to generate the trajectory.
I guess that the "small term" is $\delta t^2 \textbf{a}(t)$, and the "difference of large terms" is $2\textbf{r}(t) - \textbf{r}(t - \delta t)$.
My question is, why does numerical imprecision result from adding a small term to a difference of large terms?
I am interested in a rather basic, conceptual reason, since I am not familiar at all with details of floating point arithmetic. Also, do you know of any "overview-type" references (books, articles, or websites) that would introduce me to basic ideas of floating point arithmetic related to this question? Thanks for your time.