REDUCE

7.18 Linear Operators

An operator can be declared to be linear in its first argument over powers of its second argument. If an operator F is so declared, F of any sum is broken up into sums of Fs, and any factors that are not powers of the variable are taken outside. This means that F must have (at least) two arguments. In addition, the second argument must be an identifier (or more generally a kernel), not an expression.

Example:

If F were declared linear, then

                                5  
        f(a*x^5+b*x+c,x) ->  F(X ,X)*A + F(X,X)*B + F(1,X)*C

More precisely, not only will the variable and its powers remain within the scope of the F operator, but so will any variable and its powers that had been declared to DEPEND on the prescribed variable; and so would any expression that contains that variable or a dependent variable on any level, e.g. cos(sin(x)).

To declare operators F and G to be linear operators, use:

        linear f,g;

The analysis is done of the first argument with respect to the second; any other arguments are ignored. It uses the following rules of evaluation:

f(0) -> 0

f(-y,x) -> -F(Y,X)

f(y+z,x) -> F(Y,X)+F(Z,X)

f(y*z,x) -> Z*F(Y,X)    if Z does not depend on X

f(y/z,x) -> F(Y,X)/Z if Z does not depend on X

To summarize, Y “depends” on the indeterminate X in the above if either of the following hold:

  1. Y is an expression that contains X at any level as a variable, e.g.: cos(sin(x))
  2. Any variable in the expression Y has been declared dependent on X by use of the declaration DEPEND.

The use of such linear operators can be seen in the paper Fox, J.A. and A. C. Hearn, “Analytic Computation of Some Integrals in Fourth Order Quantum Electrodynamics” Journ. Comp. Phys. 14 (1974) 301-317, which contains a complete listing of a program for definite integration of some expressions that arise in fourth order quantum electrodynamics.