CVS difference for ais/ai-00296.txt

Differences between 1.4 and version 1.5
Log of other versions for file ais/ai-00296.txt

--- ais/ai-00296.txt	2003/06/05 00:34:14	1.4
+++ ais/ai-00296.txt	2003/06/18 00:12:23	1.5
@@ -1557,3 +1557,109 @@
+From: John Barnes
+Sent: Tuesday, June 10, 2003  4:42 AM
+Vectors and matrices
+At the last ARG meeting I was asked to add material for
+matrix inversion, solution of linear equations,
+determinants, and eigenvalues and vectors. We very briefly
+considered a couple of other topics but dismissed them as
+I have updated AI-296 as instructed and sent it to Randy so
+I assume it is now on the database. [Editor's note: This is
+version /02 of the AI.]
+I put the linear equations, invert and determinant in the
+main packages (one for reals and one for complex). I put the
+eigenvalues and vectors in child packages because they
+seemed a bit different - also they were more complex than I
+had remembered (I hadn't looked at this stuff for nearly
+half a century) and maybe they are more elaborate than we
+There are a number of queries embedded in the text
+concerning accuracy etc.
+However, there are a number of other matters which ought to
+be discussed. I visited NAG (National Algorithms Group).
+They did a lot of Ada 83 numerics stuff once although they
+no longer sell it. They did implement 13813.
+They put the invert stuff in separate packages but it is
+much more elaborate than my humble proposal. For example
+they have options on whether to invert just once or to
+iterate on the residuals until they are acceptable. But then
+of course one has to give the accuracy required (although
+they do have defaults). Moreover the LU decomposition is
+made visible.
+Now as a user, I don't really want to know about how it is
+done (in a sense it breaks the abstraction), I just want the
+answer. They have provided what the numerical analyst
+specialist would want and I don't really think that is
+appropriate for a simple standard but maybe I am wrong. Thus
+their subprograms have some 10 parameters whereas in my
+proposal they are the minimal one or two. For instance their
+determinant has eight parameters whereas mine has one.
+In the case of eigenvalues and vectors, they had options to
+select just the largest or smallest or all those in a
+certain range. No doubt because of timing considerations for
+large matrices.
+We also considered other topics which might provide
+candidates for a standard.
+The trouble with many topics is that techniques are still
+evolving and it is unclear that a unique worthy proposal
+would be easy.
+Curve and surface fitting. There is lots of choice here.
+Cubic splines are fashionable. Chebychev polynolmials are a
+long established technique. But both require significant
+user knowledge and it is easy to misuse them.
+Maximization/minimization. Lots of options here and real
+problems have constraints. The techniques are heuristic and
+still evolving so this looks really hard and can be
+Partial differential equations seem too much for the casual
+user. In any event there is a huge variety of parameters and
+Ordinary differential equations and quadrature (integration)
+are perhaps more promising. Again there are quite a lot of
+options. But this might be worth exploring.
+Roots of general non-linear equations. An evolving subject
+still. Very heuristic and prone to chaotic difficulties.
+Roots of polynomial equations. This seemed more likely . It
+appears that the subject is static and a well-established
+technique devised by Laguerre is typically used. (But it is
+outside my domain of knowledge.)
+I have also contemplated my 20 year old HP pocket
+calculator. I had a vague feeling that Ada should be able to
+do what it can do. It can do the following:
+The usual trigonometric and hyperbolic functions.
+Real and complex matrices, linear equations, inversion and
+determinants (reveals the LU decomposition). It does not do
+Random number generation. A whole heap of statistical stuff.
+Integration (quadrature) of a function of one variable.
+Solution of a non-linear equation in one variable.
+So where do we go from here? It is a slippery slope and I
+fear that I am not an expert.

Questions? Ask the ACAA Technical Agent