INDEX

FPS _ _ _ _ _ _ _ _ _ _ _ _ package

Authors: Wolfram Koepf, Winfried Neun

This package can expand a specific class of functions into their corresponding Laurent-Puiseux series.

FIDE

INDEX

FIDE _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Richard Liska

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.

GENTRAN

INDEX

GENTRAN _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Barbara L. Gates

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.

IDEALS

INDEX

IDEALS _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Herbert Melenk

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.

INEQ

INDEX

INEQ _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Herbert Melenk

This package supports the operator ineq_solve that attempts to solve single inequalities and sets of coupled inequalities.

INVBASE

INDEX

INVBASE _ _ _ _ _ _ _ _ _ _ _ _ package

Authors: A.Yu. Zharkov and Yu.A. Blinkov

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.

LAPLACE

INDEX

LAPLACE _ _ _ _ _ _ _ _ _ _ _ _ package

Authors: C. Kazasov, M. Spiridonova, V. Tomov

This package can calculate ordinary and inverse Laplace transforms of expressions.

LIE

INDEX

LIE _ _ _ _ _ _ _ _ _ _ _ _ package

Authors: Carsten and Franziska Sch"obel

Lieis a package of functions for the classification of real n-dimensional Lie algebras. It consists of two modules: liendmc1 and lie1234. With the help of the functions in the liendmcl module, real n-dimensional Lie algebras L with a derived algebra L^(1) of dimension 1 can be classified.

MODSR

INDEX

MODSR _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Herbert Melenk

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:

    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}

NCPOLY

INDEX

NCPOLY _ _ _ _ _ _ _ _ _ _ _ _ package

Authors: Herbert Melenk, Joachim Apel

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 noncom mechanism for elementary polynomial arithmetic; the commutator rules are automatically computed from the Lie brackets.

ORTHOVEC

INDEX

ORTHOVEC _ _ _ _ _ _ _ _ _ _ _ _ package

Author: James W. Eastwood

orthovecis 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.

PHYSOP

INDEX

PHYSOP _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Mathias Warns

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.

PM

INDEX

PM _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Kevin McIsaac

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.

RANDPOLY

INDEX

RANDPOLY _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Francis J. Wright

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.

REACTEQN

INDEX

REACTEQN _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Herbert Melenk

This package allows a user to transform chemical reaction systems into ordinary differential equation systems (ODE) corresponding to the laws of pure mass action.

RESET

INDEX

RESET _ _ _ _ _ _ _ _ _ _ _ _ package

Author: John Fitch

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.

RESIDUE

INDEX

RESIDUE _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Wolfram Koepf

This package supports the calculation of residues of arbitrary expressions.

RLFI

INDEX

RLFI _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Richard Liska

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.

SCOPE

INDEX

SCOPE _ _ _ _ _ _ _ _ _ _ _ _ package

Author: J.A. van Hulzen

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.

SETS

INDEX

SETS _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Francis J. Wright

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.

SPDE

INDEX

SPDE _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Fritz Schwartz

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.

SYMMETRY

INDEX

SYMMETRY _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Karin Gatermann

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.

TPS

INDEX

TPS _ _ _ _ _ _ _ _ _ _ _ _ package

Authors: Alan Barnes, Julian Padget

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.

TRI

INDEX

TRI _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Werner Antweiler

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.

TRIGSIMP

INDEX

TRIGSIMP _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Wolfram Koepf

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.

XCOLOR

INDEX

XCOLOR _ _ _ _ _ _ _ _ _ _ _ _ package

Author: A. Kryukov

This package calculates the color factor in non-abelian gauge field theories using an algorithm due to Cvitanovich.

XIDEAL

INDEX

XIDEAL _ _ _ _ _ _ _ _ _ _ _ _ package

Author: David Hartley

xidealconstructs 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, xideal is able to save time by truncating the Groebner basis at some maximum degree if desired.

WU

INDEX

WU _ _ _ _ _ _ _ _ _ _ _ _ package

Author: Russell Bradford

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.

ZEILBERG

INDEX

ZEILBERG _ _ _ _ _ _ _ _ _ _ _ _ package

