
<a name=r38_0650>

<title>FPS</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>FPS</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Authors: Wolfram Koepf, Winfried Neun 
<P>
<P>
This package can expand a specific class of functions into their 
corresponding Laurent-Puiseux series. 
<P>
<P>

<a name=r38_0651>

<title>FIDE</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>FIDE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
Author: Richard Liska 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0652>

<title>GENTRAN</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>GENTRAN</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Barbara L. Gates 
<P>
<P>
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. 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. 
<P>
<P>

<a name=r38_0653>

<title>IDEALS</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>IDEALS</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Herbert Melenk 
<P>
<P>
This package implements the basic arithmetic for polynomial ideals by 
exploiting the Groebner bases package of REDUCE. In order to save 
computing time all intermediate Groebner bases are stored internally such 
that time consuming repetitions are inhibited. 
<P>
<P>

<a name=r38_0654>

<title>INEQ</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>INEQ</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Herbert Melenk 
<P>
<P>
This package supports the operator <em>ineq_solve</em> that 
attempts to solve single inequalities and sets of coupled inequalities. 
<P>
<P>

<a name=r38_0655>

<title>INVBASE</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>INVBASE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
Authors: A.Yu. Zharkov and Yu.A. Blinkov 
<P>
<P>
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 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. 
<P>
<P>

<a name=r38_0656>

<title>LAPLACE</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>LAPLACE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Authors: C. Kazasov, M. Spiridonova, V. Tomov 
<P>
<P>
This package can calculate ordinary and inverse Laplace transforms of 
expressions. 
<P>
<P>

<a name=r38_0657>

<title>LIE</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>LIE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
Authors: Carsten and Franziska Sch&quot;obel 
<P>
<P>
<em>Lie</em>is a package of functions for the classification of real 
n-dimensional Lie algebras. It consists of two modules: <em>liendmc1</em> 
and <em>lie1234</em>. With the help of the functions in the <em>liendmcl</em> 
module, real n-dimensional Lie algebras L with a derived algebra 
L^(1) of dimension 1 can be classified. 
<P>
<P>

<a name=r38_0658>

<title>MODSR</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>MODSR</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Herbert Melenk 
<P>
<P>
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: 
<P>
<P>
<p><pre><tt>
on modular; setmod 8;
m_solve(2x=4);            -&gt;  {{X=2},{X=6}}
m_solve({x^2-y^3=3});
    -&gt;  {{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}); -&gt;  {{X=2,Y=1}}
off modular;
m_roots(x^2-1,8);         -&gt;  {1,3,5,7}
m_roots(x^3-x,7);         -&gt;  {0,1,6}
</tt></pre><p>
<a name=r38_0659>

<title>NCPOLY</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>NCPOLY</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Authors: Herbert Melenk, Joachim Apel 
<P>
<P>
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 
<em>noncom</em> mechanism for elementary polynomial arithmetic; the commutator 
rules are automatically computed from the Lie brackets. 
<P>
<P>

<a name=r38_0660>

<title>ORTHOVEC</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>ORTHOVEC</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: James W. Eastwood 
<P>
<P>
<em>orthovec</em>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. 
<P>
<P>

<a name=r38_0661>

<title>PHYSOP</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>PHYSOP</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
Author: Mathias Warns 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0662>

<title>PM</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>PM</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Kevin McIsaac 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0663>

<title>RANDPOLY</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>RANDPOLY</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Francis J. Wright 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0664>

<title>REACTEQN</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>REACTEQN</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Herbert Melenk 
<P>
<P>
This package allows a user to transform chemical reaction systems into 
ordinary differential equation systems (ODE) corresponding to the laws of 
pure mass action. 
<P>
<P>

<a name=r38_0665>

<title>RESET</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>RESET</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
Author: John Fitch 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0666>

<title>RESIDUE</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>RESIDUE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
Author: Wolfram Koepf 
<P>
<P>
This package supports the calculation of residues of arbitrary 
expressions. 
<P>
<P>

<a name=r38_0667>

