uniqc.algorithmics.state_preparation.hadamard_superposition module#

Hadamard superposition preparation.

Creates a uniform superposition over the specified qubits.

uniqc.algorithmics.state_preparation.hadamard_superposition.hadamard_superposition(circuit, qubits=None)[source]#

Create a uniform Hadamard superposition on the given qubits.

Applies an H gate to every qubit in qubits, transforming |0...0> into an equal superposition of all 2^n basis states:

\[|0\rangle^{\otimes n} \xrightarrow{H^{\otimes n}} \frac{1}{\sqrt{2^n}} \sum_{k=0}^{2^n-1} |k\rangle\]
Parameters:
  • circuit (Circuit) – Quantum circuit to operate on (mutated in-place).

  • qubits (List[int] | None) – Qubit indices to apply H to. None means all qubits (list(range(circuit.max_qubit + 1))).

Return type:

None

Example

>>> from uniqc.circuit_builder import Circuit
>>> from uniqc.algorithmics.state_preparation import hadamard_superposition
>>> c = Circuit()
>>> c.allocate_qubits(3)
[0, 1, 2]
>>> hadamard_superposition(c)       # (|0>+|1>)/√2 ⊗ 3