{"id":18397771,"url":"https://github.com/quantumbfs/yaoexperiment.jl","last_synced_at":"2026-01-21T06:29:03.460Z","repository":{"id":95347294,"uuid":"177295047","full_name":"QuantumBFS/YaoExperiment.jl","owner":"QuantumBFS","description":"Gate Counting, Timing, Compiling and Web communication stuff.","archived":false,"fork":false,"pushed_at":"2020-02-23T21:53:47.000Z","size":60,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-16T02:41:14.940Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QuantumBFS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-23T13:54:12.000Z","updated_at":"2020-02-23T21:53:50.000Z","dependencies_parsed_at":"2023-04-17T00:44:12.921Z","dependency_job_id":null,"html_url":"https://github.com/QuantumBFS/YaoExperiment.jl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuantumBFS%2FYaoExperiment.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuantumBFS%2FYaoExperiment.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuantumBFS%2FYaoExperiment.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuantumBFS%2FYaoExperiment.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QuantumBFS","download_url":"https://codeload.github.com/QuantumBFS/YaoExperiment.jl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248587114,"owners_count":21129170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T02:18:36.810Z","updated_at":"2026-01-21T06:29:03.429Z","avatar_url":"https://github.com/QuantumBFS.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YaoExperiment\n[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://GiggleLiu.github.io/YaoExperiment.jl/stable)\n[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://GiggleLiu.github.io/YaoExperiment.jl/dev)\n[![Build Status](https://travis-ci.com/GiggleLiu/YaoExperiment.jl.svg?branch=master)](https://travis-ci.com/GiggleLiu/YaoExperiment.jl)\n[![Codecov](https://codecov.io/gh/GiggleLiu/YaoExperiment.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/GiggleLiu/YaoExperiment.jl)\n\n\n![#f03c15](https://placehold.it/15/f03c15/000000?text=+)![#f03c15](https://placehold.it/15/f03c15/000000?text=+)![#f03c15](https://placehold.it/15/f03c15/000000?text=+) Work in progress ![#f03c15](https://placehold.it/15/f03c15/000000?text=+)![#f03c15](https://placehold.it/15/f03c15/000000?text=+)![#f03c15](https://placehold.it/15/f03c15/000000?text=+)\n\nExperimental utilities\n* Gate Count\n* Time Estimation\n* Compiling to QUIL\n* Web Communication\n\nPossiblly will support\n* Wave Editing (for Quantum Control)\n\n## Examples\n#### 1. count gates and estimate experimental run time\nFor timing, gates in `KronBlock`s can be parallelized, while gates in `ChainBlock`s are sequentially excuted. `T1` and `T2` are symbolic time for 1-qubit gate and 2-qubit gate. Please use dispatch to time gates more accurately.\n\n```julia console\njulia\u003e using QuAlgorithmZoo, YaoExperiment, Yao, Symbolics\n\njulia\u003e qc = QFTCircuit(3)\nTotal: 3, DataType: Complex{Float64}\nchain\n├─ chain\n│  ├─ kron\n│  │  └─ 1=\u003eH gate\n│  ├─ control(2)\n│  │  └─ (1,)=\u003ePhase Shift Gate:1.5707963267948966\n│  └─ control(3)\n│     └─ (1,)=\u003ePhase Shift Gate:0.7853981633974483\n├─ chain\n│  ├─ kron\n│  │  └─ 2=\u003eH gate\n│  └─ control(3)\n│     └─ (2,)=\u003ePhase Shift Gate:1.5707963267948966\n└─ chain\n   └─ kron\n      └─ 3=\u003eH gate\n\n\njulia\u003e qc |\u003e gatecount\nDict{Type{#s12} where #s12\u003c:Yao.Blocks.AbstractBlock,Int64} with 2 entries:\n  ControlBlock{3,ShiftGate{Float64},1,1,Complex{Float64}} =\u003e 3\n  HGate{Complex{Float64}}                                 =\u003e 3\n\njulia\u003e ex = chain(qc, Wait{3}(0.1)) |\u003e gatetime\n(T1 + T2) * 2 + T2 + T1 + 0.1\n\njulia\u003e @sym T1 T2\nT2\n\njulia\u003e ex(T1=\u003e1)(T2=\u003e10) |\u003e simplify\n33.1\n\njulia\u003e qc |\u003e quil |\u003e print\nH 0\nCPHASE(1.5707963267948966) 1 0\nCPHASE(0.7853981633974483) 2 0\nH 1\nCPHASE(1.5707963267948966) 2 1\nH 2\n```\n\nFor web communication part, see `web/`.\n\n## TODO\n* Decode QUIL for Porting Real Device.\n* Optimize Appearence of Symbolic Calculation.\nSymbolic calculations are based on [Symbolics](https://github.com/MasonProtter/Symbolics.jl), fixing this [issue](https://github.com/MasonProtter/Symbolics.jl/issues/17) may give better appearence of formulas\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquantumbfs%2Fyaoexperiment.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquantumbfs%2Fyaoexperiment.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquantumbfs%2Fyaoexperiment.jl/lists"}