| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
DataFrame.Operations.AggregateScatter
Description
Execute a recognised aggregation plan (AggPlan) through the vectorized
scatter kernel, producing one result column (length nGroups, canonical group
order). The scatter reductions live in AggKernel (sequential)
and AggKernelPar (parallel by disjoint group range); this
module handles the compound max - min combine and the holistic grouped median.
A plan only reaches here once planAgg verified the value columns are clean
unboxed Int/Double, so the error branches are unreachable.
Every reduction takes the Round-5 grouping layout (valueIndices, offsets) so
the parallel kernel can split the group-id range across capabilities with no
cross-worker merge. Each group's rows stay in original-row order within one
worker's range, so results are byte-identical to the sequential path at any -N.
Synopsis
- runPlan :: GroupedDataFrame -> Vector Int -> Int -> AggPlan -> Column
- runMomentPlan :: GroupedDataFrame -> Int -> MomentPlan -> Maybe [(Text, Column)]
Documentation
runMomentPlan :: GroupedDataFrame -> Int -> MomentPlan -> Maybe [(Text, Column)] Source #
Run a recognised moment (Q9 regression) plan as one fused scatter over the
two base columns, returning each output name bound to its moment field. The six
sufficient statistics (count, Sx, Sy, Sxx, Syy, Sxy) come out of a single pass,
replacing the three derive passes and six independent scatters of the
per-expression path. Byte-identical to the sequential kernel at any -N.