Closed pbethke closed 1 year ago
High priority
Investigate if Qutip (qutip.org, Quantum toolbox in Python) can be used to implement the abstract gate representation before starting coding or making plans. It is used quite widely to model quantum circuits, and we should not reinvent the wheel.
So, I had a look at qutip's take on the matter. The quantum information subpackage includes classes for qubit circuits, gates and circuit processors as well as routines to map a certain quantum algorithm to another equivalent one that can run on a processor with a certain basis gate set. Othrewise it is pretty much the same that i outlined before. The CircuitProcessor
is a base class for representation of the physical implementation of a quantum program on a specified qubit system. There are also subclasses included for spin chains and dispersive QED systems.
It seems like a good idea to build on that. One immediate question is whether we should attach pulses to qutip gates or vice versa. I like the latter, as it would mean that we would automatically stick to a somewhat established standard to describe operations. Of course, the practicality needs to be checked. For example, what would a command like “to randomized benchmarking with this set of gates” look like with this approach? Perhaps we will have to provide two kinds of interfaces anyway, with the capability to translate between them. Very low level operations (e.g. ramp AWG voltage to (x, y)) will likely not make sense in qutip.
Task of feature #4
Generic Gate Properties
1Because this is matrix multiplication the order in which the children are matters!