Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initialize DefaultQubit2 local rng from global rng if no seed provided #4394

Merged
merged 9 commits into from
Jul 28, 2023

Conversation

albi3ro
Copy link
Contributor

@albi3ro albi3ro commented Jul 26, 2023

Previously, users made workflows repeatable by specifying a global seed via np.random.seed. Now that DefaultQubit2 has a local random number generator, it is not influenced by the global seed. This is a breaking change in behaviour.

We want each device to be using a local rng so other calls to the global rng will not affect device samples, and so the device can be seeded on initialization. We don't want to change the use of a local rng.

But, we can still make the local rng coupled to any seed set globally. We can simply seed the rng from the global state if no seed is provided.

>>> tape = qml.tape.QuantumScript([qml.Hadamard(0)], [qml.sample(wires=0)], shots=5)
>>> np.random.seed(42)
>>> DefaultQubit2().execute(tape)
array([ True,  True, False, False,  True])
>>> np.random.seed(42)
>>> DefaultQubit2().execute(tape)
array([ True,  True, False, False,  True])
>>> np.random.seed(42)
>>> DefaultQubit2(seed=1234).execute(tape)
array([ True, False,  True, False, False])

Alternative option:

Add an additional option for seed that will allow us to distinguish between:

  1. seed rng with None
  2. seed rng from np.random.randint

Maybe a default value of "global_rng_seed" or something like that different from None.

@albi3ro albi3ro requested review from trbromley and a team July 26, 2023 14:38
@frederikwilde
Copy link
Contributor

I'd vote for the alternative option you propose. I think obtaining a seed from the global NumPy random state is something one should be very careful about, and in general probably try to avoid. Using a dedicated value like "global_rng_seed" or "global_numpy_seed" will ensure that no user will make this choice accidentally.

@timmysilv
Copy link
Contributor

maybe I'm playing devil's advocate a bit, but would users care? I would guess that 9 times out of 10, receiving seed=None means the user didn't set it because they don't care what the seed is. In which case, the global state seems fine. If you think this introduces some other danger, then I'm fine with adding a different default from None. But again, I think it will just work like None would.

I made a similar call in my recent change to drawing stuff, which is like the proposed global_numpy_seed value, except that the default is still None. Here, this allows users to say "keep using the global numpy seed" if it's important to them, but otherwise just use some default seed like we are doing today. I'd rather the inverse (a custom option like "no_global_seed") so the default (None) uses the global seed (because again, it would usually be fine), but allow a user to ask not to use the global seed if it causes problems for them.

@frederikwilde
Copy link
Contributor

@timmysilv I agree that 9 times out of 10 when the user goes with the default (seed=None) they won't encounter any problems if the random state is derived from the global NumPy random state. The way I see this becoming a problem at the 10th time, is that the user sets the global NumPy random state somewhere else in their code and then is surprised later on that the global seed they set for a different part of their computation affects the outcomes of the circuit simulations. Or even worse, they don't notice it and publish data with unintended correlations.

Obviously this would be a user mistake to begin with, since they should specify a seed and also not use the global random state. And the alternative (seed=None using OS entropy) is also far from ideal, since it makes everything non-reproducible, but at least it won't introduce unintended correlations.

@codecov
Copy link

codecov bot commented Jul 27, 2023

Codecov Report

Merging #4394 (8fa7648) into master (f186064) will increase coverage by 0.00%.
Report is 1 commits behind head on master.
The diff coverage is 100.00%.

@@           Coverage Diff            @@
##           master    #4394    +/-   ##
========================================
  Coverage   99.76%   99.76%            
========================================
  Files         351      351            
  Lines       32535    32661   +126     
========================================
+ Hits        32458    32584   +126     
  Misses         77       77            
Files Changed Coverage Δ
pennylane/devices/experimental/default_qubit_2.py 100.00% <100.00%> (ø)
pennylane/devices/qubit/__init__.py 100.00% <100.00%> (ø)
pennylane/devices/qubit/adjoint_jacobian.py 100.00% <100.00%> (ø)
pennylane/devices/qubit/simulate.py 100.00% <100.00%> (ø)
pennylane/qnode.py 100.00% <100.00%> (ø)

@timmysilv
Copy link
Contributor

I'm not sure how much I'm worried about that. From where I stand, the RNG seed is a nice thing to have for reproducibility, but is otherwise unimportant. It's not like a physical quantum computer has np.random.seed. Your results won't be "wrong" because you used a seed you didn't mean to use, but they might be harder to share/reproduce exactly. Anyway, I'm not sure where this leaves us

@frederikwilde
Copy link
Contributor

I agree. But isn't this even more of an argument for making seed=None lead to "true" randomness? What I am most concerned about is people having unintended correlations in their numerical simulations, since this can be tricky to detect sometimes.

Copy link
Contributor

@frederikwilde frederikwilde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great to me! 💯