<title>RLFI</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>RLFI</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Richard Liska 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0668>

<title>SCOPE</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>SCOPE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: J.A. van Hulzen 
<P>
<P>
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. <em>gentran</em> is used to 
facilitate expression output. 
<P>
<P>

<a name=r38_0669>

<title>SETS</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>SETS</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
Author: Francis J. Wright 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0670>

<title>SPDE</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>SPDE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Fritz Schwartz 
<P>
<P>
The package <em>spde</em> 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. 
<P>
<P>

<a name=r38_0671>

<title>SYMMETRY</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>SYMMETRY</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
Author: Karin Gatermann 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0672>

<title>TPS</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TPS</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Authors: Alan Barnes, Julian Padget 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0673>

<title>TRI</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TRI</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Werner Antweiler 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0674>

<title>TRIGSIMP</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TRIGSIMP</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Wolfram Koepf 
<P>
<P>
TRIGSIMP is a useful tool for all kinds of trigonometric and hyperbolic 
simplification and factorization. There are three procedures included in 
TRIGSIMP: <em>trigsimp</em>, <em>trigfactorize</em> and <em>triggcd</em>. 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. 
<P>
<P>

<a name=r38_0675>

<title>XCOLOR</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>XCOLOR</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: A. Kryukov 
<P>
<P>
This package calculates the color factor in non-abelian gauge field 
theories using an algorithm due to Cvitanovich. 
<P>
<P>

<a name=r38_0676>

<title>XIDEAL</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>XIDEAL</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: David Hartley 
<P>
<P>
<em>xideal</em>constructs Groebner bases for solving the left ideal 
membership problem: Groebner 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 Groebner bases for the non-graded and graded 
ideals are identical. In this case, <em>xideal</em> is able to save time by 
truncating the Groebner basis at some maximum degree if desired. 
<P>
<P>

<a name=r38_0677>

<title>WU</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>WU</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Author: Russell Bradford 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0678>

<title>ZEILBERG</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>ZEILBERG</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
 <P>
<P>
Authors: Gregor St&quot;olting and Wolfram Koepf 
<P>
<P>
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. 
<P>
<P>

<a name=r38_0679>

<title>ZTRANS</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>ZTRANS</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>package</b><P>
<P>
 
Authors: Wolfram Koepf, Lisa Temme 
<P>
<P>
This package is an implementation of the Z-transform of a sequence. 
This is the discrete analogue of the Laplace Transform. 
<P>
<P>

<a name=r38_0680>

