%
%                        REDUCE INFORMATION PACKAGE
%
% To produce a printable version of this document, store it as info.tex and
% say:
%    latex info
%
% If you prefer, you can obtain a hard copy by sending a request to:
%
%       Anthony C. Hearn
%       RAND
%       1700 Main Street
%       P.O. Box 2138
%       Santa Monica CA 90407-2138 U.S.A.
%       Telephone: +1-310-393-0411 Ext. 6615
%       Facsimile: +1-310-393-4818
%       Electronic Mail: reduce@rand.org
%
\documentstyle[11pt]{article}
\textwidth 6.3in
\topmargin -0.4in
\textheight 8.7in
\evensidemargin 0.25in
\oddsidemargin 0.25in
\newcommand{\REDUCE}{REDUCE}
\newlength{\infoboxwidth}
\setlength{\infoboxwidth}{5in}
\begin{document}
\parindent 0pt
\parskip 6pt
\itemsep 0pt
\parsep 0pt
\topsep 0pt
\raggedbottom
\begin{center}
\LARGE
{\bf REDUCE Information Package}
\end{center}
REDUCE is an interactive program designed for general algebraic computations
of interest to mathematicians, scientists and engineers.  Its capabilities
include:
\begin{itemize}
\item expansion and ordering of polynomials and rational functions;
\item substitutions and pattern matching in a wide variety of forms;
\item automatic and user controlled simplification of expressions;
\item calculations with symbolic matrices;
\item arbitrary precision integer and real arithmetic;
\item facilities for defining new functions and extending program syntax;
\item analytic differentiation and integration;
\item factorization of polynomials;
\item facilities for the solution of a variety of algebraic equations;
\item facilities for the output of expressions in a variety of formats;
\item facilities for generating optimized numerical programs from symbolic
input;
\item Dirac matrix calculations of interest to high energy physicists.
\end{itemize}
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:
\begin{enumerate}
\item 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.

\item Wide user base.  A particular algebra system is often chosen for a
given calculation because of widespread use of that system in a particular
application area, with existing packages and templates being used to speed
up problem solving.  As evidenced by more than 700 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.

\item 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.

\item 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.  An electronic mail service allows users to get such
updates and complete new packages as they become available, without
having to wait for a formal system release.

\item 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.

\item 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.

\item 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.

\item Cost.  The cost of the complete REDUCE system to the end-user is
moderate, and does not vary substantially from platform to platform.  In
addition, there is a very generous site license policy in effect.
Moreover, since all systems are derived from the same source base, they
are exceedingly compatible from platform to platform (from a PC to a Cray
supercomputer).  This makes it possible to have compatible versions of
REDUCE at home and work.
\end{enumerate}

The most recent release of {\REDUCE} (Version 3.4.1) is dated 15 July 1992.
It is available for most common computing systems, in some cases in several
versions for the same machine, through a variety of distributors listed in
this memo. {\REDUCE} is based on a dialect of Lisp called {\em 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
normally part of the distribution, although this may vary from distributor
to distributor.  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 shall describe the general characteristics of the available
Lisps.  Following this will be a table showing the particular versions
supported on each machine, and finally the full names and addresses of the
{\REDUCE} distributors.

Since Standard Lisp includes a limited number of functions, it is possible
to run REDUCE on most modern Lisps, since they contain these functions as
a subset.  However, the distributed versions of REDUCE are based on three
easily available Lisps, namely:
\begin{itemize}
\item 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).

\item Codemist Standard Lisp (CSL).  This is a new 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
optimised 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. A version with Japanese
language support is also available from Forbs Ltd.

\item Common Lisp.  This is a Lisp supported by many companies.  For the
purposes of running {\REDUCE}, Standard Lisp is supported in Common Lisp by
interface software which defines a Standard Lisp package.  Versions of
{\REDUCE} have run with this interface software in at least the following
Common Lisps:
\begin{tabbing}
\hspace*{0.5in} \= Allegro Common Lisp \hspace*{1.5in} \= IBUKI Common Lisp \\
\> Austin Kyoto Common Lisp (AKCL) \>   Kyoto Common Lisp (KCL) \\
\> Hitachi Common Lisp             \>   Lucid Common Lisp \\
\> Hokkaido Common Lisp            \>   Symbolics Common Lisp \\
\> HP Common Lisp
\end{tabbing}

Common Lisp implementations of {\REDUCE} tend to run slower (often by
as much as a factor of three) than PSL-based systems, and require more
memory to run.  They are recommended for those who wish to embed their
algebraic calculations in a Common Lisp environment, or for running on
machines for which no other Lisp is available.  Users of Common Lisp
versions of {\REDUCE} are normally required to obtain a suitable Common
Lisp in addition to {\REDUCE}, but this practice will vary from
distributor to distributor.
\end{itemize}
\newpage
\section*{Versions Available}

The following table describes the versions of {\REDUCE} currently
available.  The generic ANSI C and Common Lisp versions require some
experience with the embedding language for installation; the machine
specific versions have more straightforward installation procedures.
\\
\begin{center}
\begin{tabular}{|p{2.8in}|p{2.8in}|}
\hline
\multicolumn{1}{|c|}{{\bf System Description}} & \multicolumn{1}{c|}
{{\bf Distributors (Lisp Used)}} \\ \hline
Generic ANSI C version & Codemist (CSL) \\ \hline

Generic Common Lisp version & Cologne; IBUKI \\ \hline

Acorn Archimedes & Codemist (CSL) \\ \hline

Apple Macintosh & CALCODE (CSL); Codemist (CSL) \\ \hline

Atari 1040ST and Mega & CALCODE (CSL); Codemist (CSL) \\ \hline

CDC Cyber 180 NOS/VE & Cologne (PSL) \\ \hline

CDC Cyber 910 & ZIB (PSL) \\ \hline

CDC 4000 series & ZIB (PSL) \\ \hline

Convex C100, C200 and C300 series& ZIB (PSL) \\ \hline

Cray X-MP, Y-MP and 2 & ZIB (PSL) \\ \hline

Data General AViiON series & ZIB (PSL) \\ \hline

DEC DECStation series 2000, 3000 and 5000 & ZIB (PSL) \\ \hline

DEC VAX running VAX/VMS or Ultrix & ZIB (PSL) \\ \hline

Fujitsu M Mainframe Unix series & Forbs (CSL) \\ \hline

Fujitsu 2400 series running UXP/M & ZIB (PSL) \\ \hline

HP 9000/300 and 400 series & Forbs (CSL); ZIB (PSL) \\ \hline

HP 9000/700 and 800 series & Forbs (CSL); ZIB (PSL) \\ \hline

IBM-compatible PCs based on Intel 80286 with extended memory and above &
CALCODE (CSL); Codemist (CSL); Forbs (CSL) \\ \hline

IBM-compatible PCs based on Intel 80386 and 80486 running MS-DOS,
MS-Windows 3 or OS/2&CALCODE (PSL); ZIB (PSL) \\ \hline

IBM-compatible PCs based on Intel 80386 and 80486 running UNIX
& ZIB (PSL) \\ \hline

IBM RISC System/6000 & ZIB (PSL) \\ \hline

IBM System/370 architectures (e.g. 3090 series) running AIX, MVS or
VM & Cologne (PSL) \\ \hline

ICL mainframes running VME & Codemist (CSL) \\ \hline

ICL DRS6000 & Codemist (CSL) \\ \hline

MIPS and compatibles & ZIB (PSL) \\ \hline
\end{tabular}

\begin{tabular}{|p{2.8in}|p{2.8in}|}
\hline
\multicolumn{1}{|c|}{{\bf System Description}} & \multicolumn{1}{c|}
{{\bf Distributors (Lisp Used)}} \\ \hline
NEC EWS 4800 series & Forbs (CSL) \\ \hline

NEC PC-9800 series & Forbs (CSL) \\ \hline

NeXTstation & ZIB (PSL) \\ \hline

Siemens S400/40 series running UXP/M & ZIB (PSL) \\ \hline

Silicon Graphics IRIS & ZIB (PSL) \\ \hline

Sony NEWS & Forbs (CSL) \\ \hline

Stardent R2000 & ZIB (PSL) \\ \hline

Sun 3 & Forbs (CSL); ZIB (PSL) \\ \hline

Sun 4,~~SPARCStation 1 and 2 and compatibles & Forbs (CSL);
ZIB (PSL) \\ \hline
\end{tabular}
\end{center}
\section*{{\REDUCE} Distributors}
\begin{tabular}{l r}

CALCODE: & \parbox[t]{\infoboxwidth}{
CALCODE Systems                                      \\
1057 Amoroso Place                                   \\
Venice CA 90291, U.S.A.                              \\
Telephone: +1-310-399-7612                           \\
Facsimile: +1-310-399-7612 then \#3 after beep       \\
Electronic Mail: calcode\%calcode.uucp@rand.org}   \\ \\

Codemist: & \parbox[t]{\infoboxwidth}{

Codemist Limited                                     \\
``Alta", Horsecombe Vale                             \\
Combe Down                                           \\
Bath BA2 5QR, UNITED KINGDOM                         \\
Telephone: +44-225-837430                            \\
Facsimile: +44-225-837430}                        \\ \\

Cologne: & \parbox[t]{\infoboxwidth}{

Andreas Strotmann                    \\
Rechenzentrum                        \\
Universitaet zu Koeln                \\
Robert-Koch-Strasse 10               \\
D-5000 Koeln 41, GERMANY             \\
Telephone: +49-221-478-5524          \\
Electronic Mail: reduce@rrz.uni-koeln.de}   \\ \\

Forbs: & \parbox[t]{\infoboxwidth}{

Forbs System Co. Ltd         \\
Kannai JS Building           \\
207 Yamasitachou             \\
Naka-ku                      \\
Yokohama 231, JAPAN          \\
Telephone: +81-45-212-5020   \\
Facsimile: +81-45-212-5023}  \\ \\
\end{tabular}
\newpage
\begin{tabular}{l r}
IBUKI: & \parbox[t]{\infoboxwidth}{

IBUKI                       \\
399 Main Street             \\
P.O. Box 1627               \\
Los Altos CA 94022, USA     \\
Telephone: +1-415-961-4996  \\
Facsimile: +1-415-961-8016  \\
Electronic Mail: reduce@ibuki.com}  \\ \\

ZIB: & \parbox[t]{\infoboxwidth}{

Herbert Melenk                                               \\
Konrad-Zuse-Zentrum fuer Informationstechnik Berlin (ZIB)    \\
Heilbronner Str. 10                                          \\
D 1000 Berlin 31, GERMANY                                    \\
(D10711 Berlin, GERMANY after 1 Jul 93)                      \\
Telephone: +49-30-89604-195                                  \\
Facsimile: +49-30-89604-125                                  \\
Electronic Mail: melenk@sc.zib-berlin.de}
\end{tabular}   \\[0.15in]
ZIB workstation versions are also available from CALCODE.
\section*{Obtaining Further Information about {\REDUCE}}
A mailing list is maintained for persons interested in receiving periodic
information about {\REDUCE}.  An electronic mail forum is also available to
{\REDUCE} users, together with a network library from which material can be
extracted by electronic mail.  This library includes demonstration files for
{\REDUCE} as well as a current copy of this information package.  To obtain
more information about the network library, send the message ``help" to the
Internet electronic mail address reduce-netlib@rand.org.  Further
introductory information on the capabilities of {\REDUCE} can be obtained by
including ``send intro.tex" on a separate line.  To register for the
electronic mail forum, or for further information, please contact:
\begin{quote}
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@rand.org
\end{quote}
\begin{flushright} \today \end{flushright}
\end{document}
