Skip to content

Releases: quantumlib/OpenFermion

OpenFermion v0.11.0

02 Apr 19:16
02a0088
Compare
Choose a tag to compare

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.binary_partition_iterator, openfermion.partition_iterator, openfermion.pauli_string_iterator.
  • Added structure argument to openfermion.geometry_from_pubchem. It is recommended to set this to '3d' to ensure correct structures are returned (see #544).
  • openfermion.get_number_preserving_sparse_operator.
  • openfermion.prony.

OpenFermion v0.10.0

22 Jul 21:59
a76d9a5
Compare
Choose a tag to compare

Notable changes and additions:

  • Adds a new class, MajoranaOperator, to represent operators in the Majorana basis. Support for this operator added to openfermion.jordan_wigner and openfermion.bravyi_kitaev.
  • Speeds up construction of jellium Hamiltonians by utilizing translation invariance
  • openfermion.wedge
  • Adds some utility methods to InteractionOperator
  • Utilities for tapering off qubits using stabilizer conditions: openfermion.utils.taper_off_qubits, openfermion.utils.reduce_number_of_terms
  • Fixes a bug that caused incompatibility with scipy 1.3.0

OpenFermion v0.9.0

19 Dec 01:00
Compare
Choose a tag to compare

Notable changes and additions:

  • The diagonalizing_bogoliubov_transform method of openfermion.QuadraticHamiltonian now returns a tuple of three objects: the orbital energies, the transformation matrix, and a constant energy offset
  • openfermion.FermiHubbardModel
  • openfermion.IsingOperator
  • openfermion.group_into_tensor_product_basis_sets
  • 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

OpenFermion v0.8

17 Jul 05:03
Compare
Choose a tag to compare

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.

OpenFermion v0.7

25 Jun 18:38
Compare
Choose a tag to compare

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.

OpenFermion v0.6

29 Mar 23:07
a32e641
Compare
Choose a tag to compare

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.

OpenFermion v0.5

29 Mar 19:00
bf52298
Compare
Choose a tag to compare

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.

OpenFermion v0.4

06 Mar 06:42
Compare
Choose a tag to compare

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.

OpenFermion v0.3

05 Jan 00:12
Compare
Choose a tag to compare

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.

OpenFermion v0.2

04 Dec 20:55
Compare
Choose a tag to compare

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.