Speed
Eniac adds or subtracts very swiftly at the rate of 5000 a second. Eniac multiplies at the rate of 360 to 500 a second. Division, however, is slow, relatively; the rate is about 50 a second. Reading numbers from punched cards, 12 a second for 10-digit numbers, is even slower. As a result of these rates, you find, when you put a problem on Eniac, that one division delays you as long as 100 additions or 8 multiplications. Division might have been speeded somewhat by (1) rapidly convergent approximation ([see Supplement 2]) to the reciprocal of the divisor and (2) multiplying by the dividend; this might have taken 5 or 6 multiplication times instead of 8. Also, the use of a standard IBM punch-card feed and card punch slows the machine greatly. One way to overcome this drawback might be to install one or two additional sets of such equipment, which might increase input and output speed.
Ease of Programming
Eniac has a very rapid and flexible automatic control over the programming of operations. Eniac has more than 10 channels along which numbers can be transferred and more than 100 channels along which program-control pulses can be transferred. There are many ways for providing subroutines. Eniac has the additional advantage that there is no delay in giving the machine successive instructions: all the instructions the machine may need at any time are ready at the start of the problem, and indications occurring in the calculation can change the routine completely.
All these advantages, however, are paid for rather heavily by the slow methods for changing programming. You have to plug large numbers of program trunk lines and digit trunk lines, or you have to set large numbers of switches, or both. Also, when you wish to return to a previous problem, you must do all the plugging and switch setting over again. Many delays in the operation of the machine are due to human errors in setting the machine for a new problem. Here again, we must remember that Eniac was originally designed as a special-purpose machine for solving trajectories. To calculate a large family of trajectories very little changing of wires and switches would be needed.
Memory
The most severe limitation on the usefulness of Eniac was, at the outset, the fact that it had only 20 registers for storing numbers. There are large numbers of problems that cannot be simply handled with so small an internal memory. Even the Harvard IBM calculator ([see Chapter 6]) is often strained during a problem because of the number of intermediate results that must be stored for a time before combining. The Ballistic Research Laboratories, however, contracted for extensions to Eniac to provide more memory and easier changing of instructions.
Reliability
Checking results with Eniac is not easy. There is no built-in guarantee that Eniac’s results are correct. A large calculator can and does make both constant and intermittent errors. Ways for checking with Eniac are:
Mathematical, if and when available, and this will be seldom.