fnstltute for Advanced Study
Math. - Nat. Sci. Library
^ Princeton, N. J, Q8540
EC?
i^e;^c»vT o%^ iU«. \->^r^ tlie \._. ^i- . cd ...
-T< y
PLANNINQ AND CODING OF PROBLEMS
FOR AN
ELECTRONIC COMPUTING INSTRUMENT
BY
Herma/1 H> Goldstlne John von Neumann
Report on the Kbthematical and Logical aspects of an
Electronic Cornputing Instrument
Part II, Volume I- 3
IAS ECP list of reports,
19^6-57. nos. k, 8, 11.
Institute for Advanced Study
Princeton, New Jersey
IM7
TABLE OF CONTENTS
PREFACE
7.0 GENERAL PRINCIPLES OF CODING AND FLOW-DIAGRAMMING
Page
7.1 The nature of ccxJing: Dynamic and static constituents. I
7.2 Table of orders. Changes in the orders. 3
7.3 The flow diagram. Loops. Alternative boxes. 4
7.4 Operation boxes. Remote connections. 8
7.5 Storage. Free and bound variables. ID
7.6 Transition points, constancy intervals. Substitution boxes,
assertion boxes. II
7.7 The contents of an operation box. Tabulated and distributed
storage. 13
7.8 The effects of the various boxes. The precise rules governing
their use. 16
7.9 Details and siccessive stages of coding. 19
8.0 CODING OF TYPICAL ELEMENTARY PROBLEMS
8.1 General remarks. 2^
8.2 Treatment of position marks. 2t
8.3 Problem I: ^ = au£+butc ^ ^jth g, v at given places. 25
du+e
84' Problem 2: Same as Problem I, but only the numbers of the
places of u, V given. 27
8.5 Prel imi nary method to estimate durations. Appl ication to
Problems I, 2 30
8.6 Questions of size. Methods of adjusting sizes. Simplest
application to Problems 1,2. 31
8.7 Problem 3: Same as Problem 2, but with "j, ^j, i* I,..., I. 33
8.8 Problem 4: Automatic sensing of the size of a ratio - . 36
8.9 Method to correct errors or to effect changes in coding. HI'
8.10 Problem 5: Formingfuby iterating z— * i (z + ii ). 13
9.0 COOING OF PROBLEMS DEALING WITH THE DIGITAL CHARACTER OF THE
NUMBERS PROCESSED BY THE MACHINE
9. 1 General remarks . H7
9.2 The conversions. The higher than. normal precision routines. 47
5.3 The need for the conversions. Timing considerations. 48
9.4 Analysis of the binary and the decimal notations and of the
requirements of the conversions. H9
9.5 Precision problems of the conversions. 51
9.6 Problem 6: Binary to decimal conversion. SiZ
9.7 Problem 7: Decimal to binary conversion. 56
9.8 Double precision arithmetics. Problems: Double precision
addition and subtraction. 61
9.9 Problem 9: Double precision mult ipl ication. ©+
9.10 Sunmary concerning double precision arithmetics. 69
/>/
PREFACE
This report was prepared in accordance with the terms of Contract
No. W-36-054-0RD-748 I between the Research and Development Service, U. S. Artry
Ordnance Deparbment and the Institute for Advanced Study. It is essentially the
second paper referred to in the Preface of the earlier report entitled,
"Preliminary Discussion of the Logical Design of an Electronic Computing
Instrument", by A. W. Burks, H. H. Goldstine and John von Neunann, dated 28 June
1946.
During the time which has intervened it has become clear that the
issuance of a greater number of reports wi I I be desirable. In this sense the
report, "Prel iminary Discussion of the Logical Design of an Electronic Computing
Instrunent" should be viewed as Part I of the sequence of our reports on the
Electronic Computer. The present report is Volume I of Part II. A Volume II of
Part II wi I I fol tow within a few months.
Part II is intended to giv« an account of our methods of coding
and of the pnilosophy which governs it. It contains what we believe to be an
adequate number of typical examples, going from the simplest case up to several
of high complexity, and in reasonable didactic completeness. On the other hand.
Part II in its present form is preliminary In certain srgnili 'cant ways. On this
account the fol loving ought to be said.
oil We do not discuss the orders control I ing the inputs and outputs
and the stopping of the machine. (The inputs and outputs are, hovjever, discussed
oi to the extent which is required for the treatment of the binary-decimal and
^ decimal-binary conversions in Chapter VIII.) The reason for this is that in this
direction some engineering alternatives seem worth keeping open, and it does not
affect the major problems of coding relevantly.
The use of the input -output medium as a subsidiary memory is not
disQussed. This will probably be taken up in Part III.
The code is not final in Q'^&r'j respect. Several minor changes are
clearly called for, and even some major qnes are conceivable, depending upon various
^ engineering possibilities that are still open. In all cases where changes are indi-
^ Gated or possible, there are several alternative ones, between which it is not yet
easy to choose with much assurance. We bel ieve that our present code is correct in
^ its basic idea, and at any rate a reasonable basis for the discussion of other
'^ proposiils. That is, the examples which we have coded, may serve as standards in
o comparing this code with variants or with more basically different systems.
^ It should be noted that in comparing codes, four viewpoints must be
kept in mind, all of them of comparable importance: (I J SimpI icity and reliability
^ of the engineering solutions required by the code; (2) Simplicity, compactness and
'^' completeness of the code; (3) Ease and speed of the human procedure of translating
23503
]V
mathematically conceived methods into the code, and also of finding and correcting
errors in coding or of applying to it changes that have been decided upon at a
late stage; (4) Efficiency of the code in operating the machine near its full
intrinsic speed.
We propose to carry our comparisons of various variants and codes
under these aspects.
The authors wish to express their thanks to Professor Arthur W.
Burks, of the University of Michigan, for many valuable discussions, as wel I as
for his help in coding certain of the problems in the text.
H. H. Goldstine
J . von Neumann
Institute for Advanced Study
1 Apri I 1947
/
PLANNING AND COOING OF PROBLEMS FOR AN ELECTRONIC COMPUTING INSTRUMENT
7.0 GENERAL PRINCIPLES CF CODING AND FLOWKDIAGRANt^l NG.
7.1 In the first part of th'S report we discussed in broad outline
our basic point of view in regard to the electronic computing machine we new envision.
There is included in that discussion a tabulation of the orders the machine will be
able to obey. In this, the second part of the report, we intend to show hew the orders
may be used in the actual progrannning of numerical problenB.
Before proceeding to the actual progranming of such problems, v»e consider
it aesirable to discuss the nature of coding per se and in doing this to lay down a
modus operandi for handling specific problems. We attempt therefore in this chapter
to analyze the coding of a problem in a detailed fashion, to show where the difficulties
I ie, and hew they are best resolved.
The actual code for a problem is that sequence of coded symbols (express-
ing a sequence of words, or rather of half-words and words) thart has to be placed 'into
the selectron memory in order to cause the machine to perform the desired and planned
sequence of operations, which amount to solving the problem in question. Or to be^ more
precise: This sequence of codes will impose the desired sequence of acti-ons on C by
the following mechanism: C s'cans the sequence of codes, and effects the instructions,
which they contain, one by one. If this were just a linear scanning of the coded
sequence, the latter remaining throughout the procedure unchanged in form, then matters
would be quite simple. Coding a problem for the machine would merely be what its name
indicates: Translating a meaningful text (the instructions that govern solving the
problem under consideration) from one language (the language of mattiematics, in which
the planner will have conceived the problem, or rather the numerical procedure by which
he has decided to solve the problem) into another language (that one cf our code).
This, however, is not the case. We are convinced, both on general grounds
and from our actual experience with the coding of specific numerical problems, that the
main difficulty lies just at this point. Let us therefore describe the process that
takes place more fully.
The control scans the coded instructions in the selectron memory as a
rule linearly, i.e. beginning, say, with word No. 0, and proceeding from word No. y
to word No. y + I (and within each word from its first half to its second half), but
there are exceptions: The transfer orders xC, xC, xCC, xCC (Cf. Table I at the end
of the first part of the report, or Table I I below) cause C to jump from word y to the
arbitrarily prescribed word x (unconditionally or subject to the fulfillment of certain
conditions). Atso, these transfer orders are among the most critical constituents of
a coded sequence. Furthermore, the substitution orders xSp, xSp' (and also xS, cf. as
above) permit C to modify any part of the coded sequence as it goes along. Again,
these substitution orders are usually of great importarce.
To sum up: C will, in general, not scan the coded sequence of instruc-
tions linearly. It may jump occasionally forward or backwartj, omitting (for the time
being, but probably not permanently) some parts of the sequence, and going repeatedly
through others. It may modify some parts of the sequence while obeying the instructions
in another part of the sequence. Thus when it scans a part of the sequence several
times, it may actually find a different set of instructions there at each passage.
Ail these displacements and modifications may be conditional upon the nature of
intermediate results obtained by the machine itself in the course of this procedure.
Hence it wi I I not be possible in general to foresee in advance and completely the
actual course of C, its character and the sequence of its omissions on one hand and
of its multiple passages over the same place on the other, as well as the actual
instructions it finds along this course, and their changes through various successive
occasions at the same place, if that place is multiply traversed by the course of C.
These circumstances develop in their actually assumed forrns only during the process
(the calculation) itself, i.e. while C actually runs through its gradually unfolding
course.
Thus the relation of the coded instruction sequence to the mathematically
conceived procedure of (numerical) solution is not a statical one, that of a trans-
lation, but highly dynamical: A coded order stands not simply for its present contents
at its present location, but more fully for any succession of passages of C through it,
in connection with any succession of modified contents to be found by C there, all of
this being determined by all other orders of the sequence (in conjunction with the one
now under consideration) This entire, potentially \/ery involved, interp^ayof inter-
actions evolves successively while C runs through the operations controlled and
directed by these cont inucnjsly changing instructions.
These comp I icat ions are, furthermore, not hypothetical or except ional .
It does not require a deep analysis of any inductive or iterertive mathematical process
to see that they are indeed the norm. Also, the flexibility and efficiency of our
code is essentially due to them, i.e. to the extensive combinatorial possibilities
which they indicate. Finally, those mathematical problems, which by the i r complex it y
justify the use of the machine that we envision, require an application of these control
procedures at a rather high level of comp I icat ion and of multiplicity of the course of
C and of the successive changes in the orders.
All these assertions will be amply justified and elaborated in detail
by the specific coded examples which constitute the bulk of this report, and by the
methods that we are going to evolve to code the-i.
Our problem is then to find simple, step-by-step methods, by which
these difficulties can be overcome. Since coding is not a static process of trans-
lation, but rather the technique of providing a dynamic background to control the
automatic evolution of a meaning, it has to be viewed as a logical problem and one
that represents a new branch of formal logics. We propose to show in the course of
this report how this task is mastered.
The balance of this chapter gives a rigorous and complete description
of our method of coding, and of the auxiliary concepts which we found convenient to
introduce in order to expound this method. (The subsequent chapters of the report
deal with specific examples, and with the methods of combining already existing
coded sequences.) Since this is the first report on this subject, we felt justified
to stress rigor a/xJ completeness rather than didactic simplicity. A later presenta-
tion will be written from the didactic point of view, which, we believe, will show
that our methods are fairly easy to learn. ■
7.2 Table II on page 5 is essentially a repetition of Table I at
the end of Part I of this report, i.e. it is a table of orders with their abbreviations
and explanations. We found it convenient to make certain minor changes. They are as
fol lews:
First : I I has been changed, so as to express the round off rule dis-
cussed in 5.11 in Part I of this report. In accord with the discussion carried out
loc. cit., we use the first round off rule described there. As far as the left-hand
39 digits are concerned, this consists of adding one to digit 40, and effecting the
resulting carries, thereby possibly modifying the left-hand 39 digits. Since we keep
track of the right-hand 39 digits, too. It Is desirable to compensate for this within
the extreme left (non sign) digit of the right-hand 39 digits. This amounts to adding
i in the register. The number there Is ^ 0 (slan digit 0), hence a carry results If
and only if that number is S J, I.e. If Its extreme left (non sign) digit Is I. In
this case the carry adds 2~°^ in the accumulator and subtracts I In the register.
Hence Instead of adding 5 In the register we actually subtract i there. However,
the aggregate result (on the 78 digit number) is in anyevent the addition of i in
the register (i.e. of one to digit 40), hence It must be compensated by subtracting
i in the register. Consequently we do nothing or subtract I in the register, accord-
ing to whether Its extreme left (non sign) digit Is 0 or I. And, as we saw above, we
correspondingly do nothing or add 2~ in the accumulator Note, that the operation
+2"*'^, which may cause carries, takes place in the accumulator, which can Indeed effect
carries; while the operation -I, which can cause no carries, takes place In the register,
which cannot effect carries. Indeed: Subtracting I Injthe register, where the sign
digit Is 0 (cf. above) merely amounts to reiHacing the sign digit by 1. The new
formulation of II expresses exactly these rules.
Sfcond: |8, 19 have been changed somev<hat for reasons set forth In
8.2 belcw'. We note that 18, 19 assume, both In .their old form (Table I) and their
new form (Table II ), that in each order the memory position number x occupies the 12
left digits (cf. 6.6.5 in Part 1 of this report).
••
Thtrd: 20, 21 have also been changed. The new form of 20 is a right
shift, which is so arranged that it halves the number in the accumulator, including
an arithmetically correct treatment of the sign digit. The new form of 21 is a left
shift, whith is so arranged that It doutjies the number In the accumulator (provided
that that number lies between -i and i). Including an arithmetically correct treat-
ment of the sign digit. At the same time, however, 21 (in its new form) is so
arranged that the extreme left digit (after the sign digit) in the accumulator is
not lost, but transferred into the register. It is inserted there at the extreme
right, and the original contents of the register are shifted left correspondingly.
The imnediate uses of 20, 21 are arithmetical, but the last mentioned features of
21 are required for other, rather combinatorial uses of 20, 21. For these uses there
will be soine typical examples in 9.5 and 9.6.
It should be added, that various elaborations and refinements of a),
21 might be considered. Shifts by a given number of places, shifts until certim
sizes have been reached, etc. We do not consider the time mature as yet as to make
any definite choices in this respect, although some variants would have certain
advantages in various situations. We wil 1 ,. for the time being, use the simplest
forms of 20, 21 as given in Table II.
7.3 We now proceed to analyze. the procedungs by which one can build up
the appropriate coded sequence for a given problem — or rather for a given numerical
method to solve that problem. As was pointed out in 7- I, this is not a mere question
of translation (of a mathematical text into a code), but rather a question of providing
a control schems for a highly dynamical process, all parts of which may undergo repeated
and relevant changes in the course of this process.
Let us therefore approach the problem in this sense.
It should be clear from the preliminary analysis of 7.1, that in planning
a coded sequence the thing that one should keep primarily in mind is not the original
(initial) appearance of that sequence, but rather its functioning and continued changing
while the process that it controls goes through its course. It is therefore advisable
to begin the planning at this end, i.e. to plan first the course of the process and the
relationship of its successive stages to their changing codes, and to extract from this
the original coded sequence as a secondary operation. Furthermore, it seems equally
clear, that the basic feature of the functioning of the code in conjunction with the
evolution of the process that it controfs, is to be seen in the course which the control
C takes through the ceded sequence, parallelling the evolution of that process. We
therefore' propose to begin the planning of a coded sequence by laying out a schematic
of the course of C through that sequence, i.e. through the required reqion of thef
selectron memory. This schematic is the flow diagram of C Apart from the above a
priori reasons, the decision to make the flew diagram of C the first step in code-
planning appears to be extensively justified by our ovn experience with the coding of
actual problems. The exempi if ication of this kind of experience on a number of selected
typical examples fonrB the bulk of this report.
In drawing the flew diagram of C the following points are relevant:
First : The reason why C may have to move several times through the same
region in the selectron memory is that the operations that have to be performed may be
repetitive. Definitions by induction (over art integer variable ); iterative processes
(tike successive approximations); calculations of sums or of products of many addends
or factors all formed according to the same law (but depending on a variable sumnation
or multiplication index); stepwise integrations in a simple quadrature or a more involved
differential equation or system of differential equations, which approximate the- result
and which are iterative in the above sense; etc. — these are typical examples of the
situation that we have in mind. To simplify the nomenclature, we wi 1 1 call any simple
iterative process of this type an induction or a simple induction. A multiplicity of
such iterative processes, superposed upon each other or crossing each other will be
called a multiple induction.
When a simple induction takes place, C travels during each step of the
induction over a certain path, at the end of which it returns to its beginning. Hence
this path may be visualized as a loop. We wi 1 1 cal I it an induction loop or a simple
induction loop. A multiple induction gives .rise to a mult ipjicity' of such loops; they
form together a pattern which will be called a multiple induction loop.
Ws propose to indicate these portions of the flow diagram of C by a
symbolism of lines oriented by arrows. Thus a linear sequence of operations, —
with no inductive elements in it, will be denoted by syntiols like these in Figures
7.1 a-c, while a simple induction loop is shown in d, eod., and multiple induction
loops are shown in e-f, eod.
il
XI (0
XI —
< >
<D
C_)
C-J O O O
XXXXXXXXX X
11
T
<t«5<<:<i:<:<:^cr<tx
•>-tcNirf\'a-intDr--oocr>0'^
•I-
X
t
CO
C\J
O o to C/O 00
X X X X X X
ex Q.
CE
—•00 —■'^ ^ '^
TttTtT
2<.
CO
T
a3<3as<
O-
<
Ct —1
cA •^ uo CD r~^ 00
■'-\ T-* r-\ r-l »-(^-l
en
^?^
0)
CO
0)
■(-'
10
«
FIGURE 7. I
b.
C.
f.
Second: It te clear that this notation is incomplete and unsatisfactory.
Figures 7.1 d-f fail to irxJiicate hew C gets into these loops, how many times it circles
each loop, and hew it leaves it. e-f, eod. also leave it open what the hierarchy of the
loops is, in what order they are taken up by C, etc.
Actually the description of an induction is only complete if a criterium
is specified which indicates whether the iterative step should be t-epeated, i.e. the
loop circled once more, or whether the iterations are completed and a new path is to be
entered. Accordingly a simple induction loop, like the one shown in Figure 7.1 d, needs
an indication of the path on which C enters it at the beginning of the induction, the
path on which C leaves it at the end of the induction, and the area in which the criterium
referred to above is applied, i.e. where it is determined whether C is to circle the loop
again, or whether it is to proceed on the exit path. We wi II denote this area by a box
with one input arrow and two output arrows, and we call this an altemattve box. Thus
Figure 7. | d, becomes the more coctiplete Figure 7.2 b. The alternative box may also be
used to bifurcate a linear, non-looped piece of C's course. Indeed, alternative pro-
cedures may be required in non-inductive pr<jcedunes, too. This is shewn in Figure 7.2 a.
Finally multiple induction loops, completed in this sense, are shwwi on c-d, eod. It
will be noted that in these inductions in c the small loop represents an induction that
is subondinate to that one on the big loop, i.e. part of its inductive step. Similarly
in d the two small loops that are attached to the big loop are in the same subondinate
relation to it, while the loop at the extretne right is again subordinate to the loop
to which it is attached.
FIGURE 7.2
OUT
OUT
Piird : The alternative boxes which we introduced correspond to the
conditional transfer orders xCc, xCC. I.e., the intention that they express will
be effected in the actual code by such an order. Of the two output branches (cf.
e.g. Figure 7-2 a) one leads to the order following imtediately in the selectron
memory upon the last order on the input branch, while the other leads to the left
or the right hand order in S(x). If at the moment at whifch this decision is made
the number u is in A, then u < o causes the first branch to be taken. We wi I I place
the u which is thus valid into the alternative box, and mark the two branches repre-
senting the two alternatives u ^ o and u < o by + and by -, respectively. In this
way Figures 7.2 a-b become Figures 7.3 a-b. Figure 7.3 b may be made still more
specific: If the induction variable is i, and if the induction is to end when i
reaches the value 1 i if i 's successive values are 0, I, 2 ..., then this means
that I iterations are wanted), and if, as shown in Figure 7.3 b, the - branch is
in the induction loop while the + branch leaves it, then the u of this Figure may
'be chosen as i - I, and the complete scheme is that shown in Figure 7.3 c. (In
many inductions the natural ending is defined by i + 1, having reached a certain
value I. Then the above i - I is to be replaced by i - I + 1. )
8.
FIGURE 7.3
U ^ OUT IN
OUT
Peuttk: Two or more paths of the flow diagram may rnerge at certain points.
This takes place of necessity at the input of the alternative box of an induction loop
(cf. Figures 7.2 b-d and 7.3 b-c), but it can also happen iri a linear, non-looped
piece of C's course, as shown in Figure 7.4. This corresponds to two alternative
procedures leading up to a conron continuation.
7 4 The flow diagram of C, as described F^UBE 7»4
in 7.3 is only a skeleton of the process that is to be
represented. Ws pass therefore to examining xhe addi-
tions which have to be made in order to complete the
schenre.
First: Our flow diagram in its present
form does not indicate what arithmetical operations
and transfers of numbers actaal ly take place along the
various parts of its course. These, however', represent
the properly nBthematical (as distinguished from the
logical ) activities of the machine, and they should be
shown as such. For this reason we wi I I denote each
area in which a coherent group of such operations takes place by a special box which
we cal I an operation box. Since a box of this category is an insertion into the f lav
diagram at a point where no branching or merger takes place, it must have one input
arrow and one output arrow. This distitinguishes it clearly from the alternati^9 boxes
of Fi.gure 7 3- Figures 7-5 a-c show the positions of operation boxes in various
looped and un looped flow diagrams.
->-
FIGLPE 7.5
->-
a.
b.
a
r
->-
c.
Second: ^ileC moves along the flav diagram, the contents of the alter-
native boxes (wfiich we have Indicated) and of the operation boxes (which we have not
indicated yet) will, in general, keep changing — and so wi II various other things that
have to be associated with these in order to complete the picture (and which we have
not yet indicated either). This whole modus procedendi assumes, however, that the flew
diagram itself (i.e. the skeleton of Figure 7.3) remains unchanged. This, however, is
not unqualifiedly true. To be specific: The transfer orders xC, xC (unconditional),
and also xCc, xCc ' (conditional ), can be charged in the. course of the process by substi-
tution orders xSp, xSp'. This changes the connections between various parts of the
flow diagram. When this happens, we wi I I terminate the corresponding part of the flov
diagram with a circle marked with a Greek letter, and originate the alternative con-
tinuations from circles marked with properly indexed specimens of the same Greek letter,
as shown in Figure 7.6 b. Wfe call this arrangement a variable remote connection.
FIGURE 7.6
a.
■^ ( OC^
a,H^
a,)-^
aah-^
The circle * — Q is the entrance to this remote connection, the circles
(~) — > are the exits from it.
NOTE I: The lettering with Greek letters a, P, y» ■•• "^^^ neither be
monotone nor uninterrupted, and decimal fractions following the Greek letters may be
used for further subdivisions or in order to interpolate omissions, etc. All of this
serves, of course, to facilitate modifications and corrections on a diagram which is
in the process of being drawn up. The same principles will be applied subsequently
to the enumerations of other entities: Constancy intervals (cf. the last part of 7.6,
the basic Greek letters being replaced by Arabic numerals ), storage positions (cf. the
begi-ining of 7.7, the basic Greek letters being replaced by English capitals), operation
boxes and alternative boxes (cf. the last part of 7.8, the basic Greek letters being
replaced by Roman numerals).
NOTE 2: In the case of an unconditional transfer order which is never
substituted, the flov diagram can be kept rigid, and no remote connection need be used.
It is nevertheless sometimes convenient to use one even in suCh a case as shown in
Figure 7.6 a. Indeed, this device may be used at any point of the flow diagram, even
at a point where no transfer order is located and C scans I inearly ( i-.e. from one
half-word to the next one). This is so when the flow diagram threatens to assiire an
unwieldy form (e.g. grov off the paper) and it is desired to dissect it or .to rearrange
it. An arrangement of this type will be cal led a fixed remote connection.
10.
rhe circles — ^ — O ^"^ O — ^ ^ire again the entrance and the
exit of this connection. The Greek letter at the exit need, of course, not be indexed
now. It is sometimes convenient to give a remote connection of either type more than
one entrance. These are then equivalent to a pre-entrance confluence. They may be
used when the geometry of the flow diagram makes the explicit drawing of the confluence
inconvenient.
7.5 Wte pointed out at the beginning of the second remark in 7.4, that
our present form of the flow diagram is still incomplete in two major respects: First,
the contents of the operation boxes have not yet been indicated. Second, certain
further features of the process that accompanies the course of C have not yet been
brought out. Let us begin by analyzing the latter point.
No complicated calculation can be carried out without storing considerable
numerical rraterial while the calculation is in progress. This storage problem has been
considered in considerable detail in Part 1 of this report (cf. in particular 1.3, 2,
4 there). The storage may involve data which are needed for the entire duration of the
procedure, and are therefore never changed by that procedure, as well as data which
play a role only during part of the procedure (i.e. during one circling of an induction
loop, or during a part of the course over a linear piece or an induction loop) and may
therefore be changed (i.e. replaced by other data) at the end of their usefulness.
These changes serve, of course, the very important purpose of making it possible to use
the same storage (selectron memory) space successively for changing and different ends
We will talk accordingly of fixed and of variable storage. These concepts are to be
'inderstood as being meaningful only relatively to the procedure which we are coding.
Occasionally it will also be found useful to use them relatively to certain parts of
that procedure.
Before we develop the means to indicate the form and contents of the
(fixed and variable) storage that is required, it is necessary to go into another
matter.
A mathermtical-Iogical procedure of any but the lowest degree of
complexity cannot fail to require variables for its description. It is important
to visualize that these variables are of two kinds, namely: First, a kind of
variable for which the variable that occurs in an induction (or more precisely: with
respect to which the induction takes place) is typical. Such a variable exists only
within the problem. It assumes a sequence of different values in the course of the
procedure that solves this problem, and these values are successively detenrined by
that procedure as 4t devetops. It is impossible to substitute a value for it and
senseless to attribute a value to it "from the outside". Such a variable is called
(with a term borrowed from formal logics) a bound variable. Second, there is another
kind of variable for which the parameters of the problem are typical — indeed it is
essentially the same thing as a parameter. Such a variable has a fixed value thi'oOgtv-
out the procedure that solves the problem, i.e. a fixed value for the entire problem.
If it is treated as a variable in the process of planning the coded sequence, then a
value has to be substituted for it and attributed to it ("from the outside"), in
order to produce a coded sequence that can be actual ly fed into the machine. Such
a variable is cal led (again, borrowing a term from formal logics) a free variable.
In discussing the ways to indicate the form and contents of the
storage that is required, there is no trouble in dealing with free variables:
They are as good as constants, and the fact that they will acquire specific values
only after the ceding process is completed does not influence or complicate that
process. Also,fixed storage offers no problems. The real crux of the matter
II.
is the variable storage and its changes. An item in the variable storage changes when
it is expl ic it ly replaced by a different one. (This is effected by the operation boxes,
cf. 7.4 and the detailed discussion in 7.7, 7-8.1 When the value of a bound variable
changes (this is effected by the substitution boxes, cf. the last part of 7.6), this
should also cause indirectly a change of those variable storage items in whose expression
this variable occurs. However, we prefer to treat these variable value changes merely
a? changes in notation which do not entail any actual change in the relevant variable
storage items. On the contrary, their function is to establish agreement between pre-
ceding and fol lowing expressions (occupying identical storage positions), which differ
as expressions, but whose difference Is removed by the substitution in question. (For
details cf. the third rule relative to storage in 7.8.)
7.6 After these preparations we can proceed to an explicit discussion
of storage and of bound variables.
In order to be able to give complete indications of the state of these
entities, it is necessary to keep track of their changes. We wi I I therefore mark along
the flew diagram the points where changes of the content of any variable storage or of
the value or domain of variability of any. bound variable takes place. These points will
be called the transition points. The transition points subdivide the flew diagram into
connected pieces, along each of which all changing storages have constant contents and
all bound variables have constant values. (The remote connections of the second remark
in 7.4 rate in this respect as if they were unbroken paths. For a variable remote
connection all possible' branches are regarded In this way.) We call these constancy
intervals. Clearly a constancy interval is bounded by the transition points on its
end i ngs .
NOTE: The constant contents and values attached to a constancy interval
may, of course, vary from one passage of C over that interval to another.
Let us new consider the transition points somewhat more closely. We
introduced so far three kinds of interruptions of the flow diagram: Alternative boxes,
operation boxes, remote connections. 0"f these the first and the third effect no changes
of the type under consideration, they influence only the course of C. The second, how-
ever performs arithmetical operations, therefore it rray require storage, and hence
effect changes in the variable storage. In fact, all variable storage originates in
such operations, and all operations of this type terminate in*consigning their results
to storage, which storage, just by virtue of this origin, must be variable. Accordingly
the operation boxes are the transition points inasmuch as the changing of variable
storage is concerned. Thus we are left to take care of those transition points which
change the values or delimit the domains of variability of bound variables. Changing
the value of a bound variable involves arithmetical operations which must be indicated.
An inductive variable i, which serves to enumerate the successive stages of an iteration,
undergoes at each change an increase by one. we denote this substitution by i + 1^ i.
It is, however, neither necessary nor advisable to penr.it no other substitutions.
Indeed, even an induction or iteration begins with a different substitution, namely
that one assigning to i the value 0 [or 1] i.e. 0 -? i [or 1 -^ i] , In many cases,
of which we wi II prestent examples, it is necessary to substitute with still more
freedom, e.g. f ( i, j, k, ... ) — > i, where f is a function of i itself as we I 1 as
of other variables j, k, .... (For details cf. the first part of 7.7.) For this
reason we wi I 1 denote each area in which a toherent Change or group of such changes
takes place, by a special box, which we cal 1 a substitution box. Next we consider
12.
the changes, actually limitations, of the domains of variability of one or more bound
variables, individually or in their interrelationships. It may be true, that whenever
C actually reaches a certain point in the flew diagram, one or more bound variables
will necessarily possess certain specified vaiues, or possess certain properties , or
satisfy certain relations with each other. Furthermore, we may, at such a point, indi-
cate the val idity of these I imitations. For this reason we wi I I denote each area in
which the «al idity of such limitations is being asserted, by a special box, which we
call an assertion box.
The boxes of these two categories (substitutions and assertions) are,
like the operation boxes, insertions into pieces of the flew/ diagram where no branchings
or mergers take place. They have therefore one input arrow and one output arrow. This
necessitates some special marks to distinguish them from operation boxes. In drawing
these boxes in detail, certain distinguishing marks of this type will arTse automatically
(cf. as above), but in order to clarify matters we will also mark every substitution and
assertion by a cross #. In addition, we will, for the time being, also mark substitution
boxes with an s, fol lowed by the bound variable that is being changed and assertion boxes
with an a.
Thus the operation boxes, the substitution boxes and the assertion boxes
produce together the dissection of the flow diagram into its constancy intervals.. We
will number the constancy intervals with Arabic numerals, with the rules for sequencing,
subdividing, modifying and correcting as given in Note I in 7.4.
To conclude, we observe that in the course of circling an induction loop,
at least one variable (the induction variable) must change, and that this variable must
be given its initial value upon entering the loop. Hence the junction before the alter-
native box of an induction loop must be preceded by substitution boxes along bothppaths
that lead to it: Along the loop and along the path that leads to the loop. At the exit
from an induction loop the induction variable usually has a (final) value which is kno*n
in advance, or for which at any rate a mathematical symbol has been introduced. This
amounts to a restriction of the domain of variability of the induction variable, once
the exiit has been crossed — indeed, it is restricted from then on to its final value,
i.e. to only one value, hence this is usually the place for an assertion box.
A scheme exhibiting all the features discussed in this section is shewn
in Figure 7.7.
FIGURE 7.7
13.
7.7 We new complete the description of our rrethod to indicate the
successive stages and the functioning of storage.
The areas in the selectron memory that are useri in the course of the
procedure under cons Ida rat ion will be designated by capital betters, with the rules
for sequencing, subdividing, modifying and correcting as given in Note I in 7.4.
The changes in the contents of this storage are effected by the operation
boxes, as described in 7.6. An operation box should therefore contain the following
indications! First, the expressions which have to be calculated. Second, the storage
positions to which these expressions have to be sent subsequently. The latter are
stated by an affix "to ....". E.g. if the expression Vxy+z (x, y, z are variables
or other expressions) is to be formed and then stored at C.2, then the indication
will be "Vxy+z to, c.2". It may also be desired to introduce a new symbol for this
expression,' i .8. to def tne one, e^g. w = Vxy+z Then the indication will be
"w = VXy+Z to C.2".
It. should be added that an expression that has been calculated in an
operation box may also be sent to a variable remote connection (i.e. to its entrance,
cf. the last part of 7.4). The expression must, of course, be the designation of one
.of the exits of that connection, and the operation consists of equating the designation
of the entrance to it. The latter is the Greek letter (possibly with decimals, cf.
Note I in 7.4), the former is this Greek letter with a definite index. No affix
"to ...." is needed in this case, since the designation of the entrance determines
the connection that is meant. Hence such an operation looks like this: "a = a," .
One or more indications of this kind mafee up the contents of every operation box.
NOTE I: An affix "to ...." may also refer to several positions.
E.g. : "to A, C. I, 2" .
NOTE 2: The optional procedure of defining a new symbol by an expression
formed in an operation box becomes mandatory when that box is followed by a point cf
confluence of several paths. Indeed, consider the two operation boxes from which the
constancy interval 7 issues in Figure 7.7. Assume that their contents are intended
to be "X + y to C.I" and "x - y to C.I", respectively. In order that C.I have a
fixed content throughout the constancy interval 7, as required by our definitions,
it is necessary to give the alternative expressions x + y and x - y a common name,
say z. Then the contents of the two operation boxes in question wi I I be "z = x + y
to C I" and "7 = X - y to C. I".
NOTE 5: A variant of the procedure of defining a new symbol is to
define an expression involving a new symbol, which will afterwards only occur as a
whole, or to define the value of a function for a new value of its variable (usually
in an induction). E.g. "f ( i + I ) = i f ( i ) ( i - f ( i ) ) to A. 2".
The contents of a substitution box are one or more substitutions of the
type described in 7.6, in connection with the definition of the concept of a substi-
tution box. Such a substitution is written I ike this: "f (i, j, k, ...) — >• i".
Here i is a bound variable, the one whose value is being changed (substituted), while
^ - 'f i'*, j, k, ... ) is an expression which may or may not contain i itself as well
as any other bound variables j, k, ... (and any free variables or constants).
14.
The contents of an assertion txDx are one or more relations,
equalitfes, or inequalities, or any other logical expressions.
These may be
The successive contents of the storage positions referred to above
(A, B, C, ... with decimal fractions) must be shewn in a separate table, the storage
table. In conjunction with this table a list of the free variables should be given
(in one line) and a I ist of the bound variables (in the next line).
The storage table is a double entry table with its I ines corresponding
to the storage positions, and its columns to the constancy intervals. Columns and lines
are to be marked with the symbols and numbers of the entities to which they correspond.
Each field of this table should show the contents of the position that corresponds to
its line throughout the constancy interval corresponding to its column. These contents
are expressions which may contain bound variabfes as well as free variables and constants.
It should be noted that the bound variables must appear as such, without any attempt to
substitute for them their actual values, since only the former are attached to a given
constancy interval as such, while the latter depend, also on the specific stage in the
course of C, in which C passes at a particular occasion through that constancy interval.
It is obviously convenient to f i I I in a field in the storage table only
if it represents a change from the preceding constancy interval. Therefore we reserve
the right (without making it an obligation) to leave a field empty if it represents
no such change. In this case the field must be thought of as having the same content
as its line had in the colurm (or columns) of the constancy interval (or intervals)
immediately preceding it along the f lav diagram. (In the plural case, which occors
at a junction of the flew diagram, these columns [constancy intervals] must all have
the same content as the line in question. Indeed, without observing this rule, it
would not be possible to treat a I 1 incoming branches of a junction as one constancy
interval. Cf., e.g. the constancy intervals 2 and 7 in Figure 7.7.) If this ante-
cedent column is not the one immediately to the left of the column in question, it may
be advisable to indicate its number in brackets in the field in question.
Certain storage positions (lines) possess no relevance during certain
constancy intervals (columns) i.e. their contents are changed or produced and become
significant at other stages of the procedure (in other columns). The corresponding
field may then be marked Aith a dash. The repetition rules given above apply to these
fields with dashes too.
A scheme exhibiting all these features Is shown in Figure 7.8.
FIGURE 7.8
1
1.5
2
2.5
2.6
3
4
4.5
5
6
A.I
-
1
i
I
-
[2]
i + 1
2
-
1
g( i )
g(I)
P
[2]
g( i+i)
B. 1
-
1
-
J
J
J + 1
-
2
-
i
-
f(j,i)
f(J,i )
f(j + l,i)
-
15.
)n certain problems it is advantageous to represent several storage-
positions, i.e. several lines, by one line which must then be marked by a generic
variable, or by an expression containing one or more such variables, and not by a
definite number. This variable wi I I replace one or more (or al I ) of the decimal
digits icr rather numbers) following after the capital letter that denotes the
storage area in which this occurs, or these variables may enter into an expression
replacing those digits (numbers). In a line which is marked in this way the fields
will also be occupied by expressions containing that generic variable or variables.
"Expressions" include, of course, also explanations which state what expression
should be formed depending on various alternative possibilities.
It may be desinab'le to use such variable-nrerked lines only in a part
of the storage table, i.e. only for certain columns (constancy intervals). Or, one
may want to use different systems of variable markings in different parts. This
necessitates breaking the storage table up accordingly and grouping those columns
(constancy intervals) together for which the same system of variable markings is
being used
Since the flow diagram is fixed and explicitly drawn, therefore, the
columns of the storage table are fixed, too, and there can be no question of variable
markings for them.
In actual J) ract ice it may be preferable to distribute al! or part of
this table over the flew diagram. This can be done by attaching every field at which
a change takes place to that constancy interval to which it (i.e. its column) belongs,
with an indication of the storage position that it represents. (This applies to
fields whose I ine has fixed markings, as we I I ?s to those whose I ine has variable
markings, cf. above.) Since the immediately preceding constancy inten/als are at
once seen in this arrangement, there is here no need, to give any of the indications
suggested by our repetition rules. For mnemotechnical reasons it may be occasionally
worthwhile to indicate at a constancy interval the contents of certain fields at which
no changes are taking place at that stage (e.g. because no change took place there over
a long run, and the original indication is at a remote point in the flow diagra/n).
These two iTiethods, the tabular and the distributed indication of the storage, may also
be used together, in mixed forms. Thus, if the distributed method is used in principle,
there may be constancy intervals at ♦vhich more fields have to be described than con-
venient (e.g. for reasons of space). Such an interval may then be marked by an asterisk,
and a partial storage table made, which covers by its columns only the constancy inter-
vals with asterisks. Figure 7.8 is the tabular form of the storage table of a flow
diagram which is part of that one of Figure 7.7 (without the portion along the constancy
intervals 7, 8, and part of 3), and which will be given in full in Figure 7.10. The
distributed form is shown in Figure 1.9.
16.
FIGURE 7.0
A.I I
2 gci)
A,£ p
I 3
V--
B. 1 1
2 i
•— >
tn
/
+
A^--
BJ j
2 f(j>0
B.I J + I
2 -fCj +l,'0
7.8 The only constituents- of the flew diagram about which more remains
to be said are the operation boxe=;, the substitution boxes and the assertion boxes —
although even for these short descriptions were given in 7.7. Wfe wi I I now discuss
them exhaustively.
An operation box contains one or more expressions, and it indicates
that these expressions have to be calculated. Every expression may or may not be
preceded by a symbol to wh ich it is equated and which it is defining (cf. also
Note 3 in 7.7); and it may or may not be followed by an affix "to ....", the .... '"
being occupied by the symbol of a def.inite position, at which the expressions in
question is to be stored. If the affix "to ...." is missing, this means that the
expression in question may be stored in the accumulator or the arithmetical register
or othen\ise, but that at any rate it will ndt be needed at any remoter future stage.
A substitution box contains one or more expressions of the type
"f ■—> i", where i is a bound variable, and f is an expression which may or may not
contain i and any other bound variables, as well as any free variables and constants.
A substitution box is always marked with a cross #.
An assertion box contains one or more relations (cf.the corresponding
discussion in 7.7). It is always marked with a cross #.
The three categories of boxes that have just been described, express
certain actions which must occur, or situations which must exist, when C passes in
its actual course through the regions which they represent. We wi II call these the
effects of these boxes, but it must be realized, that these are effects in a symbolic
sense only.
17.
The effects in question are as fol Ic3««s:
The bound variables occuring in the expressions of an operation bov must
be given the values which they possessed in the constancy interval immediately preceding
that box, at the stage in the course of C i nmed i ate I y preceding the one at which that
box was accually reached. The calculated expression must then be substituted in a
storage position corresponding to the immediately fol Icwing constancy interval, as
indicated.
A substitution box never requires that any specific calculation be made,
it indicates only what the value of certain bound variables will be from then on.
Thus if it contains "f — > i", then it expresses that the value of the bound variable
i wi I I be f in the irmiediately following constancy interval, as well as in all subse-
quent constancy intervals, which can be reached f<5om there without crossing another
substitution box with a "g — * i" in it. The _ex press ion f is to be formed with all
bound variables in it having those values which they possessed in the constancy interval
inrmed lately preceding the box, at the stage in the course of C immediately preceding the
one at which that box was actually reached. . (This is particularly significant for i
itself, if it occurs in f. )
An assertion box never requires that any specific calculations be made,
it indicates on|y that certain relations are atrtomat i ca I I y fulfilled whenever C gets
to the region which it occupies.
The contents of the various fields of the storage table (tabulated' or
distributed) i.e. the various storage positions at the various constancy intervals
must fulfill certain conditions. It should be noted that these rer.arks apply to the
contents of the field in the flav diagrams, and not to the contents of the correspond-
ing positions in the actual machine at any actual moriErtt. The latter obtain from the
former by substituting in each case for every bound variable its vaue according to the
rictual stage in the course of C — and of course for every free variable its value
corresponding to the actual problem being solved. Now the conditions referred to above
are as fol lews:
First: The interval in question is irmiediately preceded by an operation
box with an expression in it that is referred "to " this field: The field contains
the expression in question, unless that expression is preceded by a symbol to which it
is equated and which it Ts defining (cf. also Note 3 in 7.7), in which case it contains
that symbol .
Second: The interval in question is inmediately preceded by a substi-
tution box containing one or more expressions "f — *• i", where I represents any bound
variable that occu;^ in the expression of the field: Replace in the expression of the
field e\/ery occurrence of eyjery such i by its f. This rrust produce the expression which
is valid in the field of the same storage position at the constancy interval inmediately
preceding this substitution box.
Third: The interval in question is irmediately preceded by an assertion
bcw: It must be demonstrable, that the expression of the field is, by virtue of the
relations that are validated by this assertion box, equal to the expression whitjh is
valid in the field of the sane storage position at the constancy interval irrmediately
18.
preceding this assertion box. If this demonstration is not completely obvious, then
it is desirable to give indications as to its nature: The main stages of the proof
may be included as assertions in the assertion box, or some reference to the place
where the proof can be found may be made either in the assertion box or in the field
under consideration.
Fourth: The interval in question is immediately preceded by a box which
falls into neither of the three above categories. The field contains a repetition of
what the field of the same storage position contained at the constancy interval imme-
diately preceding this box.
Fiftn: If the interval in question contains a merger (of several branches
of the flow diagram), so that it is immediately preceded by several boxes, belonging to
any or al I of the four above categories, then the corresponding conditions (as stated
above) must hold with respect to each box.
Finally: The contents of a field need not be shewn, if it 'S felt that
the omission (or rather the aggregate of simultaneously effective omissions of this
type) will not impose a real strain on the reader, due to the amount of implicitly
given material that he must remember. Such omissions will be indicated in many cases
where mere repetitions of previous contents are involved. (Cf. the remarks made in
this connection in 7.7, in the course of the discussion of the distributed form of
Storage. )
The storage LdOle need not sha^N h\\ the storage positions actually used.
The calculations that are required by the expressions of an operation box or of an
alternative box may necessitate the use of additional storage space. This space is
then specifically attached to that box, i.e. its contents are no longer required and
its capacity is available for other use as soon as the instructions of that box have
been carried out.
ngure 7.10 shc^^s a complete flow diagram. It differs from that one of
Figure 7.9 only inasmuch that the operation boxes and the storage boxes were left empty
then. It is easily verified that it represents the (doubly inductive) procedure
defining the number p, which is described unaer it.
FIGURE 7.10
^-^ I to ,
A.I 1+ I
z gCL+ I)
i,j
L + 1 to '
gCl+ 0=5(f(j/0+ g(L^)tc ' 2
i.i j+i r
a f(j+ 1,0 "~\_
T.
5
^(J+l
,0 =
-^^j'
+0B.1!
p = gil)',
g( I) = 1 , g(i + l) = i (f(J,i ) + g(i )),
f(i,i) = i, f(j+i,i) = if(j,i)^ - fij,i)) g(i
19.
Among the boxes shown on this f lotv diagram the operation boxes and the
alternative boxes and the variable remote connections require further, detailed coding.
The substitution boxes and'the assertion boxes (i.e. the boxes which are marked by a
cross j^) are purely explanatory, and require no coding, as pointed out earlier in 7.8.
The storage boxes have to be coded essentially as they stand. (For all this cf. the
details given in 7.9.) Thus the remaining problem of coding is attached to the opera-
tion boxes, the alternative boxes and the variable remote connections, and it will
prove to be in the main only a process of static translation (cf. the end of 7. I as
well as 7.9). In order to prepare the ground for this final process of detailed
(Stat ic) cod ing, we enumerate the operation boxes and the alternative boxes by Roman
numerals, with the rules for sequencing, subdividing, modifying and correcting as
given in Note I in 7.4. Figure 7.10 shows such an enumeration. The variable remote
connections are already enu;nerated.
Finally, we indicate the beginning and the end of the completed flew
diagram by two circles (T) ^— and — > (e) , cf. Figure 7.10
7.9 We can now describe the actual process of coding. It is a
succession of steps that take place in the following order.
First: Coding is, of course, preceded by a mathematical stage of
preparations. The mathematical or mathemat ical-phys ical process of understanding
the problem, of deciding with what assumptions and what idealizations it is to be
cast into equations and conditions, is the first step in this stage. The equations
and conditions thus obtained are rigorous, with respect to the system of assumptions
and ideal izat ions that has been selected. Next, these equations and conditions, which
are usually of an analytical and possibly of an implicit nature, must be replaced by
arithmetical and explicit procedures. (These are usually step-by-step processes or
successive approximation processes, or processes with both of these characteristics —
and they are almost always characterized by multiple inductions.) Thu? a procedure
obtains, which is approximate in that sense in which the preceding one was rigorous.
This is the second step in this stage.
It should be noted that the first step has nothing -to do with computing
or with machines: It is equally necessary in any effort in mathematics or applied
mathematics. Furthermore, the second step has, at least, nothing to do with
mechanization: It would be equally necessary if the problems were to be computed
"by hand".
Finally, the preeFsion of the approximation process, introduced by the
seco»Jd step, must be estimated. This includes the. errors due to the approximations
introduced by the second stfip, as wel I as the errors due to the machine's necessarily
rounding off to a fixed number of digits ( in our projected machine to a sign plus 39
binary digits, cf. Part !■ of this report) after every intermediate operation
(sp«cif ical ly: after e\iery multiplication and division). These are, of course, the
welt-kncv/n categories of truncation errors and of round-off errors, respectively.
In close connection with these it is also necessary to estimate the sizes to which
the numbers that occur in any part and at any stage of the calculation, may grow.
After these limits have been established, it is necessary to arrange the calculation
so that e\/ery number is represented by a multiple (by a fixed power of 2) which lies
in the range in. which the machine vworks (in our projected fiBchine between -I and I,
cf. Part I of this report). This is the third and last step of this stage. Like
the second step, it is necessary because of the computational character of the problem,
rather than because of the use of a machine.
20.
In our case there exists an alternative with respect to this third step:
It may be carried- out by the planner, "mathematically", or it may be set up for compu-
tation, in which case it may be advantageous to have it, too, carried out by the machine.
After these preliminaries are completed, the coding proper can begin.
Second: Coding begins with the drawing of the floi',' diagrams. This is
the dyvamic or macroscopic stage of coding. The flew diagram must be drawn on the
basis ffif the rules and principles developed in 7-3 - 7.8. It has been our invariable
experience, that once the problem has been understood and prepared in the sense of the
preceding first remark, the drawing of the flow diagram presents littl-e difficulty.
Every mathematician, or every moderately mathematically trained person should be able
to do this in a routine rranner, if he has familiarized himself with the main examples
that fol lew in this report, or if he has had some equivalent training in this method.
It' is advisable to draw a (usually partial) storage table for the main
data of the problem, and use from then on either purely distributed, or mixed distri-
buted and tabular storage, pari passu with the evolution of the diagram. The fl'cw
diagram is, of course, best started with one of the lowest (innermost! inductions,
proceeding to the higher inductions which contain it, reverting (after these are
"exhaiBted ) to another lowest induction (if any are left), etc., etc. No difficulty
will be found in keeping the developing flew diagram complete at every stage, except
for certain enumerations which are better delayed to the end (cf. belcw).
It is difficult to avoid errors or omissions in any but the simplest
problems. Hcwever, they should not be frequent, and wit! in most cases signalize
themselves by some inner maladjustmsnt of the diagram, which becomes obvious before
the diagram is conf)leted. The flexibil ity of the system of 7.3 - 7.8 is such that
corrections and mod if icat ions of this type can almost always be applied at any stage
of the process without thrcwing out of gfear the procedure of drawing the diagram,
and in part icular without creating a necessity of "starting all over again".
The enumeration of the distribtted storage and of the remote connections
and of the constancy intervals should be done pari passu with the drawing of the diagram.
The enumeration of the operation boxes and of the alternat\i've boxes, on the other hand,
is best done at the end after the flew diagram has been completed.
After a moderate experience has been acquired, many simplifications and
abbreviations will suggest themselves to almost any coder. These are best viewed as
rdividual variants. We wish to mention only one here^ If distributed storage is
extensively used, only a few (if any) among the conistancy intervals will have to be
enumerated.
Third: The next stage consists of the individual coding of every
operation box, alternative box and variable remote connection. This is the static
or microscopic stage of coding. Its main virtue is, that the boxes in question can
now be taken up one by one, and that the work on each one of them is essentially un-
affected by the work oifi the others. (With one exception, cf. below. )
\Ate feel certain that a moderate amount of experience with this stage
of coding suffices to remove from it al I difficulties, and to make it a perfectly
routine operation. The actual procedure wi II become amply clear by reading the
examples that follow in this report. We state here only general principles which
govern the procedure.
21.
The codinq of a variable remote connection is best attached to the
ifimediatelv preceding box. If it is preceded by several such boxes, either of these
may be used; if no suitable box is available, it may be given a Roman numeral and
treated as a separate box.
The codinq of the (operation or alternative) boxes remains. The codinq
of each box is a separate operation, and we called it, as such, static. This is justi-
fied in this sense: The course of C during such a period of codinq is strictly linear,
i.e. there are no jumps forward or backwand (by the Cu or Cc type transfer orders —
the orders 13-16 in Table U) — except possibly at the end of the period — C moves
without omitting anvthinq and without ever going twice over the same ground (within
one period of this type). It is in this sense only that the process is static:
Substitutions, i.e. changes in the memory (hence either in the storage or in the
orders), occur at every step. In addition, partial substitutions (by the Sp type
substitution orders — the orders I8rl9 in Table II) cause a slight deviation from
strict linearity: They affect orders (the ones which are to be modified by substitu-
tion) which may not have been coded yet. In this situation it is best to leave in the
substitution order the space reserved for the position mark of the order to be substi-
tuted (in the preliminary enumeration, cf. below) empty, and mark the substitution
order as incomplete. After all orders have been coded, all these vacancies can be
filled in. These fillinq-in operations can be effected within a single linear passage
over the entire coded sequence.
The coding of such a box occurs accordingly as a simple linear
sequence, and it is therefore necessary to define a system for the enuineration of
the ccJde orders within the sequence (oif this box). We call It the preLiminary
entmeration, because the numbers which we assign at this stage are not those that
will be the x's of the actual position in the selectrdn memory. The latter form
tt^e final enumeration to be discussed further below. The preliminary enumeration
Is def'ned as follows: The symbol of the box under consideration is to be shown,
then a conni&, and then an Arabic numeral — the latter being ssed to enumerate
the code orders of this sequence. (We might again allow the rules for sequencing,
subdividiog, modifying and correcting as given in Note I in 7.4, for this enumera-
tion, too. It will, hc*wver, hardly ever be necessary to have recourse to these —
there will almost never be any difficulty in carrying out a sltnple linear nuwtoering
of the entire sequence pari passu with its coding.}
Thus the enumeration for a box II. 1 might be II. I, I; 1 1. I, 2; ...
Actually these symbols wi 1 1 be written under each other, and the box symbol' (N.I in
the above case) need be shown only the first time. In every order the expression
S(x) wi 1 1 have to be written with the ful I prel iminary symbol of x, e.g.; $t||. | 3).
(This exanple must, of course, be thought of as referring to a selectron position x
containing an onjer. If x contained a number, an expression like S(A. 1,2) would be
typical. )
References to a variable remote connection are best made by its
Greek letter (possibly with decimals, cf. Note I in 7.4, and with or without indexing
acconding to whether the entrance or the exit istneant), since it ray not be feasible
or convenient to determine at this stage the Identifications of its parts With the
app opriate (Ftoman numeral ) boxes.
Any storage that becomes necessary in the course of this codinq (In
excess of the tabulated or distributed storage of the flow diatjram, I.e. the storage
attached to the box, cf. the last part of 7.8), has to be shown separa^y, as
22.
local storaee. The local storage should be enumerated in the same wav as indicated
above, but with a symbol s after the cotrma, e.q. : 11. I, s.l; II. I, s.2- ... (For
an S(x) which refers to such a position one miaht wi-ite, e.q. Sill. I, s.2), in the
sense of the suggestion in the precedinc paragraph. However, since the referance is
by its nature to the box under consideration at the time, it is legitimate to abbre-
viate bv omitting the box symbol, writing e.g. S(s.2).)
The codina itself should be done in a column of its own, enumerated as
indicated above. It is advisable to parallel it with another, explanatory, column,,
which shows for each order the effect of th e substitution that it causes. This
effect appears, of course, in one of the following places: The accumulator (syrrtol:
Ac), or the arithmetical register (symbol: R), or some storage position or coded
order (symbols as described up to now). The explanatory column then shows each time
the symbol of the place where the substitution takes place, and its contents after
the substitution. The Cu or Cc type transfer orders (the orders 13-16 in Table I )
cause no substitution, thev transfer C instead (and they occur only at the end of
the sequence) — hence thev require no explanation.
An order in the sequence, which becomes effective in a substituted
form (substituted bv an earl ier order in the sequence), should be shown in its ori-
ginal form and then, in brackets, in its substituted form. The oi'iginaf form may
have a -, the sign of irrelevance, or any other symbol (e.g. the number 0, of course,
as a 12 digit binarv), in place of its x (in its S(x) ). It is this form which
matters in the actual coding. (In writing out a code, it is best to use the sign
of rrrelevance in such a case. When it comes to real coding, however, an actual
number niust be used, e.q. 0.) The substituted form, on the other hand, is clearly
the one which will actually control the functioning of the machine, and it is the
one to which the explanation should be attached.
We repeat: We feel certain that direct, linear coding according to
this principle presents no difficulties after a moderate amount of experience has
been acqui red.
Fourth: The last stage of coding consists of assigning;al I storage
positions and all onders their final numbers. The former may be enumerated in any
order, say linearly. The latter may then foitow, also in a linear order, but with
the following restriction: The flow diagram indicates that a certain box must
follow immediately after another operation box, or inrmediatel y after the - branch
of an alternative box. (- is the case where the transfer of C by a conditional
transfer order — type Cc — does not become effective). In this case the sequence
of the former box must begin inTr\ediatel y following the end of the sequence of the
latter box.- It can happen, that this principle requires that a box be the imme-
diate successor of several boxes. In this caie all of the latter boxes (except
one) must be terminated by (unconditional ) transfer orders to the former box.
Such a transfer onjer is also necessary if a box requires as its immediate
successor a non-initial order of another box.
At this stage the identification of every part (entrance and exits)
of every variable remote connection with appropriate (Roman numeral) boxes (i.e.
orders in them) must be established. The Greek letter references to. these
connections will then be rewritten accordingly.
These principles express all the restrictions that need be obsen/ed
in the final, linear ordering of the boxes. To conclude, we note that it nust be
remembered, that two orders constitute together a word, i.e. that they have
together one final number, and are distinguished from each other as its "left"
or "right" order.
23.
After this final enumeration has been completed, one more task remains:
In every order, in the expression S(x) the preliminary number x must be replaced by
the final number x, and for those orders which substitute positions that are occupied
by orders (orders without or with primes — these are the onders 13-16 and I8, 19 in
Table ill the distinction between "left" and "right" must be imde (i,e. the order must
not be primed or it must be primed, respectively). In the case of positions which
correspond to the exits of one variable remote connection it is clearly necessary that
they be all "left" or ail "right". This must be secured; the ways to achieve this are
obvious.
When the coding is thus completed, the positions where the sequence of
orders begins and ends (corresponding to i and e, cf. the end of 7.fi), should be noted.
There wil I be more to say about these when we get to the questions of subroutines and
of combining routines, tc which reference will be made further below, but we wi 1 1 not
go into this matter now.
All these things being understood, it is indicated to state this in
addition: There are still some things which have to be discussed in connection with
the coding of problems, and which we have neglected to consider in this chapter, and
will afso disregard in the chapters which follcw in this Part II of the report. We
refer to the onders which stop the machine, to the orders which control 1he magnetic
wire or tape and the osci I loscopic output of the machine, and to the logical principles
and practical methods applying to the use of the magnetic wire or tape inpi/ts and
outputs as a subsidiary memory of the machine.
We made brief references to these matters in the paragraphs 4-5, 4.8,
6.8 (and the sub-paragraphs of the latter) in Part I of this report. They require,
of course, a much more detailed consideration. That we neglect to take them up here,
in Part II of our report is neve rt hie I ess deliberate. The main reason for this neglect
is, that they depend on parts of the machine where a number of decisions are still
open. These are decisions which lead only to minor engineering problenB either vsay,
but they do affect the treatment of the three subjects mentioned above (stop orders,
output orders, use of the input -output as a subsidiary memory) essentially. So the
corresponding discussion is better withheld for a later report.
Furthermore, the two first items are so simple, that tney do not
seriously impair the picture that we are going to present in what fcl lows. The
potentialities of the third item are much more serious, but we do not knew as yet,
to what an extent such a feature wi I I be part of the first model of our machine.
There are further important general principles affecting the efficient
use of coding and of routines. These are primarily dealing with general routines and
sub-routines and with their use in coinbining routines to iiew routines. These matters
will be taken up, as far as the underlying principles are concerned in Chapter 12,
and put to practical use in various examples, with further discussion in the sub-
sequent Chapters 13 and | 4. In the immediately following Chapters 8 - II, we wi 1 1
give examples of coding individual routines, on the basis of the general principles
of this Chapter 7.
2^.
8JQ CODING OF TYPICAL ELEMENTARY PROBLEMS.
8.1 In this chapter, as well as In the followinq ones, we will apply
the^general principles of coding, as outlined in Chapter 7, to a sequence of problere
of gradually increasing complexity. The selection of these problems was made primarily
with the view of presenting a typical selection of examples, on which the nain problems,
difficulties, procedures and simplifying and labor saving methods or tricks of the
actual coding process can be exhibited and studied. They will be chosen from various
parts of inathematics, and some of them will be of a more logical than mathematical
character. After having progressed from simple problems to complicated ones withia
the category of those problems which have to be coded as units, i.e. without breaking
up into smaller problems, we will proceed to problems which can be broken up into
parts, that can be coded separately and then fitted together to code the wholer problem.
8.2 Before we start on this program of coding specific problems,
however, there remains one technical point that has to be settled first.
In all the coding that we are going to do, referenfces to specific
memory locations will occur. These locations are 2"=i4,096 in number, and we always
eninerated them with the help of a 12 binary digit number or aggregate, which we
usi^lly denoted by x. (Cf., e.g. through the Table 11 of orders.) We will use for
this 12 binary digit nirter or aggregate, in all situations where it may occur, the
generic designation of a nenoryi position mark, or briefly position mrk. By call ing
it ambiguously number, aggregate or mark, we have purposely avoided the cftiestion
whether and how we wish to attribute a binary point position to this digital aggregate.
Vfe now rake the choice in the rost convenient way: Let the binary point be at the
extreme right, i.e. let the position niarks be integers. Thus the position marks
correspond to all 12 binary digit integers, i.e. to all (decimal) integers from
0 to 2'"-! = 4,095.
This choice, however, is not entirely without, consequences for the
way in which the position marks themselves must be placed into the nemory, and
manipulated arithmetically by the machine, whenever such operations are called for.
The point is that the machine will not handle integers as sufch, but only numbers
between -I and I. Furthermore, in order that a position mark x that is stored in
the memory should become effective, it is necessary to substitute it into some
order. This involves bringing it from its storage position into the accumulator
(by an order S(y)—> Ac + [abbreviated: y] , assuming that the storage position in
question has the mark y), and then make a partial substitution from the accumulator
into the desired order (by an order Ap— > S(z) or Ap' -^ S(z) [abbreviated: zSp or
zSp'] , assuming that the order to be substituted has the position mark z).
If we followed the explanation of these orders (Nos. 18, 19) given
in Table I or in 6.6.5 in Fart I of this'report, then both orders would move the
left-hand 12 digits of the accumulator into the proper places at z (into the left-
hand 12 digits of the left-hand or right-hand order there, i.e. into digits I to 12
or 21 to 32 [from the left] in that word). Now the position mark to be moved, x,
is according to the convention that we have chosen, an integer. Digit I in the
accumulator is the sign digit, while digit I (= 2, ..., W) there has the positional
value 2"('"').
25.
Therefore the acrijrHilator should actually contain not x itself, but 2"*^ x (modulo 2).
Hence x should be stored in the memory (at y, cf . abwe) as 2" x (modulo 2).
From an engineering point of view It is preferable not to involve the
siqn digit of the accunulator into these transfers, and not to effect both transfers
(into the left-hand orders and into the right-hand orders) from the same 12 accumu-
lator digits. This motivates the change which we nade in Table il» as against Table I,
for these orders 18, 19: We effect these two transfers fron the digits 9-20 and 29-40
(fron the left) of the accumulator, respectively.
In view of these changes it is desirable to have in th*> accumulator
the 12 digits of x both at thp digits 9 to 20, and at the dirjits 29 to HO, when the
substitutions of the type under discussion are being effected. I.e. the accumulator
should contain 2"^* y + 2"*° x.
We define accordingly:
A(memory) position mark x is always a 12 binary digit integer, i.e. a
(decimaH integer from 0 to 2^^ - I = 4,095. Form
xo ^ r" X . 2-="' X.
Then whenever x has to be stored in the memory, or in any manner ooerated on by the
machine, it has to be replaced by the number Xq given above.
The symbols introduced in Chapter 7 to denote storage positiorTs for the
tabular or distributed storage (English capitals with decimals, cf. the beginning of
7.7) or the local storage (Roman numeral with decimals [denoting operation or alter-
native boxes] followed by an s and a decimal, cf. the latter part of 7.9) or for
remote connections (Greek letters with decimals, cf. Note I in j.n) will be considered
to be position marks, i.e. inteaers x, and treated accord innly, in the sense of the
abcA/e rule.
8.3 We now take up oir first actual coding problem. This is a very
elementary problem, of a purely algebraical character and presenting no logical
complications whatever.
Problem 1.
The constants a, b, c, d, e and the variable u are stored in certain,
given, memory locations. It is desired to form the expression
a U9 + b u + c
V =
d u + e
and to store it at another, given, memory location.
The problem is so simple that it can be coded directly, without a flo(
diagram. Wte may, therefore, attribute all storage to a single storage area A, and all
operational orders to a single operation box i . (Both of these are, in a way,
"fictitious", since we do not draw a flow diagram.)
26.
Accordingly, let the constants a, b, c, d, e be stored at A.) to 5,
the variable u at A. 6, the (desired) quantity v at A. 7. fote that u is a free
variable, a to e are constants whi<!li may be viewed as free variables, while v is
produced by the machine itself and the content of A. 7 at the start is therefore
irrelevant.
Obviously the expressions that will have to be forired successively are:
1) au, au + b, au* + bu = (au + b) u, aifi + bu + c.
2) du, du + e.
3)
V =
ahr-+ bu + c
d u + e
intermediate, i.e. local, storage is needed for whichever of the two
quantities a'i^ + bu + c and du + e is computed first, while the second one is obtained.
However, at this stage A. 7 i? still available (v is not formed) arid may be utilized for
that storage. It is convenient when the division of 3) begins to have its dividend
au2 + bu + c in the accumulator. Hence I) should immediately precede 3). Therefore
I) to 3) should be taken up in the order 2), I), 3).
Some additional local storage is required for a certain quantity in
transit, at a moment when A.? is no longer availzble. (This quantity is au + b, which
has to mfve from Ac to R, while A. 7 is occupied by du + c. Cf. the orders 1,8,9 below.)
This requires an additional storage position A.S-
The entire coding is static, and may be arranged as follows:
Storage at the beginning;
A.I
a
A. 4
d
A. 7
2
b
5
e
8
3
c
6
u
Coded sequence (preliminary enumeration), detailed form:
(Coding Column.) (Explanatory Column. )
J
S(A.4) -^ R
2
S(A.6) xR-*A
3
S(A.5)-^ *h +
4
At-^ S(A.7)
5
S(A.I)-* R
6
S(A.5) xR-> A
7
S(A.2)-* Ah+
8
At-^ S(A.8)
9
S(A.8) -* R
10
S(A.6) xR--y A
II
S(A.3) -> Ah +
12
A - S(A.7)-^R
13
R— >• A
14
At— yS(A.7)
R
d
Ac
du
Ac
du + e
A.7
du + e
R
a
Ac
au
Ac
au + b
A.S
au + b
R
au + b
Ac
au2 + bu
Ac
au* + bu + c
au2 + bu + c
R
V = du +. e
Ac
V
A.7
V
27.
Note, that 1,1-4 corresponds to 2) aba/e, 1,5-11 to I), and 1,12- m
to 3). In al] the codings which follow we will use the abbreviated notation of the
Table II of orders. Then the above coded sequence (preliminary enunerat ion) assines
the following appearance:
M
A. It
R
2
A. 6
X
3
A. 5
h
U
A.7
S
B
A.l
R
6
A. 6
X
7
A. 2
h
8
A. 8
S
9
A. 8
R
10
A.6
X
il
A, 3
h
12
is
A.7
A.7
A
S
R
d
ic
du
Ac
du + e
t.7
du + e
R
a
Ac
ail
Ac
an + b
A. a
ai) + b
R
ail + b
Ac
an' + bu
Ac
aii» + bu + c
R
y . ai!2 + bu + c
du + e
Ac
V
A.7
V
The passage to the final ennmer at ion consists of assigning A. 1-8
their actual values, and of pairing the 14 orders 1,1-14 to 7 words. Let the latter
be 0 to 6, and let A.l-b be 7 to m. 'I'hen the coded sequence becomps (the explanatory
column is no lonoer needed):
Q
10 R ,
12 X-
5
9 h ,
13
1
1 1 h ,
13 S
6
A ,
IS
2
7 R ,
12 X
7
a
3
8 h ,
14 S
8
b
4
14 R ,
12 X
9
c
10
d
II
e
12
u
13
-
14
-
In an actual application or this coded sequence the constants (or
parameters, or free variables) a toe and u, occupying the locations 1, .., 12, would,
of course, have to be replaced by their actual, nu^rical values. The other locations,
I, ..., 6, on the other hand, will have to be coded exactly as they stand.
These remarks (concerning constants, or parameters, or free variables)
apply, of course, equally to all coded sequences that we will set up in the remainder
of this report. (Cf., however, the remarks on subroutines and on cortining routines in
ClHPter 12. which have a certain significance in this respect.)
8.4 We introduce next a slight logical twist into Problem 1.
Prrtie^ 2.
Same as fVoble-^ I, with this change: li and v are stored or to be
stored at certain locations m and n, which are not given in advance, but stored at
certain, given, memory locations.
28.
This affects the use of storage,
but we must reconsider the use of A. 1-8.
A flow diagram is still not necessary,
A. 6, 7 are no longer needed for u, v, however, we still need A. 7 for
local storage (cf. 8.3). L^t m, n be stored at A. 9, 10, of course, in the form irio,
no (cf. 8.2).
When we will pass from the prelininary enumeration to the final one,
the following observat i ons w i 1 1 apply: First, A. 6 is missing, but this is irrelevant.
Second, the positions m, n are suppoeed to be part of some other routine, already in
the machine, therefore they need not concern us at this stage. Third, let us assume
that the coded sequence is supposed to begin at some position other than 0, say 100,
and that it is supposed to end at a prescribed position, say 50.
The abbreviated, preliminary coded sequence I ,1-14 will therefore
have to be modified in two ways: First, the references to A.6 (which transfer u)
and to A. 7 (inasmuch as they transfer v, and are not due to the use of A. 7 for
local storage) have to be changed. .Since u is needed repeatedly, it is advisable
to assign to it a fixed position A.ll . Hence I ,2, 6, 10 will have to refer to A.I I
fnstead of A.6, and new orders will be needed to get u from m to A.ll, and (replacing
I;, 14) to get V from Ac to n. Second, a new order is needed at the end of the coded
sequence to qet the control to the desired endpoint 50.
The ctenges in 1,2, 6, 10 are trivial.
The transfer of u may take place at any tire before 1,2. 1,2 assumes
that d is in R, so this transfer must either precede I ,1, too (since this moves d to
R), or leave R undisturbed. R is indeed not disturbed but we place the transfer
routine nevertheless before I J. It can be coded as follows:
1 ,0.1
A. 9
.2
1,0.3
.3
-
[
m
.4
A.I 1
Sp
Ac
1,0.3
Ac
A.ll
1^
m
u
u
Note that the sign of irrelevance in an order, like I ,0.3 above, does
not trean that the entire order, i.e. the entire half-word is irrelevant (and still
less, that the entire word is irrelevant). It means that an order S(x)— > Ac ,
abbreviated x, is needed, but that x is irrelevant.
The transfer of v replaces the order I ,14. 1,14 assumes that v is in
Ac, so the operations required by this transfer must either precede J, I-I4 (since all
of these are needed to produce v in Ac), or leave Ac undisturbed. Ac is distirbed,
so it is necessary to place the tra^isfer routine before 1,1. It is simplest to let
it follow inmediately after oir first transfer routine, ie. immediately after 1,0.4
abo/e. It can be coded as follows:
,0.5
.6
A. 10
Sp
Ac
1,1'+
n
29.
[
l,m, in turn, met be rewritten as follows:
S
S]
Final Iv, we need an order after 1,14, to mo/e the control to the desired
endpoint 50. ^his is, of coirse:
1,15
50 C
We can now rewrite the abbreviated, prel it^inarv coded seqience!
m
u
n
V
A.J
a
2
b
Storage at the beginning:
A. 3
4
5
7
c
d
e
A. 8
9
10
Coded seqtence (preliminary eniineration):
,0.1
A. 9
'2
1,0.3
Sp
.3
m
]
.1^
A. II
S
.S
A. 10
.€
1,14
SP
1
A. 4
R
2
A. II
X
3-
A. 5
h
1
A. 7
S
5
A.I
R
6
A. II
X
7
A. 2
h
8
A. 8
S
9
A. 8
R
10
A. II
X
II
A. 3
h
12
A. 7
^
13
A
m
-
S
n
s ]
15
50
c
n„
Ac
nV)
1,0.3
m
Ac
u
A. II
u
Ac
"o
1,11*
n
S
R
d
Ac
du
Ac
du +
e
A. 7
du +
e
R
a
Ac
au
Ac
ail +
b
A. 8
au +
b
R
ail +
b
Ac
aii^
+ bii
Ac
aii^
+ bu + c
R
V =
au' + bu + c
du + e
Ac
V
The passage to the final enumeration consists of assigning A. 1-5, 7-11
their actual valies, pairing the 21 orders 1,0.1-15 to II words, and then assigning
1,0.1-15 their actual valies. Vte treat m, n 1 ike a to e or n: As free variables or
constants. The II words in qiestion -nust begin with 100, so they will be 100 to 110.
Then A. 1-5 may be III to 115, and A. 7-1 1 may be 116-120. So we obtain this coded
sequence:
30.
100
iOI
102
103
105
i06
18 ,
IOI Sp
~ »
^2o s
19 ,
109 Sp'
(1+ R,
120 x
15 h,
116 S
II R,
120 X
12 h,
117 S
107
108
109
110
III
112
IJ3
117
113
50
a
b
c
120 X
116 -
- S
l|ti
115
116
117
118
119
120
d
e
^
Note, that the sign of irrelevance in an order, like lOI-left, means
that it is an order x (i.e. S(x)-^ Ac) with x arbitrary. This is exactly the same
situation as in 109-right, which is -S, i.e. x S (I.e. At ^ S(x) ) with x irrelevant.
On the other hand, llO-right, marked - -, is actually entirely irrelevant, since this
half-word was not needed for any of our orders. Finally the sign of irrelevarve in a
full word, like 116 or 1 17 or 120, neans, of coirse, that the entire content is
irrelevant. The simplest treatment of all these irrelevancies is to replace anything
that is irrelevant by 0
8.5 The coding of any problem should be followed by an estimate of
the time that the machine will consume in solving the problem, i.e. in carrying out
the instrictions of the coded seqience.
In order to make such an estimate it is recessary to have some
information about the duration of each step that is involved, i.e. the time required
by the machine to carry out each one of the orders oi Table II. At the present stage
of our engineering development the order-time estimates are necessarily guesses.
The estimates which follow are made in a guardedly optimistic spirit. Unless there
are some major sirprises in our engineering de'elopnents, they should be correct
within a moderate error-factor ~ say, within a factor 2.
In this sense our ordrr-time estimates are as follows:
TABLf III
1
2
3
4
5
6
7
X 25 n
X- 25
xM 30
x-M 30
xh 30
xh- 30
XhM 35
8 xh-ri
9 xR
10 A
11 xX
12 x^
13 xC
m xC
35 n
25
5
100
150
25
25
15
16
17
18
19
20
21
xCc
xCC
xS
xSp
xSp'
L
R
30 ti
30
25
25
25
5
5
plas
20 li for every word
1 ti =
1 microsecond, 1 m =
= I mill isecond.
Considering the considerable uncertainties with which these estimates
are affected, we might as well use the following approximate rule:
31.
Count 75 u for every word which contains two orders, subtract 25 \i if
only one order is iised, subtract 20 ^ for every order which refers to no neniory position
X (i.e. A, R, L), add 70 u for every mult ipl icat ion and 120 u for every division.
require
and
respectively.
On this basis the coded sequences obtained in 8.3 and 8.4 should
(7 X 75 - 20 + 3 X 70 + 120) n = 835 n ci -8 m,
(II X 7b - 25 - 20 + 3 X 70 + 120) u = 1 , 1 10 ^i c^ I.I m,
8.6 The next point to consider in connection with our coding of the
Problems I and 2 is this:
Wr observed repeatedly that our machine will only deal with numbers
lying between -I and I. Ordinarilv we will interpret this to exclude both endpoint?. ,
i.e. we will keep all absolute values < I. it should be noted, however, that the
precise definition of the numbers that oir machine can handle as digital aggregates
(cf. 5.7 in Part 1 of this report) irrludes -I and excludes I.
This fact, that we have a -I but not a 1, is occasionally of i-portance.
Actually this is not often the c^se, indeed extremely less frequently than one might
think. There is hardly ever a need to store a I: Its effect in mi'ltiplying or dividing
is nil, and the sizes which we wisli to observe make it uswl'v inconvenient to manipulate.
Regarding position marks, where I night play a role, cf. 8.2. Regarding induction
indices, cf. Problem 3 in 8.7 as v/ell as various subsequent Problems.) In t^ose excep-
tional cases where I is actually arithmetically needed, it is always possible to adjust
the operations so that -I can be used instead. (For an example of this cf. Problem 9
in 9.9, in particular the treatment of the box III — C.2 and III, I — as well as
sif^ilar situations in the boxes VI, IX, XII, XV.) The complications which arise in
this manner are very rare, and when they occur, negligible, as the experience of our
Problems amply illustrates.
In the present case, we will keep all absolute values < I. It is in
this sense, tlierefore, that we observe that the above problems can only be handled
if their u and v lie between -| and I. Firthernore, our procedure of 8.3 (and 8.1)
also requires that all data of the problem, i.e. the constants a to e should lie
between -I and I , as wel 1 as ill intermediate results of the calculation, i.e. the
expressions
1) au, au + b, au5 + bu, aus + bu + c,
2) du, du + e.
Now assume that u is only known to lie between -2^ and 2**, v between
-2'' and 2^^, and a to e between -2^ and 2'' (p, q, r = 0, 1 , 2, ... ). Then the quan -
tities a to e and u, v simply cannot be stored by tie machine, end it is necessary
to store others instead, e.g.
a' = 2'''a e' = 2'^e, u' = 2"^"-, V = 2"''v.
32.
This, however, is not-, an answer to our problem since the relationship
between ii' and v' is not expressed with the help of a' toe' in the same manner as the
relationship between r and v with the telp of a to e. Hence we have to proceed some-
what more circumspectly.
This is not difficult. Our original relation
aiig + bu + e
V =
impl ies
where
if
du + e
a* u'g + b* ii' + c*
d* II' + e*
ii' = 2"P|i, v' = 2'''v,
a* = 2'-9-9-Sa, b* = 2P-''-Sb, C* = l-^'^c, d* = l^'^d, e* = 2-^e,
where s= 0, + I, + 2, ... can be freely chosen. We can row use oir freedom in choosing
s to force a* to e* as well as the expressions
I*) a* n', a* ii' + b*, a* u'^ + b* ii', a* u'2 + b* ii' + c*,
2*) d* II', d* u' + e*
into the interval -I, I. Since
a* u'g + b* u' -t- c*
d* u' + e*
< i,
we may disregard the last expression ir I*), i'f all others are taken care of. Since
I u' I < I, it suffices to secure
|a*| , |b*| ,|d*| , |e*| < i ,| c*|< I .
This means that
s I 2p-q + r+ i,p-q + r+ l,-q + r,p + r+ l,r+ i.
Hence we may choose
s=htex (ip-q+r+ l,p+r+ l)=p+Max(p-q, 0)+r+ I.
This procedure is typical of what has to be done in more complicated
situations. It calls for some remarks, which we proceed to formulate.
Fit^t; a to e and u are data, and it is therefore natural that we
have to assume that some information, which is separate from this calculation, exists
regarding their sizes. (I.e. that they lie between -2^ and 2"", and between -2^ and
2^, respectively.) v, however, is determined by a to e and u, so its limits (-2''
and 2'') should be derivable from the information that exists concerning a to e and u.
33.
In some cases this information need not be more than what was stated above concerninq
their ranges (-2'' to f for a to e, -2^ to 2^ for u), in others it may require addi-
tional information. But in any case the problem of foreseeing the sizes rf the
quantities which the calculation w 1 11 produce (as intermediate or as final results),
should be viewed as a mathematical problem In its own right. (Cf. the discussion of
the "first stage" or preparing a problem, in 7.9.) This problem of evaluating sizes
may be trivially simple, as in the present case; or moderately complex,, as in most
problems that require extensive calculations; or really difficult, as e.g. in various
partial differential equation problems. It r^y even be, from the riathemat ical point
of view, the crux of the whole problem, i.e. the actual problem may require more
effective calculating than this subsidiary, evaluational problem, but the latter may
require more matheratical insight than the former. This can happen for very important
and practical problems, e.g. it is so for n simultaneous linear or non-linear equations
in n variables for large values of n. (We will discuss this particular subject
elsewhere,) To conclude, we note that the estimation of errors, and of the precision
or significance that is obtainable in the result, is quite closely connected with the
estimation of sizes, and that our above remarks apply to these, too. (All of these
are covered by the "first stage" discussed in 7 3, as referred to abcve.)
Second: Under suitable conditions it may be possible to avoid the
mathematical analysis that Is required to control the eizes (as described above), by
instructing the machine to rearrange the calculation, either continuously (I.e. for
every number that is produced) or at suitable selected critical moments, so that all
scales are appropriately readjusted and all numbers kept to the permissible size
(i.e. between -I and 1). The continuous readjusting is, of course, wasteful in time
and memory capacity, while the critical (occasional) readjusting reqoires more or
less mathematical Insight. The latter is preferable, since it Is almost always
Inadvisable to neglect a mathematical analysis of the problem under consideration.
Examples of how to code the instructions to secure critical size
readjustments in various problems will be niven subseqiently .
I'hirtl: The process of ocntinuous readjustment can be automatized
and built into a machine, as a floating binary point. We referred to it already
in 6.6.7 In the first part of this report. We formulated there various cr it Icisre
which caused us to exclude this facility, at any rate, from the first model of our
machine. The above discussion reemphasizes this point: The floating binary point
provides continuous size readjusting, while we prefer critical readjusting, and
that only to the extent to which it is really needed, i.e. inasmuch as the sizes
are not foreseeable without undue effort. Besides the floating binary point
represents an effort to render a thorough mathematical onderstanding of at least a
part of the problem unnecessary, and we feel that this is a step in a doubtful
direction.
8.7 Let us now extend the Problems I and 2 In a different respect.
This extension wil 1 bring in a simple induction, and thus the first complication of
a logical nature.
Problem 3.
Same as Problem I with this change: The calculation is desired for
I values of u: Ui, ..., u^, giving these v's: Vj , ..., v-^ , respectively. Each pair
Uj, Vj (I = I, ..., I) is stored or to be stored at two neighboring locations
34.
m + 2i-2, m + 2i-l, the whole covering the interval of locations from m to m + 21- I.
n and I are not given in advance, but stored at certain, given, nenory locations. —
This is the first one of our Problems to require a flow diagram. We
will therefore apply the principles of Chapter 7, and more particularly of paragraph
7.9, to their full extent, and avoid any shortcuts that were possible in connection
with our two previous problems.
Let A be the storage area corresponding to tlie interval of locations
from m to m + 21- 1 . In this way its positions will be A. I, ... 21, where A. j cor res
ponds to m + j-l (j = I, ..., 21). These positions, however, are supposed to be part
of some other routine, already in the machine, and therefore they need not appear when
we pass (at the end of the whole procedure) to the final enumeration of the coded
sequence.
Let B be the storage area which holds the given data (the constants)
of the problem: a to e and m, I. m is a position mark, we will tberefofe store
rio instead. I is really relevant in the comfcination m + 21, which is a position
mark (the storage area A is an interval that begins at m and ends just before m + 21),
we will tlierefore store (m + 21 )o instead of I. We store a to e at B.I, .., 5 and
iHo, (m + 21 )o at B.6, 7. Finally, storage is required for the induction variable i.
i is really relevant in the combinations m + 2i-2, m + 2i-l, which are position narks
(for A.2i-I containing U; and for A.2i designated for Vj), vie select m + 2i-2, and
we will store (m + 2i-2)o instead. This will be stored at C.
These things being understood, we can proceed to drawing the flow
diagram. We will use tabulated storage. A.2i-I (i = I, ..., I) and '^.l, ...,7
are the fixed storage (the Uj and tlie a, ... , e, m, I, respectively), while
A.2i (i = I, .., I) and C are tlie variable storage (the Vj and i, respectively).
The complete flow diagram is shown in Figure 8.1.
FinURE 8.1
©-
HI
3
>- d.u;.+e
(•m + 2L)o +o C
a,b, c,cL,e
1
U5
2
3
A. 21'
—
—
V^ifoH u'<L
— -foR L' > L
V-j^l f O R L' ^ "t.
C
—
rr\o
(Tn+2l-2)o
frn+2l)o
A,2l'-I
U;.
B.I
a
2
b
3
c
M-
d
5
e
6
^o
T
(l^+2IJt,
35.
We are left with the task of rloing the static coding. T^^is deals with
the boxes I to III. We begin with the preliminary enirierations.
1,1
2
The coding of I is obvious:
B.6
C
Ac
C
1^
The coding of 1 1 is also quite simple, we must only observe that
(m + 2i-2)o - (1^ + 21)0 has the same sign as i-I-1. The code follows:
11,1
2
C
B.7
h-
Cr
Ac
(n+ 2i-2)o
Ac
(n + 2i-2)o
(n>+2I)o
problem.
Here e is the position at which v« want the control to finish the
The coding of III is effected mainly after the pattern of Problem 2-
This applies to it inasmuch as it produces v- the additional task of producing
(m + 2i)o is trivial. There is, hoever, this to be noted: In these operations
(m + 2i-2)o '^"st be I'sed to produce (m + 2i-l)o, and (m * 2i)o • Hence the number
Iq is needed. This number mist be stored somewhere. This is not exa(^tlv local
storage, becawse we are not dealing with a transient soace reqt.'iremsnt of III.
It is fixed storage, and we assign to it the position B.8. Hok-' the coding ran be
done as fol lows:
111,1
4
5
6
7
8
9
10
11
12
13
n
15
16
17
18
19
20
21
c
111,3
Sp
m + 2i-2
S.I
s
C
?.8
h
IM,22
Sp
B.8
h
C
s
^.^
R
S.I
X
P.5
h
s.a
S
8.1
R
S.I
X
P.2
h
S.3
S
S.3
R
S.I
X
P.3
S.2
Ac
(n+ 2i-2)<5
III,
3
(m + 2i-2)o
Ac
Wj
s.l
Ac
"1
(ni + 2i-2)o
Ac
(m+ 2i-l)o
Ml,
22
m + 2i-l S
Ac
(m+ 2i)o
(n)+ 2i)o
C
R
d
Ac
duj
Ac
duj ■* e
s.2
diij + e
R
a
Ac
auj
Ac
auj + b
s.3
auj + b
R
au: + b
Ac
Ac
^'1
+ bu
aiR + bu: + c
aiR +
— I —
bU: + C
dU:
36.
[
1,22
m + 2i-l
11,1
S
S ]
c
1 1 1 ,23
We had to use some local storage: s.l-3.
A.2i
We now pass to tfie final enumeration, assigning B.I-8, C ar<j
s.l-3 their actual values, oairing the 27 orders 1 1,1 , 2, 11. 1-3, 111 1,1-22 to 14
words, and then assigning ,1,1 ,..., |l 11,22 their arti'al values. Let these 1 4 words
be 0 to 13, then 8.1-8 may be 14 to 21, C rrey be 22, III., s.l-3 may be 23-25, and we
can put e equal to, sav 26. So we obtain this coded sequence:
0
19 ,
22 S
1
22 ,
20 h-
2
26 Cc,
22
3
3 Sp',
-
4
23 S ,
22
b
2! h ,
13 Sp
6
21 h ,
22 S
7
17 R ,
23 X
8
18 h ,
24 S
9
m R ,
23 X
10
15 h ,
25 S
II
25 R ,
23 X
12
16 h ,
24 -
13
- s ,
i C
14
a
15
b
IB
c
17
d
18
e
19
"b
20
("'+21)0
21
io
22
-
23
-
24
-
25
-
The durations mav bp estina+ed as follows:
I : . 75 u, 1 1 : (2 X 75 - 25) ^i = 125 u-
Ml : ( 12 X 75 - 25 + 3 X 70 + 120) n = 1 ,205 u.
Total: I + II + (II +111) X I = (75+ 125 + (125+ 1,205) I) n =
= (1330 I + 200) ^i•al.3 I m.
d-6 We give now an example of how to code instructions for a critical
readjustment, as mentioned in the second remark in 8.6.
Prrtlerf 4^
TNe variables u, v are stored in certain, given locations. It is
desired to form )^ and to determine its size, in thp following sense: Find the
integer n ( = 0, ± I , + 2, ...) for which 2"'^ g 1^1 < 2", and t!ien form
w = 2"^^ If . This scheme will fail if either u or v is zero, sense w:etlier this
is the case . —
We coijld also require that other things, e.g. tlie number of significant
digits in 'u and v, be determined. But we will not introduce these additional compli-
cations here, they can be handled along the same 1 ines as the main problem.
In our machine u, v =|= 0 imply 2~** ^ | u| ,| v| < I , hence
2-3S < I JL| < 2"^°", hence -38 ^ n g 33 . V,^ will therefore signalize v = Q
with n = 50, and u = 0 (and v^: 0) with n = -50. We will begin the calculation
by sensing whether v = 0 and whether u = 0. This is derided by testing - | v| ^0
and - I u| ^ 0 . If neither is the case, we <lecide whether n is going to be 1 0
or >0 . "This is done bv testing v/hether |u| - |y| < 0, or not. After this we
determine n by two obvious, alternative inductions.
37.
Let u, V be stored at A. 1,2. Since n has t!ie values -38, -37, ..., 39
and -50, 50, we store 2"^*n instead. We store n and 2"" ^ , when thev are formed, at
8.1,2. For II = 0 or V = 0, i.e. when n = -50 or 50, v« wi.ll not form ^, or rather
2"" If. in th-is case, then, tlie content of 8.2 is irrelevant. In anv case, we denote
the content of P. 2 by t.
in searching for n we will need an induction variable i, which will
mcve wer 0, -I, -2, ... to n if we have n ^ 0, and OK/er I, 2, ... to n if we have
n > 0. It is convenient to treat i the satne way as n: Store 2~^^i instead of i.
Since we propose to use distributed storage, we need not enumerate further storage
locations, we are free to introduce tiiem as the need for tliem arises, while we are
drawing the flow diagram.
These indications should suffice to clarify the evolution and the
significance of all parts of the flow diagram shown in Figure 8.2.
The boxes I-XIV require static coding. ?efore we do that, we -nake
three remarks, which embody principles that will apply correspondingly to our future
static coding operations as well. They are the follcwinq:
First: Some additional fixed storage will be required. These are
certain numbers tow^ich specific reference will have to be made, specifically
2"^**50, f",0. We will store them at the positions D.\, 2, 3, respectively.
We will state these expl ictly at the points where they become necessarv, by inter-
rupting the coding colimn there and stating the storage.
Secxyid: Every box coding eitj-ier ends with an unconditional transfer
order (type xC, xC ) or else it involves the assif^ptior that the control goes on
frnm there to a definite position. (Ending with a conditional transfer order ~
type xCc, xCc' ~ presents an intermediate case: We have the first one or the
second one of the two above alternatives according to whether the transfer condition
is or is not fulfilled.) If this latter alternarive is present, tlien this position
(i.e. its Roman box numeral and its number within its box) has to be named at the
end of the box coding , with a reference "to ...".
Third: W will be found convenient to introdrce an extra operation
box, in addition to those mentioned in the flow diagram. The reason is, that two
operations which shoOld be carried out in two operation boxes inmediately preceding
a confhience, can be merged and carried out after the confluence. (The two boxes
in question are XIII, XIV, the new box is XV.)
V*» now proceed to carry oi-t thie static coding of all boxes in one,
continuous operation:
Ac -|v|
Ac 2"^ "-50
B.I 2'^''-50
I.I
A.2
-M
2
11,1
Cc
(to MM)
D.I
2-3«.
50
11,1
0.1
2
BJ
S
3
e
C
111,1
A.I
-M
2
IV, 1
Cc
(ioV.I)
Ac - I u|
38.
FIGURE 8.2
:zi
B.I
2-3=
Cl
2-'u.
2
V
I
E
.1
z'
39.
c
1
£'
■^u.
a
V
3nii
ri^4-
a-'utcC^i
l-»l
■>-<^
e u - V
/\
#
JX
t-i- \-^\.
N''
B.I
%-^^-r^
C.I
E"'^ LL
Z
V
1
* I
L = n
^KD
1
6
1
2
-39
(: +
i)
C-
t
a
2"
-u-
V
B
1
0
C.
1
u
2
2"
'v
1
B,
1
2"
39.
c.
1
u
2
2^
-'V
1
XT
B
1
2"
39
TV
C
1
a
2
2^^
-t
V
1
6
8>^
O to B.I
2''vi-oC.2
II <
•o-» L
IS
# 4^
U -
2" V
4-
12
3ir
la
i,-i->i.
2. ^^rt-otoB-i
z'"-"^ V T»C.2
0 =-n
I '4. ^
\/
*
XIII
t=^""^ toB.2
5
312:
&^
t'^^^.S.Z
®
B
1
2
-39
(l-i)
C
.1
u.
z
2
1,-a
V
5
O
/\
1
B. 1
2
2-59^
t
A.I
UL
39.
IV, 1
D.I
2
B.I
3
e
V,l
A.I
2
C.I
3
A.2
«i
C.2
(toVI.I)
VI, 1
A.I
2
A.2
3
VIM
(toX.I)
D.2
2-39
VII, 1
D.2
2
S.I
3
C.i
4
5
C.I
(to VII 1,1)
yiii,i
C.I
2
c.2
3
IX, 1
(to Xlll.l)
IX, 1
B.I
2
D.2
3
P.I
4
C.I
5
6
C.I
7
VIM,
D.3
0
X,l
0.3
2
B.I
3
C.2
If
5
C.2
(toXI,l)
XI, 1
C.I
2
C.2
3
XIV, 1
(to XII, 1)
XII, 1
&.I
2
D.2
3
B.I
^
C.2
5
6
C.2
7
XI, 1
XIII, 1
C.I
2
C.2
s
c
s
s
M
h-M
Cc
R
S
M
h-M
Cc
h
S
R
S
C
R
S
M
h-M
R
S
C
Ac
3.1
Ac
C.I
Ac
C.2
Ac
Ac
-2-"' -50
,-3 9.
50
u
u
V
V
|u| -lv|
Ac
B.i
2-3 9
Ac
U
Ac
2-^
C.I
2-^u
Ac
l2-!ul
Ac
|2-'nl -
Ac
Ac
B.I
2-39 j
2-^^(1 ^
2-=!^(i *
Ac
2-!u
Ac
2-'-^
C.I
2-'-%i
Ac
0
B.i
0
Ac
V
Ac
2-\
C.2
2-\
Ac
l"l
Ac
|U|- 2'
Ac
Ac
P.I
2-"i
2-^^(i-l)
2:^« i-l)
Ac
Ac
2'-\
C.2
2*-\
Ac
2""u
R
t = 2-"u
Ivl
I)
I)
I-!,
(to XV, I)
>M).
XIV, 1
2
3
C.I
C.2
R
4-
(toXV,l)
XV, 1
2
3
B.2
e
A
S
c
Ac
Ac
R
Ac
B.2
2-^
t = -XjL
jn-i.
t
t
We nc3w proceed to the final enureration. Vfe must
l-XV for this purpose in such a manner, that the indications "to
Any sequence which is made necessary by an indication "to ... " w
a conra, and every sequence which is based on an arbitrary choice
semicolon. In this manner we ray set the following ordering: |,
XI, XII; II; IV; VII, VIII, Xlll; IX; XIV, XV. The ordering is
much as XV should have been the immediate successor of Xlll as we
since only one was possible, we chose XIV. Hence it is necessary
end of Xlll an unconditional transfer order to XV:
order the boxes
. .." are obeyed.
ill be marked by
is marked by a
III, V, VI, X,
imperfect, inas-
11 as of XIV,
to add at the
Xlll, 8
XV, I
It remains for us to assign A. I ,2, B.1,2, C.1,2, D.I-3 their actual
values, to pair the 56 orders 1,1,2, IUI-3, Ml, 1, 2, IV, I -3, V,l-4, Vl,L-3, VI 1, 1-5,
Vt1i,l-3, IX, 1-7, X,l-5, XI, 1-3, XII, 1-7, Xlll, 1-3, XIV, 1-3, XV, 1-3, to 28 words,
and then to assign |,| ,..., XV, 3 their actual values. Tliese assignments afe
sufficiently numercKis to justify making a small table:
1,1-2
0, 0'
XI 1,1-7
9'- !2'
iX.I-7
21 '-2^'
111,1-2
1, 1'
ll>l-3
13- It
HV,l-8
25 -26
V,M
2-3'
IV, 1-3
H*-I5'
XV, 1-3
26'-27'
VI. 1-3
H -5
VII, 1-5
16-18
A. 1-2
28, 29
X,l-5
5'-7'
vm,i-3
I8'-I9'
B.I-2
30, 3)
XI, 1-3
8 -9
Xlll, 1-3
20-21
C.I-2
0.1-3
32, 33
3^-36
Now we obtain this coded sequence:
0
29 -M,
13 Cc
12
33 S,
8 C
24
32
S, ISC'
i
28 -M,
14 Cc'
13
34 ,
30 S
25
32
R
2
28 ,
32 S
It
« C,
34 -
26
33
^, A
3
29 ,
33 S
15
30 S,
e C
27
31
S, e C
H
28 M,
29 h-M
16
35 ,
30 S
28
u
5
16 Co,
36
17
32 ,
R
29
v
6
30 S,
33
18
32 S,
32 H
30
-
7
R,
33 S
19
33 h-M,
21 Cc'
31
-
8
32 M,
33 h-M
20
32 ,
33 ^
32
-
9
25 Cc,
30
21
26 C,
30
33
-
10
35 -h.
305
22
35 h,
30 S
34
2-"' -50
II
33 ,
R
23
32 ,
R
35
2-3<»
36
0
m.
In estimating dtrations, we have to pay attention to some points which
did not come up in Problems 1-3, namely: The flow diagram of Figure 8.2 is never
traversed by the control C in its entirety. The course of C is, instead, dependent
on the behavior of ii, v and n. Specifically, its coirse is as follows:
I, then
for v = 0:
II (end),
for V 4^ 0:
III, then
for 11= 0:
IV (end),
for 11 + O:
V, VI, then
for n > 0:
VII, VIII X n, IX X (n-l), XIII
for n g 0:
X, XI X (-r + 1), XII X (-n), XIV
XV.
The durations of the individual boxes are:
, then
1 :
75 ti
II :
125 \x
III
: 75 M
IV:
125 n
V :
150 u
VI:
125 ^
VII :
180 u
VIII
: 125 u
IX:
255 u
X :
180 n
XI:
125 n
XII :
255 [i
XIII
: 2U5 [i
XIV:
225 u
XV :
105 ti
Hence we have these total dirations;
For V = 0 : 200 Ml = .2 m,
for V 1= 0, u = 0 : 275 ti ss .3 m,
for V + 0, u + 0, n > 0: (380 (n - I ) + 1080 ) u ^ (.4 (n - I )
for vr+ 0, u+ 0, n g O: (380 (-n) + 1060) n ^ (.1 (-n) + I) m.
I)
8.9 It seems appropriate to make at this point a remark on how to
correct errors that are discovered at anv stage of coding, incli'ding the possibility
that they are discovered after the coding has been completed. Together with
correcting actual errors, one should also consider the case where the coding is
proceeding, or has been cone 1 Wed, without farlt, when (for any reason whatever)
a decision is made to apply certain changes. Charges of both types (i.e. either
corrections of actual errors or voluntary transitions from one correct code to
another one) fall clearlv into three classes: Omissions of certain parts of the
coded sequence; insertions at a certain places into a coded sequence; replacement
of a certain part of the coded seqience by another coded sequence (the new having
the same le-gth as the old, or a smaller length, or a greater length). The impor-
tant thing is, of coirse, that it should be possible to effect such modifications,
withoift losing tne result of any of the work done on those parts of the coded
sequence which are not to be modified ~ i.e. withoirt anv necessity to "start all
o/er again" in whole or in part.
There is, of coirse, no problem if the coding has not yet progressed
very far. The dynamic stage, i.e. the flow diagram, is easy to correct: Omissions
can be effected by erasing or crossing out the undesirable region, followed by
"shorting", i.e. taking the track directly from its inrodiate predecessors to its
Imrediate successors. This "shorting" mpy also be achieved by introducing (fixed)
remote connections. Insertions can be effected by drawing the new region separately,
and then detour ing the track to it and back from it. Again fixed remote connections
ray be helpful. Replacerents can be effected by conbininq these two techniques --
provided that simple erasing and redrawing of the affected region is not practical.
42.
Even in the static coding there is no real problem, as long as the stage
of the preliminary enumeration has not been passed. Erasing or crossing out, and re-
writing at the same place or elsewhere, will take care of everything considering the
great flexibility of o(ir methods of (preliminary) enumeration. (Cf. Note I in 7.1^ and
the discussion of the preliminary enimeration in 7.9.)
The difficulties arise only when the final emimsration has already been
achieved, i.e. when the coded sequence has already been formulated in its final form,
or when it has even been put on the magnetic wire or tape. In this case, anv omission,
or insertion, or replacement of any piece by one of different length, may force the
rewriting of considerable portions of the coded seqience, which may lie in any part of
it. Indeed, it will change primarily the physical positions of the words and their
(final) numbers, inasmuch as they lie after the region of the changes. If the change
in length amounts to an odd number of half words (orders), it will even change the left
or right position of all subsequent half words (orders) within their words. Secondarily,
it will change the x in all S(x) everywhere in the coded sequence, v/hich refer to words
or half words whose position was changed primariW.
Let us discuss how changes are effected on a coded sequence that has
been formulated (on paper) in its final enumeration. We will afterwards touch quite
briefly upon the treatment of Changes in a coded sequence which has already reached
the magnetic wire or tape stage. This latter phase can only receive a prel iminary
consideration in this report, since its exact treatment is affected by a number of
engineering details which cannot be taken up here. It will become clear, however,
that the treatment of this problem is in any event possible along essentially the
same lines as the treatment of the first mentioned problem". That one of a coded
sequence formulated (on paper) in its final enumeration.
The best way to deal with this problem is by means of a specific
example. We will use the final coded sequence solving FVoblem H, as given near the
end of 8.8, for this purpose. Our changes Will consist of corrections of actual
errors (we will introduce such errors into that sequence), changes which correspond
to voluntary transitions from one correct code to another one offer clearly no new
problems.
We consider therefore the final coded sequence 0-36 in 8.8. We take
up several hypothetical errors and their correctionsi
first: Assume that by some mistake three orders which do not belong
in this sequence, had been placed into the three half word positions beginning with
the first half of m. They occupy m-15, and our actual orders 14^27' are at l5'-29,
and the storage words 28-36 are at 30-38. All references, or the other hand, are
correct with respect to this positioning. It is desired to remove the erroneous
orders, lU-lb (this is the old notation).
It suffices to replace the order 11 by an unconditional transfer
K 15 C ,
m', 15 may be left standing. After 13' C gets to 14, and does nothing there, but
is immediately transferred to 15', vibere it belongs.
Second: Assume that by some mistake the two orders 6', 7 are missing.
The actual orders 7'-27' are at F,'-26', and the storage words 28-35 are at 27-35.
All references, on the other hand, are correct with respect to this positioning.
H3.
It is desired to insert the missing orders 5', 7 (this is the old notation).
Cnoose a location in the nemorv, where an cniised interval of sirfficient
length begins. This may be the first posit io" follok.;ing the coded sequence in question,
or any other position. We assime fie former, and choose accordingly 3fi (this is the
new notation). We displace the order imediately preceding the missing ones, in the
present case 6, and replarp it by an I'ncondit ional transfer
6 36 C ,
Beginning with 36, we add the remoK/ed order 6 as well as the missing orders 6' , 7 ,
and conclude with an unconditional transfer back to the order itmediately following
upon the missing ones. This gives
36 29 S , 32
37 R , 6 C
(The 32 in order 36 is the new notation for the old 33.) If the sequence contained
any references to 6 (which does not liappen to be the case iere), they have to be
replaced by references to 36.
Third: Assume that certain orders in the c<Jded sequence were
erroneotsly replaced by otiier orders. The mmtier of erroneous orders nay or mav not
be equal to the nu-Tber of the correct orders which they displace. In the latter case
the entire subsequent part of the coded sequence is displaced, birt we assime that at
any rate all references are correct with respect to the actial positioning.
If the correct seqience has the same length as the erroneais one,
we can simply insert it in the place of the latter. If the correct seqience is
shorter, then we insert it, and proceed from there on as in the first case. If the
correct sequence is longer, then we insert as much of it as possible, and proceed
from there on as in the second case. —
It will be clear from the ab(ve, that changing a coded sequence which
13 already on the magnetic wire or tape can be effected according to the same
principles. This requires, of coirse, a device which can ihange single words on the
magnetic wire or tape. We expect, that the main machine itself, as well as the
special typewr iter which produces the magnetic wire or tape under manual control,
will be able to do this. This means, that the desired changes can be effected
either by the main machine, with appropriate instructions, or by the typewriter,
ranuallv. The latter procedure wi 11 probably be preferred in most cases. (Cf. however
Chapter 12 , for a somewhat related situation where the first procedire turns
out to be preferable.)
8.10 Problems 1-4 were of a somewhat artificial character, designed
to illustrate certain salient points of our nethod of coding, but only indirectly
and very incompletely typifying actual mathematical problems. From now on we will
lay a greater stress on the realism of our examples. We will still select them so
that ttey illustrate various important aspects of our coding method, but we will
also consider it important that they should represent actiel and relevant mathe-
ratical problere. Furthermore, we will proceed from typical parts, whifch occir
usually as parts of larger problems, to increasingly completely formulated self-
contained problems.
m.
Vfe begin with a code for the operation of square rooting. This is an
important problem, because our machine is not expected to contain a square rooting
organ, i.e. square rooting is omitted from its list of basic arithmetical operations.
Problem 5.
The variable ti is stored in a given memory location. It is desired to
form V = VTT and to store it in another, given, iTEmory location.
V should be obtained by iterating the operation z -» 5 (z + ^). —
This iterative process can be written as follows:
^i+1 = 2 (^i ■" z^ )' ' ' 0, I, 2, ..., lim z- = w = nr .
Two questions remain: First, what should be the value of the initial
Zfl"? Second, for what i = \q should the iteration stop, i.e. which Zj may be
identified with VIF ? The answers are easy: °
Answer to the first question: Since ws prefer to avoid adjusttients
of size, it is desirable that all numbers with which we deal lie between -I and I.
u will be between -I and I, and it is necessary to have u ^ 0, hence 0 g u < I.
Zj must be between -I and I, and it is desirable to have z■^.i 0, hence 0 ^ Zj < I.
Consequently the only numbers, whose sizes must be watched are ^ and Zj + ^ .
The first requires u < z j , i .e. u < z j < I. The second one may be circurvented, by
forming the desired i (zj + ^ ) 'n this way: 5 (^i + z^) = 2 ( r" " Zj ) + Zj.
Hext clear Iv '
n zj^i - ^ = j_ (zj - ^r .
Hence Zj^^ ^ \/T , i.e. all Zj > \/ir with the possible exception of z^. Choose
therefore Zq ^ yTT, i.e. s/TTg Zq g I. Then all Zj i n/u", and so z-, > u (u < I
implies u < Vu) as desired. Now Zj g Vu" gives Zj ^ ^ , hence Zj 2 Zj+i, and so
I g Zq ^ Zj ^ ... ^ and converging to \/u ,
In choosing Zq we may choose any number that is reliably s VuT The simplest choice
is Zq = I'. This gives z^ = ^ (l+u). Since this expression involves no division,
we might as well begin with i = I and z^ = 5 (I + u).
Answer to the second question: 11 is known to within an error
^1 . 2-36 = 2""°, hercesATis l<nown within -i^CL = _1_ titres this error, i.e.
du 2 Vu"
£„ = 2-^' NAT -' .
45.
For u + 0, as u varies from I to 2~^% e^ varies from 2"*' to 2""'^ ^ .7 x 2"".
For u = C the aljove formula breaks down, however the error is clearly \/2"'°-V0 = 2"'°
We assume u^ 0, since the case u - 0 Is quite harmless. We should
Assume that the last step is the one from
i.e.- eo = 2~'°
stop when Zj I ies within e^, of/u".
|zj^ -^r = 2zi Jzi « -^\ 4 2-'° ,1 z, -VF|£2-'° or.sincez, ., - ^/O"
This means
is negligible compared to Zj -\fu ,\zi
mal<ing a safe overestimate qfves
(**)
^io-^1^2'
,-2 0
.Using z,^ >z^^,,
and
'io- ^ 2-
Using (*), it is easily seen, that (**), or tte equivalent
(-)
Zi -v^i 2"
■19
obtains
fa-
n= 1
if I-
.2-«
^
if 2-^
^ u <
i-2-%
for
'o =
= n
u < I, for io - 2 if 1-2 ^ u < 1-2
if 5"' ^ u ^ 2"\
L = 19 for u = 2^*° or 0.
for
40
Hence for most values of u, specifically for .2 g u < .875 we need 3-H iterations.
Caroer nunfeers \q of iterations are needed when u is small, if u is of the order
2'^^, then Iq lies between j-3 and j-l. It is therefore debatable, whether we
should not adjust u first, by bringing it into the "favorable" range u > .2 by
iterated multiplications with 2^. In or'der to simplify matters, we will not do
this, and operate with u unadjusted, relying on (**) only. The disadvantage thus
incurred is certainly not serious.
This arrangement of the iterative process has the effect, that there
is no need to store the iteration index i (but we will, of course, have to refer, to
i in drawing the flow diagram). Wb store u at A, and v = Vu", when it is formed,
at B. We use distributed storage. In the preceding problems we refrained from
using the storage location, which is reserved for the final result, for changing
storage, too. We will now do this.
in Figure 1.3
The flow diagram should now present no difficulties, it is shewn
FIGURE 8.3
&
2 ,= 2 ( I + U) +o B
n
a A I u.
I
2l*,«^"'f2l+rr)^»B
HI
Z\.*,-ZL + E
%.
Tte
as we did in
coding
M
A
2
C.I
2-'
1,3
C.I
*i
B
(to 11,1)
H.l
A
2
B
3
H
B
5
C.2
—
6
C.2
7
B
8
B
(to 111,1)
111,1
C.2
C.3
n-lO
111,2
C.3
3
e
(to II. 1)
boxes l-lll require static coding. We proceed in the same sense
Problom ^, and we code all boxes in one, continuous operation:
h
S
A
h-
R
S
h
S
h
Cc
Ac
u
Ac
2-^u
Ac
z, = 2" (l+u)
B
Zi
Ac
u
R
h,
Ac
IL
Zi
Ac
^-i
Ac
^i.i-^i = 2-Mz"i
C.2
Zj+i - Zj
Ac
^i+1
B
^i+i
Ac
Zi+i -Zj
Ac
Zi..-Zi.2-"
Zi)
Next, we order the boxes, in the same sense as we did in coding
Problem 4. The ordering I, II. Ill results with one irwerfection : II shotild have
been the inmediate successor of lll» This necessitates an extra order
11,4
11,1
To conclude, we have to assign A, B, C. 1-3 their actual values,
pair the 16 orders 1,1-4, H,l-8» I II, l-H to 8 words, and then assign I, I,..., Ill, H
their actual values. These are expressed in this tablef"
11,1-8
0 - r
2-5"
lll,l-H
A
6-7'
8
B
C.I-3
9
10- 12
Now we obtain this coded sequence:
0
8 ,
R
«
R,
IIS
8
u
1
10 h,
9 S
5
9h,
9S
9
-
2
8 ,
9-
6
II ,
12 h
10
1"
3
A,
9h-
7
e Cc,
.2 C
II
12
h
The durations may be estimated as follows:
I: 130 u , II: 380 n , Ml: 150 u .
Total: I * (II + III) X i^ = (I30+ (380+ 150) io) n =
= (530 io + 130) n ^ (.6 io + .1) m.
As we saw abo/e, a reasonable mean value for i is H. This gives a duration of 2.5 m.
^7.
9.0 CODING OF PROBLEMS DEALING WITh THE DIGITAL CHARACTER OF THE NUMBERS
PROCESSED BY THE MACHINE.
9.1 We will code in this chapter several problens, which fall into
two classes.
first; The conversion of numbers given in the decimal system into
their binary form, and conversely.
Second: The instructions which are necessary to make the machine
work with numbers of frore thani^O binary digits.
These problems are of considerable interest for a variety of reasons,
and it seems worth while to dwell on these somewhat extensively.
We note, to begin with, that both classes of problems furnish examples
of problems and procedures that deviate from the normal schemes of algebra, and hence
differ very relevantly from the problems that we have handled so far. Indeed, up to
new (as well as in all cases that we will consider after this fchapter) the i|0 digit
aggreaate, which is the number contained in a word, was the standard unit which we
manipulated. We applied to such units the elementary operations of anthmetics
(addition, subtraction, multiplication, division), but we never combined them in
any way except through these operations, and we never broke any such unit up into
smaller parts. In the problems of this chapter we will have to break up numbers
into their digits, operate on these diqits (or rather on certain digital aggregates)
individually, combine numbers in new ways, etc.; that is, our operations will be in
many irriportant phases logical and combinatorial rather than algebraically
mathematical .
Next, we have to point out the practical importance of the two
classes of problems to which we havfe referred. The second class can be disposed
of by a simpler discussion than the first one; therefore we will consider the
second class first.
9.2 Our standard nunfcers have i|0 binary digits, or rather a sign
and 39 binary digits; hence they represent a relative precision of 2"^*= 1.8 • 10" ^•
Comparing this to the length of the interval which is available for them (from -1
to I; i.e., length 2), the precision becomes 2'*°= .9 • lO"*''. At any rate, we
have here a precision of about 12 decimals. This is a considerable precision,
and adequate or more than adequate for most problems that are of interest at this
monerrt. Yet there are even now certain exceptions; e.g., the summation of certain
series, the evaluation of certain expressions by recirsion formulae, the integra-
tion of some non-linear (total) differential equations, etc. Furthermore, these
cases, where 12 decirals (or their equivalents) are inadequate, are likely to
become more frequent as "K)re involved computing problems are tackled in the future.
It will therefore becore increasintily difficult to choose an "appropriate" number
of digits for an all-purpose machine, especially since an unusually high number of
of digits (for the standard ninber) would render it very inefficient when it deals
with problens that require ordinary precisions (and these will probably continue
to constitute tte rajority of all applications). This inefficiency would extend
to the use of the available tremory capacity, the amount of equipment tied up in
the parallel digital channels of the machine, and the time required to perform
multiplications and divisions.
48.
Consequently, it is important that the machine should allow being
operated at varying numbers of digits; i.e. at varying levels of digital precision.
One might consider building in alternative facilities for alternative precision
levels, controlled by manual switches, or partly or wholly autorratically. We
prefer, however, to achieve this without any physical changes or extra organs of
the TO binary digit machine. This can be done purely logically; that is, it is
possible to instruct the machine to treat k words; i.e., k aggregates of a sign
and 39 binary digits, as if they were forming a number with a sign of 39 k binary
digits, (k-l signs are wasted in this process.) This increases the precision to
2" ', that is, to 10"^^' ; that is, to any desired level. It does require,
however, new instructions for the operations of arithmetics (addition, subtraction,
multiplication, division), and it cannot fail to reduce the speed and the memory
capacity of the machine. Nevertheless, it is perfectly reasonable as an emergency
measure, when an exceptional problem requires unusual precision.
These new arithmetical instructions are provided by the problenrB
of our second class.
9.3 Our machine will operate in the binary system. This is most
satisfactory from the point of view of its arithmetical and its logical structure,
but it creates certain problems in connection with its practical use.
!ln post cases the input data are given in the decimal system, and
the output figures (the results) are a^so wanted in that system. It is therefore
important to be able to effect the decimal -binary and the binary-decimal conversions
by fast, automatic devices. On the other hand, the use of these devices should be
optional; i.e., the TOchine should be able to receive and to emit data in the binary
system, too. The reasons for this requirement deserve being stated explicitly.
The use of the decimal system is only justifiable for inputs (data)
which originate (directly) in human operations; i.e., where the magnetic wire or
tape that carries them has been produced manually (by typing): and for outputs
(results) which are intended for (direct) human sensing; i.e., where the contents
of the magnetic wire or tape in question are to be Tade readable in the ordinary
sense (by printing). A good deal of the output of the machine is, however,
destined solely for use as subsequent input of the machine ~ in the same problem
or in some later problem. For this material no conversion is needed, since it
need never be moved dit of the binary systetrr. Thus there are, as a matter of
principle, two categories within the information stored on the magnetic wires or
tapes: First, information tha* must pass through human intellects (at its origin
or at its final disposition); second, information that never reaches (directly)
a hunan intellect and remains at all times strictly within the machine cycle.
Only the first category need be transferable to and from the decimal notation;
i.e., only it requires the conversions that we are going to consider. This
circumstance is of great importance rn dealing with these conversions, because
it sets for them much less exigent standards of speed than would be desirable
otherwise.
Indeed, information of the second category may be produced and
cons'jred at a rate which is only limited by the speed of writing on or reading
from the nagnetic wire or tape. This can probably be done at rates of 5C-ICC
thousand digits per second. We may, at least at first, use a more conservative
arrangement of about 25 thousand digits per second. Even this means, for a 40
49.
digit number, and with reasonable time allowances for certain checking featires, etc.,
about 2 tn per nunber. In order that the conversions do not slow down these processes
appreciably, they would have to consume definitely less than 1 m each. Information
of the first category, on the other hand, should not be produced or consumed faster
than the rate corresponding to that of printing, typing, and what is more restrictive,
human "understanding". Our i|0 binary digit nurobers correspond to numbers with about
10 decimal digits. It is difficult to assign a definite printing time to this, since
one may print many digits in parallel. Thus, the standard IBM printer will print 80
decimal digits in somewhat less than a second. Various unconventional processes may
be a good deal faster. On the other hand, typing will hardly ever be faster than 10
decimal digits per second, and any form of human "understanding" (which should be
taken to mean at least critical reading) will be still slower. Even the making of
tables for publication need not exceed this rate, and besides it is likely that the
making of voluminous tables in book fern will becoms less important with the intro-
diction of very high speed machine computing. To the extent to which the machine is
making "tables" for its own use, they fall into the second category; i.e. they should
remain on the wire or tape medium, and never be converted into the decimal system.
Hence, information of the first category can be handled satisfactorily with any con-
version methods that are considerably shorter than a second. An upper limit of 100 m
would seem more than safe.
These considerations show that our subdivision of the input and
output information of the machine into the two categories discussed above Is
indeed relevant, and that it is also important to realize that the desirability
of the conversion applies only to tie first category. These things being under-
sto<id, any conversion times up to ICC m turn out to be adequate.
The machine will easily effect the conversions in question at much
faster rates than this. With small changes In its controls we could even keep
within the 1 m, which would be -desirable if all infori^ation were to be converted,
birt we have seen that this is altogether unnecessary. We will therefore make no
changes at all. The conversion times arrived at in this manner will be of the
order of 5 m.
In order to discuss these, one more preparation is necessary: If
the machine is to effect binary-decimal and decimal-binary conversions, then we
must agree on sore method by which it can store decimal digits; i.e., express
them in a binary notation. This must also be correlated with various characteristics
of the wire or tape inedium: How the decimal information is stored on it, how It can
be put on it by typing, and extracted from it by printing.
Vffe will how proceed to consider these matters.
S.U In discussing typing and printing, one should keep in nind
that, while it is necessary to be able to perform tiiese operations in the decimal
system, it is quite desirable to have the alternative possibilitv of doing them
In the binary system. Since the inner functioning of the machine is binary, ita
extensive use will successively lead to an incre»«inq familiarity with the binary
system, at least as far as those are concerned who are directly engaged in
operating it; making arithretical and other estimates for it; sensing, diagnosing
and correcting its nalfunctions; etc. It is likely that the machine and the
practice and theory of its functioning will produce genuinely binary problems.
It is therefore probable that it will qradually cause, even in the interests of
Its users, a certain amount of a shift from decimal to binary procedures. The
problem cf typing, printing and (human) reading should therefore be faced in the
binary as well as In the decimal system.
50.
Consider, first, the binary case. The machine, as well as the wire or
tape, treats a number as an aggregate of UO binary digits, i.e., digits C or I . To
type in this fashion, and even more to print and to have to read in this fashion,
would be definitely inefficient, since we are already conditioned to recongize and
use about 80 different alphabetic, numerical and punctuation synfcols. A string of
i^C digits is definitely harder to remember and to manipulate than a string of IC
symbols, even if the former are only O's and I's, while the latter may be chosen
freely from IC decimal digits C, ...» 9 or from 26 alphabetic symbols a, ..., 2.
There is, however, an obvious way to circumvent this inconvenience,
i It consists of choosing a saitable k = 1,2, 3, ..., and of typing, printing and
reading not in terms of individual binary digits, but of groups of l< such digits.
This amounts, of course, to using effectively a base 2 system instead of the
base 2 (binary) system, but since the conversions between these two are trivial
to the point of insignificance, and since the machine is binary, this seems a
natural thing to do. Considering our reading habits and conditioning, 2^ should
be of the order of ID to 80; since it is to replace the nurrber IC of decimal digits,
it is preferable to make it of the order of 10. Hence, k = 3 or k = ^ seem the
logical choices.
For k = 3, 2 - 8, we can denote these triads of binary digits by
the decimal digits 0, ..., 7. It is best to let every decimal digit 0, ...,7
correspond to its binary expression (as an integer). This is an advantage. On
the other hand, a printer that is organized in this fasWon would be unable to
print the decimal digits 8, 9, and this is a disadvantage which is unacceptabfe ,
as will appear below.
For k = 4, 2 = 16, we can denote these tetrads of binary digits by
the decimal digits C, ..., 9 and six other syrnbols; e.g., the letters a, ..., f .
It is best to let each decimal digit 0, ..,9 correspond to its binary expression
(as an integer). Each letter a, ..., f ray be treated as if it were the corres-
ponding number in the sequence 10, ..., 15, and then it can be replaced by the
binary expression of that number (as an integer). Thus we have to use the decimal
digits 0, ..., 9 and the letters a, ..., f together, which may be a disadvantage:
This disadvantage, however, is outweighed by the advantage that a printer which is
organized In this fashion can print all decimal digits 0, ..., 9. It can also
print the letters a, ..., f, which are likely to be useful for other indications.
We choose accordingly k = 4. The syiAols that we assign to the
2 = 16 tetrads of binary digits are shown in Table IV.
TABLE IV
ocoo
0
01 (K)
t
1000
8
1100
c
cool
1
0101
5
1001
9
IIOI
d
0010
2
Olio
6
1010
a
IIIO
e
ecu
3
Olll
7
101 1
b
MM
f
51
In actual engineering terms this decision means the following things:
First: The typewriter which is used to produce Information manually
on the wire or tape has 16 keys, marked 0, ..., 9 and a f. If any one of these
keys is depressed, it produces on the wire or tape the corresponding tetrad of binary
digits, as indicated in Table IV.
Second: The printer which is used to convert information on the wire
or tape into readable print, can print 16 syntols, the deciral digits 0, .... 9 and
the letters a, ..., f. It picks up the information on the wire, which is in the
form of binary digits, tetradwise, and upon having sensed any tetrad, it prints the
corresponding synfcol, as indicated in Table IV.
Hence, a W binary digit word, e.g. a full size ntinber, corresponds
to lOtetrids, i.e. to 10 syirbols 0, ..., f; and a 20 binary digit half-wordj £.g.
an order, corresponds to 5 tetrads, i.e. to B-symtwls. Within an order the 12
first binary digits represent the location number x (cf. Table II), and therefore
this X is separately represented by the 3 first tetrads, i.e. synijols.
It is best to allot to every decimally expressed nu ber, too,the
space of one word. This allows for 10 symbols, i.e. for 10 decimal digits.
Since it is desirable, however, to leave space for a sign indication, these are
not all available. The sign could be expressed by one binary digit, but it
seems preferable not to disrupt the grouping in tetrads, and we propose therefore
to devote an entire tetrad to the sign. In addition, it is. desirable to denote
the tifio signs + and - by a tetrad which differs in print from the decimal digits,
i.e. which is printed in our system as a letter. We assign therefore tentatively
the letter a (tetrad ioiC) to + and the letter b (tetrad 101 1) to -. Thus a 4C
bir^ry digit word can express a decimal nurber which consists of a sign and cf 9
decimal digits. It is indicated to assume for the decimal nurtbers, as we did for
the binary ones, that they lie between -I and I, i.e. that tne decimal point
follows inmed lately after the sign.
There is one more thing that need be mentioned in connection with
the use of the sign indication in the decimal notation. Our binary notation
handled negative numbers essentially by taking them modulo 2, i.e. a negative
a " - t a| was written as 2 + a = 2 - | a | = I + (I - |a| ). The first I expressed
the - sign, snd so the digits to the right of the binary point were those of
I - |a| , i.e. the corr.plements of the digits of |a| (with a correction of I in
the extreme right place). (Cf. 5.7 in Part I of this report.) In our decimal
notation it will pro/e more convenient to designate any mutter a (whether negative
or not) by its sign indication followed (to the right of the decimal point) by the
digits of |a| . This is in harmony with the usual notation in print, and it
presents certain advantages in the actual process of conversion (cf. 9.6, 9.7).
9.5 The arithnetical consequences of these conventions are now
easy to forms late.
The machine should be able to deal in two different ways with
nunt»ers that lie between -I and I in terms of 40 binary digit words:
First: In the binary way: Sign digit and 39 binary digits.
52.
Secnnd: In the decimal or rather in the binary-decimal way: Sign
tetrad, which is 1010 for + and 10! I for - (both aggregates to be read as binary
numbers), and 9 decimal digits, each of which is expressed by a tetrad, that is
simply its expression as a binary number.
In order to make this double system of notations effective, we must
provide appropriate instructions for the conversions from each one to the other.
I.e. our problem of conversion is to provide instructions for the binary to binary-
decimal and the binary-decimal to binary conversions. It should be noted that these
conversions take place between two W binary digit aggregates, and they are to be
performed by our purely binary machine.
At this point a question concerning precision presents itself. We
are considering conversions between what is effectively a 9 decimal digit number
and between a 39 binary digit number, i.e. between a number given with the precision
10"^ and a number given with the precision 2"^ ^ = 1.8' 10"^^. The latter is 550
times more precise than the former, is this not a sign of unbalance? We wish to
observe that this is not the case.
Indeed, the first mentioned, lower precision occurs in the decimal
numbers, i.e. in the input (data) and the output (results); while the second
mentioned, higher precision occurs in the binary nunters, i.e. in the intervening
calculations, rience the observed disparity in precisions means only that we carry
in the calculations an excess precision factor of 550, i.e. of slightly less than
3 extra decimals, beyond the precision of the data and the results. Now it is
clearly necessary to carry in any compl icated calculation more decimals than the
data or the results require, in order to keep the accumulation of the round-off
errors down. For a calculation of such a conplexity that justifies the use of a
very high speed electronic computing device, 3 extra decimals will probably not
be excessive from this point of view. They may eve" be inadequate, i.e. it '^y
not.be possible to utilize in the data and the results the full number (9) of
available decimals.
These considerations conclude our preliminary discussion. We add
only one more remark: With the exception of tiie arrangements relative to the
typewriter and the printer (cf. Table IV and the two renarks which follow), we did
not discuss physical features of the machine , but only arbitrary conventions, to
be rsade effective by giving appropriate instructions to the machine. A variety of
other conventions would be equally possible (e.g. different positioning of the
decimal point, higher precision by using more than one word for a decimal and
for a binary number, conversions into and from other systems than the decimal
one, etc.), and could, if desired, be made effective by appropriate instructions.
We are only discussing one example in this chapter, as a prototype, although it
seems to be the simplest and the most immediately and generally useful one.
9.6 We are now in the position to discuss the actual conversion
processes and their coding, Throughout this paragraph and the next one we will
have to use alternately binary and decimal notations. We agree therefore that a
digital sequence with no special markings is to be read decimally, e.g. 987016
or .75102; while one which is overscored is to be read binarily, e.g. ION or
.11001. Thus, e.g. 17* lOOOl, .m= .0010001 1 IIQI ... . In the tetrad
notation of Table IV the two latter binary numbers would read II and .23d ... .
53.
We consider first:
Problem 6.
The number a is stored, in its binary form, at a given nemory location.
It is desired to produce its binary-decimal form a', and to store it at another, given,
memory location. —
According to this a is a binary nunfcer, lying between -I and I. As
pointed out at the end of 9.^, we must first sense the sign of a, and then convert
|a|. |aj lies between 0 and I, and its decimal expansion can be obtained by this
inductive method:
(1) ao= |a|,
(2) aj+i + Zj+i = 10 aj, 0^ aj^i < I, Zj^i « 0, I, ..., 9.
If z* is the sign indication of a, then the decimal expansion of a (cf. the remark
at the end of 9.4) is z*, Zj, z^, .... If we write Zi, z,, ... as (l digit) binary
numbers, then this representation becomes binary-decimal.
= 1010 = 10 for a ^ 0 ,, *
If z* < , then z', Zi, Zj, ..., Zg is a sequence of
1= ion = II for a < 0
to binary digits. Let us view it as a binary number between -I and I, in the sense
of the ordinary corventions of our machine. Since z* begins at any rate with I, it
will be negative, and z* represents the acttal number z**
{
' 1. 010 (binary, modulo 2 ) = -I + 2"' - -I'^'-S for a ^ 0
- T.'OTT (binary, modulo 2 ) = -I ^ 2'* + 2"" - -T^-S for a < 0
It is convenient to introduce
,3 - 1 = -6 for a § 0
Zq ' 2 z** \ " . Zj represents the actual nunter
5 for a < 0
{::
2"^ ^*^'Zj. Hence the binary number that we want to produce is
a' » 2"" Zq + Z"^ Zi + ... + 2"^* Z9 . This can be defined inductively as follows:
(3) a'o. r'-zo , ^oll-ilZlV, '
/ 1 . -4. I «-38 \.» -b for a < 0
(5) a- = a* .
Thic completes our definitions, except that it is more corvenient to write, from
the point of view of our actual arithmetical processes. (2) in this form:
(2') a|+i + Zj+i = 2*(2'^ aj + 2"^ aj), 0 ^ aj^^ < I, Zj+i = 0, 1 9.
54.
This form of (2') means that the addition that is required in (2') is
performed entirely within the range between -I and I, indeed between 0 and I, and
that the split into a "fractional part" aj^.^ and an "integer part" z
-1+1
i.e. the
operation which necessarily requires exceeding that range, is initiated by a multi-
plication by T alone, i.e. by a quadruple left shift. This latter operation, a
fourfold application of the L of Table II, automatically separates the fractional
partand the integer part, referred to above: The former appears in the accumulator,
the latter, multiplied by 2""^^, in the register. At the same time it should be noted,
that (4) involves no true addition, but that if a| is in the register, tiie abo/e
mentioned fourfold application of L of Table II will replace it by 2*a! and will at
the same* time introdice there 2~^®Zj+i , too, thereby forming the desired
al = 2''a! + 2~^^Zj+i . These considerations show, by the way, that it is best to
form the successive values of a] (for i = 0, I, . . . , 9) in the register, and those of
aj in the accumulator. Since the register will not be required for any other purpose,
we will even find it possible to store the successive values of aj in the register,
while additional demands that will have to be made on the accumulator will make it
impossible to do the same with aj and the acciiuulator.
TVie iteration index i might be stored in the form 2~^^i, but it is
somewhat preferable to storp it in the form ^■''^(S-i). (A corresponding trick would
have been equally applicable in coding Problem 3.)
We can now draw the flow diagram, as shown in Figure 9. 1. We note
that the staaqe space indicated for aj, B.I, is actually the register (cf. above),
hence B.I will not appear as such in the coding that follows. As to the final
storage of the result, a', various alternatives are possible, including leaving it
in the register. We put it instead into a definite memory location, and choose for
this B.2.
FIGURE 9.1
K
G^
-t-
a'=-2"*^6 to B.I
IE
B
.1
ao'
Z
3
0.O
^-39
8
nr
->
#
t+i-
3ZII
5 /s /s 6
a' +oB.2
B.i a' = a:
a:=-2' .5 to B.I
8.2 a'
#
L=8
ao=NtoB,2
2-39.8 toS.B
3 V
-x-^
^-®
1+ \l
B.I
a;'
£
o-i
3
2-«(8-
•t)
rr* .. = FRACTIONAL PART OP
-3
(
2^C2-'ac +2.-^0.0
to B.2
*■*' OF 2^(2-'a-, +2-3a0] to B.I
a-=^ (7-1) -to B,3
5
5 '>''
f
B
. 1
CL
1
L+l
Z-
a
Wl
3
2"
39 C7-
L)
+
a
A a
55.
The boxes l-VII require static coding. We carry this out as in the
preceding problenis:
Ac a
2
11,1
C<
(to II
J)
C.I
-r'^-e
tIJ
C.I
R
(to IV
I)
C.2
-r^"-5
111,1
c.2
R
(to IV
,\)
IV, 1
A
M
2
B.2
S
C.3
2^39. g
IV, 3
C.3
^
B.3
S
(to V,
1)
v,i
B.2
2
R
3
B.2
S
•*
R
S
R
6
B.2
h
7
L
8
L
9
L
10
L
II
B.2
12
B.3
0.4
2-39
y,i3
CA
14
B.3
(to Vl,l)
VI, 1
B.3
2
VII,
(toV,l)
yjj.i
2
B.2
3
e
Cc
A
S
c
R
a^ = -2-'" -6
R
ai - -2-^^-5
Ac
B.2
ao = a
ao
Ac
B.3
2^3e.g
2-39. y
Ac
Ac
^a,
B.2
r'-,
Ac
r\
Ac
2-'.: * 2-'a
Ac
R
B.2
Ac
Ac
B.3
Ac
Ac
B.2
'1+1
1+1
'i+i
,-38.
*)
(8-i)
2-^«-(7-i)
2-''-(7-i)
2-'''(7-i)
Next, we order the boxes, as in the preceding problems. The ordering
1,111, IV, V, VII; II; results, with two imperfections: IV, V should have been
irmediate successors of II, VI, respectively. This necessitates two extra orders
11,2
VI, 3
IV, I
V.l
'Cf. the definitions of these quantities in V, Figure 9.1.
56.
We now must assign A, B.2-3, C.I-»* their actual values, pair the 29
orders I . r-2, II. 1-2, ILI ,1, IV, M, V,l-Ht, VI, 1-3, VII, 1-3 to 15 words, and then
assign 1,1 - VI 1,3 their actual values. These are expressed in this table:
1,1-2
0-0'
v,i-m
3'-IO
ili,l
1
VI, 1-3
lO'-ir
IV,l-4
1'- 3
VII, 1-3
12 -13
Now we obtain this coded sequence
0
15 , i3Cc'
8
L ,
16 S
15
a
1
19 R , 15 M
9
17 ,
21 h-
16
-
2
16 S , 20
10
17 S ,
17
17
-
3
17 S , 16
II
12 Cc,
3C'
18
-2-^ ^'6
U
R , I6S
12
A ,
16 S
19
.2-».5
5
R , R
13
eC ,
18 R
20
2-^'-8
6
16 h ,, L
m
1 c.
—
21
2-30
7
L L
11,1-2
I3'-I*
A
15
B.2-3
16 -17
C.I-*'
18-21
The durations mav be estimated as follows:
i: 75n, II: 75y, IH: 50^; IV: 150 ^, V: 285 u, VI: 125 u, VII: 105 n.
Total : I + 0 1 or III ) + IV + (V + VI) X 9 + VM -
= (75 + 75 + 150 + (385 + 125) x 9 + 105) ^i = W95 n » 5 m .
9.7 We consider next:
Problem 7.
The nunber a' is stored, in its binary-decimal fcrm, at a given memory
location. It is desired to produce its binary form a, and to store it at another,
given, nemory location. —
According to this a' is a bin^y-decimal nmter, lying between -I and
I. At pointed out at the end of 9.^, we ranst first sense the sign of a', which is
determined by the digits Ml frora the left, and then convert la' I , which is directly
given by the reminlng digits 540 from the left. | a'|
binary expansion can be obtained as follows:
1 ies between 0 and I and its
The digits Hi+I to li+H from the left in| a'| , i.e. in a' (cf. above),
are the binary expression of the decimal digit Wj, which is digit i from the left in
the decimal expansion of a' (i ° i, ..., 9). Hence we have the equation
I a'l •= s'.t IQT' Wj. which may be interpreted as a relation that is valid in the
binarv system. Hence it is better to write it 1 ike this: | a | = Sj^j lOr' W| .
Considering the precise definition of the operation L, the digits
m+l to m+l (fro« the l«ft) of a' can be enate to appear as the digits 37-"lO (from
the left) in the register, if a' is placed into the accumulator and subjected ir
m+3 opera-^ions L. If we treat a' as if it were a binary nui^r, this arri .its to
performing theae operations:
57.
(I) a^ + w* = 2^a', 0< a^ < I, w* = 0, I, ..., 7,
(2) •1+1* ^l+i = 2*aj' Og a! ^ < I, Wj^^ = 0, 1 15.
w* will correspond to the last three digits of the sign tetrad, i.e.,
OTO = 2 or Oil = 3, according to whether the nudser represented by a' (in its
binary-decimal interpretation) is g 0 or < 0. It Is, however, simpier to get the
sign indication from a' itself: If a' is interpreted as a binary number, then
we have
= nolo ... *) < I r?^, M = .1 + 0-2 . 0-3 * _o-».
1. 01 1 *) = -I + 2 + 2" * -2 '5
= I. Oil ... *) ^
according to whether the nunter represented by a' (in its binary-decimal interpretation)
is ^ 0 or < 0. That is, this sign is the opposite of the sign of a' + 2" '5 in its
binary interpretation.
Wj, ..., Wg appear always as digits 37-40 (from the left) in the
register; i.e., actually as the nunfcers 2~^'wi, ..., T^\g. It is therefore
preferable to write the equation |al = 2*=i 10"' Wj in this form:
|a| = 2'=i 10"' 2 ^^•2"^' Wj. In order to concentrate the divisions in one place
we write | a| = (2j=i 10^"' • 2"**^ Wj) : 2"^' IQ^ This can be stated inductively
as follows:
(3) a, = 2-="'w,
(4) aj^, = 10 aj + 2"^" Wj^,
(5) a = a, : r'" \(f .
In fine a obtains from 1 a| by noting that the sign of a is the
opposite of the sign of a' + f^'5 (binary interpretation, cf . above).
Again, 10 aj is best formed as 2*^ aj + 2 aj.
We can now draw the flow diagram, as shown in Figire 9.2. The
induction index i can be treated as in the preceding problem.
The special use of the register whi<)h was made in Problem 6 is not
possible here: aj has to be in the accumulator, since we wafct to form the fractional
and integer parts of 2* a!, and the operation L will only effect such things if we
start from the accumulator; aj has to go through the accumulator, since we have to
form true •oms (with carries) like 2^ aj + 2 aj; and neither can occupy the accu-
mulator continuously, since the accumulator is needed alternately for both as well
as for the sensing in connection with conditional transfer orders. There are,
however, certain storage functi«r«, which are best handled by the accumulator or
register, in a manner not made explicit in the flow diagram. Tnus 2~^''"(7-i) is
best stored in the accumulator as well as in B.3 before the use in 111; |a| is
best stored in the register after IV, and the nnove of a to B.2 is only made
subsequently in VI and in VII.
*) Binary, reduced modulo 2 into the interval -1,1.
58.
FIGURE 9.2
©-^
O-o' =Fff ACTIONAL PART OF S a to B , I
to B.E
8 to B . 3
ao = O
2
■^
B.i
a
3
Q-o'
2-^^ 8
1
2\/
#
0-»L
L^
B
.1
ai'
a
a-v
3
2-3'(6-
■l)
to B. I
= 2'aL + a a; + 2'^®. C INTEGER psp-r
to B.a
+o B . 3
2-^^(7-1)
ISE
B.a a.
H \^
1 *
|a| = ag:^''^lo^t»B.^
^ i
1=8
/\
HI
+
a-'^(7-l)
B.I a.^,
3 £-^'(7-1)
a' A
L
59.
The boxes. I-VII require static coding. We carry this out as in the
preceding problems:
M
A
2
3
4
5
B.I
C.I
0
J, 6
C.I
7
B.2
C.2
2-3«.8
!.8
C.2
9
8.3
(to 11,1)
II. 1
B.I
2
3
H
5
6
B.t
•
7
8
s.l
9
B.2
10
l\
12
B.2
13
14
s.l
15
6.2
16
B.3
C-3
2-3«
11,17
C.3
18
B.3
(to m.i)
ill,!
IM
(to IV, 1)
IV, 1
B.2
C.H
2-" l(
1V,2
CA
(toV.I)
V,i
A
C.5
2r'-b
V,2
c.5
3
VII, 1
(toVI.I)
L
L
L
S
L
L
L
L
S
A
S
L
L
h
L
h
S
h-
S
Cc
Ac
Ac
B.I
Ac
B.2
0
0
Ac
B.3
2^6.8
2-=>«.8
Ac
R
a! *
1+1 '
2-^^Wi,,
B.I
a I
1+1
Ac
2-^^w„,
s.l
Ac
2"^i+i
^i
Ac
Ac
2'«i
fa\ + aj
Ac
2^aj + 2ai
Ac
8.2
Ac
ai.i n
a|+i
2-^' -(8-!)
Ac
B.3
2-^».(7-i)
2^''-(7-i)
*)
Ac
a«
R
[a| = a«: 2
Ac
a'
Ac
a' + r''5
\(f
h
Cc
•) Cf. the definitions of these quantities in I, M, Figirfe 9.2, and in (l) - (5).
60.
VI, I
(to vim)
VIM
A
2
B.2
S
3
B.2
-
H
B.2
S
5
e
c
Ac
a=»
Ac
lal
B.2
|a|
Ac
a =
B.2
a
Next, we order the boxes, as in the preceding prd^ierrs. The ordering
I, II, ill, IV, V, VI; VII results, with one imperfection, VI 1 .4 should have been
the immediate successor of VI. This, necessitates one extra order
VI, 2
V||,(;
Vfe must now 'assign A, P. 1-3, C.I-5, s.l their actual values, pair
the HO orders 1,1-9. Il ,1-18, 111,1, IV, 1,2, V,l-3, VI, 1-2, VII, 1-5 to 20 words,
and then assign 1,1 - VII, 5 their actual values. We wish to do this as a continua-
tion of the code of 9.6. We will therefore begin with the nunfcer 22. Furthermore
the contents of C.2,^ coincide with those of 20, 21 in the code of 9.6, and the
contents of B.I-3 and of s.l are irrelevant like those of |6, 17 there. Hence
two of these ray be made to coincide with 16, 17. Also a is in 15 and a' is
produced in 16 there, while we have now a' in A and produce a in B.2. Hence, we
identify our A, B.I ,2 with 16, 17, 15 there. Summing all these things up, we obtain
the following table:
1,1-9
22- 26
VI, 1-2
38'- 39
B.3
42
n,i-i8
26'- 3&
VI 1,1-5
39'-m'
C.I
H3
111,1
35'
A
16
C.2-3
20-21
ly, 1-2
36-36'
B.I
17
C.i^-5
>W-45
V,l-3
37-38
B.2
15
s.l
%
Now we obtain this coded sequence:
22
16 , L
23
L, L
24
I7S , H8
2b
15 S , 20
26
«C S , 17
27
L , L
28
L , L
29
17 S , A
30
M6 S
15
31
L
L
32
15 h
L
33
JP6 h
15 S
3H
42
21 h-
35
42 S
36 Cc
36
15
44^
37
16
MS h
38
41 Cc, A
39
m C , A
40
15 S , 15 -
41
15 S , e C
42
_ _ —
43
0
4H
2-3a ,o»
45
2"^ -5
46
_ _ _ .
The durations may be estimated as follows:
I: 290 [i, II; 515 \i, III*. 50 n, IV: 195 n,_ V: 125 \x, VI: 55 \i, VII: 180 u.
Total: I + (M + IM)x 9 + |V + V + ((VI + VII 4,5) or VII) =
= (290 +(515 + 50) X 9 + 195 + 125 + 180) n = 5,875 [i^b,9 m.
We may summarize the results of 9.6 and 9.7 as follows:
61.
The binary-decimal and the decimal -binary conversions can be provided
for by instructions which require 47 words, i.e. I. \% of the total (selectron) memory
capacity of 4,0S6 words. These conversions last 5 m and 5.9 m, respectively. This
is short compared to the 100 m which, as was slKwn in 9.3, is a reasonable standard
for conversion durations.
9.8 We proceed now to the problems of the second class referred to
in 9.1 and 9.2: The problems that arise when we undertake to operate the machine in
such a manner, that it deals effectively with fiunt>ers of TWre than tO binary digits.
There are various ways to deal with this situation, and it is actually
advisable to study every problem which requires more than normal (40 binary digit)
precision as an individual case: The most efficient way to keep track of numerical
effects beyond the 40 binary digit limit may vary considerably from case to case.
On the other hand, our interest is at present more in giving examples of our methods
of coding in typical situations, than in devising particularly efficient ways to
handle cases that require more than normal precision. We will therefore restrict
our discussion to the most straightforward procedure, although more flexibility and
speed could probably be secured in many actual instances by different schemes.
The procedure to which we alluded is that described in 9.2: By using
k words to express a number, we obtain numbers with (a sign artd) 39 k binary digits.
We will actually restrict ourselves to the case of k = 2: Two words oer number of
(a sign and) 78 binary digits. In this way the precision becomes 2~'°= 3.3 • 10"^*,
or (considering that the length of the available interval -I, I is 2) 2"^^= 1.6 * 10"^
We will store every number in two successive words: The first word
contains the sign of the number in question and its diqits 1-39 (from the left);
in the second word we put the sign digit equal to zero, and then let the digits
40-78 (from the left) of the nurfcer follow.
The operations which have to be discussed are the four basic operations
of arithmetics: Addition, subtraction, multiplication, div'isior.
Let us consider addition and subtraction first:
Pmbiem 8.
The (double precision) numbers a, b are stored in two given pairs of
memory locations. Form a + b (also double precision) and store it at another given,
pair of memory locations. —
Let a be stored at A. 1,2, b at A. 3, 4, and direct a + b, when formed,
back to A. 1,2. Denote the first and the second parts of a,b, a+b by a, B, a + b
and f, "b, a + b, respectively.
It is easily seen that
(I) a + b = a ±h + e <
where e is the sign digit of a + b,
0-3 9
(2) a + b = a + b + 2"
e
62.
It should be remembered, of course, that all these relations must be interpreted
modulo 2, and that the positional vajue of the sign digit is 2°. Since a, IB have"
the sign digit 0, a sign digit I in a + E is equivalent to a carry from digit 40
to digit 39 (from tte left).
We can now draw the flow diagram, as shown in Figure 9.3. It is
convenient to carry otrt some storage functions in a manner not made explicit in
the flow diagram. Thus a + b is best formed and moved into A. 2 already in the
course of II and III, and while a + b is built up in the accimulator in the
course of IV, the ground for this can be effectively prepared (in the accumulator)
towards the end of II and III. These arrangements have the effect, that neither
B.I nor 9.2 is actually required, both represent storage effected at appropriate
times in the accumulator.
FIGURE 9.3
isz:
aib=Q± b ±2''e t, A.I
a±E=a±b+e -feA.s
3
<i)
A.I
Cib
a±b
a,a, b, b
A.3
b
b
63.
The static coding of the boxes l-IV follows. Those orders which depend
on the alternative + , are marked ^ in their + form and ^^ in their - form.
I-I
A.2
2 ^'
A.H
h
2 #
A.H
h-
3
lll-l
Cc
(to 11,1)
C.I
-1
IM
C.I
h-
2
A.2
S
C.2
2-39
11,3 ^
C.2
3 0
C.2
-
(to IV, 1)
111,1
A.2
s
C,3
0
111,2
0,3
(to IV,I )
IV, 1
A.I
h
2 ^
2 #
3
4
A.3
A. 3
A.I
e
h
h-
S
C
Ac
a
Ac
i.=B
Ac
l-'b
Ac
ai b *)
A.2
a + b
Ac
2-39^ = r='
Ac
-2-'\ = -2-''
A.2
a±¥ *)
Ac
0
Ac
lt2-'\
Ac
a + b •)
Ac
a - b •)
A.!
a + b
The ordering of the boxes is I, II, IV; III, and IV must also be the
immediate successor of 1 1 1 . This necessitates the extra order
111,3
IV.
We must now assign A. 1-1, C. 1-3, their actual values, pair the 13
orders 1,1-3, 11,1-3, 111,1-3, IV, 1-4 to 7 words, and then assign |,| - IV. 4 their
actual values. These are expressed in this table:
1,1-3
0 - 1
IV, 1-14 3 -It'
A.
1-4
7 - 10
II, 1-3
l'-2'
Now we
ob1
111,1-3 5-6
tain this coded sequence:
C.
1-3
II- 13
0^8
10 h
3 ? 7 h , 9 h
8
a
0 ^> 8
10 h-
3 ^> 7 h , 9 h-
9
I
1 5 Cc
2 >■ 8 S
2 # 8 S
11 h-
12
12 -
^ 7 S , e C
5 8 S , 13
6 3 C , - -
7 S
10
II
12
13
b
-1
2-3 6
0
*) Cf. the definitions of these quantities in IV, Figure 9.3
64.
If both variants (+ and -) are to be stored in the memory (which Is
likely to be the case, if they are needed at all), their 7-13 can be conmon. Indeed
I 1-13 are 1 ikely to occir in other coded sequences, too. So the two variants are
likely to require together 18 to 21 words.
The durations may be estimated as follows:
I: 125 n, II: 125 n, III: 125 n, IV: 150 u-
Total : I + (I I or III) + IV = ( 125 + 125 +■ I5C^ n = HOO n = .4 m.
To sum up:
The double precision addition and subtraction can be provided for by
instructions which require 18 to 21 words, i.e. about h% of the total (selectron)
memory capacity. The operations last 400 |i = .4 m each.
These sequences are comparable to A.I, A. 3 h (or A. 3 h-), A. I S in
the case of ordinary precision, which consume 125 |i. Thus the double precision
slows addition and subtraction by a factor 3.2. The factor is actually slightly
higher, because the double precision system, as described above, is less flexible
than the ordinary one. However, as mentioned previously, there are various ad
hoc methods to increase its flexibility, but we do not propose to discuss them here.
9.9 Vfe consider now the multiplication:
Problem 9.
The (double precision) numbers a, b are stored in two given pairs of
memory locations. Form ab (also double precision) and store it at another, also
given, memory location. —
As in 9.8, let a be stored at A. 1,2, b at A. 3,4. It is more convenient
to direct ab, when formed, tq_A. 3,4. Denote again the first and the second parts of
a, b, ab by a,"b, iB and a, "b, aB, respectively.
The multiplication order (II, Table II) njltiplies two 39 digit
quantities u, v by forming a 78 digit product uv. The sign and the digits 1-39
are formed in the accumulator, while the digits 40-78 (with_a sign digit 0) are
formed in the register. These are, of course, the uv and uv respectively, as we
def inen them above. They are, however, subject to a subsequent (round off)
modification, as described in, and discussed in connect ion with, the multiplication
order referred to abcwe. We denote therefore the actual contents of the accimu-
lator and of the register by u^ and by ^. n0 is, of course, the quantity which
we denoted by uv in all past discussions (as well as in all future discussions,
outside this paragraph), the predict rounded to 39 digits, stored in the accumu-
lator. Now, haw|ver, it is necessary to be more precise, and to discriminate
between uv, ijv, uv.
It is clear, that ab is essentially ab, and that aH is essentially
a B + a b + ab. The only things that these expressions do not account for, are
the carries in ab from digit 40 to digit 39. It is easily seen, that these, too,
are completely accounted for by the following formulae:
65.
(1)
(2)
(3)
(4)
(5)
(6)
u = ab + ei ,
where ei is the sign digit of Jo ,
V = a
where e, is the sign digit of IE ,
W = U + V + 63 ,
where eg is the sign digit of 11 + v,
z = fl + e* , ^
where £4 is the sign digit of a ^ ,
a°°B = w + z + Eg ,
where e^ is the sign digit of w + ^ ,
a~B =!["&+ T^° (-6^ -tj +63 -64 +65) .
It should again be remembered, that all tnese relations must be interpreted
modulo 2, and that the positional value of a sign digit is 2°.
We can now draw the flow diagram, as shown in Figure S.^. There
will again be some transient storage in the accinulator , as well as in A. 3, 4.
Since we have discussed similar situations in previous FVoblems, we need not
go now into this more fully.
The static coding of the boxes I -XV I f 0I lows ■ There will be one
deviation from the scheme indicated in Figure 9.^^ fo is formed in X, hence
at the samg time "5"^ becomes avai lable. Si nee To will be needed in XVI , we
will store it after X. Since E occupying A. 3 is needed after X solely for the
purpose of forming Id, we can remwe "6, and store a d in A. 3.
i.l
A.I
R
2
A.i^
X
3
IM
Cc
(to 111,1)
11,1
A.4
S
C.I
0
11,2
C.I
3
B
s
(to IV, 1)
C.2
-1
lll.l
C.2
h-
2
A. 4
S
C.3
r**
111,3
c.3
-
H
B
s
(to IV, 1)
IV, 1
A.2
R
2
A.3
X
3
v,i
Cc
(toVI.I)
V.l
kA
h
2
A. 4
S
(to VIM)
R
Ac
A. 4
Ac
0
B
0
Ac
u = a't + 1
A. 4
u
Ac
.2-39
B
_2-^»
R
Ac
h
Ac
— — ^
u+v=u+a E
A.4
u + v
66.
FIGURE 9.H
X I
o
1
A.
3
b
4-
b
B
—
ab
toB
A.3
b
l-l-
3
u.
2 N' /
IK
u = a b + 1 -toA.H-
2 /\
)
^— OC
zsr a '\
2
«) — >■
©
ab
u.+v = u,+ab toA.H-
A.3
b
u
a-i-v
B
s"'"(-s-ea'^
3ZI
u--(-v =u. -t-ab -+- ( +6 A.J+
3
3 A
/
3
3z:
sn: 3
(£>^
u + v
UJ = U.4- V
tc A.4-
39/
2 ■ ^ C- =, -Ea + Sg^ = S^^^C-E -f g-) t6 B
A.3 b
^^'
IX
r
->-
^
U; = U- + V4. 1 to A.M-
31
(2>
M-
X 4- /^
ab
UJ + z = lu + ab
+c A.^
2'^'C-E,-ffa-i-e3-^M-)= a T-E-.-^a-^fa^toB
5 Y /
A.3 b
XII
r
aj-«--z = uj-t-ab+l +0 A.14
o
TTV
(I>
5
xm 5/f
+
ab = UJ + -2. to ^.4-
xsc
\/
Cx,b =a)+Z.+l +0 A.4-
/S
^-O
&
6
XVT
-39
cub = ab + a" C-ei-ea+Eg-e^^ + es") to a. 3
7
1
A.3
B
ab
■o
a , a , b, b
A .1
a
a.
A
.3
ab
M-
Ob
67.
Vl,l
A.H
h
2
C.2
h-
3
A.i^
S
4
C.3
-
5
B
h
6
(to VII, 1)
B
S
VII, 1
2
(to IX, 1)
VIII
(toX,l)
IX, 1
2
3
A. 4
VIII, 1
C.2
KM
C.3
Cc
h-
S
4
B
h
5
(toX,l)
B
S
x,i
A.I
R
2
A.3
X
3
A. 3
S
^
5
(to XII, 1)
XI, 1
2
(to XIII, 1)
XII, 1
XI, 1
A.4
A. 4
A^'
A
Oc
h
S
h
2
0.2
h-
3
kA
S
4
C.3
-
5
8
h
6
(to Xltl,l)
B
S
XIII, 1
2
(toXV,!)
A. 4
XIV. I
Cc
XiV
(to XVI, 1)
— — —
XV, 1
2
3
C.2
A. 4
0.3
h-
S
4
B
h
5
B
S
(to XVI, 1)
Ac
Ac
A. 4
Ac
Ac
6
Ac
Ac
A. 4
Ac
Ac
B
R
Ac
R
A.S
Ac
Ac
A.H
Ac
Ac
A.i;
Ac
Ac
B
Ac
Ac
A.U
Ac
Ac
Ac
u + a
u + V = u + Id +
u + V
2-='^-e,) -2-"
u + V
w
w
u + V + I
i
f%
n
n
w+z=w+ai
w + z
w + ao
w + z = w + Id +
w + z
2-'*'(-€, -6, -63) -2-''
0-3 8 / ^ \ «v-3 O
2 (-61-62 +63) rT
w + z
T^ = w + z + I
2-3»
2^"(-ei -62 +63 -€4) +2"'
2"^" (-61 -62 -^Ca -eJ+2"^''
68.
XVI,
3
^
A.3
B
A.3
e
S
C
Ac
Ac
A.3
n
a~B * aD +
rb
+2' (-ei -€2 +€3 -£4 +65)
Note, that the boxes VIM and XIV required no coding, hence their
inmediate successors (X,l and XVI, I) must follow directly upon their irmediate
predecessors. However, these two boxes have actually no immediate predecessors,
VMM and XIV, I appear in the Cc orders VII, 2 and XI 11,2. Hence they must be
replaced there by X,l and XVI, I .
The ordering of the boxes is t. III, IV, VI, VII, IX, X, XII, XMI, XV
XVI; II; V; XI (VIM and XIV omitted, cf. abovej, and IV, VII, XIII must also be
the immediate successors of II,' V, XI, respectively. This necessitates the extra
orders
11,1^
IV, 1
Cc
V,3
VII, 1
Cc
Xi,3
XIII, 1
Cr
We must now assign A. 1-1, B, C. 1-3 their actual values, pair the 55
orders 1,1-3, 1 1,1-4,; 1 1 IJ-H , IV, 1-3, V, 1-3, VI, 1-6, VI 1, 1-2, IX, 1-5, X, 1-5,
XI, 1-3, XII, 1-6, XIII, 1-2, XV, 1-5, XVI, 1-4 to 28 words, and then assign |,1 - XVI, 4
their actual values. These are expressed in t^is table:
1,1-3
0- 1
IX, 1-5
9 - II
11,1-4
22'-2H
111,1-4
!'- 3
X,l-5
Il'-I3'
v,l-3
24' -25'
IV,i-3
3'-4'
XI 1,1-6
14 -16'
XI, 1-3
26-27
VI, 1-6
5- 7'
XI II, 1-2
17 -17'
A.iJ+
28 - 31
VI 1,1-2
8-8'
XV, 1-5
18-20
B
32
XVI, 1-4
20' -22
C.I-3
33 - 35
Now we obtain this coded sequence;
0
28 R ,
31 X
12
30x
30 S
24
3 Cc',
31 h
1
22 Cc'
, 34 h-
13
A
26 Cc
25
31 S ,
8 Cc
2
31 S ,
35 -
14
31 h
34 h-
26
31 h ,
31 S
3
32 S ,
29 R
15
31 S
35 -
27
17 Cc ,
- -
4
30 X ,
24 Cc'
16
32 h
32 S
28
a
5
31 h ,
34 h-
17
31
20 Cc'
29
a
6
31 S ,
35-
18
34 h-
31 S
30
B
7
32 h ,
32 S
19
35
32 h
31
1
8
31 ,
II Cc'
20
32 S
30
32
-
9
34 h-.
31 S
21
32 h
30 S
33
0
!0
35 ,
32 h
22
eC
31 S
34
-1
II
32 S ,
28 R
23
33
32 S
35
2-39
It is likely that this will be stored in the memory together with the
two variants (+ and -) of Problem 8. Hence 28.-31, 33-35 of this code can be comnon
with 7-10, 13, M, 12, respectively, in the code of that problem. Also, 32 is
likely to occur in other coded sequences, too. So this problem is likely to require
23 or 29 additional words.
69.
The durations may be estimated as follows:
I: 19b u, II: 150 u, Ml: 150 u, IV: 195 u, V: 125 ^, VI: 225 [x, VII: 75 u,
IX: 200 n, X: 250 n, XI: 125 u, XII: 225 n, XIII: 75 u, XV: 200 n, XVI: 150 tx.
Total: I + (11 or III) + IV + (V or Vl)+ VII + (nothing or IX) + X +
+ (XI or XII) + XIII + (nothing or XV) + XVI
average = ( 195 + 150+ 195 + 175 + 7b + 100 + 250 + 175 + 75 +
+ too + 150) ^ = !,6i«) n = 1.6 m.
To sum up:
The double precision multiplication can be prwided for by instructions
which require 28 or 29 words in addition to those required by Problem 8 (double precision
addition and subtraction) i.e. about an additional .7% of the total (selectron) memory
capacity. The operation lasts l,6*M) ti«=*l.6 m.
This sequence is comparable to A. I R, A. 3 x, A. 3 S in the case of
ordinary precision, which consiimg 195 n. Thus the double precision slows multipli-
cation by a factor 8.4. In contrast with the situation described in connection with
the double precision addition and subtraction (cf. the end of 9.8), there is probably
no significant loss of flexibility involved in the present case.
9.10 Division offers no particular difficulties. In orderto obtain a
doifcle precision quotient of a (represented by §, 1) by b (represented by b, d) one may
first "approximate" the desired double precision qiiotiertt q = ^ , by forming the
— b
ordinary precision quotient qo = ■*- , and then refine the result by any one of several
b
well known methods. The availability of double precision addition, subtraction, and
multiplication makes these matters quite simple. We do not propose, however, to go
now further into this subject.
We may sumnarize the results of 9.8 and 9.9 as follows:
Double precision arithmetics, comprising addition, subtraction and
multiplication, can be provided for by instructions which require H6 to 50 words,
i.e. 1.2% of the total (selectron) rnetnory capacity. Due to these changes addition
and subtraction are slowed by a factor 3.2 and multiplication by a factor 8.4, in
comparison to ordinary precision operations. Furthermore there is a certain loss
in the flexibility of the Bse of the two first mentioned operations. It seems
therefore reasonable to expect an o/erall, average slowing by a factor between
6 and 8 in comparison to ordinary precision operations.
PLANNING AND CODING OF PROBLEMS
FOR AN
. ELECTRONIC COMPUTING INSTRUMENT
By
Herman H. Goldstine John von Neumann
Report on the Mathematical and Logical Aspects of an
Electronic Computing
Instrument
Part II, Volume II
The Institute for Advanced Study
Princeton, New Jersey
1948
PREFACE
This report was prepared in accordance with the terms of
Contract No. W-36-034-OPD-748] between the Research and
Development Service, U. S. Army Ordnance Department and
The Institute for Advanced Study. It is a continuation
of our earlier report entitled, Planning and Coding of
Problems for an Electronic Computing Instrument", and it
constitutes Volume II of Part II of the sequence of our
reports on the electronic computer. Volume III of Part
II will follow within a few months.
Herman H. Goldstine
John von Neumann
The Institute for Advanced Study
15 April 19it8
TABLE OF CONTENTS
Page
PREFACE
INTRODUCTORY REMARK
10.0 CODING OF SOME SIMPLE ANALYTICAL PROBLEMS 1
10.1 General Remarks. 1
10.2 Numerical integration methods. 1
10.3 Problem 10: First integration method.
(Simpson's formula) 3
10.4 Problem 11: Second integration method. 8
10.5 Problem 12: Lagrange's interpolation
formula. 14
10.6 Problem 13: Complete interpolation schemes
(13. a and 13. b). 25
10.7 Problem 13. a: Equidistant interpolation 25
10.8 Problem 13. b: Non-equidistant interpolation. 34
10.9 Problem 13 c: Same as Problem 13. b, but
storage of data differently arranged. 42
11.0 CODING OF SOME COMBINATORIAL (SORTING) PROBLEMS 49
11.1 General Remarks. 49
11.2 Definitions. Meshing and Sorting.
(Problems i4 and 15) 49
11.3 Problem 1^: Meshing. 50
11.4 Problem 15: Sorting based on meshing. 56
11.5 Summary and evaluation. 66
INTRODUCTORY REMARK
We found it convenient to make some minor changes in the positioning of
the parts of all orders of Table II, and in the specific effect of two among them.
First: We determine that in each order of Table II the memory position
number x occupies not the 12 left-hand digits (cf. the second remark of 7.2, cf. also
8.2), but the 12 right-hand digits. I.e. the digits 9 to 20 or 29 to 40 (from the
left) for a left-hand or a right-hand order, respectively.
Second: We chstnge the orders 18, 19 (the partial substitution orders xSp,
xSp ), so that they substitute these new positions, and these crosswise. I.e. 18
replaces the 12 right-hand digits of the left-hand order located at x (i.e. the digits
9 to 20 [from the left]) by the 12 digits 29 to 40 (from the left) in the accumulator.
Similarly 19 replaces the 12 right-hand digits of the right-hand order located at x
(i.e. the digits 29 to 40 [from the left]) by the 12 digits 9 to 20 (from the left)
in the accumulator.
For the staindard fcrm of a jxisition mark, x = 2"^®x ■*" 2"^®x, as intro-
duced in 8.2, these changes compensate each other and have no effect. Therefore all
the uses that we made so far of these orders are unaffected.
On the other h<ind the new arrangement permits certain arithmetical uses
of these orders, i.e. uses when the position x is not occupied by orders at all, but
when it is used as (transient) storage for numbers. In this case the new arrangement
provides very convenient 20-digit shifts, as well as certain other manipulations.
These things will appear in more detail in the discussion immediately preceding the
static coding in 10.7.
10.0 CODING OF SOME SIMPLE ANALYTICAL PROBLEMS
10.1 We will code in this chapter two problems which are typical
constituents of emalytical problems, and in which the apprcrcimation character of
numerical procedures is particularly emphasized. This is the process of numerical
integration and the process of interpolation , both for a tabulated one-variable
function. Both problems allow a considerable number of variants, and we will, of
course, make no attempt to exhaust these. We will nevertheless vary the formulations
somewhat, and discuss an actual total of six specific problems.
10.2 We consider first the integration problem.
We assume that an integral / f(z)dz is wanted, where the function f(z)
is defined in the z-interval 0, 1, and assumes values within the range of our machine,
i.e., size < 1. Actually f(z) will be supposed to be given at N+1 equidistant places
in the interval 0, 1, i.e., the values f(h/N), h = 0, 1 N, are tabulated. We wish
to evaluate the integral by numerical integration formulae with error terms of the
order of those in Simpson's formula, i.e., 0(1/N*).
This is a method to derive such formulae. Consider the expression
(1) <p(u) = ^ I f(z)dz - [2f(b)a + I (f(hii) . 2f(t) + f(brLy)) £« ] u
/ N 3 N N N N
N
"niere will be h = 0, 1 N, 0 ^ £ ^ 1, 0 | u I 1.
Simple calculations, which we need not give here explicitly, give
<jl(0) = <li'(0) = (})"(0) = 0 (indeed (p"'(0) = 0 and for £=1 even (p""(0) = 0), implying
(2) <p{u) = i^ du^ j^^ du^ fj^ du^cp-"(u^),
and further
(3) <P'"(u) = [{"^hlhi) + f"(h;£ji)] Si . [f"(liiii) + f"(li^)] ^
N N N' N N N3
1 [f".(liii) . f'"(h-uJ] ^
-2-
(3) transforms into
q>"'(u) = [f"(!ii£ll) - f"(liii) + f"'(h±U) (l.£) U ] £_ +
N N N N N^
(4)
9
+ [£M(hz^) . fl.(ltil) . fMt(h^)(l.g) u ] S,
N N N N N»
. rf"'(h±ii) . f'"(hzii)] (1 . e) -L-si
N N 3 ^ N*
F\itting
M£"" = Max |f""(z)| ,
we see that (4) yields
(5) l<p"'(u)| ^ 2Mf"" d - 2£) ^ ,
and by (2)
<6)
UU)|< MC; (I.2B 1-!
Putting u " 1, and recalling (1), we find:
(7)
^ f(z)dz = [2f(t)H . i (f(b±l) . 2f(h) . f (b^)) £^] 1 .,,
N "
i<pi< jif!!:i(7.6^j g- k.
' '" 90 N=
Putting g = 1 and sumning over h = Z+l, >f+3,..., k-1 (JT, k = 0, 1 N,
k-yi>0 and even) we get Simpson's formula:
k
N
^ , f(z)dz = , E [i[^) + 4f(ti)+ f(li:Jt)] -i + <P
/ / h=Z+l,^+3 k-1 N N N 3N 1
N
(8)
f(^) + 4f(<£ii) + 2f('£i^) + 4f{£i^) + ... +
N N N N
+ 4f (l^) + 2f(li^) + 4f(li^) + f(k)
N N N N
3N 1
< Mr::! k::^ < Mf:::: j,
90 2N^
180 N"
.3.
Putting £ = 54 and sumning over h = i'+l, X+2 k-1 Cf, k = 0, 1,...,N,
k-JPO and of any parity) we get the related formula:
f(z)dz = 1 [f(^) + 22f(fe) + i(^)] -1 + <P =
h=J'+l,/*2 k-1 N N N 24N 2
(9) =[£(ili).f(i^).... .r(l^)] 1 .
Mf(J)-f(^)-f(l^)>f(^)]^^^, .
icp I ^ Mi!::: k-^-i ^ m:^ a
' 2 ' 180 N« 180 N*
10.3 We evaluate first by Sin^json's foraula, i.e., by (8), and in
order to simplify matters we put «!' = 0, k = N. Hence N must be even in this case
PROBLEM iO:
The function f(z), z in 0, 1, is given to the extent that the values f(h/N),
h = 0, 1,..., N, are stored at N ■♦• 1 consecutive memory locations p, p+1,..., p"*N. It is
desired to evaluate the integral /^ f(z)dz by means of the formula (8).
We could use either form of (8)'s right side for this evaluation . UsinR
the first form leads to an induction over the odd integers h = 1, 3,...,N-1, but requires
at each step the preliminary calculation of the expression
[(f(h+l)/N) + 4f(h/N) + f ((h-l)yN)]/3N. Using the second form leads to an induction
over the integers h = 0, 1,..., N, and requires at each step the simpler expression
(2/3N)[f(h/N)] multiplied by a factor ^^ = 54 or 1 or 2. Tliis factor is best handled by
variable remote connections. A detailed comparison shows that the first method is about
20% more efficient, both regarding the space required by the coded sequence and the time
consumed by the actual calculation. We will nevertheless code this Problem according to
the second method, because this offers a good opportunity to exemplify the use of vari-
able remote connections.
Thus the expression to be computed is
J = ?„ \-^ f(b) ,
h=0 h 3jyj N •
\i for h = 0, N
\ ^ = n for h / 0, N and f
h even
h odd
-4-
Tliis amounts to the inductive def initial
J,l = 0.
\ -\.l'\ h f^S^ forh=0, 1 N.
J = Jn
3N N
Let A be the storage area corresponding to the interval of locations
from p to p + N . In this way its positions will be A. 0, 1,...,N, where A.h corres-
ponds to p +-h, and stores f(h/^). These positions, however, are supposed to be
parts of some other routine, already in the machine, and therefore they need not
appear when we pass (at the end of the whole procedure) to the final enumeration
of the coded sequence. (Cf. the analogous situation in Problem 3.)
Let B be the storage area which holds the given data (the consteints)
of the problem p, N. (It will actually be convenient to store p, N as p ,
{p-»N-l) ). Storage will also have to be provided for various other quantities
(0, 1 ; it is ccmvenient to store 2/3N; the exit-locations of the variable remote
connections), these too will be accomodated in B. Next, the induction index h
must be stored, h is really relevant in the combination p + h, which is a position
mark (for A.h, storing f(h/N)), so we will store (p+h)^ instead. (Cf. the analo-
gous situation in Problem 3.) This will be stored at C. Finally the quantities
which are processed during each inductive step will be stored in the storage area
D.
These things being understood, we can now draw the flav diagram, as
shown in Figure 10.1. It will prove to be convenient to store (2/3N) f(h/t<)
after II as well as ^^ (2/3N) f(h/N) after III and IV (but not after V) not at D.2,
but in the accumulator, and to transfer it to D.2 in VI only (but also in V). The
disposal of Qti, OLq, f^a, shovn in IX, VIII, VI will be delayed until X, and they
will be held over in the accumulator, finally, the transfer of (A.h+D^ into C is
better delayed from X until after the Cc order in XI, whereby it teikes place only
on the - branch issuing from XI, but this is the only breinch on which it is needed.
-5-
(D^
(A.0\ to C
O toRl
(iH°
k= N
S..+ -i>^
(h-N),
c (/t.h-nl
S'n
zc
C (A.Ol
D.I 0
I
I
5
c( =«,
(A.h+l)o *o C
6(.
« '
0-*-h
3<^
OC ■= OCj i/ h-0,N
01 » OCj if h ^ O, N and eyert
01 = Otj if K oe'o'
■'4
377 ^''■^^ toD.2
^l-vK♦l
m
* ^ JZ
^f r^; to v.i.
SS. "f
D.Z£^,^f(^)
Ch-(N-l)]
e
-''7 7t"*-
ynr
oC«cc,
8
JX.
— '■^^f(i)
©
^
■0
< (a
/t.h
^C^)
p, N
k
Figure 10.1
Tlie static coding of the boxes I-XI follows:
B.l
I.l
2
B.2
1,3
4
B.3
1.5
6
II. 1
2
3
B.4
11,4
5
[
III.l
IV
V.l
2
(
VI. 1
B.5
VI. 2
(to 11,1)
(to VI.l)
(to VI, 1)
(to VII, 1)
(toX,l)
VII, 1
B.6
VII, 2
3
B.7
VIII, 1
IX, 1
0
B.l
D.l
B.2
C
(ai)o
B.3
II. 5
C
11.3
p+h
2
3N
B.4
(to VIII, 1)
(toX,l)
(toX.l)
D.2
D.2
(03)0
B.5
C
(p^N-Do
B.6
IX, 1
(02)0
B.7
B.3
Sp
Sp
R
R ]
c
c ]
R
L
S
h-
Cc
Ac
D.l
Ac
C
Ac
11,5
Ac
II.3
R
Ac
Ac
Ac
D.2
D.2
Ac
Ac
Ac
Ac
Ac
0
0
Po
Po
(ajo
C
(P^>0
p + h
R
f(ii)
N
2 f(h)
3N N
^ 3N
f(ii) =
N
^f(h)
3N N
e^ 2_ ^.(h)= 4_f(h)
^> 3N N 3N N
e, ^ f(il)
h 3N N
e, ^ f(li)
(03)0
(p+h),
(h-(N-l))^
(02)0
(ajo
-7-
X,l
2
II.5
D.l
Sp
3
D.2
h
4
D.l
s
(to
XI, 1
XI
1)
C
2
B.6
h-
B.8
lo
XI, 3
B.8
h-
4
5
e
C
c:c
6
B.8
h
7
C
s
(to II. 1)
11,5
Ac
Ac
D.l
Ac
Ac
Ac
Ac
Ac
C
h-1
h " -^h-l
(p-h)„
(h-(N-l))^
(h-N)„
(p+ti +1)
%
A f(h)
3N N
Note, that box IV required no coding, hence its inmediate successor (VI, 1)
must follow directly upon its inmediate predecessor. However, this box has actually no
inmediate predecessor; IV, 1 corresponds to n^. Hence it must be replaced there by VI, 1.
The ordering of the boxes is I, II; III, VI, X, XI; V, VII, VIII; IX (IV
omitted, cf. above) and X, X, II must also be the inmediate successors of VIII, IX, XI,
respectively, lliis necessitates the extra orders
11.2
x.i
C
IX, 2
x.i
C
XI, 8
11,1
C
Ci, Oa. *3. correspond to 111,1, VI, 1 (instead of IV, 1), V, 1. In the
final enumeration the three o's must obtain numbers of the same parity. TTiis may
necessitate the insertion of dunmy (ineffective, irrelevant) orders in appropriate
places, which we will mark
We must now assign B. 1-8, C, D. 1-2 their actual values, pair the 35
orders 1.1-6, 11.1-5, III.l. V. 1-2, VI, 1-2, VII, 1-3, VIII, 1-2, IX,l-2, X, 1-4, XI, 1-8
to 18 words, and then assign 1,1 -XI, 8 their actual values. These are expressed in
this table:
1,1-6
0 - 2-
X, 1-4
7'- 9
VIII, 1-2
16 - 16
11,1-5
3 - 5
XI, 1-8
9'- 13
IX, 1-2
17 - 17
III.l,'
5'- 6
V,l-2
13'- 14
B.1.8
18 - 25
VI, 1-2
6'- 7
vn,i-3
14'- 15'
C
D.l^
26
27 - 28
-8-
Now we obtain this coded sequence:
0
18
27 S
10
23 h-
25 h-
20
5^
1
19
26 S
11
e Cc
26
21
2/3N
2
20
5 Sp
12
25 h
26 S
22
13 0
3
26
4 Sp
13
3 C
L
23
(P^-I)o
4
- R
, 21 X
14
28 S
26
24
U
6„
5
- C
R
15
23 h-
17 Cc
25
lo
6
--
28 S
16
24
7 C
26
u
7
22
5 Sp
17
20
7 C
27
_ .
8
27 ,
28 h
18
0
28
• -
9
27 S
26
19
P«
Tlie' durations may be estimated as follows:
I: 225 U, II: 270 ^, III: 30 ^, V: 55 |a, VI: 75 n: VII: 125 u, VIII: 75 u,
IX: 75 M,, X: 150 ^, XI: 300 n.
Total: I + II X (N+1) + III x 2 + VI x (!!^ + 1) + (V + VII) x N +
2 2
+ VIII X (^ . 1) + IX + (X + XI) x(N+l) =
= (225 + 270 (N+1) + 60 + 75 (!^ + l) + 180 !!:i + 75 (^ - 1 ) + 75 + 450 (N+D) a
2 2 2
= (885 N + 1080) n^i (.9 N + 1.1) m.
10.4 We evaluate next by the formula (9), and this time we keep J', k
general. We had >f , k = 0, 1 N and k-2'>0. This excludes k = 0 as well as ^ = N.
It is somewhat more convenient to write ^-1 f or /^. Then/*', k = /J', . . . ,N and k-^0.
Thus (9) becomes
(10)
k4^
N
N
/
f(z)dz = [f(^) + f(iii) +
N N
f(!-l) ] 1
N N
N N
N
) + £&)]
N
1
24N
M
Mf"
180
MS
g Mfi:::
180
_i
N*
+ (P2
Finally the requirement k-/^0 may be dropped, since for k-Z^ 0
k=%
N
N
N
-9-
Thus N and/^, k = 1, . .. ,N are subject to no further restrictions.
We state accordingly:
PROBLEM 11.
Same as Problem 10, with this change . It is desired to evaluate the integral
^ / f{z)dz (/,
N c/
k - 1,...,N) by means of the formula (10) (for k ^■i, for k < -f
interchange /, k).
The expression to be computed is
J = - J' for
where J' is defined as follows: F\it
k ^^r
k <r
■'■(
r =
for ■
k=>X
k < -I'
then
and
J' = JM + _1_ [ii^jd) . f (?) . f(klJ:) + f(kL) ] ,
24N N N N N
k'-l
J" = 1 V f(t)
N h=Z' N
The last equation amounts to the inductive definition
J-r'-i = 0
Jh-i ^ h f(.^) .
N N
J" = J
k'-l .
The storage areas A, B, C, D and thf induction index h will be treated the
same way as in Problem 10, but h runs now over i' , J^'+l k -1.
We can now draw the flow diagram as shown in Figure 10.2. It will be found
convenient to store the contents of E. 1-2, (p+k' )^, (p+/l" ) , in the same place where
(p+k)., (p+/) are originally stored, which proves to be b. 1-2. This simplifies II
and reduces the memory requirements, but since we wish to have B. 1-2 at the end of
the routine in the same state in which they were at the beginning, it requires restor-
ing B. 1-2 in DC. VIII, on the other hand, turns out to be entirely unnecessary.
-10-
£.1 (/\.k').
(A.k%'(A.K), UEJ.
(AjOo'(A.£Ki>, z
CA.hX- (A.£), to EJ
(A.l')^tA.K)^U Z
C (A.l%
D o
IE
{A.l')c ** C
O to D
3
r-*h
h + l-
m
-fr
iS
(h-k')\
XL
h«fc'
1
6
^@
m.
@M- ^-j''*z:feK4v-:fr/;]*ilir[f f^)-f(^t-i^i0
D J
8 •
@-^-[7w^
^•>»kr^)
Figure 10.2
-11-
B.1
2
I.l
2
3
(
B.3
II.l
2
(
111,1
2
3
4
S
6
B.4
111,7
8
(
IV, 1
2
B.5'
IV, 3
4
I
V,l
2
3
(
VI.l
2
3
[
B.6
VI, 4
5
6
7
B.7
(to 111,1)
(to IV, 1)
The static coding of the boxes I-IX follows:
(p+k)o
(p+ir)
B.1 Ac
B.2 h- Ac
11,1 Cc
(to IV, 1)
(to V,l)
(to VI, 1)
(<Xi)o
B.3
VII,23
B.1
s.l
B.2
s.l
B.2
(a2)o
B.4
VII,23
B.2
C
0
B.5
D
C
B.1
VII, 1
C
VI, 3
p+h
1
N
B.6
D
C
1
Sp
Sp
h-
Cc
Sp
R
R
X
h
S
Ac
VII,23
Ac
s.l
Ac
B.1
Ac
B.2
Ac
VII, 23
Ac
C
Ac
D
Ac
Ac
Ac
VI, 3
Ac
Ac
D
Ac
(p+k)^
(aJo
(p^k)^
(p*k)^
(P^^>0
(p^^)„
(p^k)^
(p^k)^
(012)0
Ola
(p+J")^
0
0
(p^)^
(h-k')
(p+h)^
p+h
f(b)
1 f(h)
N N
J. = J. 1 + i {(^)
h h-1 [^ [^
\
(p+h)„
.12.
VI, 8
9
(
VII, 1
2
3
4
5
[
7
8
B.8
VII, 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(to V,l)
B.7
h
C
S
B.2
VII, 6
B.7
Sp
h-
VII, 5
Sp
p+^'-l
-.
h-
p+^'
h-
s.l
S
s.l
R
1
24N
B.8
X
D
h
D
S
B.l
VII, 17
Sp
B.7
h-
VII, 16
Sp
p+k'-l
-
..
h
p+k'
h
s.l
S
s.l
R
B.8
D
D
S
c
c
Ac
C
Ac
VII, 6
Ac
VII, 5
Ac
Ac
s.l
R
Ac
Ac
D
Ac
VII, 17
Ac
VII, 16
Ac
Ac
s.l
R
Ac
Ac
D
(p+h+1)^
(p+h+1)^
(p+J:')
^ o
p+2'
(p.2'-l)^
p+J"-l
N
N N
iiiLi) . f(£)
N N
ft
N
) - f(^)
24N N N
jn + J^ (f(il^) . f(ii))
24N N N
jr. + J_ (f(^:^) . f(il))
24N N N
(p+k')
^ o
p+k' h
(p+k'-l)^
p+k'-l
-f(l^)
f(!i:) . fckizi)
f(ii^)
f(ii^)
N
1 (f(k:) . f(kia)
24N
N
N
J' = JM + J_ (f(^lzl)
24N N
N
+ _L (f(k!) . i(K^))
24N N N
J'
.13-
VIII
_.
(to
e)
IX, 1
D
.
2
D
S
3
B.l
4
s.l
s
5
B.2
6
B.1
s
7
s.l
8
B.2
s
(
to e)
Ac
J = -J'
D
J
Ac
(P^^^o =
^p'^'K
s.l
(p.^)„
Ac
<P^)o =
(p+^•)
0
B.l
(p.k)^
Ac
(p.^)^
B.2
(p+1')
Note, that the box VIII required no coding, hence its iiiriediate successor
(e) must follow directly uf)on its irmiediate predecessor. However, this box has actually
no iimiediate predecessor; VIII, 1 corresponds to Oti , which may appear (by substitution at
11,2) in the C order VII, 23. Hence VIII, 1 must be replaced by e in Oli.^
The ordering of the boxes is I, III, IV, V, VI; II; VII; EX (VIII omitted,
cf. above), and IV, V, e must also be the immediate successors of II, VI, IX, respectively.
This necessitates the extra orders:
11,3
IV, 1
C
VI, 10
v,i
c
IX, 9
e
c
ttj corresponds to VIII, 1, i.e., to e (cf. above), (ti corresponds to IX,1.
This implies, as in the corresponding situation in Problem 10, that IX, 1 and e must have
in the final enumeration numbers of the same parity. (? need not be considered, since it
represents a fixed remote connection and therefore does not appear in the above detailed
coding.
\^e must now assign B. 1-8, C, D, s.l their actual values, pair the 63 orders
1,1-3, 11,1-3, 111,1-8, IV, 1-4, V,l-3, VI, 1-10, \TI,l-23, DC, 1-9 to 32 words, and then
assign I,1-IX,9 their actual values. These are expressed in this table:
39
1,1-3
0 - 1
VI, 1-10
9-13'
B.1-8
32
111,1-8
1'- 5
11,1-3
14 - 15
C
40
IV, 1-4
5'- 7
VII, 1-23
15'- 26'
D
41
V,l-3
7'- 8'
DC, 1-9
27 - 31
s.l
42
e is supposed to have the parity of IX, 1, i.e., to be unprimed.
.14-
Now we obtain this coded sequence:
0
32
33 h-
14
34 ,
26 Sp'
28
32 ,
42 S
1
14 Co
32
15
5 C
33
29
33 ,
32 S
2
42 S
33
16
18 Sp
38 h-
30
42 .
33 S
3
32 S
42
17
17 Sp'
.
31
e C ,
--
4
33 S
35
18
- h-
42 S
32
(p+k)o
5
26 Sp'
33
19
42 R
39 X
33
(P^^)o
6
40 S
36
20
41 h
41 S
34
eo
7
41 S
40
21
32
23 Sp'
35
27o
8
32 h-
15 Cc'
22
38 h-
23 Sp
36
0
1
N
9
40
10 Sp
23
- -
- h
37
10
- R
37 X
24
42 S
, 42 R
38
24N
11
41 h
41 S
25
39 X
41 h
39
12
40
, 38 h
26
41 S
, - c
40
13
40 S
, 7 C
27
41 -
, 41 S
41
42
--
The durations may be estimated as follows:
I: 125 [i, II: 125 ;i, III: 300 \i, IV: 150 u, V: 125 a, VI: 445 u, VII: 1015 u, R: 350 p..
Total: I + (II or III) + IV + V x (Ik-^l + 1) + VI x | k-<r| + VII + (VIII or DC)
maximum = (125 + 300 + 150 + 125 (|k-l| +1) + 445 | k-i-l + 1,015 + 350 u =
= (570 \k-yi\ + 2,065) |i
maximum = (570 (N-1) + 2,065) yi = (570 N + 1,495) u:- (.6 N + 1.5) m.
10.5 We pass now to the interpolation problem.
Lagrange's interpolation formula expresses the unn^ue polynondal P(x) of
degree M-1, which assumes Ni given values pi,...,P^i at M given places xj,...,x^j,
respectively:
(1)
;i(j/i)
P(x) = P(xi, Pi;...; xjvi' PmI"^ " Ji Pi ~^
= 1
4^./.:
(x -X:
(X^-Xj]
Ihere would be no difficulty in devising a (multiply inductive) routine
which evaluates the right hand siae of (1) directly. This, however, seems inad-
visable, except for relatively sirall values of M. Tlie reason is that the denominators
:], are likely to -be inadmissibly small.
-15-
This point may deserve a somewhat irore detailed analysis.
From our general conditions of storage and the speed of our arithmetical
organs one will he inclined to conclude that the space allotted to the storage of the
functions which are evaluated by interpolation should (in a given problem) be comparable
to the space occupied by the interpolation routine itself. Tlie latter amounts to about
100 words. (Problem 12 occupies together with Problem 13. a or 13. b or 13. c 99 or 101
or 106 words, respectively, cf. 10.7 or 10.8 or 10.9, respectively. Other possible
variants occupy very comparable amounts of space. ) CVie problem will frequently use
interpolation on several functions. It seems therefore reasonable to expect that each
of these functions will be given at ~ i • 100^26 points. (Tliis means that the N of
10.7 will he'^ 26 -- not our present M ! Note also, that the storage re^pjired in this
connection is N in Problem 13. a, but 2N in Problems 13. b and 13. c.) Hence we may
expect that the points xj,...,X|^ will be at distances of the order'*' 2'^ between
neighbors.
Hence I x— x- 1^1 i-j I " 2"^, and so
j=l ^''^-'^j^
~ (i-l) ! (M-i) ! 2-5<^'-l^
The round-off errors of our multiplication introduce into all these products absolute
•rki/i)
errors of the order 2"*°. Hence the denominators -^j ^"i""!^' ""*" with them the
corresponding terms of the sum T in (1), are affected with relative errors of the
i-l
c/u n 9 5M-45 M-1
order 2-*°: (i-l) ! (M-i) ! 2*^^'^"^' = '^ (■ ^). The average affect of these
relative errors is best estimated as the relative error
1 ^ 2 5M-45 ^M.i . _ 2^'-^^
M i = l (M-D! ^-^ (M-D! v^
2 9^1-45 / (2M-2) - 2^^'-^^ / (2(M-DJ!
(M-D! M" V ^-^ (M-D ! ^W \ [(M-1)!]'
(2(M-1))! 1 o5M-45
M [(M-D!?
On the other hand, an interpyolation of degree M-1, with an interval
length'*'?"^ , is likely to iiave a relative precision of the order ~' C'2" , wliere
C is a moderately large number. (The function that is being inter[>oUted is assumed
to be reasonably smooth. )
.16-
Qxisecjuently the optimum relative precision e which can be obtained with
this procedure, and the optimum M that goes with it, are determined by these conditions:
H
(2<M-1))!
M
1 oS
[(M-1)!] ~
From this
% =
/ {2(M-1))!
\l M
1
[(M-l)!p
Now we have
5M-45 ^ c • 2-^
2lOM-45^Q
M
3
4
5
6
7
%
8-10-e
10-2
5
I.S-IO^'
6-10^
The plausible values of C are in the neighborhood of M ~ 5, while M = 6 is somewhat
high and M = 4 and 7 are extremely low and high, respectively. Hence under these
conditions M = 5 (biquadratic interpolation) would seem to be normally optimal, with
M = 6 a somewhat less probable possibility. We have
M
5
6
e
1.4- 10-'
1.7-10-e
It follows, therefore, that we may expect to obtain by a reasonable
application of this method relative precisions of the order ^-« 10-®'>-'2-2°. Tliis is,
however, only the relative precision as delimited by one particular source of errors:
The arithmetical (round-off) errors of an interpolation. The ultimate level of pre-
cision of the entire problem, in which this interpolation occurs, is thei'efore likely
to be a good deal less favorable.
These things being understood, it seems likely that the resulting level
of precision will be acceptable in many classes of problems, especially eunong those
which originate in physics. There are, on the other hand, numerous and importeuit
problems where this is not desirable or acceptable, especially since it represents
the loss of half the intrinsic precision of the 40 (binary) digit machine. It is
therefore worthwhile to look for alternative procedures.
The obvious method to avoid the loss of (relative) precision caused in
M
the formula (1) by the smallness of a denominator
^,H
(
Ci-Xj),
is to divide
by its factors x—x- (j = 1,...,M and j / i) singly and successively. This must.
.17-
^sfo
however, be combined with a similar treatment of the numerators TT (x-x-), since
j = l J
they may cause a comparable loss of (relative) precision by the same mechanism. A
possible alternative to (1), which eliminates both sources of error in the sense indi-
cated, is
p(x) = X Pi n, — '
1=1 ^ j-1
(2) p(.) = y. n. n^
X--Xj
(2) involves considerably more divisions than (1), but this need not be the dominant
consideration. There exists, however, a third procedure, which has all the advantages
of (2), and is somewhat more easily handled. Besides, its storage and induction prob-
lems are more instructive than those of (1) or (2), and for these reasons we propose
to use this third procedure as the basis of our discussion.
This procedure is based on A. C. Aitken's identity
X -Xl
(3) P(xi. pi;. ..; x^, nvi Ix) = xu-x, P<X2. P2;- ••; ^, PfA |x) +
x^j-xi ''^"l- PI'--- '^-1' ^-1 '"^ •
Since (3) replaces an M-point interpolation by two M-1 point interpolations, it is
clearly a possible basis for an inductive procedure. It might seem, however, that
the reduction from an M-f)oint interpolation to one-point ones (i.e. to constants)
will involve 2 steps, which would be excessive, since (2) is clearly an M(M-l)
step process. However, (3) removes either extremity (xj or Xu) of the point system
xj xj^; hence iterating it can only lead to point systems x-,...,x- (i, j ~ 1 M,
i ^ j , we will write j = i+h-1), of which there are only — ^^ — ; i.e., '^~ —
X -XI
'Sn-''i
'^-''
not
counting the one-point systems. Hence (3) is likely to lead to something like an
step process.
M(M-l)
2
Regarding the sizes we assume that xj,...,xj^ as well as x and pj,...,f^
lie in the interval -1, 1. We need, furthermore, that the differences x^+j^-x^,
X-X-, p+k-p also lie in the interval -1, 1, and it is even necessary in view of
the particular algebraical routine that we use, to have all differences P^+^'Pi
(absolutely) smaller than the corresponding x^+j^-x^. (Cf. VII, 19. ) I.e., we
must use appropriate size adjusting factors for the p^ to secure this "Lipschitz
condition". The same must be postulated for the differences P^+j(x)-P^(x) of the
intermediate interpolation polynomials. All of this might be circumvented to
various extents in various ways, but this would lead us deeply into the problems
of polynomial interpolation which are not our concern here.
We now state:
-18-
PROBLEM 12.
Tlie variable values xj, . . . ,3^ (xi< X2< ...< x^) and the function values
P2,...,p^ are stored at two systems of M consecutive memory locations each:
q, q+1, ..., q+M-1 and p, p+1, . .., p-t-M-1. The constants of the problem are p, q,
M, X, and they are stored at four given memory locations . It is desired to inter-
polate this function for the value x of the variable, using Lagrjinge's formula.
The process of reduction based on the identity (3) is to be used.
It is clear from the previous discussion, that we have to form the
family of interpolants
(4) P.(x) =P(xi, Pi;...; Xi+h-l- Pi+h.1 Ix) for i = 1 M.
h = 1... .,M-i+l .
Applying (3) toP(x-, p^;...; x^+i^. p-^j^ | x) instead of Plxj, Pi;. . . ; x„, py !x)
gives
h+1, , X -X- h , , X;+.-X h, ,
or equivalently
,h+l, , h, ^ X -X- , h , , h
(5) Pi (x) =P^(x) - 5^-^^ (Pi,j(x) - P^(x)) .
Combining this with
(6) pj(x) = Pi
and
M
(7) P(x) =P(xi. pi;...; XM, p^, !x)=Pi(x) .
we have a (doubly) inductive scheme to calculate P(x).
. Let A and B be the storage areas corresponding to the two intervals of
locations from p top+M-1 and from q toq+M-1. In this way their positions will be
A. 1 M and B. 1,...,M, where A.i and B. i correspond to pH-1 and q+i-1, and store
Pi and Xi, respectively. As in the Problems 3, 10, and 11, the positions of A and B
need not be shown in the final enumeration of the coded sequence.
The primary induction will clearly begin with the pj,...,pij, i.e.,
PjCx),. . . ,f^(x), stored at A, and obtain from these Pj(x), . . . ,P^_]^(x); then from
these the f\(x) , . . . ,P^_2^x) ; from these the Pf(x) ^^.S^x); etc., etc., to
conclude with Py(x), i.e., *ith the desired P(x). These successive stages corres-
pond to h = 1, 2, 3,...,M, respectively. This h is the primary induction index.
.19-
. In passing from h to h-t-1, i.e., from Pi(x) ^M-h+l^"^ ^°
P (x),..., Py,.h^''^' ^^^ ^i ^"^ have to be formed successively for i =l,...,M-h.
This i is the secondary induction index.
h h
There is clearly need for a storage area C which holds Pj(x) Pj^^^^^j^Cx)
at each stage h. As the transition to stage h+1 takes place, each P^(x) will be re-
placed byP^^^Cx), successively for all i = 1 M-h. Hence the capacity required
for C is M-h+1 during the stage h, but for h = 1 the P^Cx) = p£ are still in A, and
need not appear in C. Hence the maximum capacity for C is M«-l. Accordingly, let C
correspond to the interval of locations from r to r+M-2. In this way its positions
will be C. 1 M-1, #here C.i corresponds to r+i-1, and stores P^(x). The positions
of the area C need not be shown in the final enumeration of the coded sequence . All
that is necessary is that they be available (i £ . empty or irrelevantly occupied) when
the instructions of the coded sequence are being carried out by the machine.
As stated above, the P^(x) occupying C.i have necessarily h ^ 1. To give
more detail: P^Cx) moves into the location C.i at the end of the i-th step of stage
h-1, and remains there during the remainder (the M-h+l-i last steps) of stage h-1 and
during the i first steps of stage h.
Further storage capacities are required as follows: The given data (the
constants) of the problem, p, q, r, M, x, will be stored in the storage area D. (It
will be convenient to store them as p^^, (q-p-D^, r^,, (M-D^, x. ) Storage will also
have to be provided for various other fixed quantities (1^, the exit- locations of the
variable remote connections), these too *ill be accormodated in D. Next, the two in-
duction indices h, i, will have to be stored. As before, they are both relevant as
position marks, and'it will prove convenient to store in their place (M-h)^, (p+i)^
(i.e., (A. i+1^ ). These will be stored in the storage area E. Finally, the quanti-
ties which are processed during each inductive step will be stored in the storage area
F.
We can now draw the flo* diagram, as shown in Figure 10.3. Tlie variable
remote connections (X and 3 are necessary, in order to make the differing treatments
required for h = 1 and for h ^ 1 possible: In the first case the K-'(x) are equal to
p- stfid come from A, in the second case they come from C (cf. above). It should be
noted that in this situation our flow diagram rules imf>ose a rather detailed showing
of the contents of the storage area C.
The actual coding contains a number of minor deviations from the flow
diagram, inasmuch as it is convenient to move a few operations from the box in which
they are shewn to an earlier box. Since we had instances of this already in earlier
problems, *e will not discuss it here in detail. CVi the other hand, sane further
condensations of the coding, which are possible, but deviate still further from the
flow diagram, will not be considered here.
-20-
&
(m-i)„ to e.i
£.1 CM-ll
E.I (M-hl
I
C.i
n (^^\ artoL h>l
Z -(A.ZU
1
2 I
— >J-
3 I
^/«.2;. <o £-.2
I
^^
©
z —
0
I
.7 I
^^ " ' •— 1 \! ▼ I rn«
®^
A = l -^
c/i
Av-i
Othei-wtat
E.I (M-k)^
F.l PfCX)
Z —
A!
— »--
lf^,U)-p.^^ioF.&
10
Pi>'
to
F.& ^ '
F.z ^n I
£.1 (»1'h)o
2 (A. 1*1),
F.l P^ (H)
z p,t/x;
IT
" HI
A*i
to c.i
c.i'pydf) /or n ^-f,
1
pt'^'f^J fo^l'<i
„'' ^^iS for iii'lM-,
-h*t
IZ
'UJIT
T\' (X) for I i^l
^•'i r-/' r.,\ffor i<iiM-
-h*-l
Oth»
a +h- M)o
tz
#
(M-h -z).
14
H^
I ' M-h
14
IZ
E.i (M~h)o
Z(A.i+Z),
F.l P.':^ (X)
Z
fA.i*tl to £.Z
T?^^ (X) to F.1
13 I
i*i-*i
8
(M-h-l)^ U E.I
IS
i
I
h + l-- h
E.l(M-h-l)^
h = M-l
16
<S)
<Z)
<D
E.i fAl-h)o
C.i P^(x) fof liM-k-^t
C.i P(X) = P^(X)
P. % -» n ^
K'i
A,i
B.i
Pi
IG-URE
10.3
-21.
D. 1
1,1
2
D.2
1,3
4
D.3
1,5
6
The static coding of the boxes I-XI follows:
(M-1),
Ac
E.1
Ac
n.4
D.4
5
11,1
2
3
4
111,1
2
3
4
5
6
D.6
IV, 1
2
(to 11,1)
[
[
D.l
E.l
S
(ai)o
D.2
(3i)o
D.3
Sp
111,6
Sp
Po
D.4
D.5
h
E.2
S
a
D.4
c
c
111,3
Sp
P
F.l
s
E.2
'o
D.6
IV. 3
(to 111,4)
C
C
Sp
v.i
2
V.2
p+i
Sp
3
F.2
S
(to VII, 1)
VI. 1
D.4
h-
2
D.6
h
3
4
VI, 4
r*i
Sp
5
F.2
S
Ac
III. 6
Ac
(M-1)^
(M.1),
(ai)o
Oi)o
01
Ac
Po
Ac
(P-Do
E.2
(P^l)o
Ac
Po
111,3
P
Ac
P}(x)
F.l
m if
PI
pj if reached from 111,3
P^(x) if reached from IV
(p+l)pif reached from 111,4
(p''"i)Qif reached from IX (i.e. y)
Ac
^0
IV. 3
T
Ac
P^(x)
V.2
PH
Ac
Pi*l
F.2
Pi*l
Ac
io
Ac
(r^i).
VI. 4
r+i
Ac
P?*l'->
F.2
Pj,l(x)
.22-
(to VII, 1)
VII, I
2
3
4
5
6
D.7
VII, 7
8
9
10
11
12
13
14
19
D.8
VII, 20
21
[
22
23
24
25
E.2
D.4
h-
D.6
h
D.5
h-
VII, 25
Sp
E.2
(q-p-1).
D.7
h
VII, 15
Sp
VII, 21
Sp
D.l
h
E.l
h-
D.5
h
VII, 14
Sp
q+i+h-1
15
--
h-
q+i-1
h-
16
s.l
S
17
F.2
18
F.l
h-
s.l
X
D.8
q+i-1
s.l
s.l
F.l
rn-
h-
h- ]
S
S
s
Ac
(p^)o
Ac
io
Ac
(r+i)^
Ac
(r+i-l)„
VII, 25
r+i-1
Ac
(pH)o
Ac
(q+i-l)„
VII, 15
q+i-1
VII, 21
q+i-1
Ac
(q+i+M-2)^
Ac
(q+i+h-2)^
Ac
(q+i+h-D^,
VII, 14
q+i+h-1
Ac
"i+h
Ac
"i+h-'^i
s.l
"i+h'^i
Ac
l*,l(x)
' Ac
p5+i(x)-PJ(x)
R
F*,i(x)-P5(x)
(to VIll,l)
Ac
Ac
s.l
Ac
Ac
C.i
h-
h-
*i*h-
x-x
1
X -X-
5^ (p5.i(x)-P5(x))
P^*l(x) = I*(x) +
X -X;
^l+h-^i
i (p5^i(x)-P5(x))
p5'Mx)
.23.
VIII, 1
E.2
2
D.5
h
3
E.2
S
4
E.l
h-
5
D.5
h-
6
D.4
h-
7
(to
IX, 1)
X.l
Cc
IX.1
F.2
2
(to
111,5)
F.l
S
X.1
E.l
2
D.5
h-
3
E.l
s
4
D.5
h-
5
(to
D.9
e)
XI, 1
(02)0
Cc
XI, 1
D.9
2
11,4
Sp
D.IO
(£12)0
XI, 3
D.IO
4
(to
11,1)
111,6
Sp
Ac
(p*i)o
Ac
(p-i-l)„
E.2
(pH-l)„
Ac
(p+i+h-M+l)g
Ac
ipH-^-iA)^
Ac
(i+h-M)„
Ac
Pj,i(x)
t.l
Pj,l(x)
Ac
(M-h),
Ac
(M-h-l)
0
E.l
(M-h-l)g
Ac
(M-h-2)„
Ac
(a2)o
II.4
<h
Ac
({3a)o
111,6
&2
The ordering of the boxes is I, II; III; IV; V, VII, VIII, IX; X; XI;
VI, and MI, e, II must also be the iinnediate successors of VI, X, XI, respectively,
and 111,4 and 111,5 must be the irmediate successors of IV and IX, respectively.
This necessitates the extra orders
VI. 6
VII, 1
C
X.6
e
C
XI, 5
II. 1
c
IV, 4
IX, 3
111,4
111,5
C
C
^t, <h, Pi. p2 correspond to 111,1, IV, 1, V,l, VI, 1, respectively.
Hence in the final enumeration 111,1, IV, 1 must have the same parity, and V,l,
VI, 1 must have the same parity.
.24-
We must now assign D.1-10, E.1-2, F. 1-2, s.l their actual values, pair
the 75 orders 1,1-6, 11,1-4, 111,1-6, IV, 1-4. V,1.3, VI, 1-6, VII, 1-25. VIII. 1-7,
IX, 1-3. X. 1-6, XI, 1-5 to 38 words, and then assign I,1-XI,5 their final values.
These are expressed in this table:
1,1-6
11,1-4
111,1-6
IV, 1-4
V,l-3
0 .2'
3 -4'
5 .7'
8 -9'
10 -11
VII, 1-25
VIII. 1-7
IX, 1-3
X,l-6
XI,l-5,*
11'.
24 .
27'.
29 .
23'
27
28'
31'
32 -34'
VI, 1-6
D.1-10
E.1-2
F.1-2
s.l
35 -37'
38 -47
48 -49
50 -51
52
Now we obtain this coded sequence:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
38
39
40
41
49
41
49
43
48
4
7
42
6
50
9
6
S
Spi
Sp'
h
c
Sp
s
c
Sp
c
10 Sp'
, -
51 S
49
41 h-
, 43 h
42 h-
49
23 Sp'
, 44 h
18 Sp
38 h
, 21 Sp'
, 48 h-
42 h
. 18 Sp
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
52
50
45
52
50
49
49
42
S
h-
S
h
S
h-
29 Cc
50 S
48
48 S
32 Cc
46
47
3 C
41 h-
h-
51
52
52
42
48
41
51
7
42
42
e
4
7
h-
X
S
h
h-
h-
c
h-
h-
C
Sp'
Sp'
43 h
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
36 Sp',
51 S ,
(M-l),
Pq
lo
(q-p-l)o
X
k
11 C
The durations may be estimated as follovs:
I: 225 u. II: 150 ^x. III: 225 a, IV: 275 n, V: 125 ^i, VI: 225 n, VII: 1140 u,
VIII: 275 u, IX: 200 ^i, X: 225 n, XI: 200 n.
Total: I + II X (M-1) + III f IV x {M-2) + V x (M-1) + VI x (M-l)(M-2) +
+ (VII + VIII) M(M-l) + IX X (M-1) (M-2) + ^ x (M-1) + XI x (M-2) =
2 2
= (225 + 150 (M-1) + 225 + 275 (M-2) + 125 (M-1) + 225 (M-lKM-2) +
+ 1 415 M(M-l) + 200 (M-1) (M-2) + 225 (M-1) + 200 (M-2)) \i =
2 2
= (920 VP - 370 M - 575) \i ?*(.9 M* - .4 M - .6)
-25-
10.6 We now pass to the problem of interpolating a tabulated function
based on the coding of Lagrange's interpolation formula in Problem 12.
PROBLEM 13.
The variable values y^^ y^ (yj< y2*^ ...< y^^) and the function values
q^i- "'^j are stored at two systems of N consecutive memory locations each:
q, q*^l, . . . , q+N-1 and p, p+1, . . . ,p-*N-l. "Die constants of the problem are p, q, N, M,
y, to be stored at five given memory locations. It is desired to interpolate this
function for the value y of the variable, using Lagrange's formula for the M points
y- nearest to y.
The problem should be treated differently, according to whether the
y,,...,y]\j are or are not to be equidistant.
PROBLEM 13. a.
yi»'''>yN '""^ equidistant, i.e., y- - a + ^^— (b-a). In this case
only yj^ = a and y*^ = b need be stored.
PROBLEM 13.b.
yi»-"i'yN> ^re unrestricted.
In both cases oui- purpose is to reduce Problem 13 to Problem 12, with
"1 ^\ equal to yk.---.yk4M.l. and pj p,^ equal to qj^, • • • .q^+l^.li where
k = ] , . . . ,N-M+1 is so chosen that the y|.,.. •lyu-ff^^.l li^ ^s close to y as possible.
10.7 We consider first Problem 13. a.
In this case the definition of k, as formulated at the end of 10.6,
amounts to this: The remoter one of yi = a + ^^— (b-a) and yi,-»A< ]^ = a + ■■ (b-a)
should lie as close as possible to y. This is equivalent to requiring that their
mean, 9Wi,''^L-»\<.l^ - a '* , ' \ (l^'a^i lie as close as possible to y, i.e.,. that
k lie as close as possible to (N-1) ^^^ - ^^^-— .
•^ b-a 2
There are various ways to find this k " K, based on iterative trial and
error procedures. Since we will have to use a method of this type in connection with
Pj"(J}leni 13. b, we prefer a different one at this occasion.
Tliis method is based on the function Izl , which denotes the integer
closest to z. F\jtting
k- = /(N-1) P - ^1 .
\_ b-a ^ J
we have clearly
.26-
for k* ^ 1,
for 1 I k ^ N-M+1,
M+1 for k* ^ N-M+1
Now the multiplication order (11, Table II), permits us to obtain tz)
directly. Indeed, the round off rule (cf. the discussion of the order in cpiestion)
has the effect that when a product uv is formed, the accumulator will contain
^ = 2"^® {2^®uv), and the arithmetical register will contain u> = 2^®uv - {2^®uv}.
Hence putting u = 2-3«(N-l) and v = J^ - -^, will produce 11^ = 2- = « {2^«uv} = 2-'V
b-a 2(N-1;
in the accumulator.
After k* and E have been obtained, we can utilize the routine of Problem 12
to complete the task. This means, that we pro|K)se to use the coded sequence 0-52 of
10.5, and that we will adjust the coded sequence that will be formed here, so that it
can be used in conjunction with that one of 10.5.
Among the constants of Problem 12 only p, q, and x need be given values
which correspond to the new situation, x is clearly our present y. p p'tM-l are
the positions of the pj,.. .,p|^ of Problem 12, i.e., the positions of our present
qjT, . . . ,qTT4»«_-|^, i.e., they are p-^fi- 1 , . . . , p">ic"*M-2 . Hence p = p+Jc-1. q,...,q+M-l are
the positions of the xi,...,X|l« of Problem 12, i.e., the positions of our present
yr. • • • lYtr-aj.!' Since we determined in the formulation of Problem 13. a, that only
yj = a and y[yj = b will be stored, but not the entire sequence yi yj^, this means
that the desired sub-sequence yr> • • • (Yr-MW.l does not exist einywhere ab initio.
Consequently q may have any value, all that is needed is that the posi-
tions q, ...,q+M-l should be available and empty (or irrelevantly occupied) when the
qoded sequence that we are going to formulate begins to operate. This sequence must
then form
''i = yf+i-1 = ^ " w ^'-^^
and place it into the position q+i-1 for all i " 1,...,M.
It might seem wasteful to form x- first, then store it at q+i-1, and
finally obtain it from there by transfer when it is needed, i .e. during the period
VII, 1-19 of the coded sequence of 10.5. One might think that it is simpler to form
X- when it is actually needed, i.e., in VII, 1-19 as stated above; the quantities
X -X-
needed are more specifically x ■ , x-+l, in the combination r^ ), and thus avoid
1 in "i+h'^i
the transfers and the storage. It is easy to see, however, that the saving thus
effected is altogether negligible, essentially because the size of our problem is
proportional to M^ (cf. the end of 10^5), while the number of steps required in
forming and transferring the x^'s in the first mentioned way is only proportional
to M . (Remember that M is likely to be ^ 7, cf. the beginning of 10.5. ) It does
therefore hardly seem worthwhile to underteike those changes of the coded sequence
of 10.5 which the second procedure would necessitate, juid we will adhere to the
first procedure.
-27-
In assigning letters to the various storage areas to be used, it must be
remembered that the coded sequence that we are now developing is to be used in con-
junction *ith (i.e., as a supplement to) the coded sequence of 10.5. The latter
requires storage areas of various types: D-F, which are incorporated into its final
enumeration (they are 38-51 of the 0-52 of 10.5); A (i.e., p, . . . ,p-*M-l), which will
be part of our present A (i.e., of p, . . . ,p-*N-l, it will be p+R-1, . . . ,p+E+M-2 ; B
(i.e. , q q+M-1), which may be at any available place; and C (i.e. , r, . .. ,r-*M-2),
which, too, may be at any available place. Therefore we can, in assigning letters
to the various storage areas of the present coding, disregard those of 10.5, with
the exception of B, C. Furthermore, there will be no need to refer here to C (of
10.5), since the coded sequence of 10.5 assujnes the area C to be irrelevantly occupied.
It will be necessary, however, to refer to B (of 10.5), since it is supposed to con-
tain the X£ = yjj+j.i (i - 1 M) of the problem. We will therefore think of the
letters which are meant to designate storage areas of the coded sequence of 10.5 as
being primed. This is, according to the above, an imniediate necessity for B. We
can now assign freely unprimed letters to the storage areas of the present coding.
Let A be the storage area corresponding to the interval from p to
p+N-I. In this way its positions will be A.l,... .,N, where A. i corresponds to
p'*"i-l and stores q^. As in previous problems, the positions of A need not be
shown in the final enumeration of the coded sequence.
The given data of the problem are p, M, N, a, b, y, also the q, r of
the coded sequence of 10.5. M, r are already stored there (as (M-D^^, r^ at 38, 43);
and y, too (it coincides with x at 45). q, however, occurs only in combination with
R (as (q-p-Dp = (q-p-Ic)^ at 44) and p, of course, contains k (as p^^ = (p+R-D^ at
41); and k originates in the machine. Hence, 41, 44 must be left empty (or, rather,
irrelevantly occupied) when our present coded sequence begins to operate, and they
must be appropriately substituted by its operations, q, however, must be stored as
one of the ccnstants of our present problem. Hence the constants requiring storage
now (apart from M, r, y which we stored in 0-52, cf. above) are p, q, N, a, b.
They will be stored in the storage area B. (It will be convenient to store them as
a, b, (N-l)jj, (p-D^, (q-l)o- *e will also need 2"^® and 1 ; we will store the
former in B and get the latter from 42. ) The induction index i is a position mark;
it will be stored as (q+i-D^ (i.e. , (B'. i)^) in the storage area C. Tlie quantities
which are processed during each inductive step will also be stored in the storage
area C.
Obr task is to calculate k; to substitute p - (p+k-l) and
(q-p-1) = (q-p-k) into 41 and 44; and then to transfer x- - yr+i.l from A.kH-l
to B'.i. This latter operation is inductive. Finally, the control has t o be sent,
not to e, but to the beginning of 0-52, i.e., to 0.
We can now draw the flow diagram, as shown in Figure 10.4.
(J>^
y- a M~-3
'^ ' b-^ ~ &(M-1)
■"■^-ZT^ to c.i
C.l Z'^K*
31
&-" (k*-l)
-^'i.
*''+
s.
.-»'/!.♦
2 Y/f-«/ + M-l)
ioC.1
+ "« ^
«"■
"3
toCA
"S
3"
c.l Xi
1
B'A'-
C.l Xj
«w
"THT
1-^i
-J — *■
51
--\c.i z^R
Ip + H-l)„ tc 41
(q-}o'k)c to 44
f + I-*i
JZ
^a/l+i)o
teCZ
7,.
7
! =w
I
8
> I
(
L.
<?)
0* - w).
B'.i' X.-'
C?.l Xj^i
2 (B.'£*a).
/Voti
AJ
Ki
B' ^e^ez-j to the S of 10, S
e tefers *o O of O-SZ
in lot's.
Numloers 0-S& refer to
0~SZ in lO.S.
p.^, r, M, N, xr,h, y
Figure 10.4
.29-
The actual coding will again deviate in some minor respects from the flow
diagram, as in previous instances. In connection with this we will also need sane
extra storage capacity in C (C. 1.1).
A matter of somewhat greater importance is this: We have noted before
that since our machine recognizes numbers between -1 and 1 only, integers I must be
stored in sane other form. Frequently the form of a position mark, t^, is per se
more natural than any other (cf . 8.2); occasionally 2"'"j[ can be fitted more easily
to the algebraical use to be made of t (cf. I in the present coding); sometimes j
is most convenient. (We could, of course, add to this list, but the three above forms
seem to be the basic ones.) The transitions between these three forms are easily
effected by using multiplications and divisions, but it seems natural to want to
achieve the transitions between the two first ones (/^ tmd 2"^ /) in a more direct
way.
This can be achieved by means of the partial substitution orders 18, 19
of Table II (x Sp, x Sp'), if they are modified as indicated in the Remark imne-
diately preceding this chapter. We propose to use these orders now for arithmetical
rather than logical (substitution) purposes, for positions x which contain no orders
at all, but which are storing numbers in transit. Specifically: With t~. in the
accumulator, x Sp' produces 2"^*/ at the position x; with 2'^^J' in the accumulator
X Sp produces 2'^^t at the position x, and a subsequent x h produces / in the
accumulator.
We mention that - can be obtained from t^ or 2" ^®/ by dividing them
into 1- or 2"^®, resptectivelyf and this without more than the usual loss in precision:
Indeed, our division p : O is precise within an error 2"^®, no matter how small o is
(subject, of course, to the condition | o| ^ |p | ), provided that p, 0 are given exactly.
(If they are not given exactly, then their errors are amplified by ■^ , ^, respectively.
In this case a small 0 is dangerous, even though | o| > | pi .) In the present case
p O are given exactly. Forming 1^, t^, as well as 2*^®, 2' i, involves no round-
offs.
These methods will be used in our present coding: For transitions
between t^ and 2"3'*/,cf. 1,22-23, 111,3-4; VII, 1-3; For forming reciprocals: — -
»i o N-1
from (N-1) as 1„: (N-1) in VIII, 4-5, and the very similar case of -^ — - from
" " o 2 (N-1)
(M-3)„, (N-l)„ as (M-3)„: 2(N-1) in 1,9-15. Regarding -^ we also note this:
O' 0 0 Q ' DO N. 1
We need ^^ in VIII. We will form -^ = 1„: (N-l)„ first and ^ = -^ x (b-a)
N-1 N-1 ° ° N-1 N-1
afterwards. Forming 1^ ^ (b-a) first and ^ - [l^ x (b-a) ]: (N-D^, afterwards
would lead to a serious loss of precision, since 1^ '*■ (b-a) plays the role of P
above, and as it involves a round-off it is not given exactly, and hence may cause
a loss of precision as indicated there.
We will have to refer in our present coding repeatedly to 0-52 in
10.5. It should therefore be remembered that this coded sequence is now supposed
to be changed insofar that 41, 44 are irrelevant and 45 contains y. 38, 43 contain
(M-1)^,. r^, as in 10.5.
.30-
The static coding of the boxes I-X follows:
B.1
2
I.l
2
3
4
5
7
8
B.3
1.9
10
11
12
13
14
15
16
17
18
19
a
b
B.2
B.1
h-
s.l
S
45
B.1
h-
8.1
+
A
s.l
S
(N-l)o
B.3
B.3
h
S.2
S
38
42
h-
42
h
5.2
A
S
20
s.l
S
21
s.l
R
22
B.3
23
s.2
Sp
24
s.2
X
25
C.l
S
(to II
1)
B.4
II. 1
2
3
2-3 9
C.l
B.4
111,1
h-
Cc
Ac
Ac
s.l
Ac
Ac
R
Ac
s.l
Ac
Ac
s.2
Ac
Ac
Ac
R
(to IV, 1)
Ac
Ac
b
b-a
b-a
y
y-a
X^
b-a
Xia
b-a
b-a
(N-l)„
2(N-l)j
2(N-1)^
(M-l)„
(M-2)^
(M-3)„
M-3
2(N-1) 2(N.l),
(M-3),
Ac
2(N-1)
s.2
M-3
2(N-1)
Ac
3ta
b-a
Ac
b-a 2(N-1)
s.l
V
R
V
Ac
(N.l),
s.2
u = 2-='«(N-l)
Ac
2-^V = ilv
CI
2-3V
2-3»(k'-l)
-31-
111,1
2
3
4
5
6
7
(
IV, 1
(
v,i
2
VI,
VII, 1
2
3
B.5
VII, 4
5
6
B.6
VII, 7
8
9
(
VIII, 1
2
3
4
(to VI, 1)
L
(to V,2)
(to VII, 1)
(to VII, 1)
(to VIII, 1)
B.3
38
h-
42
h
C.1.1
Sp
CI
C.1.1
h-
v,i
Cc
B.4
C.1.1
C.l
CI
s.l
Sp
s.l
h
(P-I)o
B.5
h
41
S
s.l
S
(q-i)o
B.6
s.l
h-
44
S
B.2
B.1
h-
s.l
S
42
B.3
6
s.l
X
7
C.1.1
S
8
Cl.l
R
9
C.l
0
B.4
h
Ac
Ac
Ac
Cl.l
Ac
Ac
Ac
Ac
CI
Ac
s.l
Ac
Ac
41
s.l
Ac
Ac
44
Ac
Ac
s.l
Ac
R
Ac
Cl.l
R
Ac
Ac
(N-1)^
(N-M)„
(N-M+Dp
2-='9(N.M+l)
2-3V
2-3e(k*.N^M-l)
2-39IJ = 2-
30
2-^^ = 2-3«(N-M+l)
2-3\
2-3^
2-^«C
IT^ = 2-i*ir+2-="nt
(p+t-l)„
(q-i)o
(q-p-K)„
(q-p-E),
b
b-a
b-a
lo
N-1
(N-1)^
b^
N-1
N-1
h^
N-1
2-="'(E-l)
.32.
VIII, 11
12
13
s.l
s.l
S
X
14
B.l
h
IS
C.l
S
16
B.6
17
42
h
18
C.2
S
(to IX, 1)
a.i
C.2
2
IX,6
Sp
3
42
h
4
C.2
S
5
CI
6
-
S
q+i-1
s
7
C.1.1
h
8
C.l
s
(toX.l)
X.l
C.2
2
38
h-
3
B.6
h-
4
42
h-
5
42
h-
6
e'
Cc
s.l
2-='«(E-l)
R
N^^-^
Ac
N^ii^^-^
Ac
x^ = a +
N>-^^
CI
Ac
Ac
C2
(q-i)o
qo
%
Ac
(qH-l),
IX, 6
q+i-1
S
Ac
(q+i)o
C.2
Vi)o
Ac
X;
B'
Ac
''i+l = ''i
C.l
"i+l
Ac
(q^)o
Ac
(q+i-M+l)^
Ac
(i-M+2)^
Ac
(i-M+D^
Ac
(i-M)
N-l
(to IX.l)
Note, that the box VI required no coding, hence its iimediate successor
(VII) must follow directly upon its imnediate predecessor (III).
llie ordering of the boxes is I, II, IV; III, VII, VIII, K, X; V and
VII, IX must also be the itimediate successors of V, X, respectively, and V,2 must be
the inmediate successor of IV. This necessitates the extra orders
V.3
X.7
VII, 1
IX, 1
c
c
and
IV,2 V,2 C
As indicated in Figure 10.4, e' is 0.
.33.
We must now assign B. 1-6, C. 1-2, 1.1, s.1-2 their actual values, pair the
82 orders 1,1-25, 11,1-3, 111,1-7, IV,l-2, V,l-3, VII, 1-9, VIII, 1-18, IX,l-8, X,l-7 to
41 vrords, and then assign I,l-X,7 their actual values. We wish to do this as a continua-
tion of the code of 10.5. We will therefore begin with the number 53. Furthermore the
contents of C. 1-2, C.1.1, s.1-2 are irrelevant like those of 48-52 there. Hence thev
may be made to coincide with these. We therefore identify them accordingly . Sumning
all these things up, we obtain the folloving table:
1,1-25
53 -65
VII, 1-9
71 '-75'
V,l-3
92 '-93'
11,1-3
65 '-66'
VIII, 1-18
76 -84'
B.1-6
94 -99
IV, 1-2
67 -67'
IX, 1-8
85 -88'
C.1-2
48 -49
111,1-7
68 -71
X.1.7
89 -92
C.1.1
s.1-2
50
51-52
Now we obtain this coded sequence:
53
95
94 h-
69
42 h ,
50 Sp'
85
49 ,
87 Sp'
54
51 S
45
70
48
50 h-
86
42 h ,
49 S
55
94 h-
51 -
71
92 Co'
48
87
48 ,
- S
56
A
51 S
72
51 Sp
51 h
88
50 h ,
48 S
57
96
96 h
73
98 h ,
41 S
89
49 ,
38 h-
58
52 S
38
74
51 S ,
99
90
99 h-.
42 h-
59
42 h-
42 h-
75
51 h-
44 S
91
42 h-.
0 Cc
60
52 ^
A
76
95
94 h-
92
85 C ,
50
61
52 S
51
77
51 S
42
93
48 S ,
71 C
62
52 h-
51 S
78
96 -
51 X
94
a
63
51 R
96
79
50 S
50 R
95
b
64
52 Sp'
52 X
80
48
97 h-
96
(N-1),
65
48 S
48
81
51 S
51 X
97
2-3S
66
97 h-
68 Cc
82
A
, 94 h
98
(P-I)o
67
97
93 C
83
48 S
99
99
(q-l)o
68
96
38 h-
84
42 h
49 S
For the sake of completeness, *e restate that part of 0-52 of 10.5
which contains all changes and all substitutable constants of the problem.
This is 38-52:
48
49
SO
51
52
38
(M
39
5o
40
10
41
42
1
43
'•o
44
45
y
46
8o
47
35o
The durations may be estimated as follws:
I: 1,220 n, II: 125 u. 111: 275 n, IV: 150 u, V: 125 u, VII: 350 u, VIII: 915 u,
R: 300 n, X: 275 ^.
-34.
Total: I + II + (IV or (III + V) or III) + VII + VIII + (IX + X) x M =
maximum = (1,220 + 125 + 400 + 350 + 915 + 575 M) u =
= (575 M + 3,010) n 5:i (.6 M + 3) m.
Hence the complete interpolation procedure (10.5 plus 10.7) requires
(.9 m +.2 M + 2.4) m.
10.8 We consider next Problem 13. h. We are again looking for that
k = 1,...,N-M+1, for which Yi^i • • • ty^+M-l ^^® ^^ close to y as possible (cf . the end
of 10.6), i.e., for which the remoter one of y^ and Yj^-f^j.! lies as close to y as
possible.
Since yi y)y are not equidistant, we cannot find k by an arithmetical
criterium, as in 10.7. We must proceed by trial and error, and we will now describe a
method which achieves this particularly efficiently.
We are then looking for a k = R which minimizes )Jj^ = Max (y-yj^. Yk+M-l'V^
in k = 1,...,N-M+1.
Let us first note this: y-yj^ > y-yj^+j, hence y-yj^ > yi^+^-y implies
y-yjj > \+i, and therefore [J^ > Pj^+j. Qi the other hand y^+^.l-y < Yk+M'^' ^^^"ce
y-Yk i Yk-tM'Y implies [i^ i Y^-tM-Y- and therefore [i^ s [t^^-^. Hence n^ ^ or ^ Mj^+l.
according to whether y-yi. > or ^ ^k-^M'^ i-e-, Y^ "*■ Yw -tM ~ 2y < or J 0.
In order to keep the size between -1 and 1, it is best to replace
Vk * Yk+M-y - 2y by
(1^ ^k = J Vk ^ ^ Vk+M - y •
zi^ is monotone increasing in k. Therefore z^ '^ ^ implies zj^ < 0 and hence M^ > ^-^-l
for all h^k, i.e. ,^1 >n >... >Mj^> ^Hc+l" Similarly zj^ ^ 0 implies zjj - ^ ^^^
hence Mj^ < pj^^j for all h ^ i, i.e., [i^ ^ pj^+j ^ ... ^ M^.M ^ H^-M+l" ^^°^ ^^^^^ *^
may infer
zi^ < 0 implies Ii > k,
Zi^ ^ 0 implies that we can choose Ic ^ k.
Consequently we can obtain [c by "bracketing" guided by the sign of Zj^.
Note that zj^ can be formed for k = 1,...,N-M only, but not for k = N-M+1.
The "bracketing" must begin by testing the sign of zi for k = 1, if it is +, then f = 1,
' if it is -, then we continue. Next we test the sign of zk for k = N-M, if it is -, then
E = N-M+1, if it is +, then we continue. In this case we know that 1 "^ I< g N-M. I\it
k = 1, k j^ = N-M. Consider more generally the case where we know, that k- "^ C ^ k^ .
fhis implies k—k^ ^ 1. If k--kj^ = 1, then k = k-; if k--k^ > 1, then we continue.
-35-
In this case we use the function [*! which denotes the largest integer ^ w. I^lt
(3) ''i = ^ 2 ^^^ ^^V^ '
and test the sign of z. for k = k9, if it is + then E < k9, if it is - then C > k?.
^ k i' - i' ^ 1
We can therefore put k^+j^ = k^, k^+j^ = k° or k~+]^ = k?, k . = k^ , respectively.
This completes the inductive step from i to i+1. Sooner or later, say for i = i ,
k- - k^ = 1 will occur, smd the process will terminate.
Note, that k-+i-k-+i ^ i(k[ - k" + 1), i.e., k-.k" i 2(k2+i-k-+i^ -1,
i.e., k- i-k7 1 ^ 2(k- - k7)-l. For i = i , however k—k" = 1, k- i -k^ 1^1.
hence k^.i-ki'i ^ 2.' Thus k^ .^ - k- .1 ^ 2, k- .2 " ^i .2 ^ 3 kj-k^ ^ 2"°' +1.
00 GO
However, ki-kj ~ N-M-1, therefore,
(4) i < 2 1og(N.M-2) + 2.
o - "
The virtue of this "bracketing" method is, of course, that the number
of steps it recpiires is of the order of ^log N, and not, as it would be with most
other trial and error methods, of the order of N . (Note, that N is likely to be
large compared to M, which alone figures in the estimates of 10.5 and 10.7.)
After K has been obtained, we can utilize the routine of Problem 12
to complete the task, just as at the corresponding point of the discussion of
Problem 13. a in 10.7. This means that we propose to use the coded sequence 0-52
of 10.5, and that we will adjust the coded sequence which will be formed here,
just as in 10 .7.
The situation with the constants of Problem 12 is somewhat simpler
than it was in 10.7. Again, p, q, and x need be given values which correspond to
the new situation, x is clearly our present y. p,...,p-*W-l and q,...,q+M-l are
the positions of the pj^, ...,p|^^ and x^ ''M °^ Problem 12, i.e., the positions of
our present qj^ %-m-l ^'^ ^E ^It+M-l' ^•^■' ^^^^ ^^^ p-^'^-l p+Ii+M-2 and
q+Ic-1 q+E-tM-2. Hence p = p+Ic-1, q = q+Ii-l. Tlie complications in 10.7, connected
with q, or, more precisely, with the yj^ Vl^+M-l' '^° "*"" ^^^^^ here, since Problem
13. b provided for storing the entire sequence yj >^.
In assigning letters to the various storage areas to be used, it must
be remembered, just as at the corresponding point in 10.7, that the coded sequence
that we are now developing is to be used in conjunction with (i .e. , as a supplement
to) the coded sequence ol lU.5. As in 10.7, we have to classify the storage areas
required by the latter, but this classification now differs somewhat from that one
of 10.7: We have the storage areas D-F, which are incorporated in the final enumera-
tion (they are 38-51 of the 0-52 of 10.5); A and B (i.e., p p-»W-l and q q+M-1),
which will be part of our present A and B(i.e., ofp,... ,p"HV-l and q q+N-1, they
will be p+E-l,...,p+C41-2 and q+I?-l q+R^-2); and C (i.e., r, . . . ,r-HW-2) , which
may be at any available place. Therefore, we caui, in assigning letters to the
various storage areas in the present coding, disregard those of 10.5, with the
-36-
exception of C. Furthermore, there will again be no need to refer here to C (of
10.5), since the coded sequence of 10.5 assumes the area C to be irrelevantly
occupied. We will, at any rate, think of the letters which are meant to desig-
nate storage areas of the coded sequence of 10.5 as being primed. We can now
assign freely unprimed letters to the storage areas of the present coding.
Let A and B be the storage areas corresponding to the intervals from
p to p^N-l and from q to q+N-1. In this way their positions will be A. 1,...,N
and B. 1,...,N, where A.i and B. i correspond to p+i-1 and q+i-1 and store q- and
y-. As in previous problems, the position of A and B need not be shown in the
final enumeration of the coded sequence.
The given data of the problem are p, q, M, N, y, also r of the -coded
sequence of 10.5. M, r are already stored there (as (M-1) , ro at 38, 43); and
y, too (it coincides with x at 45). The definitions of p, q involve E (p=p+E-l,
q=q+Ic-l), and R originates in the machine. The form in which p is stored accord-
ingly involves E (as p = ip+E-Dp at 41); while the form in which q is stored does
not happen to involve E (as (q-p-1) = (q-p-1) at 44). Hence 41 must be left empty
(or rather, irrelevently occupied) when our present coded sequence begins to ojserate,
and it must be appropriately substituted by its operation. 44 might be used to store
(q-p-1) from the start, but we prefer to leave it, too, empty (i.e., irrelevantly
occupied) and to substitute it in the process. Hence the constants requiring storage
now (apart from M, r, y which are stored in 0-52, cf. above) are p, q, N. They will
be stored in the storage area C. (It will be convenient to store them as (p-1) ,
(a-1) , (N-1) .) The exit- locations of the variable remote connections will also
0 0
be accoomodated in C. The induction index i need not be stored explicitly, since
the quantities k-, k^, k- contain all that is needed to keep track of the progress
of the induction. (The i = i for which the "bracketing", i.e., the induction,
ends, is defined by k- -k^ = 1, cf. above.) k-, k^, k- are position marks, they
will be stored as (q+k?-l) , (q+k7-l) , (q+k^-l) (i.e., (B.k?) , (B.k;) (B.kt)^)
^lo'^io'^io lO lO lO
in the storage area D. Finally, k, when formed (in the form (q+E-1) , i.e.,
(B.E) ) , will be stored in D, replacing the corresponding expression of k^.
The index i runs from 1 to i . In drawing the flow diagreun, it is
convenient to treat the two preliminary steps (the sensing of the sign of zj^
for k = 1 and k = N-M) as part of the same induction, and associate them
ideally with two values of i preceding i = 1, i.e., with i = -1 euid i = 0.
For i = -1, 0 k° may be defined as the value of k for which the sign of zj^
is being tested (this is its role for i g 1), i.e., as 1, N-M, respectively;
while k^, k- may remain undefined for i = -1, 0.
Our task is to calculate k (in the form (q+k-1)^, i.e., (B.E)^); to
substitute p = (p+E-1) and (q-p-1) = (q-p-1) into 41 and 44; and finally to
send the control, not to e, but to the beginning of 0-52, i.e. to 0.
We can now draw the flow diagram, as shown in Figure 10.5. The
variable remote connections OL and 3 are necessary in order to make the differ-
ing treatinents for i = -1, for i = 0, and for i ^ 1, possible (cf. above).
.37-
3
#
«
3IL
(B.kUX= (B.H-)o
to
to
D.Z
3
/^iTV
i? 1
K'^r
(5h
(S>-
(§>■
3
tf.) >-
fi^—^
3
13
J = O
^t= N- M
6
i = -1
4
1= -1
5
J '0
X[= A/ - /W
7
1?1
^, ?. r, M, /V, y.
i
(B.k'), - f^.lJo to D.Z
(.B.i^W - (B.N-M),to 3
M
(B.k), « rS.Dc to i).v5
IZ
fB.k',1 = (B.N-M)^ to D.i
/J
Cfl.K^ = (B.N-M+l^io D.3
l-*i
j*i-* J
14
H
I'/i
•gnr
(B.kj"^^;„= (B./<°)„ to D.Z
(B.kf^i)o= CB.Kpo to 3
/3
(^-p-l\ to 44
D.3 fB.k),
D.2 rS-Kpo
aCB.Kp,
14
(/
(B.kp to D.l
3
J4^
IX
14 -
(K- - kj* + 1 ),
I
I
I
Z,,« , ^,r, 2^ - J X.^ 5 Vk+^T y
D.l (B.
KB.
3(B.
k,')o
ktl
A. I
3 A
y.
FiCURE 10.5
/Vote :
e refers to O of
0-SZ Jn 10. S.
Nurrktrs O - 5Z h-tfer
to O-SZ !n lO.S.
.38.
Regarding the actual coding we make these observations: Since k^, k^
are undefined for i " -1, 0, therefore the contents of D.2, 3 are irrelevant for
i = -1, 0 (cf. the storage distributed at the middle bottom of Figure 10,5). Ihe
forming of (B.k^) in X, with k^ = |i (k^+kp ], is best effected by detouring over
the quantities 2-^o(q+k°-l), 2"38(q+kT.l), 2-3s(q+}i+.l) , because the operation m = [^ n]
is most easily performed with the help of 2"3^, 2"39n: Indeed the right-shift R carries
the latter directly into the former. Tlie transitions between / and 2'^°i (in both
directions) are performed as discussed at the corresponding place in 10.7.
We will use 0-52 in 10.5 just as in 10.7, and the remarks vAich we made
there on this subject apply again.
The static coding of the boxes I-XI follows:
CI
2
1,1
2
3
4
C.3
1,5
6
7
(
11,1
2
3
4
5
6
(to II. 1)
10
11
12
(ai)o
(Pijo
C.l
11,13
Sp
C.2
11,14
Sp
(5-1)
^ 0
C.3
42
h
D.l
s
D.l
11,6
Sp
38
h
42
h
11,9
Sp
q+k?-l
3.1
S.l
45
R
S
5+k?+M-l ]
R
h
h-
Ac
11,13
Ac
11,14
Ac
Ac
D.l
Ac
11,6
Ac
Ac
11,9
Ac
Ac
s.l
Ac
Ac
Ac
Ac
(aJo
(Pi)o
(q-1)
(5^k9-l)^
q-k9-l
(5+k?+M-2)
^ 1 o
(q+k?+M-l)
^1 o
q-tk-'-HVl-l
Yk?
2X
Ik
yk°4M
\ Yk^^i
hk° ^ -
Cc
C
2 Vk°^l
X ^ 2 ^^i ' 2 X"^ '^
-39.
11.13
"
Cc
[
a
Cc
14
--
C
[
P
c
III.l
C.3
2
42
h
3
D.3
s
(to
XI, 1)
C.4
(a2)o
5
(fe)o
IV. 1
C.4
2
11,13
Sp
3
C.5
4
11.14
Sp
C.6
(N-1)
o
IV,5
c.6
6
38
h-
7
C.3
h
8
D.l
S
(to
II.
1)
C.7
(a3)o
8
(P3)0
v.i
c.7
2
11,13
Sp
3
C.8
4
11.14
Sp
5
C.3
6
42
h
7
D.2
s
8
C.3
9
C.6
h
10
38
h-
11
D.3
S
(tc
)IX.l)
VI. 1
C.3
2
C.6
h
3
38
h-
4
42
h
5
D.3
S
(to
XI
.1)
Ac
Ac
D.3
(5-1)
Ac
(012)0
11,13
ttj
Cc
Ac
(Mo
11,14
32
C
Ac
Ac
(N-1)
0
(N-M)
0
Ac
(54N-M-1)^
D.l
(5-^N-M-l)
Ac
(013)0
11,13
0.3
Ac
{Mo
11,14
Ps
Ac
(5-1)
^ 0
Ac
^0
DJ2
^0
Ac
(q-1)
^ 0
Ac
(5+N-2)
^ 0
Ac
(5+N-M-l)^
D.3
(5-tN.M-l)o
Ac
(q-i^o
Ac
(q^-2)^
Ac
(5+M-M-i)^
Ac
(q+N-M)
D.3
(5-tN-M)
Cc
-40-
VII, 1
2
(
VIII, 1
2
(
IX,1
2
3
4
(to IX,1)
(to IX,1)
(to X,l)
X,l
2
3
4
5
6
7
8
(to 11,1)
D.l
D.3
S
D.l
D.2
s
D.2
D.3
h-
42
h
XI, 1
Cc
D.2
D.3
h
S.l
Sp
s.l
(p-1)
R
s.l
Sp
s.l
h
D.l
S
C.9
XI, 1
2
3
4
5
6
7
8
9
The ordering of the boxes is I,
VIII, and II, XI, IX, IX, II must also be the
VIII, X, respectively. This necessitates the
C.9
C.3
h-
D.3
h
41
S
C.3
C.9
h-
42
h-
44
s
e'
c
Ac
D.3
Ac
D.2
Ac
Ac
Ac
(q+kf-1)
^1 o
(5+k?-l)
^1 o
(5+k?-i)
(5+k?-l)
^ 1 o
(q-*7-l)
^ 1 o
(k--kt)
1 1 o
(k--kt+l)
1 1 o
Ac
(q^k--l)^
Ac
(25<^--2)^
s.l
2-3e(2q+k^+k--2)
Ac
2-3s(2q+kt+k^-2)
Ac
2-3e(q+k9.1) =
= 2-3 9(q, ^[k++k-] .1)
s.l
2-i8(q+k?-l)
Ac
(q.k9-l)^
D.l
(5.k°-i)^
Ac
(p.l)^
Ac
(p-5)„
Ac
(p-HT-l)^
41
(p^-l)°
Ac
(q.l)^
Ac
(q.p)^
Ac
(q-p-1).
44
(5-5-1)
II; III, XI; IV; V, IX, X; VI; VII;
immediate successors of IV, VI, VII,
extra orders
IV, 9
II. 1
C
VI, 6
XI, 1
c
VII, 3
IX, 1
c
VIII, 3
IX.l
c
X,9
11,1
c
-41-
As indicated in Figure 10.5, e' is 0.
«!, a'2, Ota, 3i, p2, p3 correspond to 111,1, V,l, VII, 1, IV, 1, VI, 1,
VIII, 1, respectively. Hence in the final enumeration 111,1, V, 1, VII, 1 must have
the same parity and IV, 1, VI, 1, VIII, 1, must have the same parity.
We must now assign C. 1-9, D.1-3, s.l their actual values, pair the 78
orders 1,1-7, 11,1-14, 111,1-3, IV, 1-9, V,l-ll, VI, 1-6, VII, 1-3, VIII, 1-3, D(,l-4,
X,l-9, XI, 1-9 to 39 words (actually two dumny orders, necessitated by the adjusting
of the parities of V, 1 and VIII, 1 to those of 111,1 and IV, 1, respectively, increase
this to 40) amd then assign I,1-XI,9 their actual values. We wish to do this again
as a continuation of the code of 10.5. We will therefore again begin with the
number 53. Furthermore the caitents of D.1-3, s.l are irrelevant like those of
48-52 there. Hence they may be made to coincide with four of these. We therefore
identify them with 48-51 there. Suiiining all these things up, we obtain the
following table:
1.1-7
53 -56
V,l-ll
74'.79'
VIII. 1-3
91'-92'
11,1-14
56 '-63
IX, 1-4
80 -81'
C.1-9
93 -101
111,1-3
63 '-64'
X.1-9
82 -86
D.1.3
48 -50
XI, 1-9
65 -69
VI, 1-6
86 '-89
S.I
51
IV. 1-9.*
69 '-74
VII, 1-3.*
89 '-91
Now we obtain this coded sequence:
53
93
62 Sp'
54
94
63 Sp
55
95
42 h
56
48 S
48
57
59 Sp
38 h
58
42 h
60 Sp'
59
-
R
60
51 S
.
61
R
51 h
62
45 h-
- Cc'
63
- C
95
64
42 h
50 S
65
101
95 h-
66
50 h
41 S
67
95
101 h-
68
42 h-
44 S
69
0 c ,
96
70
62 Sp',
97
71
63 Sp,
98
72
38 h-.
95 h
73
48 S ,
56 C
74
•
99
75
62 Sp'i
100
76
63 Sp,
95
77
42 h ,
49 S
78
95 ,
98 h
79
38 h-,
50 S
80
49 ,
50 h-
81
42 h ,
65 Co
82
49 ,
50 h
83
51 Sp',
51
84
R .
51 Sp
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
h ,
C.
h .
h ,
C ,
S ,
51
56
98
42
65
50
49 S ,
"o
(q-1)
74 °
86°
(N?l)
89 °
91°
(p?l)
48
95
38
50
48
80
48
80
10.7.
The state of 0-52 of 10.5 must be exactly as described at the end of
The durations may be estimated as follows;
I: 275 n, II: 485 u , III: 125 H , IV: 350 ^ , V; 425 u . VI: 225 u ,
VII: 125 a , VIII: 125 u , DC: 150 u , X: 330 u , XI: 350 n.
.42.
Total: I + [II or II X 2 or II x (i^+D] + [HI or (IV + VI) or {{IV + V +
+ (VII or VIII) X (i .1) + K X i + X X (i -1))]+ XI
O 0 0
(the two first alternatives in each bracket [ ] refer to two possibilities which
cEin be described by io = 1 and io = 0)
maximum = (275 +485 (i +1) + (775 + 125 (i -1) + 150 i + 330 (i -1) + 350) n =
O 0 0 0
= (1,090 i + 1,430) u.
o
maximum = (1,090 ^og (N-M.2) + 3610) u « (1.1 =log (N-M-2) + 3.6) m.
Hence the complete interpolation procedure (10.5 plus 10.8) requires
(.9 M2 - .4 M + 1.1 ^log (N-M-2) + 3) m.
10.9 To conclude, we take up a variant of the group of Problems 12-13,
which illustrates the way in which minor changes in the organization of a problem can
be effected ex post, i.e., after the problem has been coded on a different basis.
(In this connection, cf. also the discussion of 8.9.)
The description of the function under consideration in Problems 12 and
13. b, i.e., the two sequences pj^,. .. ,pj^j and xj,. .. ,5<f(4 on one hand, and qj^ qjyj and
y, ...,y|^ on the other, were stored in two separate systems of consecutive memory
locations: p,...,p+M-l and q, ...,q+M-l on one hand, and p,...,p-tN-l and q q+N-1
on the other. (lliese are the two storage areas A and B of those two problems. ) For
Problem 13. a the situation is different, since here qj o^yj alone are stored (at
the locations p, . . . ,p-*M-l, storage area A).
Assume now, that these data are stored together with the p^, x^, or the
q^, y^, alternating. I.e., at the locations p, . . . ,p+2M-l, or p, . . . ,p+2N-l, with p^,
x^ at p+2i.2, p+2i-l,or q^, y^ at p+2i-2, p+2i-l.
Since this variant cannot arise for Problem 13. a (cf. above), and since
its discussion for Problem 13. b comprises the same for Problem 12 (because the coding
of the former requires combining with the coding of the latter, cf. 10.8), therefore
we will discuss it for Problem 13. b.
.43-
We state accordingly:
PROBLEM 13. c.
Same as Problem 13 in its form 13. b, but the quantities yi.-.^.yM and
q]^,...,c|)j are stored in one system of 2N consecutive memory locations:
p, p-»-l,...,p+2N-l in this order: qj, y^.-.-.c^, y^.
We must analyze the coded sequences 0-52 of 10.5 and 53-101 of 10.8
which correspond to Problems 12 and 13. b, and determine what changes are necessi-
tated by the new formulation, i.e., by Problem 13. c.
Let us consider the code of 10.8, i.e., of Problem 13. b, first. The
changes here are due to two causes: First, y- is now stored at p+2i-l instead of
q+i-1; second, since the code of 10.5, i.e., of Problem 12, will also undergo changes,
the substitutions into it will change.
The first group is most simply handled in this way: Assume that p is
odd. Replace the position marks (B. i) , which should be (p+2i-l) instead of
(q+i-1) , by their half values: (i (p+2i-l)) = (Hi + i-1) . We note, for later
o ' 2 o „ 0
use, that this has the effect that D. 3 will contain immediately before XI
(i (p+2K-l)) instead of (B.C) .
2 0 0
Returning to the general question: we must charge the coding of all
those places, where such a position mark is used to obtain the corresponding y-.
The values of these position marks must be doubled before they are used in this
way. Apart from this, however, we must only see to it that q is replaced by
Eii . Tliis affects C. 3 (of 10.8), i.e., 95.
The use of position marks in the above sense occurs only in II, when
yj^ and yi^+^^ are obtained. This takes place at 11,6 and 11,9. However, the position
marks in question originate in the substitutions 11,2 and 11,5, and it is therefore
at these places that the changes have to apply.
We now formulate an adequate coding to replace II. 2-4, so as to give
11,2 and 11,5 the desired effect. Note that at this point D.l contains
(i (p+2k?-l)) = (Eli + k?-!)^ instead of (q+k^-l)^ = (B.k?)^. Hence after 11,1
the accumulator contains (- (D+2k°-l)) .
9 r \ o
.44-
11,1.1
L
2
II.6
Sp
3
38
h
4
38
h
5
42
h
6
42
h
Ac
(p.2k°-l)^
11,6
p+2k°-l
Ac
(p+2k?+M-2)
'^ 1 0
Ac
(p+2k°+2M-3)^
Ac
(p+2k?+2M.2)^
Ac
(p+2k°+2M-l)^
Thus we must replace the three orders II, 2-4 by the six orders 11,1.1-6.
Hence the third and second remarks of 8.9 apply: We replace 11,2-3 by 11,1.1-2, then
11,4 by
11,1.2,1 11,1.3 C
and let 11,1.3-6 be followed by
II. 1.7
II. 5
Then 11,1.3-7 can be placed at the end of the entire coded sequence. We will give a
final enumeration that expresses these changes after we have performed all the changes
that are necessary.
The second group must be considered in conjunction with the code of 10.5,
i.e., of Problem 12. In the code of 10.8 only XI is involved in the operations of
this group. In the code of 10.5 the situation is as follows: Replace the position
marks A.i, B. i (of 10.5), which should be (p+2i-2)^, (p+2i-l)^, i.e., (p+2ir+2i-4)^,
(p+2I^+2i-3) , instead of (p+i-1) , (q+i-D^, i.e., (p+R+i-2)^, (5+E'+i-2)^, as nearly
by their half values as possible. Since p is odd, we will use the half value of the
second expression: (- (p+2Ic+2i-3) ) = (E — + I^ + i-2) . Then we must change the
'^ 2 ° 2 °
coding of all those places where such position marks are used to obtain the corres-
ponding p- and y-: The values of these positicxi marks must be doubled before they
are used for a yj , ernd then decreased by 1 before they are used for a p^ . We must
also take care that the storage locations, which supply the modified (A.i) , (B.i)
position marks, are properly supplied themselves. Apart from these, however, we
must only see to it that XI (of 10.8) produces (~ (p+2k-l))^= (E^l + K + i-2)^ji=i
instead of (p+Ic-1) = (p+lt+i-2) j=]^. Since p, q, or p, q, no longer appear inde-
pendently, it is not necessary to projluce (q-p-1) in XI.
The use of position marks in the above sense occurs only in III, V,
and VII (of 10.5), when p-^, p-, and x-, Xj+l are obtained. These take place at
111,3, V,2, and VII, 14, 15,21. However, the position marks in question originate
in the substitutions 111,2, V,l, and VII,8,9,13, and it is therefore at these
places that the changes have to apply.
.45.
TKe position marks (A.i) , (B. i) are supplied from E.2, which in
turn is supplied by II and DC (of 10.5). II will no* supply to E.2
(i (p+2R+l)) = (Eli +ir+ i-2) |..2 instead of (p+1) = (p+R) = (p+K+i-2) |. ,.
The function of DC is actually performed by VIII, and it will maintain in E.2
(i (p+2E-+2i-l))^= (E^ + E + i-1)^ instead of (p+id)^ = (p+E+i-D^. If we keep
these facts in mind when modifying III, V, VII, then we need not change II, IX
(i.e., VIII).
We now give adequate codings, to insert before 111,2 and before V,l,
and also to replace VII, 7 before VII, 8, 9, and to replace VII, 10-12 before VII, 13,
so as to give 111,2, V,l, and VII, 8, 9, 13 the desired effect. Note that at these
pyoints, as we observed above, D.4 (i.e., 41, substituted from XI of 10.8) contains
(i (p+2ir-l))^, and E.2 contains (| (p+2ir+l))^ and (1 (p+2ie+2i-l))o, respectively.
Hence before 111,2, V, 1, and VII, 7, the accumulator contains (— (p+2Ic-l)) ,
(i (p+2f+2i-l)) and (i (p+2K+2i-l)) , respectively.
2 0 2 o '^ '
111,1.1
L
2
D.5
h-
V.O.l
L
2
D.5
h-
VII, 6.1
D.5
h-
2
L
VII, 9.1
E.2
2
D.l
h
3
E.l
h-
4
L
Ac
Ac
Ac
Ac
Ac
Ac
Ac
Ac
Ac
Ac
(p+2ir.l)^
(p+2K-2)°
(p+25J+2i.l)^
(p+2E+2i-2)^
(% (p+2E+2i-l)-l)^
(p+2ie+2i-3)^
(% (p+2R+2i-l))^
(H (p+2I?-2i.l)4M-l)^
{% (p+2E+2i-l)+h-l)
(p+2ir+2i+2h-3)
Thus we must insert the orders 111,1.1-2 before 111,2; insert the orders
V,0.1-2 before V,l; replace the order VII, 7 by the two orders VII, 6,1-2; and replace
the three orders VII, 10-12 by the four orders VII, 9. 1-4. Hence the third and second
remarks of 8.9 apply again: We replace 111,1 by
111,0 111,1.0 C
and let 111,1.0 coincide with 111,1 and be followed by 111,1.1-2 and then by
111,1.3 111,2 C
Next we replace V, 1 by
V.O V.O.l c
and let V,0.1 be as specified above, and be followed by V,0.2, then by V, 1, and
finally by
.46-
V.1.1
V.2
Finally we replace VII, 7 and VII, 10-12 by VII, 6. 1-2 and VII, 9. 1-4. It is best to
effect this as a replacement of the entire piece VII, 7-12 by VII, 6. 1-2, VII, 8-9,
VII, 9. 1-4 (a total of six orders to be replaced by a total of eight orders). Tliis
means that we replace VII, 7-11 by VII, 6. 1-2, VII, 8-9, VII, 9.1, then we replace VII, 12
by
VII, 9. 1.1 VII, 9.2 C
and let VII, 9. 2-4 be followed by
VII, 9.2. 5 VII, 13 C
Then 111,1.0-3; V, 0.1-2, V.l, V,l.l; VII, 9. 2-5 can be placed at the end of the entire
coded sequence. We will give a final enumeration that expresses these changes after
we have performed all the changes that are necessary.
Returning to the second group
affects only XI (of 10.8). We saw above that
in the coding of 10.8, we not
at XI must produce (— (p+2It-l
te that it
-^ ,f, — I)) and
substitute it into 41, smd that this is all that has to be done there. However, we
noted before that D. 3 before XI contains precisely {- (p+2ir-l)) . Hence XI, 1-9
(i.e., XI in its entirety) may be replaced by
XI,
3.1
D.3
2
41
S
3
e'
c
Ac
41
(j (p+2K-l))^
(1 (p+2R-l))
Hence we replace XI, 1-3 by XI, 0.1-3, and since operations of the code of 10.8 end at
this point, XI, 4-9 may be left empty.
To conclude, we observe that C. 3 must contain (El_) = (E-i - 1)
2 0 2 °
instead of (q-1) , and that neither p nor q are needed in any other form, so that
C. 9 may be left empty.
We are now in possession of a complete list of all changes of both
codes 0-52 of 10.5 and 53-101 of 10.8. We tabulate the omissions and modifications
first, and the additicns afterwards.
Ohiissions and Modifications:
From
To
(10.8) •
11,2-3
11,1.1-2
II. 4
11,1.2.1
(10.5)
111,1
111,0
V.l
V,0
VII, 7-8
VII, 6.1-2
VII, 9-10
VII, 8-9
VII, 11
VII, 9.1
VII, 12
VII, 9. 1.1
.47.
Cbiissions and Modifications (cont. ):
From
To
(10.8) : XI, 1-3
XI, 4.9
C.3
C.9
XI, 0.1-3
Empty
2 0
Empty
Additions:
(10.8) :
11,1.3-7
(10.5) :
111,1.0-3
(10.5) :
V, 0.1-2
v,i
V.1.1
(10.5)
VII, 9. 2-5
We can use five of the six empty fields )Q,4-9 (from 10.8) to acconriodate
11,1.3-7 (from 10.8) -- say XI, 4-8. C.9 is the last word of the code: 101, hence we
can place 111,1.0-3; V,0.1-2, V,l, V,l.l, VII, 9.2-5 (from 10.5) in a sequence that
begins there. They will then occupy these positions:
111,1.0-3
V. 0.1-2
101-102'
103-103'
v.i
V.1.1
104
104'
VII, 2-5
105-106'
(All these are from 10.5.)
Now we can formulate the final form of all changes in the coded sequences
0.52 and 53.101:
5
10
14
15
16
17
57
101 c ,
103 C ,
42 h-
L ,
18 Sp'
21 Sp',
49
105 C ,
L .
59 Sp
66 C
50
41 S
e'C
38 h
38 h
42 h
42 h
58 C
--
58
65
66
67
68
69
The following durations are affected:
(10.5) :
(10.8)
III:
+ 130 IX
V:
+ 130 n
VII:
+ 130 n
II:
+ 180 ^
K:
- 225 u.
95
(^)o
101
41 2 ,
L
102
42 h-.
5 C
103
L ,
42 h-
104
10 Sp',
10 C
105
38 h ,
48 h-
106
L .
17 C
.48-
Total: (10.5) : (130 + 130 (M-1) + 130 MiMJi ) ^ =
= (65 M= + 65 M) u» (.07 M* + .07 M) m.
Total: (10.8) : (180 (i + 1) - 225 i ) ^A = (- 45 i„ + 180) \i
0 0 o
maximum SS . 2 m.
Hence there is no relevant change in the estimate at the end of 10.8.
-49.
11.0 CODING OF SOME COMBINATORIAL (SORTING) PROBLEMS
11.1 In this chapter we consider problems of a combinatorial, and
not analytical character, lliis means, that the properly calculational (arith-
metical) parts of the procedure will be very simple (indeed almost absent), and
the essential operations will be of a logical character. Such problems are of
a not inconsiderable practical importaince, since they include the category usu-
ally referred to as sorting problems. They are, furthermore, of a conceptual
interest, for the following reason.
Any computing machine is organized around three vital organs: The
memory, the logical control, and the arithmetical organ. The last mentioned
organ is ein adder-subtractor-multiplier-divider, and the multiplier is usually
that aspect which primarily controls its speed (cf . the discussions of Part I. )
The efficiency of the machine on all analytical problems is clearly dependent
to a large extent on the efficiency of the arithmetical orgein, and thus primarily
of the multiplier. Now the non-analytical, combinatorial problems, to which we
have referred, avoid the multiplier almost completely. (Adding and subtracting
is hardly avoidable even in purely logical procedures, since the operations are
needed to construct the position marks of memory locations 2ind to effect size
comparisons of numbers, by which we have to express our logical alternatives. )
Consequently these problems provide tests for the efficiency of the non-arith-
metical parts of the machine: The memory and the logical control.
11.2 We will consider two typical sorting problems: Those of
meshing and of sorting proper. There are, of course, m8iny others, and many
variants for each problem, but these two should suffice to illustrate the main
methodical principles.
In order to formulate our two problems, we need the definitions which
folic
We operate with sequences of complexes. A complex X = (x; u,,...,u )
consists of p+1 numbers: The principal number x and the subsidiary numOers
u ,...,u . p is the order of the complex. A sequence S= (X X '^
consists of n complexes X = (x ; u. ,...,u ). n is the length of the
sequence. Throughout what follows we will never vary p, the (arbitrary but) fixed
order of all complexes to be considered. We will, however, deal with sequences
of various lengths.
A sequence 5= (X* ,...,X " ) is a monotone if the principal elements
x of its complexes X = (x, u;,...,u) form a monotone, non decreas-
ing sequence:
(1) x'" g x*=" g ... ^
(1) <r „(2) ^ < ^<
S X"
A sequence T - (Y Y") is a permutation of another sequence S - (X
...,X*" )of the same length, if for a suitable permutation i — »i' of the
i = 1 n
(2) Y<'' = X<i'' (i = l,...,n).
-50-
Given two sequences 5 = (X'^' X<°'), T=(Y<1' Y'"') (of not necessarily
equal lengths n, m), their stun is the sequence [5, T] = (X<^' X'"\ V'^ ',...,¥<■ ')
(of length n + m).
We can now state our two problems:
PROBLEM iU. (Meshing)
Two monotone sequences S, T, of lengths n, m, respectively, are stored
at two systems of n(p+l), m(p+l) consecutive memory locations respectively:
s, s+1, . . . , s+n(p+l)-l and t, t+1,..., t+m(p+l)-l. An accomodation ftr a sequence
of length n + m, cmsisting of (n + m)(p + 1) consecutive memory locations, is
available: r, r+l,..., r+(n-hn)(p+l)-l. The constants of the problem are p, n,
m, s, t, r, to be stored at six given memory locaticns. It is desired to find
a monotone jjermutation R of the sum [S, T] , and to place it at the locations
r, r+l,..., r+(n-*m)(p+l)-l.
PROBLEM 15. (Sorting)
A sequence 5 (subject to no requirements of monotony whatever) is stored
at n(p+l) consecutive memory locaticxis: s, s+1,..., s+n(p+l)-l. The constants of
the problem are s, n, p, to be stored at three given memory locations. It is
desired to find a monotone permutation S* of 5, and to replace S by it.
11.3 We consider first Problem 14, which is the simpler one, eind whose
solution can be c aiveniently used in solving Problem 15.
u(i) .. (i)
We have 5 = (X<1> X<°'), T= (¥<!' Y<-') with X< ^ ' = (x''';
., ..... u'i'), Y<J' = (y<j'; v{j\... v^j'), and we wish to form fl = (Z '^*,...,
2(n+m)) ^^ith Z'"*' = (z^''^ w|''\... ,w*^').''which is a monotone permutation of [S, T],
Forming /f can be viewed as an inductive process: IfZ ,...,Z for
a k=l n+m, have already been formed, the inductive step c msists of forming
Z . It is preferable to allow k = n+m+l,tcK), in the sense that when this value
of k is reached, the process is terminated. Assume, therefore, that we have formed
Z ,...,Z for a k = 1, . .. , n+m+l. It is clear, that we may assume in addition,
that these Z^^ ' . . . . .Z""" ^ ' are the X' ^ * X'^k' together with the Y< ' ' Y'-i*.
for two suitable i, , i, with
(1) i|^+j^ = k-l i^=l,...,n, j^ = l,...,m.
Then we have the following possibilities:
(a) i. =n. j, ~ m : By (1) k= n+m+l, hence, as we observed above,
B is fully formed, and nothing remains to be done.
(b) Not i =n, j =m: By (1) k ^ n +m, hence, as we observed above,
R is not fully formed, and Z"* must be formed next. Clearly, we
may choose Z"'' as one of X'^k"^'' and Y*Jk+l>, we must decide which.
so that u = 0 for z"'' = X<'k'^" and
k
We introduce a quantity W. .
(J. = 1 for Z<'''=Y'Jk+i)/
.51-
(i). =
1^ - 0 implies i^+i = i^ "^ 1. j^+i = j^! "^k = ^ implies i^+j = i^,
j^+l ~ J|| "'^^- '^k is determined according to the following rules:
(b.l) i^ = n, hence j^^ * m: S is exhausted, hence w = 1.
^''•2) j^ = m, hence i^ + n: T is exhausted, hence (») = 0.
(b.3) i^ * n, j|^ * m: Neither S nor T is exhausted. We must
distinguish further:
(b.3.1) x*'k"^^* < y<Jk"^'': Necessarily U)^ = 0.
(b.3.2) x'»k*^' > y'Jk+": Necessarily U)^ = 1.
(b.3. 3) x''k*'> = y^Jk"^^*: Both W^ = 0 and OJ^ = 1 are acceptable. We
choose W. = 0.
As pointed out above, (a), (b) describes an inductive process which runs
over k = 1,..., n+m+l. It begins with k = 1 and ^l ~ Jl ~ '^ (owing to (1)), and
then progresses from k to k+1, forming the necessary i , j and w as it goes along.
It is convenient to denote the locations s and t, where the storage of the
sequences 5 and T begins, by a conmon letter and to distinguish them by an index:
(2) s" = s, s^ = t.
Correspondingly, let A and A be the storage areas corresponding to the two inter-
vals of locations from s to s +n(p+l)-l and from s to s + m(p+l)-l. In this way
their positions will be A .1 n(p+l) and A .1,..., m(p+l), where A .a and A .b
correspond to s +3-1 and s +b-l, and store x for a = (i-1) (p+1) +1, u ' for
a - (i-l)(p+l)+q+l, y<j' for b = (j-l)(p+l)+l, v<J> for b = (j-l)(p+l)+q +1.
respectively. Next, let B be the storage area intended for the sequence fi, corres-
ponding to the interval of locations from r to r+(n+Tn)(p+l)-l. In this way its
positions will be B.l,..., (n+m)(p+l), where B.c corresponds to r+c-1, and is
intended to store z'^' for c = (k-l)(p+l)+l, w"'* for c = {k-l)(p+l)+q+l,
respectively. As in several previous problems, the positions of A , A , and B
need not be shown in the final enumeration of the coded sequence.
Further storage capacities are needed as follows: The given data
(the constants) of the problem, s , s , r, n, m, p, will be stored in the storage
area C. (It will be convenient to store them as (s )q, (s )g, r^, (n(p+l))Q,
(m(p+l))Q, (p+l)g. We will also store 1q in C. ) Next the induction indices
k, q' will have to be stored. It is convenient to store i. , j. , too, along
with k, while it turns out to be unnecessary to form and to store U) explicitly.
These indices i, j, k, q' are all relevsmt as position marks, and it will prove
convenient tostcre in their place (s° + i (p+1 ) )q, (s' + j (p+1 ) ) q, ( r + (k-1 )(p+l) )q
(s"+h(p+l) +q'-l)o, (r +(k-l)(p+l) +q'-l)o (i.e. (A° . i(p+l )+l)o , (A' . j (p+D+D^,
(B.(k-l)(p+l)+l)o, (A'^.h(p+1) +q')o, (B.(k-l)(p+l) +q')o; here(.) = u)^, and h = i
or j for U) = 0 or 1, respectively) Note, that two position marks that correspond
to q' are being stored. The three first quantities will be stored in the storage
area D, and the two last ones in the storage area E.
-52-
The static (
:ocl
ing of
the
boxes I-X follows
(s'')o
CI
Ac
D.l
S
D.l
(sMo
C.2
Ac
D.2
S
D.2
C.3
Ac
D.3
S
D.3
(to II, 1)
We CEUi now draw the flow diagram
coding obtains from this without a need for
CI
I.l
2
C2
1.3
4
C3
1.5
6
C4
II, 1
2
3
4
C5
111,1
2
3
4
IV, 1
2
3
4
as shown in Figure 11.1. The actual
further conments.
(to 111,1)
(to V,l)
(n(p-t
■l))o
D.l
CI
h-
C4
h-
IV, 1
Cc
(m(p+
l))o
D.2
C2
h-
C5
h-
VI, 1
Cc
D.2
C2
h-
C5
h-
(to VII, 1)
V.l
2
3
4
5
D.l
•V,6
D.2
V.5
Co
Sp
Sp
s^ +j(p+l)
h-
s^+Kp+l) h-
VI. 1 Cc
(to VII, 1)
Ac
Ac
Ac
Ac
(s°),
(sM(
(sM„
(r)o
(r)„
(s° +i(p+l))o
(i(p+l))o
((i-n)(p+l))o
Ac
(s^+j(p+l))„
Ac
(j(p+l))o
Ac
((j.m)(p+l)),
Ac
(s'^j(p+l))o
Ac
(j(p^l))o
Ac
((j-m)(p+l))o
Ac
(s°+i(p+l))(,
V,6
s''+i(p+l)
Ac
(s^+j(p+l))o
V.5
s^ +j(p+l)
Ac
yj+1
y . , - X. ,
-53-
D.i (a: I),
3 i^.\).
©-
1
CA'.I\, toD.l
(A'.iX to Z
(B.% to 3
O-Yl
D.l (A'.i(ion) -^ l)t
Z(A'.f(f*0-tl)»
"3
3
-"♦-
f-
K'-
' t
■i
■ K
, a -n ■
JL -f 3 f -»• Jg
SL
y: -1 3 t*
' -
±L
n
SE
i'
= i + )
f
= /
CO
= o
h
= J
2
W y/l*)
(A'.j,Cp-hi)*ii UE.i
10
D.I
2
£.1
Co
MA
[?5
/o
>.-»■
F^
vnr
(B.K (r*')-i-')o to D.3
ft) B.(K-lXirH)*l
P. 3
«?'
H
^
K>
E.I
Z
B.df-iXfit-O-n
(A.h(p*i)*f'-K).
(B.(K-i)(r>-ih<(fi),
i""
- for .f>f'
"PT
W.-
ia;
Y io d.(K-iXf*i)->-<j'+i
ca'^h (r>+i)->-f'-i-i)o to E.I
(B.CK-l)(pi-i)-Kf'+l).i« 2
^'. -5' »", «, '^; A»
IGURE
11.1
£./ (A'lhip^O-'-f'L
^ (B.(K-o(/^ii-^<r'i
B.(K-0(p*i)i-i
A° i (p.n) i-l
A'.i. (p*i) ff-f-i
■ '*>
-54-
C.6
(p+l)o
vi.i
D.l
2
E.l
S
3
C.6
h
4
D.l
s
(to
VIII
1)
VII, 1
D.2
2
E.l
s
3
C.6
h
4
D.2
s
(to
VIII
1)
VIII, 1
D.3
2
VIII, 9
Sp
3
E.2
s
4
C.6
h
5
D.3
s
6
E.l
7
VIII, 8
Sp
8
_.
s'^+h(p+l)
r+(k-l)(p+l)
]
S]
Ac
E.l
Ac
D.l
Ac
E.l
Ac
D.2
Ac
VIII, 9
E.2
Ac
D.3
Ac
VIII, 8
Ac
(s^+ilp+D),
(s"+i(p+l))o
(s'' + (i+l)(p+l))o
(s°+(i+l)(p+l))o
(s^+j(p+l))o
(s^+j(p+l))o
(s^+(j+l)(p+l))o
(si+(j+l)(p+l))o
(r+(k-l)(p+l))o
r+(k-l)(p+l)
(r+(k-l)(p+l))o
(r+k(p+l))Q
(r+k(p+l))o
(s'^+h(p+l))„
s'^+h(p+l)
(to IX, 1)
10
r+(k-l)(p+l)+q' S]
(toX,l)
B.(k-l)(p+l)+l z"'>
C.7
lo
IX,1
E.2
Ac
(r+(k.l)(p+l)+q'-l)o
2
C.7
h
Ac
(r+(k-l)(p+l)+q')o
3
IX,10
Sp
IX, 10
r+(k-l)(p+l)+q'
4
E.2
S
E.2
(r + (k-l)(p+l)+q')o
5
EJ
Ac
(s'^4h(p+l)+q'-l)o
6
C.7
h
Ac
(s^+h(p+l)+q')o
7
IX, 9
Sp
IX, 9
s"^ +h(p+l)+q'
8
9
E.l
S
E.l
(s'^+h(p+l)+q')o
s'*'+h (p-
H)+q' ]
Ac
a
(k)
B.(k-i)(p+i) +q'+i w*";
q
-55-
1
E.2
2
D.3
h-
3
C.7
h
4
11. 1
Cc
(to IX.l)
Ac
(r+(k-l)(p+l>+q')o
Ac
(q'-p-Do
Ac
(q'-p)o
The ordering of the boxes is I, II, III, V, VII, VIII, IX, X, and VII,
VIII, IX must also be the iinnediate successors of IV, VI, X, respectively. This
necessitates the extra orders
IV. 5
VII, 1
c
VI,5
VIII, 1
c
X,5
IX, 1
c
We must now assign C. 1-7, D.1-3, E.1-2 their actual values, pair the 59
orders 1,1-6, 11,1-4, 111,1-4, IV,l-5, V,l-7, VI, 1-5, VII, 1-4, VIII, 1-9, IX, 1-10.
X,l-5 to 30 words and then assign I,l-X,5 their actual values. These are expressed
in this table:
1,1.6
II. 1-4
111,1-4
V.1.7
0 -2'
VII, 1-4
3 .4'
VIII, 1-9
5 -6'
IX,1-10
7 -10
X,l-5
10'-12
12'-16'
17 -21'
22 -24
IV, 1-5
VI, 1-5
C.1-7
D.1-3
E.1-2
24 '-26'
27 -29
30 -36
37 -39
40 -41
Now we obtain this coded sequence:
0
30 .
37 S
1
31 .
38 S
2
32 ,
39 S
3
37
30 h-
4
33 h-
24 Cc'
5
38
31 h-
6
34 h-
27 Cc
7
37
9 Sp'
8
38
, 9 Sp
9
-
, - h-
10
27 Cc
, 38
11
40 S
, 35 h
12
38 S
, 39
13
16 Sp
, 41 S
14
35 h
39 S
15
40
16 Sp
16
-
- S
17
41
36 h
18
21 Sp'
, 41 S
19
40
, 36 h
20
21 Sp
, 40 S
21
.
, - s
22
41
, 39 h-
23
36 h
, 3 Cc
24
17 C
, 38
25
31 h-
, 34 h-
26
e Cc
, 10 Cc'
27
37
, 40 S
28
29
30
31
32
33
34
35
36
37
38
39
40
41
35 h ,
12 C,
(s°)o
(sM„
(n(p+l))o
(m(p+l))o
(p^Do
37 S
The durations may be estimated as follows:
I: 225 u, II: 150 u, III: 150 ^, IV: 200 u, V: 275 u, VI: 200 n, VII: 150 u,
VIII: 350 u, IX: 375 ^i, X: 200 n.
_ , ^ / II + (III or (III +V) or IV) + (VI or VII) +)
Total: I -U VIII . (IX . X) x p / x („ .^) Mil*
IV)
.56-
maximum = (225 + (150 +425 +200+350+575 xp) x (n + m) + 350) ^ =
= ((575 p + 1,125) (n + m) + 575) ^i »=>
«^.6 ((p + 2) (n + m) + 1) m
This result will be analyzed further in 11.5.
11.4 We pass now to Problem 15, which will be solved, as indicated
above, with the help of the solution of Problem 14.
We have 5 = (X']' X*"') with X'^' = (x'^'; u'^* u^^'), and we
wish to fonii an S* = (X' ,...,X ), which is a monotone permutation of S.
This can be achieved in the following manner: If a certain permutation
S*° - (X .....X*" ) of 5 has been found, which may not yet be fully monotone,
but in which at least two consecutive intervals X*"" ', ...,X ''''"^' and
X +' , . . . ,X ''+*+J * are (each one separately) monotme, then we can mesh
these (in the sense of Problem 14), and thereby obtain a new permutation
5*o° =x<l'°°> X'"'°°') of 5*°, i.e. of 5, for which the whole interval
X X "'"*■*■•'" is monotone. Thus we can convert two monotone
intervals of the lengths i, j into one of the length i + j. The original 5
is made up of monotone intervals of length 1, since each X (separately) may
be viewed as such an interval. Hence we can, beginning with these monotone
intervals of length 1, build up monotone intervals of successively increasing
length, until the msLximum length n is reached, i.e. the permutation of S at
hand is monotone as a whole.
This qualitative description can be formalized to an inductive process.
This process goes through the successive stages v = 0, 1, 2 In the stage
V a permutation S*^ =(X ,...,X " ) of S is at heind, which is made up of
consecutive intervals of length 2^, which are (each one separately) monotcne.
(Since n may not be divisible by v, the length of the last interval has to be
the remainder r of the divisioi of n by 2^, r < 2^. If n is divisible by 2'',
we should put r - q and rule this interval to be absent, but we may just as
well put r = 2*, and still rule it to be the last interval.) Now a sequence of
steps of the nature described above will produce a new permutation S*^ of 5*",
i.e. of S, in which the monotone intervals of length 2^ in S" are pairwise
meshed to monotcne intervals of length 2'"'" in S*^ . (The end-effect for v+1
can be described in the fame terms as above for v.) This inductive process
begins with v =0 jmd S*" = S. It ends when a v with 2'' ^ n has been reached,
the corresponding S*^ is the desired (monotoie) 5*. (Note, that at this jx)int
there is only one interval: It is the final interval of length r 12" referred
to above, in this case with r =n . ) Using the function <z> , which denotes the
smallest integer ^ z, we may therefore say that this process terminates with
V = <^log n>.
The induction over v = 0, 1, 2,..., <^ log n> is, however, only the
primary induction. For each v we have <^ — ^ intervals of length 2" (cf. above),
these form<y i <^-i^^ = <\-^)> pairs, which have to be meshed to <^-^^ intervals
of length 2"'^ (cf. above), in order to effect the inductive step from v to v + 1.
.57.
If we enumerate these interval pairs by an index w = 1,..., <^ — '^'^^ i then it becomes
clear that we are dealing with a secondary induction, of which w is the index.
We can now state the general inductive step with complete rigor:
Gjnsider a v = 0, 1, 2, . . . , and assume that the permutation
5*' = (X X " ) has already been formed. We effect a secondary induction
over a w = 0, 1, 2 Assume that a certain w has already been reached. Then
2^ w ^ n. We now have to mesh two intervals of the length n^, m_^, i.e. X with
i = 2'+^w + l,..., 2»+lw+n^ and X<j"* with j + 2'+'w + n^ + 1 2''+lw +n^ +m^.
Ordinarily i\,, ~ "U ~ 2", i.e. this is the case when both these intervals can be
accomodated in the interval l,...,n. Thus the condition fcr this case is
2»+ (w+1) g n. Otherwise, i.e. for 2^'*' (w+1) > n, we have two ptossibilities:
First: n^ = 2' if this interval can be accomodated in the interval l,...,n, i.e.
if 2^+ w+2' g n. nr, is then chosen so as to exhaust what is left of the interval
l,...,n, i.e. m^, = n - (2" w +2*). Thus the condition fcr this case is
2'+'(w+l) > n ^2'+^w + 2\ We may include 2'+^(w+l) = n, too, since the formulae
of the present case coincide then with those of the previous one. Second: Other-
wise, i.e. for 2^'''w +2^ >n, the second interval is missing "U ~ 0- % ^^ then
chosen so as to exhaust what is left of the interval l,...,n, i.e. n^ = n - 2^ w.
Thus the condition for this case is 2"+ w + 2^ > n (zrnd, of course, i 2^"*' w). We
may include 2^* w + 2' =f n, too, since the formulae of the present case coincide
then with those of the previous one. These rules can be sunned up as follows:
f %- 2^ . -^ = 2^
for 2^+^ (w+1) i n,
(3) < "w = 2' ' "\v = " - (2'"''w+2»)
^ for 2'^Hw+l) ^ n i 2»'-iw +2^
n^ = n-2'+^w , % = 0
^ for 2'+lw + 2» ^ n (^ 2^+^w).
If 2''*^(vi+l) < n, then the (secoidary) induction over w continues to w + 1; if
2»+l(w+l) ^ n, then the induction over w stqps. If the induction over w stops
with a w > 0, then the (primary) induction over v coitinues to v + 1; if the
induction over w stops with w = 0, then the induction over v stops. At any rate
these meshxngs form the permutation S*'"^' . If the induction over v stops with
a certain v, then its S*'+ is the desired S*.
There remains, finally, the necessity to specify the locations of S*'
and 5*'*\ which control the meshing processes that lead from S*' to ^S*'* .
Assume that 5*' occupies the interval of locatiorrs from a " to a ' ♦T»(p+1)-1,
and S""^' similarly the interval of locations from a*'"^" to a*'"^'* + nfp+l)-l.
Then the meshing process which corresponds to a given w meshes the sequences that
occupy the intervals from a*'' +2'''*w(p+l) toa'"' + (2'''''w +n^)(p+l)-l and from
a<»> +(2»+'w +n^)(p+l) to a*'' +(2'**w +n^ +in^^)(p+l)-l, and places the resulting
sequence into the interval from a*'+* > +2'+'w(p+l) to a' '*' ' + (2' + 'w + n^ + m„)(p+l)-l .
The meshing process is that one of Problem 14.
-58-
We distinguish the constants of that problem by bars. The above specifications
of the locations that are involved can then be expressed as follows:
(4)
<
/^s" =a<^> + 2^+»w (p+1),
s^ =a<^> +(2^+lw+n^)(p+l).
^
= "w'
= P
Clearly the interval from a to a +n(p+l)-l and the interval fron a to
a +n(p+l)-l must have no elements in conmon .
We need such £in a , i.e. an interval from a to a +n(p+l)-l,
for every v for which S*" is being formed. It is, however, sufficient to have
two such intervals which have no elements in conmon, say from a to a+n(p+l)-l
eind from b to b +n(p+l)-l. We can then let a alternate between the two values
a and b, i.e. we define
(5)
■M
[- a for V even
(0)
Hence a *" ' - a.
Consequently
(6)
It b for V odd
but 5* = S, hence the statement of IVoblem 15 requires a
s - a.
(0) =
Thus a is the s of Problem 14, and b is any such location such that the interval
from a to a +n(p+l)-l and the interval from b to b+n(p+l)-l have no elements in
conmon .
we want a'^+^' =a^*"
We want the final -S* to occupy the location of the original S, i.e.
a for the final v with S"+^ =5*. I.e. this v+1 should
be even. We saw further above, that the induction over v can stop when the
induction over w stops with w=0, i.e. when 2^+ ^n. This v+1 may be odd; let
us therefore agree to perform one more, seemingly superfluous, step from v to
v+1. I.e. we will terminate the induction over v when
(7) 2"+^ ^ n and v+1 even, i.e. a<^+^' = a.
Hence this v + 1 is the smallest even X with 2 2 n, i.e. 2A.' for the smallest
integer X' with 2
(8)
^^' J n; i.e. 4^' ^ n. This means that
+1 = 2 <*log n> .
-59-
In the coded sequence that we will develop for our problem, the coded
sequence that solves Problem 14 will occur as a part, as we have already pointed
out. This is the coded sequence 0-43 in 11.3. We propose to use it now, and to
adjust the coded secjuence that we are forming accordingly.
This is analogous to what we did in 10.6 and 10.7 for the Problems 13. a
and 13, b: There the coded sequence formed in 10.5 for Problem 12 was used as part
of the coded sequences of the two former problems. There is, however, this diffe-
rence: In 10.6, 10.7 the subsidiary sequence (of Problem 12) was attached to the
end of the main sequences (of Problems 13. a, b), while now the subsidiary sequence
(of Problem) 14) will occur in the interior of the main sequence (of Problem 15) —
indeed it is a part of the inductive step in the double induction over v, w. The
constants of Problem 14 have already been dealt with: They must be substituted
according to (4) above.
In assigning letters to the various storage areas to be used, it must
be remembered, just as at the corresponding points in 10.6, 10.7, that the coded
sequence that we are now developing is to be used in cmjunction with (i.e. as
an extension of) the coded sequence of 11.3. It is therefore again necessary
to classify the storage areas required by the latter: We have the storage areas
C-E, which are incorporated in the final enumeration (they are 30-41 of the 0-41
of 11.1); and a", a* and B (i.e. 1° i° + S (p+l)-l; s\ . . . , i' + Si (p+D-l
and r,..., r + (n+in)(p+l)-l) , which will be part of our present A, B (i.e. of
a a +n(p+l)-l and b, . . . , b +n(p+l)-l, they will be a*'' + 2' + lw(p+l), . . . ,a'' * +
+ (2'+lw +n^)(p+l)-l; a<^' +(2'+lw+n^)(p+l),..., a*' ' +(2'+!* +n^+ m^)(p+l)-l,
and a*^-'^' +2' + Mp+l) a<'+> '+(2^+^ +n^ +m^)(p+l)-l, cf. (4) above).
Therefore we can, in assigning letters to the various storage areas in the present
coding, disregard those of 11.3.
Let A and B be the storage areas corresponding to the intervals from a
to a+n(p+l)-l and from b to b+n(p+l)-l. In this way their positions will be
A. 1,. . . ,n(p+l) and B. 1 n(p+l), where A.i and B. i correspond to a+i-1 and b+i-1.
A will store 5 at the beginning and S* at the end of the procedure. B may be at
any available place, and we assume it to be irrelevantly occupied. In the course
of the procedure A and B are the alternate values of A (for a = a and b,
i.e. for V even and odd, respectively), and 5 is stored at A * while S ' or
S*'"'" ' is being formed. All these storages are arr2inged like the storage of S
at A° in 11.3.
The given data of the problem, a, b, n, p, will be stored in- the
storage area C, with the exception of p. (It will be convenient to store them
as ag, b(j, n(p+l)Q. A 0 will also be stored in C. ) p is also needed in the
coded sequence of 11.3, and it is the only one of the constsints of that problem
which is independent of the induction indices v, w. (Cf. (4) above. ) Hence its
storage in that sequence, at 35 (as (p+D.) is adequate for our present purfKjse.
The other constants of that problem depend on v, w (cf. above), hence their
locations, 30-34, must be left empty (or, rather, irrelevantly occupied), when
our present coded sequence begins to operate, and they must be appropriately
substituted by its operation.
.60-
The induction index v will be stored in D. (It will be convenient to
form (2^"''^(p+l))(,, and to store (a^'Mg, (a**"*"^' )q along with it.) The induction
index w is part of the expressions which have to be placed at 30 and 32 ((s )q
and (?)(,, i.e. by (4) (a<^' +2-+lw
requires no other storage
■.p+D)
eind ((
oe piacea
2'+*w (p+l))o), hence it
We can now draw the flow diagreun, as shown in Figure 11.2. Tlie actual
coding obtains from this quite directly, in one instemce (at the beginning of
box VI) the accumulator is used as storage between two boxes.
The static coding of the boxes I-XIV follows.
CI
^0
2
bo
I.l
35
2
D.l
S
3
CI
4
D.2
S
5
C2
6
to
II. 1)
D.3
S
II. 1
D.2
2
30
S
3
D.3
4
32
s
(to
III.l)
III.l
30
2
D.2
h-
3
D.l
h
C.3
(n(p+l))o
111,4
C3
h-
5
(to
v.i)
IV. 1
Cc
IV. 1
C3
2
D.2
h
3
31
s
4
30
h-
5
33
s
C.4
0
IV. 6
C4
7
34
s
(to IX. 1)
Ac
(p-Do
D.l
(p+Do
Ac
«o
D.2
«0
Ac
\
D.3
\
Ac
(a^^>)„
30
(a<^')„
Ac
(a<'^^')o
32
(a^'^^Mo
Ac
(a''' +2-+lw(p+l))o
Ac
(2'+lw (p+l))g
Ac
((2'+lw + 2-)(p+l))
Ac
((2'+^w +2^-n)(p+l)),
Ac
(n(p+l))o
Ac
(a''>+n(p+l))o
31
(a<^>+n(p+l))o
Ac
((n-2»+lw)(p+l))
33
((n-2-+lw)(p+l))
Ac
0
34
0
-61-
o
^'1
(pi-i)o *° D-1
(B.l)c to 3
D.l (pi-Ik
Z (A.lK
3 CBJ\
Z \
3 (A'"*''. IK
-CIHEF
YTF
(/"^i'Oo to 2
nfl
©
M.
-♦-J. a i^-
A.h/^'^':i\
M
+ i\. 6 >k-
3
TUT.
#
Z''*-n
X
i->k g i.-
z'""(\Ni-i) - n
IK
jiB
O - 2*f
(Ptx>hUm 14)
^ (A'^'.li
32 (a"^'.iX
(A"'*'ilXto 3Z
>■ 4
S
w
HL
Z^V/i-Z^'-rx
6 ^r
sr
z'""(w ■*■!)-»
'ynr
- '' G 'r+
7
mL
Z^pi-O ^o 3f ^f77-<'2'*tv^z%^/;;„ ^o 5f-
^r 7 ir
3/ r/^''';!r2'^W^«^X;;*';+/;.
34 ^»7^ C/^0)o
rt, ^, ;^, ^
V VV
A/oUt
AAur,ht.^S C-^l
Figure 11. £
-62-
V,l D.l
2 33
3 30
4 D.l
5 31
(to VI, 1)
VI.l D.2
2 D.l
3 C.3
4 VII, 1
(to VIII, 1)
VII, 1 C.3
2 30
3 D.2
4 D.l
5 34
(to IX,1)
VIII, 1 D.l
2 34
(to IX,1)
DC (Problem 14:
(to X,l)
30
X.1
2
3
4
5
6
D.2
D.l
D.l
C.3
XI, 1
(to XIII, 1)
XI, 1 D.l
2 D.l
3 C.3
4 XII, 1
(to XIV.l)
XII, 1 C.l
2 D.3
3 s.l
4 s.l
5 e
(to XIV, 1)
h
S
h-
h
h-
Cc
h-
h
h-
S
0-29.)
h-
h
h
h-
Cc
h
h-
Cc
h-
S
-M
Cc
Ac
33
Ac
Ac
31
Ac
Ac
Ac
Ac
Ac
Ac
Ac
34
Ac
34
Ac
Ac
Ac
Ac
Ac
Ac
Ac
"s.l
Ac
(2Mp+l))o
(2Mp+l))o
(a*"' +2'+iw (p+l))o
(a<''*+(2»+iw + 2»)(p+l))(j
(a'^'+(2-+lw+2')(pn))j
((2'+^+2M(p+l))„
(2-+i(w+l)(p+l))p
((2»+i(w+l).n)(p+l))o
(n(p+l))o
((n-2-+»w)(p+l).a<^')(,
((n.2'+lw)(p+l))o
((n-(2'+lw+2M)(p+l))o
((n-(2'+^+2''))(p+l))o
(2Mp+l))o
(2'(p+l))o
(a'^'+2'+>w(p+l))Q
(2'+lw(p+l))o
((2'+^w + 2M(p+l))o
(2^+i(w+l)(p+l))o
((2-+Hw+l)-n)(p+l))(
Ac
(2Mp+l))„
Ac
(2»+i(p+l))o
Ac
((2^+l-n)(p+l))o
(a-a'^+l>)o
(a-a<^+l>)o
.|(a-a<^-l>)4
.63-
CIII.l
30
2
D.l
h
3
D.l
h
4
30
S
5
32
6
D.l
h
7
D.l
h
8
32
S
(to
XIV, 1
III.l)
D.l
2
D.l
h
3
D.l
s
4
D.2
5
s.l
s
6
D.3
7
D.2
s
8
s.l
9
D.3
s
(to II, 1)
Ac
Ac
Ac
30
Ac
Ac
Ac
32
Ac
Ac
Ac
Ac
s.l
Ac
D.2
Ac
D.3
(a<»* +2^+1* (p+l))o
(a'^' +(2»+'w+2»)(p+l))„
(a'»'+2''+l(w+l)(p+l))o
(a<''+2'+Mw+l)(p+l))o
(^(T+i) +2»+iw (p+l))o
(^(r+l) +(2'+'w+2»)(p+l))o
(^(,+1) +2^^i(w+l)(p+l))o
(^(t+1) +2'^i(w+l)(p+l))o
(2'
(p-l))o
(2'
*'(p+l))o
(2^+»(p+l))o
(a<
^')o
(a*
^^)o
(a
T+l)^
(a'
^0
(a
(a
^')„
The ordering of the boxes is I, II. Ill, V, VI, VIII, DC, X, XIII;
XI, XrV; IV; VII; XII, and IX^ DC, XIV, III, II must also be the irtmediate
successors of IV, VII, XII, XIII, XIV, respectively. In addition, IX cannot
be placed imnediately after VIII, since IX, 1 is 0 -- but IX must nevertheless
be the iimediate successor of VIII. All this necessitates the extra orders
IV,8
IX. 1
c
VII, 6
IX. 1
c
VIII. 3
IX, 1
c
XII. 6
XIV, 1
c
XIII. 9
III.l
c
XIV, 10
II. 1
c
Finally in order that X be the imnediate successor of IX. the e of
0-41 (in 26) must be equal to X. 1.
We must now assign C. 1-4. D. 1-3. s.l their actual values, pair the 76
orders 1.1-6. II. 1-4, III. 1-5, IV,l-8. V.l-S, VI, 1-4, VII, 1-6, VIII, 1-3, X,l-6,
XI. 1-4. XII. 1-6, XIII, 1-9, XIV, 1-10 to 38 words, and then assign 1,1 - XIV. 10
their actual values. (IX is omitted, since it is contained in 0-41.) We wish
to do this as a continuation of the code of 11.3. We will therefore begin with
the number 42. Furthermore the contents of D. 1-3, s.l are irrelevant, like
those of 37-41 there. We saw, in addition, that 30-35 (with the exceptions of
30,32) are also irrelevant. We must, however, make this reservation: 30-41
are needed while box R operates, and during this period D. 1-3 are relevantly
occupied, but not s.l. s.l is relevantly occupied only while boxes XII, XIV
operate, and during this period 30-35 and 37-41 are irrelevant. Hence only
s.l can be made to coincide with one of these, say with 41. Sunming all these
things up, we obtain the following table:
-64-
1.1-6
42 -44'
VIII, 1-3
54 -55
IV, 1-8
70 -73'
11,1-4
45 -46'
X,l-6
55 '-58
VII, i-6
74 -76'
111,1-5
47 -49
XIII, 1-9
58'-62'
XII, 1-6
77 -79'
V.1-5
49'-51'
XI, 1-4
63 -64'
C.1-4
80 -83
VI, 1-4
52 -53'
XIV, 1-10
65 -69'
D.1-3
s.l
84 -86
41
Now we obtain this coded sequence:
42
35
84 S
43
80
85 S
44
81
86 S
45
85
30 S
46
86
32 S
47
30
85 h-
48
84 h
82 h-
49
70 Cc
84
50
33 S
30
51
84 h
31 S
52
85 h-
84 h
53
82 h-
74 Cc
54
84
34 S
55
0 C
30
56
85 h-
84 h
57
84 h
82 h-
58
63 Co
30
59
84 h
84 h
60
30 S
32
61
84 h
84 h
62
32 S
47 C
63
84
84 h
64
82 h-
77 Cc
65
84
84 h
66
84 S
85
67
41 S
86
68
85 S
41
69
86 S
45 C
70
82
85 h
71
31 S
30 h-
72
33 S
83
73
34 S
0 C
74
82
30 h-
75
85 h
84 h-
76
3i S
0 C
77
80
86 h-
78
41 S
41 -M
79
e Cc
65 C
80
^0
81
\
82
(n(p+
l))o
83
0
84
_
85
-
86
-
For the sake of completeness, we restate that part of 0-41 of 11.3, which
contains all changes and all substitutable constants of the problem. This is 26
and 30-41:
26
30
31
32
55 Cc', 10 Cc'
33
34
35
36
37
38
39
40
41
The durations may be estimated as follows:
I: 225 ti, II: 150 n, III: 200 n, IV: 300 ^, V: 200 ^i, VI: 150 \x, VII: 225 n,
VIII: 125 n, X: 225 yi, XI: 150 u, XII: 225 n, XIII: 350 g,, XIV: 375 p..
DC: The precise estimate at the end of 11.3 is
((575 p + 1,125) (n^ + m^) + 575) \i.
Total: Put ? = 2 <*log n> , n = 2 </*log n)> -<(^log n> = 0 or 1.
w = < " .N . Then the total is
-65-
I + 1 In * 1
T=0 ,=0
This is majorized by
III + (iV or (V+VI +(Vir> or VIII)))
+ IX + X + (XI*' or XIII)
1
+ XlV' Uxil (h+1)
(225 + "l J 150 + "Z
T=0 1 ,=0
- 375 + 225 (n+D) n
200+200 + 150 + 125 +(575 p + 1,125) x
X (n^+m^)+ 575 + 225 + 350
+ 100 - 200 + 375
Since 2 (n^ + m^) = n, T) g 1, this is majorized by
r = 0
(225 + 'i {(575 p + 1,125) n + l,825<-iL_\ + 425} + 75) n
.1
Since 2 ^-r^^ ^ t ( -7^ + 1) I n + v, this is majorized by
((575 p + 1,125) n V + 1,825 n + 2,250 v + 300) ^
We Ccin write this in this form:
vhere
((575 p + 1,200 (1 + 6)) n V ) u =%s (.6 (p + 2 (1 + 6)) n y)
V = 2'^* log n^ .
6 = - .06 + L^ + LJ3 + _^
6 is a small and slowly changing quantity: For n = 100; 1,000; 10,000
(the last value is, of course, incompatible with the memory capacities which
appear to be practical in the near future) we have v = 8; 10; 14 and hence
6 = .15; .09; .05, respectively.
At most once among the w in Z . We disregard this effect for IV, which
w=0
represents the shorter alternative. We replace VII, XI by their alternatives,
VIII, XIII, respectively, inside the 2 . This necessitates the corrections
w=0 -_,
VII-VIII = 100 ^, XI-XIII = -200 ti, respectively, outside the "l . (Cf. the
w = 0
third and second terms from the right in the brackets ( ... ) of the next formula.)
Missing once among the v in 2 • We may therefore subtract XIV = 375 \x as
T-l
a correction outside the 2
T=0
r = 0
-66-
11.5 The meshing and sorting speeds of 11.3 and 11.4 are best expressed
in terms of m per complex or of complexes per minute. The number of complexes in
these two problems is n + m and n, respectively, hence the number of m per complex
is ^-^.6 (p+2) and =^.6 (p+2(l+6)) • 2 <*log n >?rl.2 (p+2.3) <^*log n ,
resp)€ctively. The number of complexes per minute obtains by dividing these numbers
into 60,000, i.e. it is
(9) mm and - 50.000 ^ respectively.
P+2 (p+2.3)<*logn> "^
To get some frsune of reference in which to evaluate these figures, one might compare
them with the correspxjnding speeds on standard, electro-mechanical pmnch-card
equipment.
Meshing can be effected with the I.B.M. collator, which has a speed of
225 cards per minute. Sorting can be effected by repeated runs through the I.B.M.
(decimal) sorter. The sorting method which is then used is not based on iterated
meshing, and hence differs essentially from our method in 11.4. Strictly construed,
it requires as many runs througt» the sorter, as there are decimal digits in the
principal number. This number of digits is usually between 3 and 8. Since we are
dealing in our case with 40 binary digits, corresponding to 12 decimal digits, the
use of the value 6 in such a comparison does not seem unfair. The sorter has
a normal sp)eed of 400 cards per minute, and it can unquestionably be accelerated
beyond this level. 50% seems to be a reasonable estimate of this potential acce-
leration. Making the comparison on this basis, we have a speed of , ' = 100
cards per minute. Hence we have these speeds for meshing and sorting in cards
per minute:
(10) 225 amd 100, respectively.
A card corresponds to one of our complexes, since it moves as a unit in meshing sind
in sorting. Hence the speeds of (9) and (10) are directly comparable, and they give
these ratios:
(11) J9L ^44_ ^ 5^0 ^ respectively.
(10) ^ p+2 (p+2.3)<*logn>' ^
A standard I.B.M. punch card has room for 80 decimal digits. This is
equivalent to about 270 binary digits, i.e. somewhat less than 7 of our 40 binary
digit numbers. It is, of course, in most cases not used to full capacity. Hence
it is best compared to a complex with p + 1 g 7, i.e. p =1,...,6. For n values
from 100 to 1,000 seem realistic (in view of the probably availeible "inner
memory capacities, 8ind assuming that no "outer" memory is used, cf. the seccmd
remark at the end of this section), hence <^ log n^ = 4, 5. Gansequently the
ratios of (11) become
(11') P^ =^ 150 to 55 and 30 to 15, respectively.
-67-
In considering these figures the following facts should be kept in mind:
First: In using an electronic machine of the type under consideration
for sorting problems, one is using it in a way which is least favorable for its
specific characteristics, and most favorable for those of a mechanical punch card
machine. Indeed, the coherence of a complex X= (x; Uj,..., u ), i.e. the close
connection between the movements of its principal number x and the subsidiary
numbers u.,..., u , is guaranteed in a punch card machine by the physical identity
and coherence of the punch card which it occupies, while in the electronic machine
in question x and each u,,..., u must be trzinsf erred separately; there is no in-
trinsic coherence between these items, and their ultimate, effective coherence
results by synthesis fran a multitude of appropriately coordinated individual
transfers. This situation is very different from the one which exists in properly
mathematical problems, where multiplication is a decisive operation, with the
result that the extreme speed of the basic electronic organs can become directly
effective, since the electronic multiplier is just as efficiently organized and
highly paralleled as its mechanical and electromechanical counterparts. Thus in
properly mathematical problems the ratio of speed is of the order of the ratio of
the, say, .1 m multiplication time of an electronic multiplier and of the, say,
1 to 10 second multiplication time of an electromechanical multiplier, i.";., say,
10,000 to 100,000 -- while (11') above gave speed ratios of only 15 to 150,
Second: The "inner" memory capacities of the electronic machines that
we envisage will hardly allow of values of n (and m) in excess of about 1,000.
vVhen this limit is exceeded, i.e. when really large scale sorting problems arise,
then the "outer" memory (magnetic wire or tape, or the like) must also be used.
The "inner " memory will then handle the problem in segments of several 100, or
possibly up to 1,000, complexes each, and these are combined by iterated passages
to and from the "outer" memory. This requires some additional coded instructions,
to control the transfers to and from the "outer" memory, and slows the entire
procedure some'vhat, since the "outer" memory is very considerably less flexible
and less fast available than the "inner" one. Nevertheless, this slowdown is
not very bad: We saw in 11.3 that meshing requires .6 m per number. Magnetic
wires or tapes can certainly be run at speeds of 20,000-40,000 (binary) digits
per second, i.e. 500-1,000 (40 binary digit words or) numbers per second. This
means 1-2 m per number. Thus the times required for each one of these two
phases of the matter are of the same order of magnitude. In addition to this
the "outer" memory is likely to be of a multiple, parallel channel type.
We will discuss this large scale sorting problem later, when we come
to the use of the "outer" memory. It is clear, however, that it will render
the comparison of speeds, (11'), somewhat less favorable.
Third: We have so far emphasized the unfavorable aspects of sorting
with an electronic machine of the type under consideration-- i.e. one which is
primarily an all-purpose, mathematical machine, not conceived particularly for
sorting problems . Let us now point out the favorable aspects of the matter.
These seem to be the main ones:
-68-
(a) All the disadvantages that we mentioned are relative Mies (i.e. in
comparison to the properly mathematical problems) -- electronic sorting should
nevertheless be faster than mechanical, punch card sorting: In our above examples
by factors of the order of 10 to 100.
(b) The results of electronic sorting appear in a form which is not
exposed to the risks of the unavoidable human manipulations of punch cards:
They are in the "inner" memory of the machine, which requires no human manipu-
lation whatever; or in the "outer" memory, which is a connected, physically
stable medium like magnetic wire or tape.
(c) The sorting operations cein be combined with and alternated with
properly mathematical operations. This can be done entirely by coded instructions
under the inner control of the machine's own control organs, with no need for
human intervention and no interruption of the fully automatic operation of the
machine. This circumstance is likely to be of great importance in statistical
problems. It represents a fundamental departure from the characteristics of
existing sorting devices, which are very limited in their properly mathematical
capabilities.
PLANNING AND CODING OF PROBLEMS
FOR AN
ELECTRONIC COMPUTING INSTRUMENT
By
Herman H. Goldstine John von Neumann
Report on the Mathematical and Logical Aspects
of an Electronic Computing
Ins trument
Part II, Volume III
The Institute for Advanced Study
Princeton, New Jersey
1948
PREFACE
This report was prepared in accordance with the terms of
Contract No. W-36-034-OPD-7481 between the l^search and
Development Service, U. S. Army Ordnance Department, and
The Institute for Advanced Study. It is another in a
series of reports entitled, "Planning and Coding of Prob-
lems for an Electronic Computing Instrument", sind it con-
stitutes Volume III of Part II of that sequence. It is
expected that Volume IV of this series will appear in the
near future.
Herman H. Goldstine
John von Neumann
The Institute for Advanced Study
16 August i9U8
TABLE OF CONTENTS
Page
PREFACE
12.0 COMBINING ROUTINES
12.1 Coding of simple and of composite problems. 1
12.2 Need for this program. 2
12.3 Routines and subroutines. 2
12.4 Changes required when using a subroutine. 3
12.5 Preparatory routines. 4
12.6 Analysis of the orders in a subroutine. 5
12.7 Criteria to be used by a preparatory
routine. 6
12.8 Problem 16: The single subroutine
preparatory routine.
12.9 Problem 17: The multiple subroutine
preparatory routine.
12.10 Use of a preparatory routine in setting
up the machine. 19
12.11 Conclusions. 21
7
15
12.0 COMBINING ROUTINES
12. 1 Each one of the problems that we have coded in the past
Chapters 8-11 had the following properties: The problem was complete in the
sense, that it led from certain unambiguously stated assumptions to a clearly
defined result. It was incomplete, however, in another sense: It was certain
in some cases eind very likely in others, that the problem in question would in
actual practice not occur by itself, as an isolated entity, but rather as one
of the constituents of a larger and more complex problem. It is, of course,
justified and even necessary from a didactical point of view, to treat such
partial problems, problem fragments -- esjsecially in the earlier stages of the
instruction in the use of a code, or of coding per se. As the discussion ad-
vances, however, it becomes increasingly desirable to turn one's attention
more and more from the fragments, the constituent parts, to the whole, In our
present discussion, in particular, we have now reached a point where this change
of emphasis is indicated, and we proceed therefore accordingly.
There are, in principle, two ways to effect this shift of emphasis from
the parts to the whole.
The first way is to utilize the experience gained in the coding of
simpler (partial) problems when one is coding more complicated (more complete)
problems, but nevertheless to code all the parts of the complicated problem
explicitly, even if equivalent simple problems have been coded before.
The second way is to code simple (partial) problems first, irrespective
of the contexts (more complete problems) in which they may occur subsequently, and
then to insert these coded sequences as wholes, when a complicated problem occurs
of which they are parts.
We should illustrate both procedures with exEunples: This is not easy
for the first one, because its use is so frequent that it is difficult to circum-
scribe its occurrences with any precision. Thus, if we had coded the calculation
of the general third order polynomial, then any subsequent calculation involving
(as a part) a third order polynomial, would offer such an example. Also, in view
of Problem 1, suiy calculation involving a quotient of a second order and a first
order polynomial would be an example. Problem 3, where the whole of Problem 1 is
recoded as a part of the new coded sequence (but not Problem 2, where this is not
done) is a specific instance.
Examples of the second procedure are more clearly identifiable.
Problem 12 was used in this sense as a part of Problem 13. a and of Problem 13. b,
and also, after some modifications, as a part of Problem 13. c. Problem 14 was
used as a part of Problem 15. In addition it is fairly clear that all of the
Problems 4-11 and 13-15 must be intended as parts of more complicated problems,
and that it would be very convenient not to have to recede any one of them when
it is to be used as part of another problem, but to be able to use it more or
less unchanged, as a single entity.
-2-
12.2 The last remark defines the objective of this chapter: We wish
to develop here methods that will permit us to use the coded sequence of a problem,
when that problem occurs as part of a more complicated one, as a single entity, as
a whole, 2md avoid the need for recoding it each time when it occurs as a part in
a new context, i.e. in a new problem.
The importance of being able to do this is very great. It is likely to
have a decisive influence on the ease emd the efficiency with which a computing
automat of the type that we contemplate will be operable. This possibility should,
more than anything else, remove a bottleneck at the preparing, setting up, amd
coding of problems, which might otherwise be quite dangerous.
This principle must, of course, be applied with certain comnon sense
limitations: There will be "problems" whose coded sequences are so simple and so
short, that it is easier to recode them each time when they occur as parts of
another problem, than to substitute them as single entities -- i.e. where the work
of recoding the whole sequence is not significantly more than the work necessitated
by the preparations and adjustments that are required when the sequence is substi-
tuted as a single entity. (These prepiarations euid adjustments constitute one of
the main topics of this chapter, cf. 12.3-12.5.) Thus the examples of the first
procedure discussed in 12.1 above are instances of problems that are "simple" and
"short" in this sense.
For problems of medium or higher complexity, however, the principle
applies. It is not easy tQ name a precise lower limit for the complexity, say in
terms of the number of words that make up the coded sequence of the problem in
question. Indeed, this lower limit cannot fail to depend on the precise character-
istics of the computing device under consideration, and quite particularly on the
prof)erties of its input orgein. Also, it can hardly be viewed as a quite precisely
defined quauitity under any conditicms. As far as we can tell at this moment, it
is probably of the order of 15-20 words for a device of the type that we are
contemplating (cf. the fourth remark in 12.11).
These things being understood, we may state that the possibility of
substituting the coded sequence of a simple (partial) problem as a single entity,
a whole, into that one of a more complicated (more complete) problem, is of basic
imp)ortance for the ease and efficiency of running an automatic, high spieed
computing establishment in the way that seems reasonable to us. We are therefore
going to investigate the methods by which this can be dwie.
12.3 We call the coded sequence of a problem a routine, and one which
is formed with the purpose of possible stibstitution into other routines, a
subroutine. As mentioned above, we envisage that a prop)erly organized automatic,
high speed establishment will include an extensive collection of such subroutines,
of lengths ranging from about 15-20 words upwards. I.e. a "library" of records in
the form of the external memory medium, presumably magnetic wire or tape. The
character of the problems which can thus be disposed of in advance by means of such
subroutines will vary over a very wide spectrum -- indeed a much wider one than is
now generally appreciated. Some instances of this will appear in the subsequent
Qiapters 13 and 14. The discussions in those chapters will, in p>articular, give a
more specific idea of what the possibilities are and what aims possess, in our
opinion, the proper proportions.
Let us now see what the requirements and the difficulties of a general
technique are, if this technique is to be adequate to effect the substitution of
subroutines into routines in the typical situations.
12.4 The discussion of the precise way in which subroutines can be
used, i.e. substituted into other routines, centers around the changes which have
to be applied to a subroutine when it is used as a substituent.
These changes can be classified as follows:
Some characteristics of the subroutine change from one substitution of
the subroutine (into a certain routine) to another one (into another routine), but
they remain fixed throughout all uses of the subroutine within the same substitu-
tion (i.e. in connection with one, fixed routine). These are the changes of the
first kind. Other characteristics of the subroutines may even vary in the course
of the successive uses of the subroutine within the same substitution. These are
the changes of the second kind.
*
Thus the order position at which a subroutine begins is constant through-
out one substitution (i.e. routine, or, equivalently , one larger problem of which
the subroutine's problem is part), but it may have to vary from one such substitution
or problem to another. Ihe first assertion is obviously in accord with what will be
considered normal usage, the second assertion, however, needs some further elaboration.
If a given subroutine could only be used with its beginning at one parti-
cular position in the memory, which must be chosen in advance of all its applications,
then its usefulness would be seriously limited. In particular, the use of several
subroutines within one routine would be subject to very severe limitations. Indeed,
two subroutines could only be used together, if the preassigned regions that they
occupy in the memory do not intersect. In any extensive "library" of subroutines
it would be impossible to observe this for all combinations of subroutines simul-
taneously. Ck\ the other hand, it will be hard to predict with what other subroutines
it may be desirable to combine a given subroutine in some future problem. Further-
more, it will probably be very important to develop an extensive "library" of sub-
routines, and to be able to use it with great freedom. All solutions of this dileimia
that are based on fixed positioning of subroutines are likely to be clumsy and of
insufficient flexibility.
Hence we should postulate the variability of the initial order position
of a subroutine from one substitution to another. Consequently this is an example
of a change of the first kind. This requires corresponding adjustments of all
references made in orders of the subroutine to definite (order or storage) positions
within the subroutine, as they occur in the final form (the final enumeration) of its
coding. These adjustments are, therefore, changes of the first kind.
The parameters or free variables of the problem that is represented by
the subroutine (cf. 7.5) will, on the other hand, usually change from one use of
the subroutine (within the same substitution, i.e. the same main routine or problem)
to another. The same is true for the order position in the main routine, from which
the control has to continue after the completion (of each particular use) of the
subroutine. Since the subroutine sends the control after its completion to e (this
-4-
is the notation that we have used in all our codings up to now, and we propose to
continue using it in all subsequent codings), this observation can also be put as
follows: The actual value of e will usually change from one use of the subroutine
to another.
These remarks imply, that the parameters of the subroutines problem, as
well as the actual value of its e, will usually undergo changes of the second kind.
12.5 All the changes that the use of a subroutine in a given substi-
tution requires can be effected by the routine into which it is being substituted,
i.e. by including appropriate coded instructions into that routine. For changes of
the second kind this is the only possible way. For changes of the first kind, how-
ever, it is not necessary to put this additional load on the main routine. In this
case the changes can be effected as preparatory steps, before the main routine it-
self is set in motion. Such preparations might be effected outside the machine
(possibly by manual procedures, and possibly by more or less automatic, special,
subsidiary equipment). It seems, however, much preferable to let the machine itself
do it by means of an extra routine, which we call the preparatory routine. We will
speak accordingly of an internal preparation of subroutines, in contradistinction
to the first mentioned outside process, the external preparation of subroutines.
We have no doubt that the internal preparation is preferable to the external one
in all but the very simplest cases.
Thus changes of the first kind are to be effected by preparatory routines,
which will be discussed further below. Qianges of the second kind, as we have
pointed out already, have to be effected by the main routine itself (into which the
subroutine is being substituted): Before each use that the routine makes of the
subroutine, it must appropriately substitute the quantities that undergo changes
of the second kind (the parameters of the subroutines problem and the actual value
of its e, cf. the discussion in 12.4), and then send the control to the beginning
of the subroutine (usually by an unconditional transfer order). It may happen that
some of these quantities remain unchanged throughout a sequence of successive uses
of the subroutine. In this case the corresponding substitutions need, of course,
be effected once, jointly for the entire sequence. If this sequence includes all
uses of the subroutine within the routine, then the substitutions in question need
only be performed once in the entire routine, at any sufficiently early {X)int in it.
In this last case we are, of course, really dealing with changes of the first kind,
and the quantities in question could be dealt with outside the main routine, by a
preparatory routine. It is, however, sometimes preferable to view this case as
an extreme, degenerate form of a change of the sec aid kind, or at any rate to
treat it in that way.
This discussion should, for the time being, suffice to clarify the
principles of the classification of subroutine changes, and of the effect which
they (specifically: the changes of the second kind) have on the arrangements in
the main routine (into which the subroutine is being substituted). We now pass
to the discussion of the preparatory routine, which effects the essential changes
of the first kind: The adjustments that are required in the subroutine by the
variability of its initial order position.
-5-
12.6 Assume that a given subroutine has been coded under the assump-
tion that it will begin at the order position a. (I.e. at the left-hand order of
the word a. To simplify matters, we disregard the possibility that it may begin
at the right-hand order of the word a. In our past codings we had usually a = 0,
excepting Problem 2 where a = 100, Problems 13,a-c where a = 52, and Problem 15
where a = 42. ) The orders that are contained in this subroutine can now be classified
as follows:
First: The order contains no reference to a memory position x. It is then
one of the orders 10, 20, 21 of Table II.
Second: The order contains a reference to a memory position x, but the
place of this x is irrelevantly occupied in the actual code of the subroutine. In
this case the subroutine itself must substitute appropriately for x, before the
control gets to the order in question. I.e. some earlier part of the subroutine
must form the substitution value for x, and substitute it into the order.
Third: The order contains a reference to a rtemory position x, the place
of this X is relevantly occupied in the actual code of the subroutine, and this
actual value of x corresponds to a memory position not in the subroutine.
hourth: Same as the third case, except that the actual value of x
corresf>onds to a memory position in the subroutine.
fifth: Che of the preceding cases, but at some point the subroutine
treats the order or its x as if it were irrelevantly occupied, i.e. it substitutes
there something else.
Assume next, that the subroutine, although coded as if it began at a, is
actually to be used beginning at a. This necessitates certain changes, which are
just the ones that the preparatory routine has to effect, in the sense of the con-
cluding remark of 12.5. CXir above classification of the orders of the subroutine
permits us to give now an exact listing of these changes.
Orders of the first and of the third kind require clearly no change.
The same is true of the orders of the second kind if they produce x's which
correspond to memory positions not in the subroutine. And even if x's are
produced which correspond to memory positiops in the subroutine, no change is
necessary if the following rule has been observed in coding the subroutine:
a was used explicitly in forming the x that corresponds to positions in the
subroutine, and it was stored not as the actual quantity a, but as a parameter
of the subroutine s problem. If it is then understood, that this parameter should
have the value a, then it will be adequately treated as a parameter in the sense
of 12.5. Indeed, it represents that degenerate form of a change of the second
kind, which can also be viewed as a change of the first kind, as discussed in 12.5.
Thus it might be treated by a special step in the preparatory routine, but we
prefer to assume, in order to simplify the present discussion, that it is handled
as a parameter (of the subroutine) by the main routine. In this way the orders
of the second kind require no change either (by the preparatory routine).
Orders of the fourth kind clearly require increasing their x by a - a.
Orders of the fifth kind behave like a combination of an order of one of
the four first kinds with an order of the second kind. Since all of these orders
are covered by the measures that emerged from our discussion of the four first kinds
of orders, it ensues that the orders of the fifth kind are automatically covered, too,
by those measures.
Thus the preparatory routine has precisely one task: To add a - a to the
X of every order of the fourth kind in the subroutine.
12.7 The next question is this: By what criteria can the preparatory
routine recognize the orders of the fourth kind in the subroutine?
Let t be the length of the subroutine. By this we mean the number of
words, both orders and storage, that make it up. We include in this count all
those words which have to be moved together when the final code (final enumeration)
of the subroutine is moved (i.e. when its initial order position is moved from a
to a), £ind no others. The count is, of course, made on the final enumeration.
In this sense a word counts fully, even if it contains a duimiy order (e.g. 14 in
Problem 6, and 6 in Problem 10 or 74, 91 in Problem 13. b). Oh the other hand
storage positions which are being referred to, but which are supposed to be parts
of some other routine, already in the machine (i.e. of the main routine, or of an-
other subroutine) do not count (e.g. the storage area A in Problem 3 or the storage
area A in Problem 10).
for cin order of the fourth kind x must have one of the values
a, ..., a +/ - 1, i.e. it must fulfill the condition
(1) a g X < a + Z .
For an order of the third kind x will not fulfill this condition. For orders of
the first and of the second kind the place of x is inessentially occupied.
Concerning its relation to condition (1) we can make the two following remarks:
First: We can stipulate, that in all orders where the position of x is
inessentially occupied, x should actually be put in with a value x that violates
(1). This is a perfectly possible convention. The simplest ways to carry it
into effect are these:
Let X always have the smallest value or always have the largest value
that is compatible with its 12-digit character. (Regarding the latter, cf.
section 6.2.) I.e. x = 0 or x = L-1, where L-1 is the largest 12-digit integer:
L = 2'^ = 4,096. Then all subroutines must fulfill a 7^ 0 or a+Z^^L, respectively
(in order that (1) be violated).
These rules are easy to observe. We chose a = 0 in most of our codes,
hence we might prefer the second rule, but this is a quite unimportant preference.
-7-
Second: If an order of the first or of the second kind has an x which
fulfills (1), and the order is thereupon mistakenly taken (by the preparatory
routine) for one of the fourth kind, and its x is increased by a - a, this need
not matter either. Indeed: The place x is irrelevantly occupied, hence changes
which take place there before the subroutine begins to operate do not matter.
There is, however, one possible complication: Adding a - a to this (inessential)
X may produce a carry beyond the 12 digits that are assigned to x. (Regarding
these 12 digits cf. above, and also orders 18, 19 of Table II and the second
remark among the Introductory Remarks to Chapter 10. The carry in question will
occur if a - a > 0 and x g L - (a - a), or if a - a < 0 and x < - (a - a) ; L = 2^ ^ ,
cf. above. ) Such a carry affects the other digits of the order, and thereby modi-
fies its meaning in an undesirable way. This complication can be averted by
special measures that paralyze carries of the type in question, but we will not
discuss this here. No precautions are needed, if we see to it that no such
carries occur. (I.e. if we observe -(a -a) g x g L - (a -a) for the inessential
X, cf. above. )
In view of these observations we may accept ( 1 ) as the criterium
defining the orders of the fourth kind. We will therefore proceed on this basis.
12.8 We have to derive the preparatory routines which are needed to
make subroutines effective. For didactical reasons, we begin with a preparatory
routine which can only be used in conjunction with a single (but arbitrary) sub-
routine. Having derived such a single subroutine preparatory routine, we can
then pass to the more general case of a preparatory routine which can be used in
conjunction with any number of subroutines. This is a general, or multiple
subroutine preparatory routine. The point in all of this is, of course, that both
kinds of preparatory routines need only be coded once and in advance -- they can
then be used in conjunction with arbitrary subroutines.
We state now the problem of a single subroutine preparatory routine.
Tliis includes a description of the subroutine, in which we assume that the sub-
routine has been coded in conformity with the (not a priori necessary) conventions
that we found convenient to observe in our codings in these reports. It does not
seem necessary to discuss at this place possible deviations from these conventions,
and the rather simple ways of dealing with them.
PROBLEM 16.
A subroutine 2 consisting of / consecutive words, of which the k first
ones are (two) order words, is given. (Concerning the definition of the length of
a subroutine, cf. the beginning of 12.7. The subroutine under consideration may
also make use of stored quantities, or of available storage capacity, outside this
sequence of t words -- or rather of the / - k last ones among them. VVe need not
pay any attention to such outside positions in this problem. ) This subroutine is
coded as if it began at the memory position a. Actually, however, it is stored
in the memory, beginning at the position a. It is desired to modify it so that
its coding conform with its actual position in the memory.
-8-
Our task consists in scanning the words from a to a +k - 1, to inspect
in each one of these words the two orders that it contains, to decide for each
order whether its x fulfills the condition (1) of 12.7; and in that (and cmly in
that) case increase this x by K = a - a.
Let the memory position u be occupied by the word w . w is then ain
aggregate of 40 binary digits:
w = { w (1), w (2), ..., w (40) } .
u u ' u ' ' u
The two orders of which it consists are the two 20 digit aggregates
(w (1), .... w (20)) , {w (21) w (40)) ,
u u ' u u
the two X in these orders are the two 12 digit aggregates
wl = {w (9), ..., w (20)), w" = {w (29), ..., w (40)}
u u ' u ' u u u
(cf. orders 18, 19 of Table II).
Reading w^ , w^' as binary numbers with the binary point at the extrem*
left (and ein extra sign digit 0), the condition (1) of 12.7 becomes
(1) 2-l2a i wl <2-i2 (a + /),
and
(2) 2-12a < w" < 2-12 (a + t) .
~ u
Reading w as we ordinarily read binary aggregates, i.e. as a binary number with
the binary pxsint between the first and second digits from the left (the first
digit being the sign digit) we can now express our task as follows: If (1) or
(2) holds, we must increase w by 2" K or 2' K, respectively. I.e.
(3)
(4)
Note, that we may replace (2), for its use in (4), by
(2-) 2-12a ^ w'll < 2-12 (a + Jf) ,
w'
U
V
w
u
w
u
+ 2-1'k
if (1) holds,
otherwise.
w"
u
w'
u
w'
+ 2-"k
if (2) holds,
otherwise.
where
w' = ( w'(l), w'(2), .... w'(40)) ,
w'" = ( w'(29) w'(40)) .
a an
since w and w' have by (3) the same digits with the positional values 2' ,...,2' ,
i.e. with the numbers 21, ..., 40.
The words w with which we have to deal are in the interval of memory
locations a+K a+K+k- 1 (i.e. a, ..., a + k - 1, cf. above). Let this
be the storage area 0, we will index it with a u=a+K a+K+k- 1, so
that O.u corresponds to u, and stores w . This u has the character of an induction
index.
Further storage capacities are required as follows: u (as Ug) in A, the
w under consideration (and w' after it) in B, the given data of the problem,
a, /, k, K, in C. (It will be convenient to store them as 2" a, 2" t, 2* k,
2""k. Regarding these quantities cf. also further below.) Storage will also
have to be provided for various other fixed quantities (-1, 1q, 2" , 2" , 2" ),
these too will be accomodated in C.
We can now draw the flow diagram, as shown in Figure 12.1. In coding
it, we will encounter some deviations and complications which should be commented
on.
a, /, k, K must occasionally be manipulated along the lines discussed
in connection with the coding of Problem 13. a. Thus in the case of K transitions
to 2""k and to K. occur, and these would be rendered more difficult if we had to
allow for the possibility K < 0. In order to avoid this rather irrelevant compli-
cation, we assume
(5) >^ ^ 0, i.e. a ^ a.
This has the further consequence, that the difficulties referred to in 12.7 can
be avoided by giving every irrelevant x the value 0 (because of the second
remark in 12.7) or the value L-1 (because of the first remark in 12.7). We
also note this: (5) can be secured by putting all a = 0, i.e. by coding every
subroutine as if it began at 0, but we will not insist here that this convention
be made.
The conditions (1), (2') can be tested by testing the signs of the
quantities
wl - 2-l2a. wl - 2-12(3+/), w'" - 2-'2a. w'" - 2-»2(a+Jf)
or, equivalently, the signs of the quantities
2-V - 2-"a. 2-V - 2-"(a+/). 2-^'n - 2-'\, I'^l^' - 2-i'(a+Z) .
■ 10-
It is easily seen that replacing 2'^'a, 2"^'(a+/} by a^, (a+^Jg vitiates these
sign-criteria, but replacing
w' = (w (9) w (20))
u u ' u
by
w' + e = {w (9) w (20); w (21) w (40))
u u u u u u
does not have this effect. It is convenient to use w + e in place of w .
u u *^ u
Both Quantities w + e and w must be read as binary numbers with
u u u
the binary point at the extreme left, with an extra sign digit 0. Indicating
this sign digit, too, we have
w^ + e = ( 0, w (9), ...,
(6) ^
w (40) ) ,
U
w'li = { 0, w'(29), ...
, w440)] .
With the same notations
' w = { w (1), w (2),
.... w (40)
u
(7) .
w' = w (1), w (2),
V.
..., wH40)
In order to get the w^ + e ,w''^ of (6) from the w , w' of (7), it seems sinqslest
to multiply w , w' by 2'^^, 2"*^, respectively, and to pick up w' + e in the
register (cf. order 11 of Table II). There is, however, one minor complication
at this point: The register contains not the w + e , w of (6), but the
aggregates
w (9), w (9), w UO) w (40)
(6')
w'(29), w'(29), w'(30) w'(40)
u u u u
The simplest way to get from (6') to (6) is to sense the sign of each quantity of
(6), and to add -1 to it if it proves to be negative (i.e. if the sign digit is 1).
We will do this; it requires an additional conditional transfer in connection with
each one of the two boxes III and VI. For this reason two boxes III.l and VI. 1,
not shown in the flow diagram, will appear in our coding.
To conclude, it is convenient to change the position of IX somewhat
(it follows upon VIII and absorbs part of it) and to absorb XI into X (it is
replaced by X,9).
-11-
O.V ^t,
O. V Wy /o»- A-t-K = W'< «
A Uo
.^ » ' r
I
g.
#
(1
^ V r
(a-^X^ to /I
a.i-X-^ u.
J *
Nf ! ir II
X. !
X,
' 3
K. ^o S
•YT ^ ?
"*
"
jr
<'it-»'i;„ to /^
«.f-l ->- M
/> ,
'4
7
•-H
B ^V^
6 ;
JS
tv.^-^"'*
JE
*" 4
' ' —
n^^-2%^-^;
4
TT
_' r ^ M +
-*"
to 5
'
■' J-
#
-B i^:
M^i*-*- tvj
k
EZ
+ ■'
' ^
'
r.
I'
j;-t"u.i)
J
'
l/fff
S
■f
to O.u
1
T
'
3K
^^
^
€
to O. u.
<
<t-flt.-A;-A+i
•~N. t^
^
(p\
" ^
I ^ /
— I ^
1
V^ *
1
1
1
1
1
„
HV otherwise.
1
FiG-URE 12.1
-12-
The static coding of the boxes I-Xl follows:
C.1
C.2
I.l
2-l»a
2-1'k
C.1
2
C.2
h
3
s.l
Sp'
4
s.l
h
5
A
s
11,1
(to
11,1)
A
2
3
[
11,3
u
Sp
]
4
B
s
C.3
(to
111,1)
2-32
111,1
C.3
R
2
6
X
3
A
4
C.4
111,5
III. 1,1
-1
C.4
Co
h
C.5
(to
111.1,1)
2-^
III.l,
1
cs
R
2
s.l
S
3
s.l
X
4
C.1
h-
C.6
5
(
IV. 1
to VI, 1)
2-19/
Cc
IV. I
C.6
h-
2
v.i
VI, 1
(to V,l)
C.2
Cc
2
B
h
3
B
(to VI,1)
S
C.7
2-12
Ac
2-i'a
Ac
2-l'(a+K)
s.l
2-"(a+ic)
Ac
(a+K)o
A
(a+K)^
Ac
"o
11,3
u
Ac
w
u
B
w
R
R
Ac
Ac
R
s.l
Ac
Ac
Ac
Ac
B
2-32
{w (9),w (9),w (10),..., w (40):
u a u u
= w (9) + w^ + e
a u u
w (9) +wi +e
w* + e
1-'
,1
w- + e
u u
2-^wl + e") -2-i'a
2-^(wl + e ) -2-i'(a+if)
2-i\
w +2-i9ic = w'
.13.
VI. 1
2
C.7
B
R
X
4
VI. 1.1
Cc
5
C.4
h
(to VI
.1
1)
VI, 1.1
C.5
R
2
s.l
S
3
s.l
X
4
C.l
h-
5
VII, 1
Cc
(
to
IX
1)
VII, 1
C.6
h-
2
IX, 1
Cc
(to
VIII,
1)
VIII, 1
C.2
2
s.l
Sp-
3
s.l
4
B
h
5
B
s
(to
IX
.1)
R.l
A
2
IX, 4
Sp
3
B
4
-
s
[
u
s
(to
X,
I)
X,l
C.l
2
C.2
h
C.8
2-"k
X,3
C.8
h
4
s.l
Sp-
5
s.l
h
6
s.l
s
7
A
C.9
lo
X.8
C.9
h
9
A
S
10
s.l
h-
11
e
Cc
(to
XI
1)
XI, 1
.
(to
II.
1)
R
R
Ac
R
s.l
Ac
Ac
Ac
O.u
2-12
{w^29).wH29),w'(30) wj(40))
= wH29J + w^i
w'(29) + w'"
u a
U
2-7 Jli .2-i9a
.III
-2-i*(a+/)
Ac
2-
1'k
s.l
2-
3 9^
.Ac
2-
3 9^
Ac
w'
u
+ 2-"k =
= w"
u
B
w"
u
Ac
"o
IX, 4
U
Sp
Ac
w"
Ac
2-1 "a
Ac
2-l'(a+K)
Ac
2-'»(a^+k)
s.l
2-''(a-»ic+k)
Ac
(a+K+k)o
s.l
(a-Hc+k)^
Ac
"o
Ac
(u+l)o
A
(u-l)o
Ac
(u-a-K-k+1)
-14-
Note, that the box Xj required no coding, hence its immediate successor
(II) must follow directly upon its immediate predecessor (X).
The ordering of the boxes is I, II, III, III.l, VI, VI. 1, K, X; IV,
V; VII, VIII, and VI, DC, II must also be the immediate successors of V, VIII, X,
respectively. "Hiis necessitates the extra orders
V.4
VI, 1
c
tl.6
IX, 1
c
X,12
11,1
c
We must now assign A, B, C. 1-9, s. 1 their actual values,, pair the 59
orders 1,1-5, 11,1-4, 111,1-5, 111.1,1-5, IV,l-2, V, 1-4, VI, 1-5, VI. 1,1-5, VII, 1-2,
VIII j 1-6, IX, 1-4, X, 1-12 to 30 words, and then assign I,l-X, 12 their actual values,
"e wish to place this code at the end of the memory, so that it should interfere
as little as possible with the memory space that is normally occupied by other
subroutines and routines. Let us therefore consider the words in the memory
backwards (beginning with the last word), and designate their numbers (in the
reverse order referred to) by 1, 2,... . In this way we obtain the following
table:
1,1-5
11,1-4
111,1-5
III. 1.1-5
VI, 1-5
40'-38
38'-36'
35 -33
33'-31'
VI. 1,1-5
30 -28
IX,l-4
28 '-26
X,l-12
IV, 1-2
26'-20
20'-19
V,l-4
19'-17
VII, 1-2
VIII, 1-6
A
B
C,l-9
s.l
17'
16'
-16
-13
12
11
10
-2
I
Now we obtain this coded sequence:
52
41
40
19
38
37
^
33
li
33
35
31
29
10 ,
9 h
1 Sp',
1 h
T2 S ,
12
39Sp\
-
ns ,
5R
n X ,
A
55 Co,
7 h
6R ,
1 s
Tx .
10 h
2IJC<:',
4R
nx ,
A
30 Cc,
7 h
5R ,
IS
Tx ,
10 h
28
27
26
25
24
23
22
21
20
19
18
17
16
15
17 Cc',
12
26 Sp,
11
- !^ ,
TO
9h .
3 h
1 Sp',
1 h
1 s ,
12
2 h .
12 S
1 h-.
e Cc
40 C,
5 h-
33 Cc',
9
11 h ,
11 s
33 C,
5 h-
28 Cc',
9
ISp',
1
14
13
12
n
10
9
8
7
6
5
4
3
2
1
n h ,
28 C,
2-i'a
2-32
-1
2-'H
2-12
0-1 9|.
11 S
The durations may be estimated as follows:
I: 200 n, II: 150 n. III: 250 p.. HI.l: 270 n, IV: 75 u, V: 150 p,,
VI: 250 \i, VI. 1: 270 u, VII: 75 u, VIII: 225 n, IX: 150 n, X: 450 |i.
-15-
Total: I +
II + III + III. 1 + (6^ or IV or IV + V)
+ VI + M.l + (9*^ or VII or VII + VIII)
+ IX + X
maximum
200 +
150 + 250 + 270 + 75+150
+ 250 + 270 + 75 + 225
+ 150 + 450
X k
(2,315 k + 200) u^^(2.3 k + .2)
12.9 We now pass to the multiple subroutine preparatory routine. The
requirements for such a routine allow several variants. We will consider only the
basic and simplest one. It is actually quite adequate to taike care of most situa-
tions involving the use of several subroutines -- even of very complicated ones,
(t-xamples will occur in our future codings, in particular in Chapters 13 and 14.)
PROBLEM 17
Same as Problem 16 with this change: The modification is desired for
I subroutines 2j 2 . The characteristic data for 1. (in the sense of Problem
16) are a , ^., k. , K.. Each Z. is stored as its a., K. , and / indicate (cf.
Problem lo), the a , Z , k , K (i = 1 I) are stored at 41 suitable, consecu-
tive memory locations.
In order to be able to use the treatment of Problem 16 in 12.8, we
assume in conformity with (5) in 12.8
(1)
K. ^ 0 for all i = 1,
I.
(Cf. also the other pertinent remarks loc. cit. )
i is the induction index, running from 1 to I. For each value of i
we have to solve Problem 16. We can do this with the help of our coding of that
problem, but we must substitute the data of the problem, a , X , k , K , into the
appropriate places. Inspection of the coded sequence shows that these places
are 10, 5, 3, 9, res{>ectively.
"e propose to place the coded sequence that we are going to develop
imnediately before that one of Problem 16, i.e. immediately before 42, ..., 1.
Let P be the number of the memory location imnediately before the coded sequence
that we are going to develop -- i.e., if the length of that sequence is /' and
the total memory capacity is L' (both in terms of words), then
(2)
P = 43 + /' = L' - 43'
6 represents the possibility of going directly from III via 4, 5 to VI,
or from VI via 5 to IX, respectively, with no other boxes intervening.
We will use this same notation in similar situations in the future.
-16-
We will place the a., t.. k,,ic. (i = 1, .... I), in the form 2-^'a. , 2-1'^ , 2-^'k.,
^ 1111 t ' ' J J J
2" vc. , imnediately before these coded sequences, and in inverse order, i.e. at
P-4i4, P-4i+3, P-4i+2, P-4i+l, respectively.
The induction index i will be stored in the form (P-4i+4)Q in the storage
area A. The quantities P, I will be stored in the form Pq, (P-4I)jj in the storage
area ^ ^Iq ^^^^ ^ needed auid taken from 2).
We can now draw the flow diagram, as shown in Figure 12.2. The actual
coding obtains from this quite directly, box V is absorbed into box II (it is
replaced by 11,10).
The static coding of the boxes I-V follows:
B.l
Po
I.l
B.l
2
A
S
(to 11,1)
I.l A
2
11,11
Sp
3
2
h-
4
11,13
Sp
5
2
h-
6
11,15
Sp
7
2
h-
8
11,17
Sp
9
2
h-
10
A
s
11
P-4i+4
12
lo
s
13
P-4i+3
14
5
s
15
P-4i+2
16
3
s
17
P-4i+l
18
9
s
Ac
Po
A
Po
Ac
(P.4i+4)
II,
11
P-4i+4
Ac
(P-4i+3)
II.
13
P-4i+3
Ac
(P-4i+2)
II.
15
P-4i+2
Ac
(P-4i+l)
II.
17
P-4i+l
Ac
(P-4i)„
A
(P-4i)„
Ac
2-l9a.
10
2- IV
Ac
2-1'/.
5
2-1%
Ac
2-'\.
3
2- IV
Ac
2-i'x.
9
2-K
(to 111,1)
-17-
(TV-i
I
£
*
V^to A \
l-^l
Va
vi; *
\
)
^— |/^ (P-^if^l
>^
(p-4iltoA
ii-1-^ i
/''
f
Ci
I
«
'
S
C?\
n
^
•f,
. BT ,
k **
M.
z"''a.i to to
2. li to J
r'% to 3
2"''>tj to f
42 -T
4
i - I
S
— 4-
' i
0 .P-4l-h4
Z'a.,
F-4i->-3
z-^ti
P-41 ^i
^"%
P-'fi + 1
a-"?Ci
r
i
4Z-T
refer- to
42-1
in It. J
Figure \Z.Z
.18-
III (Problem 16: 42 - 1. )
(to
IV, 1)
B.2
(P-«)o
IV, 1
B.2
2
A h-
3
Cc
. (to
v,i)
V
(to
11,1)
Ac
Ac
(P-4I)„
(4(i-I)),
Note, that box V required no coding, hence its inmediate successor (II)
must follow directly upon its inmediate predecessor (IV).
The ordering of the boxes is I, II, III, IV, and II must also be the
imnediate successor of IV. In addition, III cannot be placed inmediately after
II, since 111,1 is 42 but III must nevertheless be the inmediate successor of
II. All this necessitates the extra orders
11,19
IV. 4
111,1
II. 1
C
C
Finally, in order that IV be the inmediate successor of III, the e of 42 - 1
(in 21) must be equal to IV, 1.
We must now assign A, B. 1-2 their actual values, pair the 25 orders
1,1-2, 11,1-19, IV, 1-4 to 13 words, and then assign I,1-IV,4 their actual values.
(Ill is omitted, since it is contained in 42 - I. ) We wish to do this as a
(backward) continuation of the code of 12.8. In this way we obtain the following
table:
1.1-2
58 -58'
11,1-19
IV, 1-4
57 -48
48'-46
A
B.1-2
45 _
44 - 43
Thus, in terms of equation (2), /' = 16 and
(2') P = 59 = L' - 59 .
Now we obtain this coded sequence:
2 h-
37
S4
44
45S
45
52 Sp
2h-
5T Sp
2h-
SU Sp
2h-
45 Sp
53
52
5T
5U
49
45 S
10 S
5S
3S
9S
48
£
46
45
44
43
42C,
43
45 h-,
e Cc
57C,
- -
Po
(P-4I)„
-19-
In addition 21 in 42 - 1 of 12.8 must read
7T T h-, 45 Cc'
The durations may be estimated as follows:
I: 75 n, II: 725 ^, IV: 150 n.
Ill: The precise estimate at the end of 12.7 is
maximum = (2,315 k. + 200) ^.
Total: I + i (II + III + IV) =
i = l
maximum
= (75 + i (725 + 2,315 k. + 200 + 150)) n =
i=i
= (2,315 i k. + 1,075 I + 75)
^^(2.3 i k. + 1.1 I) m .
i=i
Z k. is the total length of all subroutines. Hence it is necessarily
^ L' ^ L = 2 = 4,096. Actually it is unlikely to exceed, even in very canplicated
problems, the order =si jL=5 1,000. 1.1 I is negligible compared to 2.3 Z k. .
Hence
2 , 300 m = 2 . 3 seconds
is a high estimate for the duration of this routine.
12.10 Having derived two typical coded sequences for preparatory
routines, it is appropriate to say a few words as to how their actual use can
be contemplated. We do not propose to present a discussion of this subject to
any degree of completeness -- we only wish to point out some of the most
essential aspects. Since the routine of Problem 17 is more general than that
one of Problem 16, we will base our discussion on the former.
The discussion of the use of preparatory subroutines is necessarily
a discussion of a certain use of the input organs of the machine, ^e have
refrained in our reports, so far, from making very detailed and specific assump-
tions regarding the characteristics of the input (as well as of the output)
organs. At the present juncture, however, certain assumptions regarding these
organs are necessary. Ch the basis of engineering developments up to date,
such assumptions are possible on a realistic basis. Those that we are going
to formulate represent a very conservative, minimum program.
.20.
Our assumptions are these:
As indicated in section 4.5, we incline towards the use of magnetic
wire (soundtrack) as input (and output) mediuai. We expect to use it at pulse
rates of about 25,000 pulses (i.e. binary digits) per second. We will certainly
use several input (and output) channels, but for the purposes of the present
discussion we assume a single one.
We assume that the contents of a wire can be "fed" into the machine,
i.e. transferred into its inner, selectron memory, under manual control. We
assume that we can then describe by manual settings
1) to which memory position the first word from the wire
should go (the subsequent words on the wire should then
go in linear order into the successive, following memory
positions),
2) how many words from the wire should be so "fed".
We assume finally, that single words can also be "fed" directly into
the machine by typing them with an appropriate "typewriter". (This "typewriter'
will produce electrical pulses, and will be nearly the same as the one used to
"write" on the magnetic tape.) We assume that we can determine the memory
position to which the typed word goes by manual settings.
The last assumption, i.e. the possibility of typing directly into the
memory, is not absolutely necessary. It is alternative to the previously
mentioned "feeding" of words from a magnetic wire. When longer sequences of
words have to be fed, the wire is preferable to direct typing. When single
words, irregularly distributed, have to be fed, however, then feeding from
appropriate wires would still be feasible, but definitely more awkward than
direct typing. In addition, the possibility of direct typing into the memory
is probably very desirable in connection with testing procedures for the
machine. We are therefore assuming its availability.
These things being understood, we can describe the procedure of
placing a, presumably composite, routine into the machine. It consists of
the following steps:
First: T^ere are one or more constituent routines: "Hie main routine
and the subroutines, where it is perfectly possible that the subroutines bear
further subordination relationships to each other, i.e. are given as a hierarchy.
All of these are coded and stored on separate pieces of magnetic wire.
These are successively fed into the machine, i.e. into the inner
memory. The desired positions in the memory are defined by manual settings.
' TKese operations should also be feasible under the "inner", electronic
control of the machine. We will discuss this aspect of the input-output
organ, and the logical, code orders lAich circumscribe it, in a subsequent
paper (Part III in this series).
.21-
Second: The multiple subroutine preparatory routine (Problem 17) is
also coded and stored on an individual magnetic wire. (It is, of course, assumed
to be part of the library of wires mentioned in section 4.6.)
This is also fed into the machine, like the "constituent" routines of
the first operation, described above. As observed in 12.8 and 12.9 it has to be
p>ositioned at the end of the memory.
Third: The constants of the multiple subroutine preparatory routine,
i.e. of Problem 17, are typed directly into the memory. They are the following
ones:
1) The number of subroutines, I, which is put in the form (P-4I)g
into the position
?3 = L' - 43 = P + 16.
2) The 41 data which characterize the I subroutines: a., /. , k. , K,.
(i = 1 1), which are put in the form 2" a , 2' X , 2- k. ,
2-i\. into the positions P-4i+4, P-4i+3, P-4i+5, P-4i+l,
respectively.
Fourth: The machine is set going, with the caitrol set manually at
the beginning of the preparatory routine (58 = L'-48 = P+1), and the adiust-
ment of all subroutines to their actual positions (in the sense of 12.5-12.7)
is thus effected.
Fifth: Any further adjustments which are necessitated by the
relationships of the subroutines to each other (cf. the first operation, as
described above, and the fifth remark in 12.11) are made by typing directly
into the memory.
After all these operations have been carried out, the machine is
ready to be set going on the (composite) routine of the problem itself ^ne
preparatory routine (in the 58 last memory positions) and its data (in the 41
preceding positions) are now no longer needed. I.e. these positions may now
be viewed, from the point of view of the problem itself, as irrelevantly
occupied. They are acccrdingly available for use in this sense.
12.11 We can now draw some conclusions caicerning the setting-up
procedure for a machine of the type contemplated, on the basis of the dis-
cussion of 12.10. We state these in the form of five successive remarks.
first: The pure machine time required to feed the (main and subsidiary)
routines of the problem into the machine may be estimated as follows: A word
coisists of 40 pulses. For checking and marking purposes it will probably have to
contain some additional pulses. With the systems that we are envisaging, a total
of, say, 60 pulses per word will not be exceeded. With the speed of 25,000 pulses
per second, as assumed in 12.10, this gives 2.4 m per word.
.22-
Thus the pure machine time of the first sincl second operations of 12.10
is 2.4 m per word.
TKe pure machine time of the third operation of 12.10 is, as we saw at
the end of 12 . 9, 2.3 m per word.
We also observed at the end of 12.9, that even in very complicated
problems the number of words thus involved is not likely to exceed 1000. This
puts on the total time requirement on these counts an upper limit of
2.4 + 2.3 = 4.7 seconds, i.e. of less them 5 seconds.
Second: These time requirements are obviously negligible compared to
the time consumed by the attendant mainual operations: The placing of the magnetic
wires into the machine, the setting of the (memory) position definitions, etc.
It follows therefore, that there is no need and no justification for
any special routine-preparing equipment (other than the typing devices already
discussed) to complement a machine of the type that we contemplate.
Third: Assuming a composite routine made up often parts, i.e. of a
routine and nine subroutines, we have 1=9. This represents already a very high
level of complication. The preparatory routine requires 58 + 41 words, i.e. for
I = 9 94 words. This represents 2.3% of the total (selectron) memory capacity,
if we assume that the latter is L' =2"^^ = 4,096.
Fourth: Each subroutine requires the direct, manual typing of four
words into the machine (for a., t , k. , >c. ), as well as one for all subroutines
together (for I). In addition the changes of the second kind in the sense of
12.4, i.e. those which the main routine must effect on the subroutine, require
several words. Indeed, the sending of the control to the subroutine requires
one order, i.e. half a word. Any number is sent there at the price of two
orders (bringing the number to be substituted into the subroutine into the accu-
mulator, substituting it into the subroutine) euid of possibly one storage word
(for the number to be substituted), i.e. of a total of one or two words. There
will usually be three or more such number substitutions (the e of the subroutine,
i.e. the memory position in the main routine from where the control is to con-
tinue after the completion of the subroutine, and two or more data for the sub-
routine). Thus five words for these changes is a conservative estimate.
A subroutine consumes therefore ten words in extra instructions, by
a conservative estimate. It seems therefore, that the storage of a subroutine
in a library of wires, in the sense of section 4.6, and its corresponding
treatment as an individual entity becomes justified when its length in words
is significantly larger than 10. A minimum length of 15-20 words would there-
fore seem reasonable.
To conclude this discussion, we observe that in making these estimates,
we disregarded all operations other than the actual, manual typing of words (on
wire or into the machine). This is legitimate, because the time and the memory
requirements of the automatic operations that are involved are negligible, as we
saw in our three first remarks.
.23-
Fifth: We pwinted out in our description of the first operation in 12.10,
that the various subroutines used in connection with a main routine, may bear further
subordination relationships to each other. In this case they will also contain actual
references to each other, emd these will have to be adjusted to the actual positions
of the subroutines in question in the memory. These adjustments may be made as
changes of the second kind, in the sense of 12.4, by the routines involved. They may
also be handled by special preparatory routines. We expect, however, that it will be
simplest in most cases to take care of them by direct typing into the memory, as
indicated in the description of the fifth operation in 12.10.
The adjusting of the references of a subroutine to itself, to the actual
position of the subroutine in the memory, might also have been made by direct typing
into the machine. We chose to do it automatically, however, by mezins of a prepara-
tory routine, because these references are very frequent: The great majority of all
orders in a subroutine contain references to this same subroutine. References to
another subroutine, on the other hand, are likely to be rare and irregularly
distributed. They are therefore less *rell suited to automatic treatment, by a
special preparatory routine, than to ad hoc, meinual treatment, by direct typing
into the machine.
Actual exeunples of such situations in vhich it will also be seen that
the proportions of the various factors involved are of the nature that we have
anticipated here, will occur in the subsequent chapters, and in particular in
Chapters 13 and 14.
Jnstitut
(U, 8 & 11) 23503
Advanned ^tudy.
Electronic Computer Project,
Report on the mathgmnticail rind
logical aspects of an electronic
f nnpnt-i ng „i natrunent".
'ittlter. v.i*3
OCB '52
l>.fr Urn**
PV-?
\^rAA^d^.(La\/'
9iri'
iiii-^LaaAi 1 fav-bmcL <^
Institute for Advanced Study
Matti. ■ Nat. Sci. Library
Princeton. N. J. 08540