where we take advantage of the Waller-Hartree double determinant representation. Moving along a row or a column of C keeps the spin-up or spin-down determinants xed, respectively. For a given determinant, nding the entire list of same-spin single and double excitations can be performed in O(N ↑ det ) = O(N ↓ det ) = O( √ N det ), while nding the opposite-spin double excitations is done via a two-step procedure. First, we look for all the spinup single excitations. en, starting from this list of spin-up single excitations, we search for the spin-down single excitation such that the resulting opposite-spin doubly-excited determinant belongs to Ψ (0) . Hence, the formal scaling is reduced to O(N 3/2 det ). It could be further reduced to O(N det ) at the cost of storing the list of all singly-and doubly-excited determinants for each spin-up and spin-down determinant, but we preferred not to follow this path in order to reduce the memory footprint as much as possible. α stored in a hash table. Using a hash table to store in memory a list of |α 's without duplicates and their contributions e