Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

move QuAlgorithmZoo to lib #314

Closed
wants to merge 94 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
0bae034
initial empty commit
Roger-luo Aug 8, 2018
3b4b7ba
QuAlgorithmZoo.jl generated files.
Roger-luo Aug 8, 2018
e4cde2d
copy from Yao
Roger-luo Aug 8, 2018
59269a0
update ignore and travis
Roger-luo Aug 8, 2018
512c3aa
update project
Roger-luo Aug 16, 2018
5c6ae9e
add Literate
Roger-luo Aug 18, 2018
ea63d70
update Project
Roger-luo Aug 18, 2018
bbd0e5a
add ignore for docs
Roger-luo Aug 18, 2018
4906e03
update ignore
Roger-luo Aug 18, 2018
2afd927
update project
Roger-luo Aug 18, 2018
f5b1f2d
add docs
Roger-luo Aug 18, 2018
98cafe3
add Literate scripts
Roger-luo Aug 18, 2018
afd15d6
fix module path
Roger-luo Aug 18, 2018
64c333a
rm env
Roger-luo Aug 18, 2018
f92c10c
set up Documenter
Roger-luo Aug 18, 2018
8fd2887
add pkgs
Roger-luo Aug 18, 2018
c102ce5
add 1.0 in CI
Roger-luo Aug 18, 2018
5c83f2d
fix test
Roger-luo Aug 18, 2018
2041fa2
update deps
Roger-luo Aug 18, 2018
de2330b
fix plots
Roger-luo Aug 18, 2018
cba5c4e
add another dep
Roger-luo Aug 18, 2018
43fcf1c
update README
Roger-luo Aug 18, 2018
0d05392
adjust badges
Roger-luo Aug 18, 2018
753de5d
fix windows CI
Roger-luo Aug 18, 2018
9a8a1dd
quickfix of QFT
GiggleLiu Aug 23, 2018
9e0dfef
new HHL
GiggleLiu Sep 29, 2018
38fab11
fix
GiggleLiu Sep 29, 2018
8d0fb2a
fix deps
GiggleLiu Sep 29, 2018
c548adb
fix example for v0.3 compacity
GiggleLiu Oct 4, 2018
736f9a7
fix differential
GiggleLiu Oct 8, 2018
d104cba
emergent bug gix
GiggleLiu Oct 8, 2018
0e0ea4e
update QCGAN, new QuGAN
GiggleLiu Oct 20, 2018
6c74bae
fix merge
GiggleLiu Oct 20, 2018
ed20cae
new hamiltonian solvers
GiggleLiu Oct 22, 2018
e6be71d
Phase estimation and HHL algorithm (#2)
GiggleLiu Oct 26, 2018
dfd5375
update README.md
GiggleLiu Oct 26, 2018
074ced9
Merge branch 'master' of github.com:QuantumBFS/QuAlgorithmZoo.jl
GiggleLiu Oct 26, 2018
7ccbdcf
new vqe and hadamard test
GiggleLiu Jan 6, 2019
5b35944
new QAOA example
GiggleLiu Jan 9, 2019
071b02a
fix Project.toml
Roger-luo Feb 8, 2019
9875280
Forward Euler implementation using HHL
dgan181 Mar 4, 2019
c605e3a
Merge branch 'master' of https://github.com/QuantumBFS/QuAlgorithmZoo…
dgan181 Mar 5, 2019
50ac94a
Added OrdinaryDiffEq to [extra] in project.toml
dgan181 Mar 5, 2019
1680b09
fix ci
Roger-luo Mar 5, 2019
d2d2cc5
update travis config to 1.0
Roger-luo Mar 5, 2019
6ff72ef
Merge pull request #3 from dgan181/HHL_linear_diff
Roger-luo Mar 5, 2019
b9ed54b
Added Higher-order linear multistep methods using HHL (#4)
dgan181 Mar 26, 2019
4bc18a6
For upgrade (#5)
GiggleLiu Apr 29, 2019
23dfbf2
add cache switch
GiggleLiu Apr 29, 2019
a61c222
Update Diff.jl (#6)
frankwswang Apr 30, 2019
3f676e5
update README
Roger-luo May 1, 2019
7a76d79
rm authors, add compat
Roger-luo May 1, 2019
18ff6fa
fix test
Roger-luo May 1, 2019
803f30f
fix test
Roger-luo May 1, 2019
3abf98e
upgrade (#8)
GiggleLiu May 30, 2019
cb1d5ab
update readme
GiggleLiu May 31, 2019
10433da
new shor
GiggleLiu Jun 19, 2019
7ffee33
Back propagation does not cache! (#10)
GiggleLiu Jun 24, 2019
af61ed7
update Shor algorithm (#9)
GiggleLiu Jun 24, 2019
5c497d5
Fix trait (#11)
GiggleLiu Sep 18, 2019
a237c95
new trace operator
GiggleLiu Oct 24, 2019
343fdcc
imag time qaoa and fix H2 training. (#13)
GiggleLiu Oct 28, 2019
0734554
new, port zygote
GiggleLiu Oct 28, 2019
07ff8be
switch to LBFGS
GiggleLiu Oct 28, 2019
8f1bcd4
new, port zygote (#14)
GiggleLiu Nov 13, 2019
2d43931
Merge branch 'master' of github.com:QuantumBFS/QuAlgorithmZoo.jl
GiggleLiu Nov 17, 2019
7d5c239
move QSVD to examples folder
GiggleLiu Nov 17, 2019
c8805e0
fix for Yao-0.6.0
GiggleLiu Dec 10, 2019
6e3b34d
rm unused codes
wangleiphy Dec 11, 2019
35c738a
Delete .travis.yml
GiggleLiu Dec 11, 2019
cffdaaa
Update README.md
GiggleLiu Dec 11, 2019
0fe873e
Update README.md
GiggleLiu Dec 11, 2019
24e24f8
Update README.md
GiggleLiu Dec 11, 2019
832affd
Delete appveyor.yml
GiggleLiu Dec 11, 2019
2ce1fd5
Delete .codecov.yml
GiggleLiu Dec 11, 2019
ef1b0f1
new gatelearning example
GiggleLiu Dec 18, 2019
ebcb99e
Merge branch 'master' of github.com:QuantumBFS/QuAlgorithmZoo.jl
GiggleLiu Dec 18, 2019
ac54061
new port quantum information
GiggleLiu Dec 23, 2019
06759a3
update project & README
Roger-luo Dec 23, 2019
068f8d6
add compat
Roger-luo Dec 23, 2019
88fcff4
Install TagBot as a GitHub Action (#15)
JuliaTagBot Feb 23, 2020
8fdef4c
update Zygote example
GiggleLiu May 28, 2020
f7cd7ef
Create VQE_H2_4bit.ipynb (#18)
EigenSolver May 31, 2020
9dfae0e
Update H2.jl (#19)
EigenSolver Jun 1, 2020
ee45962
Update maxcut_gw.jl (#20)
EigenSolver Jun 2, 2020
839ee0e
update project.toml
GiggleLiu Jun 19, 2020
dc394dd
Merge branch 'master' of github.com:QuantumBFS/QuAlgorithmZoo.jl
GiggleLiu Jun 19, 2020
7d97435
fix hhl
GiggleLiu Apr 6, 2021
20a0b59
Switch AD example to chainrules (#22)
GiggleLiu Aug 11, 2021
665225c
new chainrules patch
GiggleLiu Aug 13, 2021
156d8d4
merge
GiggleLiu Aug 13, 2021
e5d0004
fix issue Yao/#299
GiggleLiu Aug 14, 2021
b66cdf2
Add 'lib/QuAlgorithmZoo/' from commit 'e5d00043fbff5c4bd1207ac60af7ff…
Roger-luo Dec 8, 2021
9bc7dab
update license
Roger-luo Dec 8, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions lib/QuAlgorithmZoo/.github/workflows/TagBot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: TagBot
on:
schedule:
- cron: 0 * * * *
jobs:
TagBot:
runs-on: ubuntu-latest
steps:
- uses: JuliaRegistries/TagBot@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
18 changes: 18 additions & 0 deletions lib/QuAlgorithmZoo/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
*.jl.cov
*.jl.*.cov
*.jl.mem

build/
docs/build/
docs/site/
docs/src/tutorial/

*.ipynb_checkpoints
**/*.ipynb_checkpoints
**/**/*.ipynb_checkpoints

_*.dat
*.swp
__pycache__/

Manifest.toml
206 changes: 206 additions & 0 deletions lib/QuAlgorithmZoo/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
The QuAlgorithmZoo.jl package is licensed under the Apache License, Version 2.0:

> Copyright (c) 2018: QuantumBFS.
>
> Apache License
> Version 2.0, January 2004
> http://www.apache.org/licenses/
>
> TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
>
> 1. Definitions.
>
> "License" shall mean the terms and conditions for use, reproduction,
> and distribution as defined by Sections 1 through 9 of this document.
>
> "Licensor" shall mean the copyright owner or entity authorized by
> the copyright owner that is granting the License.
>
> "Legal Entity" shall mean the union of the acting entity and all
> other entities that control, are controlled by, or are under common
> control with that entity. For the purposes of this definition,
> "control" means (i) the power, direct or indirect, to cause the
> direction or management of such entity, whether by contract or
> otherwise, or (ii) ownership of fifty percent (50%) or more of the
> outstanding shares, or (iii) beneficial ownership of such entity.
>
> "You" (or "Your") shall mean an individual or Legal Entity
> exercising permissions granted by this License.
>
> "Source" form shall mean the preferred form for making modifications,
> including but not limited to software source code, documentation
> source, and configuration files.
>
> "Object" form shall mean any form resulting from mechanical
> transformation or translation of a Source form, including but
> not limited to compiled object code, generated documentation,
> and conversions to other media types.
>
> "Work" shall mean the work of authorship, whether in Source or
> Object form, made available under the License, as indicated by a
> copyright notice that is included in or attached to the work
> (an example is provided in the Appendix below).
>
> "Derivative Works" shall mean any work, whether in Source or Object
> form, that is based on (or derived from) the Work and for which the
> editorial revisions, annotations, elaborations, or other modifications
> represent, as a whole, an original work of authorship. For the purposes
> of this License, Derivative Works shall not include works that remain
> separable from, or merely link (or bind by name) to the interfaces of,
> the Work and Derivative Works thereof.
>
> "Contribution" shall mean any work of authorship, including
> the original version of the Work and any modifications or additions
> to that Work or Derivative Works thereof, that is intentionally
> submitted to Licensor for inclusion in the Work by the copyright owner
> or by an individual or Legal Entity authorized to submit on behalf of
> the copyright owner. For the purposes of this definition, "submitted"
> means any form of electronic, verbal, or written communication sent
> to the Licensor or its representatives, including but not limited to
> communication on electronic mailing lists, source code control systems,
> and issue tracking systems that are managed by, or on behalf of, the
> Licensor for the purpose of discussing and improving the Work, but
> excluding communication that is conspicuously marked or otherwise
> designated in writing by the copyright owner as "Not a Contribution."
>
> "Contributor" shall mean Licensor and any individual or Legal Entity
> on behalf of whom a Contribution has been received by Licensor and
> subsequently incorporated within the Work.
>
> 2. Grant of Copyright License. Subject to the terms and conditions of
> this License, each Contributor hereby grants to You a perpetual,
> worldwide, non-exclusive, no-charge, royalty-free, irrevocable
> copyright license to reproduce, prepare Derivative Works of,
> publicly display, publicly perform, sublicense, and distribute the
> Work and such Derivative Works in Source or Object form.
>
> 3. Grant of Patent License. Subject to the terms and conditions of
> this License, each Contributor hereby grants to You a perpetual,
> worldwide, non-exclusive, no-charge, royalty-free, irrevocable
> (except as stated in this section) patent license to make, have made,
> use, offer to sell, sell, import, and otherwise transfer the Work,
> where such license applies only to those patent claims licensable
> by such Contributor that are necessarily infringed by their
> Contribution(s) alone or by combination of their Contribution(s)
> with the Work to which such Contribution(s) was submitted. If You
> institute patent litigation against any entity (including a
> cross-claim or counterclaim in a lawsuit) alleging that the Work
> or a Contribution incorporated within the Work constitutes direct
> or contributory patent infringement, then any patent licenses
> granted to You under this License for that Work shall terminate
> as of the date such litigation is filed.
>
> 4. Redistribution. You may reproduce and distribute copies of the
> Work or Derivative Works thereof in any medium, with or without
> modifications, and in Source or Object form, provided that You
> meet the following conditions:
>
> (a) You must give any other recipients of the Work or
> Derivative Works a copy of this License; and
>
> (b) You must cause any modified files to carry prominent notices
> stating that You changed the files; and
>
> (c) You must retain, in the Source form of any Derivative Works
> that You distribute, all copyright, patent, trademark, and
> attribution notices from the Source form of the Work,
> excluding those notices that do not pertain to any part of
> the Derivative Works; and
>
> (d) If the Work includes a "NOTICE" text file as part of its
> distribution, then any Derivative Works that You distribute must
> include a readable copy of the attribution notices contained
> within such NOTICE file, excluding those notices that do not
> pertain to any part of the Derivative Works, in at least one
> of the following places: within a NOTICE text file distributed
> as part of the Derivative Works; within the Source form or
> documentation, if provided along with the Derivative Works; or,
> within a display generated by the Derivative Works, if and
> wherever such third-party notices normally appear. The contents
> of the NOTICE file are for informational purposes only and
> do not modify the License. You may add Your own attribution
> notices within Derivative Works that You distribute, alongside
> or as an addendum to the NOTICE text from the Work, provided
> that such additional attribution notices cannot be construed
> as modifying the License.
>
> You may add Your own copyright statement to Your modifications and
> may provide additional or different license terms and conditions
> for use, reproduction, or distribution of Your modifications, or
> for any such Derivative Works as a whole, provided Your use,
> reproduction, and distribution of the Work otherwise complies with
> the conditions stated in this License.
>
> 5. Submission of Contributions. Unless You explicitly state otherwise,
> any Contribution intentionally submitted for inclusion in the Work
> by You to the Licensor shall be under the terms and conditions of
> this License, without any additional terms or conditions.
> Notwithstanding the above, nothing herein shall supersede or modify
> the terms of any separate license agreement you may have executed
> with Licensor regarding such Contributions.
>
> 6. Trademarks. This License does not grant permission to use the trade
> names, trademarks, service marks, or product names of the Licensor,
> except as required for reasonable and customary use in describing the
> origin of the Work and reproducing the content of the NOTICE file.
>
> 7. Disclaimer of Warranty. Unless required by applicable law or
> agreed to in writing, Licensor provides the Work (and each
> Contributor provides its Contributions) on an "AS IS" BASIS,
> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied, including, without limitation, any warranties or conditions
> of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
> PARTICULAR PURPOSE. You are solely responsible for determining the
> appropriateness of using or redistributing the Work and assume any
> risks associated with Your exercise of permissions under this License.
>
> 8. Limitation of Liability. In no event and under no legal theory,
> whether in tort (including negligence), contract, or otherwise,
> unless required by applicable law (such as deliberate and grossly
> negligent acts) or agreed to in writing, shall any Contributor be
> liable to You for damages, including any direct, indirect, special,
> incidental, or consequential damages of any character arising as a
> result of this License or out of the use or inability to use the
> Work (including but not limited to damages for loss of goodwill,
> work stoppage, computer failure or malfunction, or any and all
> other commercial damages or losses), even if such Contributor
> has been advised of the possibility of such damages.
>
> 9. Accepting Warranty or Additional Liability. While redistributing
> the Work or Derivative Works thereof, You may choose to offer,
> and charge a fee for, acceptance of support, warranty, indemnity,
> or other liability obligations and/or rights consistent with this
> License. However, in accepting such obligations, You may act only
> on Your own behalf and on Your sole responsibility, not on behalf
> of any other Contributor, and only if You agree to indemnify,
> defend, and hold each Contributor harmless for any liability
> incurred by, or claims asserted against, such Contributor by reason
> of your accepting any such warranty or additional liability.
>
> END OF TERMS AND CONDITIONS
>
> APPENDIX: How to apply the Apache License to your work.
>
> To apply the Apache License to your work, attach the following
> boilerplate notice, with the fields enclosed by brackets "{}"
> replaced with your own identifying information. (Don't include
> the brackets!) The text should be enclosed in the appropriate
> comment syntax for the file format. We also recommend that a
> file or class name and description of purpose be included on the
> same "printed page" as the copyright notice for easier
> identification within third-party archives.
>
> Copyright [year] [fullname]
>
> Licensed under the Apache License, Version 2.0 (the "License");
> you may not use this file except in compliance with the License.
> You may obtain a copy of the License at
>
> http://www.apache.org/licenses/LICENSE-2.0
>
> Unless required by applicable law or agreed to in writing, software
> distributed under the License is distributed on an "AS IS" BASIS,
> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> See the License for the specific language governing permissions and
> limitations under the License.
>
26 changes: 26 additions & 0 deletions lib/QuAlgorithmZoo/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name = "QuAlgorithmZoo"
uuid = "65c24e16-9b0a-11e8-1353-efc5bc5f6586"
version = "0.1.0"

[deps]
BitBasis = "50ba71b6-fa0f-514d-ae9a-0916efc90dcf"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Yao = "5872b779-8223-5990-8dd0-5abbb0748c8c"
YaoArrayRegister = "e600142f-9330-5003-8abb-0ebd767abc51"
YaoBlocks = "418bc28f-b43b-5e0b-a6e7-61bbc1a2c1df"
YaoExtensions = "7a06699c-c960-11e9-3c98-9f78548b5f0f"

[compat]
BitBasis = "0.6, 0.7"
Yao = "0.6"
YaoArrayRegister = "0.6, 0.7"
YaoBlocks = "0.8, 0.9, 0.10, 0.11"
YaoExtensions = "0.2"
julia = "1"

[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Test"]
39 changes: 39 additions & 0 deletions lib/QuAlgorithmZoo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# QuAlgorithmZoo

A curated implementation of quantum algorithms with [Yao.jl](https://github.com/QuantumBFS/Yao.jl)

## Installation

QuAlgorithmZoo.jl is not registered, please use the following command:

```julia
pkg> dev https://github.com/QuantumBFS/QuAlgorithmZoo.jl.git
```

Then open directory `.julia/dev/QuAlgorithmZoo/examples` to find algorithms.

## Contents

- [QFT](https://github.com/QuantumBFS/YaoExtensions.jl)
- Phase Estimation
- Imaginary Time Evolution Quantum Eigensolver
- Variational Quantum Eigensolver
- Hadamard Test
- State Overlap Algorithms
- Quantum SVD

In examples folder, you will find

- HHL
- QAOA
- Quantum Circuit Born Machine
- QuGAN
- Shor
- Grover search

- [QuODE](https://github.com/QuantumBFS/QuDiffEq.jl)
- [TensorNetwork Inspired Circuits](https://github.com/GiggleLiu/QuantumPEPS.jl)

## License

QuAlgorithmZoo.jl is released under Apache License 2.0.
12 changes: 12 additions & 0 deletions lib/QuAlgorithmZoo/docs/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[deps]
BitBasis = "50ba71b6-fa0f-514d-ae9a-0916efc90dcf"
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341"
Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c"
KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77"
Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"
Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306"
Weave = "44d3d7a6-8a23-5bf8-98c5-b353f8df5ec9"
YaoArrayRegister = "e600142f-9330-5003-8abb-0ebd767abc51"
YaoBase = "a8f54c17-34bc-5a9d-b050-f522fe3f755f"
YaoBlocks = "418bc28f-b43b-5e0b-a6e7-61bbc1a2c1df"
7 changes: 7 additions & 0 deletions lib/QuAlgorithmZoo/docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# QuAlgorithmZoo Documentation

To build the documentation locally:

```julia
julia make.jl local
```
61 changes: 61 additions & 0 deletions lib/QuAlgorithmZoo/docs/make.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
using Pkg

pkg"""
add Documenter Literate Plots Yao
"""

using Documenter, Literate, QuAlgorithmZoo

const Examples = ["Grover", "VQE", "Shor"]

const PATH = (
tutorial = joinpath(@__DIR__, "src/tutorial"),
examples = joinpath(@__DIR__, "..", "examples")
)

function process_literate_scripts()
TUTORIALS = []
for token in Examples
file = "$token.jl"
filepath = joinpath(PATH.examples, token, file)
Literate.markdown(filepath, PATH.tutorial)

filename, _ = splitext(file)
mdfile = join([filename, ".md"])
# TODO: use PATH.tutorial rather then manual path
push!(TUTORIALS, relpath(joinpath("tutorial", mdfile)))
end
TUTORIALS
end

#-----------------------------------------------

function generate(islocal::Bool="local" in ARGS)
makedocs(
modules = [QuAlgorithmZoo],
clean = false,
format = :html,
sitename = "Quantum Algorithm Zoo",
linkcheck = !("skiplinks" in ARGS),
analytics = "UA-89508993-1",
pages = [
"Home" => "index.md",
"Algorithms" => process_literate_scripts(),
"Manual" => Any[
"man/zoo.md",
],
],
html_prettyurls = !islocal,
html_canonical = "https://quantumbfs.github.io/QuAlgorithmZoo.jl/latest/",
)

deploydocs(
repo = "github.com/QuantumBFS/QuAlgorithmZoo.jl.git",
target = "build",
julia = "1.0",
deps = nothing,
make = nothing,
)
end

generate(false)
Loading