zbMATH — the first resource for mathematics

Examples
Geometry Search for the term Geometry in any field. Queries are case-independent.
Funct* Wildcard queries are specified by * (e.g. functions, functorial, etc.). Otherwise the search is exact.
"Topological group" Phrases (multi-words) should be set in "straight quotation marks".
au: Bourbaki & ti: Algebra Search for author and title. The and-operator & is default and can be omitted.
Chebyshev | Tschebyscheff The or-operator | allows to search for Chebyshev or Tschebyscheff.
"Quasi* map*" py: 1989 The resulting documents have publication year 1989.
so: Eur* J* Mat* Soc* cc: 14 Search for publications in a particular source with a Mathematics Subject Classification code (cc) in 14.
"Partial diff* eq*" ! elliptic The not-operator ! eliminates all results containing the word elliptic.
dt: b & au: Hilbert The document type is set to books; alternatively: j for journal articles, a for book articles.
py: 2000-2015 cc: (94A | 11T) Number ranges are accepted. Terms can be grouped within (parentheses).
la: chinese Find documents in a given language. ISO 639-1 language codes can also be used.

Operators
a & b logic and
a | b logic or
!ab logic not
abc* right wildcard
"ab c" phrase
(ab c) parentheses
Fields
any anywhere an internal document identifier
au author, editor ai internal author identifier
ti title la language
so source ab review, abstract
py publication year rv reviewer
cc MSC code ut uncontrolled term
dt document type (j: journal article; b: book; a: book article)
METAFONT: the program. (English) Zbl 0609.68004
Computers & Typesetting. Vol. D. Reading, Massachusetts etc.: Addison Wesley Publishing Company. XV, 560 p. (1986).

The book, volume four of the series, is the companion of volume C, because it describes and lists the documented METAFONT program. In its appearance it is very close to volume B. It contains a short preface, a section ”Supplementary Bibliography”, where the original papers that presented the underlying algorithms are listed, and an introduction to the WEB system of structured programming to help understand the program listing that follows (covering 559 pages).

All the algorithms that are used are fully documented and explained in the listing section, e.g. the geometrical algorithms of control point choice for Bézier splines, the filling of an envelope, or the algorithms for command parsing and execution, and the arithmetic and functions for scaled numbers (METAFONT uses no floating point numbers, but (32.32)-bit fixed point numbers).

Since many of the algorithms deal with geometry and geometrical structures, they are easy to understand, and the subdivision of program parts into smaller pieces, encouraged by the WEB system, does the rest to make everything easy to understand.

The algorithms used were selected for simplicity and understandability, but nevertheless they are efficient, and in several places the efficiency grows with rising simplicity. An example is the subdivision of paths into parts that run in different octants. So (after a simple transformation) one has to fight only with paths that run in the first octant, i.e. the x-and y-derivatives are both positive and the y-derivative is smaller than the x-derivative. Other algorithms, that build on this division, become simpler and faster, and the overhead for subdivision and transformation is small.

The book is not only a program listing for those who want to install and implement the METAFONT program on a new computer system, but it also contains numerous interesting algorithms and programming tricks. Like volume B, it is a good example of structured programming and, with help of the WEB system, of structured program documentation.

Reviewer: H.Stenzel
MSC:
68-02Research monographs (computer science)
68U99Computing methodologies
68-04Machine computation, programs (computer science)
Software:
METAFONT