\chapter{User Contributed Packages} \index{User packages}
\label{chap-user}
The complete {\REDUCE} system includes a number of packages contributed by
users that are provided as a service to the user community.  Questions
regarding these packages should be directed to their individual authors.

All such packages have been precompiled as part of the installation process.
However, many must be specifically loaded before they can be used. (Those
that are loaded automatically are so noted in their description.) You should
also consult the user notes for your particular implementation for further
information on whether this is necessary.  If it is, the relevant command is
{\tt LOAD\_PACKAGE},\ttindex{LOAD\_PACKAGE} which takes a list of one or
more package names as argument, for example:

\begin{verbatim}
        load_package algint;
\end{verbatim}
although this syntax may vary from implementation to implementation.

Nearly all these packages come with separate documentation and test files
(except those noted here that have no additional documentation), which is
included, along with the source of the package, in the {\REDUCE} system
distribution.  These items should be studied for any additional details on
the use of a particular package.

Part 2 of this manual contains short documentation for the packages
\begin{itemize}
%%
%%The packages available in the current release of {\REDUCE} are as follows:
%%
\item
{ALGINT: Integration of square roots} (chapter~\ref{ALGINT});\ttindex{ALGINT}

%%
%%This package, which is an extension of the basic integration package
%%distributed with {\REDUCE}, will analytically integrate a wide range of
%%expressions involving square roots where the answer exists in that class
%%of functions. It is an implementation of the work described in J.H.
%%Davenport, ``On the Integration of Algebraic Functions", LNCS 102,
%%Springer Verlag, 1981.  Both this and the source code should be consulted
%%for a more detailed description of this work.
%%
%%Once the {\tt ALGINT} package has been loaded, using {\tt LOAD\_PACKAGE},
%%one enters an expression for integration, as with the regular integrator,
%%for example:
%%\begin{verbatim}
%%        int(sqrt(x+sqrt(x**2+1))/x,x);
%%\end{verbatim}
%%If one later wishes to integrate expressions without using the facilities of
%%this package, the switch {\tt ALGINT}\ttindex{ALGINT} should be turned
%%off.  This is turned on automatically when the package is loaded.
%%
%%The switches supported by the standard integrator (e.g., {\tt TRINT})
%%\ttindex{TRINT} are also supported by this package.  In addition, the
%%switch {\tt TRA},\ttindex{TRA} if on, will give further tracing
%%information about the specific functioning of the algebraic integrator.
%%
%%There is no additional documentation for this package.
%%
%%Author: James H. Davenport.
%%
\item
{APPLYSYM: Infinitesimal symmetries of differential equations}
(chapter~\ref{APPLYSYM});\ttindex{APPLYSYM}

%%\ttindex{APPLYSYM}
%%
%%This package provides programs APPLYSYM, QUASILINPDE and DETRAFO for
%%computing with infinitesimal symmetries of differential equations.
%%
%%Author: Thomas Wolf.
%%
\item
{ARNUM: An algebraic number package} (chapter~\ref{ARNUM});\ttindex{ARNUM}

%%
%%This package provides facilities for handling algebraic numbers as
%%polynomial coefficients in {\REDUCE} calculations. It includes facilities for
%%introducing indeterminates to represent algebraic numbers, for calculating
%%splitting fields, and for factoring and finding greatest common divisors
%%in such domains.
%%
%%Author: Eberhard Schr\"ufer.
%%
\item
{ASSIST: Useful utilities for various applications}
(chapter~\ref{ASSIST});\ttindex{ASSIST}

%%
%%ASSIST contains a large number of additional general purpose functions
%%that allow a user to better adapt \REDUCE\ to various calculational
%%strategies and to make the programming task more straightforward and more
%%efficient.
%%
%%Author: Hubert Caprasse.
%%
\item
{AVECTOR: A vector algebra and calculus package}
(chapter~\ref{AVECTOR});\ttindex{AVECTOR} 

%%
%%This package provides REDUCE with the ability to perform vector algebra
%%using the same notation as scalar algebra.  The basic algebraic operations
%%are supported, as are differentiation and integration of vectors with
%%respect to scalar variables, cross product and dot product, component
%%manipulation and application of scalar functions (e.g. cosine) to a vector
%%to yield a vector result.
%%
%%Author: David Harper.
%%
\item
{BOOLEAN: A package for boolean algebra} (chapter~\ref{BOOLEAN});
\ttindex{BOOLEAN} 

%%
%%This package supports the computation with boolean expressions in the
%%propositional calculus.  The data objects are composed from algebraic
%%expressions connected by the infix boolean operators {\bf and}, {\bf or},
%%{\bf implies}, {\bf equiv}, and the unary prefix operator {\bf not}.
%%{\bf Boolean} allows you to simplify expressions built from these
%%operators, and to test properties like equivalence, subset property etc.
%%
%%Author: Herbert Melenk.
%%
\item
{CALI: A package for computational commutative algebra}
(chapter~\ref{CALI});\ttindex{CALI}

