# Applications, libraries, and test suites

## Contents

- Algol 60
- Algol 68

## Algol 60

### Libraries and numeric packages

- J. C. P. Bus, B. van Domselaar, and J. Kok. Nonlinear Least Squares Estimation. NW 17/78, Mathematisch Centrum, April 1978. Online at cwi.nl
"Two algorithms for minimizing a sum of squares are described and compared. The first one is the well-known Gauss-Newton algorithm. The second oen is based on the algorithm given by Marquardt." Appendix lists ALGOL 60 source.

- NUMAL, A Library of Numerical Procedures in ALGOL 60 (Mathematisch Centrum)
- P. W. Hemker, editor. NUMAL. Numerical Procedures in ALGOL 60. 7 volumes.
MC Syllabus 47, Mathematical Centre, Amsterdam. Online at cwi.nl
- For earlier editions 1-3, perform this search: https://repository.cwi.nl/noauth/search/searchrepository.php?sortchron=updown&sorttype=updown&target=0&titelin=Numal&isneditor=all&syear=all

- P. W. Hemker, editor. Source code and documentation. Stichting Mathematisch Centrum, Amsterdam.1981.

- P. W. Hemker, editor. NUMAL. Numerical Procedures in ALGOL 60. 7 volumes.
MC Syllabus 47, Mathematical Centre, Amsterdam. Online at cwi.nl
- J. C. P. Bus. An ALGOL 60 Package for the Solution of Nonlinear Equations. NW 88/80, Mathematisch Centrum, August 1988. Online at cwi.nl
"This paper is meant to be a user manual for an ALGOL 60 software package. This package contains procedures for solving systems of nonlinear equations using Newton-like methods. The functions involved in these equations are assumed to be differentiable. The software package is based on the NUMAL software library." Appendix lists ALGOL 60 source

file: README for NUMAL.tar date: 100605 by : Jan Kok ========================= Contents of NUMAL.tar --------------------- The set of plaintext ASCII files numalinx.txt newnumal5p1.txt newnumal5p2.txt newnumal5p3.txt together contains an update of the index and manual of the library NUMAL of Algol 60 procedures in numerical mathematics as published in the Mathematical Centre publication: P.W. Hemker (ed.)[1981]: NUMAL. Numerical Procedures in ALGOL 60. 7 volumes. MC Syllabus 47, Mathematical Centre, Amsterdam. Availability of the book version in the CWI publications repository: the repository description of the NUMAL index has URL http://repository.cwi.nl/noauth/search/fullrecord.php?publnr=12897 It contains links to the other volumes and to the PDF files with scanned images of the 7 volumes. This update differs from the book version in the following respects: 1. The sources (of procedures and examples) have been adapted to a newer version of the compiler (Algol 60 version 5) and runtime system then available on Control Data mainframes. 2. The file numalinx.txt only contains a new, trimmed introduction and the systematic index. The original introduction also describing the history of the NUMAL development, and the KWIC index are available in the printed version, volume 1. 3. Errors have been corrected. 4. First-column symbols of all lines are printer control characters. See the introduction of the Index (file numalinx.txt) for details. Availability ------------ The Stichting Centrum Wiskunde & Informatica (Stichting CWI) (legal successor of Stichting Mathematisch Centrum) at Amsterdam has granted permission to Paul McJones to attach the integral NUMAL library manual to his software preservation project web page. ( URL: http://www.softwarepreservation.org/projects/ALGOL/applications/ ) It may be freely used. It may be copied provided that the name NUMAL and the attribution to the Stichting CWI are retained. Address of the legal owner -------------------------- Full info at URL: http://www.cwi.nl/en/general/Address =========================

## Algol 68

### Libraries and numeric packages

