I have prepared many drawings of the machine and its parts; but it is not possible in a short paper to go into any detail as to the mechanism by means of which elaborate formulae can be evaluated, as the subject is necessarily extensive and somewhat complicated; and I must, therefore, confine myself to a superficial description, touching only points of particular interest or importance.
This is a small investigation into how much can be inferred about a machine designed by Percy Ludgate and described in a 1909 paper by him called 'On a Proposed Analytical Machine’. See The Computer Journal, Volume 14, Issue 3, pp 317-326 - Ludgate’s analytical machine of 1909 which has a very good introduction by B.Randell to the full paper and an extract from Nature where Professor C V Boys explains how the multiplier works. Plus there’s another very interesting paper by Brian Randell I learned about later which describes a similar investigation done at Swansea From Analytical Engine to Electronic Digital Computer: The Contributions of Ludgate, Torres, and Bush .
At first sight the prospects for any reasonable reconstruction seem remote. And certainly for the more advanced features I think it is unlikely one can make a sound argument for any particular choice of mechanism. However for the basic mechanism he provides overall dimensions, timings and a cursory description which do give a basis for some well founded conjecture. It was designed to be fairly small and portable so there couldn’t be the incredible mass of innovations and optimisations as in the Zuse 1 which weighed about 500kg (see Konrad Zuse and His Computers).
I shall use inches everywhere as the unit of measurement. As R.A.Sutton says in ‘A Victorian World of Science’ about the problem of translating ’old-fashioned’ units - “The problem was finally solved by ignoring it”.
In my machine each Variable is stored in a separate shuttle, the individual figures of the Variable being represented by the relative positions of protruding metal rods or ‘type’, which each shuttle carries. There is one of these rods for every figure of the Variable, and one to indicate the sign of the Variable. Each rod protrudes a distance of from 1 to 10 units, according to the figure or sign which it is at the time representing. The shuttles are stored in two co-axial cylindrical shuttle-boxes, which are divided for the purpose into compartments parallel to their axis. The present design of the machine provides for the storage of 192 Variables of twenty figures each; but both the number of Variables and the number of figures in each Variable may, if desired, be greatly increased.
Like Babbage he referred to the values held as ‘Variables’ with a capital V to distinguish them from mathematical variables which have unrestricted range.
The obvious arrangement is 64 shuttles for the inner shuttle-box and 128 for the outer with a binary selection.
Each shuttle box would need a simple mechanism to ensure the rods were held firmly in place unless being explicitly set. Nowadays we would simply have a way of just pressing the sides of the boxes to release the rods, I guess they could easily make the boxes springy enough for this.
The machine, as at present designed, would be about 26 inches long, 24 inches broad, and 20 inches high; and it would therefore be of a portable size.
Assuming that the shuttle box takes up most of the height say 18" then a shuttle would be at most 3" wide. This means each rod must be at most about 3/21" wide. I doubt they rubbed against each other so I would guess they were either 1/8" or 1/10" wide. They would be unlikely to be much smaller than this as they would need grooves cut across them to ensure a definite digit selection at all times.
The same dimensions lead to there being 64 shuttle boxes arranged round 3x2xpi inches which gives about 18/64 or approx 1/4" for the height of the slot in which the shuttles go. Saying the metal for the shuttles and the shuttle boxes is 1/32" thick each shuttle probably took about 2x1/32" for the shuttle + 1/10" for the rods + 1/32" for the box or about 2/10" leaving about 1/4"-2/10" = 1/20" space round the shuttle. Using 1/8" wide rods would leave only 1/32" space round the shuttles but possibly the metal of the shuttles could be thinner.
The shuttle-boxes have to be at one side rather than in the middle of everything:
It may be observed, too, that the shuttles are quite independent of the machine, so that new shuttles, representing new Variables, can be introduced at any time.
The major problem with turning the shuttles round to a particular position quickly and accurately is the play in any gearing and the torque of the shuttle boxes. He says that selecting an operand from a shuttle and adding it to the mill would take 3 seconds so the turning and stopping probably has to occupy 2 seconds or less. It is possible to do this fairly directly but I think splitting the selection into two logical parts yields a more robust solution. The first selection is of 3 or 4 bits and the second is relative to the first - both selections can be done at the same time.
Converting Jacquard binary to shuttle-box position
(Only 4 bits of selection are shown).
Above is a simple mechanism I've devised to show how a shuttle box can be quickly and accurately positioned. The small round dots where the rods join are all constrained to move down grooves and the rods across have slots in. The conversion can also be done using differential gears but that’s an unnecessary complication. I’ve put in a refinement to make it more robust by taking the first couple of bits move a roller on a spring backwards on the outside of the shuttle box. When the box should be in about the right position the roller is released to fit into a dip in the outside of the shuttle box thus getting the last part of the turn more accurately.
He also quite clearly had a way of calculating a shuttle box to use at run time but I've no idea how he would have done it:
As the shuttles of the inner and outer co-axial shuttle-boxes are numbered consecutively, we may suppose the given values of a and c to be inscribed in the first and second shuttles respectively of the inner box, and of b and d in the first and second shuttles respectively of the outer box; but it is important to remember that it is a function of the formula-paper to select the shuttles to receive the Variables, as well as the shuttles to be operated on, so that (except under certain special circumstances, which arise only in more complicated formulae) any given formula-paper always selects the same shuttles in the same sequence and manner,
The options as far as I can se are:
A too simple facility like a mechanism just to move to the next shuttle would I think have caused all sorts of trouble with using the shuttle-box for intermediate calculations. However he may have opted for a combination of the above options or something more complicated.
If the shuttle is selected using decimal rather than binary it would probably be easier to have a decimal to position mechanism rather than converting the decimal to binary first. One of Zuse’s major innovations which would have simplified all this would of course have been the use of binary in the main mill.
The fundamental action of the machine may be said to be the multiplying together of the numbers contained in any two shuttles, and the inscribing of the product in one or two shuttles.
The index is the pièce de résistance of the paper and it would be nice to have a good working design based on the description.
I had originally thought the shuttles would hold a straightforward representation of the digits of the Variables. However I have found if instead they hold the ordinal it cuts out a movement in the multiplier.
Column 1 of Table 1 contains zero and the nine digits, and column 2 of the same Table the corresponding simple index numbers. Column 1 of Table 2 sets forth all partial products (a term applied to the product of any two units), while column 2 contains the corresponding compound index numbers. The relation between the index numbers is such that the sum of the simple index numbers of any two units is equal to the compound index number of their product. Table 3 is really a re-arrangement of Table 2, the numbers 0 to 66 (representing 67 divisions on the index) being placed in column 1, and in column 2, opposite to each number in column 1 which is a compound index number, is placed the corresponding simple product.
ORDINAL 0 50 9 1 0 0 2 1 1 3 7 4 4 2 2 5 23 7 6 8 5 7 33 8 8 3 3 9 14 6
The ordinals in Table 1 are not mathematically important, but refer to special mechanism which cannot be described in this paper, and are included in the tables merely to render them complete.
That the shuttles hold the ordinals rather than the units requires some justification.
Slide hitting a type bar in a shuttle
When two Variables are to be multiplied together, the corresponding shuttles are brought to a certain system of slides called the index, by means of which the machine computes the product. It is impossible precisely to describe the mechanism of the index without drawings; but it may be compared to a slide-rule on which the ‘usual markings are replaced by moveable blades. The index is arranged so as to give several readings simultaneously. The numerical values of the readings are indicated by periodic displacements of the blades mentioned, the duration of which displacements are recorded in units measured by the driving shaft on a train of wheels called the mill, which performs the carrying of tens, and indicates the final product. The product can be transferred from thence to any shuttle, or to two shuttles simultaneously, provided that they do not belong to the same shuttle-box.
Assuming 1/10" movement of the slide per unit the slides would be 5" long at least and a pair hitting each other take up 20" since they can each also move 5". If they were side by side they would still take up at least 15". The height would be at least 4" and the width 3" plus another 3" around the right hand shuttle which is shifted along. Plus of course all the space needed for the cams and springs.
Index multiplying 4x6
The picture above omits all the little bars above the right hand slide except those corresponding to compound index number 10 which gives 24 as unit 2 and tens 4. The height of the bars is sensed by two pins each attached by a long bar to an axle at the left hand slide.
To get the next partial product cams would lift the bars and move the right hand slide inwards. The right hand shuttle would then be moved to multiply by ten (i.e. perpendicular to the picture). Springs would then pull the slide out so it hit the type. The bars on top would then be released and pulled by springs to feel the bars for the new compound index numbers.
Ludgate explains the whole business as follows:
Now, to take a very simple example, suppose the machine is supplied with a formula-paper designed to cause it to evaluate x for given values of a, b, c, and d, in the equation ab + cd = x and suppose we wish to find the value of x in the particular case where a = 9247, b = 8132, c = 21893, and d = 823.
The four given numbers are first transferred to the machine by the key-board hereafter mentioned; and the formula-paper causes them to be inscribed in four shuttles. As the shuttles of the inner and outer co-axial shuttle-boxes are numbered consecutively, we may suppose the given values of a and c to be inscribed in the first and second shuttles respectively of the inner box, and of b and d in the first and second shuttles respectively of the outer box; but it is important to remember that it is a function of the formula-paper to select the shuttles to receive the Variables, as well as the shuttles to be operated on, so that (except under certain special circumstances, which arise only in more complicated formulae) any given formula-paper always selects the same shuttles in the same sequence and manner, whatever be the values of the Variables. The magnitude of a Variable only effects the type carried by its shuttle, and in no way influences the movements of the shuttle as a whole.
The machine, guided by the formula-paper, now causes the shuttle-boxes to rotate until the first shuttles of both inner and outer boxes come opposite to a shuttle-race. The two shuttles are then drawn along the race to a position near the index; and certain slides are released, which move forward until stopped by striking the type carried by the outer shuttle. The slides in question will then have moved distances corresponding to the simple index numbers of the corresponding digits of the Variables b. In the particular case under consideration, the first four slides will therefore move 3, 0, 7, and 1 units respectively, the remainder of the slides indicating zero by moving 50 units (see Table 1). Another slide moves in the opposite direction until stopped by the first type of the inner shuttle, making a movement proportional to the simple index number of the first digit of the multiplier a—in this case 14. As the index is attached to the last-mentioned slide, and partakes of its motion, the relative displacements of the index and each of the four slides are respectively 3 + 14, 0 + 14, 7 + 14, and 1 + 14 units (that is, 17, 14, 21, and 15 units), so that pointers attached to the four slides, which normally point to zero on the index, will now point respectively to the 17th, 14th, 21st and 15th divisions of the index. Consulting Table 3, we find that these divisions correspond to the partial products 72, 9, 27, and 18. In the index the partial products are expressed mechanically by movable blades placed at the intervals shown in column 2 of the third table. Now, the duration of the first movement of any blade is as the unit figure of the partial product which it represents, so that the movements of the blades concerned in the present case will be as the numbers 2, 9, 7, and 8, which movements are conveyed by the pointers to the mill, causing it to register the number 2978. A carriage near the index now moves one step to effect multiplication by 10, and then the blades partake of a second movement, this time transferring the tens’ figures of the partial products (i.e. 7, 0, 2, and 1) to the mill, which completes the addition of the units’ and tens’ figures thus:
2 9 7 8 7 0 2 1
7 3 1 8 8
the result being the product of the multiplicand b by the first digit of the multiplier a. After this the index makes a rapid reciprocating movement, bringing its slide into contact with the second type of the inner shuttle (which represents the figure 2 in the quantity a), and the process just described is repeated for this and the subsequent figures of the multiplier a until the whole product ab is found. The shuttles are afterwards replaced in the shuttle-boxes, the latter being then rotated until the second shuttles of both boxes are opposite to the shuttle-race. These shuttles are brought to the index, as in the former case, and the product of their Variables (21893 x 823) is obtained, which, being added to the previous product (that product having been purposely retained in the mill), gives the required value of x. It may be mentioned that the position of the decimal point in a product is determined by special mechanism which is independent of both mill and index. Most of the movements mentioned above, as well as many others, are derived from a set of cams placed on a common shaft parallel to the driving-shaft; and all movements so derived are under the control of the formula-paper.
The various positions on the index slides are give by table 3 of Ludgate’s paper.
0 1 34 14 1 2 35 28 2 4 36 56 3 8 37 45 4 16 38
5 32 39
6 64 40 21 7 3 41 42 8 6 42
9 12 43
10 24 44
11 48 45
46 25 13
47 63 14 9 48
15 18 49
16 36 50 0 17 72 51 0 18
52 0 19
53 0 20
21 27 55
22 54 56 35 23 5 57 0 24 10 58 0 25 20 59
26 40 60
28 81 62
30 15 64 0 31 30 65
66 49 33 7
The sum of two products is obtained by retaining the first product in the mill until the second product is found—the mill will then indicate their sum. By reversing the direction of rotation of the mill before the second product is obtained, the difference of the products results. Consequently, by making the multiplier unity in each case, simple addition and subtraction may be performed.
In designing a calculating machine it is a matter of peculiar difficulty and of great importance to provide for the expeditious carrying of tens. In most machines the carryings are performed in rapid succession; but Babbage invented an apparatus (of which I have been unable to ascertain the details) by means of which the machine could ‘foresee’ the carryings and act on the foresight. After several years’ work on the problem, I have devised a method in which the carrying is practically in complete mechanical independence of the adding process, so that the two movements proceed simultaneously. By my method the sum of m numbers of n figures would take 9m + n units of time. In finding the product of two numbers of twenty figures each, forty additions are required (the units’ and tens’ figures of the partial products being added separately). Substituting the values 40 and 20 for m and n, we get 9 x 40 + 20 = 380, or 9½ time-units for each addition—the time-unit being the period required to move a figure-wheel through 1/10 revolution. With Variables of 20 figures each the quantity n has a constant value of 20, which is the number of units of time required by the machine to execute any carrying which has not been performed at the conclusion of an indefinite number of additions. Now, if the carryings were performed in succession, the time required could not be less than 9 + n, or 29 units for each addition, and is, in practice, considerably greater.*
*For further notes on the problem of the carrying of tens, see C. Babbage: ‘Passages from the Life of a Philosopher’, p. 114, etc.
The time to sum m numbers of n digits is 9m+n units. I’d guess there might be a small constant as well. This indicates a the use of a ripple carry. He did not have an ‘anticipating carriage’ doing all the carries at once by using the 9’s to set predicted carry. I seems he was worried about the time per add in a multiply rather than for a single add - and he was able to completely eliminate the carry time per add - he just had a ripple carry time at the end.
The only way I can see of doing this is to use differentials to add the carries and have a screw mechanism propagating the ripple carry. From the pictures I’ve seen of Babbage’s Difference Engine No. 2 as reconstructed by the Science Museum it looks like it does someting similar. I guess his ‘anticipating carriage’ is used in the mill for the Analytical Engine. I must admit to being rather surprised at how complex the carrying mechanisms in the Difference Engine look in the drawings and can’t quite see why it was all needed if it is just doing ripple carries.
The timing indicates that the next partial product was being set up whilst the last was still being added into the mill. Presumably the tens had an intermediate register which was set up whilst the units were being added in, then the intermediate register was added in whilst the next partial product was set up.
The Analytical Machine is under the control of two keyboards, and in this respect differs from Babbage’s Engine. The upper key-board has ten keys (numbered 0 to 9), and is a means by which numbers are communicated to the machine. It can, therefore, undertake the work of the number-paper previously mentioned. The lower key-board can be used to control the working of the machine, in which case it performs the work of a formula-paper.
The paper specifies only one set of numeric keys 0-9 instead of one per digit. I’d probably have gone for a set of slides but that’s just taste. I would guess the partial products mechanism was used to place the digits one at a time into the mill.
The selection of the shuttles probably had keys marked with binary numbers as he had the idea of them being in sequence - and this would give an easy way of converting from decimal.
The action of the keyboards would cause holes to be put in the formula paper. As well as the two keyboards there would also be a printer:
The machine prints all results, and, if required, the data, and any noteworthy values which may transpire during the calculation. It may be mentioned, too, that the machine may be caused to calculate and print, quite automatically, a table of values—such, for instance, as a table of logs, sines, squares, etc. It has also the power of recording its results by a system of perforations on a sheet of paper, so that when such a number-paper (as it may be called) is replaced in the machine, the latter can ‘read’ the numbers indicated thereon, and inscribe them in the shuttles reserved for the purpose.
I think the number paper and formula paper were simply two names for the same thing but used differently, as he states he differs from Babbage in not having separate inputs for the formula and the numbers. It is a bit confusing having the two terms though.
Babbage’s Jacquard-system and mine differ considerably; for, while Babbage designed two sets of cards—one set to govern the operations, and the other set to select the numbers to be operated on—I use one sheet or roll of perforated paper (which, in principle, exactly corresponds to a set of Jacquard- cards) to perform both these functions in the order and manner necessary to solve the formula to which the particular paper is assigned. To such a paper I apply the term formula-paper. Each row of perforations across the formula-paper directs the machine in some definite step in the process of calculation—such as, for instance, a complete multiplication, including the selection of the numbers to be multiplied together. Of course a single formula-paper can be used for an indefinite number of calculations, provided that they are all of one type or kind (i.e. algebraically identical).
The paper very definitely talks about using paper rather than cards as in a Jacquard Loom. Therefore the machine would have had to have a metal platen with holes to support the paper. The platen could also be used to lift up the rods that passed through as in a Jacquard loom, this would avoid tearing the edges of the holes in the paper and allows force to be exerted on whatever the holes control.
Each row does one step, so there would have to be:
He clearly intended to have a way of dealing with conditions but doesn’t say much about it. I would guess he would have it skip to a skip marker like in the old printers rather than try to skip a certain number of instructions:
It can also ‘feel’ for particular events in the progress of its work—such, for instance, as a change of sign in the value of a function, or its approach to zero or infinity; and it can make any pre-arranged change in its procedure, when any such event occurs. Babbage dwells on these and similar points, and explains their bearing on the automatic solution (by approximation) of an equation of the nth degree ;* but I have not been able to ascertain whether his way of attaining these results has or has not any resemblance to my method of so doing.
*C. Babbage: ‘Passages from the Life of a Philosopher’, p. 131.
This add up to something like 40 holes per line I think which at 1/10" per hole and 1/10" between them makes the paper at least 8" wide, a bit too wide for me to classify as a ‘tape’ but he may merely mean it is a continuous roll.
= Ap(1 - x)(1 + x2)(1 + x4)(l + x8),etc.
The series (1) converges rapidly, and by finding the sum as far as x10 we obtain the correct result to at least twenty figures; whilst the expression (2) gives the result correctly to at least thirty figures. The position of the decimal point in the quotient is determined independently of these formulae. As the quantity A must be the reciprocal of one of the numbers 100 to 999, it has 900 possible values. The machine must, therefore, have the power of selecting the proper value for the quantity A, and of applying that value in accordance with the formula. For this purpose the 900 values of A are stored in a cylinder—the individual figures being indicated by holes of from one to nine units deep in its periphery. When division is to be performed, this cylinder is rotated, by a simple device, until the number A (represented on the cylinder by a row of holes), which is the reciprocal of the first three figures of the divisor, comes opposite to a set of rods.
I find the division table the least convincing part of the whole design. My major concerns are how it could be manufactured and kept clean and usable, and how one could quickly select a particular line.
The division table would consist of 900 numbers of 20 digits arranged as pits on a wheel. Supposing an 20" diameter wheel is used this gives about 60" round the circumference or 900/60 = 15 numbers per inch. Obviously the pits could not accept normal width rods. The absolute minimum size I could see being used for feeler pins would be about 1/32". My guess therefore would be that the holes would be 1/20" wide to avoid the pins sticking and also avoid the pits running into each other which could make them hard to drill.
It is possible to put more than one selection per row so one has a long cylinder instead of a wide wheel but I’m not certain that gains very much.
Manufacture of the wheel would involve drilling 20x900 = 18000 holes as one couldn’t form it from a mould. Well I suppose one could use a mould if one used rubber like in a modern day toy music box. Without using a mould there would have to be some sort automatic copy from a master wheel. I wouldn’t fancy making the master - it would take 18000/60/60 = 5 hours at one hole per second and one certainly wouldn’t be working that fast.
Operation of the wheel would involve selecting one of the 900 positions and pushing in feeler pins to get the value out. The selection does not have to be as fast as for the shuttle boxes but the torque would be much higher because of the solid rim and the accuracy required would be much greater.
I really can’t see why he couldn’t be happy with 90 numbers instead. The division would only take two extra multiplies and the cylinder would become fairly manageable.
So after that rather negative account of the division table you can guess my reaction to where he goes on with:
It will be observed that, in order to carry out the process of division, the machine is provided with a small table of numbers (the numbers A) which it is able to consult and apply in the proper way. I have extended this system to the logarithmic series, in order to give to that series a considerable convergency; and I have also introduced a logarithmic cylinder which has the power of working out the logarithmic formula, just as the dividing cylinder directs the dividing process. This system of auxiliary cylinders and tables for special formulae may be indefinitely extended.
While the machine is in use its central shaft must be maintained at an approximately uniform rate of rotation—a small motor might be used for this purpose. It is calculated that a velocity of three revolutions per second would be safe; and such a velocity would ensure the multiplication of any two Variables of twenty figures each in about 10 seconds, and their addition or subtraction in about three seconds.†
†The times given include that required for the selection of the Variables to be operated on.
The motor would have been separate and not included in the box. This sort of arrangement was quite common at the time - the motor could be put on the floor or under the table and connected by a driving band.
Having a near constant speed rather than being worked by hand solves a number of problems with the operation of fast return mechanisms and springs.