LINEAR INDEX

LINEAR _ _ _ _ _ _ _ _ _ _ _ _ declaration

An operator can be declared linear in its first argument over powers of its second argument by the declaration linear.

syntax:

linear<operator>{,<operator>}*

<operator> must have been declared to be an operator. Be careful not to use a system operator name, because this command may change its definition. The operator being declared must have at least two arguments, and the second one must be a kernel.

examples:


operator f; 

linear f; 

f(0,x); 

  0 


f(-y,x); 

  - F(1,X)*Y 


f(y+z,x); 

  F(1,X)*(Y + Z) 


f(y*z,x); 

  F(1,X)*Y*Z 


depend z,x; 

f(y*z,x); 

  F(Z,X)*Y 


f(y/z,x); 

    1
  F(-,X)*Y 
    Z


depend y,x; 

f(y/z,x); 

    Y
  F(-,X) 
    Z


nodepend z,x; 

f(y/z,x); 

  F(Y,X)
  ------ 
    Z


f(2*e**sin(x),x); 

       SIN(X)
  2*F(E      ,X)

Even when the operator has not had its functionality attached, it exhibits linear properties as shown in the examples. Notice the difference when dependencies are added. Dependencies are also in effect when the operator's first argument contains its second, as in the last line above.

For a fully-developed example of the use of linear operators, refer to the article in the <Journal of Computational Physics>, Vol. 14 (1974), pp. 301-317, ``Analytic Computation of Some Integrals in Fourth Order Quantum Electrodynamics," by J.A. Fox and A.C. Hearn. The article includes the complete listing of REDUCE procedures used for this work.