Releases: pasqal-io/Pulser
Release v0.17.1
Release v0.17.0
Main Changes
-
Clarify confusion between kraus operators and collapse operators (#616): Simulations with noise channels now uniformly use collapse operators and rates, while the usage of Kraus operators and probabilities has been deprecated.
-
Support standalone serialization of
Register
andRegisterLayout
to the abstract representation (#627): These objects can now be serialized to and deserialized from the abstract representation on their own through theirto_abstract_repr()
andfrom_abstract_repr()
methods. -
Hashing for coordinate collections (#627): Register now have an idempotent hash based exclusively on their coordinates (accessible through
BaseRegister.coords_hash()
) -
Explicitly define public symbols for all modules (#630): All classes needed for a standard usage of Pulser are now accessible through the top-level
pulser
namespace. This gives the option of trading code looking like thisfrom pulser import Pulse, Register, Sequence from pulser.devices import MockDevice from pulser.waveforms import BlackmanWaveform, RampWaveform reg = Register.square(4) seq = Sequence(reg, MockDevice) pulse = Pulse( amplitude=BlackmanWaveform(1000, 3.14), detuning=RampWaveform(1000, -10, 10), phase=0, )
for this
import pulser reg = pulser.Register.square(4) seq = pulser.Sequence(reg, pulser.MockDevice) pulse = pulser.Pulse( amplitude=pulser.BlackmanWaveform(1000, 3.14), detuning=pulser.RampWaveform(1000, -10, 10), phase=0, )
Deprecations
- In
NoiseModel
andSimConfig
,dephasing_prob
,depolarizing_prob
andeff_noise_probs
have been deprecated in favour ofdephasing_rate
,depolarizing_rate
andeff_noise_rates
. Register.rotate()
has been deprecated. The new and preferredRegister.rotated()
method returns a new register instance with the rotated coordinates instead of changing them in place.
Changelog
9e5f6fd Release v0.17.0
569f6b5 Bump version to 0.17.0
16f566c Reduce imports on main tutorials (#636)
824069a Modify deprecation of total_bottom_detuning to v0.18 (#638)
a8d17f2 Replace Register.rotate()
with Register.rotated()
(#639)
e5597b1 Unrestrict scipy<1.12 (#635)
154e9b3 [FIX] Restore compatibility with pytest 8.0.0 (#637)
f1637ae Explicitly define public symbols for all modules (#630)
0f50ccc Bump version to 0.17dev2
255baf7 Bring in changes from v0.16.2 hotfix
4601d6f FIX: Coordinate matching in WeightMap.get_qubit_weight_map()
(#631)
80cf640 Support standalone serialization of Register
and RegisterLayout
to the abstract representation + Hashing for coordinate collections (#627)
007a0ae Clarify confusion between kraus operators and collapse operators (#616)
7026578 Bump to v0.17dev1
09ddc6b Merge changes from v0.16.1 hotfix
ab65b7f Refactoring QutipEmulator
class (#602)
ed6f337 Bring in changes from v0.16.0 release
579aa59 Bump to version 0.17dev0
Contributors
A special shoutout goes to the contributors to this release:
- Antoine Cornillot
- Henrique Silvério
A huge thank you to all Pulser contributors, both to this and past versions.
Release v0.16.2
Release v0.16.1
Release v0.16.0
Main changes
- The summing constraint in DetuningMap is now deleted (#610). When adding a detuning to a DMM channel, we now check that the product of the sum of the weights of the DetuningMap times the detuning lies always between 0 and a negative value
total_bottom_detuning
. - A
wait
option has been added to remote backends to keep code running until the results are available on the Cloud platform.
Bug fixes
- Modulation of the detuning when having a custom EOM buffer time is fixed.
- Initialization of temperature in
SimConfig
is fixed (temperature is no longer modifed). - It is now possible to define a Register with max connectivity from a spacing on a device with minimum_atom_distance equal to 0.
- Makes possible to parametrize the phase in EOM mode.
- JSON serialization now supports numpy integer types.
Deprecations
- The legacy devices IroiseMVP and Chadoq2 are deprecated. The example device replacing Chadoq2 is DigitalAnalogDevice.
- Defining a physical device with a DMM without a
total_bottom_detuning
is deprecated.
Documentation
- Deleting all the references to Chadoq2 in the documentation, replacing it by DigitalAnalogDevice.
- Adding reference to Azure Quantum in the Backends.
Changelog
40ab0b5 Release v0.16.0
53eab97 [DOC] Add reference to Azure Quantum (#618)
4e0520c Bump version to 0.16.0
a0c59a6 Deprecate legacy devices (#620)
b18e434 FIX: Detuning modulation for custom EOM buffer time (#619)
8c5d966 Delete summing constraint in DetuningMap (#610)
b41d62a JSON serialization support for numpy integer types (#617)
30b8450 Bring in changes from v0.15.3 hotfix
9d439a5 Bump to version v0.16dev3
9f9a17a Fix temperature initialization in SimConfig (#606)
2bad427 Fix spacing in register.max_connectivity (#605)
7c2ddee Updates to the target methods (#601)
581886f [FIX] Allow parametrized phase in EOM mode (#599)
394fe6a Add wait
option to remote backends (#598)
19f9254 Use trusted publishing on PyPI (#597)
0ec79b3 Bump version to v0.16dev2
4ac7d01 Bring in changes from v0.15.2 hotfix
fe9396a Bump version to v0.16dev1
cab9fc1 Bring in changes from v0.15.1 hotfix
fcd488a Add adaptative rounding in InterpolatedWaveform (#592)
a5f98c0 Bump version to v0.16dev0
Contributors
A special shoutout goes to the contributors to this release:
- Antoine Cornillot
- Henrique Silvério
- Anne-Claire Le Hénaff
A huge thank you to all Pulser contributors, both to this and past versions.
Release v0.15.3
Release v0.15.2
Release v0.15.1
Release v0.15.0
Main changes
- Local addressability with detuning maps (#539 + #564). These changes allow for programming analog sequences with local shifts in detuning. Check out the tutorial for more info.
- Give access to all EOM block parameters and allow for phase drift correction (#566): Allows for automatic correction of phase drift from detuned delays in EOM mode through a phase shift. Also gives access to calculation of
detuning_off
throughRydbergEOM.calculate_detuning_off()
. - Adding
register_is_from_calibrated_layout()
andis_calibrated_layout()
toDevice
(#586) - Override
optimal_detuning_off
on stored calls (#588): The actualdetuning_off
parameter now replacesoptimal_detuning_off
whenever possible.
Deprecations
- The legacy serializer (
Sequence.serialize()
+Sequence.deserialize()
) has been deprecated. The abstract representation should be used instead (Sequence.to_abstract_repr()
+Sequence.from_abstract_repr()
).
Removals
PasqalCloud
:get_batch()
andcreate_batch()
have been removed following deprecation in v0.14.0.
Documentation
- A new "Conventions" page was added, outlining all the conventions followed in Pulser and their implications.
Changelog
c2175d8 Release v0.15.0
5090ec6 Bump version to v0.15.0
b51a23d Add DMM, methods of RegisterLayout inherited from Traps, Result (#587)
e0943d9 Override optimal_detuning_off
on stored calls (#588)
3e40319 Deprecate legacy serializer + Improve error messages (#585)
9e05982 Adding register_is_from_calibrated_layout and is_calibrated_layout to Device (#586)
c08dfa8 Adding dmm config and modulation to sequence (#564)
5256cf8 Use jobs order provided by the cloud (#583)
5270944 Clarify the Conventions in Pulser (#573)
d9e1fd2 Change EmuTN default sampling rate (#578)
b5a75af Fix switch device err message (#581)
25b54eb Pin matplotlib < 3.8 (#582)
c4693ed Bug Fix: error message in switch_device (#580)
2315989 Give access to all EOM block parameters and allow for phase drift correction (#566)
f742f5c Update to jsonschema > 4.18, Sphinx < 7 (#572)
0d8d4b1 Comply with latest style guidelines (#567)
d5ac020 Adding DetuningMap, DMM (#539)
5db7595 Bring in changes from 0.14.1 hotfix
b1e6393 Bring in changes from the v0.14.0 release
f56a19f Remove expired deprecations in pulser-pasqal
3df29bd Bump version to 0.15dev0
Contributors
A special shoutout goes to the contributors to this release:
- Antoine Cornillot
- Henrique Silvério
- Louis Vignoli
A huge thank you to all Pulser contributors, both to this and past versions.