On Fri, 3 Sep 2021 04:43:02 +1000, Chris Angelico <ros...@gmail.com> declaimed the following:
> >The naive summation algorithm used by sum() is compatible with a >variety of different data types - even lists, although it's documented >as being intended for numbers - but if you know for sure that you're >working with floats, there's a more accurate algorithm available to >you. > >>>> math.fsum([7.23, 8.41, 6.15, 2.31, 7.73, 7.77]) >39.6 >>>> math.fsum([8.41, 6.15, 2.31, 7.73, 7.77, 7.23]) >39.6 > >It seeks to minimize loss to repeated rounding and is, I believe, >independent of data order. > Most likely it sorts the data so the smallest values get summed first, and works its way up to the larger values. That way it minimizes the losses that occur when denormalizing a value (to set the exponent equal to that of the next larger value). -- Wulfraed Dennis Lee Bieber AF6VN wlfr...@ix.netcom.com http://wlfraed.microdiversity.freeddns.org/ -- https://mail.python.org/mailman/listinfo/python-list