-
Notifications
You must be signed in to change notification settings - Fork 6
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
feat!: HSeries ops #573
feat!: HSeries ops #573
Conversation
tket2/src/passes.rs
Outdated
pub use pytket::lower_to_pytket; | ||
|
||
pub mod tuple_unpack; | ||
pub use tuple_unpack::find_tuple_unpack_rewrites; | ||
|
||
/// Replace all operations in a HUGR according to a mapping. | ||
pub fn replace_ops<S: Into<OpType>>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
these functions probably belong in hugr
crate
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #573 +/- ##
==========================================
+ Coverage 82.79% 82.84% +0.05%
==========================================
Files 45 45
Lines 6113 6184 +71
Branches 6113 6184 +71
==========================================
+ Hits 5061 5123 +62
- Misses 770 771 +1
- Partials 282 290 +8
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
68a725d
to
1c1e464
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great. It's wierd to me that there is no CY, but no need to address that now.
Why is Tk1Op removed? Perhaps this could be addressed in the commit message.
@@ -43,21 +43,19 @@ use crate::extension::REGISTRY; | |||
pub enum Tk2Op { | |||
H, | |||
CX, | |||
CZ, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why no CY?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added
PhasedX, | ||
ZZPhase, | ||
CZ, | ||
TK1, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happened to TK1?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In description
Tk2Op::Rz => Tk1OpType::Rz, | ||
Tk2Op::Rx => Tk1OpType::Rx, | ||
Tk2Op::Ry => Tk1OpType::Ry, | ||
Tk2Op::Toffoli => Tk1OpType::CCX, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's worth reordering these as you did in ops.rs
🤖 I have created a release *beep* *boop* --- ## [0.3.0](tket2-py-v0.2.1...tket2-py-v0.3.0) (2024-09-04) ### ⚠ BREAKING CHANGES * quantum extension renamed from "quantum.tket2" to "tket2.quantum" * Parametric Tk2Ops take angle type rather than float. * Rename lazy extension to "hseries" and add hseries ops. * `Tk2Op::AngleAdd` removed, use `fadd` from the hugr float ops standard extension * Updated to latest hugr version (`hugr-rs 0.12` / `hugr-py 0.8`). ECCs need to be recompiled. ### Features * HSeries ops ([#573](#573)) ([e6acc88](e6acc88)) * remove Tk2Op::AngleAdd ([#567](#567)) ([42cc82f](42cc82f)) * replace f64 with angle type for tk2 ops ([#578](#578)) ([d14631f](d14631f)) * Update rust hugr dependency to `0.12.0`, and python hugr to `0.8.0` ([#568](#568)) ([258a7c5](258a7c5)) ### Bug Fixes * quantum extension name wrong way round ([#582](#582)) ([06a6838](06a6838)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
## 🤖 New release * `tket2`: 0.1.1 -> 0.2.0 * `tket2-hseries`: 0.1.1 -> 0.2.0 <details><summary><i><b>Changelog</b></i></summary><p> ## `tket2` <blockquote> ## [0.2.0](tket2-v0.1.1...tket2-v0.2.0) - 2024-09-04 ### Bug Fixes - [**breaking**] quantum extension name wrong way round ([#582](#582)) ### New Features - Extend Command::optype lifetime ([#562](#562)) - [**breaking**] Update rust hugr dependency to `0.12.0`, and python hugr to `0.8.0` ([#568](#568)) - [**breaking**] remove Tk2Op::AngleAdd ([#567](#567)) - [**breaking**] angle type no longer parametric. ([#577](#577)) - [**breaking**] HSeries ops ([#573](#573)) - [**breaking**] replace f64 with angle type for tk2 ops ([#578](#578)) - more angle ops (construct, deconstruct, radians, equality) ([#581](#581)) </blockquote> ## `tket2-hseries` <blockquote> ## [0.2.0](tket2-hseries-v0.1.1...tket2-hseries-v0.2.0) - 2024-09-04 ### New Features - [**breaking**] Update rust hugr dependency to `0.12.0`, and python hugr to `0.8.0` ([#568](#568)) - [**breaking**] HSeries ops ([#573](#573)) - [**breaking**] replace f64 with angle type for tk2 ops ([#578](#578)) </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/MarcoIeni/release-plz/).
Move Hseries specifc ops to its own extension (some duplicates).
Trim Tk2Ops down in to some small "textbook" set. Tk1 removed as it can be made up of Rz.Rx.Rz. Can be used in canonical {Tk1, TK2} based passes in a standalone extension.
Lowering from Tk2Ops to Hseries ops in progress : #579
Closes #571
BREAKING CHANGE: Rename lazy extension to "hseries" and add hseries ops. Tk2Ops: remove "f64" from Rx, Rz; remove ZZPhase, ZZMax, PhasedX, TK1.