Useful extensions for Yao
Author QuantumBFS
8 Stars
Updated Last
1 Year Ago
Started In
August 2019


Stable Dev Build Status Codecov

Extensions for Yao.

List of features

Easy constructions

  • circuits

    • variational_circuit(n): construct a random parametrized circuit.
    • rand_supremacy2d(nx, ny, depth): construct a quantum supremacy circuit.
    • qft_circuit(n): construct a quantum fourier transformation circuit.
    • rand_google53(): construct a Google's 53 qubit supremacy circuit.
  • circuit building blocks

    • general_U4(): an optimal decomposition of a U(4) gate.
    • cphase(nbit, i, j), cz(nbit, i, j)
  • hamiltonians

    • heisenberg(n): construct a heisenberg hamiltonian.
    • transverse_ising(n): construct a transverse field Ising hamiltonian.

Block extensions

  • primitive blocks

    • SqrtX, SqrtY, FSim, ISWAP, SqrtW
    • Mod: modulo operation block.
    • QFT: faster implementation of QFT subroutine, instead of running QFT circuit faithfully, simulate it with classical fft (thus much faster).
    • RotBasis: basis rotor, make measurements on different basis easier.
    • MathGate: classical mathematic functions.
    • ReflectGate: used in grover search,
  • composite blocks

    • Bag: a trivial container block that gives the flexibility to change the sub-block, as well as masking. Mainly used for structure learning.
    • ConditionBlock: conditional control the excusion of two block.
    • Sequence: similar to chain block, but more general, one can put anything inside.
    • PauliString: a paulistring.


  • gatecount, count the number of gates,
  • faithful simulation of gradients, including observable loss and MMD loss

Used By Packages