class opt_einsum.contract.ContractExpression(contraction, contraction_list, constants_dict, **einsum_kwargs)[source]

Helper class for storing an explicit contraction_list which can then be repeatedly called solely with the array arguments.

__init__(contraction, contraction_list, constants_dict, **einsum_kwargs)[source]

Initialize self. See help(type(self)) for accurate signature.


__call__(*arrays, **kwargs)

Evaluate this expression with a set of arrays.

__delattr__(name, /)

Implement delattr(self, name).


Default dir() implementation.

__eq__(value, /)

Return self==value.

__format__(format_spec, /)

Default object formatter.

__ge__(value, /)

Return self>=value.

__getattribute__(name, /)

Return getattr(self, name).

__gt__(value, /)

Return self>value.


Return hash(self).

__init__(contraction, contraction_list, …)

Initialize self.


This method is called when a class is subclassed.

__le__(value, /)

Return self<=value.

__lt__(value, /)

Return self<value.

__ne__(value, /)

Return self!=value.


Create and return a new object.


Helper for pickle.

__reduce_ex__(protocol, /)

Helper for pickle.


Return repr(self).

__setattr__(name, value, /)

Implement setattr(self, name, value).


Size of object in memory, in bytes.


Return str(self).


Abstract classes can override this to customize issubclass().

_contract(arrays[, out, backend, …])

The normal, core contraction.

_contract_with_conversion(arrays, out, backend)

Special contraction, i.e., contraction with a different backend but converting to and from that backend.

_get_backend_expression(arrays, backend)


Retrieve or generate the cached list of constant operators (mixed in with None representing non-consts) and the remaining contraction list.


Convert any constant operands to the correct backend form, and perform as many contractions as possible to create a new list of operands, stored in self._evaluated_constants[backend].






list of weak references to the object (if defined)