Skip to content

Extend the list of well known gates #38

@burgholzer

Description

@burgholzer

The current list of well-known gates (https://github.com/unitaryfoundation/jeff/blob/main/docs/spec.md#wellknowngate) already contains quite some gates, but might be missing a few, or, at least, I have some questions on how certain operations are expected to be represented.
I'll try to break it down gate by gate.

This is mostly inspired by our work on connecting the MQT's MLIR infrastructure from MQT Core with Jeff.

Two-qubit rotation gates

Gates:

are these supposed to be represented as Pauli-product rotations in Jeff or does it make sense to add them explicitly?

Qiskit also defines xx_plus_yy and defines xx_minus_yy, which each have two angle parameters.
Within the MQT, we support these as well. Similar question to above: does it make sense to add these explicitly, or are they supposed to be defined differently?

sqrt(X) or sx agte

The SX gate is a native gate on IBM machines (definition).
Is the intention to represent this as pow(0.5) @ X in Jeff or does it make sense to explicitly define this gate?

R gate

The R gate is the native single-qubit gate on IQM quantum computers (definition).
I suppose it makes sense to add this as an explicit single-qubit, two-parameter gate.

iSWAP gate

The iSWAP gate is a native gate on Google's quantum computers (definition).
I suppose it makes sense to add this as an explicit two-qubit, no-parameter gate.

ECR gate

The echoed cross resonance gate is a native gate on some superconducting systems that underlies the implementation of CX gates, for example (definition).
I suppose it makes sense to add this as an explicit two-qubit, no-parameter gate.

DCX gate

Qiskit does define the dcx gate as a double-cnot (two CNOTs with exchanged control and target).
I am not 100% sure, whether this particular gate is too important, but it probably would not hurt to explicitly add it.
One could also argue that it should simply be represented as two consecutive CNOTs.

U2 rotation gate

The U2 gate has been defined as a more specific U3 gate. Specifically, it is defined as U3(π/2,φ,λ).
Should Jeff define this gate explicitly or do we believe it is better to simply represent it through its definition via u3?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions