InstructionScheduleMap#

class qiskit.pulse.InstructionScheduleMap[ソース]#

ベースクラス: object

Mapping from QuantumCircuit qiskit.circuit.Instruction names and qubits to Schedule s. In particular, the mapping is formatted as type:

Dict[str, Dict[Tuple[int], Schedule]]

where the first key is the name of a circuit instruction (e.g. 'u1', 'measure'), the second key is a tuple of qubit indices, and the final value is a Schedule implementing the requested instruction.

These can usually be seen as gate calibrations.

Initialize a circuit instruction to schedule mapper instance.

Attributes

instructions#

Return all instructions which have definitions.

By default, these are typically the basis gates along with other instructions such as measure and reset.

戻り値:

The names of all the circuit instructions which have Schedule definitions in this.

Methods

add(instruction, qubits, schedule, arguments=None)[ソース]#

Add a new known instruction for the given qubits and its mapping to a pulse schedule.

パラメータ:
  • instruction (str | Instruction) – The name of the instruction to add.

  • qubits (int | Iterable[int]) – The qubits which the instruction applies to.

  • schedule (Schedule | ScheduleBlock | Callable[[...], Schedule | ScheduleBlock]) – The Schedule that implements the given instruction.

  • arguments (List[str] | None) – List of parameter names to create a parameter-bound schedule from the associated gate instruction. If get() is called with arguments rather than keyword arguments, this parameter list is used to map the input arguments to parameter objects stored in the target schedule.

例外:

PulseError – If the qubits are provided as an empty iterable.

assert_has(instruction, qubits)[ソース]#

Error if the given instruction is not defined.

パラメータ:
  • instruction (str | Instruction) – The instruction for which to look.

  • qubits (int | Iterable[int]) – The specific qubits for the instruction.

例外:

PulseError – If the instruction is not defined on the qubits.

get(instruction, qubits, *params, **kwparams)[ソース]#

Return the defined Schedule or ScheduleBlock for the given instruction on the given qubits.

If all keys are not specified this method returns schedule with unbound parameters.

パラメータ:
戻り値:

The Schedule defined for the input.

戻り値の型:

Schedule | ScheduleBlock

get_parameters(instruction, qubits)[ソース]#

Return the list of parameters taken by the given instruction on the given qubits.

パラメータ:
戻り値:

The names of the parameters required by the instruction.

戻り値の型:

Tuple[str]

has(instruction, qubits)[ソース]#

Is the instruction defined for the given qubits?

パラメータ:
  • instruction (str | Instruction) – The instruction for which to look.

  • qubits (int | Iterable[int]) – The specific qubits for the instruction.

戻り値:

True iff the instruction is defined.

戻り値の型:

bool

has_custom_gate()[ソース]#

Return True if the map has user provided instruction.

戻り値の型:

bool

pop(instruction, qubits, *params, **kwparams)[ソース]#

Remove and return the defined schedule for the given instruction on the given qubits.

パラメータ:
戻り値:

The Schedule defined for the input.

戻り値の型:

Schedule | ScheduleBlock

qubit_instructions(qubits)[ソース]#

Return a list of the instruction names that are defined by the backend for the given qubit or qubits.

パラメータ:

qubits (int | Iterable[int]) – A qubit index, or a list or tuple of indices.

戻り値:

All the instructions which are defined on the qubits.

For 1 qubit, all the 1Q instructions defined. For multiple qubits, all the instructions which apply to that whole set of qubits (e.g. qubits=[0, 1] may return ['cx']).

戻り値の型:

List[str]

qubits_with_instruction(instruction)[ソース]#

Return a list of the qubits for which the given instruction is defined. Single qubit instructions return a flat list, and multiqubit instructions return a list of ordered tuples.

パラメータ:

instruction (str | Instruction) – The name of the circuit instruction.

戻り値:

Qubit indices which have the given instruction defined. This is a list of tuples if the instruction has an arity greater than 1, or a flat list of ints otherwise.

例外:

PulseError – If the instruction is not found.

戻り値の型:

List[int | Tuple[int]]

remove(instruction, qubits)[ソース]#

Remove the given instruction from the listing of instructions defined in self.

パラメータ:
  • instruction (str | Instruction) – The name of the instruction to add.

  • qubits (int | Iterable[int]) – The qubits which the instruction applies to.