Benoît Jacob wrote: > On Monday 17 November 2008 08:36:47 Andrew wrote: > >> 2. the code uses a recursive implementation. Yuck. See for example >> http://stackoverflow.com/questions/231250/how-would-you-write-a-non-recursi >> ve- algorithm-to-calculate-factorials >> > > Not that it is going to help much making a great KOffice 2.0 release, but just > FWIW, i'd like to mention that none of the approaches above touch the point > that, for any given degree of precision, computing n! has O(1) complexity and > not O(n) as all the approaches in your link have (they all do basically the > same naive approach of multiplying integers togethers). > Yes... except for the ones that use look-up-tables :-) > Start from the formula n! = Gamma(n+1) where Gamma is the Euler Gamma function > (check wikipedia or mathworld). So all you need is asymptotic estimates of > Gamma(x) as x tends to +infinity. A rough starting point is Stirling's > formula which tells you that > > n! is equivalent to sqrt(2*pi*n) * (n/e)^n > > http://en.wikipedia.org/wiki/Stirling's_approximation > http://en.wikipedia.org/wiki/Factorial#Computation > Good point! And also I would not bother implementing it for the reason you say. I guess I was just surprised to find the implementation in kspread was recursive. Regards, _______________________________________________ koffice-devel mailing list koffice-devel@kde.org https://mail.kde.org/mailman/listinfo/koffice-devel