New features
-
Feed-forward local simulation
You can now build aProcessor
containing detectors and feed-forward controllers configuring unitary circuits and obtain strong simulation results!
See: https://perceval.quandela.net/docs/notebooks/Quantum_teleportation_feed_forward.html
See also: https://perceval.quandela.net/docs/reference/feed_forward_configurator.html -
Detector imperfections can now be simulated.
Four different types of detectors are currently supported:- Photon number resolving (PNR) perfect detectors,
- Threshold detectors,
- Interleaved pseudo-PNR detectors,
- Pseudo-PNR detectors using layers of beam splitters and threshold detectors.
-
A new job management system helps you group jobs, check statuses and retrieve results.
See: https://perceval.quandela.net/docs/reference/job_group.html -
A new strong simulation back-end is available: SLAP.
See: https://perceval.quandela.net/docs/backends.html#slap -
New usage example - Quantum kernel methods
See: https://perceval.quandela.net/docs/notebooks/quantum_kernel_methods.html -
Resource estimator for gate-based conversion, supporting dual rail and qudit encodings.
-
A TVD function between probability distributions.
Improvements
- Perceval now supports Python 3.13.
PostSelect
syntax now supports nested logical expressions of 'and', 'or', 'xor' and 'not' operators.- Gate-based circuits to linear optics converters now save heralded photons (by using as many post-selected CNOT as possible).
- Strong simulation now automatically uses heralds to mask the Fock space when possible, saving computation time and memory.
- Failed and cancelled jobs may now be programmatically restarted.
Barrier
components can now be invisible (used only for alignments).- Improved circuit rendering.
DisplayConfig
enabling to select a rendering skin can now be persistent.- Modernized some example notebooks.
Bug fixes
- Tensor product between
BasicState
andSVDistribution
now always succeeds
Other information & known issues
- Python 3.8 is no longer supported.
- Perceval is compatible with both numpy versions 1 and 2. However, installing a fresh Perceval, then a dependency requiring numpy<2 may result in a pip conflict. If it happens, try to install them both in a single pip command.
- You may have to update
pip
andsetuptools
to the latest version before installing Perceval in a Python 3.13 virtual environment.
See syntax changes here: https://perceval.quandela.net/docs/v0.12/legacy.html
You can contact us on the Perceval forum