Releases: pasqal-io/Pulser
Release v0.20.0
Main changes
- Reworking the NoiseModel interface (#710)
- Allow modification of the EOM setpoint without disabling EOM mode (#708)
- Enable definition of effective noise operators in all basis (#716)
- Add leakage (#720)
- Support differentiability through Torch tensors (#703)
- Add from_abstract_repr to Device and VirtualDevice (#727)
- [FEAT] Handle batches with partial results (#707)
- Add open batches to pulser-pasqal (#701)
Deprecations
- With the new
NoiseModelinterface,noise_typesshould no longer be explicitly provided and the default values are removed. Instead, only the relevant noise parameters should be provided and the associated noise types are activated accordingly. - With the addition of open batches, all references to "submission" as an identifier of a batch were replaced by "batch". This forced some deprecations, namely:
RemoteResults(submission_id:str, ...)is nowRemoteResults(batch_id: str, ...)RemoteResults.get_status() -> SubmissionStatusis deprecated in favor ofRemoteResults.get_batch_status() -> BatchStatus
All changes were introduced in a backwards compatible way.
Changelog
499d961 Release v0.20.0
f14b81a Bump version to 0.20.0
c12306a Add open batches to pulser-pasqal (#701)
7af1d2d [FEAT] Handle batches with partial results (#707)
02122e2 Add from_abstract_repr to Device and VirtualDevice (#727)
2f5e56c Soften switching device with strict conditions (#724)
e21d3a8 Support differentiability through Torch tensors (#703)
6c12156 Allow specification of job IDs in RemoteResults (#718)
8550104 Make total_bottom_detuning mandatory (#728)
393526f Add leakage (#720)
c9f7957 Fix failing pipeline for test of relaxation noise in qutrit state (#719)
0455ed1 Enable definition of effective noise operators in all basis (#716)
5335305 Hide Rabi frequency when drawing DMM channels (#717)
82bedf5 Add leakage noise in NoiseModel (#714)
acf136f Defining dephasing and depolarizing operators with projectors (#715)
03fbb6e Allow modification of the EOM setpoint without disabling EOM mode (#708)
1b3735d Reworking the NoiseModel interface (#710)
e16257a Add states labels to Channels and SequenceSamples (#705)
31db5c7 Bump version to v0.20dev0
Contributors
A special shoutout goes to the contributors and reviewers involved in this release:
- Antoine Cornillot
- Henrique Silvério
- Matthieu Moreau
- Oliver Gordon
- Vytautas Abramavicius
A huge thank you to all Pulser contributors, both to this and past versions.
Release v0.19.0
Main changes
- Add option to switch the Sequence register (#684)
- Support arbitrary phase-modulated pulses (#688)
- Optionally skip JSON schema validation after serialization (#693)
- Support for 3D registers and layouts in the abstract representation (#696)
- Allow backends to mimic QPU validation locally (#685)
Fixes
- Ignore the phase reference on the DMM channel's pulses (#700)
Changelog
1304a5d Release v0.19.0
7a89866 Bump version to v0.19.0
f224984 Allow backends to mimic QPU validation locally (#685)
e54c743 Ignore the phase reference on the DMM channel's pulses (#700)
acd8911 Support for 3D registers and layouts in the abstract representation (#696)
df8a77b Fix OS-precision-dependent unit test (#694)
a410687 Optionally skip JSON schema validation after serialization (#693)
873d3df Support arbitrary phase-modulated pulses (#688)
101ef6c Bring in changes from the v0.18.1 hotfix
51ea35e Fix typo in check-release CI job
3035554 Bump version to 0.19dev1
e81417b Bring in changes from v0.18.1 hotfix
3350807 Add lightshift coefficients to RydbergEOM (#687)
8083dee Add option to switch the Sequence register (#684)
131205f Bump version to 0.19dev0
Contributors
A special shoutout goes to the contributors and reviewers involved in this release:
- Aleksander Wennersteen
- Antoine Cornillot
- Henrique Silvério
- Matthieu Moreau
A huge thank you to all Pulser contributors, both to this and past versions.
Release v0.18.1
Release v0.18.0
New features
- Enable digital simulation (#652)
- Enabling definition of multiple noise channels and noise channels in XY (#647)
- Improve access to output modulation durations (#663)
- Adding relaxation noise channel (#675)
- Centralize all backend imports from a single
pulser.backendsmodule (#678) - Add hyperfine dephasing rate to
NoiseModel(#680) - Add optional default noise models to devices (#676)
- Rectangular lattice register and layout (#665)
Removals
Fixes
- Redefine slope of RampWaveform (#644)
Changelog
ddc6682 Bump version to v0.18.0
227b859 Sync 'master' and 'develop'
c695373 Rectangular lattice register and layout (#665)
d83c876 Add missing QPU validation fields to the Device class (#682)
4981ca6 Add optional default noise models to devices (#676)
831ca04 Update pasqal-cloud to ~=0.8.1 (#681)
96a8c34 Add hyperfine dephasing rate to NoiseModel (#680)
716b86b Centralize all backend imports from a single pulser.backends module (#678)
34b41b4 Fix CI tests on "macos" for python < 3.10 (#677)
f303138 Adding relaxation noise channel (#675)
188d21d Remove deprecated noise arguments (#674)
7df66e3 Block add() on DMM channels (#672)
0f6e3dd Improve access to output modulation durations (#663)
2ddd789 Merge pull request #670 from pasqal-io/v0.18dev4
6eb736d [HOTFIX] Restrict SciPy to < 1.13 due to breaking Qutip (#668)
71b8e03 Define max_step from minimum variations of samples, nsteps (#666)
85615c5 Upgrade black version to 24.3.0 to fix vulnerability (#662)
c8dcef0 Merge pull request #657 from pasqal-io/bump_v0.18dev3
ebed93a Merge v0.17.3 into develop
cadd576 Bump version to v0.18dev2
153b7cf Bring in changes from v0.17.2
bcb78cc Enable digital simulation (#652)
c2d5b6c Enabling definition of multiple noise channels and noise channels in XY (#647)
61d75f0 Merge pull request #650 from pasqal-io/release_v0.17.1
6a19445 Release v0.17.1
20e6765 FIX: Redefine slope of RampWaveform (#644)
7b7918b Update Github Actions (#641)
21a47f3 Remove Register.rotate() (#642)
d9125bc Bump version to 0.18dev0
Contributors
A special shoutout goes to the contributors to this release:
- Aleksander Wennersteen
- Antoine Cornillot
- Henrique Silvério
- Soufiane Kaghad
A huge thank you to all Pulser contributors, both to this and past versions.
Release v0.17.3
Release v0.17.2
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
RegisterandRegisterLayoutto 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
pulsernamespace. 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
NoiseModelandSimConfig,dephasing_prob,depolarizing_probandeff_noise_probshave been deprecated in favour ofdephasing_rate,depolarizing_rateandeff_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.