New release: version 0.3.3
You're all awesome
Greetings, Tangelites ! (Tangelians? Tangelies? Tangeloids ? Tangelords ? You decide.)
This release comes with a number of existing features and improvements over the past version of Tangelo, as detailed in the release notes below. A big thank-you to our code contributors: @JamesB-1qbit, @AlexandreF-1qbit, @KrzysztofB-1qbit, @MPCoons, @ValentinS4t1qbit and @jjgoings (first contribution to this project!) but also to everyone who engaged in feedback, raised issues or joined discussions on Github or through other channels: your input is invaluable.
What's Changed
Enhanced integration with other platforms
The translation and simulation in linq is now more modular, and provides a better integration with other platforms through streamlined processes. In particular, all circuit format conversion can be done through the translate_circuit
function. The list of the available source and target formats is available here. The translate_operator
function provides an equivalent for qubit / Pauli operators.
The Simulator
class has been deprecated in favor of the get_backend
function, and Tangelo now supports user-defined backend: all algorithms should be able to run on user-defined simulators or QPU backend. (#196, #203, #212, #213, #223, #245, #246)
Better streamlining of quantum experiments
We recently ran a few quantum experiments, and learnt that there are features and steps that could be better streamlined in Tangelo. As a result, we added a few features for post-processing and error-mitigation. The Histogram
class enables renormalization, post-selection and aggregation of experimental data. A compute_rdms
function now facilitates the recomputation of RDMs from experimental results. Computing the variance / standard deviation of an expectation value is now possible using the backend methods, thanks to @jjgoings. (#238, #217, #232)
We have streamlined the submission of experiments to IBM Quantum with the new IBMConnection
class. A quantum experiment demonstrating how QEMIST Cloud, Tangelo and IBM Quantum can work together was featured at the IBM Quantum Summit: the corresponding notebook will be available shortly. We also improved the experience for IonQ and QEMIST Cloud connections. (#222, #225, #207)
Tutorials and notebooks
Most tutorials are now available in a “no local install” mode for everyone who has access to services such as Google Collab. We also added a few pretty nifty tutorials for our fellow chemists and end-users with interests in excited states. The qchem modeling notebook provides great insight about what matters when throwing a molecule to quantum computers, while the excited states notebook recaps what approaches are available to compute excited states, and even implements a few extras ones on the spot ! (#197, #198, #199)
New algorithms and features
- iqcc-ilc solver fork by @MPCoons in #179
- Quantum Signal Processing time-evolution by @JamesB-1qbit in #204
- even Trotter order > 2 by @JamesB-1qbit in #210
- trotter order and active electrons for QCC/iQCC by @JamesB-1qbit in #234
- TETRIS-ADAPT-VQE by @AlexandreF-1qbit in #241
- Multi-control support for trotterization by @JamesB-1qbit in #244
Install, documentation and developer tools
The Docker image has been fixed, a release guide is available for project maintainers in the dev_tools
folder,, and automated tests now export coverage file: over 90% of our code is currently covered by tests (#158, #195, #200).
Miscellaneous
- Bug fix: VQE.operator_expectation by @AlexandreF-1qbit in #191
- Simplifying formula for n_measurement estimation by @AlexandreF-1qbit in #192
- c2v axis definition change by @JamesB-1qbit in #205
- Add n_qubits option to MultiformOperator compress function by @JamesB-1qbit in #209
- Remove superfluous qubits with scBK in ADAPTSolver by @AlexandreF-1qbit in #214
- Remove the n_min_orbitals attribute by @AlexandreF-1qbit in #218
- JKMN vector prep should return an array of int by @AlexandreF-1qbit in #215
- Change JKMN Majorana definition so mapped Hamiltonian is real by @JamesB-1qbit in #219
- Relaxing iqcc_ilc_h4_cation test by @AlexandreF-1qbit in #221
- Compute energy from RDMs with FermionOperator by @AlexandreF-1qbit in #220
- Circuit is now iterable (traverse gate list) by @AlexandreF-1qbit in #194
- add repr method to Gate by @JamesB-1qbit in #229
- Add circuit.depth() in get_resources methods by @KrzysztofB-1qbit in #235
- copy + get_resources + invertible swap gate fix by @JamesB-1qbit in #193
Full Changelog: v0.3.2...v0.3.3