qutech / qupulse

Quantum Computing Toolkit for Qubit Control
55 stars 31 forks source link

Implement Generic Gate Class #5

Closed pbethke closed 1 year ago

pbethke commented 9 years ago

Task of feature #4

Generic Gate Properties

1Because this is matrix multiplication the order in which the children are matters!

hbluhm commented 9 years 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.

pbethke commented 9 years ago

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.

hbluhm commented 9 years ago

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.