366 lines
10 KiB
Plaintext
366 lines
10 KiB
Plaintext
---
|
||
title: Call (v0.31)
|
||
description: API reference for qiskit.pulse.Call in qiskit v0.31
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.pulse.Call
|
||
---
|
||
|
||
# Call
|
||
|
||
<Class id="qiskit.pulse.Call" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.18/qiskit/pulse/instructions/call.py" signature="Call(subroutine, value_dict=None, name=None)" modifiers="class">
|
||
Bases: `qiskit.pulse.instructions.instruction.Instruction`
|
||
|
||
Pulse `Call` instruction.
|
||
|
||
The `Call` instruction represents the calling of a referenced subroutine (schedule). It enables code reuse both within the pulse representation and hardware (if supported).
|
||
|
||
Define new subroutine.
|
||
|
||
<Admonition title="Note" type="note">
|
||
Inline subroutine is mutable. This requires special care for modification.
|
||
</Admonition>
|
||
|
||
**Parameters**
|
||
|
||
* **subroutine** (*Union\[*[*Schedule*](qiskit.pulse.Schedule "qiskit.pulse.Schedule")*,* [*ScheduleBlock*](qiskit.pulse.ScheduleBlock "qiskit.pulse.ScheduleBlock")*]*) – A program subroutine to be referred to.
|
||
* **value\_dict** (`Optional`\[`Dict`\[`ParameterExpression`, `Union`\[`ParameterExpression`, `float`]]]) – Mapping of parameter object to assigned value.
|
||
* **name** (`Optional`\[`str`]) – Unique ID of this subroutine. If not provided, this is generated based on the subroutine name.
|
||
|
||
**Raises**
|
||
|
||
[**PulseError**](qiskit.pulse.PulseError "qiskit.pulse.PulseError") – If subroutine is not valid data format.
|
||
|
||
## Methods
|
||
|
||
<span id="qiskit-pulse-call-append" />
|
||
|
||
### append
|
||
|
||
<Function id="qiskit.pulse.Call.append" signature="Call.append(schedule, name=None)">
|
||
Return a new [`Schedule`](qiskit.pulse.Schedule "qiskit.pulse.Schedule") with `schedule` inserted at the maximum time over all channels shared between `self` and `schedule`.
|
||
|
||
**Parameters**
|
||
|
||
* **schedule** (*Union\['Schedule', 'Instruction']*) – Schedule or instruction to be appended
|
||
* **name** (`Optional`\[`str`]) – Name of the new schedule. Defaults to name of self
|
||
|
||
**Returns**
|
||
|
||
A new schedule with `schedule` a this instruction at t=0.
|
||
|
||
**Return type**
|
||
|
||
[Schedule](qiskit.pulse.Schedule "qiskit.pulse.Schedule")
|
||
</Function>
|
||
|
||
<span id="qiskit-pulse-call-assign-parameters" />
|
||
|
||
### assign\_parameters
|
||
|
||
<Function id="qiskit.pulse.Call.assign_parameters" signature="Call.assign_parameters(value_dict)">
|
||
Store parameters which will be later assigned to the subroutine.
|
||
|
||
Parameter values are not immediately assigned. The subroutine with parameters assigned according to the populated parameter table will be generated only when `inline_subroutines()` function is applied to this instruction. Note that parameter assignment logic creates a copy of subroutine to avoid the mutation problem. This function is usually applied by the Qiskit compiler when the program is submitted to the backend.
|
||
|
||
**Parameters**
|
||
|
||
**value\_dict** (`Dict`\[`ParameterExpression`, `Union`\[`ParameterExpression`, `float`]]) – A mapping from Parameters to either numeric values or another Parameter expression.
|
||
|
||
**Return type**
|
||
|
||
`Call`
|
||
|
||
**Returns**
|
||
|
||
Self with updated parameters.
|
||
</Function>
|
||
|
||
<span id="qiskit-pulse-call-assigned-subroutine" />
|
||
|
||
### assigned\_subroutine
|
||
|
||
<Function id="qiskit.pulse.Call.assigned_subroutine" signature="Call.assigned_subroutine()">
|
||
Returns this subroutine with the parameters assigned.
|
||
|
||
<Admonition title="Note" type="note">
|
||
This function may be often called internally for class equality check despite its overhead of parameter assignment. The subroutine with parameter assigned is cached based on `.argument` hash. Once this argument is updated, new assigned instance will be returned. Note that this update is not mutable operation.
|
||
</Admonition>
|
||
|
||
**Returns**
|
||
|
||
Attached program.
|
||
|
||
**Return type**
|
||
|
||
program (Union\[[Schedule](qiskit.pulse.Schedule "qiskit.pulse.Schedule"), [ScheduleBlock](qiskit.pulse.ScheduleBlock "qiskit.pulse.ScheduleBlock")])
|
||
</Function>
|
||
|
||
<span id="qiskit-pulse-call-ch-duration" />
|
||
|
||
### ch\_duration
|
||
|
||
<Function id="qiskit.pulse.Call.ch_duration" signature="Call.ch_duration(*channels)">
|
||
Return duration of the supplied channels in this Instruction.
|
||
|
||
**Parameters**
|
||
|
||
**\*channels** – Supplied channels
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
</Function>
|
||
|
||
<span id="qiskit-pulse-call-ch-start-time" />
|
||
|
||
### ch\_start\_time
|
||
|
||
<Function id="qiskit.pulse.Call.ch_start_time" signature="Call.ch_start_time(*channels)">
|
||
Return minimum start time for supplied channels.
|
||
|
||
**Parameters**
|
||
|
||
**\*channels** – Supplied channels
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
</Function>
|
||
|
||
<span id="qiskit-pulse-call-ch-stop-time" />
|
||
|
||
### ch\_stop\_time
|
||
|
||
<Function id="qiskit.pulse.Call.ch_stop_time" signature="Call.ch_stop_time(*channels)">
|
||
Return maximum start time for supplied channels.
|
||
|
||
**Parameters**
|
||
|
||
**\*channels** – Supplied channels
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
</Function>
|
||
|
||
<span id="qiskit-pulse-call-draw" />
|
||
|
||
### draw
|
||
|
||
<Function id="qiskit.pulse.Call.draw" signature="Call.draw(dt=1, style=None, filename=None, interp_method=None, scale=1, plot_all=False, plot_range=None, interactive=False, table=True, label=False, framechange=True, channels=None)">
|
||
Plot the instruction.
|
||
|
||
**Parameters**
|
||
|
||
* **dt** (`float`) – Time interval of samples
|
||
* **style** (*Optional\[SchedStyle]*) – A style sheet to configure plot appearance
|
||
* **filename** (`Optional`\[`str`]) – Name required to save pulse image
|
||
* **interp\_method** (`Optional`\[`Callable`]) – A function for interpolation
|
||
* **scale** (`float`) – Relative visual scaling of waveform amplitudes
|
||
* **plot\_all** (`bool`) – Plot empty channels
|
||
* **plot\_range** (`Optional`\[`Tuple`\[`float`]]) – A tuple of time range to plot
|
||
* **interactive** (`bool`) – When set true show the circuit in a new window (this depends on the matplotlib backend being used supporting this)
|
||
* **table** (`bool`) – Draw event table for supported instructions
|
||
* **label** (`bool`) – Label individual instructions
|
||
* **framechange** (`bool`) – Add framechange indicators
|
||
* **channels** (`Optional`\[`List`\[`Channel`]]) – A list of channel names to plot
|
||
|
||
**Returns**
|
||
|
||
A matplotlib figure object of the pulse schedule
|
||
|
||
**Return type**
|
||
|
||
matplotlib.figure
|
||
</Function>
|
||
|
||
<span id="qiskit-pulse-call-flatten" />
|
||
|
||
### flatten
|
||
|
||
<Function id="qiskit.pulse.Call.flatten" signature="Call.flatten()">
|
||
Return itself as already single instruction.
|
||
|
||
**Return type**
|
||
|
||
`Instruction`
|
||
</Function>
|
||
|
||
<span id="qiskit-pulse-call-insert" />
|
||
|
||
### insert
|
||
|
||
<Function id="qiskit.pulse.Call.insert" signature="Call.insert(start_time, schedule, name=None)">
|
||
Return a new [`Schedule`](qiskit.pulse.Schedule "qiskit.pulse.Schedule") with `schedule` inserted within `self` at `start_time`.
|
||
|
||
**Parameters**
|
||
|
||
* **start\_time** (`int`) – Time to insert the schedule schedule
|
||
* **schedule** (*Union\['Schedule', 'Instruction']*) – Schedule or instruction to insert
|
||
* **name** (`Optional`\[`str`]) – Name of the new schedule. Defaults to name of self
|
||
|
||
**Returns**
|
||
|
||
A new schedule with `schedule` inserted with this instruction at t=0.
|
||
|
||
**Return type**
|
||
|
||
[Schedule](qiskit.pulse.Schedule "qiskit.pulse.Schedule")
|
||
</Function>
|
||
|
||
<span id="qiskit-pulse-call-is-parameterized" />
|
||
|
||
### is\_parameterized
|
||
|
||
<Function id="qiskit.pulse.Call.is_parameterized" signature="Call.is_parameterized()">
|
||
Return True iff the instruction is parameterized.
|
||
|
||
**Return type**
|
||
|
||
`bool`
|
||
</Function>
|
||
|
||
<span id="qiskit-pulse-call-shift" />
|
||
|
||
### shift
|
||
|
||
<Function id="qiskit.pulse.Call.shift" signature="Call.shift(time, name=None)">
|
||
Return a new schedule shifted forward by time.
|
||
|
||
**Parameters**
|
||
|
||
* **time** (`int`) – Time to shift by
|
||
* **name** (`Optional`\[`str`]) – Name of the new schedule. Defaults to name of self
|
||
|
||
**Returns**
|
||
|
||
The shifted schedule.
|
||
|
||
**Return type**
|
||
|
||
[Schedule](qiskit.pulse.Schedule "qiskit.pulse.Schedule")
|
||
</Function>
|
||
|
||
## Attributes
|
||
|
||
### arguments
|
||
|
||
<Attribute id="qiskit.pulse.Call.arguments">
|
||
Parameters dictionary to be assigned to subroutine.
|
||
|
||
**Return type**
|
||
|
||
`Dict`\[`ParameterExpression`, `Union`\[`ParameterExpression`, `float`]]
|
||
</Attribute>
|
||
|
||
### channels
|
||
|
||
<Attribute id="qiskit.pulse.Call.channels">
|
||
Returns the channels that this schedule uses.
|
||
|
||
**Return type**
|
||
|
||
`Tuple`\[`Channel`]
|
||
</Attribute>
|
||
|
||
### duration
|
||
|
||
<Attribute id="qiskit.pulse.Call.duration">
|
||
Duration of this instruction.
|
||
|
||
**Return type**
|
||
|
||
`Union`\[`int`, `ParameterExpression`]
|
||
</Attribute>
|
||
|
||
### id
|
||
|
||
<Attribute id="qiskit.pulse.Call.id">
|
||
Unique identifier for this instruction.
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
</Attribute>
|
||
|
||
### instructions
|
||
|
||
<Attribute id="qiskit.pulse.Call.instructions">
|
||
Iterable for getting instructions from Schedule tree.
|
||
|
||
**Return type**
|
||
|
||
`Tuple`\[`Tuple`\[`int`, `Instruction`]]
|
||
</Attribute>
|
||
|
||
### name
|
||
|
||
<Attribute id="qiskit.pulse.Call.name">
|
||
Name of this instruction.
|
||
|
||
**Return type**
|
||
|
||
`str`
|
||
</Attribute>
|
||
|
||
### operands
|
||
|
||
<Attribute id="qiskit.pulse.Call.operands">
|
||
Return instruction operands.
|
||
|
||
**Return type**
|
||
|
||
`Tuple`
|
||
</Attribute>
|
||
|
||
### parameters
|
||
|
||
<Attribute id="qiskit.pulse.Call.parameters">
|
||
Unassigned parameters which determine the instruction behavior.
|
||
|
||
**Return type**
|
||
|
||
`Set`
|
||
</Attribute>
|
||
|
||
### prefix
|
||
|
||
<Attribute id="qiskit.pulse.Call.prefix" attributeValue="'call'" />
|
||
|
||
### start\_time
|
||
|
||
<Attribute id="qiskit.pulse.Call.start_time">
|
||
Relative begin time of this instruction.
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
</Attribute>
|
||
|
||
### stop\_time
|
||
|
||
<Attribute id="qiskit.pulse.Call.stop_time">
|
||
Relative end time of this instruction.
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
</Attribute>
|
||
|
||
### subroutine
|
||
|
||
<Attribute id="qiskit.pulse.Call.subroutine">
|
||
Return attached subroutine.
|
||
|
||
**Returns**
|
||
|
||
The program referenced by the call.
|
||
|
||
**Return type**
|
||
|
||
program (Union\[[Schedule](qiskit.pulse.Schedule "qiskit.pulse.Schedule"), [ScheduleBlock](qiskit.pulse.ScheduleBlock "qiskit.pulse.ScheduleBlock")])
|
||
</Attribute>
|
||
</Class>
|
||
|