# April 1961 - Vol. 4 No. 4

## Features

Topological ordering of a list of randomly-numbered elements of a network

A network of directed line segments free of circular elements is assumed. The lines are identified by their terminal nodes and the nodes are assumed to be numbered by a non-topological system. Given a list of these lines in numeric order, a simple technique can be used to create at high speed a list in topological order.

Eigenvalues of a symmetric 3 × 3 matrix

Recently, in order to find the principal moments of inertia of a large number of rigid bodies, it was necessary to compute the eigenvalues of many real, symmetric 3 × 3 matrices. The available eigenvalue subroutines seemed rather heavy weapons to turn upon this little problem, so an explicit solution was developed. The resulting expressions are remarkably simple and neat, hence this note.

Bessel functions of integral order and complex argument

The FORTRAN II source language [1, 2] places rather severe restrictions on the form a subscript may take, primarily because of the manner in which indices are incremented in iterative loops. In the process of constructing a compiler for a medium-sized (8008-word memory) computer which will accept the FORTRAN II source language, it became clear that the “recursive address calculation” scheme, as used in the FORTRAN compilers to minimize object-program running time, was probably not the best one to use. This system, described in some detail by Samelson and Bauer [3], requires that the subscript expression be a linear function of the subscripting variable. The alternative, which requires complete evaluation of the “storage mapping function”, is usually rejected because of the time required for the object program to perform the necessary address calculation.

Programmed error correction on a decimal computer

In a previous paper [1], B. Dimsdale and I reported on the use of programmed Hamming codes for error correction on a 7090. The paper generated much interest, but several readers remarked that they could not use the technique on their decimal machines since they could not manipulate the bit structure of the characters. This paper presents a modification of Hamming's technique to adapt it to such machines. It generalizes to any number base for which addition is built into the machine, and so could be used for alphabetic error correction on a machine where such operations as (A + B, literally) or (R+2, literally) or (H + $, literally) are unequivocally defined. The technique will be described for single strings of characters, but may be generalized to parallel techniques if parallel, no-carry addition is available on the machine in question.

Further survey of punched card codes

The valuable “Survey of Punched Card Codes” prepared by Smith and Williams (Comm. ACM 3, Dec. 1960, 638) unfortunately omits the card codes of European equipment, other than IBM. These are presented in the table on page 181. This information has been extracted from a Ferranti publication, “Collected Information on Punched Card Codes” (List CS 266) and has been set out in much the same way as the table by Smith and Williams.