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.