bqskit
bqskit copied to clipboard
Adding Block ZXZ Decomposition to BQSKit
Implementation of the synthesis algorithm described here: https://arxiv.org/pdf/2403.13692v1
The Block ZXZ Decomposition is able to produce much more efficient circuits than the Quantum Shannon Decomposition. Furthermore, I have implemented an ExtractDiagonalPass.
As shown in Appendix A.2 of https://arxiv.org/pdf/quant-ph/0406176, you can extract a diagonal operator from a 2-qubit unitary in order to save 1 CNOT per 2-qubit unitary. The actual construction is not fully shown, but we can reproduce the results with instantiation. I have scaled up this instantiation to work with up to 5-qubits, just by assuming a ladder CNOT ansatz. The savings from this pass are substantial, and I expect this to lead to big results in terms of CNOT count for large unitaries.