Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK. Go to the latest version

InstructionScheduleMap

class InstructionScheduleMap

GitHub

Bases: 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.


Methods

add

InstructionScheduleMap.add(instruction, qubits, schedule, arguments=None)

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

Parameters

  • instruction (Union[str, Instruction]) – The name of the instruction to add.
  • qubits (Union[int, Iterable[int]]) – The qubits which the instruction applies to.
  • schedule (Union[Schedule, ScheduleBlock, Callable[..., Union[Schedule, ScheduleBlock]]]) – The Schedule that implements the given instruction.
  • arguments (Optional[List[str]]) – 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.

Raises

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

Return type

None

assert_has

InstructionScheduleMap.assert_has(instruction, qubits)

Error if the given instruction is not defined.

Parameters

  • instruction (Union[str, Instruction]) – The instruction for which to look.
  • qubits (Union[int, Iterable[int]]) – The specific qubits for the instruction.

Raises

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

Return type

None

get

InstructionScheduleMap.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.

Parameters

  • instruction (Union[str, Instruction]) – Name of the instruction or the instruction itself.
  • qubits (Union[int, Iterable[int]]) – The qubits for the instruction.
  • *params – Command parameters for generating the output schedule.
  • **kwparams – Keyworded command parameters for generating the schedule.

Return type

Union[Schedule, ScheduleBlock]

Returns

The Schedule defined for the input.

Raises

PulseError – When invalid parameters are specified.

get_parameters

InstructionScheduleMap.get_parameters(instruction, qubits)

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

Parameters

  • instruction (Union[str, Instruction]) – Name of the instruction.
  • qubits (Union[int, Iterable[int]]) – The qubits for the instruction.

Return type

Tuple[str]

Returns

The names of the parameters required by the instruction.

has

InstructionScheduleMap.has(instruction, qubits)

Is the instruction defined for the given qubits?

Parameters

  • instruction (Union[str, Instruction]) – The instruction for which to look.
  • qubits (Union[int, Iterable[int]]) – The specific qubits for the instruction.

Return type

bool

Returns

True iff the instruction is defined.

has_custom_gate

InstructionScheduleMap.has_custom_gate()

Return True if the map has user provided instruction.

Return type

bool

pop

InstructionScheduleMap.pop(instruction, qubits, *params, **kwparams)

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

Parameters

  • instruction (Union[str, Instruction]) – Name of the instruction.
  • qubits (Union[int, Iterable[int]]) – The qubits for the instruction.
  • *params – Command parameters for generating the output schedule.
  • **kwparams – Keyworded command parameters for generating the schedule.

Return type

Union[Schedule, ScheduleBlock]

Returns

The Schedule defined for the input.

qubit_instructions

InstructionScheduleMap.qubit_instructions(qubits)

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

Parameters

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

Return type

List[str]

Returns

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']).

qubits_with_instruction

InstructionScheduleMap.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.

Parameters

instruction (Union[str, Instruction]) – The name of the circuit instruction.

Return type

List[Union[int, Tuple[int]]]

Returns

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.

Raises

PulseError – If the instruction is not found.

remove

InstructionScheduleMap.remove(instruction, qubits)

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

Parameters

  • instruction (Union[str, Instruction]) – The name of the instruction to add.
  • qubits (Union[int, Iterable[int]]) – The qubits which the instruction applies to.

Return type

None


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.

Return type

List[str]

Returns

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

Was this page helpful?
Report a bug or request content on GitHub.