tests/devices/experimental/test_default_qubit_2.py Outdated Show resolved Hide resolved
@albi3ro albi3ro merged commit 7b03161 into master Jul 28, 2023
42 checks passed
@albi3ro albi3ro deleted the dev-rng-from-global-state branch July 28, 2023 17:27
mudit2812 pushed a commit that referenced this pull request Aug 2, 2023
…ded (#4394)

* initialize dev rng from global state

* change default value to global str

* Apply suggestions from code review

Co-authored-by: Frederik Wilde <[email protected]>

* Update tests/devices/experimental/test_default_qubit_2.py

* fix indentation

---------

Co-authored-by: Frederik Wilde <[email protected]>
mudit2812 added a commit that referenced this pull request Aug 15, 2023
* Added qubit reuse and reset

* Fixed `defer_measurements`

* Removed `MeasurementValue`

* Update type hint

* Removed `MeasurementValue`

* Add VJP/JVP capabilities to `DefaultQubit2` (#4374)

* Add vjp/jvp capabilities

* pylint

* some tests for simulate

* Fix syntax error

* Split simulate

* Add some tests

* pylint

* more device tests

* pylint and fix tests

* change tracker keys

* Update pennylane/devices/qubit/adjoint_jacobian.py

Co-authored-by: Christina Lee <[email protected]>

* other places

* Add docs for simulate funcs

* revert suggestion

* Remove validation

* Add validation for use_device_gradient

* remove None case

* use device gradient in validation

* changelog

---------

Co-authored-by: Christina Lee <[email protected]>

* Initialize `DefaultQubit2` local rng from global rng if no seed provided (#4394)

* initialize dev rng from global state

* change default value to global str

* Apply suggestions from code review

Co-authored-by: Frederik Wilde <[email protected]>

* Update tests/devices/experimental/test_default_qubit_2.py

* fix indentation

---------

Co-authored-by: Frederik Wilde <[email protected]>

* Changes to remove use of `Operator.__eq__` (#4398)

* Testing changes to operator __eq__

* Updated until `nodes_between`

* Updated metric tensor, circuit graph

* Updating `qml.equal`

* Linters

* Updated tape tests

* Added coverage

* Updates changelog

* Removed changes to __eq__ and __hash__

* Update pennylane/operation.py

Co-authored-by: Matthew Silverman <[email protected]>

* Update pennylane/ops/functions/equal.py

Co-authored-by: Christina Lee <[email protected]>

---------

Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Christina Lee <[email protected]>

* Make autoray changes backwards compatible (#4397)

* Fixes for new autoray version

* unused import

* Use if instead of try-except

* Fix case of two torch tensors

* pin autoray

* dispatch

* test with new version

* Raise warning in Operator `__eq__` and `__hash__` about change in behaviour (#4144)

* Updated Operator

* Added tests

* Updated warning

* black

* Updated warning text

* black

* Update doc/development/deprecations.rst

* Updated docs, tests

* Updated deprecations.rst

* Fixing tests

* Updated tests and warnings

* Pylint

* Testing warnings

* Testing changes

* Updated tests

* testing what breaks

* Checking tests

* Testing changes

* Testing changes to operator __eq__

* Updated until `nodes_between`

* Updated metric tensor, circuit graph

* Updating `qml.equal`

* Linters

* Updated tape tests

* Added coverage

* Updates changelog

* Removed changes to __eq__ and __hash__

* Update pennylane/operation.py

Co-authored-by: Matthew Silverman <[email protected]>

* Testing changes to operator __eq__

* Updated until `nodes_between`

* Updated metric tensor, circuit graph

* Updating `qml.equal`

* Linters

* Fixes for new autoray version (#4396)

* Fixes for new autoray version

* unused import

* Use if instead of try-except

* Fix case of two torch tensors

* Updated tape tests

* Add ability to apply `TransformProgram` to batch of tapes (#4364)

* Draft structure

* draf exec

* Simple execute

* Update

* More tests

* Update

* Update exec

* Pylint and black

* Update tests

* Update more tests

* More tests

* changelog

* Coverage

* Cover fix

* pylint

* Pylint

* Pylint tests

* proposed changes to transform program integration

* oops

* add to legacy, remove cotransform support

* just transform program call component

* just transform program call component

* no longer support cotransforms, fix _batch_postprocessing

* some more testing

* test null postprocessing function

* docstring, rename batch_slices to slices, black

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <[email protected]>

---------

Co-authored-by: rmoyard <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>

* torch qnode integration with DefaultQubit2 (#4392)

* copy-paste torch file; replace device in most places

* make tests work; little changes in pennylane

* pylint fix

* changelog

* update test name and docstring for hamiltonian_expand

* minimal test for single-shot bugfix

* Added coverage

* Updates changelog

* Removed changes to __eq__ and __hash__

* Update pennylane/operation.py

Co-authored-by: Matthew Silverman <[email protected]>

* Updated deprecations to 0.32

* Added warnings

* Trigger CI

* Removed docstrings

* Added correctness test

* Trigger CI

---------

Co-authored-by: Tom Bromley <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Edward Jiang <[email protected]>
Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: rmoyard <[email protected]>

* Tensorflow qnode integration with DefaultQubit2 (#4393)

* copy-paste tf files

* make tests work; little changes in pennylane

* changes coming from torch PR first

* update remaining test files

* support tf.function by adding empty kwargs

* update copyright year in test files

* changelog

* put all qnode integrations together

* remove turning warning into error (#4409)

* Fix jax.ad deprecation. (#4403)

* Fix jax.ad deprecation.

* Update changelog.

* Print name of requested device in DeviceError.

* Force push.

* Fix pytest.raises in test_device.py

* fix `has_decomposition` for ControlledQubitUnitary (#4407)

* fix has_decomposition for ControlledQubitUnitary

* changelog

* add comment; add test when super returns False

* [sc-36527]: Add new robots.txt to doc build to hide latest build from search engine (#4423)

* Adding a `wire_order` kwarg to `Tensor.sparse_matrix()` (#4424)

* `wire_order` kwarg for `Tensor.sparse_matrix()`

* update changelog

* swap kwarg order

Co-authored-by: Matthew Silverman <[email protected]>

* adapt docstring to the kwarg order swap

* add comment about using  over

---------

Co-authored-by: Matthew Silverman <[email protected]>

* Updated defer_measurements post-merge

* Fixed defer_measurements

* Updated test

* Updated class signature

* Updating keys

* Updated id process

* Updated changelog

* Updated changelog

* Adds shots to experimental device interface and integrate with QNode (#4388)

* default shots on new device interface

* make fewer changes and clean stuff up later

* fix tests, lint, and sphinx

* Update doc/releases/changelog-dev.md

* Update tests/interfaces/test_set_shots.py

Co-authored-by: Matthew Silverman <[email protected]>

* Update tests/devices/experimental/test_default_qubit_2.py

* make set_shots error with new device, shots type hinting

* Update doc/releases/changelog-dev.md

Co-authored-by: Tom Bromley <[email protected]>

* Update pennylane/interfaces/set_shots.py

Co-authored-by: Matthew Silverman <[email protected]>

* Apply suggestions from code review

* Update tests/devices/experimental/test_default_qubit_2.py

* merge problem

* black

* Update doc/releases/changelog-dev.md

* Update pennylane/qnode.py

Co-authored-by: Edward Jiang <[email protected]>

---------

Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Tom Bromley <[email protected]>
Co-authored-by: Edward Jiang <[email protected]>

* QNSPSA bugfix (#4421)

* qnspsa bugfix

* Update doc/releases/changelog-dev.md

* Update tests/optimize/test_qnspsa.py

Co-authored-by: Matthew Silverman <[email protected]>

---------

Co-authored-by: Matthew Silverman <[email protected]>

* Update changelog

* Updated defer_measurements for device wires

* Removed error from drawable layers

* Update changelog

* Updated drawable layers test

* Updated signatures

* Updated signatures

* Merge `v0.31.1-rc0` branch into master (#4428)

* Support `HardwareHamiltonian` pulses in `stoch_pulse_grad` (#4215)

* single out gradient transform checks

* rename stochastic pulse gradient file

* unify gradient_analysis and grad_method_validation

* continue restructure of analysis+validation

* CV

* black

* modularize more

* more modularizing

* black

* tiny [skip ci]

* [skip ci] lint

* remove dummy test

* test fix

* add test file to linting test file

* test fixes, docstrings

* code review

* docstring gradient_analysis_and_grad_method_validation

* move first fun

* code review:move functions

* test regex

* regexs

* move and promote reorder_grads

* tmp

* more tmp

* test cases, contractions

* lint

* docstring

* even more tmp

* cleanup

* black

* tmp

* lint

* move stoch_pulse_gradient.. files back to pulse_gradient...

* move stoch_pulse_gradient.. files back to pulse_gradient...

* lint

* rename

* extend functions and tests

* lint and black

* changelog

* improve

* update example to include non-Pauli word generator

* add jit test with pauli sentence

* tmp

* debugging, docstring, extend test

* review

* optimize for Pauli words

* Apply suggestions from code review

Co-authored-by: Romain Moyard <[email protected]>

* test cases code review

* fix parametrization

* drafting

* working prototype

* finish merge; cleanup

* changelog

* comments

* [skip ci]

* raising an error; cleanup [skip ci]

* Apply suggestions from code review

Co-authored-by: Korbinian Kottmann <[email protected]>

* change contraction idea

* typo in docs

* tests

* remove prints

* fix test

* test descriptions

* fix merge

* format

* code review; test coverage

* coverage reordering

* fix

* trigger CI

* trigger

* clear caches

* trigger

* trigger

---------

Co-authored-by: Romain Moyard <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>

* Fix batching of derivative tapes in autograd (#4245)

* Fix `expval` of `Sum` with broadcasting (#4275)

* fix bug and add test

* changelog addition

* Various doc fixes (#4268)

* Various things while validating changes for 0.31 (#4279)

* change link in setup.py

* fix qchem docs

* fix qcut docs

* rename string function (#4278)

* Update docs (#4269)

* Incrementing the version number to `v0.32.0-dev` (#4266)

* pre-release for v0.31.0

* Update doc/releases/changelog-0.31.0.md

* Incrementing the version number to v0.32.0-dev

* Update installation.rst (#4247)

Update Python version to 3.8

Co-authored-by: Romain Moyard <[email protected]>

* docs typos

* don't include updating versioning from master

* don't include python requirements from master

* update example output for shot_vector

* Update pennylane/operation.py

Co-authored-by: Matthew Silverman <[email protected]>

* fix entirely unrelated rendering issue

---------

Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Catalina Albornoz <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>

* Minor fixes for v0.31 (#4280)

* Added fixes

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Matthew Silverman <[email protected]>

* Update pennylane/ops/qubit/matrix_ops.py

---------

Co-authored-by: Matthew Silverman <[email protected]>

* add graphviz to RTD apt packages (#4284)

* Pulse gradient methods docs polish (#4282)

* stoch pulse docs update

* generator method docs update

* small fixes / typos

* Update pennylane/gradients/pulse_generator_gradient.py

Co-authored-by: David Wierichs <[email protected]>

* Update pennylane/gradients/pulse_generator_gradient.py

Co-authored-by: David Wierichs <[email protected]>

* Update pennylane/gradients/pulse_generator_gradient.py

Co-authored-by: David Wierichs <[email protected]>

* code review

* Update pennylane/gradients/pulse_gradient.py

Co-authored-by: David Wierichs <[email protected]>

* code review

* Update pennylane/gradients/pulse_generator_gradient.py

Co-authored-by: Frederik Wilde <[email protected]>

* large |

* add equal to

---------

Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: Frederik Wilde <[email protected]>

* 0.31 release notes (#4218)

* Add categories

* First pass at categorization

* More categorization

* More categorization

* Typo

* Add first half of resource estimation text

* Improvements

* Add custom ops resource estimation

* Update wording

* Improve entry

* Move

* Move

* Move

* Update

* Add details about Torch and Keras

* Add entry

* Add contributor

* Add to Keras and Torch layer section

* Add saving and loading details

* Add entry

* Add contributor

* Add contributor

* Add qutrit basis state example

* first round of edits

* Remove

* Add entry for one_qubit_decompostition

* more changes

* Reorder sections

* fermi blurb

* minor

* Update

* Add

* Update doc/releases/changelog-dev.md

Co-authored-by: Isaac De Vlugt <[email protected]>

* Update doc/releases/changelog-dev.md

Co-authored-by: Isaac De Vlugt <[email protected]>

* update fermionic code examples

* additions

* minor

* restructure sections

* minor

* minor

* reorder fermi section

* fixed fermi section

* various small changes

* Tweaks to fermionic

* Tweaks to resource and UH sections

* Improvements

* Move

* Update doc/releases/changelog-0.31.0.md

* minior

* minor

* minor

* minor

* minor

* Update

* minor

* use from_string for fermi ops

* Add link

* Update doc/releases/changelog-0.31.0.md

* added links and other minor things

* Update doc/releases/changelog-0.31.0.md

* Update doc/releases/changelog-0.31.0.md

* minor

* minor

* deleted extraneous notebook

* Apply suggestions from code review

Co-authored-by: Tom Bromley <[email protected]>

---------

Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: soranjh <[email protected]>

* Allow updating dense kwarg in call of ParametrizedEvolution (#4285)

* add dense kwarg to call

* update changelog

* update changelog better

* changelog formatting

---------

Co-authored-by: Korbinian Kottmann <[email protected]>

* Remove line in code example to make docs render properly. (#4290)

* Pin autograd to <= 1.5 (#4289)

* pin autograd to 1.5 or less

* allow autograd 1.4 as well

* pin for doc build as well

* Add dm_from_state_vector function to qml.math docs page. (#4291)

* Fix `ShotAdaptiveOptimizer` to prevent removing shot vector axes (#4240)

* Updated `ShotAdaptiveOpt` per suggestion in issue

* Reformatting

* Testing changes

* Fixed bug

* Updated min to max

* Allow classical shadow measurements in new device (#4162)

* Support classical shadow measurements

* Add shot vector tests

* Address comments

* Add comment for diag_list

* Apply suggestions from code review

Co-authored-by: Christina Lee <[email protected]>

* Fix

* Add unit tests for process_state_with_shots

* Update preprocessing

* Apply suggestions from code review

Co-authored-by: Frederik Wilde <[email protected]>

* Address PR comments

* set rng for test

---------

Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: Frederik Wilde <[email protected]>

* Add the `fermi` module docs (#4250)

* support trainable Sum observables (#4251)

* support trainable Sum observables (analytic only)

* just use pre-rotated state; use super with finite shots

* fix tests; add test for trainable Sum coeffs

* changelog

* use overlapping wires to prove they work

* add hacky gradient support

* Revert "add hacky gradient support"

This reverts commit 09009c8.

* set interface=None to keep test behaviour

* Integrate experimental device with the `QNode` (#4196)

* integrate qnode with new device

* some diff method improvements

* repr methods

* add tests, always pass config to device

* add tests, always pass config to device

* final test

* pylint

* autograd integration tests

* pylint

* Update pennylane/interfaces/execution.py

Co-authored-by: Matthew Silverman <[email protected]>

* pass shots through methods

* changelog

* revert set shots change

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <[email protected]>

* revert executionc hange, pylint:

* pylint again

---------

Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>

* pre-release for v0.31.0 (#4265)

* pre-release for v0.31.0

* Update doc/releases/changelog-0.31.0.md

* Support `HardwareHamiltonian` pulses in `stoch_pulse_grad` (#4215)

* single out gradient transform checks

* rename stochastic pulse gradient file

* unify gradient_analysis and grad_method_validation

* continue restructure of analysis+validation

* CV

* black

* modularize more

* more modularizing

* black

* tiny [skip ci]

* [skip ci] lint

* remove dummy test

* test fix

* add test file to linting test file

* test fixes, docstrings

* code review

* docstring gradient_analysis_and_grad_method_validation

* move first fun

* code review:move functions

* test regex

* regexs

* move and promote reorder_grads

* tmp

* more tmp

* test cases, contractions

* lint

* docstring

* even more tmp

* cleanup

* black

* tmp

* lint

* move stoch_pulse_gradient.. files back to pulse_gradient...

* move stoch_pulse_gradient.. files back to pulse_gradient...

* lint

* rename

* extend functions and tests

* lint and black

* changelog

* improve

* update example to include non-Pauli word generator

* add jit test with pauli sentence

* tmp

* debugging, docstring, extend test

* review

* optimize for Pauli words

* Apply suggestions from code review

Co-authored-by: Romain Moyard <[email protected]>

* test cases code review

* fix parametrization

* drafting

* working prototype

* finish merge; cleanup

* changelog

* comments

* [skip ci]

* raising an error; cleanup [skip ci]

* Apply suggestions from code review

Co-authored-by: Korbinian Kottmann <[email protected]>

* change contraction idea

* typo in docs

* tests

* remove prints

* fix test

* test descriptions

* fix merge

* format

* code review; test coverage

* coverage reordering

* fix

* trigger CI

* trigger

* clear caches

* trigger

* trigger

---------

Co-authored-by: Romain Moyard <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>

* Fix batching of derivative tapes in autograd (#4245)

* Fix `expval` of `Sum` with broadcasting (#4275)

* fix bug and add test

* changelog addition

* Various doc fixes (#4268)

* Various things while validating changes for 0.31 (#4279)

* change link in setup.py

* fix qchem docs

* fix qcut docs

* rename string function (#4278)

* Update docs (#4269)

* Incrementing the version number to `v0.32.0-dev` (#4266)

* pre-release for v0.31.0

* Update doc/releases/changelog-0.31.0.md

* Incrementing the version number to v0.32.0-dev

* Update installation.rst (#4247)

Update Python version to 3.8

Co-authored-by: Romain Moyard <[email protected]>

* docs typos

* don't include updating versioning from master

* don't include python requirements from master

* update example output for shot_vector

* Update pennylane/operation.py

Co-authored-by: Matthew Silverman <[email protected]>

* fix entirely unrelated rendering issue

---------

Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Catalina Albornoz <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>

* Minor fixes for v0.31 (#4280)

* Added fixes

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Matthew Silverman <[email protected]>

* Update pennylane/ops/qubit/matrix_ops.py

---------

Co-authored-by: Matthew Silverman <[email protected]>

* add graphviz to RTD apt packages (#4284)

* Updated test

---------

Co-authored-by: Edward Jiang <[email protected]>
Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: Frederik Wilde <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>
Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: lillian542 <[email protected]>
Co-authored-by: Catalina Albornoz <[email protected]>

* Make links to qml.eigvals and the eigvals method appear distinctly. (#4292)

* Make links to qml.eigvals and the eigvals method appear distinctly in the docstring of compute_method.

* Make links more informative.

---------

Co-authored-by: Matthew Silverman <[email protected]>

* Device API review (#4283)

* fix  example

* minor docstring change in `_zyz_decomposition`

* update decomposition examples

* update counts & samples docstrings

* Shots class link

* Fix code block

* Change note

Co-authored-by: Edward Jiang <[email protected]>

---------

Co-authored-by: Edward Jiang <[email protected]>

* remove duplicate controlled operation entries (#4298)

* Refer to class QNode in ml layers (#4299)

* Specs dict fix (#4286)

* Add copy function to SpecsDict.

* black

* Adjust docs to not throw warnings from deprecated specs keys.

* Formatting fix.

* update doc string

* update doc string

---------

Co-authored-by: Jay Soni <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>

* Fermionic ops in changelog (#4302)

* bump lightning to 0.31 in setup.py, pin scipy to [1.8,1.10] (#4304)

* bump lightning to 0.31 in setup.py

* trigger ci

* pin scipy

* Revert "pin scipy"

This reverts commit 492ad40.

* take Soran's forward fix for scipy fac2

* revert the scipy un-pinning and forward fix - just pin scipy

* remove lower bound in files that didn't have them

* remove autograd lower bound

* Implement new Dataset class using HDF5 (#4369)

* rename changelog

* test

* rename changelog back

* changes from 9f5939e

* changes from b6dc487

* changes until 01d9141

* changes until 935832e

* changes until 76c4ae8

* trigger ci

* newline

* revert

* changes until 3b59d71

* trigger ci

* Make qchem compatible with scipy factorial2 (#4387)

* pull diff from #4321

* unpin scipy

* Release notes and version bump (#4385)

* changelog and version bump

* Add qchem changes

* Apply suggestions from code review

Co-authored-by: Tom Bromley <[email protected]>

---------

Co-authored-by: Tom Bromley <[email protected]>

* pin autoray (#4399)

* raise error with actual identifier name (#4405)

* Escape special characters in Dataset URL (#4412)

* url escape

* remove debug

* update changelog

* pylint

* Update doc/releases/changelog-0.31.1.md

Co-authored-by: Matthew Silverman <[email protected]>

---------

Co-authored-by: Matthew Silverman <[email protected]>

* BUGFIX: ensure that operators are not queued upon deserialization (#4414)

* ensure that operators are not queued upon deserialization

* Update tests/data/attributes/operator/test_operator.py

* Updated the datasets docs (#4400)

* Updated the datasets docs

* Update doc/Makefile

* a few more

* Apply suggestions from code review

Co-authored-by: Utkarsh <[email protected]>

* Apply suggestions from code review

Co-authored-by: Diego <[email protected]>

* Update pennylane/data/data_manager/__init__.py

Co-authored-by: Josh Izaac <[email protected]>

* fix typo

* fix typo

---------

Co-authored-by: Utkarsh <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Diego <[email protected]>

* Fix error message when successively loading the same dataset (#4422)

* Fix Attribute Error when accessing identifiers on partial dataset (#4413)

* no exception if identifiers are not downloaded

* always download identifiers

* Update tests/data/test_dataset.py

Co-authored-by: Matthew Silverman <[email protected]>

* add error message

---------

Co-authored-by: Matthew Silverman <[email protected]>

* Update tests/tape/test_qscript.py

* Update setup.py

* Update requirements.txt

Co-authored-by: Edward Jiang <[email protected]>

---------

Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: lillian542 <[email protected]>
Co-authored-by: Catalina Albornoz <[email protected]>
Co-authored-by: Mudit Pandey <[email protected]>
Co-authored-by: Frederik Wilde <[email protected]>
Co-authored-by: Tom Bromley <[email protected]>
Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: BorjaRequena <[email protected]>
Co-authored-by: Jay Soni <[email protected]>
Co-authored-by: Jack Brown <[email protected]>
Co-authored-by: Josh Izaac <[email protected]>
Co-authored-by: Utkarsh <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: albi3ro <[email protected]>

* Integrate `TransformProgram` with `QNode` (#4404)

* Draft structure

* draf exec

* Simple execute

* Update

* More tests

* Update

* Update exec

* Pylint and black

* Update tests

* Update more tests

* More tests

* changelog

* Coverage

* Cover fix

* pylint

* Pylint

* Pylint tests

* proposed changes to transform program integration

* oops

* add to legacy, remove cotransform support

* just transform program call component

* just transform program call component

* no longer support cotransforms, fix _batch_postprocessing

* some more testing

* test null postprocessing function

* docstring, rename batch_slices to slices, black

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <[email protected]>

* integrate transform program with qnode

* adding integration tests

* test modifications

* [skip ci] fiddling

* more testing

* changelog entry

* add to execute, start on testing

* add qml.execute tests

* Update doc/releases/changelog-dev.md

Co-authored-by: Matthew Silverman <[email protected]>

* fix test

---------

Co-authored-by: rmoyard <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>

* move multiprocessing pre-processing to preprocess (#4425)

* move multiprocessing pre-processing to preprocess

* add test for None case

* you knew it was a bad idea... 🙃

* changelog

* Remove `parametric_ops.py` (#4434)

* Removed `parametric_ops.py`

* Fixed test

---------

Co-authored-by: Christina Lee <[email protected]>

* Updated signature

* Removed `dev_wires` arg

* Fixed defer_measurements

* Fixed tests

* Fixed tests

* Update mid_measure tests

* Updated how queuing for `MidMeasureMP` works

* Updated tests

* Added tests

* Add converter function for PySCF's CISD to PennyLane statevector (#4427)

* Updated init

* Reverted queuing change

* Trigger CI

* Added documentation

* Trigger CI

* Trigger CI

* Update docs

* Updated measurement value

* Updated changelog

* Update doc/releases/changelog-dev.md

* Updated tests

* Fix transmon Hamiltonians (#4418)

* Fix transmon Hamiltonians

* black

* docs update

* docs

* update changelog

* small updates

* Update pennylane/pulse/transmon.py

Co-authored-by: David Wierichs <[email protected]>

* Update pennylane/pulse/transmon.py

Co-authored-by: David Wierichs <[email protected]>

* black

* code review

* formatting

* Update pennylane/pulse/transmon.py

Co-authored-by: David Wierichs <[email protected]>

* Update tests/pulse/test_transmon.py

Co-authored-by: David Wierichs <[email protected]>

---------

Co-authored-by: David Wierichs <[email protected]>

* Updated measurement value

* Updated changelog

* Update doc/releases/changelog-dev.md

* Updated tests

* Added qubit reuse and reset

* Removed `MeasurementValue`

* Integrate `TransformProgram` with `QNode` (#4404)

* Draft structure

* draf exec

* Simple execute

* Update

* More tests

* Update

* Update exec

* Pylint and black

* Update tests

* Update more tests

* More tests

* changelog

* Coverage

* Cover fix

* pylint

* Pylint

* Pylint tests

* proposed changes to transform program integration

* oops

* add to legacy, remove cotransform support

* just transform program call component

* just transform program call component

* no longer support cotransforms, fix _batch_postprocessing

* some more testing

* test null postprocessing function

* docstring, rename batch_slices to slices, black

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <[email protected]>

* integrate transform program with qnode

* adding integration tests

* test modifications

* [skip ci] fiddling

* more testing

* changelog entry

* add to execute, start on testing

* add qml.execute tests

* Update doc/releases/changelog-dev.md

Co-authored-by: Matthew Silverman <[email protected]>

* fix test

---------

Co-authored-by: rmoyard <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>

* Removed `dev_wires` arg

* Fixed tests

* Update mid_measure tests

* Trigger CI

* Trigger CI

* Trigger CI

* Updated tests

* Updated tests

* Remove references to measurement_ids

* Removed weird code

* Add converter function for PySCF's RCISD and CCSD/UCCSD to PennyLane statevector (#4433)

* Remove references to measurement_ids

* Updated init

* linting

* Removed merge artifacts

* Fixing tests

* Fixed tests

* Linting

* Testing to see if doc build fails

* Check doc build

* Progressing docs

* Updated doc

* doc test

* Testing doc

* Updated docstring

* Changed docstring (hopefully the last time)

* Apply suggestions from code review

Co-authored-by: Christina Lee <[email protected]>

* Updating docs

* linting

* Removed old comment

* Added optimization

* Fixed preprocess test

* linting

* Cleaning up

* Adding tests

* Finish adding tests

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <[email protected]>

* Updated docstring per review

---------

Co-authored-by: Edward Jiang <[email protected]>
Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: Frederik Wilde <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Tom Bromley <[email protected]>
Co-authored-by: rmoyard <[email protected]>
Co-authored-by: Vincent Michaud-Rioux <[email protected]>
Co-authored-by: Rashid N H M <[email protected]>
Co-authored-by: BorjaRequena <[email protected]>
Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: lillian542 <[email protected]>
Co-authored-by: Catalina Albornoz <[email protected]>
Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: Jay Soni <[email protected]>
Co-authored-by: Jack Brown <[email protected]>
Co-authored-by: Josh Izaac <[email protected]>
Co-authored-by: Utkarsh <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: albi3ro <[email protected]>
Co-authored-by: Stepan Fomichev <[email protected]>
mlxd pushed a commit that referenced this pull request Aug 23, 2023
* Added qubit reuse and reset

* Fixed `defer_measurements`

* Removed `MeasurementValue`

* Update type hint

* Removed `MeasurementValue`

* Add VJP/JVP capabilities to `DefaultQubit2` (#4374)

* Add vjp/jvp capabilities

* pylint

* some tests for simulate

* Fix syntax error

* Split simulate

* Add some tests

* pylint

* more device tests

* pylint and fix tests

* change tracker keys

* Update pennylane/devices/qubit/adjoint_jacobian.py

Co-authored-by: Christina Lee <[email protected]>

* other places

* Add docs for simulate funcs

* revert suggestion

* Remove validation

* Add validation for use_device_gradient

* remove None case

* use device gradient in validation

* changelog

---------

Co-authored-by: Christina Lee <[email protected]>

* Initialize `DefaultQubit2` local rng from global rng if no seed provided (#4394)

* initialize dev rng from global state

* change default value to global str

* Apply suggestions from code review

Co-authored-by: Frederik Wilde <[email protected]>

* Update tests/devices/experimental/test_default_qubit_2.py

* fix indentation

---------

Co-authored-by: Frederik Wilde <[email protected]>

* Changes to remove use of `Operator.__eq__` (#4398)

* Testing changes to operator __eq__

* Updated until `nodes_between`

* Updated metric tensor, circuit graph

* Updating `qml.equal`

* Linters

* Updated tape tests

* Added coverage

* Updates changelog

* Removed changes to __eq__ and __hash__

* Update pennylane/operation.py

Co-authored-by: Matthew Silverman <[email protected]>

* Update pennylane/ops/functions/equal.py

Co-authored-by: Christina Lee <[email protected]>

---------

Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Christina Lee <[email protected]>

* Make autoray changes backwards compatible (#4397)

* Fixes for new autoray version

* unused import

* Use if instead of try-except

* Fix case of two torch tensors

* pin autoray

* dispatch

* test with new version

* Raise warning in Operator `__eq__` and `__hash__` about change in behaviour (#4144)

* Updated Operator

* Added tests

* Updated warning

* black

* Updated warning text

* black

* Update doc/development/deprecations.rst

* Updated docs, tests

* Updated deprecations.rst

* Fixing tests

* Updated tests and warnings

* Pylint

* Testing warnings

* Testing changes

* Updated tests

* testing what breaks

* Checking tests

* Testing changes

* Testing changes to operator __eq__

* Updated until `nodes_between`

* Updated metric tensor, circuit graph

* Updating `qml.equal`

* Linters

* Updated tape tests

* Added coverage

* Updates changelog

* Removed changes to __eq__ and __hash__

* Update pennylane/operation.py

Co-authored-by: Matthew Silverman <[email protected]>

* Testing changes to operator __eq__

* Updated until `nodes_between`

* Updated metric tensor, circuit graph

* Updating `qml.equal`

* Linters

* Fixes for new autoray version (#4396)

* Fixes for new autoray version

* unused import

* Use if instead of try-except

* Fix case of two torch tensors

* Updated tape tests

* Add ability to apply `TransformProgram` to batch of tapes (#4364)

* Draft structure

* draf exec

* Simple execute

* Update

* More tests

* Update

* Update exec

* Pylint and black

* Update tests

* Update more tests

* More tests

* changelog

* Coverage

* Cover fix

* pylint

* Pylint

* Pylint tests

* proposed changes to transform program integration

* oops

* add to legacy, remove cotransform support

* just transform program call component

* just transform program call component

* no longer support cotransforms, fix _batch_postprocessing

* some more testing

* test null postprocessing function

* docstring, rename batch_slices to slices, black

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <[email protected]>

---------

Co-authored-by: rmoyard <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>

* torch qnode integration with DefaultQubit2 (#4392)

* copy-paste torch file; replace device in most places

* make tests work; little changes in pennylane

* pylint fix

* changelog

* update test name and docstring for hamiltonian_expand

* minimal test for single-shot bugfix

* Added coverage

* Updates changelog

* Removed changes to __eq__ and __hash__

* Update pennylane/operation.py

Co-authored-by: Matthew Silverman <[email protected]>

* Updated deprecations to 0.32

* Added warnings

* Trigger CI

* Removed docstrings

* Added correctness test

* Trigger CI

---------

Co-authored-by: Tom Bromley <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Edward Jiang <[email protected]>
Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: rmoyard <[email protected]>

* Tensorflow qnode integration with DefaultQubit2 (#4393)

* copy-paste tf files

* make tests work; little changes in pennylane

* changes coming from torch PR first

* update remaining test files

* support tf.function by adding empty kwargs

* update copyright year in test files

* changelog

* put all qnode integrations together

* remove turning warning into error (#4409)

* Fix jax.ad deprecation. (#4403)

* Fix jax.ad deprecation.

* Update changelog.

* Print name of requested device in DeviceError.

* Force push.

* Fix pytest.raises in test_device.py

* fix `has_decomposition` for ControlledQubitUnitary (#4407)

* fix has_decomposition for ControlledQubitUnitary

* changelog

* add comment; add test when super returns False

* [sc-36527]: Add new robots.txt to doc build to hide latest build from search engine (#4423)

* Adding a `wire_order` kwarg to `Tensor.sparse_matrix()` (#4424)

* `wire_order` kwarg for `Tensor.sparse_matrix()`

* update changelog

* swap kwarg order

Co-authored-by: Matthew Silverman <[email protected]>

* adapt docstring to the kwarg order swap

* add comment about using  over

---------

Co-authored-by: Matthew Silverman <[email protected]>

* Updated defer_measurements post-merge

* Fixed defer_measurements

* Updated test

* Updated class signature

* Updating keys

* Updated id process

* Updated changelog

* Updated changelog

* Adds shots to experimental device interface and integrate with QNode (#4388)

* default shots on new device interface

* make fewer changes and clean stuff up later

* fix tests, lint, and sphinx

* Update doc/releases/changelog-dev.md

* Update tests/interfaces/test_set_shots.py

Co-authored-by: Matthew Silverman <[email protected]>

* Update tests/devices/experimental/test_default_qubit_2.py

* make set_shots error with new device, shots type hinting

* Update doc/releases/changelog-dev.md

Co-authored-by: Tom Bromley <[email protected]>

* Update pennylane/interfaces/set_shots.py

Co-authored-by: Matthew Silverman <[email protected]>

* Apply suggestions from code review

* Update tests/devices/experimental/test_default_qubit_2.py

* merge problem

* black

* Update doc/releases/changelog-dev.md

* Update pennylane/qnode.py

Co-authored-by: Edward Jiang <[email protected]>

---------

Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Tom Bromley <[email protected]>
Co-authored-by: Edward Jiang <[email protected]>

* QNSPSA bugfix (#4421)

* qnspsa bugfix

* Update doc/releases/changelog-dev.md

* Update tests/optimize/test_qnspsa.py

Co-authored-by: Matthew Silverman <[email protected]>

---------

Co-authored-by: Matthew Silverman <[email protected]>

* Update changelog

* Updated defer_measurements for device wires

* Removed error from drawable layers

* Update changelog

* Updated drawable layers test

* Updated signatures

* Updated signatures

* Merge `v0.31.1-rc0` branch into master (#4428)

* Support `HardwareHamiltonian` pulses in `stoch_pulse_grad` (#4215)

* single out gradient transform checks

* rename stochastic pulse gradient file

* unify gradient_analysis and grad_method_validation

* continue restructure of analysis+validation

* CV

* black

* modularize more

* more modularizing

* black

* tiny [skip ci]

* [skip ci] lint

* remove dummy test

* test fix

* add test file to linting test file

* test fixes, docstrings

* code review

* docstring gradient_analysis_and_grad_method_validation

* move first fun

* code review:move functions

* test regex

* regexs

* move and promote reorder_grads

* tmp

* more tmp

* test cases, contractions

* lint

* docstring

* even more tmp

* cleanup

* black

* tmp

* lint

* move stoch_pulse_gradient.. files back to pulse_gradient...

* move stoch_pulse_gradient.. files back to pulse_gradient...

* lint

* rename

* extend functions and tests

* lint and black

* changelog

* improve

* update example to include non-Pauli word generator

* add jit test with pauli sentence

* tmp

* debugging, docstring, extend test

* review

* optimize for Pauli words

* Apply suggestions from code review

Co-authored-by: Romain Moyard <[email protected]>

* test cases code review

* fix parametrization

* drafting

* working prototype

* finish merge; cleanup

* changelog

* comments

* [skip ci]

* raising an error; cleanup [skip ci]

* Apply suggestions from code review

Co-authored-by: Korbinian Kottmann <[email protected]>

* change contraction idea

* typo in docs

* tests

* remove prints

* fix test

* test descriptions

* fix merge

* format

* code review; test coverage

* coverage reordering

* fix

* trigger CI

* trigger

* clear caches

* trigger

* trigger

---------

Co-authored-by: Romain Moyard <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>

* Fix batching of derivative tapes in autograd (#4245)

* Fix `expval` of `Sum` with broadcasting (#4275)

* fix bug and add test

* changelog addition

* Various doc fixes (#4268)

* Various things while validating changes for 0.31 (#4279)

* change link in setup.py

* fix qchem docs

* fix qcut docs

* rename string function (#4278)

* Update docs (#4269)

* Incrementing the version number to `v0.32.0-dev` (#4266)

* pre-release for v0.31.0

* Update doc/releases/changelog-0.31.0.md

* Incrementing the version number to v0.32.0-dev

* Update installation.rst (#4247)

Update Python version to 3.8

Co-authored-by: Romain Moyard <[email protected]>

* docs typos

* don't include updating versioning from master

* don't include python requirements from master

* update example output for shot_vector

* Update pennylane/operation.py

Co-authored-by: Matthew Silverman <[email protected]>

* fix entirely unrelated rendering issue

---------

Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Catalina Albornoz <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>

* Minor fixes for v0.31 (#4280)

* Added fixes

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Matthew Silverman <[email protected]>

* Update pennylane/ops/qubit/matrix_ops.py

---------

Co-authored-by: Matthew Silverman <[email protected]>

* add graphviz to RTD apt packages (#4284)

* Pulse gradient methods docs polish (#4282)

* stoch pulse docs update

* generator method docs update

* small fixes / typos

* Update pennylane/gradients/pulse_generator_gradient.py

Co-authored-by: David Wierichs <[email protected]>

* Update pennylane/gradients/pulse_generator_gradient.py

Co-authored-by: David Wierichs <[email protected]>

* Update pennylane/gradients/pulse_generator_gradient.py

Co-authored-by: David Wierichs <[email protected]>

* code review

* Update pennylane/gradients/pulse_gradient.py

Co-authored-by: David Wierichs <[email protected]>

* code review

* Update pennylane/gradients/pulse_generator_gradient.py

Co-authored-by: Frederik Wilde <[email protected]>

* large |

* add equal to

---------

Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: Frederik Wilde <[email protected]>

* 0.31 release notes (#4218)

* Add categories

* First pass at categorization

* More categorization

* More categorization

* Typo

* Add first half of resource estimation text

* Improvements

* Add custom ops resource estimation

* Update wording

* Improve entry

* Move

* Move

* Move

* Update

* Add details about Torch and Keras

* Add entry

* Add contributor

* Add to Keras and Torch layer section

* Add saving and loading details

* Add entry

* Add contributor

* Add contributor

* Add qutrit basis state example

* first round of edits

* Remove

* Add entry for one_qubit_decompostition

* more changes

* Reorder sections

* fermi blurb

* minor

* Update

* Add

* Update doc/releases/changelog-dev.md

Co-authored-by: Isaac De Vlugt <[email protected]>

* Update doc/releases/changelog-dev.md

Co-authored-by: Isaac De Vlugt <[email protected]>

* update fermionic code examples

* additions

* minor

* restructure sections

* minor

* minor

* reorder fermi section

* fixed fermi section

* various small changes

* Tweaks to fermionic

* Tweaks to resource and UH sections

* Improvements

* Move

* Update doc/releases/changelog-0.31.0.md

* minior

* minor

* minor

* minor

* minor

* Update

* minor

* use from_string for fermi ops

* Add link

* Update doc/releases/changelog-0.31.0.md

* added links and other minor things

* Update doc/releases/changelog-0.31.0.md

* Update doc/releases/changelog-0.31.0.md

* minor

* minor

* deleted extraneous notebook

* Apply suggestions from code review

Co-authored-by: Tom Bromley <[email protected]>

---------

Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: soranjh <[email protected]>

* Allow updating dense kwarg in call of ParametrizedEvolution (#4285)

* add dense kwarg to call

* update changelog

* update changelog better

* changelog formatting

---------

Co-authored-by: Korbinian Kottmann <[email protected]>

* Remove line in code example to make docs render properly. (#4290)

* Pin autograd to <= 1.5 (#4289)

* pin autograd to 1.5 or less

* allow autograd 1.4 as well

* pin for doc build as well

* Add dm_from_state_vector function to qml.math docs page. (#4291)

* Fix `ShotAdaptiveOptimizer` to prevent removing shot vector axes (#4240)

* Updated `ShotAdaptiveOpt` per suggestion in issue

* Reformatting

* Testing changes

* Fixed bug

* Updated min to max

* Allow classical shadow measurements in new device (#4162)

* Support classical shadow measurements

* Add shot vector tests

* Address comments

* Add comment for diag_list

* Apply suggestions from code review

Co-authored-by: Christina Lee <[email protected]>

* Fix

* Add unit tests for process_state_with_shots

* Update preprocessing

* Apply suggestions from code review

Co-authored-by: Frederik Wilde <[email protected]>

* Address PR comments

* set rng for test

---------

Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: Frederik Wilde <[email protected]>

* Add the `fermi` module docs (#4250)

* support trainable Sum observables (#4251)

* support trainable Sum observables (analytic only)

* just use pre-rotated state; use super with finite shots

* fix tests; add test for trainable Sum coeffs

* changelog

* use overlapping wires to prove they work

* add hacky gradient support

* Revert "add hacky gradient support"

This reverts commit 09009c8.

* set interface=None to keep test behaviour

* Integrate experimental device with the `QNode` (#4196)

* integrate qnode with new device

* some diff method improvements

* repr methods

* add tests, always pass config to device

* add tests, always pass config to device

* final test

* pylint

* autograd integration tests

* pylint

* Update pennylane/interfaces/execution.py

Co-authored-by: Matthew Silverman <[email protected]>

* pass shots through methods

* changelog

* revert set shots change

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <[email protected]>

* revert executionc hange, pylint:

* pylint again

---------

Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>

* pre-release for v0.31.0 (#4265)

* pre-release for v0.31.0

* Update doc/releases/changelog-0.31.0.md

* Support `HardwareHamiltonian` pulses in `stoch_pulse_grad` (#4215)

* single out gradient transform checks

* rename stochastic pulse gradient file

* unify gradient_analysis and grad_method_validation

* continue restructure of analysis+validation

* CV

* black

* modularize more

* more modularizing

* black

* tiny [skip ci]

* [skip ci] lint

* remove dummy test

* test fix

* add test file to linting test file

* test fixes, docstrings

* code review

* docstring gradient_analysis_and_grad_method_validation

* move first fun

* code review:move functions

* test regex

* regexs

* move and promote reorder_grads

* tmp

* more tmp

* test cases, contractions

* lint

* docstring

* even more tmp

* cleanup

* black

* tmp

* lint

* move stoch_pulse_gradient.. files back to pulse_gradient...

* move stoch_pulse_gradient.. files back to pulse_gradient...

* lint

* rename

* extend functions and tests

* lint and black

* changelog

* improve

* update example to include non-Pauli word generator

* add jit test with pauli sentence

* tmp

* debugging, docstring, extend test

* review

* optimize for Pauli words

* Apply suggestions from code review

Co-authored-by: Romain Moyard <[email protected]>

* test cases code review

* fix parametrization

* drafting

* working prototype

* finish merge; cleanup

* changelog

* comments

* [skip ci]

* raising an error; cleanup [skip ci]

* Apply suggestions from code review

Co-authored-by: Korbinian Kottmann <[email protected]>

* change contraction idea

* typo in docs

* tests

* remove prints

* fix test

* test descriptions

* fix merge

* format

* code review; test coverage

* coverage reordering

* fix

* trigger CI

* trigger

* clear caches

* trigger

* trigger

---------

Co-authored-by: Romain Moyard <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>

* Fix batching of derivative tapes in autograd (#4245)

* Fix `expval` of `Sum` with broadcasting (#4275)

* fix bug and add test

* changelog addition

* Various doc fixes (#4268)

* Various things while validating changes for 0.31 (#4279)

* change link in setup.py

* fix qchem docs

* fix qcut docs

* rename string function (#4278)

* Update docs (#4269)

* Incrementing the version number to `v0.32.0-dev` (#4266)

* pre-release for v0.31.0

* Update doc/releases/changelog-0.31.0.md

* Incrementing the version number to v0.32.0-dev

* Update installation.rst (#4247)

Update Python version to 3.8

Co-authored-by: Romain Moyard <[email protected]>

* docs typos

* don't include updating versioning from master

* don't include python requirements from master

* update example output for shot_vector

* Update pennylane/operation.py

Co-authored-by: Matthew Silverman <[email protected]>

* fix entirely unrelated rendering issue

---------

Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Catalina Albornoz <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>

* Minor fixes for v0.31 (#4280)

* Added fixes

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Matthew Silverman <[email protected]>

* Update pennylane/ops/qubit/matrix_ops.py

---------

Co-authored-by: Matthew Silverman <[email protected]>

* add graphviz to RTD apt packages (#4284)

* Updated test

---------

Co-authored-by: Edward Jiang <[email protected]>
Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: Frederik Wilde <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>
Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: lillian542 <[email protected]>
Co-authored-by: Catalina Albornoz <[email protected]>

* Make links to qml.eigvals and the eigvals method appear distinctly. (#4292)

* Make links to qml.eigvals and the eigvals method appear distinctly in the docstring of compute_method.

* Make links more informative.

---------

Co-authored-by: Matthew Silverman <[email protected]>

* Device API review (#4283)

* fix  example

* minor docstring change in `_zyz_decomposition`

* update decomposition examples

* update counts & samples docstrings

* Shots class link

* Fix code block

* Change note

Co-authored-by: Edward Jiang <[email protected]>

---------

Co-authored-by: Edward Jiang <[email protected]>

* remove duplicate controlled operation entries (#4298)

* Refer to class QNode in ml layers (#4299)

* Specs dict fix (#4286)

* Add copy function to SpecsDict.

* black

* Adjust docs to not throw warnings from deprecated specs keys.

* Formatting fix.

* update doc string

* update doc string

---------

Co-authored-by: Jay Soni <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>

* Fermionic ops in changelog (#4302)

* bump lightning to 0.31 in setup.py, pin scipy to [1.8,1.10] (#4304)

* bump lightning to 0.31 in setup.py

* trigger ci

* pin scipy

* Revert "pin scipy"

This reverts commit 492ad40.

* take Soran's forward fix for scipy fac2

* revert the scipy un-pinning and forward fix - just pin scipy

* remove lower bound in files that didn't have them

* remove autograd lower bound

* Implement new Dataset class using HDF5 (#4369)

* rename changelog

* test

* rename changelog back

* changes from 9f5939e

* changes from b6dc487

* changes until 01d9141

* changes until 935832e

* changes until 76c4ae8

* trigger ci

* newline

* revert

* changes until 3b59d71

* trigger ci

* Make qchem compatible with scipy factorial2 (#4387)

* pull diff from #4321

* unpin scipy

* Release notes and version bump (#4385)

* changelog and version bump

* Add qchem changes

* Apply suggestions from code review

Co-authored-by: Tom Bromley <[email protected]>

---------

Co-authored-by: Tom Bromley <[email protected]>

* pin autoray (#4399)

* raise error with actual identifier name (#4405)

* Escape special characters in Dataset URL (#4412)

* url escape

* remove debug

* update changelog

* pylint

* Update doc/releases/changelog-0.31.1.md

Co-authored-by: Matthew Silverman <[email protected]>

---------

Co-authored-by: Matthew Silverman <[email protected]>

* BUGFIX: ensure that operators are not queued upon deserialization (#4414)

* ensure that operators are not queued upon deserialization

* Update tests/data/attributes/operator/test_operator.py

* Updated the datasets docs (#4400)

* Updated the datasets docs

* Update doc/Makefile

* a few more

* Apply suggestions from code review

Co-authored-by: Utkarsh <[email protected]>

* Apply suggestions from code review

Co-authored-by: Diego <[email protected]>

* Update pennylane/data/data_manager/__init__.py

Co-authored-by: Josh Izaac <[email protected]>

* fix typo

* fix typo

---------

Co-authored-by: Utkarsh <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Diego <[email protected]>

* Fix error message when successively loading the same dataset (#4422)

* Fix Attribute Error when accessing identifiers on partial dataset (#4413)

* no exception if identifiers are not downloaded

* always download identifiers

* Update tests/data/test_dataset.py

Co-authored-by: Matthew Silverman <[email protected]>

* add error message

---------

Co-authored-by: Matthew Silverman <[email protected]>

* Update tests/tape/test_qscript.py

* Update setup.py

* Update requirements.txt

Co-authored-by: Edward Jiang <[email protected]>

---------

Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: lillian542 <[email protected]>
Co-authored-by: Catalina Albornoz <[email protected]>
Co-authored-by: Mudit Pandey <[email protected]>
Co-authored-by: Frederik Wilde <[email protected]>
Co-authored-by: Tom Bromley <[email protected]>
Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: BorjaRequena <[email protected]>
Co-authored-by: Jay Soni <[email protected]>
Co-authored-by: Jack Brown <[email protected]>
Co-authored-by: Josh Izaac <[email protected]>
Co-authored-by: Utkarsh <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: albi3ro <[email protected]>

* Integrate `TransformProgram` with `QNode` (#4404)

* Draft structure

* draf exec

* Simple execute

* Update

* More tests

* Update

* Update exec

* Pylint and black

* Update tests

* Update more tests

* More tests

* changelog

* Coverage

* Cover fix

* pylint

* Pylint

* Pylint tests

* proposed changes to transform program integration

* oops

* add to legacy, remove cotransform support

* just transform program call component

* just transform program call component

* no longer support cotransforms, fix _batch_postprocessing

* some more testing

* test null postprocessing function

* docstring, rename batch_slices to slices, black

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <[email protected]>

* integrate transform program with qnode

* adding integration tests

* test modifications

* [skip ci] fiddling

* more testing

* changelog entry

* add to execute, start on testing

* add qml.execute tests

* Update doc/releases/changelog-dev.md

Co-authored-by: Matthew Silverman <[email protected]>

* fix test

---------

Co-authored-by: rmoyard <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>

* move multiprocessing pre-processing to preprocess (#4425)

* move multiprocessing pre-processing to preprocess

* add test for None case

* you knew it was a bad idea... 🙃

* changelog

* Remove `parametric_ops.py` (#4434)

* Removed `parametric_ops.py`

* Fixed test

---------

Co-authored-by: Christina Lee <[email protected]>

* Updated signature

* Removed `dev_wires` arg

* Fixed defer_measurements

* Fixed tests

* Fixed tests

* Update mid_measure tests

* Updated how queuing for `MidMeasureMP` works

* Updated tests

* Added tests

* Add converter function for PySCF's CISD to PennyLane statevector (#4427)

* Updated init

* Reverted queuing change

* Trigger CI

* Added documentation

* Trigger CI

* Trigger CI

* Update docs

* Updated measurement value

* Updated changelog

* Update doc/releases/changelog-dev.md

* Updated tests

* Fix transmon Hamiltonians (#4418)

* Fix transmon Hamiltonians

* black

* docs update

* docs

* update changelog

* small updates

* Update pennylane/pulse/transmon.py

Co-authored-by: David Wierichs <[email protected]>

* Update pennylane/pulse/transmon.py

Co-authored-by: David Wierichs <[email protected]>

* black

* code review

* formatting

* Update pennylane/pulse/transmon.py

Co-authored-by: David Wierichs <[email protected]>

* Update tests/pulse/test_transmon.py

Co-authored-by: David Wierichs <[email protected]>

---------

Co-authored-by: David Wierichs <[email protected]>

* Updated measurement value

* Updated changelog

* Update doc/releases/changelog-dev.md

* Updated tests

* Added qubit reuse and reset

* Removed `MeasurementValue`

* Integrate `TransformProgram` with `QNode` (#4404)

* Draft structure

* draf exec

* Simple execute

* Update

* More tests

* Update

* Update exec

* Pylint and black

* Update tests

* Update more tests

* More tests

* changelog

* Coverage

* Cover fix

* pylint

* Pylint

* Pylint tests

* proposed changes to transform program integration

* oops

* add to legacy, remove cotransform support

* just transform program call component

* just transform program call component

* no longer support cotransforms, fix _batch_postprocessing

* some more testing

* test null postprocessing function

* docstring, rename batch_slices to slices, black

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <[email protected]>

* integrate transform program with qnode

* adding integration tests

* test modifications

* [skip ci] fiddling

* more testing

* changelog entry

* add to execute, start on testing

* add qml.execute tests

* Update doc/releases/changelog-dev.md

Co-authored-by: Matthew Silverman <[email protected]>

* fix test

---------

Co-authored-by: rmoyard <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>

* Removed `dev_wires` arg

* Fixed tests

* Update mid_measure tests

* Trigger CI

* Trigger CI

* Trigger CI

* Updated tests

* Updated tests

* Remove references to measurement_ids

* Removed weird code

* Add converter function for PySCF's RCISD and CCSD/UCCSD to PennyLane statevector (#4433)

* Remove references to measurement_ids

* Updated init

* linting

* Removed merge artifacts

* Fixing tests

* Fixed tests

* Linting

* Testing to see if doc build fails

* Check doc build

* Progressing docs

* Updated doc

* doc test

* Testing doc

* Updated docstring

* Changed docstring (hopefully the last time)

* Apply suggestions from code review

Co-authored-by: Christina Lee <[email protected]>

* Updating docs

* linting

* Removed old comment

* Added optimization

* Fixed preprocess test

* linting

* Cleaning up

* Adding tests

* Finish adding tests

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <[email protected]>

* Updated docstring per review

---------

Co-authored-by: Edward Jiang <[email protected]>
Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: Frederik Wilde <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: Tom Bromley <[email protected]>
Co-authored-by: rmoyard <[email protected]>
Co-authored-by: Vincent Michaud-Rioux <[email protected]>
Co-authored-by: Rashid N H M <[email protected]>
Co-authored-by: BorjaRequena <[email protected]>
Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: lillian542 <[email protected]>
Co-authored-by: Catalina Albornoz <[email protected]>
Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: Isaac De Vlugt <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: Jay Soni <[email protected]>
Co-authored-by: Jack Brown <[email protected]>
Co-authored-by: Josh Izaac <[email protected]>
Co-authored-by: Utkarsh <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: albi3ro <[email protected]>
Co-authored-by: Stepan Fomichev <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants