On 23/02/2007 6:09 AM, Leonard Mada wrote: > Chapter 6.3.5 of the OASIS OpenFormula document (version 2007-02-14) > describes the Infix Operator (^). > > However, it contains a lot of mathematical ERRORS: > [snip] > 2. The classic ERROR: -4^2 > Mathematically, this yields always -(4^2)=-16, NEVER +16!!! > There is NO unary operator in mathematics that converts a number to its > negative, like described in the documents. I would suggest consulting a > dedicated mathematical program. As stated in issue > http://www.openoffice.org/issues/show_bug.cgi?id=66735 on the OOo website: > *Mathematica* v5.(x) returns -16 > *R* v2.4.0 returns -16 > other software (like Scilab, maxima, octave, as pointed in that Calc > issue) report -16, too. > > gnumeric takes an interesting approach: it converts the first expression > to =(-4)^2, which indeed is then +16. So, this last is mathematically > correct and, at the same time, users who know a bit more about > mathematics, recognize that gnumeric did NOT calculated what they > expected. (it is transparent what has happened) > > Stating however, that -4^2 = +16 is plain wrong!!! And inventing various > mathematical rules that break the old ones is really NOT good for a > standard. > > I hope this gets corrected. >
IMextremelyHO: Anyone who attempts to rely on knowing what the precedence of operators is in any language -- apart from () */ and +- -- instead of putting () in the expression is just plain crazy. It is a well known fact that language designers make arbitrary decisions about operator precedence. One of the more ludicrous cases is in Pascal and its inheritors: the () in "if (a < b) and (c < d)" are *necessary* Why? Because without the (), that would be interpreted as "if a < (b and c) < d", which would be valid only if all 4 variables were of Boolean type and < was a valid operator on Booleans (False < True, in an ideal world) but it's not so (in Pascal). HTH, John _______________________________________________ gnumeric-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnumeric-list
