On Saturday, 18 October 2014 at 04:35:07 UTC, Walter Bright wrote:
1. Compiled static languages still have a long way to go with expressiveness.

D has closed that gap quite a bit.

Better than C++, but C++ is gaining ground with C++14.

Or use the much-hated much-misunderstood 80 bit reals!

Yikes! Those are legacy and only help a little bit.

In any case, just insert a .sort operation. It's still generic.

"generic"! But a .sort isn't enough since the accumulator leads to lost precision. To improve that you have to add pairs that are close in exponent, and keep iterating, but still some losses.

To do it right you could create 2048 accumulators (one for each exponent) and add the mantissas as integers. Not at all generic!

80 bit reals can compensate for a lot of loss-of-precision issues.

Larger mantissa can help a little bit, but only a little bit. You would need a 2000 bits mantissa to do it with a large dataset with a wide range of values.

Doing perfect calculations with rational numbers and compare it to floating point is a nice exercise.

Reply via email to