%%\ttindex{CALI}
%%
%%This package contains algorithms for computations in commutative algebra
%%closely related to the Gr\"obner algorithm for ideals and modules.  Its
%%heart is a new implementation of the Gr\"obner algorithm that also allows
%%for the computation of syzygies.  This implementation is also applicable to
%%submodules of free modules with generators represented as rows of a matrix.
%%
%%Author: Hans-Gert Gr\"abe.
%%
\item
{CAMAL: Calculations in celestial mechanics} (chapter~\ref{CAMAL});
\ttindex{CAMAL}

%%
%%This packages implements in REDUCE the Fourier transform procedures of the
%%CAMAL package for celestial mechanics.
%%
%%Author: John P. Fitch.
%%
\item
{CHANGEVR: Change of Independent Variable(s) in DEs}
(chapter~\ref{CHANGEVR});\ttindex{CHANGEVR} 

%%
%%This package provides facilities for changing the independent variables in
%%a differential equation. It is basically the application of the chain rule.
%%
%%Author: G. \"{U}\c{c}oluk.
%%
\item
{COMPACT: Package for compacting expressions} (chapter~\ref{COMPACT});
\ttindex{COMPACT} 

%%
%%COMPACT is a package of functions for the reduction of a polynomial in the
%%presence of side relations.  COMPACT applies the side relations to the
%%polynomial so that an equivalent expression results with as few terms as
%%possible.  For example, the evaluation of
%%\begin{verbatim}
%%     compact(s*(1-sin x^2)+c*(1-cos x^2)+sin x^2+cos x^2,
%%             {cos x^2+sin x^2=1});
%%\end{verbatim}
%%yields the result\pagebreak[1]
%%\begin{samepage}
%%\begin{verbatim}
%%              2           2
%%        SIN(X) *C + COS(X) *S + 1 .
%%\end{verbatim}
%%
%%Author:  Anthony C. Hearn.
%%\end{samepage}
%%
\item
{CONTFR: Approximation of a number by continued fractions}
(chapter~\ref{CONTFR});\ttindex{CONTFR} 

%%
%%This package provides for the simultaneous approximation of a real number
%%by a continued fraction and a rational number with optional user
%%controlled precision (upper bound for numerator).
%%
%%To use this package, the {\bf misc} package should be loaded.  One can then
%%use the operator\ttindex{continued\_fraction} to calculate the required
%%sequence.  For example:
%%\begin{verbatim}
%%
%%        continued_fraction pi;   ->
%%
%%                  1146408
%%                {---------,{3,7,15,1,292,1,1,1,2,1}}
%%                  364913
%%\end{verbatim}
%%
%%There is no further documentation for this package.
%%
%%Author: Herbert Melenk.
%%
\item
{CRACK: Solving overdetermined systems of PDEs or ODEs}
(chapter~\ref{CRACK});\ttindex{CRACK} 

%%
%%CRACK is a package for solving overdetermined systems of partial or
%%ordinary differential equations (PDEs, ODEs).  Examples of programs which
%%make use of CRACK for investigating ODEs (finding symmetries, first
%%integrals, an equivalent Lagrangian or a ``differential factorization'') are
%%included.
%%
%%Authors: Andreas Brand, Thomas Wolf.
%%
\item
{CVIT: Fast calculation of Dirac gamma matrix traces}
(chapter~\ref{CVIT});\ttindex{CVIT} 

%%
%%This package provides an alternative method for computing traces of Dirac
%%gamma matrices, based on an algorithm by Cvitanovich that treats gamma
%%matrices as 3-j symbols.
%%
%%Authors: V.Ilyin, A.Kryukov, A.Rodionov, A.Taranov.
%%
\item
{DEFINT: A definite integration interface for REDUCE}
(chapter~\ref{DEFINT});\ttindex{DEFINT} 

%%
%%This package finds the definite integral of an expression in a stated
%%interval.  It uses several techniques, including an innovative approach
%%based on the Meijer G-function, and contour integration.
%%
%%Authors: Kerry Gaskell, Stanley M. Kameny, Winfried Neun.
%%
\item
{DESIR: Differential linear homogeneous equation solutions in the
neighborhood of irregular and regular singular points}
(chapter~\ref{DESIR});\ttindex{DESIR}

%%
%%This package enables the basis of formal solutions to be computed for an
%%ordinary homogeneous differential equation with polynomial coefficients
%%over Q of any order, in the neighborhood of zero (regular or irregular
%%singular point, or ordinary point).
%%
%%Documentation for this package is in plain text.
%%
%%Authors: C. Dicrescenzo, F. Richard-Jung, E. Tournier.
%%
\item
{DFPART: Derivatives of generic functions}
(chapter~\ref{DFPART});\ttindex{DFPART} 

