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_clifford_layers

synth_clifford_layers(cliff, cx_synth_func=<function _default_cx_synth_func>, cz_synth_func=<function _default_cz_synth_func>, cx_cz_synth_func=None, cz_func_reverse_qubits=False, validate=False)

GitHub

Synthesis of a Clifford into layers, it provides a similar decomposition to the synthesis described in Lemma 8 of Bravyi and Maslov.

For example, a 5-qubit Clifford circuit is decomposed into the following layers:

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

This decomposition is for the default cz_synth_func and cx_synth_func functions, with other functions one may see slightly different decomposition.

Parameters

  • cliff (Clifford) – a clifford operator.
  • cx_synth_func (Callable) – a function to decompose the CX sub-circuit. It gets as input a boolean invertible matrix, and outputs a QuantumCircuit.
  • cz_synth_func (Callable) – a function to decompose the CZ sub-circuit. It gets as input a boolean symmetric matrix, and outputs a QuantumCircuit.
  • cx_cz_synth_func (Callable) – optional, a function to decompose both sub-circuits CZ and CX.
  • 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 Clifford.

Return type

QuantumCircuit


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.