ERRATA.CNM        date: 1995 - 1 - 23

Errata and related notes for 

              Compact Numerical Methods for Computers:
              Linear Algebra and Function Minimisation

                          Second Edition

                           John C. Nash

                  (Bristol: Adam Hilger)   1990

     (Distributed in USA by the American Institute of Physics.)

Please direct error reports to the author at jcnash@aix1.uottawa.ca
 or via mail to Prof. J C Nash, 
                Faculty of Administration
                University of Ottawa
                136 Jean-Jacques Lussier Private
                Ottawa, Ontario, K1N 6N5 Canada

Date: 1994 - 11 - 26

The singular value decomposition used in Algorithms 1 and 4 is designed
to avoid work when the computed singular values are "small" relative to
the data. However, in cases such as the (in)famous Longley data where
the principal coordinates corresponding to the small singular values
are important, this short-cut gives computed least squares solutions
that are not close to the "traditional" values. In such situations,
the test for small singular values can be eliminated. This has been
indicated in the codes ALG01.PAS and ALG04.PAS in comments preceding
the test and flagged with the comment {JN941126}.

Note that ALG13.PAS calls ALG01.PAS, and may be able to profit from
this adjustment in the symmetric matrix eigenproblem where there are
degenerate (i.e., equal) eigenvalues.



Date: 1991 - 01 - 14

Algorithm 23.

There is an correction in Algorithm 23, page 214.

The 3rd line from the bottom of the page reads

          until notcomp or (i>=n);

It SHOULD read
  
          until notcomp or (i>=m);

That is, we wish to compare i to m, NOT n.

While not an error, the occasion of this repair has been used to
allow for the saving of residuals in nonlinear least squares
problems.  This requires some minor modifications to the calling
sequences for the function NLRES and procedure NLJAC which are to be
part of problem files such as ROSEN.PAS or JJACF.PAS and the new
problem file LOGISTIC.PAS.

Wherever function NLRES is called, using a statement such as

       res:=nlres(i, n, Bvec, notcomp);

the call should be in the form

       res:=nlres(i, n, Bvec, notcomp, Workdata);

Similarly, wherever procedure NLJAC is called, using a statement like

          nljac(i, n, Bvec, X);

the call should be in the form

          nljac(i, n, Bvec, X, Workdata);


Consequent alterations to the program files:

     ALG23.PAS  -- changed to reflect correction of the error and
                   addition of Workdata to the calling sequence of
                   NLRES (3 places) and NLJAC (1 place)

     DR23.PAS   -- modified to note that there is an alternative
                   test problem LOGISTIC.PAS. The file must be 
                   edited to "include" LOGISTIC.PAS instead of
                   ROSEN.PAS.
     
     ROSEN.PAS  -- modified to include Workdata in the defining 
                   statement for NLRES and NLJAC. Workdata is also
                   altered to be VARiable in FMINFN and FMINGR to
                   allow working information to be saved in this
                   data structure. Workdata is defined to be of
                   type probdata, defined in file CONSTYPE.DEF.

     JJACF.PAS  -- modified to include Workdata in the defining 
                   statement for NLRES and NLJAC. Workdata is also
                   altered to be VARiable in FMINFN and FMINGR to
                   allow working information to be saved in this
                   data structure.

New problem file
   
     LOGISTIC.PAS -- a problem file to allow the nonlinear least
                   squares fit of data to a 3 parameter logistic
                   growth curve.

New data files

     EX23A.CNM  -- file to provide the Hobbs data (page 145 CNM2)
                   for LOGISTIC.PAS

     DR23AX     -- file to allow for batch testing of LOGISTIC.PAS

 ===================================================================
