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

Reply via email to