Additional Math functions

Isiah Meadows isiahmeadows at
Mon Oct 5 11:06:22 UTC 2015

Am I the only one here wondering if at least most of this belongs in a
separate library, rather than JS core?

1. Most everyday programmers would be okay with this. 100% accuracy
isn't a requirement, but speed often is.

Math.sum = (...xs) => xs.reduce((a, b) => a + b, 0);
Math.mean = (...xs) => Math.sum(...xs) / xs.length;
// etc...

2. Most scientific programmers need accuracy to the finest point.
Speed isn't usually of much priority beyond just the big-O complexity,
but accuracy is.

I see two extremely different use cases here. Even a C implementation
may not be able to satisfy both worlds. In tight loops, I will still
see this, even in C++:

template<typename T>
static inline T sum(T* entries, int len) {
  T sum = 0;
  while (len) sum += entries[--len];
  return sum;

We all know that it's subject to inaccuracy, but it's still useful in
certain circumstances.

Does this belong in a library, not the spec itself?

On Sun, Oct 4, 2015 at 3:40 PM, Rick Waldron <waldron.rick at> wrote:
> On Thu, Oct 1, 2015 at 6:52 PM Eli Perelman <eli at> wrote:
>> Reviving this thread, doing any type of simple statistics is more verbose
>> than it probably needs to be as calculating sums, averages, etc. makes most
>> resort to Array reduction. I understand the need for methods such as
>> `Math.hypot(...values)`, but for ECMAScript to evolve to be useful in
>> statistics programming without needing to resort to R would definitely also
>> be a nice-to-have. I'm sure there are many statistical functions you *could*
>> add, but at a bare minimum, it would be useful:
>> Math.sum(...values) or Math.summation(...values)
>> Math.mean(...values) // Spelling out mean here is succinct while still
>> intentional, instead of .avg
>> Math.variance(...values)
>> Math.stddev(...values)
>> Obviously some of these can be computed from the results of others, but I
>> think the convenience and intent of the methods, not to mention their wide
>> usefulness outweigh the concern of Math bloat. Thoughts?
>> P.S. Definitely not against even more core stats methods, but have to
>> start somewhere. :)
> Can you write up some preliminary proposal specifications? Here are some
> useful resource/references to get started with proposal/spec authoring:
> -
> -
> -
> -
> Thanks!
> Rick
>> Eli Perelman
>> Mozilla
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at
> _______________________________________________
> es-discuss mailing list
> es-discuss at

Isiah Meadows

More information about the es-discuss mailing list