Skip to main contentIBM Quantum Documentation Mirror

double_factorized_2body

double_factorized_2body(two_body_tensor, tol, max_vecs=None, cholesky=True)

Double-factorized decomposition of a real two-body tensor.

Represents hpqrs=tklZkl(t)Upk(t)Uqk(t)Url(t)Usl(t)h_{pqrs} = \sum_t \sum_{kl} Z^{(t)}_{kl} U^{(t)}_{pk} U^{(t)}_{qk} U^{(t)}_{rl} U^{(t)}_{sl}, returning a list of (Z,U)(Z, U) terms where each ZZ is a real symmetric diagonal Coulomb matrix and each UU is a unitary orbital rotation.

When cholesky is True (the default behavior) the outer factorization uses a modified Cholesky decomposition; otherwise it uses a truncated eigendecomposition.

Parameters

  • two_body_tensor – the real two-body tensor of shape (norb, norb, norb, norb), in chemist ordering (pqrs)(pq|rs) (i.e. the index pairs (p,q)(p,q) and (r,s)(r,s) each label a charge density, as in the reconstruction formula above).
  • tol – the tolerance controlling the truncation error of the decomposition.
  • max_vecs – the maximum number of terms to retain. Defaults to norb * (norb + 1) / 2.
  • cholesky – whether to use the modified Cholesky decomposition (True) or a truncated eigendecomposition (False) for the outer factorization.

Returns

A list of (Z,U)(Z, U) 2-tuples, where Z is the diagonal Coulomb matrix and U is the orbital rotation.