Authors: Gregor St"olting and Wolfram Koepf

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.

ZTRANS

INDEX

ZTRANS _ _ _ _ _ _ _ _ _ _ _ _ package

Authors: Wolfram Koepf, Lisa Temme

This package is an implementation of the Z-transform of a sequence. This is the discrete analogue of the Laplace Transform.

Miscellaneous Packages

INDEX

Miscellaneous Packages

- Miscellaneous Packages introduction

- ALGINT package

- APPLYSYM package

- ARNUM package

- ASSIST package

- AVECTOR package

- BOOLEAN package

- CALI package

- CAMAL package

- CHANGEVR package

- COMPACT package

- CRACK package

- CVIT package

- DEFINT package

- DESIR package

- DFPART package

- DUMMY package

- EXCALC package

- FPS package

- FIDE package

- GENTRAN package

- IDEALS package

- INEQ package

- INVBASE package

- LAPLACE package

- LIE package

- MODSR package

- NCPOLY package

- ORTHOVEC package

- PHYSOP package

- PM package

- RANDPOLY package

- REACTEQN package

- RESET package

- RESIDUE package

- RLFI package

- SCOPE package

- SETS package

- SPDE package

- SYMMETRY package

- TPS package

- TRI package

- TRIGSIMP package

- XCOLOR package

- XIDEAL package

- WU package

- ZEILBERG package

- ZTRANS package

  ED

  INDEX

  ED _ _ _ _ _ _ _ _ _ _ _ _ command

  The ed command invokes a simple line editor for REDUCE input statements.

  ### syntax:

  ed<integer> or ed

  edcalled with no argument edits the last input statement. If <integer> is greater than or equal to the current line number, an error message is printed. Reenter a proper ed command or return to the top level with a semicolon.

  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 ^) 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 >.

  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 ESC must be the last command before the carriage return.

  _ _ _ b Move pointer to beginning of current line.

  _ _ _ d<digit> 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 <digit> characters left on the line, all but the final dollar sign or semicolon is removed. To delete a line completely, use the k command.

  _ _ _ e End the current session, causing the edited expression to be reparsed by REDUCE.

  _ _ _ f<char> Find the next occurrence of the character <char> 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.

  _ _ _ i<string>ESC Insert <string> in front of pointer. The ESC key is your delimiter for the input string. No other command may follow this one on the same line.

  _ _ _ 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.

  _ _ _ l Finish editing this line and move to the last previous line. An error message is printed if there is no previous line.

  _ _ _ n Finish editing this line and move to the next line. An error message is printed if there is no next line.

  _ _ _ 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.

  _ _ _ 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 input ed will find anything under the current number.

  _ _ _ r<char> Replace the character at the pointer by <char>.

  _ _ _ s<string>ESC Search for the first occurrence of <string> to the right of the pointer on the current line and move the pointer to its first character. The ESC 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.

  _ _ _ x <or space> Move the pointer one character to the right. If the pointer is already at the end of the line, an error message is printed.

  _ _ _ - <(minus)> Move the pointer one character to the left. If the pointer is already at the beginning of the line, an error message is printed.

  _ _ _ ? Display the Help menu, showing the commands and their actions.

  ### examples:

  (Line numbers are shown in the following examples)

      2: >>x**2 + y;

      X^{2} + Y

      3: >>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: >>procedure dumb(a);

      >>write a;

      DUMB

      5: >>dumb(17);

      17

      6: >>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: >>dumb(17);

      27

      8: >>

  Note that REDUCE reparsed the procedure dumb and updated the definition.

  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.

  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.

  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.

  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 ( ) # ; ' ` 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.

  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.

  Since the editor has no dependence on any window system, it can be used if you are running REDUCE without windows.

  EDITDEF

  INDEX

  EDITDEF _ _ _ _ _ _ _ _ _ _ _ _ command

  The interactive editor ed may be used to edit a user-defined procedure that has not been compiled.

  ### syntax:

  editdef(identifier)

  where identifier is the name of the procedure. When editdef 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 ed commands.

  Outmoded Operations

  INDEX

  Outmoded Operations

- ED command

- EDITDEF command