REDUCE Information Package
REDUCE is an interactive program designed for general algebraic computations
of interest to mathematicians, scientists and engineers. Its capabilities
include:
- expansion and ordering of polynomials and rational functions;
- substitutions and pattern matching in a wide variety of forms;
- automatic and user controlled simplification of expressions;
- calculations with symbolic matrices;
- arbitrary precision integer and real arithmetic;
- facilities for defining new functions and extending program syntax;
- analytic differentiation and integration;
- factorization of polynomials;
- facilities for the solution of a variety of algebraic equations;
- facilities for the output of expressions in a variety of formats;
- facilities for generating optimized numerical programs from symbolic
input;
- calculations with a wide variety of special functions;
- Dirac matrix calculations of interest to high energy physicists.
It is often used as an algebraic calculator for problems that are possible to
do by hand. However, the main aim of REDUCE is to support calculations that are
not feasible by hand. Many such calculations take a significant time to set up
and can run for minutes, hours or even days on the most powerful computers. In
support of this goal, REDUCE has the following characteristics:
- Code stability. Various versions of REDUCE have been in use for over
twenty years. There has been a steady stream of improvements and refinements
since then, with the source being subject to wide review by the user
community. REDUCE has thus evolved into a powerful system whose critical
components are highly reliable, stable and efficient.
- Wide user base. A particular algebra system is often chosen for a given
calculation because of its widespread use in a particular application area,
with existing packages and templates being used to speed up problem solving.
As evidenced by approximately 1000 reports listed in the current bibliography,
REDUCE has a large and dedicated user community working in just about every
branch of computational science and engineering. A large number of special
purpose packages are available in support of this, with many contributed by
users.
- Full source code availability. From the beginning, it has been possible to
obtain the complete REDUCE source code, including the "kernel." Consequently,
REDUCE is a valuable educational resource and a good foundation for
experiments in the discipline of computer algebra. Many users do in fact
effectively modify the source code for their own purposes.
- Flexible updating. One advantage of making all code accessible to the user
is that it is relatively easy to incorporate patches to correct small problems
or extend the applicability of existing code to new problem areas. World Wide
Web servers allow users to get such updates and complete new packages as they
become available, without having to wait for a formal system release.
- State-of-the-art algorithms. Another advantage of an "open" system is that
there is a shared development effort involving both distributors and users. As
a result, it is easier to keep the code up-to-date, with the best current
algorithms being used soon after their development. At the present time, we
believe REDUCE has the best available code for solving nonlinear polynomial
equations using Groebner bases, real and complex root finding to any
precision, exterior calculus calculations and optimized numerical code
generation among others. Its simplification strategy, using a combination of
efficient polynomial manipulation and flexible pattern matching is focussed on
giving users as natural a result as possible without excessive programming.
- Algebraic focus. REDUCE aims at being part of a complete scientific
environment rather than being the complete environment itself. As a result,
users can take advantage of other state-of-the-art systems specializing in
numerical and graphical calculations, rather than depend on just one system to
provide everything. To this end, REDUCE provides facilities for writing
results in a form compatible with common programming numerical languages (such
as Fortran) or document processors such as TeX.
- Portability. Careful design for portability means REDUCE is often
available on new or uncommon machines soon after their release. This has led
to significant user communities throughout the world. At the present time,
REDUCE is readily available on essentially all workstations and high-end
microprocessor-based machines in the market.
- Uniformity. Even though REDUCE is supported with different Lisps on many
different platforms, much attention has been paid to making all versions
perform in the same manner regardless of implementation. As a result, users
can have confidence that their calculations will not behave differently if
they move them to a different machine.
- Flexible Offerings. To support the differing needs of the user community,
REDUCE is available in a number of different configurations:
- personal system, ready to run, available for a selection of common
personal computers, shipped without source and hence with less easy
updatability between major releases, but at lowest cost for a single user
site;
- professional system, which comes with source, and is licensed for use on
one CPU or fileserver and so can be especially attractive for laboratories
or work-groups;
- site licenses, which extend the professional system to cover all similar
machines at a single postal address.
- Cost. The cost of a complete REDUCE to the end-user is moderate, and does
not vary substantially from platform to platform. In addition, the personal
systems and site licenses are offered on very generous terms. Moreover, since
all systems are derived from the same source base, they are very compatible
from platform to platform (from a PC to a supercomputer). This makes it
possible to have compatible versions at home and work.
The most recent release of REDUCE (Version 3.8) is dated 15 April 2004. It is
available for most common computing systems, in some cases in more than one
version for the same machine, through the distributors listed in this memo.
REDUCE is based on a dialect of Lisp called "Standard Lisp", and the differences
between versions are the result of different implementations of this Lisp; in
each case the source code for REDUCE itself remains the same. The complete
source code for REDUCE is available. On-line versions of the manual and other
support documents and tutorials are also normally included with the
distribution.
In order to help users choose the best version of REDUCE for their purposes,
we describe the general characteristics of the available Lisps, followed by a
table of the particular versions supported on each machine, and finally the full
names and addresses of the REDUCE distributors.
The distributed versions of REDUCE are based on two easily available
Lisps, namely:
- Portable Standard Lisp (PSL). This is currently the Lisp used most widely
for running REDUCE. It evolved from the original Standard Lisp definition, but
now contains many more facilities. It is quite efficient in its use of both
space and time, and has been optimized for algebraic computation. All PSL
versions of REDUCE are distributed with sufficient PSL support to run on the
given computing system. PSL is supported on many architectures and is an ideal
system for those wanting to run REDUCE as a standalone system. The current
principal developer of PSL is the Konrad Zuse Center, Berlin (ZIB).
- Codemist Standard Lisp (CSL). This is a Lisp system written completely in
ANSI C, which makes it very easy to port to a new machine. Like PSL, it is a
faithful implementation of Standard Lisp and has been optimized for running
REDUCE. It requires a very small memory partition for its Lisp support.
Furthermore, most of the REDUCE facilities are supported as machine
independent pseudocode, which is quite compact. In the worst case, the
performance of this system is about a factor of two slower than PSL, though in
many cases it matches PSL performance. However, the memory use is smaller. All
CSL versions are distributed with sufficient CSL support to run on the given
computing system. This is an ideal system for those wishing to embed algebraic
calculations in a C-based programming environment. The developer of CSL is
Codemist Ltd.
Demonstration Versions
Demonstration versions of both the CSL and
PSL versions of REDUCE may be
downloaded from the relevant web sites referenced below. Interactive versions for testing
purposes are also available at those sites.
Obtaining Further Information about REDUCE
You can obtain a current copy of this information form at any time from the
REDUCE home page. In addition
to general information about REDUCE, this server has pointers to the network
library, the demonstration versions, examples of REDUCE programming, a set of
manuals, and the REDUCE online help system.
To register for the electronic mail forum, or for further information, please
contact: Anthony C. Hearn, RAND, 1700 Main Street P.O. Box 2138 Santa Monica CA
90407-2138 Telephone: +1-310-393-0411 Ext. 6615 Facsimile: +1-310-393-4818
Electronic Mail: reduce@reduce-algebra.com
.
Versions Available
The following table describes the versions of REDUCE supported by the various
distributors. Contact them for detailed price and availability information.
| System Description |
Distributors (Lisp Used) |
| Generic 32 or 64-bit Unix or Unix-compatible
systems built from source by customers on their own machines |
Codemist (CSL) |
| AMD 64-bit systems running Linux |
Codemist (CSL) |
| Apple computers using Darwin and Apple's X
server |
Codemist (CSL) |
| Cray T3D, T3E |
ZIB (PSL) |
| DEC Alpha PC running MS Windows NT or Linux |
ZIB (PSL) |
| DEC Alpha series running DEC Unix or Open VMS |
ZIB (PSL) |
| HP 9000/700 series |
ZIB (PSL) |
| IBM-compatible PCs with Intel 80386 or higher
processors running MS-DOS, Windows 3.x, Windows 9x, Windows NT, Windows 2000
or Windows XP |
ZIB (PSL) |
| IBM-compatible PCs with Intel 80386 or higher processors running UNIX
(Solaris X86, Free BSD or Linux) |
ZIB (PSL) |
| IBM RISC System/6000 |
ZIB (PSL) |
| Intel, AMD and other compatible 32-bit computers
running Linux |
Codemist (CSL) |
| Intel, AMD and other compatible 32-bit computers
running Windows 98 or higher |
Codemist (CSL) |
| Silicon Graphics Mips-based systems (32/64 bit) |
ZIB (PSL) |
| Silicon Graphics Irix |
Codemist (CSL) |
| Sun 4 systems and compatibles (32/64 bits) |
ZIB (PSL) |
-
- REDUCE Distributors
-
- Codemist
Codemist Ltd.
"Alta", Horsecombe Vale
Combe Down
Bath BA2 5QR, UNITED KINGDOM
E-Mail:
jpff@codemist.co.uk
Internet address: www.codemist.co.uk
- ZIB
Winfried Neun
Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB)
Takustr. 7
D-14195 Berlin-Dahlem, GERMANY
E-Mail:
neun@zib.de
Internet address: www.zib.de/Symbolik/reduce
Ordering information is available from the
Codemist and
ZIB web sites.