- J. C. van Vliet. ALGOL 68 Transput model.
- J. C. van Vliet, ALGOL 68 Transput Part I: Historical review and discussion of the implementation model. Mathematisch Centrum Tracts, Volume 110, 1979, 59 pages. Online at cwi.nl
- J. C. van Vliet, ALGOL 68 Transput Part II : An implementation model. Mathematisch Centrum Tracts, Vol. 111, 1979, 218 pages. Online at cwi.nl
- J. C. van Vliet. MC ALGOL 68 Transput Model. Source code, version 1.0, Mathematisch Centrum, June 18, 1979. Online at cs.vu.nl

- J. G. Blom and J. G. Verwer. An ALGOL 68 implementation of Urabe's method for nonlinear periodic differential systems. NN 20, Mathematisch Centrum, 1979. Online at cwi.nl
"This report contains a computer implementation of the method of Urabe written in the programming language ALGOL 68. To illustrate the use of the program it is applied to the van der Pol equation and a Volterra-Lotka system."

- P. W. Hemker and D. T. Winter. A Preliminary Report on Numerical Operators in ALGOL 68. NW 66/79, Mathematisch Centrum, May 1979. Online at cwi.nl
"In this report a proposal for a set of numerical operators in ALGOL 68 is described. These operators enable ALGOL 68 users to program standard numerical computations in an easy but still flexible way (i.e. in a way resembling the usual mathematical notation).

The system of operators serves the same purpose as a numerical library in e.g. FORTRAN or ALGOL 60. Computations in numerical algebra, elementary numerical analysis (quadrature, root-finding) and initial value problems for ODEs are considered. In addition a flexible error message system is provided."

Includes source listings.

- F. J. Burger and J. C. P. Bus. An ALGOL-68 package for the solution of systems of nonlinear equations. BW 155/82, Mathematisch Centrum, 1982. Online at cwi.nl
Includes source listing.

- P. W. Hemker and P. M. de Zeeuw. A library of multigrid routines.
- Technical report with source listing. Centrum voor Wiskunde en Informatica, Numerieka Wiskunde, 1982. Online at cwi.nl
- Source code (machine readable). February 24, 1982. Posted by permission of Pieter Hemker. mgtext.txt

- P. W. Hemker. A library of Euler multigrid routines. Source code (machine readable). April 14, 1986. Posted by permission of Pieter Hemker. EulerMG.txt
- Numerical Algorithms Group (NAG) Library
- C. G. van der Laan. A Proposal For the CO6 Chapter of the NAG ALGOL 68 Library. TW 208/80, Mathematisch Centrum, 1980. Online at cwi.nl
"Operators in ALGOL 68 and their documentation are given for the problems connected with the Discrete Fourier Transform and the evaluation of trigonmetric sums."

- C. G. van der Laan. A Proposal For the CO6 Chapter of the NAG ALGOL 68 Library. TW 208/80, Mathematisch Centrum, 1980. Online at cwi.nl
- J. Kok. An ALGOL 68 routine for the approximation of partial derivatives on a two-dimensional grid. NW 84, Mathematisch Centrum, 1980. Online at cwi.nl
"This paper consists of the proposal for an addition to the NAG-ALGOL 68 library." Includes documentation and source listing.

- G. S. Hodgson. The NAG ALGOL 68 Library.
*ALGOL Bulletin*, Issue 48 (August 1982), pages 27-38. ACM Digital Library"The original versions of the Library are available In Algol 60 and in FORTRAN. In 1973 it was decided to proceed with an Algol 68 version, and this version has also been produced as a co-operative effort between a number of University and Research centres both in this country and in the Netherlands."

- R. de Bruin, C. G. Der Van Laan. The creation of a virtual NAG-algol 68 program library.
*Software: Practice and Experience*, Volume 15, Issue 10, pages 963–972, October 1985. Wiley Online Library"A method for the creation of a virtual Algol 68 program library on top of a subset of the NAG-FORTRAN library is discussed."

- TORRIX Library

