codecov-io: # [Codecov](https://codecov.io/gh/dgasmith/opt_einsum/pull/72?src=pr&el=h1) Report
> Merging [#72](https://codecov.io/gh/dgasmith/opt_einsum/pull/72?src=pr&el=desc) into [master](https://codecov.io/gh/dgasmith/opt_einsum/commit/7daf290b236d3f464845152b25ee58509410d976?src=pr&el=desc) will **increase** coverage by `0.18%`.
> The diff coverage is `100%`.


dgasmith: This pull request **introduces 1 alert** when merging aa47e5b549d7ec464bf975db3815f0444f84caf4 into 7daf290b236d3f464845152b25ee58509410d976 - [view on LGTM.com](https://lgtm.com/projects/g/dgasmith/opt_einsum/rev/pr-eed860d86e7d7251d2af7be5199ad3c1bf274446)

**new alerts:**

* 1 for Syntax error

---

*Comment posted by [LGTM.com](https://lgtm.com)*
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 5d0c74c..612c602 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -123,6 +123,7 @@ Table of Contents
    :caption: Getting Started
 
    install
+   input_format
    backends
    reusing_paths
    sharing_intermediates
@@ -147,6 +148,5 @@ Table of Contents
    :maxdepth: 1
    :caption: Help & Reference:
 
-   input_format
    api
    changelog
diff --git a/docs/source/input_format.rst b/docs/source/input_format.rst
index fa7b1e7..937d744 100644
--- a/docs/source/input_format.rst
+++ b/docs/source/input_format.rst
@@ -2,13 +2,72 @@
 Input Format
 ============
 
-The ``opt_einsum`` package is a drop-in replacement for the ``np.einsum`` function
-and supports all input formats that ``np.einsum`` supports.
+The ``opt_einsum`` package is a drop-in replacement for the ``np.einsum``
+function and supports all input formats that ``np.einsum`` supports. There are
+two styles of input accepted, a basic introduction to which can be found in the
+documentation for :func:`numpy.einsum`. In addition to this, ``opt_einsum``
+extends the allowed index labels to unicode or arbitrary hashable, comparable
+objects in order to handle large contractions with many indices.
 
-TBA: "Normal" inputs
 
-In ``opt_einsum``, you can also put anything hashable and comparable such as `str` in the subscript list.
-Note ``np.einsum`` currently does not support this syntax. A simple example of the syntax is:
+'Equation' Input
+----------------
+
+As with :func:`numpy.einsum`, here you specify an equation as a string,
+followed by the array arguments:
+
+.. code:: python
+
+    >>> eq = 'ijk,jkl->li'
+    >>> x, y = np.random.rand(2, 3, 4), np.random.rand(3, 4, 5)
+    >>> z = oe.contract(eq, x, y)
+    >>> z.shape
+    (5, 2)
+
+However, in addition to the standard alphabet, ``opt_einsum`` also supports
+unicode characters:
+
+.. code:: python
+
+    >>> eq = "αβγ,βγδ->δα"
+    >>> oe.contract(eq, x, y).shape
+    (5, 2)
+
+This enables access to thousands of possible index labels. One way to access
+these programmatically is through the function
+:func:`~opt_einsum.parser.get_symbol`:
+
+    >>> oe.get_symbol(805)
+    'α'
+
+which maps an ``int`` to a unicode characater. Note that as with
+:func:`numpy.einsum` if the output is not specified with ``->`` it will default
+to the sorted order of all indices appearing once:
+
+.. code:: python
+
+    >>> eq = "αβγ,βγδ"  # "->αδ" is implicit
+    >>> oe.contract(eq, x, y).shape
+    (2, 5)
+
+
+'Interleaved' Input
+-------------------
+
+The other input format is to 'interleave' the array arguments with their index
+labels ('subscripts') in pairs, optionally specifying the output indices as a
+final argument. As with :func:`numpy.einsum`, integers are allowed as these
+index labels:
+
+.. code:: python
+
+    >>> oe.contract(x, [1, 2, 3], y, [2, 3, 4], [4, 1]).shape
+    >>> (5, 2)
+
+with the default output order again specified by the sorted order of indices
+appearing once. However, unlike :func:`numpy.einsum`, in ``opt_einsum`` you can
+also put *anything* hashable and comparable such as `str` in the subscript list.
+A simple example of this syntax is:
 
 .. code:: python
 
@@ -17,8 +76,7 @@ Note ``np.einsum`` currently does not support this syntax. A simple example of t
     array([[4.]])
 
 The subscripts need to be hashable so that ``opt_einsum`` can efficiently process them, and
-they should also be comparable because in this way we can keep a consistent behavior between integer 
-subscripts and other types of subscripts. For example:
+they should also be comparable so as to allow a default sorted output. For example:
 
 .. code:: python
 
diff --git a/opt_einsum/contract.py b/opt_einsum/contract.py
index 4a42176..6d4f26b 100644
--- a/opt_einsum/contract.py
+++ b/opt_einsum/contract.py
@@ -805,6 +805,9 @@ def contract_expression(subscripts, *shapes, **kwargs):
             raise ValueError("'{}' should only be specified when calling a "
                              "`ContractExpression`, not when building it.".format(arg))
 
+    if not isinstance(subscripts, compat.strings):
+        subscripts, shapes = parser.convert_interleaved_input((subscripts,) + shapes)
+
     kwargs['_gen_expression'] = True
 
     # build dict of constant indices mapped to arrays
diff --git a/opt_einsum/parser.py b/opt_einsum/parser.py
index 8c93213..bb15846 100644
--- a/opt_einsum/parser.py
+++ b/opt_einsum/parser.py
@@ -208,6 +208,43 @@ def convert_subscripts(old_sub, symbol_map):
     return new_sub
 
 
+def convert_interleaved_input(operands):
+    """Convert 'interleaved' input to standard einsum input.
+    """
+    tmp_operands = list(operands)
+    operand_list = []
+    subscript_list = []
+    for p in range(len(operands) // 2):
+        operand_list.append(tmp_operands.pop(0))
+        subscript_list.append(tmp_operands.pop(0))
+
+    output_list = tmp_operands[-1] if len(tmp_operands) else None
+    operands = [possibly_convert_to_numpy(x) for x in operand_list]
+
+    # build a map from user symbols to single-character symbols based on `get_symbol`
+    # The map retains the intrinsic order of user symbols
+    try:
+        # collect all user symbols
+        symbol_set = set(itertools.chain.from_iterable(subscript_list))
+
+        # remove Ellipsis because it can not be compared with other objects
+        symbol_set.discard(Ellipsis)
+
+        # build the map based on sorted user symbols, retaining the order we lost in the `set`
+        symbol_map = {symbol: get_symbol(idx) for idx, symbol in enumerate(sorted(symbol_set))}
+
+    except TypeError:  # unhashable or uncomparable object
+        raise TypeError("For this input type lists must contain either Ellipsis "
+                        "or hashable and comparable object (e.g. int, str).")
+
+    subscripts = ','.join(convert_subscripts(sub, symbol_map) for sub in subscript_list)
+    if output_list is not None:
+        subscripts += "->"
+        subscripts += convert_subscripts(output_list, symbol_map)
+
+    return subscripts, operands
+
+
 def parse_einsum_input(operands):
     """
     A reproduction of einsum c side einsum parsing in python.
@@ -242,36 +279,7 @@ def parse_einsum_input(operands):
         operands = [possibly_convert_to_numpy(x) for x in operands[1:]]
 
     else:
-        tmp_operands = list(operands)
-        operand_list = []
-        subscript_list = []
-        for p in range(len(operands) // 2):
-            operand_list.append(tmp_operands.pop(0))
-            subscript_list.append(tmp_operands.pop(0))
-
-        output_list = tmp_operands[-1] if len(tmp_operands) else None
-        operands = [possibly_convert_to_numpy(x) for x in operand_list]
-
-        # build a map from user symbols to single-character symbols based on `get_symbol`
-        # The map retains the intrinsic order of user symbols
-        try:
-            # collect all user symbols
-            symbol_set = set(itertools.chain.from_iterable(subscript_list))
-        except TypeError:  # unhashable object
-            raise TypeError("For this input type lists must contain either Ellipsis or hashable and comparable object (e.g. int, str)")
-        # remove Ellipsis because it can not be compared with other objects
-        if Ellipsis in symbol_set:
-            symbol_set.remove(Ellipsis)
-        try:
-            # build the map based on sorted user symbols, retaining the order we lost in the `set`
-            symbol_map = {symbol: get_symbol(idx) for idx, symbol in enumerate(sorted(symbol_set))}
-        except TypeError:  # uncomparable object
-            raise TypeError("For this input type lists must contain either Ellipsis or hashable and comparable object (e.g. int, str)")
-
-        subscripts = ','.join(convert_subscripts(sub, symbol_map) for sub in subscript_list)
-        if output_list is not None:
-            subscripts += "->"
-            subscripts += convert_subscripts(output_list, symbol_map)
+        subscripts, operands = convert_interleaved_input(operands)
 
     # Check for proper "->"
     if ("-" in subscripts) or (">" in subscripts):

let contract_expression use interleaved input
Currently, ``contract_expression`` only accepts the 'equation' style input. This is an easy fix that I will do shortly. As part of that I can flesh out the docs on input (#70), unless you are already planning that @dgasmith ?
diff --git a/opt_einsum/tests/test_contract.py b/opt_einsum/tests/test_contract.py
index dbbc39e..3371876 100644
--- a/opt_einsum/tests/test_contract.py
+++ b/opt_einsum/tests/test_contract.py
@@ -194,6 +194,15 @@ def test_contract_expressions(string, optimize, use_blas, out_spec):
     assert string in expr.__str__()
 
 
+def test_contract_expression_interleaved_input():
+    x, y, z = (np.random.randn(2, 2) for _ in 'xyz')
+    expected = np.einsum(x, [0, 1], y, [1, 2], z, [2, 3], [3, 0])
+    xshp, yshp, zshp = ((2, 2) for _ in 'xyz')
+    expr = contract_expression(xshp, [0, 1], yshp, [1, 2], zshp, [2, 3], [3, 0])
+    out = expr(x, y, z)
+    assert np.allclose(out, expected)
+
+
 @pytest.mark.parametrize("string,constants", [
     ('hbc,bdef,cdkj,ji,ikeh,lfo', [1, 2, 3, 4]),
     ('bdef,cdkj,ji,ikeh,hbc,lfo', [0, 1, 2, 3]),

pip install -e .[dev]
parse_log_pytest
pytest
pytest pytest-cov
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
coverage==7.8.0
exceptiongroup @ file:///croot/exceptiongroup_1706031385326/work
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
numpy==2.0.2
-e git+https://github.com/dgasmith/opt_einsum.git@7daf290b236d3f464845152b25ee58509410d976#egg=opt_einsum
packaging @ file:///croot/packaging_1734472117206/work
pluggy @ file:///croot/pluggy_1733169602837/work
pytest @ file:///croot/pytest_1738938843180/work
pytest-cov==6.0.0
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work

name: opt_einsum
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - exceptiongroup=1.2.0=py39h06a4308_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pip=25.0=py39h06a4308_0
  - pluggy=1.5.0=py39h06a4308_0
  - pytest=8.3.4=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py39h06a4308_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - coverage==7.8.0
      - numpy==2.0.2
      - pytest-cov==6.0.0
prefix: /opt/conda/envs/opt_einsum

opt_einsum/tests/test_contract.py::test_contract_expression_interleaved_input
opt_einsum/tests/test_contract.py::test_compare[greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare[greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare[greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare[greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare[greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare[greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare[greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare[greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare[greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare[greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare[greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare[greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare[greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare[greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare[greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare[greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare[greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare[greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare[greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare[greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare[greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare[greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare[greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare[greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare[greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare[greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare[greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare[greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare[greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare[greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare[greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare[greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare[greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare[greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare[greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare[optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare[optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare[optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare[optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare[optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare[optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare[optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare[optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare[optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare[optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare[optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare[optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare[optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare[optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare[optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_compare[optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare[optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare[optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare[optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare[optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ba] opt_einsum/tests/test_contract.py::test_compare[optimal-abc,abc] opt_einsum/tests/test_contract.py::test_compare[optimal-abc,bac] opt_einsum/tests/test_contract.py::test_compare[optimal-abc,cba] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,bc] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,cb] opt_einsum/tests/test_contract.py::test_compare[optimal-ba,bc] opt_einsum/tests/test_contract.py::test_compare[optimal-ba,cb] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare[optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare[optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare[optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare[optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare[optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare[optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare[optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare[optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare[optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare[optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare[eager-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare[eager-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare[eager-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare[eager-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[eager-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare[eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare[eager-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare[eager-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare[eager-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare[eager-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare[eager-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare[eager-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare[eager-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare[eager-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare[eager-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare[eager-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare[eager-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare[eager-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare[eager-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare[eager-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare[eager-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare[eager-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare[eager-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare[eager-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare[eager-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare[eager-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare[eager-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare[eager-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare[eager-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare[eager-abcd,ad] opt_einsum/tests/test_contract.py::test_compare[eager-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare[eager-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare[eager-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare[eager-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare[eager-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare[eager-ab,ab] opt_einsum/tests/test_contract.py::test_compare[eager-ab,ba] opt_einsum/tests/test_contract.py::test_compare[eager-abc,abc] opt_einsum/tests/test_contract.py::test_compare[eager-abc,bac] opt_einsum/tests/test_contract.py::test_compare[eager-abc,cba] opt_einsum/tests/test_contract.py::test_compare[eager-ab,bc] opt_einsum/tests/test_contract.py::test_compare[eager-ab,cb] opt_einsum/tests/test_contract.py::test_compare[eager-ba,bc] opt_einsum/tests/test_contract.py::test_compare[eager-ba,cb] opt_einsum/tests/test_contract.py::test_compare[eager-abcd,cd] opt_einsum/tests/test_contract.py::test_compare[eager-abcd,ab] opt_einsum/tests/test_contract.py::test_compare[eager-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare[eager-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare[eager-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare[eager-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare[eager-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[eager-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[eager-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[eager-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare[eager-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare[eager-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare[eager-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare[eager-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare[eager-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare[eager-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare[eager-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare[eager-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare[eager-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare[eager-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare[eager-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_drop_in_replacement[a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_drop_in_replacement[a,b,ab->ab] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_drop_in_replacement[acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_drop_in_replacement[acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_drop_in_replacement[cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_drop_in_replacement[chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,c->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,c->c] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,cd,de->be] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_drop_in_replacement[dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_drop_in_replacement[fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,ad] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_drop_in_replacement[baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_drop_in_replacement[fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ba] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abc,abc] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abc,bac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abc,cba] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,bc] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,cb] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ba,bc] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ba,cb] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,cd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,ab] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,cdef] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,efdc] opt_einsum/tests/test_contract.py::test_drop_in_replacement[aab,bc->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,bcc->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[aab,bcc->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[baa,bcc->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[aab,ccb->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bb,ff,be->e] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_drop_in_replacement[adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_drop_in_replacement[dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_drop_in_replacement[aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ba] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abc,abc] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abc,bac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abc,cba] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,bc] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,cb] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ba,bc] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ba,cb] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_greek[eager-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_greek[eager-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[eager-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_greek[eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_greek[eager-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_greek[eager-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_greek[eager-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_greek[eager-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_greek[eager-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_greek[eager-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_greek[eager-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[eager-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[eager-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_greek[eager-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_greek[eager-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_greek[eager-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_greek[eager-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_greek[eager-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_greek[eager-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_greek[eager-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,ab] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,ba] opt_einsum/tests/test_contract.py::test_compare_greek[eager-abc,abc] opt_einsum/tests/test_contract.py::test_compare_greek[eager-abc,bac] opt_einsum/tests/test_contract.py::test_compare_greek[eager-abc,cba] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,bc] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,cb] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ba,bc] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ba,cb] opt_einsum/tests/test_contract.py::test_compare_greek[eager-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_greek[eager-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_greek[eager-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_greek[eager-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_greek[eager-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_greek[eager-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[eager-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[eager-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[eager-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_greek[eager-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_greek[eager-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_greek[eager-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[eager-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_greek[eager-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_greek[eager-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[eager-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_greek[eager-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_greek[eager-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_greek[eager-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_greek[eager-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas[eager-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas[eager-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[eager-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas[eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas[eager-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas[eager-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas[eager-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas[eager-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas[eager-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas[eager-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas[eager-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[eager-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[eager-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas[eager-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas[eager-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas[eager-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas[eager-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas[eager-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas[eager-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas[eager-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas[eager-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas[eager-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas[eager-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas[eager-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas[eager-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas[eager-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas[eager-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas[eager-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas[eager-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[eager-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[eager-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[eager-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas[eager-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas[eager-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas[eager-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[eager-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas[eager-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas[eager-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[eager-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas[eager-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas[eager-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas[eager-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas[eager-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas_greek[eager-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_some_non_alphabet_maintains_order opt_einsum/tests/test_contract.py::test_printing opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-eager-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-eager-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-eager-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-eager-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[hbc,bdef,cdkj,ji,ikeh,lfo-constants0] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[bdef,cdkj,ji,ikeh,hbc,lfo-constants1] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[hbc,bdef,cdkj,ji,ikeh,lfo-constants2] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[hbc,bdef,cdkj,ji,ikeh,lfo-constants3] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[ijab,acd,bce,df,ef->ji-constants4] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[ab,cd,ad,cb-constants5] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[ab,bc,cd-constants6] opt_einsum/tests/test_contract.py::test_rand_equation[0-3-3-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[0-3-3-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[0-3-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[0-3-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[0-4-3-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[0-4-3-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[0-4-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[0-4-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[2-3-3-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[2-3-3-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[2-3-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[2-3-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[2-4-3-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[2-4-3-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[2-4-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[2-4-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[4-3-3-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[4-3-3-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[4-3-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[4-3-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[4-4-3-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[4-4-3-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[4-4-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[4-4-5-optimal] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[a,b,ab->ab] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,c->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,c->c] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,cd,de->be] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,ad] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ba] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abc,abc] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abc,bac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abc,cba] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,bc] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,cb] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ba,bc] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ba,cb] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,cd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,ab] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,cdef] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,efdc] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[aab,bc->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,bcc->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[aab,bcc->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[baa,bcc->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[aab,ccb->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bb,ff,be->e] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[aef,fbc,dca->bde]
opt_einsum/contract.py opt_einsum/parser.py docs/source/input_format.rst docs/source/index.rst
opt_einsum/contract.py opt_einsum/parser.py docs/source/input_format.rst docs/source/index.rst