December 1964 - Vol. 7 No. 12

December 1964 issue cover image

Features

Research and Advances

Mechanization of tedious algebra—the e coefficients of theoretical chemistry

A table of formulas for certain integrals involving Legendre functions has been constructed mechanically by a program which performed algebraic operations. The formulas are all rational algebraic expressions in a single variable and were constructed by a recurrence procedure. They are of interest in molecular quantum chemistry. Trivial coding techniques were used to write the relevant programs in FORTRAN. The results were photocomposed on a Photon S-560 system, that was controlled by tapes which were punched directly from the computer output, so avoiding manual keyboarding, transcription errors and keyboarded correction.
Research and Advances

Double-precision square root for the CDC-3600

In January of 1960, the late Hans J. Maehly completed a summary of approximations to the elementary functions for the CDC-1604 computer. The approximations and techniques suggested by Maehly are equally applicable to the second large computer in the CDC line, the 3600. Unlike the 1604, however, the 3600 has built-in double-precision floating-point arithmetic. The present work, largely inspired by the successes of Maehly and his associates, concerns the extension of one of Maehly's ideas to a double-precision subroutine for the 3600.
Research and Advances

Mark sense and port-a-punch programming inputs

The United States Military Academy is faced with the situation whereby 700 cadets may in a single subject prepare computer programs in class one day and get their solutions in the form of a computer runoff at their next class attendance. If the programs had to be processed by conventional keypunch techniques the peak requirements for keypunching would be overwhelming. Keypunched cards with operator errors caused by misinterpreted coding sheets could not be returned to students for review and correction prior to the time the solutions are required in class. This situation has caused the Military Academy to investigate methods bypassing the keypunching operation. A number of special type mark-sense and Port-A-Punch cards have been used. Figure 1 shows a card used with SADSAC, a simplified academic design single address computer; Figure 2, a card for SASSY, a symbolic assembly program; Figure 3, a card for CADETRAN, a dialect of FORTRAN. (It contains the arithmetic statement X = 3.5 * A/(K**2 - C**2).) The CADETRAN/FORTRAN card is printed in four colors. Numbers (which require marking of a single position) are printed in black. Letters of the first third of the alphabet are printed in green, as is the 12-zone position which is identified A→I. Middle third letters of the alphabet are printed in red, as is the 11-zone position identified J→R. The final third of the alphabet is printed in blue as is the 0-zone position, and identified as S→Z. Commonly used symbols which would require 3 marks have been brought out to a separate left column where a single mark serves to identify them. Common but lengthy verbs such as FORMAT, DIMENSION and READ may also be represented by a single mark.
Research and Advances

A case of too much precision

I was so impressed and pleased by RDNUM, A. Hassitt's General-Purpose Input Routine [Comm. ACM 7, 6 (June 1964), 350-355], that I have transliterated it into FORTRAN II for the IBM 7094. In doing this I stumbled across solutions to a decimal-to-binary conversion problem that has long bugged FORTRAN. Let me hasten to say, before C. H. Weisert [Letter to the Editor, Comm. ACM 7, 5 (May 1964), 314] castigates me for discussing 7090 problems in your columns, that the matter discussed here is relevant to any machine conversion algorithm.
Research and Advances

A class of matrices to test inversion procedures

The test matrices given by M. L. Pei [Comm. ACM 5, 10 (Oct. 1962), 508] and R. D. Rodman [Comm. ACM 6, 9 (Sept. 1963, 515] are special cases of a general class of matrices with complex elements for which an explicit form of the inverse can be exhibited. This class of matrices is such that eigenvalues and a set of associated eigenvectors can also be obtained. Then not only inverses, but also eigenvalues of the Pei matrix given by W. S. Lasor [Comm. ACM 6, 3 (Mar. 1963), 102] and eigenvectors given by A. R. C. Newberry [Comm. ACM 6, 9 (Sept. 1963), 515], and eigenvalues of the Rodman matrix follow as special cases.
Research and Advances

A family of test matrices

A family of test matrices with the following properties is described here: (a) an explicit inverse is given; (b) the characteristic polynomial is easily obtained; (c) a large measure of control over the eigenvalues is possible; (d) in special cases the eigenvalues and eigenvectors can be given explicitly, and the P-condition number can be arbitrarily assigned.
Research and Advances

A note on the calculation of probabilities in an F-distribution

Tests of significance based on analysis of variance calculations often require the determination of the probabilities of obtaining values of F greater than those arising from the analysis. These probabilities are customarily obtained from tables of the F-distribution. However, when the calculations are done on a computer, it would be convenient if estimates of these probabilities could be calculated by the analysis of variance program and presented in the output of the results. This note gives a simple method of doing so.
Research and Advances

Another use of FORTRAN II chaining

The letter by Ackermann appearing in the Communications of the ACM of May 1964, presented one of a number of the very interesting uses of the FORTRAN II CHAIN procedure. Another unusual application of this procedure has been used by some at Lockheed Missiles & Space Company for realizing a very efficient program library tape.
Research and Advances

Scanning text with a 1401

Scanning text on a computer, as in forming word lists or editing, usually involves isolating and identifying certain characters or classes of characters. For example, if we scan text to form a list of words, the definition of “word” might be “everything between two blanks that isn't punctuation.” To program this, we must be able to identify a single character (blank) and a class of characters (punctuation). In a computer such as the 7090, where characters are numbers, we can put a character into an index register and index a table of transfers (one table-entry per character), thus getting to a section of code appropriate for handling that particular character. This is not natural for the 1401 because characters are not numbers and turning them into numbers is a bit clumsy. However, 1401 addresses are a combination of numbers and other characters, and we can use characters directly to reference certain addresses provided we can turn all characters (there are 64) into the 40 that are allowable in specifying an address.
Research and Advances

Parallel methods for integrating ordinary differential equations

This paper is dedicated to the proposition that, in order to take full advantage for real-time computations of highly parallel computers as can be expected to be available in the near future, much of numerical analysis will have to be recast in a more “parallel” form. By this is meant that serial algorithms ought to be replaced by algorithms which consist of several subtasks which can be computed without knowledge of the results of the other subtasks. As an example, a method is proposed for “parallelizing” the numerical integration of an ordinary differential equation, which process, by all standard methods, is entirely serial.
Research and Advances

Integer and signed constants in ALGOL

A few remarks are given on the relations between syntax and semantics in the programming languages. The aim is to point out that, it is true that the grammar of a contex-free language should be conceived not only as a strings-generating device but also as a method for expressing a meaning, then the grammar of ALGOL is open to some criticism.
Research and Advances

Note on the use of procedures

The very generality of a language like ALGOL renders it inefficient when a number of programs have to be written all dealing with a fairly narrow range of problems. This can be largely overcome by the construction of a package of suitable procedures, each of which embodies a fairly substantial piece of computation that will be required in several different contexts (see, for example [1]). A program for a specific purpose will consist of a set of these procedures linked by a more or less skeletal main program.

Recent Issues

  1. November 2024 CACM cover
    November 2024 Vol. 67 No. 11
  2. October 2024 CACM cover
    October 2024 Vol. 67 No. 10
  3. September 2024 CACM cover
    September 2024 Vol. 67 No. 9
  4. August 2024 CACM cover
    August 2024 Vol. 67 No. 8