For an op whose kernel returns an array — the financial kernels are
array-out (rollingValues, emaValues) — this confines the boxing to
one pass, instead of the boxed array being retained as the node value.
NaN is treated as missing, matching what a study's warm-up
means, and never packed as a defined cell: core's reducer non-finite
policy requires that a column flagged allFinite contain no NaN,
and a wrongly-set flag makes reducers take an unguarded path and
silently return a wrong result. allFinite is therefore computed by
inspecting every defined cell, not assumed.
Packs loose values into a
Float64Column.For an op whose kernel returns an array — the financial kernels are array-out (
rollingValues,emaValues) — this confines the boxing to one pass, instead of the boxed array being retained as the node value.NaNis treated as missing, matching what a study's warm-up means, and never packed as a defined cell: core's reducer non-finite policy requires that a column flaggedallFinitecontain noNaN, and a wrongly-set flag makes reducers take an unguarded path and silently return a wrong result.allFiniteis therefore computed by inspecting every defined cell, not assumed.