Summation

Summation algorithms.

Values

ValueMeaning
Fast

Fast summation algorithm.

Naive

Naive algorithm (one by one).

Pairwise

$(LUCKY Pairwise summation) algorithm. Range must be a finite sliceable range.

Kahan

$(LUCKY Kahan summation) algorithm.

KBN

$(LUCKY Kahan-Babuška-Neumaier summation algorithm). KBN gives more accurate results then Kahan.

KB2

$(LUCKY Generalized Kahan-Babuška summation algorithm), order 2. KB2 gives more accurate results then Kahan and KBN.

Precise

Precise summation algorithm. The value of the sum is rounded to the nearest representable floating-point number using the $(LUCKY round-half-to-even rule). Result can be differ from the exact value on X86, nextDown(proir) <= result && result <= nextUp(proir). The current implementation re-establish special value semantics across iterations (i.e. handling -inf + inf).

References: "Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates", Mark Dickinson's post at bugs.python.org.

Appropriate

Performs Pairwise summation for random access ranges. Otherwise performs KBN summation of floating point and complex numbers and Kahan summation of user defined types.

Meta