accumulate

accumulate

quark._summation

Stateful accumulator classes for aggregation with pluggable summation strategies.

Each Accumulator instance manages: - Internal sum/count state arrays - Accumulation of values via add() method - Finalization (computing mean, reshaping, storing results as attributes)

Classes

Name Description
KahanAccumulator Kahan (compensated) accumulator for reduced floating-point error.
SimpleAccumulator Simple accumulator using np.bincount.

KahanAccumulator

accumulate.KahanAccumulator(shape, sum_dtype=np.float64)

Kahan (compensated) accumulator for reduced floating-point error.

Tracks error compensation terms to improve numerical accuracy using JIT-compiled numba code for performance. Significantly reduces floating-point rounding errors compared to SimpleAccumulator.

Requires numba to be installed. Will raise ImportError if not available.

Methods

Name Description
add Accumulate using Kahan compensated summation.
add
accumulate.KahanAccumulator.add(indices, values)

Accumulate using Kahan compensated summation.

Applies JIT-compiled Kahan algorithm directly to each value for numerical precision.

SimpleAccumulator

accumulate.SimpleAccumulator(shape, sum_dtype=np.float64)

Simple accumulator using np.bincount.

Fast and straightforward but subject to floating-point error accumulation. Suitable for most use cases where numerical precision is not critical.

Methods

Name Description
add Accumulate using direct bincount summation.
add
accumulate.SimpleAccumulator.add(indices, values)

Accumulate using direct bincount summation.