%%
%%This package supports computations with total and partial derivatives of
%%formal function objects.  Such computations can be useful in the context
%%of differential equations or power series expansions.
%%
%%Author: Herbert Melenk.
%%
\item
{DUMMY: Canonical form of expressions with dummy variables}
(chapter~\ref{DUMMY});\ttindex{DUMMY} 

%%
%%This package allows a user to find the canonical form of expressions
%%involving dummy variables. In that way, the simplification of
%%polynomial expressions can be fully done. The indeterminates are general
%%operator objects endowed with as few properties as possible. In that way
%%the package may be used in a large spectrum of applications.
%%
%%Author: Alain Dresse.
%%
\item
{EXCALC: A differential geometry package} (chapter~\ref{EXCALC});
\ttindex{EXCALC} 

%%
%%EXCALC is designed for easy use by all who are familiar with the calculus
%%of Modern Differential Geometry. The program is currently able to handle
%%scalar-valued exterior forms, vectors and operations between them, as well
%%as non-scalar valued forms (indexed forms). It is thus an ideal tool for
%%studying differential equations, doing calculations in general relativity
%%and field theories, or doing simple things such as calculating the
%%Laplacian of a tensor field for an arbitrary given frame.
%%
%%Author: Eberhard Schr\"ufer.
%%
\item
{FPS: Automatic calculation of formal power series}
(chapter~\ref{FPS});\ttindex{FPS} 

%%
%%This package can expand a specific class of functions into their
%%corresponding Laurent-Puiseux series.
%%
%%Authors: Wolfram Koepf and Winfried Neun.
%%
\item
{FIDE: Finite difference method for partial differential equations}
(chapter~\ref{FIDE});\ttindex{FIDE} 

%%
%%This package performs  automation of  the process of numerically
%%solving  partial  differential  equations  systems  (PDES)  by  means of
%%computer algebra.  For PDES solving, the finite difference method is applied.
%%The  computer  algebra  system  REDUCE  and  the  numerical  programming
%%language FORTRAN  are used in the presented methodology. The main aim of
%%this methodology is to speed up the process of preparing numerical
%%programs for  solving PDES.  This process is quite often, especially for
%%complicated systems, a tedious and time consuming task.
%%
%%Documentation for this package is in plain text.
%%
%%Author: Richard Liska.
%%
\item
{GENTRAN: A code generation package} (chapter~\ref{GENTRAN});
\ttindex{GENTRAN} 

%%
%%GENTRAN is an automatic code GENerator and TRANslator. It constructs
%%complete numerical programs based on sets of algorithmic specifications
%%and symbolic expressions. Formatted FORTRAN, RATFOR, PASCAL or C code can be
%%generated through a series of interactive commands or under the control of
%%a template processing routine. Large expressions can be automatically
%%segmented into subexpressions of manageable size, and a special
%%file-handling mechanism maintains stacks of open I/O channels to allow
%%output to be sent to any number of files simultaneously and to facilitate
%%recursive invocation of the whole code generation process.
%%
%%Author: Barbara L. Gates.
%%
\item
{GNUPLOT: Display of functions and surfaces}
(chapter~\ref{GNUPLOT});\ttindex{PLOT}\ttindex{GNUPLOT} 

%%
%%This package is an interface to the popular GNUPLOT package.
%%It allows you to display functions in 2D and surfaces in 3D
%%on a variety of output devices including X terminals, PC monitors, and
%%postscript and Latex printer files.
%%
%%NOTE: The GNUPLOT package may not be included in all versions of REDUCE.
%%
%%Author: Herbert Melenk.
%%
\item
{GROEBNER: A Gr\"obner basis package} (chapter~\ref{GROEBNER});
\ttindex{GROEBNER} 

%%
%%GROEBNER\ttindex{GROEBNER} is a package for the computation of Gr\"obner
%%Bases using the Buchberger algorithm and related methods
%%for polynomial ideals and modules.  It can be used over a variety of
%%different coefficient domains, and for different variable and term
%%orderings.
%%
%%Gr\"obner Bases can be used for various purposes in commutative
%%algebra, e.g. for elimination of variables,\index{Variable elimination}
%%converting surd expressions to implicit polynomial form,
%%computation of dimensions, solution of polynomial equation systems
%%\index{Polynomial equations} etc.
%%The package is also used internally by the {\tt SOLVE}\ttindex{SOLVE}
%%operator.
%%
%%Authors: Herbert Melenk, H.M. M\"oller and Winfried Neun.
%%
\item
{IDEALS: Arithmetic for polynomial ideals} (chapter~\ref{IDEALS});
\ttindex{IDEALS} 

%%
%%This package implements the basic arithmetic for polynomial ideals by
%%exploiting the Gr\"obner bases package of REDUCE.  In order to save
%%computing time all intermediate Gr\"obner bases are stored internally such
%%that time consuming repetitions are inhibited.
%%
%%Author: Herbert Melenk.
%%
\item
{INEQ: Support for solving inequalities} (chapter~\ref{INEQ});\ttindex{INEQ}

%%
%%This package supports the operator {\bf ineq\_solve} that
%%tries to solves single inequalities and sets of coupled inequalities.
%%
%%Author: Herbert Melenk.
%%
\item
{INVBASE: A package for computing involutive bases}
(chapter~\ref{INVBASE});\ttindex{INVBASE} 

%%
%%Involutive bases are a new tool for solving problems in connection with
%%multivariate polynomials, such as solving systems of polynomial equations
%%and analyzing polynomial ideals.  An involutive basis of polynomial ideal
%%is nothing but a special form of a redundant Gr\"obner basis.  The
%%construction of involutive bases reduces the problem of solving polynomial
%%systems to simple linear algebra.
%%
%%Authors: A.Yu. Zharkov and Yu.A. Blinkov.
%%
\item
{LAPLACE: Laplace and inverse Laplace transforms}
(chapter~\ref{LAPLACE});\ttindex{LAPLACE} 

%%
%%This package can calculate ordinary and inverse Laplace transforms of
%%expressions.  Documentation is in plain text.
%%
%%Authors: C. Kazasov, M. Spiridonova, V. Tomov.
%%
\item
{LIE: Functions for the classification of real n-dimensional Lie
algebras} (chapter~\ref{LIE});\ttindex{LIE}

%%algebras}
%%\ttindex{LIE}
%%
%%{\bf LIE} is a package of functions for the classification of real
%%n-dimensional Lie algebras.  It consists of two modules: {\bf liendmc1}
%%and {\bf lie1234}.  With the help of the functions in the {\bf liendmcl}
%%module, real n-dimensional Lie algebras $L$ with a derived algebra
%%$L^{(1)}$ of dimension 1 can be classified.
%%
%%Authors: Carsten and Franziska Sch\"obel.
%%
\item
{LIMITS: A package for finding limits} (chapter~\ref{LIMITS});\ttindex{LIMITS}

