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?
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:
rxx(example definition at https://github.com/Qiskit/qiskit/blob/main/qiskit/circuit/library/standard_gates/rxx.py)ryy(example definition at https://github.com/Qiskit/qiskit/blob/main/qiskit/circuit/library/standard_gates/ryy.py)rzz(example definition at https://github.com/Qiskit/qiskit/blob/main/qiskit/circuit/library/standard_gates/rzz.py)rzx(example definition at https://github.com/Qiskit/qiskit/blob/main/qiskit/circuit/library/standard_gates/rzx.py)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_yyand definesxx_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)orsxagteThe
SXgate is a native gate on IBM machines (definition).Is the intention to represent this as
pow(0.5) @ Xin Jeff or does it make sense to explicitly define this gate?RgateThe
Rgate 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.
iSWAPgateThe
iSWAPgate 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.
ECRgateThe 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.
DCXgateQiskit does define the
dcxgate 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.
U2rotation gateThe
U2gate has been defined as a more specificU3gate. Specifically, it is defined asU3(π/2,φ,λ).Should Jeff define this gate explicitly or do we believe it is better to simply represent it through its definition via
u3?