PennyLane
Install
Install
  1. Compilation/
  2. Control logic decompositions

Control logic decompositions

OverviewCompute/uncomputeGlobal phasesPhase shiftsLCU(QSVT)Resources

Controlled quantum gates are a fundamental building block for algorithm design and unitary synthesis. Essential techniques like linear combinations of unitaries, Select-applying a gate (qml.Select), or QROMs (demo) all use controlled gates.

Consequently, decomposing (groups of) controlled quantum gates is an important step in quantum compilation.

Inputs

  • Circuit description containing quantum control logic.

Outputs

  • Circuit description containing reduced quantum control logic. The reduction is typically seen in the number of control nodes and/or the number of controlled gates.

Covered decompositions

We show the following four decompositions:

  1. Control of a compute/uncompute pattern [1]
  2. Linear combination of QSVTs
  3. Controlled global phases [2]
  4. Flipped and controlled phase shifts

Examples

We give one brief example for each of the four techniques. See the respective tabs for more details and examples.

  • Controlled versions of a compute/uncompute pattern can be simplified. This allows us to skip control nodes like in the following example:

       0: ─╭RX(0.50)─╭●────╭●─╭RX(0.50)†─┤  =     0: ──RX(0.50)─╭●────╭●──RX(0.50)†─┤
       1: ─│─────────├X─╭●─├X─│──────────┤        1: ───────────╰X─╭●─╰X────────────┤
       2: ─│─────────│──├X─│──│──────────┤        2: ──────────────├X───────────────┤
    ctrl: ─╰●────────╰●─╰●─╰●─╰●─────────┤     ctrl: ──────────────╰●───────────────┤.
    
  • Linear combinations of QSVT circuits can be condensed, leading to simplifications like the following:

    aux: ──H─╭○─────╭○────────────╭○─────╭○─────────────╭○──────╭●─────╭●────────────╭●─────H─┤↗₀│
    c:   ────╰∏_ϕ_0─├BlockEncode0─╰∏_ϕ_1─├BlockEncode0†─╰∏_ϕ_2──╰∏_τ_0─├BlockEncode0─╰∏_τ_1─────────┤
    t:   ───────────╰BlockEncode0────────╰BlockEncode0†────────────────╰BlockEncode0────────────────┤.
    
    =
    
    aux: ──H─────╭●─────────────────────────╭●─────╭○─────────────╭○─────H─┤↗₀│
    c:   ──∏_ϕ_0─╰∏_θ_0─╭BlockEncode0─∏_ϕ_1─╰∏_θ_1─├BlockEncode0†─╰∏_ϕ_2────────┤
    t:   ───────────────╰BlockEncode0──────────────╰BlockEncode0†───────────────┤.
    
  • Controlled global phases, unlike their non-controlled counterparts, cannot simply be skipped. Instead, they decompose into phase shift gates, with any of the controls acting as new target:

    0: ──╭GlobalPhase(a)─┤  =  0: ──────────┤  =  0: ──────────┤  =  0: ──────────┤
    1: ──├●──────────────┤     1: ──╭Rϕ(-a)─┤     1: ──╭●──────┤     1: ──╭●──────┤
    2: ──├●──────────────┤     2: ──├●──────┤     2: ──├Rϕ(-a)─┤     2: ──├●──────┤
    3: ──╰●──────────────┤     3: ──╰●──────┤     3: ──╰●──────┤     3: ──╰Rϕ(-a)─┤
    
  • (Controlled) phase shift gates, in turn, can be decomposed via this relationship into (controlled) R_Z gates, leading to staircase circuits:

    0: ──╭Rϕ(a)─┤  ≅  0: ──╭RZ(a)───────────────────┤
    1: ──├●─────┤     1: ──├●─────╭RZ(a/2)──────────┤
    2: ──╰●─────┤     2: ──╰●─────╰●────────RZ(a/4)─┤
    

Typical usage

These decomposition tricks are usually applied to high-level or intermediate-level circuit descriptions that allow insight into the control logic applied to some subroutine.

References

[1] "A software methodology for compiling quantum programs", Thomas Häner, Damian S. Steiger, Krysta Svore, Matthias Troyer, Quantum Sci. Technol. 3 020501, 2018

[2] "Quantum computation and quantum information", Michael A. Nielsen, Isaac L. Chuang, Cambridge Press, 2010, Cambridge University Press

Cite this page

@misc{PennyLane-ctrl-logic-decomp,
    title = "Control logic decompositions",
    author = "David Wierichs",
    year = "2025"
    howpublished = "\url{https://pennylane.ai/compilation/ctrl-logic-decomp}"
}

Page author(s)

David Wierichs
David Wierichs

David Wierichs

I like to think about differentiation and representations of quantum programs, and I enjoy coding up research ideas and useful features for anyone to use in PennyLane.

PennyLane

PennyLane is a cross-platform Python library for quantum computing, quantum machine learning, and quantum chemistry. Built by researchers, for research. Created with ❤️ by Xanadu.

Research

  • Research
  • Performance
  • Hardware & Simulators
  • Demos
  • Quantum Compilation
  • Quantum Datasets

Education

  • Teach
  • Learn
  • Codebook
  • Coding Challenges
  • Videos
  • Glossary

Software

  • Install PennyLane
  • Features
  • Documentation
  • Catalyst Compilation Docs
  • Development Guide
  • API
  • GitHub
Stay updated with our newsletter

© Copyright 2025 | Xanadu | All rights reserved

TensorFlow, the TensorFlow logo and any related marks are trademarks of Google Inc.

Privacy Policy|Terms of Service|Cookie Policy|Code of Conduct