iqm.qiskit_iqm.iqm_circuit.IQMCircuit

iqm.qiskit_iqm.iqm_circuit.IQMCircuit#

class iqm.qiskit_iqm.iqm_circuit.IQMCircuit(*regs: Register | int | Sequence[Bit], name: str | None = None, global_phase: ParameterValueType = 0, metadata: dict | None = None, inputs: Iterable[expr.Var] = (), captures: Iterable[expr.Var] = (), declarations: Mapping[expr.Var, expr.Expr] | Iterable[Tuple[expr.Var, expr.Expr]] = ())#

Bases: QuantumCircuit

Extends the QuantumCircuit class, adding a shortcut for applying the MOVE gate.

Attributes

name

A human-readable name for the circuit.

qregs

A list of the QuantumRegisters in this circuit.

cregs

A list of the ClassicalRegisters in this circuit.

duration

The total duration of the circuit, set by a scheduling transpiler pass.

unit

The unit that duration is specified in.

Methods

move(qubit, resonator)

Applies the MOVE gate to the circuit.

Parameters:
  • regs (Register | int | Sequence[Bit]) –

  • name (str | None) –

  • global_phase (ParameterValueType) –

  • metadata (dict | None) –

  • inputs (Iterable[expr.Var]) –

  • captures (Iterable[expr.Var]) –

  • declarations (Mapping[expr.Var, expr.Expr] | Iterable[Tuple[expr.Var, expr.Expr]]) –

move(qubit: int, resonator: int)#

Applies the MOVE gate to the circuit.

Note: at this point the circuit layout is only guaranteed to work if the order of the qubit and the resonator is correct (qubit first, resonator second).

Parameters:
  • qubit (int) – the logical index of the qubit

  • resonator (int) – the logical index of the resonator