-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Description
What should we add?
From discussions with @alexanderivrii: It would be nice if we could detect a discrete basis set in transpile
or the preset PMs and then use a discrete basis synthesis, like the Solovay-Kitaev algorithm (or others in the future). Something like
transpile(circuit, basis_gates=["h", "t", "tdg", "cx"], translation_method="synthesis")
One way to do this could be to write a default plugin for discrete basis that takes n
-qubits unitaries to U + {2q-gates in the basis gates}
(e.g. using the existing unitary synthesis workflow) and then uses the Solovay-Kitaev algorithm to decompose the 1-qubit U
gates.
It would be even nicer to skip the translation_method="synthesis"
argument, but that might be necessary to distinguish the command from trying to use the basis translator (alternatively, we could auto-select based on the basis gates and users can force a behavior by setting this arg).