numpy 1.22.4 Pypi GitHub Homepage
Other Docs
ParametersReturns
_parse_possible_contraction(positions, input_sets, output_set, idx_dict, memory_limit, path_cost, naive_cost)

Parameters

positions : tuple of int

The locations of the proposed tensors to contract.

input_sets : list of sets

The indices found on each tensors.

output_set : set

The output indices of the expression.

idx_dict : dict

Mapping of each index to its size.

memory_limit : int

The total allowed size for an intermediary tensor.

path_cost : int

The contraction cost so far.

naive_cost : int

The cost of the unoptimized expression.

Returns

cost : (int, int)

A tuple containing the size of any indices removed, and the flop cost.

positions : tuple of int

The locations of the proposed tensors to contract.

new_input_sets : list of sets

The resulting new list of indices if this proposed contraction is performed.

Compute the cost (removed size + flops) and resultant indices for performing the contraction specified by positions .

Examples

See :

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


GitHub : /numpy/core/einsumfunc.py#215
type: <class 'function'>
Commit: