You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In #12911 we have added the ability to track the state of each qubit within the HighLevelSynthesis transpiler pass (i.e. whether the qubit is "clean" (in state $|0\rangle$) or "dirty" (in some other state)) and to automatically exploit clean/dirty ancilla qubits with the appropriate synthesis algorithms.
In the following snippet, a circuit with a single MCX-gate
is synthesized to a circuit with 24 CX-gates and 45 U-gates. Internally the MCX synthesis algorithm has access to $4$ clean ancilla qubits (1, 2, 8, 9).
However, an arguably identical circuit in the following snippet,
is synthesized to a worse circuit with 84 CX-gates and 127 U-gates. This is due to how the recursion is treated with HighLevelSynthesis, with the synthesis of custom_gate having no access to ancilla qubits outside of its definition.
This issue will be very soon followed by a PR addressing the problem above.
The text was updated successfully, but these errors were encountered:
* py version for expand
* starting to write some code
* implementing
* cleanup
* cleanup
* expand fully & simplify lie trotter
* use examples that actually do not commute
* add plugin structure
* fixing global phase for all-I rotations
* fixes
* fixing plugin names
* minor
* removing a random print statement
* additional improvements
* improving rustiq plugin
* merge with #13239
* Adding pauli evolution plugins to docstrings
* adding documentation on rustiq plugin
* fixes after refactoring
* typo
* more merges with #13295; adding more Rustiq tests
* more efficient append_sx and append_sxdg gates for cliffords
* review comments
* moving the pauli network synthesis logic into a separate file
* some code review suggestions
* simplifying the code by merging the oredered and unorderd version of rotation injection
* more review comments
* adding python tests
* more code review suggestions
* more review comments
* more review comments
* test for preserve_order
* lint
* upgrading rustiq-core to 0.0.10
* clippy: removing mutable ref
* Improving PauliEvolution synthesis tests.
Making sure that the number of rotation gates in the synthesized
circuit equals the number of non-trivial Pauli rotation gates.
* documentation fixes after the merge
---------
Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>
What should we add?
In #12911 we have added the ability to track the state of each qubit within the$|0\rangle$ ) or "dirty" (in some other state)) and to automatically exploit clean/dirty ancilla qubits with the appropriate synthesis algorithms.
HighLevelSynthesis
transpiler pass (i.e. whether the qubit is "clean" (in stateIn the following snippet, a circuit with a single MCX-gate
is synthesized to a circuit with 24 CX-gates and 45 U-gates. Internally the MCX synthesis algorithm has access to$4$ clean ancilla qubits (
1, 2, 8, 9
).However, an arguably identical circuit in the following snippet,
is synthesized to a worse circuit with 84 CX-gates and 127 U-gates. This is due to how the recursion is treated with HighLevelSynthesis, with the synthesis of
custom_gate
having no access to ancilla qubits outside of its definition.This issue will be very soon followed by a PR addressing the problem above.
The text was updated successfully, but these errors were encountered: