Initialize#
- class qiskit.extensions.Initialize(params, num_qubits=None, normalize=False)[source]#
Bases:
Instruction
Complex amplitude initialization.
Class that initializes some flexible collection of qubit registers, implemented by calling the
qiskit.extensions.StatePreparation
Class. Note that Initialize is an Instruction and not a Gate since it contains a reset instruction, which is not unitary.Create new initialize composite.
- Parameters:
params (str, list, int or Statevector) --
Statevector: Statevector to initialize to.
list: vector of complex amplitudes to initialize to.
string: labels of basis states of the Pauli eigenstates Z, X, Y. See
Statevector.from_label()
. Notice the order of the labels is reversed with respect to the qubit index to be applied to. Example label '01' initializes the qubit zero to \(|1\rangle\) and the qubit one to \(|0\rangle\).int: an integer that is used as a bitmap indicating which qubits to initialize to \(|1\rangle\). Example: setting params to 5 would initialize qubit 0 and qubit 2 to \(|1\rangle\) and qubit 1 to \(|0\rangle\).
num_qubits (int) -- This parameter is only used if params is an int. Indicates the total number of qubits in the initialize call. Example: initialize covers 5 qubits and params is 3. This allows qubits 0 and 1 to be initialized to \(|1\rangle\) and the remaining 3 qubits to be initialized to \(|0\rangle\).
normalize (bool) -- Whether to normalize an input array to a unit vector.
Attributes
- condition_bits#
Get Clbits in condition.
- 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
- name#
Return the name.
- num_clbits#
Return the number of clbits.
- num_qubits#
Return the number of qubits.
- params#
Return initialize params.
- unit#
Get the time unit of duration.
Methods
- add_decomposition(decomposition)#
Add a decomposition of the instruction to the SessionEquivalenceLibrary.
- assemble()#
Assemble a QasmQobjInstruction
- broadcast_arguments(qargs, cargs)[source]#
Validation of the arguments.
- Parameters:
qargs (List) -- List of quantum bit arguments.
cargs (List) -- List of classical bit arguments.
- Yields:
Tuple(List, List) -- A tuple with single arguments.
- Raises:
CircuitError -- If the input is not valid. For example, the number of arguments does not match the gate expectation.
- c_if(classical, val)#
Set a classical equality condition on this instruction between the register or cbit
classical
and valueval
.Note
This is a setter method, not an additive one. Calling this multiple times will silently override any previously set condition; it does not stack.
- copy(name=None)#
Copy of the instruction.
- Parameters:
name (str) -- name to be given to the copied circuit, if
None
then the name stays the same.- Returns:
a copy of the current instruction, with the name updated if it was provided
- Return type:
- gates_to_uncompute()[source]#
Call to create a circuit with gates that take the desired vector to zero.
- Returns:
circuit to take self.params vector to \(|{00\ldots0}\rangle\)
- Return type:
- inverse()#
Invert this instruction.
If the instruction is composite (i.e. has a definition), then its definition will be recursively inverted.
Special instructions inheriting from Instruction can implement their own inverse (e.g. T and Tdg, Barrier, etc.)
- Returns:
a fresh instruction for the inverse
- Return type:
- Raises:
CircuitError -- if the instruction is not composite and an inverse has not been implemented for it.
- is_parameterized()#
Return True .IFF. instruction is parameterized else False
- qasm()#
Return a default OpenQASM string for the instruction.
Derived instructions may override this to print in a different format (e.g.
measure q[0] -> c[0];
).Deprecated since version 0.25.0: The method
qiskit.circuit.instruction.Instruction.qasm()
is deprecated as of qiskit-terra 0.25.0. It will be removed no earlier than 3 months after the release date. Correct exporting to OpenQASM 2 is the responsibility of a larger exporter; it cannot safely be done on an object-by-object basis without context. No replacement will be provided, because the premise is wrong.
- repeat(n)#
Creates an instruction with gate repeated n amount of times.
- Parameters:
n (int) -- Number of times to repeat the instruction
- Returns:
Containing the definition.
- Return type:
- Raises:
CircuitError -- If n < 1.
- reverse_ops()#
For a composite instruction, reverse the order of sub-instructions.
This is done by recursively reversing all sub-instructions. It does not invert any gate.
- Returns:
- a new instruction with
sub-instructions reversed.
- Return type:
- soft_compare(other)#
Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account.
- Parameters:
other (instruction) -- other instruction.
- Returns:
are self and other equal up to parameter expressions.
- Return type:
- validate_parameter(parameter)#
Instruction parameters has no validation or normalization.