Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
Marc Davis edited this page Oct 14, 2020 · 6 revisions

Welcome to the search_compiler wiki!

This wiki is currently outdated. Use qsearch.readthedocs.io instead.

Working with nonlinear topologies

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.

Working with nonstandard gates or qutrits

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.

Customizing your compilation

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.

Faster Runtime

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.