Release Notes¶
0.2.0¶
New Features¶
A new method,
POVMPostProcessor.get_state_snapshot()
, is implemented to easily access the classical “snapshots” of the state after taking some measurements. A classical “snapshot” of the state is the dual frame operator associated with the corresponding outcome. The new method returns the snapshot (typically as a product of local operators) associated with the queried outcome (typically a tuple of integers). In parallel, theProductFrame.get_operator()
method has been added for more general access to frame operators in a product form.
Add an option for the post-processors to combine the counts associated with different parameter values that were submitted in the same POVM sampler PUB. To learn more, read this how-to guide.
The toolbox now allows the use of non-IC measurements. This is useful, for example, if the observables to be estimated are known to consist solely of pauli X and Z (then no Y measurements are needed).
By making this change, we now use the
numpy.linalg.lstsq()
method to determine the dual frame (i.e. the reconstruction operators) as opposed to thenumpy.linalg.solve()
method used previously, which only worked for IC measurements.
The
MultiQubitFrame
now has ashape
attribute. Before, its shape was implicitly assumed to be(len(frame.num_operators),)
and the operators were indexed by integers. Note that this is is still the default shape and indexing method. However, the frame operators can now also be indexed by multi-indices (tuple of integers) if a custom shape is specified.
Upgrade Notes¶
The behavior of
loc=None
has changed. To revert to the old behavior, update your code to useloc=...
.
This release adds support for Python 3.13. No code changes were necessary, so older releases are expected to work on Python 3.13 too.
This package is now compatible with Qiskit SDK 2.0 and 2.1.
The
MultiQubitFrame.operators
attribute ofMultiQubitFrame
objects is now read-only.
Bug Fixes¶
When
shots=1
, thePOVMPostProcessor.get_expectation_value()
would fail with aZeroDivisionError
. This case is now handled gracefully by returningfloat("NaN")
for the standard deviation.
Fixes a bug in the
ProductFrame.analysis()
method occurring forMultiQubitFrame
instances withnum_qubits>2
. This bug affected the outcome of other methods such asBasePOVM.get_prob()
andBaseDual.get_omegas()
.
Other Notes¶
Minor documentation updates to ensure PyPI releases are presented properly.
This release adds support for Windows. No code changes were necessary, so older releases are expected to work on Windows too.
0.1.0¶
Prelude¶
Note
Starting with this release, this project will follow semantic versioning.
This is a toolbox for working with positive operator-valued measures (POVMs). It enables users to use POVMs for sampling the state of quantum circuits (see also povm_toolbox.sampler
) and compute expectation values of any observable of interest (see also povm_toolbox.post_processor
). The toolbox includes a library of pre-defined POVMs (see povm_toolbox.library
) which provide ready-to-go POVM circuit definitions. You can also implement your own POVM circuits by following the provided interface. Additionally, you can work with POVMs on a quantum-informational theoretical footing (see povm_toolbox.quantum_info
).