YaoExtensions.jl

Useful extensions for Yao
Author QuantumBFS
Popularity
9 Stars
Updated Last
12 Months Ago
Started In
August 2019

YaoExtensions

Stable Dev Build Status Codecov

Extensions for Yao. (Abandoned, circuits and hamiltonians are moved to Yao.EasyBuild)

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.

Utlities

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

Used By Packages