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

Amend PCPhase operator to support RZ convention #3926

Merged
merged 7 commits into from
Apr 3, 2023

Conversation

Jaybsoni
Copy link
Contributor

Context:
PCPhase gates were designed to be primarily used in the QSVT workflow. Swapping to this convention will allow them to be more directly applied to the workflow without having to keep track of additional global phases.

Description of the Change:
In the previous implementation of PCPhase(phi, dim, wires), the first dim number of entries along the diagonal in the matrix were phase shifted by e^(i * phi) while the remaining 2**n - dim entries of the diagonal were left alone (set to 1).

This convention is swapped to one in which the remaining 2**n - dim entries of the diagonal were set to e^(-i * phi). Note, these two conventions only differ by a global phase.

Benefits:
By absorbing the global phase into the representation, we get a cleaner implementation of QSVT which doesn't have to track the global phase as strictly when converting between representations. This convention is also identical when using trained QSP angles which use RZ rotations as their projector controlled phase gates.

@Jaybsoni Jaybsoni changed the base branch from master to add_qsvt_functionality March 21, 2023 16:08
@github-actions
Copy link
Contributor

Hello. You may have forgotten to update the changelog!
Please edit doc/releases/changelog-dev.md with:

  • A one-to-two sentence description of the change. You may include a small working example for new features.
  • A link back to this PR.
  • Your name (or GitHub username) in the contributors section.

@Jaybsoni Jaybsoni added the review-ready 👌 PRs which are ready for review by someone from the core team. label Mar 21, 2023
@Jaybsoni Jaybsoni self-assigned this Mar 21, 2023
@codecov
Copy link

codecov bot commented Mar 21, 2023

Codecov Report

Merging #3926 (867a926) into add_qsvt_functionality (f41261c) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@                    Coverage Diff                     @@
##           add_qsvt_functionality    #3926      +/-   ##
==========================================================
+ Coverage                   99.71%   99.73%   +0.02%     
==========================================================
  Files                         340      345       +5     
  Lines                       29681    30320     +639     
==========================================================
+ Hits                        29596    30241     +645     
+ Misses                         85       79       -6     
Impacted Files Coverage Δ
pennylane/ops/qubit/parametric_ops_multi_qubit.py 100.00% <100.00%> (ø)

... and 73 files with indirect coverage changes

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Copy link
Contributor

@obliviateandsurrender obliviateandsurrender left a comment

Choose a reason for hiding this comment

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

Thanks @Jaybsoni! Just leaving a few comments. Another minor thing I would like to clarify regarding "these two conventions only differ by a global phase" would be that isn't the new phi in your implementation twice the phi in your old one? Not sure if that causes any problems w.r.t its domain.

Jaybsoni and others added 2 commits March 24, 2023 14:34
@Jaybsoni
Copy link
Contributor Author

[sc-34913]

tests/ops/qubit/test_parametric_ops.py Show resolved Hide resolved
tests/ops/qubit/test_parametric_ops.py Show resolved Hide resolved
tests/ops/qubit/test_parametric_ops.py Show resolved Hide resolved
tests/ops/qubit/test_parametric_ops.py Show resolved Hide resolved
tests/ops/qubit/test_parametric_ops.py Show resolved Hide resolved
tests/ops/qubit/test_parametric_ops.py Show resolved Hide resolved
tests/ops/qubit/test_parametric_ops.py Show resolved Hide resolved
Copy link
Contributor

@obliviateandsurrender obliviateandsurrender left a comment

Choose a reason for hiding this comment

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

Looks good. Is the dipole moment CI failure related to the recent change in pyscf? We had pushed a fix in the master branch for this.

@Jaybsoni
Copy link
Contributor Author

Jaybsoni commented Apr 3, 2023

Looks good. Is the dipole moment CI failure related to the recent change in pyscf? We had pushed a fix in the master branch for this.

I am not sure, let me try merging in master to see if that fixes it?

@soranjh
Copy link
Contributor

soranjh commented Apr 3, 2023

Looks good. Is the dipole moment CI failure related to the recent change in pyscf? We had pushed a fix in the master branch for this.

I am not sure, let me try merging in master to see if that fixes it?

Yes, this issue has been fixed here.

@Jaybsoni Jaybsoni changed the base branch from add_qsvt_functionality to master April 3, 2023 20:52
@Jaybsoni Jaybsoni changed the base branch from master to add_qsvt_functionality April 3, 2023 20:53
@Jaybsoni Jaybsoni merged commit 6faec4f into add_qsvt_functionality Apr 3, 2023
@Jaybsoni Jaybsoni deleted the ammend_pcphase branch April 3, 2023 21:17
albi3ro added a commit that referenced this pull request Apr 19, 2023
* Initial commit

* update branch with master (#3871)

* Allow flexible parameter shapes and multi-dimensional tape return shape in custom JVP (#3766)

* custom jvp with any parameter and tape output shape

* tests

* lint test

* remove print

* changelog

* fix test, remove old todo

* tiny

* Apply suggestions from code review

Co-authored-by: Albert Mitjans <a.mitjanscoma@gmail.com>

* move commentary to docstring, rename num_l

* black

* review

* [skip ci]

* string format [skip ci]

* black

* merge fix

* review

---------

Co-authored-by: Albert Mitjans <a.mitjanscoma@gmail.com>
Co-authored-by: Romain Moyard <rmoyard@gmail.com>

* Daily rc sync to master $(date +'%Y-%m-%d') (#3845)

* Undeprecate `ApproxTimeEvolution` (#3797)

* readd ApproxTimeEvolution

* More

* Full deprecation

* Fix (#3801)

* Register `SpecialUnitary` operation with `DefaultMixed` and `NullQubit` (#3651)

* Add SpecialUnitary, its utilities and tests

* changelog

* whitespace

* docstrings

* empty

* device test

* black

* linting and test coverage

* registered in default qubit and added tests

* registered in default mixed and added tests

* black

* changelog

* register with null qubit, add test, lint null qubit test as bonus

* black

* update docstring

* revert some changes/continued merge

* remove old namespace dependencies

* black

* lint

* docstring typo

* lint

* remove inverse testing

* change reference

* revert addition

* add ParametrizedEvolution to mixed device (#3794)

* add ParametrizedEvolution to mixed device

* black test

* make test more broad

* black tests

* Update tests/pulse/test_parametrized_evolution.py

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>

* sparse implementation

* Revert "Merge branch 'evolvemixed' of https://github.com/PennyLaneAI/pennylane into evolvemixed"

This reverts commit e653b50, reversing
changes made to bb2d3d6.

* Revert "sparse implementation"

This reverts commit bb2d3d6.

* review comment

* trigger ci

---------

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>

* little touchups while reviewing changes in 0.29 (#3809)

* Update pulse module documentation examples (#3805)

* init

* spacing

* windows parsing in rect()

* revert jnp.array parameters, doc typo

* test docstring, remove interface warning

* doc fix?

* lint

---------

Co-authored-by: lillian542 <38584660+lillian542@users.noreply.github.com>

* Raise error when using `qml.probs` in the computational basis with non-commuting observables (#3811)

* 🐛 fix (MeasurementProcess): Change if a measurement is using the computational basis.

* 🎨 style (MeasurementProcess): Remove useless properties.

* 🧪 tests (qscript): Fix tests.

* 🧪 tests (measurements): Fix tests.

* 🧪 tests (return_types): Fix tests.

* 🧪 tests (tape): Fix tests.

* 🧪 tests (circuit_graph): Fix tests.

* 🧪 tests (return_types): Fix tests.

* 🧪 tests (return_types): Fix tests.

* ✏️ chore (changelog): Add changelog entry.

* 🔧 refactor (MeasurementProcess): Change method name.

* 🔧 refactor (MeasurementProcess): Change method name.

* 🔧 refactor (MeasurementProcess): Change method name.

* Update pennylane/tape/qscript.py

Co-authored-by: Romain Moyard <rmoyard@gmail.com>

---------

Co-authored-by: Romain Moyard <rmoyard@gmail.com>

* docs: consistent naming of tape instance in docstr (#3795)

as title states. nothing fancy here

* Documentation fixes (#3808)

* fix some type hints

* minor docstring fixes

* minor docstring changes

* fix rendering issue

* Update pennylane/pulse/parametrized_hamiltonian.py

---------

Co-authored-by: Matthew Silverman <matthews@xanadu.ai>

* Fix docs of new features (#3818)

* ✏️ chore (changelog): Fix changelog entry.

* 📝 docs (BasisRotation): Fix docstrings.

* 📝 docs (xyx_decompositions): Fix docstring.

* 📝 docs (metric_tensor): Fix docstring.

* Minor fixes for v0.29 release (#3815)

* Added fixes for auto documentation

* Added minor doc changes for hadamard gradient

* Added fix for queuing diagonalizing gates

* Small fix to IsingZZ doc

* Fixed doc for max_entropy

---------

Co-authored-by: Albert Mitjans <a.mitjanscoma@gmail.com>

* Copy one-electron integrals inside `_chemist_transform` (#3816)

* fix inplace one-int issue in `_chemist_transform`

* add test to assert no inplace manipulation happens

* happy black

* Fix equal for measurements with observables, measurement process repr, Hermitian casting fix (#3820)

* equal with measurement processes

* not change math.asarray for autograd

* not change math.asarray for autograd

* Update doc/releases/changelog-0.29.0.md

* add coverage for measurements of observables that are equal but have different wire orders

* break up docstrings, test hermitian case

* Update exp.py

fixing docs typo in RC branch

* Docstring fixes for unchanged functions (#3824)

* Added docstring fixes for old functions

* Updated more docs

* Changing functions

* Fixed more docstrings

* Added changes to more function docs

* Fix to build sphinx

* Addressing PR comments

* fix docker link; remove old inv comment (#3823)

* Device api doc typo fixes (#3819)

* tiny doc edits

* Update pennylane/devices/experimental/device_api.py

Co-authored-by: Matthew Silverman <matthews@xanadu.ai>

* seealso

* Update pennylane/devices/experimental/device_api.py

Co-authored-by: Christina Lee <christina@xanadu.ai>

---------

Co-authored-by: Matthew Silverman <matthews@xanadu.ai>
Co-authored-by: Christina Lee <christina@xanadu.ai>

* un-deprecate make_tape (#3807)

* Update changelog (#3719)

* Update changelog-dev.md

* Remove

* Move pulse

* Update title

* pulse edits

* minor

* Absorb new additions

* Reorder improvements

* Add new section

* Add commas to contributors section

* Remove order requirement

* Rearrange

* Simplify pulse section

* Improve

* Improve

* Improve

* Improve

* Add additional section

* Update doc/releases/changelog-dev.md

* brackets around PR numbers

Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Isaac De Vlugt <34751083+isaacdevlugt@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Isaac De Vlugt <34751083+isaacdevlugt@users.noreply.github.com>

* Add suggestions

Co-authored-by: Isaac De Vlugt <34751083+isaacdevlugt@users.noreply.github.com>

* Update doc/releases/changelog-dev.md

* qml.

* removed TODO markers

* deps and breaking changes

* deps and breaking changes

* Move addtion

* Apply suggestions from code review

* Update

* Update

* Update

* Update

* Update

* Update

* Apply suggestions from code review

* Update

* Update

* Update

* Update

* Add for Evolve

* Add

* Apply suggestions from code review

Co-authored-by: Korbinian Kottmann <43949391+Qottmann@users.noreply.github.com>

* Fix code

* minor

* minor

* minor

* minor

* minor

* minor

* minor

* minor

* minor

* minor

* Tom

* Add entry

* Update name

* Update

* Rearrange for auto

* Typo

* Remove ApproxTimeEvolution deprecation

* Typo

* minor

* minor

* Fix warning

* Maybe fix warning

* Add a few entries

* Add breaking change

* Maybe fix error

* Maybe fix warning

* minor

* minor

* add details to changelog for marginal_prob bug (#3821)

* Add subsection

* Update

* Update

* Add

---------

Co-authored-by: Isaac De Vlugt <isaacdevlugt@gmail.com>
Co-authored-by: Isaac De Vlugt <34751083+isaacdevlugt@users.noreply.github.com>
Co-authored-by: Korbinian Kottmann <43949391+Qottmann@users.noreply.github.com>
Co-authored-by: Matthew Silverman <matthews@xanadu.ai>

* Fix sign expand (#3814)

* Tape queue to script

* Fix doc

* QNode example

* Apply suggestions from code review

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <matthews@xanadu.ai>

* use new pauli module

---------

Co-authored-by: Matthew Silverman <matthews@xanadu.ai>
Co-authored-by: Albert Mitjans <a.mitjanscoma@gmail.com>

* Fix (#3828)

* Remove warning. (#3829)

* Update deprecations page (#3830)

* Update grouping

* Update seed recipes

* Update QubitDevice.statistics

* Raise error if JAX or jaxlib are 0.4.4 (#3813)

* Raise error for 0.4.4 jaxlib and jax

* add tests

* black for tests

* add jax mark for test

* Remove jaxlib check

Co-authored-by: Filippo Vicentini <filippovicentini@gmail.com>

* More detailed error msg

Co-authored-by: Filippo Vicentini <filippovicentini@gmail.com>

* Update tests

* Tests and black

* Typo

* Change

---------

Co-authored-by: Filippo Vicentini <filippovicentini@gmail.com>
Co-authored-by: Romain Moyard <rmoyard@gmail.com>

* 0.29 changelog updates (#3835)

* Update codeblock type

* Update example

* Wording

* Add CTA

* Update wire number

* Remove wire

* Update wording

* Add

* Fix imports

* Add deprecation

* Remove tilde

* Merge data and other improvements

* Typo

* Typo

* Typo

* Emojis

* Remove whitespace

* remove duplicate entries

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <matthews@xanadu.ai>

---------

Co-authored-by: Matthew Silverman <matthews@xanadu.ai>

* Docfix/circuits note gpu (#3836)

* Fix note on lightning.gpu plugin in intro/circuits.

* Update doc/releases/changelog-0.29.0.md.

---------

Co-authored-by: Christina Lee <christina@xanadu.ai>

* Promote warning about vanilla version of NumPy to RST warning. (#3838)

* Promote warning about vanilla version of NumPy from bold format to RST warning. Make Autograd case uniform.

* Update changlog.

* fix strings that wrap around without a space (#3837)

* fix strings that wrap around without a space

* missed one

* always use trailing whitespace instead of leading

---------

Co-authored-by: Christina Lee <christina@xanadu.ai>

* Use default.qubit.jax instead of default.qubit (#3839)

* Use default.qubit.jax instead of default.qubit

* Apply suggestions from code review

Taking the liberty to commit these changes here due to time sensitivity

* Revert "Apply suggestions from code review
"

This reverts commit d457ffb.

---------

Co-authored-by: Korbinian Kottmann <43949391+Qottmann@users.noreply.github.com>
Co-authored-by: Korbinian Kottmann <Korbinian.Kottmann@gmail.com>

* Update header images (#3827)

Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* exclude files from pr

---------

Co-authored-by: Romain Moyard <rmoyard@gmail.com>
Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>
Co-authored-by: Korbinian Kottmann <43949391+Qottmann@users.noreply.github.com>
Co-authored-by: Matthew Silverman <matthews@xanadu.ai>
Co-authored-by: lillian542 <38584660+lillian542@users.noreply.github.com>
Co-authored-by: Albert Mitjans <a.mitjanscoma@gmail.com>
Co-authored-by: Christina Lee <christina@xanadu.ai>
Co-authored-by: Mudit Pandey <mudit.pandey@xanadu.ai>
Co-authored-by: Utkarsh <utkarshazad98@gmail.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: Isaac De Vlugt <isaacdevlugt@gmail.com>
Co-authored-by: Isaac De Vlugt <34751083+isaacdevlugt@users.noreply.github.com>
Co-authored-by: Filippo Vicentini <filippovicentini@gmail.com>
Co-authored-by: Vincent Michaud-Rioux <vincentm@nanoacademic.com>
Co-authored-by: Korbinian Kottmann <Korbinian.Kottmann@gmail.com>
Co-authored-by: GitHub Actions Bot <>

* remove broken date from RC sync PR action (#3849)

I'm not sure what made this break, but it's broken. We can just get the date from when it was opened if we're curious!

Co-authored-by: Josh Izaac <josh146@gmail.com>

* ensure provided order of dataset parameters is preserved (#3856)

* ensure provided order of dataset parameters is preserved

* add another test to ensure order stability

* add another utest case without full

* changelog entry

* Fix autoray due to newly released version (#3865)

* autoray fixes

* Update pennylane/ops/qubit/parametric_ops.py

* changelog

* Update doc/releases/changelog-dev.md

* Update doc/releases/changelog-dev.md

Co-authored-by: Romain Moyard <rmoyard@gmail.com>

* use autograd, change test back to master version

---------

Co-authored-by: Romain Moyard <rmoyard@gmail.com>

* Update the definition of trainable params with Jax: right trainable parameters for JIT (#3697)

* First version

* Change params

* Changes

* ji_compute_jvp

* Working version for new return

* Change to old return system

* Update tests and jax-jit int

* Update tests

* Fix parameter shift hessian

* Update comment

* black

* Apply suggestions from code review

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>

* Pull and black

* Update pennylane/interfaces/jax_jit_tuple.py

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>

* Argnums in Jax transforms (#3750)

* First draft

* Fix merge

* Black and pylint

* Update

* Classical jacobians tests

* Rename argnum to argnum

* Finite diff and param shift with tests

* Typo

* Second derivative

* Update

* Test torch

* Trigger CI

* Hessian transforms

* Typo tests

* Too many branches

* Argnum renamed

* Update pennylane/fourier/qnode_spectrum.py

* Apply suggestions from code review

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>

* Apply suggestions from code review

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>

* From review

* Merge introduced typo

* Typo

---------

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>

* Tests new return type

* Argnums = [0] is default

* Typo

* Add tests hadamard

* Changelog

* Update doc/development/deprecations.rst

* Apply suggestions from code review

Co-authored-by: Matthew Silverman <matthews@xanadu.ai>

* black

* Update doc/releases/changelog-dev.md

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>

* Update doc/development/deprecations.rst

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>

* Update doc/development/deprecations.rst

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>

* Update from review

* Review change

---------

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>
Co-authored-by: Matthew Silverman <matthews@xanadu.ai>

* fix jax version in upload workflow (#3843)

Co-authored-by: Romain Moyard <rmoyard@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

---------

Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>
Co-authored-by: Albert Mitjans <a.mitjanscoma@gmail.com>
Co-authored-by: Romain Moyard <rmoyard@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Korbinian Kottmann <43949391+Qottmann@users.noreply.github.com>
Co-authored-by: Matthew Silverman <matthews@xanadu.ai>
Co-authored-by: lillian542 <38584660+lillian542@users.noreply.github.com>
Co-authored-by: Christina Lee <christina@xanadu.ai>
Co-authored-by: Mudit Pandey <mudit.pandey@xanadu.ai>
Co-authored-by: Utkarsh <utkarshazad98@gmail.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: Isaac De Vlugt <isaacdevlugt@gmail.com>
Co-authored-by: Isaac De Vlugt <34751083+isaacdevlugt@users.noreply.github.com>
Co-authored-by: Filippo Vicentini <filippovicentini@gmail.com>
Co-authored-by: Vincent Michaud-Rioux <vincentm@nanoacademic.com>
Co-authored-by: Korbinian Kottmann <Korbinian.Kottmann@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>

* ci

* Add PCPhase (#3758)

* initial implementation

* added PiControlledPhase gate

* added normalization

* clean up

* renamed and added decomposition for ProjectorControlled Phase gates

* allow scalars into BlockEncoding

* update func name and imports

* rename BlockEncoding --> BlockEncode, add support for aribtrary matrix size A

* Initial commit

* added pcphase as a parameteric op

* adding tests

* added tests

* Fixed tests

* Added some more tests and initial fix for adjoint issue

* undo tape change

* CI

* autoray fix + tape fix

* test changes from autoray update

* indent bug

* data bug

* update

* reset tape changes

* code-review comments

* Apply suggestions from code review

Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* fix docstrings

* address code review comments

* lint

* Update tests/ops/qubit/test_sparse.py

* ci

* ci

* Apply suggestions from code review

Co-authored-by: Diego <67476785+DSGuala@users.noreply.github.com>
Co-authored-by: Mudit Pandey <mudit.pandey@xanadu.ai>

* code review comments

* codecov

---------

Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>
Co-authored-by: soranjh <soranjh@yahoo.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>
Co-authored-by: Mudit Pandey <mudit.pandey@xanadu.ai>

* Add BlockEncoding (#3757)

* Initial commit

* Fix import errors, edit __init__ files

* Wires and matrix input supports lists, arrays, and scalars

* Add input tests

* black -l 100

* used vstack and hstack to make U

* Update

* Move tests

* Fix __init__.py

* Add BlockEncode to devices

* readd docstrings, extend tests

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* Address review comments

* Address review comments

* Address review comments

* Add integration test, fix device tests

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Black -l 100 after committing suggestions

---------

Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>
Co-authored-by: Utkarsh <utkarshazad98@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* update (#3961)

* Amend PCPhase operator to support RZ convention (#3926)

* ammend PCPhase

* lint

* Fix tests

* Update pennylane/ops/qubit/parametric_ops_multi_qubit.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* update doc-string

* Ci

* ci

---------

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Add qml.QSVT template and qml.qsvt function (#3909)

* Initial commit

* Fix import errors, edit __init__ files

* Wires and matrix input supports lists, arrays, and scalars

* Add input tests

* black -l 100

* used vstack and hstack to make U

* Update

* Move tests

* Fix __init__.py

* Add BlockEncode to devices

* readd docstrings, extend tests

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* Address review comments

* Address review comments

* Address review comments

* Add integration test, fix device tests

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Black -l 100 after committing suggestions

* Add adjoint, label

* Temporary commit - Add tensorflow support

* Initial commit

* Reorder imports, extend docstrings

* Initial commit

* Fix labeling, add tests file, remove test class

* Fix extra queuing

* Address review comments in qsvt.py

* Address review comments

* Complete tests

* Fix grad test

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Remove matrix_ops.py and test_matrix_ops.py from PR, pylint, black -l 100

* Reformat examples

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* lst_phis -> angles

* remove "or quantum function"

* pylint, remove extra "angles" arg

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Remove "inside qnode" from test docstring

* Add grad test, add tensorflow test to qsvt and framework tests to QSVT

* Update docstrings

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/templates/subroutines/qsvt.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Edit docstrings

* Complete tests_passing_pylint.txt

* Fix docstring typos

* Make Wx convention compatible with lists

---------

Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>
Co-authored-by: Utkarsh <utkarshazad98@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Additions to BlockEncode and TensorFlow support (#3905)

* Initial commit

* Fix import errors, edit __init__ files

* Wires and matrix input supports lists, arrays, and scalars

* Add input tests

* black -l 100

* Move BlockEncode to matrix_ops.py

* BlockEncode is top-level accessible

* used vstack and hstack to make U

* Update

* Update

* Move tests

* Fix __init__.py

* Add BlockEncode to devices

* readd docstrings, extend tests

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* Address review comments

* Address review comments

* Address review comments

* Add integration test, fix device tests

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Update pennylane/ops/qubit/matrix_ops.py

Co-authored-by: Utkarsh <utkarshazad98@gmail.com>

* Black -l 100 after committing suggestions

* Add adjoint, label

* Temporary commit - Add tensorflow support

* Remove extra tests

* addressed code review commentes

* Fix bug

* formatting

* remove comments

* added support for jax and tf

* BlockEncode accepts non-normalized list input

* add missing tests

* Update tests/ops/qubit/test_matrix_ops.py

Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Missing doc-strings

* lint

* fix error message

* remove redundant test

* code cov

---------

Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>
Co-authored-by: Utkarsh <utkarshazad98@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* Update pennylane/ops/qubit/__init__.py

* Address review comments

* Apply suggestions from code review

Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* Address review comments

* angles -> shifts, remove trailing white space

* address review comments, change template image, .__copy__ -> copy.copy

* update operations.rst to include qsvt()

* Revert getattr in qubit device, and add doc string for norm in blockencode

* fixed docs for BlockEncode norm note, removed docstring for PCPhase

* Added compute_matrix, needs to be debugged

* update doc string

* Update pennylane/ops/qubit/matrix_ops.py

fix typo

* Address review comments

* Fixed bug added example not using BlockEncode and PCPhase

* Update to TF 2.12 (#3935)

* Update TF

* Change version

* Fixes

* Update version

* Update to 0.30 changelog (#3907)

* Use commas

* Use emojis

* Use better emoji

* Add groupings

* Add grouping

* Add line

* Move 3790

* Clarify 3851

* Add subsections on return types

* Add performance section

* Move 3862

* Add placeholder for QSVT

* Apply suggestions from code review

Co-authored-by: Isaac De Vlugt <34751083+isaacdevlugt@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Ivana Kurecic <ivanakurecic@gmail.com>

---------

Co-authored-by: Isaac De Vlugt <34751083+isaacdevlugt@users.noreply.github.com>
Co-authored-by: Ivana Kurecic <ivanakurecic@gmail.com>

* op_math pylint fixups, re-order tests_passing_pylint.txt (#3999)

* sort test lint whitelist and remove duplicates

* lint all op_math tests

* Various gradient-related fixups with the new return system (#3995)

* pulse_grad doesn't need to squeeze; param-shift hessian format update; copy _qfunc_output in tape.copy

* test qfunc output is copied

---------

Co-authored-by: Romain Moyard <rmoyard@gmail.com>

* Use numpy tape converter in interfaces instead of tape.Unwrap (#3989)

* use new converter in autograd and execution.py

* use new converter in jax

* use new converter in torch

* changelog

* rename helper function

* use new converter in tensorflow

* use tuples

* simplify the tuple-copy-set-converter helper

* update param info after changing tape in place

* define jax jvp new_tapes before args tuple definition

* ci

* update pylint

* codecov

* fix docstrings

* removed wire arg as its not required for QSVT

* lint

* Remove wires from QSVT docstring

* a -> A in BlockEncode docs

---------

Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>
Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>
Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>
Co-authored-by: Albert Mitjans <a.mitjanscoma@gmail.com>
Co-authored-by: Romain Moyard <rmoyard@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Korbinian Kottmann <43949391+Qottmann@users.noreply.github.com>
Co-authored-by: Matthew Silverman <matthews@xanadu.ai>
Co-authored-by: lillian542 <38584660+lillian542@users.noreply.github.com>
Co-authored-by: Christina Lee <christina@xanadu.ai>
Co-authored-by: Mudit Pandey <mudit.pandey@xanadu.ai>
Co-authored-by: Utkarsh <utkarshazad98@gmail.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: Isaac De Vlugt <isaacdevlugt@gmail.com>
Co-authored-by: Isaac De Vlugt <34751083+isaacdevlugt@users.noreply.github.com>
Co-authored-by: Filippo Vicentini <filippovicentini@gmail.com>
Co-authored-by: Vincent Michaud-Rioux <vincentm@nanoacademic.com>
Co-authored-by: Korbinian Kottmann <Korbinian.Kottmann@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: soranjh <soranjh@yahoo.com>
Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>
Co-authored-by: Ivana Kurecic <ivanakurecic@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
review-ready 👌 PRs which are ready for review by someone from the core team.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants