Additional Math functions
waldemar at google.com
Sat Oct 3 00:18:56 UTC 2015
On 10/02/2015 16:37, Alexander Jones wrote:
> Interesting. I still feel that these algorithms should be given their proper names in a math library, because I would feel quite troubled if `Math.sum(a, b, c) !== a + b + c`. Maybe I'm alone in this view, though. What do other languages do?
> On Friday, 2 October 2015, Waldemar Horwat <waldemar at google.com <mailto:waldemar at google.com>> wrote:
> On 10/02/2015 13:30, Alexander Jones wrote:
> I really don't think I'd want a basic `Math.sum(a, b, c)` meaning anything other than `a + b + c`, i.e. `(a + b) + c`. We should all just come to terms with the fact that floating point addition is not associative.
> Or is there really some simple, O(n) algorithm to do a better (more "careful") job?
> Kahan summation is simple and O(n).
> There exist efficient algorithms to get the exact sum as well. See, for example, http://www.ti3.tuhh.de/paper/rump/RuOgOi07I.pdf
In the cases where the algorithms produce something other than the best practical results, giving them descriptive names would be useful. However, compound naming can then get out of hand if you also include functions such as average, standard deviation, etc., which include computing the sum as a subroutine.
More information about the es-discuss