-
Notifications
You must be signed in to change notification settings - Fork 9
Home
Welcome to the search_compiler wiki!
This wiki is currently outdated. Use qsearch.readthedocs.io instead.
The default topology is linear. To synthesize for another topology, you will need to choose a gateset for your desired topology, usually either QubitCNOTRing
or QubitCNOTAdjacencyList
, but custom gatesets are also supported. See Gatesets for more information.
You will to choose a gateset that supports your desired gates. See Gatesets for a list of implemented gatesets, and instructions on how to make your own. See Circuits and Gates for a list of supported gates and instructions on how to make your own.
Once you have your desired gateset object, you can pass it either to a Project
or a SearchCompiler
. In addition, both Project
and SearchCompiler
have a few other options used for customizing things like the search type or distance function. See Advanced Project Features or Advanced Compiler Features for more information.
The Python implementation is easy to install and highly adaptable, but it can take minutes or even hours to run even on a powerful computer for some target unitaries. If you don't want to wait around for your results, try installing the Experimental Native Gateset. This is a Rust implementation of some the most common gates (some parameterized single qubit gates and any constant gate, notably including CNOT). This implementation runs roughly ten times faster than the Python implementation.