InstructionScheduleMap
qiskit.pulse.InstructionScheduleMap
Bases: object
(opens in a new tab)
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.
Returns
The names of all the circuit instructions which have Schedule definitions in this.
Methods
add
add(instruction, qubits, schedule, arguments=None)
Add a new known instruction for the given qubits and its mapping to a pulse schedule.
Parameters
- instruction (str (opens in a new tab) |Instruction) – The name of the instruction to add.
- qubits (int (opens in a new tab) |Iterable (opens in a new tab)[int (opens in a new tab)]) – The qubits which the instruction applies to.
- schedule (Schedule |ScheduleBlock |Callable (opens in a new tab)[[...], Schedule |ScheduleBlock]) – The Schedule that implements the given instruction.
- arguments (List (opens in a new tab)[str (opens in a new tab)] | 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.
Raises
PulseError – If the qubits are provided as an empty iterable.
assert_has
assert_has(instruction, qubits)
Error if the given instruction is not defined.
Parameters
- instruction (str (opens in a new tab) |Instruction) – The instruction for which to look.
- qubits (int (opens in a new tab) |Iterable (opens in a new tab)[int (opens in a new tab)]) – The specific qubits for the instruction.
Raises
PulseError – If the instruction is not defined on the qubits.
get
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 (str (opens in a new tab) |Instruction) – Name of the instruction or the instruction itself.
- qubits (int (opens in a new tab) |Iterable (opens in a new tab)[int (opens in a new tab)]) – The qubits for the instruction.
- *params (complex (opens in a new tab) |ParameterExpression) – Command parameters for generating the output schedule.
- **kwparams (complex (opens in a new tab) |ParameterExpression) – Keyworded command parameters for generating the schedule.
Returns
The Schedule defined for the input.
Return type
get_parameters
get_parameters(instruction, qubits)
Return the list of parameters taken by the given instruction on the given qubits.
Parameters
- instruction (str (opens in a new tab) |Instruction) – Name of the instruction.
- qubits (int (opens in a new tab) |Iterable (opens in a new tab)[int (opens in a new tab)]) – The qubits for the instruction.
Returns
The names of the parameters required by the instruction.
Return type
Tuple (opens in a new tab)[str (opens in a new tab)]
has
has(instruction, qubits)
Is the instruction defined for the given qubits?
Parameters
- instruction (str (opens in a new tab) |Instruction) – The instruction for which to look.
- qubits (int (opens in a new tab) |Iterable (opens in a new tab)[int (opens in a new tab)]) – The specific qubits for the instruction.
Returns
True iff the instruction is defined.
Return type
has_custom_gate
has_custom_gate()
Return True
if the map has user provided instruction.
Return type
pop
pop(instruction, qubits, *params, **kwparams)
Remove and return the defined schedule for the given instruction on the given qubits.
Parameters
- instruction (str (opens in a new tab) |Instruction) – Name of the instruction.
- qubits (int (opens in a new tab) |Iterable (opens in a new tab)[int (opens in a new tab)]) – The qubits for the instruction.
- *params (complex (opens in a new tab) |ParameterExpression) – Command parameters for generating the output schedule.
- **kwparams (complex (opens in a new tab) |ParameterExpression) – Keyworded command parameters for generating the schedule.
Returns
The Schedule defined for the input.
Return type
qubit_instructions
qubit_instructions(qubits)
Return a list of the instruction names that are defined by the backend for the given qubit or qubits.
Parameters
qubits (int (opens in a new tab) |Iterable (opens in a new tab)[int (opens in a new tab)]) – A qubit index, or a list or tuple of indices.
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']
).
Return type
List (opens in a new tab)[str (opens in a new tab)]
qubits_with_instruction
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 (str (opens in a new tab) |Instruction) – The name of the circuit instruction.
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.
Return type
List (opens in a new tab)[int (opens in a new tab) | Tuple (opens in a new tab)[int (opens in a new tab)]]
remove
remove(instruction, qubits)
Remove the given instruction from the listing of instructions defined in self.
Parameters
- instruction (str (opens in a new tab) |Instruction) – The name of the instruction to add.
- qubits (int (opens in a new tab) |Iterable (opens in a new tab)[int (opens in a new tab)]) – The qubits which the instruction applies to.