<title>Miscellaneous Packages</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>
<b>Miscellaneous Packages</b><menu>
<li><a href=r38_0600.html#r38_0632>Miscellaneous Packages introduction</a><P>
<li><a href=r38_0600.html#r38_0633>ALGINT package</a><P>
<li><a href=r38_0600.html#r38_0634>APPLYSYM package</a><P>
<li><a href=r38_0600.html#r38_0635>ARNUM package</a><P>
<li><a href=r38_0600.html#r38_0636>ASSIST package</a><P>
<li><a href=r38_0600.html#r38_0637>AVECTOR package</a><P>
<li><a href=r38_0600.html#r38_0638>BOOLEAN package</a><P>
<li><a href=r38_0600.html#r38_0639>CALI package</a><P>
<li><a href=r38_0600.html#r38_0640>CAMAL package</a><P>
<li><a href=r38_0600.html#r38_0641>CHANGEVR package</a><P>
<li><a href=r38_0600.html#r38_0642>COMPACT package</a><P>
<li><a href=r38_0600.html#r38_0643>CRACK package</a><P>
<li><a href=r38_0600.html#r38_0644>CVIT package</a><P>
<li><a href=r38_0600.html#r38_0645>DEFINT package</a><P>
<li><a href=r38_0600.html#r38_0646>DESIR package</a><P>
<li><a href=r38_0600.html#r38_0647>DFPART package</a><P>
<li><a href=r38_0600.html#r38_0648>DUMMY package</a><P>
<li><a href=r38_0600.html#r38_0649>EXCALC package</a><P>
<li><a href=r38_0650.html#r38_0650>FPS package</a><P>
<li><a href=r38_0650.html#r38_0651>FIDE package</a><P>
<li><a href=r38_0650.html#r38_0652>GENTRAN package</a><P>
<li><a href=r38_0650.html#r38_0653>IDEALS package</a><P>
<li><a href=r38_0650.html#r38_0654>INEQ package</a><P>
<li><a href=r38_0650.html#r38_0655>INVBASE package</a><P>
<li><a href=r38_0650.html#r38_0656>LAPLACE package</a><P>
<li><a href=r38_0650.html#r38_0657>LIE package</a><P>
<li><a href=r38_0650.html#r38_0658>MODSR package</a><P>
<li><a href=r38_0650.html#r38_0659>NCPOLY package</a><P>
<li><a href=r38_0650.html#r38_0660>ORTHOVEC package</a><P>
<li><a href=r38_0650.html#r38_0661>PHYSOP package</a><P>
<li><a href=r38_0650.html#r38_0662>PM package</a><P>
<li><a href=r38_0650.html#r38_0663>RANDPOLY package</a><P>
<li><a href=r38_0650.html#r38_0664>REACTEQN package</a><P>
<li><a href=r38_0650.html#r38_0665>RESET package</a><P>
<li><a href=r38_0650.html#r38_0666>RESIDUE package</a><P>
<li><a href=r38_0650.html#r38_0667>RLFI package</a><P>
<li><a href=r38_0650.html#r38_0668>SCOPE package</a><P>
<li><a href=r38_0650.html#r38_0669>SETS package</a><P>
<li><a href=r38_0650.html#r38_0670>SPDE package</a><P>
<li><a href=r38_0650.html#r38_0671>SYMMETRY package</a><P>
<li><a href=r38_0650.html#r38_0672>TPS package</a><P>
<li><a href=r38_0650.html#r38_0673>TRI package</a><P>
<li><a href=r38_0650.html#r38_0674>TRIGSIMP package</a><P>
<li><a href=r38_0650.html#r38_0675>XCOLOR package</a><P>
<li><a href=r38_0650.html#r38_0676>XIDEAL package</a><P>
<li><a href=r38_0650.html#r38_0677>WU package</a><P>
<li><a href=r38_0650.html#r38_0678>ZEILBERG package</a><P>
<li><a href=r38_0650.html#r38_0679>ZTRANS package</a><P>
</menu>
<a name=r38_0681>

<title>ED</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>ED</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>command</b><P>
<P>
 
The <em>ed</em> command invokes a simple line editor for REDUCE input 
statements. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>ed</em>&lt;integer&gt; or <em>ed</em> 
<P>
<P>
<P>
<em>ed</em>called with no argument edits the last input statement. If 
&lt;integer&gt; is greater than or equal to the current line number, an error 
message is printed. Reenter a proper <em>ed</em> command or return to the 
top level with a semicolon. 
<P>
<P>
The editor formats REDUCE's version of the desired input statement, 
dividing it into lines at semicolons and dollar signs. The statement is 
printed at the beginning of the edit session. The editor works on one 
line at a time, and has a pointer (shown by <em>^</em>) to the current 
character of that line. When the session begins, the pointer is at the 
left hand side of the first line. The editing prompt is <em>&gt;</em>. 
<P>
<P>
The following commands are available. They may be entered in either upper 
or lower case. All commands are activated by the carriage return, which 
also prints out the current line after changes. Several commands can be 
placed on a single line, except that commands terminated by an <em>ESC</em> 
must be the last command before the carriage return. 
<P>
<P>
 _ _ _ b 
Move pointer to beginning of current line. 
<P>
<P>
 _ _ _ d&lt;digit&gt; 
Delete current character and next (digit-1) characters. An error message 
is printed if anything other than a single digit follows d. If there are 
fewer than &lt;digit&gt; characters left on the line, all but the final 
dollar sign or semicolon is removed. To delete a line completely, use the 
k command. 
<P>
<P>
 _ _ _ e 
