Project

General

Profile

Actions

Feature #12217

closed

Introducing Enumerable#sum for precision compensated summation and revert r54237

Added by mrkn (Kenta Murata) over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Target version:
-
[ruby-core:74569]

Description

In this issue I propose to introduce Enumerable#sum for precision compensated summation of an array of floating point numbers.

In r54237, I've changed Enumerable#inject to support precision compensated summation for summing up floating point numbers.
But I noticed that this commit broke the equality of ary.inject(:+) == ary.inject {|a, x| a + x }.
I think this equality is important property of inject method, so I don't want to break it.

And because precision compensated algorithms are complicated, I think they are provided in the standard library, especially simple summation.


Files

inject-plus.txt (1.21 MB) inject-plus.txt akr (Akira Tanaka), 03/25/2016 12:55 PM

Related issues

Related to Ruby master - Feature #10298: Array#float_sum (like math.fsum of Python)RejectedActions
Related to Ruby master - Feature #12222: Introducing basic statistics methods for Enumerable (and optimized implementation for Array)Closedakr (Akira Tanaka)Actions
Actions

Also available in: Atom PDF