openfermion.circuits.prepare_one_body_squared_evolution

Get Givens angles and DiagonalHamiltonian to simulate squared one-body.

The goal here will be to prepare to simulate evolution under \((\sum_{pq} h_{pq} a^\dagger_p a_q)^2\) by decomposing as \(R e^{-i \sum_{pq} V_{pq} n_p n_q} R^\dagger\) where \(R\) is a basis transformation matrix.

one_body_matrix ndarray of floats

an N by N array storing the coefficients of a one-body operator to be squared. For instance, in the above the elements of this matrix are \(h_{pq}\).

spin_basis bool

Whether the matrix is passed in the spin orbital basis.

density_densitymatrix(ndarray of floats) an N by N array storing the diagonal two-body coefficeints \(V{pq}\) above. basis_transformation_matrix (ndarray of floats) an N by N array storing the values of the basis transformation.

ValueError one_body_matrix is not Hermitian.