WhileLoopOp¶
- class WhileLoopOp(condition, body, label=None)[source]¶
Bases:
qiskit.circuit.controlflow.control_flow.ControlFlowOp
A circuit operation which repeatedly executes a subcircuit (
body
) until a condition (condition
) evaluates as False.- Parameters
condition (
Union
[Tuple
[ClassicalRegister
,int
],Tuple
[Clbit
,int
],Tuple
[Clbit
,bool
]]) – A condition to be checked prior to executingbody
. Can be specified as either a tuple of aClassicalRegister
to be tested for equality with a givenint
, or as a tuple of aClbit
to be compared to either abool
or anint
.body (
QuantumCircuit
) – The loop body to be repeatedly executed.label (
Optional
[str
]) – An optional label for identifying the instruction.
The classical bits used in
condition
must be a subset of those attached tobody
.Circuit symbol:
┌─────────────┐ q_0: ┤0 ├ │ │ q_1: ┤1 ├ │ while_loop │ q_2: ┤2 ├ │ │ c_0: ╡0 ╞ └─────────────┘
Create a new instruction.
- Parameters
name (str) – instruction name
num_qubits (int) – instruction’s qubit width
num_clbits (int) – instruction’s clbit width
params (list[int|float|complex|str|ndarray|list|ParameterExpression]) – list of parameters
duration (int or float) – instruction’s duration. it must be integer if
unit
is ‘dt’unit (str) – time unit of duration
label (str or None) – An optional label for identifying the instruction.
- Raises
CircuitError – when the register is not in the correct format.
TypeError – when the optional label is provided, but it is not a string.
Methods
Add a decomposition of the instruction to the SessionEquivalenceLibrary.
Assemble a QasmQobjInstruction
Validation of the arguments.
Set a classical equality condition on this instruction between the register or cbit
classical
and valueval
.Copy of the instruction.
Invert this instruction.
Return True .IFF.
Return a default OpenQASM string for the instruction.
Creates an instruction with gate repeated n amount of times.
Replace blocks and return new instruction.
For a composite instruction, reverse the order of sub-instructions.
Soft comparison between gates.
Instruction parameters has no validation or normalization.
Attributes
- blocks¶
- decompositions¶
Get the decompositions of the instruction from the SessionEquivalenceLibrary.
- definition¶
Return definition in terms of other basic gates.
- duration¶
Get the duration.
- label¶
Return instruction label
- Return type
str
- name¶
Return the name.
- num_clbits¶
Return the number of clbits.
- num_qubits¶
Return the number of qubits.
- params¶
- unit¶
Get the time unit of duration.