Skip to content

Releases: Quandela/Perceval

v0.11.2 - Sir Gawain

23 Sep 12:53
2c9fd40
Compare
Choose a tag to compare

Improvements

  • Add a Symmetric MZI in the component catalog
  • Rectangular GenericInterferometer can now autogenerate any 1-mode component whenever the first or last mode is MZI-free
  • Fix typos in logging documentation
  • Remove deprecated calls from user documentation

Bug fixes

  • Remove a small sleep time in local sampling simulation (that would hinder low photon count sampling)
  • Fix how unit tests requiring extra dependencies are run

v0.11.1 - Sir Gawain

11 Sep 08:54
e60f0aa
Compare
Choose a tag to compare

New feature

  • cQASM circuit to linear optics converter

Improvements

  • Logging system user documentation: https://perceval.quandela.net/docs/reference/logging.html
  • Fixed typos in the user documentation
  • Improved input parameter checks in Photon Recycling
  • Optimized noisy state generation in the Source class
  • Avoid inconsistent values of shots / samples when creating remote jobs

Bug fixes

Circuit / Processor rendering

  • Fixed "floating herald" issue in pdisplay
  • Fixed incorrect size of rendered circuit box

Simplify circuit

  • Fixed a bug with consecutive permutations in the "simplify circuit" process
  • Fixed a bug where a phase shifter with a phi variable parameter could disappear in the "simplify circuit" process

Known issues

  • The cQASM converter does not support Python 3.8

v0.11.0 - Sir Gawain

15 Jul 12:35
5597f01
Compare
Choose a tag to compare

New features

Improvements

  • Python 3.12 support
  • Optimized noisy algorithms for both strong simulation and sampling back-ends
  • The user documentation is now available for multiple Perceval versions
  • Improved documentation:
  • Optimized ProcessTomography computation time
  • Tomography algorithms are now available for remote computing
  • MPSBackend now supports large permutations among the circuit components
  • Gate based circuit converters now use a better implementation of the heralded CNOT
  • Scaleway provider connection code was updated
  • PostSelect now supports >= and <= operators

Bug fixes

  • Fixed a bug where a Processor containing an input state couldn't be copied
  • Fixed an issue where parameter names were lost (replaced by numerical values only) in some computations
  • A cancelled job will now try to retrieve partial results
  • Fixed a bug in physical performance computation in the noisy algorithm
  • Fixed an issue where post-selection wouldn't be processed correctly when composing two processors
  • Fixed a bug where post-selection function wouldn't be refreshed in a local Processor that was already used in a simulation

Known issues

  • The MyQLMConverter cannot be used on Python 3.12 as myqlm does not support this Python version.

Other information

v0.10.5 - Avalon Island

18 Jun 09:29
6495b7c
Compare
Choose a tag to compare

Improvement

  • Herald ports display improved
    UnitaryHACK 2024 contribution, by @burlemarxiste

Bug fixes

  • Fixed an incompatibility with matplotlib 3.9
  • Perceval is not compatible with numpy 2 (yet), so it now specifically requires numpy<2

v0.10.4 - Avalon Island

19 Feb 09:57
f6669a0
Compare
Choose a tag to compare

Improvements

  • Update Scaleway provider connection code.

Bug fixes

  • Fix Tomography failing on a 3+ qubit gate.
  • Fix local use of a Sampler with iterations not returning iteration data in the result list.
  • Fix probability distribution to sample count conversion for a low number of samples.

v0.10.3 - Avalon Island

29 Jan 10:03
18fd12f
Compare
Choose a tag to compare

Improvements

  • Optimized serialization speed of a large list of samples.
  • Improved LaTex rendering in Jupyter notebooks.
  • Add method Sampler.clear_iterations() to set new iteration parameters on an existing Sampler object.

Bug fixes

  • exqalibur may now be used on any virtual machine making Perceval usable on a wider range of environments.
  • Fix invalid syntax in two Simulator methods.
  • Fix multiple calls to method get_results() of an asynchronous local job.
  • Small fixes in several examples from the user documentation.

v0.10.2 - Avalon Island

12 Dec 10:04
b9e7eaa
Compare
Choose a tag to compare

Improvement

  • Optimize samples (stream) to sample count conversion

v0.10.1 - Avalon Island

06 Dec 13:21
1c9d244
Compare
Choose a tag to compare

Bug fixes

  • Fixed Error-tolerant BS-based circuit notebook
  • The github and PyPI shields now display correct information
  • Fix a conversion issue when max_samples is set as a float in a sampling Job

v0.10.0 - Avalon Island

30 Nov 10:47
5a050b6
Compare
Choose a tag to compare

New features

  • Shots
    Remote sampling jobs now require a maximum shots threshold.
    See: https://perceval.quandela.net/docs/algorithms.html#work-with-algorithms
    When creating a RemoteProcessor for a physical QPU, a shot to samples conversion tool enables you to anticipate your use of Quandela Cloud resources.

  • myQLM converter
    Perceval now contains a way of converting myQLM qat.core.Circuit into a Processor.
    See: Conversion of myQLM circuit to Perceval

  • Tomography algorithms
    StateTomography and ProcessTomograpy algorithm have been included in order to study logical gates.
    See: Example notebook

  • CCZ and CCNOT (Toffoli) gates have been implemented in the component catalog.

  • Quandela Cloud token persistence
    A token can now be set on your environment once and for all. It will then be retrieved when running a job with a RemoteProcessor. You won't have to copy/paste your token in all your scripts and notebooks!

  • Generic interferometer phases can now be easily set to a given zone of a bigger interferometer.

Improvements

  • Two new Perceval usage examples are available:
  • Heralded CNOT implementation was improved (with 2 less ancillary modes and a better performance).
  • CircuitOptimizer now supports template circuits containing permutations, arbitrary unitary matrices as well as multiple hierarchy levels.
  • Clifford & Clifford 2017 sampling back-end now computes several samples at once.
  • Catalog syntax is more user friendly (see build_circuit and build_processor methods). The previous syntax still works but was deprecated.
  • Several optimizations were made in the native code (exqalibur package) to speed up computations, specifically on BasicState and StateVector classes. StateVector was moved to exqalibur retaining most of the class API.
    see: https://perceval.quandela.net/docs/legacy.html for a comprehensive list of changes.
  • Sample count now returns an exact number of samples.
  • Extra requirements (e.g. for converters) may now be installed with pip. See: https://github.com/Quandela/Perceval#installation

Bug fixes

  • Fix MPS back-end for input states with multiple photons per mode.
  • Fix exponentiation of StateVectors and state distribution data structures.

Removals

  • Python 3.7 support was dropped
  • AnnotatedBasicState class was removed (was deprecated since version 0.7.0) .

Known issues

  • exqalibur is unusable on some Ubuntu virtual machines hosted by VirtualBox
  • Multiplying a StateVector from the left with a numpy numerical type (e.g numpy.float64(0.6)*state_vector) can lead to cryptic error messages.
    Work-around: either multiply from the right, or convert the numpy type to the corresponding Python type.

v0.9.3 - King Pescheor

15 Nov 13:40
95fc858
Compare
Choose a tag to compare

Improvements

Bug fixes

  • Fix a failure which occurred when deserializing an empty BSCount, BSDistribution, BSSamples or SVDistribution
  • Fix remote computations refusing to run on an identity circuit