Skip to content
This repository has been archived by the owner on Apr 30, 2022. It is now read-only.

QuantumBFS/YaoExtensions.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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