mqt.qmap.plugins.qiskit.clifford_synthesis¶
Qiskit utilities for Clifford synthesis module.
Functions¶
|
Synthesize a Clifford circuit from a given tableau starting from an (optional) initial tableau. |
|
Optimize a Clifford circuit starting from an (optional) initial tableau. |
Module Contents¶
- synthesize_clifford(target_tableau: str | Clifford | PauliList | mqt.qmap.clifford_synthesis.Tableau, initial_tableau: str | Clifford | PauliList | mqt.qmap.clifford_synthesis.Tableau | None = None, include_destabilizers: bool = False, **kwargs: Any) tuple[QuantumCircuit, mqt.qmap.clifford_synthesis.SynthesisResults][source]¶
Synthesize a Clifford circuit from a given tableau starting from an (optional) initial tableau.
- Parameters:
target_tableau – The target tableau to synthesize. If a string is given, it is interpreted as a semicolon separated binary matrix or a list of Pauli strings. The Pauli strings follow the same format as in Stim. If a
Cliffordor aPauliListis given, it is converted to aTableau. If aTableauis given, it is used directly.initial_tableau – The initial tableau to start from. If a string is given, it is interpreted as a semicolon separated binary matrix or a list of Pauli strings. If a
Cliffordor aPauliListis given, it is converted to aTableau. If aTableauis given, it is used directly. If no initial tableau is given, the synthesis starts from the identity tableau.include_destabilizers – Flag to set whether destabilizers should be considered in the synthesis
**kwargs – Additional keyword arguments to configure the synthesis. See
SynthesisConfigurationfor a list of available options.
- Returns:
A tuple containing the synthesized circuit and the synthesis results.
- optimize_clifford(circuit: mqt.qmap.types.CircuitInputType, initial_tableau: str | Clifford | PauliList | mqt.qmap.clifford_synthesis.Tableau | None = None, include_destabilizers: bool = False, **kwargs: Any) tuple[QuantumCircuit, mqt.qmap.clifford_synthesis.SynthesisResults][source]¶
Optimize a Clifford circuit starting from an (optional) initial tableau.
- Parameters:
circuit – The circuit to optimize. If a string is given, it is interpreted as a QASM string or a filename. If a
QuantumCircuitis given, it is converted to aQuantumComputation. If aQuantumComputationis given, it is used as is.initial_tableau – The initial tableau to start from. If a string is given, it is interpreted as a semicolon separated binary matrix or a list of Pauli strings. If a
Cliffordis given or aPauliListis given, it is converted to a Tableau. If aTableauis given, it is used directly. If no initial tableau is given, the synthesis starts from the identity tableau.include_destabilizers – Flag to set whether destabilizers should be considered in the synthesis
**kwargs – Additional keyword arguments to configure the synthesis. See
SynthesisConfigurationfor a list of available options.
- Returns:
A tuple containing the optimized circuit and the synthesis results.