```At 17:06 +0100 3/20/08, TSa wrote:
>BTW, do we have a unary multiplikative inversion operator?
>That is 1/ as prefix or **-1 as postfix? Perhaps .inv as method?
>Do we have .neg for additive inversion?```
```
There certainly is the unary minus even though it is badly interpreted in some
languages, thankfully NOT including perl 5.

Don't even think about parsing  = -\$x**2; so that it returns a positive result.

Perl 5 handles it by assigning a higher precedence to ** than to addition. The
real fact is that the minus sign in the above formula just isn't a unary minus
in chalkboard algebra.

= \$a - \$b - f(\$x);  when \$a is known to by identically equal to \$b should be
the same as
= 0 -  f(\$x); or just
= - f(\$x);  which happens easily with pencil and paper.

Don't allow it to become

= f(-\$x);   ## wrong!

even if the f() is really written as \$x**2 or has some other postfix operation
- inversion -  that's considered a function by a mathematician.

*****

At 15:01 +0100 3/20/08, TSa wrote:
>BTW, operator overloading does not allow to change the precedence,
>associativity and commutativity of the operator because these are
>parser features.

A vector on the chalkboard can be a row or a column but in a computer it's an
ordered list with the vertical or horizontal order of the components residing
only in the mind of the programmer.

Multiplying a vector by a matrix implicitly indicates that the vector is a row.
Multiplying a matrix by a vector implies a column vector and the results are
quite different.

=\$vector * \$matrix;

is probably well handled in a overloading method because the order implies the
rowness or columnness of the vector but it could get confused by a parser that
has its own ideas about precedence and commutativity.

--

--> From the U S of A, the only socialist country that refuses to admit it. <--
```