tensornetwork.contractors.custom

tensornetwork.contractors.custom(nodes: Iterable[tensornetwork.network_components.AbstractNode], optimizer: Any, output_edge_order: Sequence[tensornetwork.network_components.Edge] = None, memory_limit: Optional[int] = None, ignore_edge_order: bool = False) → tensornetwork.network_components.AbstractNode

Uses a custom path optimizer created by the user to calculate paths.

The custom path optimizer should inherit opt_einsum’s PathOptimizer. See custom paths.

Parameters:
  • nodes – an iterable of Nodes
  • output_edge_order – An optional list of edges. Edges of the final node in nodes_set are reordered into output_edge_order; if final node has more than one edge, output_edge_order` must be provided.
  • optimizer – A custom opt_einsum.PathOptimizer object.
  • memory_limit – Maximum number of elements in an array during contractions.
  • ignore_edge_order – An option to ignore the output edge order.
Returns:

Final node after full contraction.