States (common state-preparation circuits)¶
State-preparation circuits returned as gate-tuple lists, ready for run_circuit.
states ¶
Common state-preparation circuits, returned as gate-tuple lists ready to
feed straight into run_circuit (or to concatenate with more gates first).
The GHZ-state snippet in particular -- [('h', 0), ('cx', 0, 1), ('cx', 1,
2), ...] -- shows up hand-written at the top of practically every
experiment and test script built on this package; ghz_state is that
snippet, written once.
ghz_state ¶
Build the GHZ-state preparation circuit: (|00...0> + |11...1>) / sqrt(2).
Implementation: H on qubit 0, then a linear CX chain (qubit 0 -> 1,
1 -> 2, ..., n-2 -> n-1) propagating the superposition outward --
reuses entangling_layer(n_qubits, pattern='linear') for the chain.
Parameters¶
n_qubits : int Number of qubits, must be >= 2 (a single qubit has no partner to entangle with, so an n=1 "GHZ state" is undefined here).
Returns¶
list[tuple] e.g. ghz_state(3) == [('h', 0), ('cx', 0, 1), ('cx', 1, 2)]
Examples¶
import dense_evolution as de sim = de.DenseSVSimulator(3) sim.run_circuit(de.ghz_state(3)) sim.get_probabilities()[[0, 7]] # |000> and |111>, each 0.5
Source code in dense_evolution/states.py
See also: entangling_layer, which ghz_state builds its CX chain from.