OpenFermion
OpenFermion copied to clipboard
The electronic structure package for quantum computers.
Since the current runtime type checking in `symmetry_conserving_bravyi_kitaev` uses `type()`, it raises an error when one uses a subclass of `FermionOperator`. To cover such cases, it is better to use...
In the documentation for the openfermion.hamiltonians.FermiHubbardModel, none of the LaTeX is rendering in the descriptive comments.
When bogoliubov_transform is called with a transformation_matrix that has shape N x 2N the check that determines whether or not the transformation mixes spin up and spin down and the...
I've seen that OpenFermion now includes some cost estimates: https://github.com/quantumlib/OpenFermion/tree/master/src/openfermion/resource_estimates They are from the most up-to-date rank-factorization methods, but I could help with the first-quantization methods. Would this be useful...
Right now only Toffoli gates are taken into account for the estimation of time and physical qubits required to synthesize non-Clifford gates in the circuit. https://github.com/quantumlib/OpenFermion/blob/cf53c063d0f124a02ff8776bb7f8afb110d4bde6/src/openfermion/resource_estimates/surface_code_compilation/physical_costing.py#L176-L184 From a Toffoli gate,...
In the recent cost estimates functions, there are a number of hardcoded parameters in the system: https://github.com/quantumlib/OpenFermion/blob/cf53c063d0f124a02ff8776bb7f8afb110d4bde6/src/openfermion/resource_estimates/surface_code_compilation/physical_costing.py#L189-L201 Should we add them as parameters to some class that the user can...
In both the double-factorization and tensor hypercontraction versions of qubitization detailed in the [THC paper](https://arxiv.org/abs/2011.03494), we often need to load angles or coefficients into our computation. These angles need to...
the following [lines of code](https://github.com/quantumlib/OpenFermion/blob/6a2fdacdd77c5101bc47f3d2bde821f0db717b28/src/openfermion/ops/operators/symbolic_operator.py#L635-L636) (v1.3.0 release branch) implementing `SymbolicOperator.isclose` are doing something strange when comparing two operators: ``` if not (isinstance(a, sympy.Expr) or isinstance(b, sympy.Expr)): tol *= max(1, abs(a),...
It is about the function normal_ordered_ladder_term(). [normal_ordered_ladder_term](https://github.com/quantumlib/OpenFermion/blob/d3734cf27d518708d445788bd05b85349b1957cd/src/openfermion/transforms/opconversions/term_reordering.py) I realized that we can actually break the layer of _for j in range(i, 0, -1):_ . Since if no action at the...
If you call `optimal_givens_decomposition` and then construct another circuit using the same qubits, the latter circuit can be incorrect. For example, below I create two circuits that should be identical,...