StatePreparation#

class qiskit.circuit.library.StatePreparation(params, num_qubits=None, inverse=False, label=None, normalize=False)[Quellcode]#

Bases: Gate

Complex amplitude state preparation.

Class that implements the (complex amplitude) state preparation of some flexible collection of qubit registers.

Parameter:
  • params (str | list | int | 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 | None) – 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\).

  • inverse (bool) – if True, the inverse state is constructed.

  • label (str | None) – An optional label for the gate

  • normalize (bool) – Whether to normalize an input array to a unit vector.

Verursacht:

QiskitError – num_qubits parameter used when params is not an integer

When a Statevector argument is passed the state is prepared using a recursive initialization algorithm, including optimizations, from [1], as well as some additional optimizations including removing zero rotations and double cnots.

References: [1] Shende, Bullock, Markov. Synthesis of Quantum Logic Circuits (2004) [https://arxiv.org/abs/quant-ph/0406176v5]

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 instruction params.

unit#

Get the time unit of duration.

Methods

broadcast_arguments(qargs, cargs)[Quellcode]#

Validation and handling of the arguments and its relationship.

For example, cx([q[0],q[1]], q[2]) means cx(q[0], q[2]); cx(q[1], q[2]). This method yields the arguments in the right grouping. In the given example:

in: [[q[0],q[1]], q[2]],[]
outs: [q[0], q[2]], []
      [q[1], q[2]], []

The general broadcasting rules are:

  • If len(qargs) == 1:

    [q[0], q[1]] -> [q[0]],[q[1]]
    
  • If len(qargs) == 2:

    [[q[0], q[1]], [r[0], r[1]]] -> [q[0], r[0]], [q[1], r[1]]
    [[q[0]], [r[0], r[1]]]       -> [q[0], r[0]], [q[0], r[1]]
    [[q[0], q[1]], [r[0]]]       -> [q[0], r[0]], [q[1], r[0]]
    
  • If len(qargs) >= 3:

    [q[0], q[1]], [r[0], r[1]],  ...] -> [q[0], r[0], ...], [q[1], r[1], ...]
    
Parameter:
  • qargs – List of quantum bit arguments.

  • cargs – List of classical bit arguments.

Rückgabe:

A tuple with single arguments.

Verursacht:

CircuitError – If the input is not valid. For example, the number of arguments does not match the gate expectation.

inverse()[Quellcode]#

Return inverted StatePreparation

validate_parameter(parameter)[Quellcode]#

StatePreparation instruction parameter can be str, int, float, and complex.