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.

The particular packages with their own documentation are as follows:

  • algint This package extends the INT operator so it can handle a wider range of expressions involving square roots.
  • applysym This package provides three programs APPLYSYM, QUASILINPDE and DETRAFO for computing with infinitesimal symmetries of differential equations.
  • 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, for factoring and for finding greatest common divisors in such domains.
  • 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.
  • atensor This package supports tensor manipulation.
  • avector 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.
  • boolean 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.
  • cali 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.
  • camal This package implements in REDUCE the Fourier transform procedures of the CAMAL package for celestial mechanics.
  • cantens 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.
  • cgb 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.
  • changevr This package provides facilities for changing the independent variables in a differential equation. It is basically the application of the chain rule.
  • 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.
  • conlaw This package presents three different approaches for the determination of conservation laws of differential equations.
  • 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.
  • 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.
  • defint 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.
  • 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).
  • 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.
  • 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 achieved. The indeterminates are general operator objects endowed with as few properties as possible.
  • eds 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.
  • excalc 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).
  • fide 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.)
  • fps This package can expand a specific class of functions into their corresponding Laurent-Puiseux series.
  • gentran 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.
  • geoprover 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.
  • ghyper 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.
  • gnuplot 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.
  • groebner 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.
  • ideals This package implements the basic arithmetic for polynomial ideals by using the REDUCE Groebner bases package.
  • ineq This package supports the ineq_solve operator that attempts to solve single inequalities and sets of coupled inequalities.
  • invbase 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.
  • laplace This package can calculate ordinary and inverse Laplace transforms of expressions.
  • lie LIE is a package of functions for the classification of real n-dimensional Lie algebras.
  • liepde LIEPDE computes infinitesimal symmetries for a given single system of differential equation(s) (ODEs or PDEs).
  • limits LIMITS is a fast limit package for REDUCE for functions which are continuous except for computable poles and singularities.
  • linalg This package provides a selection of functions that are useful in the world of linear algebra.
  • mathml The MathML interface for REDUCE provides an easy to use series of commands, allowing it to evaluate and output MathML.
  • meijerg 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.
  • modsr This extends the SOLVE and ROOT operators to modular polynomials and modular polynomial systems.
  • mrvlimit This package extends the range of problems that can be solved by the LIMITS package.
  • ncpoly 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.
  • normform This package defines an operator smithex that computes the Smith normal form of a matrix.
  • numeric 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.
  • odesolve 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.
  • orthovec ORTHOVEC is a collection of REDUCE procedures and operations which provide a simple-to-use environment for the manipulation of scalars and vectors.
  • physop 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.
  • pm PM is a general pattern matcher similar in style to those found in systems such as Mathematica.
  • polydiv 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.
  • qsum 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.
  • 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.
  • rataprx 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.
  • ratint This package implements the Horowitz/Rothstein/Trager algorithms for the integration of rational functions.
  • reacteqn This package transforms chemical reaction systems into ordinary differential equation systems corresponding to the laws of pure mass action.
  • redlog 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.
  • reset Provides support for resetting REDUCE to its original state.
  • residue This package supports the calculation of residues.
  • rlfi The RLFI package provides the printing of REDUCE expressions in LaTeX format, so it can be used directly for document production.
  • roots 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.
  • rsolve 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.
  • rtrace This package provides tracing and debugging facilities for REDUCE programming. It is a portable version of the PSL-based rdebug package.
  • scope 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.
  • 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.
  • sparse 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.
  • spde 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.
  • specfn This package supplies extended algebraic and numeric support for a wide class of special functions.
  • sum The sum operator returns the indefinite or definite summation of a given expression.
  • susy2 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.
  • symmetry 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.
  • taylor This package defines procedures that compute Taylor expansions in one or more variables and efficient manipulation of the resulting series.
  • tps 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.
  • tri This package provides facilities written in Rlisp for typesetting REDUCE formulas using TEX. Examples of using this program are also available.
  • trigint This package is an implementation of a new algorithm proposed by D.J. Jeffrey and A.D. Rich that removes "spurious" discontinuities from integrals.
  • trigsimp TRIGSIMP is a useful tool for all kinds of trigonometric and hyperbolic simplification and factorization.
  • wu 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.
  • xcolor This package calculates the color factor in non-abelian gauge field theories using an algorithm due to Cvitanovich.
  • xideal XIDEAL constructs Groebner bases for solving the left ideal membership problem: Groebner left ideal bases or GLIBs.
  • zeilberg This package implements the Gosper and Zeilberger algorithms for indefinite and definite summation of hypergeometric terms, respectively.
  • ztrans This package is an implementation of the Z-transform of a sequence, which is the discrete analogue of the Laplace Transform.