Class EvalExprDryRun

Inheritance Relationships

Base Type

Class Documentation

class EvalExprDryRun : public sequant::EvalExpr

Extends EvalExpr with an annot() method so DryRun eval nodes can be evaluated.

Unlike EvalExprTAPP (opaque int64_t hashes of index labels — see backends/tapp/eval_expr.hpp), DryRun’s annotation is the plain literal (canon-order) index list itself: Result::prod/sum/permute need each index’s actual space/extent (via CostModel), not just its identity, to compute a modeled size.

Public Types

using annot_t = dryrun::annot_t

Public Functions

template<typename ...Args, typename = std::enable_if_t<std::is_constructible_v<EvalExpr, Args...>>>
inline explicit EvalExprDryRun(Args&&... args)
inline annot_t const &annot() const noexcept
Returns:

Annotation (container::svector<Index>) for DryRun tensors.