%%
%%LIMITS is a fast limit package for REDUCE for functions which are
%%continuous except for computable poles and singularities, based on some
%%earlier work by Ian Cohen and John P. Fitch.  The Truncated Power Series
%%package is used for non-critical points, at which the value of the
%%function is the constant term in the expansion around that point.
%%L'H\^opital's rule is used in critical cases, with preprocessing of
%%$\infty - \infty$ forms and reformatting of product forms in order to
%%be able to apply l'H\^opital's rule.  A limited amount of bounded arithmetic
%%is also employed where applicable.
%%
%%This package defines a {\tt LIMIT} operator, called with the syntax:
%%\begin{verbatim}
%%        LIMIT(EXPRN:algebraic,VAR:kernel,LIMPOINT:algebraic):
%%              algebraic.
%%\end{verbatim}
%%For example:
%%\begin{verbatim}
%%        limit(x*sin(1/x),x,infinity)   -> 1
%%        limit(sin x/x^2,x,0)           -> INFINITY
%%\end{verbatim}
%%Direction-dependent limit operators {\tt LIMIT!+} and {\tt LIMIT!-} are
%%also defined.
%%
%%This package loads automatically.
%%
%%Author: Stanley L. Kameny.
%%
\item
{LINALG: Linear algebra package} (chapter~\ref{LINALG});\ttindex{LINALG}

%%
%%This package provides a selection of functions that are useful
%%in the world of linear algebra.
%%
%%Author: Matt Rebbeck.
%%
\item
{MODSR: Modular solve and roots} (chapter~\ref{MODSR});\ttindex{MODSR}

%%
%%This package supports solve (M\_SOLVE) and roots (M\_ROOTS) operators for
%%modular polynomials and modular polynomial systems.  The moduli need not
%%be primes. M\_SOLVE requires a modulus to be set.  M\_ROOTS takes the
%%modulus as a second argument. For example:
%%
%%\begin{verbatim}
%%on modular; setmod 8;
%%m_solve(2x=4);            ->  {{X=2},{X=6}}
%%m_solve({x^2-y^3=3});
%%    ->  {{X=0,Y=5}, {X=2,Y=1}, {X=4,Y=5}, {X=6,Y=1}}
%%m_solve({x=2,x^2-y^3=3}); ->  {{X=2,Y=1}}
%%off modular;
%%m_roots(x^2-1,8);         ->  {1,3,5,7}
%%m_roots(x^3-x,7);         ->  {0,1,6}
%%\end{verbatim}
%%
%%There is no further documentation for this package.
%%
%%Author: Herbert Melenk.
%%
\item
{NCPOLY: Non--commutative polynomial ideals}
(chapter~\ref{NCPOLY});\ttindex{NCPOLY} 

%%\ttindex{NCPOLY}
%%
%%This package allows the user to set up automatically a consistent
%%environment for computing in an algebra where the non--commutativity is
%%defined by Lie-bracket commutators.  The package uses the {REDUCE} {\bf
%%noncom} mechanism for elementary polynomial arithmetic; the commutator
%%rules are automatically computed from the Lie brackets.
%%
%%Authors: Herbert Melenk and Joachim Apel.
%%
\item
{NORMFORM: Computation of matrix normal forms}
(chapter~\ref{NORMFORM});\ttindex{NORMFORM} 

