-
Notifications
You must be signed in to change notification settings - Fork 53
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
Only gate operations supported in CirqGateAsBloq #365
Comments
I think the culprit here is When I was generating the QROM |
Just from the code in the stack trace: Immediately we use |
I'm going to close this. Anything that is not a GateOperation is out-of-scope for interop and should be re-written. Specifically for classically-controled operations we need measurement and classical wires: #445 |
I know I desperately wanted to implement it as a gate, but there was something blocking it. I can't remember offhand what the blocker was though. I'll post again if I remember. I highly recommend, whatever you do for measurements, keep parity between cbits and qubits. Having cbits represented by just a key in a dictionary while qubits had dimensions and other rich type information was a frequent source of problems. |
Oh right, because a primary use case was to classically control I did have a branch where I reimplemented CircuitOperation as a gate. If I'd have known this would be a problem, I'd have pushed harder on that and then making classical control be a gate as well. quantumlib/Cirq@main...daxfohl:Cirq:circuitgate Anyway, hopefully this disparity can be avoided in qualtran. Ensure behavior is always in the gate layer; operations should just be |
Sometimes when decomposing a cirq gate as a bloq I get these errors:
I can get around it by liberal generalizing during bloq_counts but is it expected? Could we just raise a warning instead of and Error?
The text was updated successfully, but these errors were encountered: