qat.synthopline

Abstract plugin

This module provides an abstract plugin class from which inherit most of our compilers. Classes inheriting from this class should override the compile_circuit() method

qat.synthopline.clifford_normalizer.CliffordNormalizer

Abstract plugin class

Synthesis methods

qat.synthopline.generate_trotter_ansatz()

Generate Trotter Ansatz

qat.synthopline.linear_operator_synthesis()

Linear operator synthesis

qat.synthopline.phase_polynomial_synthesis()

Phase polynomila synthesis

Operator extraction

qat.synthopline.linear_synthesis.extract_linear_operator()

Extract linear operator

qat.synthopline.phase_polynomials.extract_phase_polynomial()

Extract phase polynomial

qat.synthopline.util.extract_pauli_rotations()

Extract Pauli rotations

Random generation methods

qat.synthopline.linear_synthesis.random_linear_operator()

Random linear operator

qat.synthopline.pauli_synth.generate_random_observable()

Random observable

qat.synthopline.phase_polynomials.random_phase_polynomial()

Random phase polynomial

Mappings

qat.synthopline.initial_mapping.frequency_mapping()

Frequency mapping

qat.synthopline.initial_mapping.greedy_mapping()

Greedy mapping

Utility methods

qat.synthopline.co_diagonalization.codiagonalize_with_architecture()

Codiagonalize with architecture

qat.synthopline.co_diagonalization.synthesize_stabilizer_state()

Synthesize stabilizer state

qat.synthopline.util.conjugate_observable_tableau()

Conjugate observable tableau

Some compilers introduced in this module use a low level representation of Clifford operators called Tableaux. Our Tableau implementation is based on [dB12] (specialized for qubits). The corresponding class is a C++ object published in python via pybind11:

qat.synthopline.interface.OperatorTableau

Operator tableau

This class interacts closely with another class used to represent Weyl operators:

qat.synthopline.interface.WeylOperator

Weyl operator