v1.2.1 The Royal Court
New features
- The main computation classes have been ported to Exqalibur
- Noisy computations should be faster and use less memory
- SLOS is now fully in Exqalibur by default
- Simulators (both probability and sampling) are now in Exqalibur, and will be used by default if the backends exists in Exqalibur (e.g. SLOS, Clifford)
- RemoteProcessor now have a
get_current_noise()method that returns a NoiseModel corresponding to its performance. - RemoteProcessor specs are now a dedicated object type that ensures some fields are always available. This should also provide code hints for your IDE
- Fourier interferometers can now be constructed through a helper method of the Unitary class
Improvements
- The "postselect" can now be changed in the Sampler's iterations
- The Unitary class now have a
random()method to make a random unitary. - The Unitary class can now take directly a numpy array instead of a Matrix
Bug fixes
- RemoteProcessor's experiment can now be changed without breaking it
- RemoteProcessor was raising an error when having asymetrical heralds
- The precision in the Sampler's probability computations depended on the presence of iterations
- The Grover's search notebook is now closer to the process proposed in its source material
- The modulus fidelity was returning complex values
- Circuit deserialization have been fixed for nested circuits with parameters
- Optical components could added after detectors in some cases
Breaking changes
- Although some classes were ported to Exqalibur, their python versions can still be accessed if needed
- No class name has been changed, so
SimulatororSLOSBackendstill points to the python version - The python SLOS is still available in Processors under the name "SLOS_LEGACY"
- No class name has been changed, so
- Tokens that were saved before perceval 0.13 will no longer be loaded by perceval due to previous changes to their storage
- Loading them and saving them in a perceval 1.1 should be enough to do the transition
- Importing the Processor class from the
componentssubmodule is now deprecated- Processor should now be imported directly from perceval's root, or from the
runtimesubmodule
- Processor should now be imported directly from perceval's root, or from the
- The new PlatformSpecs object that is now returned by RemoteProcessor.specs should be accessed through its attributes and no longer as a dictionary. While this remains possible, it is now deprecated.
- Catalog items'
build_processor()is now deprecated.build_experiment()should be used instead
A detailed documentation on how to update your Perceval code to version 1.2 is available here: https://perceval.quandela.net/docs/v1.2/legacy.html
You can contact us on Quandela community forum