RegressionSplitNode
Routes by split to either pos (true) or neg (false). The optional carryover holds aggregates that don't structurally belong to either child; the pre-split data frozen at split time, or orphans absorbed from a mixed merge. Never written by the update hot path; never read by findLeaf or predict; included by subtreeAggregate.
Constructors
RegressionSplitNode
Properties
carryover
One-shot carry-over aggregate, or null if the split holds no orphan data. Mutated only under the owning RegressionTree's split lock during merges; volatile so concurrent snapshots see a consistent reference.
neg
pos
split
Functions
findLeaf
Walk to the leaf this row resolves to.
Public per-node subtree aggregate over all observations routed through this node (leaves: the arm snapshot; splits: the exact Chan-merge of both children plus any RegressionSplitNode.carryover). Lets callers score internal nodes — e.g. a Thompson walk-down that picks a branch by its subtree's posterior — without the tree having to keep a live arm on every split node. Equivalent to a directly-accumulated internal arm: Chan's parallel merge is exact for weighted-variance aggregates.
Freeze a live VectorView tree node into an immutable, serializable snapshot. Internal split aggregates are derived from the snapshotted children so the wire format stays stable even though live splits hold no arm.