openfermion.linalg.wedge

Implement the wedge product between left_tensor and right_tensor

The wedge product is defined as

.. math:: \begin{align} a{j{1}, j{2}, ...,j{p} }^{i{1}, i{2}, ..., i{p} } \wedge b{j{p+1}, j{p+2}, ..., j{N} }^{i{p+1}, i{p + 2}, ..., i{N} } = \left(\frac{1}{N!}\right)^{2} = \sum{\pi, \sigma}\epsilon(\pi) \epsilon(\sigma)\pi \sigma a{j{1}, j{2}, ...,j{p} }^{i{1}, i{2}, ..., i{p} } b{j{p+1}, j{p+2}, ..., j{N} }^{i{p+1}, i{p + 2}, ..., i_{N} } \end{align}

The top indices are those that transform contravariently. The bottom indices transform covariently.

The tensor storage convention for marginals follows the OpenFermion convention. tpdm[i, j, k, l] = , rtensor[u1, u2, u3, d1] =

left_tensor left tensor to wedge product
right_tensor right tensor to wedge product
left_index_ranks tuple of number of indices that transform contravariently and covariently
right_index_ranks tuple of number of indices that transform contravariently and covariently

new tensor constructed as the wedge product of the left_tensor and right_tensor