Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 50 million developers.Sign up
Starting with this version, Python 2 is no longer supported. Other notable changes and additions:
- Functions to partition qubits into subsets for efficient measurement of Pauli strings:
openfermion.geometry_from_pubchem. It is recommended to set this to '3d' to ensure correct structures are returned (see #544).
Notable changes and additions:
- Adds a new class, MajoranaOperator, to represent operators in the Majorana basis. Support for this operator added to
- Speeds up construction of jellium Hamiltonians by utilizing translation invariance
- Adds some utility methods to InteractionOperator
- Utilities for tapering off qubits using stabilizer conditions:
- Fixes a bug that caused incompatibility with scipy 1.3.0
Notable changes and additions:
openfermion.QuadraticHamiltoniannow returns a tuple of three objects: the orbital energies, the transformation matrix, and a constant energy offset
- Improves low-rank decomposition to work in spatial orbital basis rather than spin-orbital basis
- SymbolicOperator is now an abstract base class
- Specialized routines to compute commutators of Diagonal coulomb operators faster
- Updated Docker image to include OpenFermion-Cirq
- Default absolute precision for floating point operations changed from 1e-12 to 1e-8
Eighth production release. Minor release necessitated by depending libraries.
- Most importantly, new logo.
- Functionality for performing low rank decompositions of two-body operators.
- Small additions of helper functions for more flexible testing.
Seventh production release. Many new features introduced including:
- Method to obtain circuit that diagonalizes a QuadraticHamiltonian.
- Generalized equality and arithmetic operations for PolynomialTensor.
- Fixed minor bug in is_hermitian function.
- New DiagonalHamiltonian class for interacting fermion systems with diagonal two-body term.
- Human-readable IO for SymbolicOperator.
- Functions to map particle RDMs to hole RDMs and vice versa.
- Fixed bug in plane wave / dual Hamiltonian generation which occurred for even grids.
- Code to preprocess coefficients for LCU algorithm introduced in arXiv:1805.03662.
- LinearOperator class for efficient numerical diagonalization of QubitOperators.
- Routines to use Davidson routine for obtaining ground states using LinearOperator.
- Functions to automatically obtain MolecularData geometries from PubChem database.
- New BosonOperator class.
- Generation of Bose-Hubbard Hamiltonians.
- Functions to automatically remove redundant qubits post-BK transformation.
- Added functionality to generate plane wave / dual basis Hamiltonians with reduced periodicity.
- Links to Xanadu Strawberry Fields "OpenBoson" library.
Unfortunately a change between v0.4 and v0.5 introduced a circular dependency in the setup script that caused an install problem with the v0.5 release for some environments. The v0.6 release corrects that issue and also reconfigures our continuous integration testing so that problems like this will be more easily detected in the future.
Fifth production release, necessary due to some reorganization of modules as well as:
- Fixed bug in the Jordan-Wigner transform applied to InteractionOperators.
- Fixed bug in the Bravyi-Kitaev Superfast Transform which caused some terms to be ignored.
- Fixed bug in binary code transforms causing creation operators to map to annihilation operators.
- Changed implementation of the Bravyi-Kitaev transform to use from arXiv:quant-ph/0003137.
- We now implement BK transform from arXiv:1701.07072 under a different name.
- Renamed SymbolicBinary as BinaryPolynomial.
- Changed the convention used in the function for instantiating Majorana fermion operators.
- Introduced new syntax for instantiating FermionOperators and QubitOperators with a single factor.
- Added the fermionic spin operators Sx and Sy to the special operators module.
- Added a demo of the Jordan-Wigner and Bravyi-Kitaev transforms.
Fourth production release. This is a major update introducing many new features:
- Added (alpha version) of a "cloud library" for sharing / storing molecular data files.
- Added routines for generating special FermionOperators such as Sz, S^2, S^+, etc.
- Added SymbolicOperator as parent class from which FermionOperator/QubitOperator inherit.
- Added flexible method of initializing classes derived from SymbolicOperators from strings.
- Fixed some numerical instabilities in sparse operator routines.
- Fixed some minor bugs with the saving and loading of FermionOperator/QubitOperator.
- Added some preliminary routines for generating quantum phase estimation circuits.
- Added substantial infrastructure for generalized fermion transforms based on arXiv:1712.07067.
- Added non-linear encoders for transforming fermions with reduced spatial complexity.
- Changed conventions for how fermion modes are ordered in terms of the spin index.
- Added routines to transform functions for reordering fermion modes prior to transform.
- New demos for Given routine procedures and generalized fermion encodings.
Third production release. Fixes a crucial bug related to rotating molecular orbitals. Also:
- Adds code for Verstraete-Cirac transform.
- Allows users to write "from OpenFermion import *".
- Fixes minor bugs in code to generate spinless Hubbard models.
- Adds functionality for computing Trotter errors.
Second production release. Adds significant functionality including (but not limited to):
- Generalizes the InteractionTensor class to handle arbitrary marginals. Now called PolynomialTensor.
- Adds a data structure for manipulating quadratic Hamiltonians called QuadraticHamiltonian.
- Adds code to prepare Slater determinants by Givens rotations.
- Adds code to obtain eigenstates of quadratic Hamiltonians and circuits to prepare them.
- Adds code to implement general n-body rotations of PolynomialTensor using np.einsum.
- Adds code to compute the BCH expansion of our operator types to arbitrary order.
- Adds code for simulating basic error channels including the depolarizing channel.
- Adds code for outputting fermionic circuit specifications as QASM strings.
- Minor bug fixes pertaining to conventions around Jordan-Wigner ordering and basis rotations.
- Minor bug fixes pertaining to the generating and storage of HDF5 MolecularData files.