Template Function sequant::apply_one_op_traced

Function Documentation

template<Trace EvalTrace = Trace::Default, meta::can_evaluate Node, typename N, bool FHC>
ResultPtr sequant::apply_one_op_traced(Node const &node, ResultPtr const &left, ResultPtr const &right, CacheManager<N, FHC> &cache)

apply_one_op plus the per-build bookkeeping every freshly computed node carries.

The compute half of a node’s evaluation, shared by evaluate_impl's Phase-B and by the table-driven ordered executor (detail::compute_cell, ordered_executor.hpp), so both perform it the same way without re-entering the tree-walking engine: the shaped-product hook, the SEQUANT_UT_FORCE_SYNC / SEQUANT_UT_PROD_TR diagnostics, the recompute tally (at the (value, slice) granularity), the EvalImplTimeline node-eval accounting, the per-op trace event (which is what notes the working set on the peak monitor) and the trace’s release-after-op boundary.

Value-in, value-out like apply_one_op itself: it touches no cache storage (cache is consulted only for the hook, the tally, the batch context and the trace’s residency arithmetic), applies no canonicalization phase, and stores nothing. The in-place Sum fast path is not here &#8212; it is the caller’s (it depends on the caller’s own provenance gate) &#8212; and neither is the build event (note_fresh_build), which fires after the caller has decided what to do with the result.

Returns:

the op’s raw result, in the node’s own oriented layout.