Available Packages
Related Projects
Obtaining REDUCE

REDUCE includes considerable documentation, not only for the core system, but also for the many application packages included in the release. Except where noted, the documentation is available in PDF format, which requires the free Acrobat reader for viewing.

One key document is the REDUCE User's Manual, version 3.8. This provides a comprehensive guide to the REDUCE language and the supported packages. A comprehensive html-based help facility indexes essentially all capabilities of the system. A primer for the symbolic mode of REDUCE and the Standard Lisp Report are also online. Finally, documentation for versions 3.6 and 3.7 is also available.

The particular packages with their own documentation are as follows:

bulletalgint This package extends the INT operator so it can handle a wider range of expressions involving square roots.
bulletapplysym This package provides three programs APPLYSYM, QUASILINPDE and DETRAFO for computing with infinitesimal symmetries of differential equations.
bulletarnum 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, for factoring and for finding greatest common divisors in such domains.
bulletassist 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.
bulletatensor This package supports tensor manipulation.
bulletavector This package performs 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.
bulletboolean This package supports computation with boolean expressions in the propositional calculus. The data objects are composed from algebraic expressions connected by the infix boolean operators and, or, implies, equiv, and the unary prefix operator not. BOOLEAN allows you to simplify expressions built from these operators, and to test properties like equivalence, subset property etc.
bulletcali CALI contains algorithms for computations in commutative algebra closely related to the Groebner algorithm for ideals and modules. Its heart is a new implementation of the Groebner 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.
bulletcamal This package implements in REDUCE the Fourier transform procedures of the CAMAL package for celestial mechanics.
bulletcantens CANTENS is a package that creates an environment inside REDUCE which allows the user to manipulate and simplify expressions containing various indexed objects such as tensors, spinors, and quantum fields.
bulletcgb The CGB package provides functions for computing both Comprehensive Groebner Bases (CGB's) and conventional Groebner systems, and for turning Groebner systems into CGB's.
bulletchangevr This package provides facilities for changing the independent variables in a differential equation. It is basically the application of the chain rule.
bulletcompact 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.
bulletconlaw This package presents three different approaches for the determination of conservation laws of differential equations. A paper describing these approaches is also available.
bulletcrack 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.
bulletcvit 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.
bulletdefint DEFINT 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.
bulletdesir 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).
bulletdfpart 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.
bulletdummy 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 achieved. The indeterminates are general operator objects endowed with as few properties as possible.
bulleteds B EDS provides a number of tools for setting up and manipulating exterior differential systems and implements many features of the theory. Its main strengths are the ability to use anholonomic or moving frames and the care taken with nonlinear problems.
bulletexcalc The EXCALC package 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).
bulletfide This package uses computer algebra to automate the process of numerically solving systems of partial differential equations (PDES). For PDE solving, the finite difference method is applied. (Note: the documentation for this package is in text format.)
bulletfps This package can expand a specific class of functions into their corresponding Laurent-Puiseux series.
bulletgentran This package is an automatic code GENerator and TRANslator. It constructs complete numerical programs based on sets of algorithmic specifications and symbolic expressions. Formatted FORTRAN, RATFOR or C code can be generated through a series of interactive commands or under the control of a template processing routine.
bulletgeoprover This package provides tools for the formulation and mechanized proofs of geometry statements in the spirit of the "Chinese Prover" of W.-T. Wu and the fundamental book of S.-C. Chou who proved 512 geometry theorems with this mechanized method.
bulletghyper The GHYPER package simplifies several cases of generalized hypergeometric functions. The simplifications are performed in terms of polynomials, elementary or special functions, or simpler hypergeometric functions.
bulletgnuplot The GNUPLOT package lets one use the GNUPLOT graphical system directly from inside REDUCE, either for the interactive display of curves/surfaces or for the production of pictures on paper.
bulletgroebner The GROEBNER package calculates Groebner bases using the Buchberger algorithm and provides related algorithms for arithmetic with ideal bases, such as ideal quotients and Hilbert polynomials.
bulletideals This package implements the basic arithmetic for polynomial ideals by using the REDUCE Groebner bases package.
bulletineq This package supports the ineq_solve operator that attempts to solve single inequalities and sets of coupled inequalities.
bulletinvbase Involutive bases are a new tool for solving multivariate polynomial problems, such as solving systems of polynomial equations and analyzing polynomial ideals. An involutive basis of a polynomial ideal is nothing more than a special form of a redundant Groebner basis. The construction of involutive bases reduces the problem of solving polynomial systems to simple linear algebra.
bulletlaplace This package can calculate ordinary and inverse Laplace transforms of expressions.
bulletlie LIE is a package of functions for the classification of real n-dimensional Lie algebras.
bulletliepde LIEPDE computes infinitesimal symmetries for a given single system of differential equation(s) (ODEs or PDEs).
bulletlimits LIMITS is a fast limit package for REDUCE for functions which are continuous except for computable poles and singularities.
bulletlinalg This package provides a selection of functions that are useful in the world of linear algebra.
bulletmathml The MathML interface for REDUCE provides an easy to use series of commands, allowing it to evaluate and output MathML.
bulletmeijerg The MEIJERG package simplifies several forms of Meijer's G function. The simplifications are performed in terms of polynomials, elementary or special functions, or (generalized) hypergeometric functions.
bulletmodsr This extends the SOLVE and ROOT operators to modular polynomials and modular polynomial systems.
bulletmrvlimit This package extends the range of problems that can be solved by the LIMITS package.
bulletncpoly This package allows the user to set up automatically a consistent environment for computing in an algebra where non-commutativity is defined by Lie-bracket commutators.
bulletnormform This package defines an operator smithex that computes the Smith normal form of a matrix.
bulletnumeric The numeric package supplies procedures based on the approximation techniques of numerical mathematics. The procedures use the rounded mode arithmetic of REDUCE, including the variable precision feature which is exploited in some algorithms in an adaptive manner to reach the desired accuracy.
bulletodesolve The ODESOLVE package is a solver for ordinary differential equations. At the present time 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.
bulletorthovec ORTHOVEC is a collection of REDUCE procedures and operations which provide a simple-to-use environment for the manipulation of scalars and vectors.
bulletphysop This package provides a tool for theoretical physicists wishing to perform calculations in quantum theory with expressions containing operators. These operations consist mainly of the calculation of commutators between operator expressions, and in the evaluation of operator matrix elements in some abstract space.
bulletpm PM is a general pattern matcher similar in style to those found in systems such as Mathematica.
bulletpolydiv This package provides better access to the standard internal polynomial division facilities of REDUCE and implements polynomial pseudo-division. It provides optional local control over the main variable used for division.
bulletqsum This package is an implementation of the q-analogues of Gosper's and Zeilberger's algorithm for indefinite and definite summation of q-hypergeometric terms. A Postscript version is also available.
bulletrandpoly 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.
bulletrataprx This package provides functions to convert rational numbers into their periodic representation and vice versa, to compute continued fractions and to compute the Padé approximant of a function.
bulletratint This package implements the Horowitz/Rothstein/Trager algorithms for the integration of rational functions.
bulletreacteqn This package transforms chemical reaction systems into ordinary differential equation systems corresponding to the laws of pure mass action.
bulletredlog REDLOG extends REDUCE to a computer logic system implementing symbolic algorithms on first-order formulas with respect to temporarily fixed first-order languages and theories.
bulletreset Provides support for resetting REDUCE to its original state.
bulletresidue This package supports the calculation of residues.
bulletrlfi The RLFI package provides the printing of REDUCE expressions in LaTeX format, so it can be used directly for document production.
bulletroots The root finding package finds some or all of the roots of univariate polynomials with real or complex coefficients, to the accuracy specified by the user.
bulletrsolve The r_solve operator computes all exact rational zeros of a single univariate polynomial using fast modular methods. A companion operator i_solve computes only integer zeros by a more efficient method than extracting them from the rational zeros.
bulletrtrace This package provides tracing and debugging facilities for REDUCE programming. It is a portable version of the PSL-based rdebug package.
bulletscope SCOPE is a package for producing an optimized form for a set of expressions. It applies a heuristic search for common (sub)expressions in a set of REDUCE assignment statements. The output is a sequence of assignment statements.
bulletsets 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.
bulletsparse This package extends the available matrix feature to enable calculations with sparse matrices. It also provides a selection of functions that are useful in the world of linear algebra with respect to sparse matrices.
bulletspde The SPDE package provides functions for determining the symmetry group of Lie- or point-symmetries of a given set of partial differential equations. In many cases the determining system is solved automatically. In other cases the user has to provide additional information for the solution algorithm to succeed.
bulletspecfn This package supplies extended algebraic and numeric support for a wide class of special functions.
bulletsum The sum operator returns the indefinite or definite summation of a given expression.
bulletsusy2 This package deals with supersymmetric functions and with the algebra of supersymmetric operators in the extended N=2 as well as in the nonextended N=1 supersymmetry.
bulletsymmetry The SYMMETRY package computes symmetry-adapted bases and block diagonal forms of matrices that have the symmetry of a group. The package implements the theory of linear representations for small finite groups such as the dihedral groups.
bullettaylor This package defines procedures that compute Taylor expansions in one or more variables and efficient manipulation of the resulting series.
bullettps This package implements formal Laurent series expansions in one variable using the domain mechanism of REDUCE, so that power series objects can be added, multiplied, differentiated etc., like other first class objects in the system.
bullettri This package provides facilities written in Rlisp for typesetting REDUCE formulas using TEX. Examples of using this program are also available.
bullettrigint This package is an implementation of a new algorithm proposed by D.J. Jeffrey and A.D. Rich that removes "spurious" discontinuities from integrals.
bullettrigsimp TRIGSIMP is a useful tool for all kinds of trigonometric and hyperbolic simplification and factorization.
bulletwu This is a simple implementation of the Wu algorithm taken directly from A Zero Structure Theorem for Polynomial-Equations-Solving, Wu Wen-tsun, Institute of Systems Science, Academia Sinica, Beijing.
bulletxcolor This package calculates the color factor in non-abelian gauge field theories using an algorithm due to Cvitanovich.
bulletxideal XIDEAL constructs Groebner bases for solving the left ideal membership problem: Groebner left ideal bases or GLIBs.
bulletzeilberg This package implements the Gosper and Zeilberger algorithms for indefinite and definite summation of hypergeometric terms, respectively.
bulletztrans This package is an implementation of the Z-transform of a sequence, which is the discrete analogue of the Laplace Transform.