Template Function sequant::evaluate(Node const&, auto const&, F const&, CacheManager&)

Function Documentation

template<Trace EvalTrace = Trace::Default, meta::can_evaluate Node, typename F>
ResultPtr sequant::evaluate(Node const &node, auto const &layout, F const &le, CacheManager &cache)
Template Parameters:

EvalTrace – If Trace::On, trace is written to the logger’s stream. Default is to follow Trace::Default, which is itself equal to Trace::On or Trace::Off.

Parameters:
  • node – A node that can be evaluated using le as the leaf evaluator.

  • layout – The layout of the final result. Only meaningful if the result has a layout (or supports permutation) eg. a tensor.

  • le – The leaf evaluator that satisfies meta::leaf_node_evaluator<Node, F>.

  • cache – The cache for common sub-expression elimination.

Returns:

Evaluated result as ResultPtr.