[Numpy-discussion] please change mean to use dtype=float
tim.hochberg at ieee.org
Fri Sep 22 14:18:07 CDT 2006
Charles R Harris wrote:
> On 9/22/06, *Tim Hochberg* <tim.hochberg at ieee.org
> <mailto:tim.hochberg at ieee.org>> wrote:
> It sounds like there is some consensus to do something to improve the
> precision after 1.0 comes out. I don't think the details are entirely
> nailed down, but it sounds like some combination of using Kahan
> summation and increasing the minimum precision of the accumulator is
> likely for sum, mean, var and std.
> I would go with double as the default except when the base precision
> is greater. Higher precisions should be available as a check, i.e., if
> the results look funny use Kahan or extended to see if roundoff is a
> problem. I think Kahan should be available because it adds precision
> to *any* base precision, even extended or quad, so there is always
> something to check against. But I don't think Kahan should be the
> default because of the speed hit.
Note that add.reduce will be available for doing simple-fast-reductions,
so I consider some speed hit as acceptable. I'll be interested to see
what the actual speed difference between Kahan and straight summation
actually are. It may also be possible to unroll the core loop cleverly
so that multiple ops can be scheduled on the FPU in parallel. It doesn't
look like naive unrolling will work since each iteration depends on the
values of the previous one. However, it probably doesn't matter much
where the low order bits get added back in, so there's some flexibility
in how the loop gets unrolled.
PS. Sorry about the untrimmed posts.
More information about the Numpy-discussion