- S. G. van der Meulen and M. Veldhorst. Datastructuren voor lineaire ruimten "Torrix". Technical report RUU-CS-77-01, Universiteit Utrecht, 1977. Catalog entry at cs.uu.nl
- S. G. van der Meulen and M. Veldhorst. TORRIX - A Programming System for Operations on Vectors and Matrices over Arbitrary Fields and of Variable Size, Volume I. Tract Number 86, Mathematisch Centrum, Amsterdam, 1978. Online at cwi.nl
- C. H. Lindsey, editor. Announcements: TORRIX.
*ALGOL Bulletin*, Number 42 (May 1978), page 4. ACM Digital Library - C. H. Lindsey, editor. Announcements: TORRIX.
*ALGOL Bulletin*, Number 44 (May 1979), page 4. ACM Digital Library"At its meeting in Jablonna, Poland, in August 1978, IFIP WG2.1 authorized the release of the following statement.

The library package TORRIX comprising definitions for handling vectors and matrices in ALGOL 68, as published in the Mathematical Centre Tracts series, has been scrutinized to ensure that:

a) It strictly conforms to the definition of ALGOL 68.

b) It is consistent with the philosophy and orthogonal framework of that language.

c) It addresses a significant application area in a comprehensive and appropriate manner.

In releasing this statement the intention is to encourage the incorporation of this library package in library preludes of ALGOL 68 implementations." - S.G. van der Meulen.
Abstract data types for numerical applications and some thoughts on precision. Presentation at IFIP WG 2.5 (Numerical Software) meeting, Harwell, 1980. Online at nsc.lie.se/~boein
"Van der Meulen explained how abstract data types in the Torrix system permit software to be written only once and yet applied in a wide variety of algebraic systems. He also commented on its implementation in Algol 68.

Discussion

Curtis: I wonder about the execution efficiency of your system. In general this demands that the actual operations are implemented directly in corresponding machine code when it is available.

Van der Meulen: Future hardware is likely to permit execution of micro-code without loss of efficiency.

Wichmann: On present computers you must use procedure calls or put the operations in line thereby losing the separate compilation facility.

Wichmann: How do you handle constants, e.g. 10.1?

Van der Meulen; Yes, there are difficulties here. One solution is to require all constants to be input as literals."

- M. Veldhorst. An Analysis of Sparse Matrix Storage Schemes. Tract Number 150, Mathematisch Centrum, Amsterdam, 1982, 237 pages. Online at cwi.nl
Analyzes two new storages schemes for TORRIX to handle sparse matrices: (i) "store the rows of the matrix separately such that all zero elements at both ends of each row will not be stored"; (ii) "the tree storage scheme: partition the matrix recursively into blocks and subblocks and do not store the blocks obtained by this partition which have no none-zero element at all."

### Test Sets

- IRISA - Université de Rennes
- B. Houssais. Production systématique de tests commandée par une grammaire. Application à la validation d'un compilateur Algol 68. Thèse, IRISA, Université de Rennes, 1976.
- Bernard Houssais. Verification of an Algol 68 implementation. In
*Proceedings of the Strathclyde ALGOL 68 Conference (Glasgow, Scotland, March 29 - 31, 1977)*. ACM, New York, NY, pages 117-128. ACM Digital Library"A tool for the systematic production of test cases for a compiler is first presented. The input of the generator are formal grammars, derived from the definition of the reference language. This tool has been applied to the generation of test programs for Algol 68. For each construction which the language possesses, the syntactic structure of the corresponding test and the semantic verifications it contains are given. The test set has begun to be employed on a specific implementation. Discovered errors related to Algol 68 constructions are analysed."

- Bernard Houssais. Source code. Online at cs.vu.nl

- MBLE
- Paul Branquart. Algol 68 Test Set. Source code. Online at cs.vu.nl

- Mathematisch Centrum
- D. Grune, editor. The MC ALGOL 68 Test Set. IWW 53/75, Mathematisch Centrum, Amsterdam, November 1975. Online at cwi.nl
- D. Grune. MC ALGOL 68 Test Set. Source code, version 3.1, Mathematisch Centrum, August 1, 1979. Online at cs.vu.nl
- D. Grune. The Revised MC ALGOL 68 Test Set. IWW 122/79, Mathematisch Centrum, Amsterdam, November 1979. Online at cwi.nl