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
>
Networktweedledum
::
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&)