• Stars
    star
    878
  • Rank 49,996 (Top 2 %)
  • Language
    Julia
  • License
    Other
  • Created about 6 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Extensible, Efficient Quantum Algorithm Design for Humans.
Yao Logo

CI codecov Unitary Fund ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

Yao Extensible, Efficient Quantum Algorithm Design for Humans.

Introduction

Yao is an open source framework that aims to empower quantum information research with software tools. It is designed with following in mind:

  • quantum algorithm design;
  • quantum software 2.0;
  • quantum computation education.

We are in an early-release beta. Expect some adventures and rough edges.

Try your first Yao program

A 3 line Quantum Fourier Transformation with Quantum Blocks:

A(i, j) = control(i, j=>shift(2Ï€/(1<<(i-j+1))))
B(n, k) = chain(n, j==k ? put(k=>H) : A(j, k) for j in k:n)
qft(n) = chain(B(n, k) for k in 1:n)

Installation

Yao is a   Julia Language   package. To install Yao, please open Julia's interactive session (known as REPL) and press ] key in the REPL to use the package mode, then type the following command

For stable release

pkg> add Yao

For current master

pkg> add Yao#master

If you have problem to install the package, please file us an issue.

For CUDA support, see CuYao.jl.

For tensor network based simulations, see YaoToEinsum.jl.

Documentation

Tutorial | Learn Quantum Computing with Yao

Algorithm Zoo

Some quantum algorithms are implemented with Yao in QuAlgorithmZoo.

Online Documentation

  • STABLE — most recently tagged version of the documentation.
  • LATEST — in-development version of the documentation.

Monthly Community Call

We are running a monthly community call, please sign up in Julia slack channel by DM Roger-luo your email address. Or follow our twitter.

If you have anything interesting to share up to 40min, or just want to talk about your experience in a brief 10min, let us know! Please sign up with a topic using this Google sheet.

Communication

The Team

This project is an effort of QuantumBFS, an open source organization for quantum science. Yao is currently maintained by Xiu-Zhe (Roger) Luo and Jin-Guo Liu with contributions from open source community. All the contributors are listed in the contributors.

Cite Yao

If you use Yao in teaching and research, please cite our work:

@article{YaoFramework2019,
  title={Yao.jl: Extensible, Efficient Framework for Quantum Algorithm Design},
  author={Xiu-Zhe Luo and Jin-Guo Liu and Pan Zhang and Lei Wang},
  journal={arXiv preprint arXiv:1912.10877},
  year={2019}
}

License

Yao is released under the Apache 2 license.

More Repositories

1

SSSS

"Deep Learning and Quantum Programming" Spring School @ Song Shan Lake
Jupyter Notebook
171
star
2

QuAlgorithmZoo.jl

A curated implementation of quantum algorithms with Yao.jl
Julia
89
star
3

ZXCalculus.jl

An implementation of ZX-calculus in Julia
Julia
44
star
4

QuDiffEq.jl

Quantum Algorithms for solving differential equations
Julia
40
star
5

LuxurySparse.jl

A luxury sparse matrix package for Julia
Julia
34
star
6

CuYao.jl

CUDA extension for Yao.jl
Julia
32
star
7

Multigraphs.jl

A multigraph extension of Graphs.jl
Julia
31
star
8

YaoLang.jl

YaoLang: The next DSL for Yao and quantum programs.
Julia
30
star
9

YaoBlocks.jl

Standard basic quantum circuit simulator building blocks. (archived, for it is moved to Yao.jl)
Julia
26
star
10

JuliaChallenge

Can you solve all the puzzles in this repo? Master Julia in an easy way!
Jupyter Notebook
22
star
11

YaoPlots.jl

Yao.jl extension for plotting quantum circuit
Julia
18
star
12

YaoCompiler.jl

The Yao compiler project
Julia
18
star
13

YaoBase.jl

Abstract type and interface definition for quantum circuit blocks.
Julia
17
star
14

BitBasis.jl

Types and operations for basis represented by bits in linear algebra.
Julia
17
star
15

OpenQASM.jl

