ANTISYMMETRIC INDEX

ANTISYMMETRIC _ _ _ _ _ _ _ _ _ _ _ _ declaration

When an operator is declared antisymmetric, its arguments are reordered to conform to the internal ordering of the system. If an odd number of argument interchanges are required to do this ordering, the sign of the expression is changed.

syntax:

antisymmetric<identifier>{,<identifier>}*

<identifier> is an identifier that has been declared as an operator.

examples:


operator m,n; 

antisymmetric m,n; 

m(x,n(1,2)); 

  - M( - N(2,1),X) 


operator p; 

antisymmetric p; 

p(a,b,c); 

  P(A,B,C) 


p(b,a,c); 

  - P(A,B,C)

If <identifier> has not been declared an operator, the flag antisymmetric is still attached to it. When <identifier> is subsequently used as an operator, the message Declare <identifier > operator? (Y or N) is printed. If the user replies y, the antisymmetric property of the operator is used.

Note in the first example, identifiers are customarily ordered alphabetically, while numbers are ordered from largest to smallest. The operators may have any desired number of arguments (less than 128).