%%
%%This package contains routines for computing the following
%%normal forms of matrices:
%%\begin{itemize}
%%\item smithex\_int
%%\item smithex
%%\item frobenius
%%\item ratjordan
%%\item jordansymbolic
%%\item jordan.
%%\end{itemize}
%%
%%Author: Matt Rebbeck.
%%
\item
{NUMERIC: Solving numerical problems} (chapter~\ref{NUMERIC});\ttindex{NUMERIC}

%%\ttindex{NUM\_SOLVE}\index{Newton's method}\ttindex{NUM\_ODESOLVE}
%%\ttindex{BOUNDS}\index{Chebyshev fit}
%%\ttindex{NUM\_MIN}\index{Minimum}\ttindex{NUM\_INT}\index{Quadrature}
%%This package implements basic algorithms of numerical analysis.
%%These include:
%%\begin{itemize}
%%\item solution of algebraic equations by Newton's method
%%\begin{verbatim}
%%    num_solve({sin x=cos y, x + y = 1},{x=1,y=2})
%%\end{verbatim}
%%\item solution of ordinary differential equations
%%\begin{verbatim}
%%    num_odesolve(df(y,x)=y,y=1,x=(0 .. 1), iterations=5)
%%\end{verbatim}
%%\item bounds of a function over an interval
%%\begin{verbatim}
%%    bounds(sin x+x,x=(1 .. 2));
%%\end{verbatim}
%%\item minimizing a function (Fletcher Reeves steepest descent)
%%\begin{verbatim}
%%    num_min(sin(x)+x/5, x);
%%\end{verbatim}
%%\item Chebyshev curve fitting
%%\begin{verbatim}
%%    chebyshev_fit(sin x/x,x=(1 .. 3),5);
%%\end{verbatim}
%%\item numerical quadrature
%%\begin{verbatim}
%%    num_int(sin x,x=(0 .. pi));
%%\end{verbatim}
%%\end{itemize}
%%
%%Author: Herbert Melenk.
%%
\item
{ODESOLVE: Ordinary differential equations solver}
(chapter~\ref{ODESOLVE});\ttindex{ODESOLVE} 

%%
%%The ODESOLVE package is a solver for ordinary differential equations.  At
%%the present time it has very limited capabilities.  It can handle only a
%%single scalar equation presented as an algebraic expression or equation,
%%and it can solve only first-order equations of simple types, linear
%%equations with constant coefficients and Euler equations.  These solvable
%%types are exactly those for which Lie symmetry techniques give no useful
%%information.  For example, the evaluation of
%%\begin{verbatim}
%%        depend(y,x);
%%        odesolve(df(y,x)=x**2+e**x,y,x);
%%\end{verbatim}
%%yields the result
%%\begin{verbatim}
%%               X                    3
%%            3*E  + 3*ARBCONST(1) + X
%%        {Y=---------------------------}
%%                        3
%%\end{verbatim}
%%
%%Main Author: Malcolm A.H. MacCallum.
%%
%%Other contributors: Francis Wright, Alan Barnes.
%%
\item
{ORTHOVEC: Manipulation of scalars and vectors}
(chapter~\ref{ORTHOVEC});\ttindex{ORTHOVEC} 

%%
%%ORTHOVEC is a collection of REDUCE procedures and operations which
%%provide a simple-to-use environment for the manipulation of scalars and
%%vectors.  Operations include addition, subtraction, dot and cross
%%products, division, modulus, div, grad, curl, laplacian, differentiation,
%%integration, and Taylor expansion.
%%
%%Author: James W. Eastwood.
%%
\item
{PHYSOP: Operator calculus in quantum theory}
(chapter~\ref{PHYSOP});\ttindex{PHYSOP} 

%%
%%This package has been designed to meet the requirements of theoretical
%%physicists looking for a computer algebra tool to perform complicated
%%calculations in quantum theory with expressions containing operators.
%%These operations consist mainly of the calculation of commutators between
%%operator expressions and in the evaluations of operator matrix elements in
%%some abstract space.
%%
%%Author: Mathias Warns.
%%
\item
{PM: A REDUCE pattern matcher} (chapter~\ref{PM});\ttindex{PM}

%%
%%PM is a general pattern matcher similar in style to those found in systems
%%such as SMP and Mathematica, and is based on the pattern matcher described
%%in Kevin McIsaac, ``Pattern Matching Algebraic Identities'', SIGSAM Bulletin,
%%19 (1985), 4-13.
%%
%%Documentation for this package is in plain text.
%%
%%Author: Kevin McIsaac.
%%
\item
{RANDPOLY: A random polynomial generator} (chapter~\ref{RANDPOLY});
\ttindex{RANDPOLY} 

%%
%%This package is based on a port of the Maple random polynomial
%%generator together with some support facilities for the generation
%%of random numbers and anonymous procedures.
%%
%%Author: Francis J. Wright.
%%
\item
{REACTEQN: Support for chemical reaction equation systems}
(chapter~\ref{REACTEQN});\ttindex{REACTEQN} 

%%
%%This package allows a user to transform chemical reaction systems into
%%ordinary differential equation systems (ODE) corresponding to the laws of
%%pure mass action.
%%
%%Documentation for this package is in plain text.
%%
%%Author: Herbert Melenk.
%%
\item
{RESET: Code to reset REDUCE to its initial state}
(chapter~\ref{RESET});\ttindex{RESET} 

%%
%%This package defines a command command RESETREDUCE that works through the
%%history of previous commands, and clears any values which have been
%%assigned, plus any rules, arrays and the like.  It also sets the various
%%switches to their initial values.  It is not complete, but does work for
%%most things that cause a gradual loss of space.  It would be relatively
%%easy to make it interactive, so allowing for selective resetting.
%%
%%There is no further documentation on this package.
%%
%%Author: John Fitch.
%%
\item
{RESIDUE: A residue package} (chapter~\ref{RESIDUE});\ttindex{RESIDUE}

%%
%%This package supports the calculation of residues of arbitrary
%%expressions.
%%
%%Author: Wolfram Koepf.
%%
\item
{RLFI: REDUCE LaTeX formula interface} (chapter~\ref{RLFI});\ttindex{RLFI}

%%
%%This package adds \LaTeX syntax to REDUCE.  Text generated by REDUCE in
%%this mode can be directly used in \LaTeX source documents.  Various
%%mathematical constructions are supported by the interface including
%%subscripts, superscripts, font changing, Greek letters, divide-bars,
%%integral and sum signs, derivatives, and so on.
%%
%%Author: Richard Liska.
%%
\item
{RSOLVE: Rational/integer polynomial solvers} (chapter~\ref{RSOLVE});\ttindex{RSOLVE}

%%
%%This package provides operators that compute the exact rational zeros
%%of a single univariate polynomial using fast modular methods.  The
%%algorithm used is that described by R. Loos (1983): Computing rational
%%zeros of integral polynomials by $p$-adic expansion, {\it SIAM J.
%%Computing}, {\bf 12}, 286--293.
%%
%%Author: Francis J. Wright.
%%
\item
{ROOTS: A REDUCE root finding package} (chapter~\ref{ROOTS});\ttindex{ROOTS}

%%
%%This root finding package can be used to find some or all of the roots of a
%%univariate polynomial with real or complex coefficients, to the accuracy
%%specified by the user.
%%
%%It is designed so that it can be used as an independent package, or it may
%%be called from {\tt SOLVE} if {\tt ROUNDED} is on. For example,
%%the evaluation of
%%\begin{verbatim}
%%        on rounded,complex;
%%        solve(x**3+x+5,x);
%%\end{verbatim}
%%yields the result
%%\begin{verbatim}
%%    {X= - 1.51598,X=0.75799 + 1.65035*I,X=0.75799 - 1.65035*I}
%%\end{verbatim}
%%
%%This package loads automatically.
%%
%%Author: Stanley L. Kameny.
%%
\item
{SCOPE: REDUCE source code optimization package}
(chapter~\ref{SCOPE});\ttindex{SCOPE} 

%%
%%SCOPE is a package for the production of an optimized form of a set of
%%expressions.  It applies an heuristic search for common (sub)expressions
%%to almost any set of proper REDUCE assignment statements.  The
%%output is obtained as a sequence of assignment statements.  GENTRAN is
%%used to facilitate expression output.
%%
%%Author:  J.A. van Hulzen.
%%
\item
{SETS: A basic set theory package} (chapter~\ref{SETS});\ttindex{SETS}

%%
%%The SETS package provides algebraic-mode support for set operations on
%%lists regarded as sets (or representing explicit sets) and on implicit
%%sets represented by identifiers.
%%
%%Author: Francis J. Wright.
%%
\item
{SPDE: A package for finding symmetry groups of {PDE}'s}
(chapter~\ref{SPDE});\ttindex{SPDE} 

%%
%%The package SPDE provides a set of functions which may be used to
%%determine the symmetry group of Lie- or point-symmetries of a given system
%%of partial differential equations. In many cases the determining system is
%%solved completely automatically. In other cases the user has to provide
%%additional input information for the solution algorithm to terminate.
%%
%%Author: Fritz Schwarz.
%%
\item
{SPECFN: Package for special functions} (chapter~\ref{SPECFN});
\ttindex{SPECFN}

%%
%%\index{Gamma function}      \ttindex{Gamma}
%%\index{Digamma function}    \ttindex{Digamma}
%%\index{Polygamma functions} \ttindex{Polygamma}
%%\index{Pochhammer's symbol} \ttindex{Pochhammer}
%%\index{Euler numbers}       \ttindex{Euler}
%%\index{Bernoulli numbers}   \ttindex{Bernoulli}
%%\index{Zeta function (Riemann's)} \ttindex{Zeta}
%%\index{Bessel functions}\ttindex{BesselJ}\ttindex{BesselY}
%%                        \ttindex{BesselK}\ttindex{BesselI}
%%\index{Hankel functions}\ttindex{Hankel1}\ttindex{Hankel2}
%%\index{Kummer functions}\ttindex{KummerM}\ttindex{KummerU}
%%\index{Struve functions}\ttindex{StruveH}\ttindex{StruveL}
%%\index{Lommel functions}\ttindex{Lommel1}\ttindex{Lommel2}
%%\index{Polygamma functions}\ttindex{Polygamma}
%%\index{Beta function}      \ttindex{Beta}
%%\index{Whittaker functions}\ttindex{WhittakerM}
%%                           \ttindex{WhittakerW}
%%\index{Dilogarithm function}  \ttindex{Dilog}
%%\index{Psi function}          \ttindex{Psi}
%%\index{Orthogonal polynomials}
%%\index{Hermite polynomials}   \ttindex{HermiteP}
%%\index{Jacobi's polynomials}  \ttindex{JacobiP}
%%\index{Legendre polynomials}  \ttindex{LegendreP}
%%\index{Laguerre polynomials}  \ttindex{LaguerreP}
%%\index{Chebyshev polynomials} \ttindex{ChebyshevT}\ttindex{ChebyshevU}
%%\index{Gegenbauer polynomials}\ttindex{GegenbauerP}
%%\index{Euler polynomials}     \ttindex{EulerP}
%%\index{Binomial coefficients} \ttindex{Binomial}
%%\index{Stirling numbers}\ttindex{Stirling1}\ttindex{Stirling2}
%%
%%This special function package is separated into two portions to make it
%%easier to handle.  The packages are called SPECFN and SPECFN2.  The first
%%one is more general in nature, whereas the second is devoted to special
%%special functions.  Documentation for the first package can be found in
%%the file specfn.tex in the ``doc'' directory, and examples in specfn.tst
%%and specfmor.tst in the examples directory.
%%
%%The package SPECFN is designed to provide algebraic and numerical
%%manipulations of several common special functions, namely:
%%
%%\begin{itemize}
%%\item Bernoulli Numbers and Euler Numbers;
%%\item Stirling Numbers;
%%\item Binomial Coefficients;
%%\item Pochhammer notation;
%%\item The Gamma function;
%%\item The Psi function and its derivatives;
%%\item The Riemann Zeta function;
%%\item The Bessel functions J and Y of the first and second kind;
%%\item The modified Bessel functions I and K;
%%\item The Hankel functions H1 and H2;
%%\item The Kummer hypergeometric functions M and U;
%%\item The Beta function, and Struve, Lommel and Whittaker functions;
%%\item The Exponential Integral, the Sine and Cosine Integrals;
%%\item The Hyperbolic Sine and Cosine Integrals;
%%\item The Fresnel Integrals and the Error function;
%%\item The Dilog function;
%%\item Hermite Polynomials;
%%\item Jacobi Polynomials;
%%\item Legendre Polynomials;
%%\item Laguerre Polynomials;
%%\item Chebyshev Polynomials;
%%\item Gegenbauer Polynomials;
%%\item Euler  Polynomials;
%%\item Bernoulli Polynomials.
%%\end{itemize}
%%
%%Author:  Chris Cannam, with contributions from Winfried Neun, Herbert
%%Melenk, Victor Adamchik, Francis Wright and several others.
%%
\item
{SPECFN2: Package for special special functions}
(chapter~\ref{SPECFN2});\ttindex{SPECFN2} 

%%
%%\index{Generalized Hypergeometric functions}
%%\index{Meijer's G function}
%%
%%This package provides algebraic manipulations of generalized
%%hypergeometric functions and Meijer's G function.  Generalized
%%hypergeometric functions are simplified towards special functions and
%%Meijer's G function is simplified towards special functions or generalized
%%hypergeometric functions.
%%
%%Author: Victor Adamchik, with major updates by Winfried Neun.
%%
\item
{SUM: A package for series summation} (chapter~\ref{SUM});\ttindex{SUM}

%%
%%This package implements the Gosper algorithm for the summation of series.
%%It defines operators {\tt SUM} and {\tt PROD}.  The operator {\tt SUM}
%%returns the indefinite or definite summation of a given expression, and
%%{\tt PROD} returns the product of the given expression.
%%
%%This package loads automatically.
%%
%%Author: Fujio Kako.
%%
\item
{SYMMETRY: Operations on symmetric matrices} (chapter~\ref{SYMMETRY});
\ttindex{SYMMETRY} 

%%
%%This package computes symmetry-adapted bases and block diagonal forms of
%%matrices which have the symmetry of a group.  The package is the
%%implementation of the theory of linear representations for small finite
%%groups such as the dihedral groups.
%%
%%Author: Karin Gatermann.
%%
\item
{TAYLOR: Manipulation of Taylor series} (chapter~\ref{TAYLOR});\ttindex{TAYLOR}

%%
%%This package carries out the Taylor expansion of an expression in one or
%%more variables and efficient manipulation of the resulting Taylor series.
%%Capabilities include basic operations (addition, subtraction,
%%multiplication and division) and also application of certain algebraic and
%%transcendental functions.
%%
%%Author: Rainer Sch\"opf.
%%
\item
{TPS: A truncated power series package} (chapter~\ref{TPS});
\ttindex{TPS}\ttindex{PS} 

%%
%%This package implements formal Laurent series expansions in one variable
%%using the domain mechanism of REDUCE.  This means that power series
%%objects can be added, multiplied, differentiated etc.,  like other first
%%class objects in the system.  A lazy evaluation scheme is used and thus
%%terms of the series are not evaluated until they are required for printing
%%or for use in calculating terms in other power series.  The series are
%%extendible giving the user the impression that the full infinite series is
%%being manipulated.  The errors that can sometimes occur using series that
%%are truncated at some fixed depth (for example when a term in the required
%%series depends on terms of an intermediate series beyond the truncation
%%depth) are thus avoided.
%%
%%Authors:  Alan Barnes and Julian Padget.
%%
\item
{TRI: TeX REDUCE interface} (chapter~\ref{TRI});\ttindex{TRI}

%%
%%This package provides facilities written in REDUCE-Lisp for typesetting
%%REDUCE formulas using \TeX.  The \TeX-REDUCE-Interface incorporates three
%%levels of \TeX output: without line breaking, with line breaking, and
%%with line breaking plus indentation.
%%
%%Author: Werner Antweiler.
%%
\item
{TRIGSIMP: Simplification and factorization of trigonometric and
hyperbolic functions} (chapter~\ref{TRIGSIMP});\ttindex{TRIGSIMP} 

%%and hyperbolic functions}\ttindex{TRIGSIMP}
%%
%%TRIGSIMP is a useful tool for all kinds of trigonometric and hyperbolic
%%simplification and factorization.  There are three procedures included in
%%TRIGSIMP: trigsimp, trigfactorize and triggcd.  The first is for finding
%%simplifications of trigonometric or hyperbolic expressions with many
%%options, the second for factorizing them and the third for finding the
%%greatest common divisor of two trigonometric or hyperbolic polynomials.
%%
%%Author: Wolfram Koepf.
%%
\item
{XCOLOR: Calculation of the color factor in non-abelian gauge field
theories} (chapter~\ref{XCOLOR});\ttindex{XCOLOR} 

%%
%%This package calculates the color factor in non-abelian gauge field
%%theories using an algorithm due to Cvitanovich.
%%
%%Documentation for this package is in plain text.
%%
%%Author: A. Kryukov.
%%
\item
{XIDEAL: Gr\"obner Bases for exterior algebra} (chapter~\ref{XIDEAL});
\ttindex{XIDEAL}

%%
%%XIDEAL constructs Gr\"obner bases for solving the left ideal membership
%%problem: Gr\"obner left ideal bases or GLIBs. For graded ideals, where each
%%form is homogeneous in degree, the distinction between left and right
%%ideals vanishes. Furthermore, if the generating forms are all homogeneous,
%%then the Gr\"obner bases for the non-graded and graded ideals are
%%identical. In this case, XIDEAL is able to save time by truncating the
%%Gr\"obner basis at some maximum degree if desired.
%%
%%Author: David Hartley.
%%
\item
{WU: Wu algorithm for polynomial systems} (chapter~\ref{WU});\ttindex{WU}

%%
%%This is a simple implementation of the Wu algorithm implemented in REDUCE
%%working directly from ``A Zero Structure Theorem for
%%Polynomial-Equations-Solving,'' Wu Wen-tsun, Institute of Systems Science,
%%Academia Sinica, Beijing.
%%
%%Author: Russell Bradford.
%%
\item
{ZEILBERG: A package for indefinite and definite summation}
(chapter~\ref{ZEILBERG});\ttindex{ZEILBERG} 

%%
%%This package is a careful implementation of the Gosper and Zeilberger
%%algorithms for indefinite and definite summation of hypergeometric terms,
%%respectively.  Extensions of these algorithms are also included that are
%%valid for ratios of products of powers, factorials, $\Gamma$ function
%%terms, binomial coefficients, and shifted factorials that are
%%rational-linear in their arguments.
%%
%%Authors: Gregor St\"olting and Wolfram Koepf.
%%
\item
{ZTRANS: $Z$-transform package} (chapter~\ref{ZTRANS});\ttindex{ZTRANS}

%%
%%This package is an implementation of the $Z$-transform of a sequence.
%%This is the discrete analogue of the Laplace Transform.
%%
%%Authors: Wolfram Koepf and Lisa Temme.
\end{itemize}