Parsers and Tools for OpenQASM
Julia
16
star
16

IBMQClient.jl

IBM Quantum Experience Wrapper
Julia
15
star
17

FLOYao.jl

A fermionic linear optics simulator backend for Yao.jl
Julia
13
star
18

YaoArrayRegister.jl

Simulated Full Amplitude Quantum Register (moved to Yao.jl/lib)
Julia
12
star
19

YaoTensorNetwork.jl

Dump a quantum circuit in Yao to a tensor network graphical model
Julia
11
star
20

Quon.jl

Topological Evaluation of Quantum Information
Julia
11
star
21

YaoToEinsum.jl

Convert Yao circuit to OMEinsum (tensor network) contraction.
Julia
10
star
22

FunnyTN.jl

A funny picotograph language for Tensor Networks
Julia
10
star
23

YaoQASM.jl

Bidirectional transformation between Yao IR and QASM.
Julia
10
star
24

tutorials

Tutorials for Yao
Julia
9
star
25

YaoExtensions.jl

Useful extensions for Yao
Julia
9
star
26

YaoSym.jl

Symbolic Computation Extension for Yao (moved to Yao.jl/lib)
Julia
9
star
27

AWSBraket.jl

Julia wrapper of AWSBraket schema and REST API
Julia
9
star
28

Pathintegral-QMC.jl

Path integral quantum Monte Carlo
Jupyter Notebook
7
star
29

YaoQDNN.jl

Julia
5
star
30

YaoAD.jl

Automatic differentiable quantum circuit simulation.
Julia
5
star
31

BQCESubroutine.jl

Basic Quantum Circuit Emulation Subroutine
Julia
5
star
32

YaoClifford.jl

A stabilizer state backend for Yao
Julia
5
star
33

YaoIR

C++
4
star
34

QuantumMatterJournalClub

https://sites.google.com/view/quantum-matters/home
4
star
35

YaoAPI.jl

APIs in Yao, minimum package for Yao compatibility (moved to Yao.jl/lib)
Julia
4
star
36

YaoEGraph.jl

EGraph based quantum circuit simplification via Metatheory
Julia
3
star
37

YaoTargetQASM.jl

the QASM compilation target, includes QASM frontend and backend
Julia
3
star
38

YaoTargetQobj.jl

the Qobj compilation target, includes IBM Q frontend and backend
Julia
3
star
39

CommunityCallMaterials

Jupyter Notebook
3
star
40

QuMC.jl

Tools for Quantum Monte Carlo
Julia
3
star
41

YaoPastaQ.jl

YaoPastaQ integration
Julia
3
star
42

yao-python

Yao Python Package
Python
3
star
43

CacheServers.jl

Cache Servers
Julia
2
star
44

YaoDensityMatrixRegisters.jl

Densitry Matrix Registers
Julia
2
star
45

YaoHIR.jl

High Level IR for YaoCompiler in native Julia
Julia
2
star
46

YaoZX.jl

The ZX-calculus extension of Yao.
Julia
2
star
47

YaoBlocksQASM.jl

YaoBlocks interface for OpenQASM
Julia
2
star
48

YaoExperiment.jl

Gate Counting, Timing, Compiling and Web communication stuff.
Julia
2
star
49

QuantumBFS.github.io

Homepage of the organization. Discussion about this organization should be in this repo's issue list.
Julia
2
star
50

juliamatrix

A tutorial for matrix computation in Julia Language
Jupyter Notebook
2
star
51

PhysConsts.jl

Physical Constants
Julia
1
star
52

YaoLocations.jl

Wire location types for quantum circuit
Julia
1
star
53

AbstractGradOptim.jl

Abstract gradient based optimizers
Julia
1
star
54

PlanarMultigraphs.jl

A Julia library for planar multigraphs
Julia
1
star
55

SummerOfCode

1
star
56

YaoBlocksQobj.jl

YaoBlocks interafce for the IBMQClient package.
Julia
1
star
57

YaoBenchmarks.jl

A place to benchmark Yao
Python
1
star
58

YaoGraphs.jl

Registers and blocks for graph state, error correction and more.
Julia
1
star