Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.
Important

IBM Quantum Platform is moving and this version will be sunset on July 1. To get started on the new platform, read the migration guide.

qiskit.synthesis.synth_stabilizer_layers

synth_stabilizer_layers(stab, cz_synth_func=<function _default_cz_synth_func>, cz_func_reverse_qubits=False, validate=False)

GitHub

Synthesis of a stabilizer state into layers.

It provides a similar decomposition to the synthesis described in Lemma 8 of Bravyi and Maslov, without the initial Hadamard-free sub-circuit which do not affect the stabilizer state.

For example, a 5-qubit stabilizer state is decomposed into the following layers:

     ┌─────┐┌─────┐┌─────┐┌─────┐┌────────┐
q_0:0    ├┤0    ├┤0    ├┤0    ├┤0
     │     ││     ││     ││     ││        │
q_1:1    ├┤1    ├┤1    ├┤1    ├┤1
     │     ││     ││     ││     ││        │
q_2:2 H2 ├┤2 S1 ├┤2 CZ ├┤2 H1 ├┤2 Pauli ├
     │     ││     ││     ││     ││        │
q_3:3    ├┤3    ├┤3    ├┤3    ├┤3
     │     ││     ││     ││     ││        │
q_4:4    ├┤4    ├┤4    ├┤4    ├┤4
     └─────┘└─────┘└─────┘└─────┘└────────┘

Parameters

  • stab (StabilizerState) – a stabilizer state.
  • cz_synth_func (Callable) – a function to decompose the CZ sub-circuit. It gets as input a boolean symmetric matrix, and outputs a QuantumCircuit.
  • validate (Boolean) – if True, validates the synthesis process.
  • cz_func_reverse_qubits (Boolean) – True only if cz_synth_func is synth_cz_depth_line_mr, since this function returns a circuit that reverts the order of qubits.

Returns

a circuit implementation of the stabilizer state.

Return type

QuantumCircuit

Raises

QiskitError – if the input is not a StabilizerState.


Reference:

  1. S. Bravyi, D. Maslov, Hadamard-free circuits expose the structure of the Clifford group, arXiv:2003.09412 [quant-ph]
Was this page helpful?
Report a bug or request content on GitHub.