ESOP-phase synthesis

Header: tweedledum/algorithms/synthesis/esop_phase_synth.hpp

Given an \(n\)-variable Boolean function \(f\), this synthesis algorithm generates a quantum circuit with \(n\) qubits composed of multiple-controlled Z gates that computes the unitary operation \(U : |\varphi\rangle \mapsto (-1)^{f(\varphi)}|\varphi\rangle\).

Algorithm

template<class Network>
Network tweedledum::esop_phase_synth(kitty::dynamic_truth_table const &function)

ESOP-phase synthesis.

Finds a quantum circuit using multiple-controlled Z gates that computes a phase into a quantum state based on the Boolean function. Note that the circuit is the same for the function and its inverse.

In order to find the multiple-controlled Z gates, the algorithm computes the function’s PPRM representation.

Parameters
  • function: A Boolean function

Warning

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

- template<class Network>
  Network tweedledum::esop_phase_synth(kitty::dynamic_truth_table const&)
- template<typename Network>
  void tweedledum::esop_phase_synth(Network&, std::vector<wire::id> const&, kitty::dynamic_truth_table const&)