feat: add gate merging pass for Rz gates
Explanation of changes
This merge request implements merging of subsequent Rz gates into a single gate
with theta being the sum of the merged gate thetas. This would cause an error before.
Motivation of changes
This change is implemented as a simple compiler pass, before timing is done, as operations are possibly changed.
Merge checklist
See also merge request guidelines
- Merge request has been reviewed (in-depth by a knowledgeable contributor), and is approved by a project maintainer.
- New code is covered by unit tests (or N/A).
- New code is documented and docstrings use numpydoc format (or N/A).
- New functionality: considered making private instead of extending public API (or N/A).
-
Public API changed: added
@deprecatedand entry in deprecated code suggestions (or N/A). - Newly added/adjusted documentation and docstrings render properly (or N/A).
-
Pipeline fix or dependency update: post in
#software-for-developerschannel to mergemainback in or update local packages (or N/A). - Tested on hardware (or N/A).
-
CHANGELOG.mdfor breaking changes andAUTHORS.mdhave been updated (or N/A). - Update Hardware backends documentation if backend interface change or N/A
- Check whether performance is significantly affected by looking at the Performance metrics results.
-
Windows tests in CI pipeline pass (manually triggered by maintainers before merging).
- Maintainers do not hit Auto-merge, we need to actively check as manual tests do not block pipeline
For reference, the issues workflow is described in the contribution guidelines.
Edited by Mark