Skip to content

Releases: pasqal-io/Pulser

Release v0.17.1

15 Feb 10:13
b50a378
Compare
Choose a tag to compare

Bugfix

  • Fix definition of slope in RampWaveform. (#649)
  • Fix simulation of SPAM noise in XY in QutipEmulator. (#649)

Changelog

b50a378 FIX: SPAM noise in XY, Slope of RampWaveform (#649)

Release v0.17.0

06 Feb 11:09
Compare
Choose a tag to compare

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 and RegisterLayout to the abstract representation (#627): These objects can now be serialized to and deserialized from the abstract representation on their own through their to_abstract_repr() and from_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 this

    from 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 and SimConfig, dephasing_prob, depolarizing_prob and eff_noise_probs have been deprecated in favour of dephasing_rate, depolarizing_rate and eff_noise_rates.
  • Register.rotate() has been deprecated. The new and preferred Register.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

23 Jan 15:03
6925aaa
Compare
Choose a tag to compare

Bugfix

  • Temporarily restrict scipy<1.12 to avoid qutip incompatiblity (#632)

Changelog

6925aaa Temporarily restrict scipy<1.12 to avoid qutip incompatiblity (#632)

Release v0.16.1

14 Dec 15:05
104801a
Compare
Choose a tag to compare

Dependencies

  • Adds support for jsonschema == 4.17.3

Changelog

104801a Support version v4.17.3 Jsonschema (#625)

Release v0.16.0

04 Dec 11:06
Compare
Choose a tag to compare

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

16 Nov 10:17
e1dcf47
Compare
Choose a tag to compare

Bugfix

  • Fixes the use of a Parametrized phase in EOM mode.
  • Fixes the typing tests that failed due to the latest release of referencing.

Changelog

e1dcf47 Release v15.3 (#611)

Release v0.15.2

09 Oct 11:57
a531a50
Compare
Choose a tag to compare

Bugfix

  • Fixes serialization of phase_shift() calls with a custom basis
  • Adds support for calls to Sequence.target() and Sequence.target_index() with multiple qubits

Changelog

a531a50 Abstract representation fixes (#595)

Release v0.15.1

06 Oct 14:52
adbac8b
Compare
Choose a tag to compare

Bugfix

  • Explicitly defines encoding="utf-8" in calls to open() to comply with systems whose default encoding is not UTF-8.

Changelog

adbac8b Explicitly define encoding in open() calls (#593)

Release v0.15.0

27 Sep 16:55
c2175d8
Compare
Choose a tag to compare

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 through RydbergEOM.calculate_detuning_off().
  • Adding register_is_from_calibrated_layout() and is_calibrated_layout() to Device (#586)
  • Override optimal_detuning_off on stored calls (#588): The actual detuning_off parameter now replaces optimal_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() and create_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.

Release v0.14.1

24 Jul 11:09
41fee7c
Compare
Choose a tag to compare

Bugfix

  • Improvements to Sequence.switch_device() (#563):
    • Stops enforcing that every channel has an EOM config, only those that are using it
    • Checks for the channel type when matching channels

Changelog

41fee7c Improvements to Sequence.switch_device() (#563)