CodeEntropy.levels.nodes.accumulators module¶
Initialize covariance accumulators.
This module defines a LevelDAG static node that allocates all per-frame reduction accumulators (means) and counters used by downstream frame processing.
The node owns only initialization concerns (single responsibility): - create group-id <-> index mappings - allocate force/torque covariance mean containers - allocate optional combined force-torque (FT) mean containers - allocate per-level frame counters
The structure created here is treated as the canonical storage layout for the rest of the pipeline.
- class CodeEntropy.levels.nodes.accumulators.CovarianceAccumulators(force_covariances: dict[str, Any], torque_covariances: dict[str, Any], frame_counts: dict[str, Any], forcetorque_covariances: dict[str, Any], forcetorque_counts: dict[str, Any])[source]¶
Bases:
objectContainer for covariance mean accumulators and frame counters.
- force_covariances: dict[str, Any]¶
- forcetorque_counts: dict[str, Any]¶
- forcetorque_covariances: dict[str, Any]¶
- frame_counts: dict[str, Any]¶
- torque_covariances: dict[str, Any]¶
- class CodeEntropy.levels.nodes.accumulators.GroupIndex(group_id_to_index: dict[int, int], index_to_group_id: list[int])[source]¶
Bases:
objectBidirectional mapping between group ids and contiguous indices.
- group_id_to_index: dict[int, int]¶
- index_to_group_id: list[int]¶
- class CodeEntropy.levels.nodes.accumulators.InitCovarianceAccumulatorsNode[source]¶
Bases:
objectAllocate accumulators and counters for per-frame reductions.
Produces the following keys in shared_data:
- Canonical mean accumulators:
force_covariances: {“ua”: dict, “res”: list, “poly”: list}
torque_covariances: {“ua”: dict, “res”: list, “poly”: list}
forcetorque_covariances: {“res”: list, “poly”: list} (6N x 6N means)
- Counters:
frame_counts: {“ua”: dict, “res”: np.ndarray[int], “poly”: np.ndarray[int]}
forcetorque_counts: {“res”: np.ndarray[int], “poly”: np.ndarray[int]}
- Group index mapping:
group_id_to_index: {group_id: index}
index_to_group_id: [group_id_by_index]
- Backwards-compatible aliases (kept for older consumers):
force_torque_stats -> forcetorque_covariances
force_torque_counts -> forcetorque_counts
- run(shared_data: dict[str, Any]) dict[str, Any][source]¶
Initialize and attach all accumulator structures into shared_data.
- Parameters:
shared_data – Shared pipeline dictionary. Must contain “groups”.
- Returns:
A dict of keys written into shared_data.
- Raises:
KeyError – If “groups” is missing from shared_data.