Ugh..

I haven't been following this thread at all ...

I unsubscribed from the -dev list because I always ended up in absurd 
discussions
and there was not much technical content either.

I suspected it would be bikeshed.org material but in any case let me make 
things clear.

- 0^0 = 1 is NOT mathematically correct. The limit of x^x when x tends to +0 is 
1,
however when you consider the limit when x tends to -0, the limit is infinite. 
This
is called Indeterminate Form.
    http://en.wikipedia.org/wiki/Indeterminate_form


If you wonder, I failed a math quiz in the University for blindly using the 
value my
HP Calculator gave (1), so I am sort of glad that this has been a free 
educational
experience for some of you.

The implementation in OOo doesn't return explicitly a 1 value but instead 
relies on
what the libc pow() function does. The standard libc lets you do 0^0 but it 
also lets
you divide by zero without aborting . Modern IEEE 754 2008 implements three
power functions pow(), pown() and powr(), powr() being the most similar to the 
real
mathematical function.

The implementation is non intrusive: I added a wrapper in SAL that behaves like
powr() so that we don't affect other formulas that use pow() internally. So far
no one has given an example where shooting yourself in the foot by expecting
pow(0,0) to be 1 is a good thing.

I am gladly surprised that Excel does the same, but the real reason why I went
ahead and implemented a solution is to do the right thing, mathematically
speaking. Mathematical correctness is not something that IMHO pertains to
democracy.

Sure it would be nice to have an option to adjust your results for
mathematically undetermined cases like 0^0 or 0/0 but unless you are planning
to implement it don't expected such features to appear magically either.

I would be extremely disappointed to have to revert a correct fix for 
non-technical
reasons. I think I would lose any motivation to improve other functions in Calc.

Pedro.

Reply via email to