# Digital differential analyzer

A digital differential analyzer (DDA), also sometimes called a digital integrating computer, is a digital implementation of a differential analyzer. The integrators in a DDA are implemented as accumulators, with the numeric result converted back to a pulse rate by the overflow of the accumulator.
The primary advantages of a DDA over the conventional analog differential analyzer are greater precision of the results and the lack of drift/noise/slip/lash in the calculations. The precision is only limited by register size and the resulting accumulated rounding/truncation errors of repeated addition. Digital electronics inherently lacks the temperature sensitive drift and noise level issues of analog electronics and the slippage and "lash" issues of mechanical analog systems.
For problems that can be expressed as differential equations, a hardware DDA can solve them much faster than a general purpose computer (using similar technology). However reprogramming a hardware DDA to solve a different problem (or fix a bug) is much harder than reprogramming a general purpose computer. Many DDAs were hardwired for one problem only and could not be reprogrammed without redesigning them. The implementation of DDA hardware configurations are usually identical to the configuration of classical analog computers, mapping a differential equation into a configuration of specialized computing elements.

## History

One of the inspirations for ENIAC was the mechanical analog Bush differential analyzer. It influenced both the architecture and programming method chosen. However, although ENIAC as originally configured, could have been programmed as a DDA (the "numerical integrator" in Electronic Numerical Integrator And Computer), there is no evidence that it ever actually was. The theory of DDAs was not developed until 1949, one year after ENIAC had been reconfigured as a stored program computer.
The first DDA built was the Magnetic Drum Digital Differential Analyzer of 1950.

## Theory

The basic DDA integrator, shown in the figure, implements numerical rectangular integration via the following equations:
    $y^{*}=y\pm \sum \Delta y$
    $S^{*}=S\pm y^{*}\sum \Delta x$
Where Δx causes y to be added to (or subtracted from) S, Δy causes y to be incremented (or decremented), and ΔS is caused by an overflow (or underflow) of the S accumulator. Both registers and the three Δ signals are signed values. Initial conditions for the problem can be loaded into both y and S prior to beginning integration.
This produces an integrator approximating the following equation:
    $\Delta S=K\int \Delta y\Delta x$
where K is a scaling constant determined by the precision (size) of the registers as follows:
    $K={1 \over {\text{radix}}^{n}}$
where radix is the numeric base used (typically 2) in the registers and n is the number of places in the registers.
If Δy is eliminated, making y a constant, then the DDA integrator reduces to a device called a rate multiplier, where the pulse rate ΔS is proportional to the product of y and Δx by the following equation:
    $\Delta S=Ky\Delta x$

## Error sources

There are two sources of error that limit the accuracy of DDAs:
* Rounding/truncation errors due to the limited precision of the registers,
* Approximation errors due to the chosen numerical integration algorithm.
Both of these error sources are cumulative, due to the repeated addition nature of DDAs. Therefore longer problem time results in larger inaccuracy of the resulting solution.
The effect of rounding/truncation errors can be reduced by using larger registers. However, as this reduces the scaling constant K, it also increases problem time and therefore may not significantly improve accuracy and in real time DDA based systems may be unacceptable.
The effect of approximation errors can be reduced by using a more accurate numerical integration algorithm than rectangular integration (e.g., trapezoidal integration) in the DDA integrators.
DDAs could be seen as a special form of hybrid computer, being configured like analog computers with digital instead of analog computing elements. There for this type of computer has both advantages and drawbacks caused by the digital implementation of the analog computing paradigm. These are primarily introduced by numerical instabilities caused by the choice of the integration method and the fact that high clocking frequencies and short integration steps are needed, which also leads to a higher energy demand. On the other hand complex functions and variables like in partial differential equations are easier to simulate on a DDA than on a classical differetnial analyzer or analog computer.

## Patents

* U.S. patent 3,313,925
* U.S. patent 3,564,223
* U.S. patent 3,598,974