Page 19 - Compact Numerical Methods For Computers
P. 19
A starting point 9
That this can and does occur should be kept in mind whenever averages are
computed. For instance, the calculations are quite stable if performed as
(a + b)/2 = 5000+[(a – 5000) + (b – 5000)]/2.
Taking account of every eventuality of this sort is nevertheless extremely tedious.
Another annoying characteristic of small machines is the frequent absence of
extended precision, also referred to as double precision, in which extra radix digits
are made available for calculations. This permits the user to carry out arithmetic
operations such as accumulation, especially of inner products of vectors, and
averaging with less likelihood of catastrophic errors. On equipment which func-
tions with number representations similar to the IBM/360 systems, that is, six
hexadecimal (R = 16) digits in the mantissa of each number, many programmers
use the so-called ‘double precision’ routinely. Actually t = 14, which is not double
six. In most of the calculations that I have been asked to perform, I have not
found such a sledgehammer policy necessary, though the use of this feature in
appropriate situations is extremely valuable. The fact that it does not exist on
most small computers has therefore coloured much of the development which
follows.
Finally, since the manufacturers’ basic software has been put in question above,
the user may also wonder about their various application programs and packages.
While there are undoubtedly some ‘good’ programs, my own experience is that the
quality of such software is very mixed. Badly written and poorly documented
programs may take longer to learn and understand than a satisfactory homegrown
product takes to code and debug. A major fault with many software products is that
they lack references to the literature and documentation of their pedigree and
authorship. Discussion of performance and reliability tests may be restricted to very
simple examples. Without such information, it may be next to impossible to
determine the methods used or the level of understanding of the programmer of the
task to be carried out, so that the user is unable to judge the quality of the product.
Some developers of mathematical and statistical software are beginning to recognise
the importance of background documentation, and their efforts will hopefully be
rewarded with sales.
1.3. SOURCES OF PROGRAMS
When the first edition of this book was prepared, there were relatively few sources of
mathematical software in general, and in essence none (apart from a few manufac-
turers’ offerings) for users of small computers. This situation has changed remark-
ably, with some thousands of suppliers. Source codes of numerical methods,
however, are less widely available, yet many readers of this book may wish to
conduct a search for a suitable program already coded in the programming language
to be used before undertaking to use one of the algorithms given later.
How should such a search be conducted? I would proceed as follows.
First, if FORTRAN is the programming language, I would look to the major
collections of mathematical software in the Collected Algorithms of the Association for
Computing Machinery (ACM). This collection, abbreviated as CALGO, is comprised