To support its use, the REDUCE computer algebra system has been designed with
the following characteristics in mind:
- Code stability. Various versions of REDUCE have been in use for over
forty 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 superior 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 focused 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 numerical
programming languages (such as C or 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 computers.
- 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.