End the current session, causing the edited expression to be reparsed by 
REDUCE. 
<P>
<P>
 _ _ _ f&lt;char&gt; 
Find the next occurrence of the character &lt;char&gt; to the right of the 
pointer on the current line and move the pointer to it. If the character is 
not found, an error message is printed and the pointer remains in its 
original position. Other lines are not searched. The f command is not 
case-sensitive. 
<P>
<P>
 _ _ _ i&lt;string&gt;<em>ESC</em> 
Insert &lt;string&gt; in front of pointer. The <em>ESC</em> key is your 
delimiter for the input string. No other command may follow this one on 
the same line. 
<P>
<P>
 _ _ _ k 
Kill rest of the current line, including the semicolon or dollar sign 
terminator. If there are characters remaining on the current line, and it 
is the last line of the input statement, a semicolon is added to the line 
as a terminator for REDUCE. If the current line is now empty, one of the 
following actions is performed: If there is a following line, it becomes 
the current line and the pointer is placed at its first character. If the 
current line was the final line of the statement, and there is a previous 
line, the previous line becomes the current line. If the current line was 
the only line of the statement, and it is empty, a single semicolon is 
inserted for REDUCE to parse. 
<P>
<P>
 _ _ _ l 
Finish editing this line and move to the last previous line. An error message 
is printed if there is no previous line. 
<P>
<P>
 _ _ _ n 
Finish editing this line and move to the next line. An error message is 
printed if there is no next line. 
<P>
<P>
 _ _ _ p 
Print out all the lines of the statement. Then a dotted line is printed, and 
the current line is reprinted, with the pointer under it. 
<P>
<P>
 _ _ _ q 
Quit the editing session without saving the changes. If a semicolon is 
entered after q, a new line prompt is given, otherwise REDUCE prompts you 
for another command. Whatever you type in to the prompt appearing after 
the q is entered is stored as the input for the line number in which you 
called the edit. Thus if you enter a semicolon, neither 
<a href=r38_0200.html#r38_0232>input</a> 
<em>ed</em> will find anything under the current number. 
<P>
<P>
 _ _ _ r&lt;char&gt; 
Replace the character at the pointer by &lt;char&gt;. 
<P>
<P>
 _ _ _ s&lt;string&gt;<em>ESC</em> 
Search for the first occurrence of &lt;string&gt; to the right of the 
pointer on the current line and move the pointer to its first character. 
The <em>ESC</em> key is your delimiter for the input string. The s function 
does not search other lines of the statement. If the string is not found, 
an error message is printed and the pointer remains in its original 
position. The s command is not case-sensitive. No other command may 
follow this one on the same line. 
<P>
<P>
 _ _ _ x &lt;or space&gt; 
Move the pointer one character to the right. If the pointer is already at 
the end of the line, an error message is printed. 
<P>
<P>
 _ _ _ - &lt;(minus)&gt; 
Move the pointer one character to the left. If the pointer is already at the 
beginning of the line, an error message is printed. 
<P>
<P>
 _ _ _ ? 
Display the Help menu, showing the commands and their actions. 
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt></tt></pre><p>(Line numbers are shown in the following examples)<p>
<pre><tt> 

2: &gt;&gt;x**2 + y; 

X^{2} + Y 

3: &gt;&gt;ed 2; 

  X**2 + Y; 

  ^ 

For help, type '?' 

?-                  (Enter three spaces and key{Return}) 

  X**2 + Y; 

     ^ 

?- r5 

  X**5 + Y; 

     ^ 

?- fY 

  X**5 + Y; 

	 ^ 

?- iabc (Terminate with key{ESC} and key{Return}) 

  X**5 + abcY; 

	    ^ 

?- ---- 

  X**5 + abcY; 

	^ 

?- fbd2 

  X**5 + aY; 

	  ^ 

?- b 

  X**5 + aY; 

  ^ 

?- e 

AY + X^{5} 

