Class ResultDryRunNested

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class ResultDryRunNested : public sequant::Result

CSV/PNO tensor-of-tensor zero-data token.

Like ResultDryRun, but additionally exposes an outer()/inner() split of its (canon-order) index list &#8212; inner = the proto-indexed (composite) legs, e.g. a CSV amplitude’s PNO domain leg a_1<i_1,i_2>; outer = every other (plain) leg, e.g. the PAO index mu~_1. The split is purely an observability/testing convenience: size_in_bytes()'s arithmetic is identical to ResultDryRun's (CostModel::memsize already routes any index list containing a proto-indexed entry through the moment-aware inner_pow path internally, via tot_indices/inner_aware_volume &#8212;

content-driven, not type-driven), so tests that want to confirm “this used

the k-th moment, not extent^k” can inspect

inner() directly.

Position semantics for slice_mode()/: the mode argument the runtime passes is always resolved against the full canon-order list (an optional trailing constructor argument, defaulting to outer ++ inner when the caller does not need position accuracy, e.g. a hand-built test instance); the DryRunLeafEvaluator (eval_expr.hpp) always supplies the leaf’s true canon_indices() order there, since only leaf-constructed instances are ever sliced by the runtime (slice_mode() is invoked only inside the batched evaluator’s leaf-wrapping closure, never on a prod()/sum()-produced intermediate).

Public Types

using id_t = size_t

Public Functions

inline ResultDryRunNested(container::svector<Index> outer, container::svector<Index> inner, std::shared_ptr<CostModel const> cm, ExtentOverrides overrides = {}, container::svector<Index> canon_order = {}, ExtentOverrides lobounds = {})
inline ExtentOverrides const &lobounds() const noexcept
inline container::svector<Index> const &outer() const noexcept
inline container::svector<Index> const &inner() const noexcept
inline container::svector<Index> const &indices() const noexcept
inline ExtentOverrides const &overrides() const noexcept
inline std::pair<std::size_t, std::size_t> assembled_range(std::size_t mode) const

The contiguous [lo, hi) element range of outer mode mode assembled so far by write_into_slice() (empty {0, 0} if nothing written).