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
   14   15   16   17   18   19   20   21   22   23   24