Gray synthesis for {CNOT, Rz} circuits

Header: tweedledum/algorithms/synthesis/gray_synth.hpp

Parameters

struct gray_synth_params

Parameters for gray_synth.

Algorithm

Warning

doxygenfunction: Unable to resolve multiple matches for function “tweedledum::gray_synth” with arguments (Network&, std::vector<uint32_t> const&, parity_terms const&, gray_synth_params) in doxygen xml output for project “tweedledum” from directory: doxyxml/xml. Potential matches:

- template <class Network>
  Network tweedledum::gray_synth(uint32_t, parity_terms const&, gray_synth_params)
- template <class Network>
  void tweedledum::gray_synth(Network&, std::vector<qubit_id> const&, parity_terms const&, gray_synth_params)
template <class Network>
Network tweedledum::gray_synth(uint32_t num_qubits, parity_terms const &parities, gray_synth_params params = {})

Gray synthesis for {CNOT, Rz} networks.

This algorithm is based on the work in [AAM17].

The following code shows how to apply the algorithm to the example in the original paper.


Return
{CNOT, Rz} network
Parameters
  • num_qubits: Number of qubits
  • parities: List of parities and rotation angles to synthesize
  • params: The parameters that configure the synthesis process. See gray_synth_params for details.