4: &gt;&gt;procedure dumb(a); 

&gt;&gt;write a; 

DUMB 

5: &gt;&gt;dumb(17); 

17 

6: &gt;&gt;ed 4; 

  PROCEDURE DUMB (A); 

  ^ 

WRITE A; 

?- fArBn 

  WRITE A; 

  ^ 

?- ibegin scalar a; a := b + 10; (Type a space, key{ESC}, and key{Return}) 

  begin scalar a; a := b + 10; WRITE A; 

?- f;i end key{ESC}, key{Return} 

  begin scalar b; b := a + 10; WRITE A end; 

					  ^ 

?- p 

 PROCEDURE DUMB (B); 

 begin scalar b; b := a + 10; WRITE A end; 

 -  -  -  -  -  -  -  -  -  - 

  begin scalar b; b := a + 10; WRITE A end; 

					  ^ 

?- e 

DUMB 

7: &gt;&gt;dumb(17); 

27 

8: &gt;&gt; 

</tt></pre><p> 
<P>
<P>
Note that REDUCE reparsed the procedure <em>dumb</em> and updated the 
definition. 
<P>
<P>
Since REDUCE divides the expression to be edited into lines at semicolons or 
dollar sign terminators, some lines may occupy more than one line of screen 
space. If the pointer is directly beneath the last line of text, it 
refers to the top line of text. If there is a blank line between the 
last line of text and the pointer, it refers to the second line 
of text, and likewise for cases of greater than two lines of text. In other 
words, the entire REDUCE statement up to the next terminator is printed, even 
if it runs to several lines, then the pointer line is printed. 
<P>
<P>
You can insert new statements which contain semicolons of their own into the 
current line. They are run into the current line where you placed them 
until you edit the statement again. REDUCE will understand the set of 
statements if the syntax is correct. 
<P>
<P>
If you leave out needed closing brackets when you exit the editor, a message 
is printed allowing you to redo the edit (you can edit the previous line 
number and return to where you were). If you leave out a closing 
double-quotation mark, an error message is printed, and the editing must be 
redone from the original version; the edited version has been destroyed. 
Most syntax errors which you inadvertently leave in an edited statement are 
caught as usual by the REDUCE parser, and you will be able to re-edit the 
statement. 
<P>
<P>
When the editor processes a previous statement for your editing, escape 
characters are removed. Most special characters that you may use in 
identifiers are printed in legal fashion, prefixed by the exclamation 
point. Be sure to treat the special character and its escape as a pair in 
your editing. The characters <em>( ) # ; ' `</em> are different. Since 
they have special meaning in Lisp, they are double-escaped in the editor. 
It is unwise to use these characters inside identifiers anyway, due to the 
probability of confusion. 
<P>
<P>
If you see a Lisp error message during editing, the edit has been aborted. 
Enter a semicolon and you will see a new line prompt. 
<P>
<P>
Since the editor has no dependence on any window system, it can be used if you 
are running REDUCE without windows. 
<P>
<P>
<P>

<a name=r38_0682>

<title>EDITDEF</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>EDITDEF</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>command</b><P>
<P>
 
<P>
<P>
The interactive editor 
<a href=r38_0650.html#r38_0681>ed</a> may be used to edit a user-defined 
procedure that has not been compiled. 
 <P> <H3> 
syntax: </H3>
<P>
<P>
<em>editdef</em>(<em>identifier</em>) 
<P>
<P>
<P>
where <em>identifier</em> is the name of the procedure. When <em>editdef</em> 
is invoked, the procedure definition will be displayed in editing mode, 
and may then be edited and redefined on exiting from the editor using 
standard 
<a href=r38_0650.html#r38_0681>ed</a> commands. 
<P>
<P>

<a name=r38_0683>

<title>Outmoded Operations</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>
<b>Outmoded Operations</b><menu>
<li><a href=r38_0650.html#r38_0681>ED command</a><P>
<li><a href=r38_0650.html#r38_0682>EDITDEF command</a><P>
</menu>