-
Notifications
You must be signed in to change notification settings - Fork 13
feat: InsertCut patch for inserting HUGR across edges. #2153
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
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2153 +/- ##
==========================================
- Coverage 82.17% 82.17% -0.01%
==========================================
Files 227 228 +1
Lines 39904 39965 +61
Branches 36003 36064 +61
==========================================
+ Hits 32790 32840 +50
- Misses 5284 5294 +10
- Partials 1830 1831 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
0c9390f to
ec16c63
Compare
56c110c to
9cd24ff
Compare
test invalidation set format
| pub parent: N, | ||
| /// The targets of the existing edges. | ||
| pub targets: Vec<(N, IncomingPort)>, | ||
| /// The HUGR to insert, must have DFG parent. |
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.
must have DFG root
#866) Closes #853 Closes #865 ~Blocked by hugr release including [InsertCut](CQCL/hugr#2153 Barriers exist across arbitrary types. To make sure scheduling respects this at runtime, when lowering we follow it with a `RuntimeBarrier` across a generically sized array of qubits. To do this the lowering unpacks qubits from the barrier type row, applies the runtime barrier, then repacks them in to the original types. Arrays and tuples containing qubits are recursively unpacked. Sums of qubits are ignored except in the special case of arrays of option of qubits, wherein it is assumed all qubits are present (when generated by guppy this is guaranteed). For each concrete container type a temporary extension is used to add unpacking and re-packing operations. These are later lowered to calls to functions that implement the operations. BREAKING CHANGE: `QSystemOpBuilder` gained supertrait `ArrayOpBuilder` --------- Co-authored-by: Douglas Wilson <[email protected]> Co-authored-by: Mark Koch <[email protected]> Co-authored-by: Agustín Borgna <[email protected]>
No description provided.