1 Introduction
The PLT Scheme Science Collection is a collection of modules that provide functions for numerical computing. The structure of the science collection and many of the underlying algorithms were inspired by the GNU Scientific Library (GSL). The functions are written entirely in PLT Scheme and present a true Scheme look-and-feel throughout. The source code is distributed with the science collection and licensed under the GNU Lesser General Public License, Version 2.1 [LGPL].
The motivation behind the PLT Scheme Science Collection is to provide a numerical framework for knowledge-based simulation in PLT Scheme [Williams90] [Williams96]. Indeed, many of the routines were originally developed as part of the PLT Scheme Simulation Collection. It was noted that much of the functionality (e.g., random number generation, random distributions, histograms, and statistics) did not depend on, or could be separated from, the underlying simulation engine. When this was done, it was further noted that this functionality represented a subset of the functionality available in the GSL. At that point, it was decided to use the structure and, to the extent practical, the algorithms of the GSL as a reference model. Thus, the PLT Scheme Science Collection was born.
This reference manual was inspired by the GNU Scientific Library Reference Manual - Revised Second Edition (v1.8) [GSL]. Because of the differences between C and PLT Scheme, and the fundamental differences between the underlying numeric models of each, the presentation of the functions is different here than in the GSL Reference Manual. We also rely more on the graphical representation of results using the plot collection (PLoT) distributed with PLT Scheme.
We are indebted to Dr. M. Galassi and Dr. J. Theiler of Los Alamos National Laboratory and the others who have contributed to the development of the GNU Scientific Library (GSL). Any weaknesses in the PLT Scheme Science Collection are our own and must not be construed as having origins in the GSL.
1.1 Routines Available in the Science Collection
This is only a fraction of the areas supported by the GSL. For a complete reference of the numerical computing areas supported by the GSL, please refer to the GNU Scientific Library Reference Manual - Revised Second Edition (v1.8) [GSL].
The PLT Scheme Science Collection covers a range of topics in numerical computing. Functions are available for the following areas:
Mathematical Constants and Functions
Special Functions
Random Numbers
Random Distributions
Statistics
Histograms
Ordinary Differential Equations
Chebyshev Approximations
The use of these functions is described in this manual. Each chapter provides detailed definitions of the functions, with example code.
1.2 The Science Collection is Free Software
The PLT Scheme Science Collection is free software – this means that anyone is free to use it and redistribute it in other free programs. The science collection is not in the public domain – it is copyrighted and there are conditions on its distribution. Specifically, the PLT Scheme Science Collection is distributed under the GNU Lesser General Public License, Version 2.1. A copy of the LGPL is provided with the software.
1.3 Obtaining the Science Collection
The preferred method for obtaining the PLT Scheme Science Collection is via PLaneT, PLT Scheme’s centeralized package distribution system. The PLaneT identifier for the PLT Scheme Science Collection is (planet williams/science/science) or, if using any of the graphical features, (planet williams/science/science-with-graphics) – either will download the entire science collection. See Chapter 2 for an example.
The source code is maintained on the Schematics project website and Subversion repository at SourceForge.
Note that Version 3.0 and higher of the PLT Scheme Science Collection requires PLT Scheme Version 4.0 or higher.
1.4 No Warranty
The PLT Scheme Science Collection is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It is your responsibility to validate the behavior of the software and their accuracy using the source code provided. See the GNU Lesser General Public License, Version 2.1 [LGPL] for more details.