-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding MCX synthesis plugins (#12961)
* moving high-level-synthesis plugins to a separate file * Adding the remaining MCX synthesis functions and exposting all of them as HLS synthesis plugins. * adding entry points for MCX plugins * adding documentation section for MCX plugins * renaming file * Adding pending deprecation warnings * placeholder for MCX plugin tests * adding flag pending=True to deprecate * changing checks from isinstance to name-based: a CCCX gate is called mcx but is not an MCXGate * futher exposing C3X and C4X synthesis * updating MCX synthesis functions to avoid returning C3X and C4X gates For better or for worse, C3X and C4X gates have name 'mcx', and therefore are caught by mcx plugins. We need to avoid recursion with HLS calling an MCX-synthesis plugin for a C3X-gate, which in turns returns a C3X-gate. * fix compose to append * renaming synthesized circuits for c3x and for c4x back to 'mcx' to avoid qasm changes * test qasm fixes * randomly spotted typo * fixing how QuantumCircuit.decompose works in the presence of gates_to_decompose * updating MCX plugins to check isinstance * fixing test * pylint fixes * properly fixing test * additional tests * adding new synthesis functions to synthesis docs * release notes * docstrings improvements followin review * Adding refernce to Vale et al paper for the MCXPhase gate implementation * fixes to deprecation warnings and adding deprecation for get_num_ancilla_qubits * docstring fixes * renaming mcphase to v24 * removing unncessary checks * addressing the rest of review comments * and of course updating qasm checking after we've slightly changed the decomposition * yet another renaming * Update qiskit/circuit/library/standard_gates/x.py Co-authored-by: Julien Gacon <[email protected]> * Update qiskit/circuit/library/standard_gates/x.py Co-authored-by: Julien Gacon <[email protected]> * Update releasenotes/notes/add-mcx-plugins-85e5b248692a36db.yaml Co-authored-by: Julien Gacon <[email protected]> * release notes * formatting * fixing docs * removing references from the first sentence of plugin descriptions --------- Co-authored-by: Julien Gacon <[email protected]>
- Loading branch information
1 parent
fb81116
commit 072548f
Showing
14 changed files
with
1,400 additions
and
679 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.