Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Optimize PhaseShift, T, S gates (#5876)
### Before submitting Please complete the following checklist when submitting a PR: - [x] All new features must include a unit test. If you've fixed a bug or added code that should be tested, add a test to the test directory! - [x] All new functions and code must be clearly commented and documented. If you do make documentation changes, make sure that the docs build and render correctly by running `make docs`. - [x] Ensure that the test suite passes, by running `make test`. - [x] Add a new entry to the `doc/releases/changelog-dev.md` file, summarizing the change, and including a link back to the PR. - [x] The PennyLane source code conforms to [PEP8 standards](https://www.python.org/dev/peps/pep-0008/). We check all of our code against [Pylint](https://www.pylint.org/). To lint modified files, simply `pip install pylint`, and then run `pylint pennylane/path/to/file.py`. When all the above are checked, delete everything above the dashed line and fill in the pull request template. ------------------------------------------------------------------------------------------------------------ **Context:** `PauliZ` has a fast implementation which relies on the sparsity of the operator in `DefaultQubit`. Several operations have the same non-zero matrix elements and could be similarly accelerated. One candidate is `PhaseShift` which is abundantly used in `iterative_qpe`. **Description of the Change:** Port the fast-`PauliZ` to `PhaseShift` and use the implementation for `PauliZ`, `S` and `T`. **Benefits:** Faster execution. For example the simple system ``` nwires = 24 dev = qml.device("default.qubit", shots=1) @qml.qnode(dev) def circuit(iters): for i in range(iters): qml.PhaseShift(0.1234, i % nwires) return qml.sample(wires=[0]) circuit(100) ``` takes 0m13.178s on `master` and 0m9.146s on `optim_apply_operations`. We observe the same speed-up for `S` and `T`. **Possible Drawbacks:** **Related GitHub Issues:** [sc-67827] --------- Co-authored-by: Mudit Pandey <mudit.pandey@xanadu.ai>
- Loading branch information