Skip to content

98 create x yz decomposer for quantify scheduler#214

Merged
juanboschero merged 26 commits intodevelopfrom
98-create-x-yz-decomposer-for-quantify-scheduler
Jun 26, 2024
Merged

98 create x yz decomposer for quantify scheduler#214
juanboschero merged 26 commits intodevelopfrom
98-create-x-yz-decomposer-for-quantify-scheduler

Conversation

@juanboschero
Copy link
Collaborator

This was originally supposed to be an ZXY decompose but it was shown that a XYX is more efficient and is native to quantify scheduler gates.

Changes include:

  • Add XYX decomposer in decomposer folders
  • Add tests for XYX

@juanboschero juanboschero requested a review from rturrado June 3, 2024 14:35
@juanboschero juanboschero self-assigned this Jun 3, 2024
@juanboschero juanboschero linked an issue Jun 3, 2024 that may be closed by this pull request
@rturrado
Copy link
Contributor

rturrado commented Jun 4, 2024

Going back to the original issue:

Quantify-scheduler's gate library supports RZ and RXY. This last gate can represent any bloch sphere rotation of any angle provided the axis is in the plan (X, Y).

Currently we use the ZYZ decomposition to decompose gates for quantify-scheduler. This requires 3 gates.

But since QS supports RXY, it is possible that in a lot (all?) cases, only 2 of those gates are required to describe an arbitrary single-qubit unitary.

Goal of this issue:

investigate if there exists a mathematical unitary decomposition for 2x2 unitaries into either RZ.RXY or RXY.RZ
implement corresponding decomposer and use it for quantify-scheduler

  • I don't think QuantifyScheduler needs an XYX decomposition. They already have ZYZ.
  • BTW, isn't an XYX basically an X90 plus a ZYZ?
  • I would still insist on addressing the first point there: investigate if there exists a mathematical unitary decomposition for 2x2 unitaries into either RZ.RXY or RXY.RZ.

rturrado and others added 3 commits June 12, 2024 10:41
Change ZYZDecomposer class to be a subclass of ABADecomposer.

TODO: generalise ABADecomposer.get_decomposition_angles.
TODO: add XYX decomposer.
TODO: add tests.
Copy link
Contributor

@rturrado rturrado left a comment

Choose a reason for hiding this comment

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

Brilliant! Thanks!

@rturrado rturrado requested a review from S-Linde June 17, 2024 09:49
rturrado
rturrado previously approved these changes Jun 17, 2024
Copy link
Contributor

@rturrado rturrado left a comment

Choose a reason for hiding this comment

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

Beautiful, Juan!

Copy link
Collaborator

@S-Linde S-Linde left a comment

Choose a reason for hiding this comment

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

Looking good, I only have a few minor comments.

Note: I did not check the math, if you want me to check that, then I'll need some formulas.

juanboschero and others added 2 commits June 19, 2024 15:23
Co-authored-by: Roberto Turrado Camblor <rturrado@gmail.com>
Co-authored-by: Roberto Turrado Camblor <rturrado@gmail.com>
S-Linde
S-Linde previously approved these changes Jun 21, 2024
Copy link
Contributor

@rturrado rturrado left a comment

Choose a reason for hiding this comment

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

Just a commit suggestion.

@juanboschero juanboschero merged commit b4a2c74 into develop Jun 26, 2024
@juanboschero juanboschero deleted the 98-create-x-yz-decomposer-for-quantify-scheduler branch June 26, 2024 08:41
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.

Create X-YZ decomposer for quantify-scheduler

3 participants