Chuck Lawson passed away in July at the age of 83. Chuck was one of the people who introduced me to computing and mathematical software. I worked for him at Caltech's Jet Propulsion Laboratory during the summers of 1961 and 1962, just before and after my first year in grad school.
Chuck was born in Weiser, Idaho, in 1931. His mother was an optometrist and Chuck received a BS in optometry from UC Berkeley in 1953. He was immediately drafted into the Army and spent the next three years doing eye exams on draftees. He told me that destroyed any desire he had to be an optometrist. As soon as he got out of the Army he went back to school to study his first love, mathematics.
Chuck was a graduate student in mathematics at UCLA from 1956 to 1960. His professors included Peter Henrici and Theodore Motzkin. He was at UCLA just after the demise of the INA, the Institute for Numerical Analysis, and the departure of George Forsythe, John Todd and Olga Taussky-Todd.
But the SWAC, the Standards Western Automatic Computer, was still going strong. When it began operation in 1950, the SWAC was one of the world's first and, at the time, fastest, stored program computers. It was intended to be a temporary, experimental machine, but UCLA kept it in operation, with modifications, for over 15 years. Chuck spent a lot of time with the machine. He wrote an assembler for it. He told me the only reason he ever finished his thesis was because they shut the SWAC down for a few months to make some updates.
The Jet Propulsion Laboratory is operated by Caltech for NASA. After the USSR surprised the world by launching Sputnik in October, 1957, JPL, together with the Army's Redstone Arsenal, hurriedly launched the USA's first satellite, Explorer I, five months later. JPL went on to become NASA's primary planetary spacecraft center.
In the early 1960's, the Ranger and Surveyor unmanned missions to the Moon prepared the way for the subsequent Apollo manned missions. Today, the laboratory's many missions include the Curiosity Rover on Mars and the Cassini-Huygens mission orbiting Saturn.
Chuck joined the Applied Mathematics Group at JPL in 1960, starting what turned out to be a 36 year career. He took over as head of the group five years later. Over the years the group usually consisted of about half a dozen people. They consulted with the rest of the lab on their mathematical computations, developed an extensive library of mathematical software, and engaged in a modest amount of numerical analysis research.
I worked in the Math Group in the summer of 1961, just after graduating from Caltech, and then again the next year, after my first year of grad school at Stanford. Chuck Lawson was my supervisor, friend, and inspiration.
I was introduced to my first IBM main frame computers, the 709 with vacuum tubes and later the transistorized version, the 7090. And, most importantly, I wrote my first Fortran programs.
One project that Chuck and I undertook was ahead of its time, but we learned a lot. JPL was (and still is) responsible for ephemerides, descriptions of the position and motion of the planets and the Moon. One aspect of producing an ephemeris involves "Lunar theory", semi-analytic Fourier-like series that attempt to describe the motion of the Moon. Chuck wanted to do symbolic manipulation of the trigonometric series involved in Lunar theories. John McCarthy has recently invented LISP and symbolic computing with lists. Chuck thought we could apply those ideas to Lunar theories.
So, we set out to write what today would be called a symbolic algebra system. We soon could represent trigonometric polynomials, and add, multiply, differentiate, and integrate them. We were working in Fortran and I even succeeded in hacking the Fortran compiler so that a routine was allowed to call itself and we could implement recursion. But then we ran into something we hadn't fully anticipated -- simplification. When are two symbolic expressions equal to each other? When does their difference simplify to zero? This is THE fundamental question in symbolic computer algebra and it stumped us at the time. We never got any further with the project. However, we had already chosen an appropriate acronym, Fortran List Oriented Program, FLOP.
I remain interested in symbolic computer algebra to this day.
Richard Hanson was a member of Chuck's Applied Math Group for several years in the late 1960s and early '70s. Chuck and Dick worked together on software for matrix computations. Lawson and Hanson are the authors of an important book, Solving Least Squares Problems, published by Prentice Hall in 1974 and republished by SIAM in their Classics series in 1995. We still use their algorithm NNLS for non-negative least squares in the function lsqnonneg in MATLAB today.
Lawson and Hanson's software for least squares and splines was instrumental in the discovery, published in 1968, of irregularities in the Moon's gravitational field. The now famous paper by JPL's P. M Muller and W. L. Sijogren appeared in the August 16, 1968, issue of Science. Mascons: Lunar Mass Concentrations. Their contour map of deviations in acceleration in the orbit of an early lunar orbiter is on the cover of that issue. It was important to understand this phenomenon if we were to accurately land men on the Moon. A few years later Muller participated in a conference on mathematical software and described the role that Lawson and Hanson's work played in the discovery of Mascons. The proceedings, edited by John Rice, were published by ACM and Academic Press, but somehow they happen to be freely accessible online.
Fred Krogh also joined the JPL Applied Math Group in the late 1960s and remained there the rest of his career, taking over as head after Chuck's retirement. Fred's specialty is the numerical solution of ordinary differential equations. He has developed a series of Fortran ODE solvers over the years that are in use not only at JPL, but all over the world.
Fred is an advocate for Adams multistep methods, which use results saved from several past steps to take the next one. One of his recent manuscripts, which states of the cover page that it "has never been submitted for publication", is An Adams Guy Does the Runge-Kutta. His final conclusion is "Runge-Kutta methods are somewhat boring :-)".
A very important feature of the ODE solvers we have in MATLAB and Simulink is "event handling", which is the ability to detect and react to user-defined functions of the solutions to differential equations. The first time I ever saw such a feature was in one of Fred Krogh's codes. He calls them "gstops" because the ode is almost always given by a function "f". So the next letter in the alphabet, "g", specifies the rest of the problem. I don't think Fred invented the idea of event handling, but he was one of the first people to make it widely accessible in software.
After NASA budget cuts caused JPL to eliminate support for the library that the Math Group had developed, Fred took it upon himself to maintain his own Internet site, Math a la Carte. An extensive library of mathematical software for use with both Fortran and C, MATH77/mathc90, is available there.
The best known project by Chuck's group is the BLAS, the Basic Linear Algebra Subroutines. The project began modestly in 1972 when Fred Krogh wrote assembly language routines for JPL's Univac 1108 for vector dot product and vector plus scalar times vector. A suite of Fortran-callable vector functions was proposed in a JPL report and a SIGNUM Newsletter article by Hanson, Lawson, and Krogh in 1973. (This was before the Internet and email. The SIGNUM Newsletter came from the ACM Special Interest Group on Numerical Mathematics via conventional mail.)
A lively open discussion attended by a couple dozen of us was held during a 1974 conference on mathematical software at Purdue organized by John Rice. Sometime over the next few years David Kincaid from the University of Texas joined the three JPLers and brought with him the CDC 6600 at Texas.
We decided to adopt the BLAS for use in the LINPACK project. I suggested we use the LINPACK subroutine naming conventions for the BLAS functions. As a result the name of "elvop", which stood for elementary vector operation, and meant vector plus scalar times vector, became the now famous "daxpy".
By 1977 Hanson had moved from JPL to Sandia, and the nearly final specification for the BLAS was issued as a Sandia report. In 1979, the paper referenced below by Lawson, Hanson, Kincaid, and Krogh was published in the ACM Transactions on Mathematical Software.
That was just the start, BLAS 1, vector operations. Today other people have taken on the BLAS project. We have BLAS 2, matrix-vector operations, and BLAS 3, matrix-matrix operations. The BLAS even has its own Web page. It's very much a community endeavor. But Chuck Lawson started it all.
Fred Krogh, "Remembering Chuck Lawson"
Thomas Haigh, "An Interview with Charles L. Lawson" SIAM Oral Histories, <http://history.siam.org/oralhistories/lawson.htm>
Charles L. Lawson, "Background, Motivation, and a Retrospective View of the BLAS", SIAM Oral Histories, <http://history.siam.org/sup/Lawson_BLAS.pdf>
C. L. Lawson, R. J. Hanson, D. R. Kincaid, and F. T. Krogh, "Basic Linear Algebra Subprograms for Fortran Usage", ACM TOMS, 5, 3, 1979, 308-325. <http://doi.acm.org/10.1145/355841.355847>
Get the MATLAB code
Published with MATLAB® R2015a
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.