cvchannel.jl
A numerical library for evaluating the communication value of a quantum channel.
Science Score: 38.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: arxiv.org, zenodo.org -
✓Committers with academic emails
1 of 4 committers (25.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (18.1%) to scientific vocabulary
Keywords
Repository
A numerical library for evaluating the communication value of a quantum channel.
Basic Info
- Host: GitHub
- Owner: ChitambarLab
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Homepage: https://chitambarlab.github.io/CVChannel.jl/dev/
- Size: 9.26 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
- Releases: 0
Topics
Metadata Files
README.md
CVChannel.jl
A numerics library for evaluating the communication value of a quantum channel.
The communication value (CV) quantifies the performance of single-copy classical communication.
Features:
- Convex optimization methods bounding the communication value of a quantum channel.
- Tools for certifying the non-multiplicativity of the communication value for quantum channels.
This Julia package and numerical analysis support the findings in The Communication Value of a Quantum Channel.
Quick Start
- Install Julia: https://julialang.org/downloads/
- Add the CVChannel.jl package from the Julia command prompt:
julia
julia> using Pkg; Pkg.add("CVChannel")
To import the CVChannel.jl, run using CVChannel in the desired Julia file or
workspace.
SDP Solvers
This project optimizes the communication value of quantum channels using semidefinite programming via Convex.jl.
SCS
By default, CVChannel.jl uses SCS to solve semidefinite programs. SCS is an open-source numerical solver easily accessible through Julia.
Mosek
If desired, MOSEK can be used instead.
However, a MOSEK license is required and can be downloaded at
https://www.mosek.com/products/academic-licenses/.
The license is free for personal and institutional academic use and once downloaded,
should be saved at $HOME/mosek/mosek.lic.
Citing
To cite this software please see CITATION.bib or .
Development
It is recommended that you use Revise.jl so that your saved changes are reflected in the working codebase used by Julia. Please refer to the Revise.jl documentation for more details.
To open the CVChannel.jl package for development,
* Enter package mode from the Julia REPL by entering ].
* Run (@vx.x) pkg> develop --local .
This tells Julia to run code from the local version of the CVChannel.jl module
rather than from the github repository.
Thus, using CVChannel will load the local version that you are modifying.
Scripts
To run a script:
* $ julia --proj=./script ./script/path/to/script.jl
Notebooks
Jupyter notebooks are found in the ./notebook directory and are written
either with Python or Julia.
If you are committing changes to a notebook, make sure you restart the kernel and
run all cells before committing.
To run or develop notebooks, perform the following steps:
Julia Notebooks
- Navigate to the
./notebookdirectory$ cd ./notebook - Run
$ julia --project=. -e "using IJulia; notebook(dir=pwd())"
At this point, the Jupyter Notebook interface will launch in your default web browser and you can then edit, create, or run the project notebooks.
Python Notebooks
- Create the
CVChannel.jl-notebookConda environment with$ conda env create -f python_environment.yml. - Activate the
CVChannel.jl-notebookenvironment with$ conda activate CVChannel.jl-notebook. - Launch the Jupyter notebook server with
$ jupyter-notebook.
At this point, the Jupyter Notebook interface will launch in your default web browser and you can then edit, create, or run the project notebooks.
Tests
All tests can be run in two ways:
* From the command prompt run $ julia --proj=./test --color=yes test/runtests.jl.
* From package mode run (@vx.x) pkg> test CVChannel.
To run a single test, you can either run the test from the command line like a script, or you can run it within your text editor.
Documentation
Please refer to the Documenter.jl documentation for details on how to write and build Julia documentation.
To verify that content renders properly, you'll need to build the documentation
locally by running the ./docs/make.jl script.
* $ julia --color=yes ./docs/make.jl
This will build the HTML for the docs webpage.
To view the webpage, spawn a local http server:
the constructed website in your browser by spawning a local http server.
1. Navigate to the ./docs/build/ directory.
2. Run $ python -m http.server --bind localhost
3. Then copy/paste the returned url into your web browser.
For this to work properly, the python command should run python version 3 or greater.
Dependencies
Project dependencies are listed in Project.toml. To load the project environment
in the julia> REPL type ] to enter Pkg mode. Then run
* pkg> activate .
Each directory ./docs, ./test, ./script, and ./notebook has its own
Project.toml which specifies the dependencies for the code in that directory
These dependencies are independent from the CVChannel dependencies specified
in ./Project.toml file in the root directory.
See Pkg.jl for details about how to add or update packages.
Owner
- Name: Chitambar Lab Group
- Login: ChitambarLab
- Kind: organization
- Location: United States of America
- Repositories: 7
- Profile: https://github.com/ChitambarLab
Citation (CITATION.bib)
@software{CVChannel2021,
author = {Brian Doolittle and
Ian George},
title = {CVChannel.jl},
month = sep,
year = 2021,
publisher = {Zenodo},
version = {v0.1},
doi = {10.5281/zenodo.5517863},
url = {https://github.com/ChitambarLab/CVChannel.jl}
}
GitHub Events
Total
Last Year
Committers
Last synced: almost 3 years ago
All Time
- Total Commits: 194
- Total Committers: 4
- Avg Commits per committer: 48.5
- Development Distribution Score (DDS): 0.474
Top Committers
| Name | Commits | |
|---|---|---|
| Brian Doolittle | b****e@g****m | 102 |
| igeorge3 | i****3@i****u | 87 |
| igeorge3 | 8****3@u****m | 3 |
| CompatHelper Julia | c****y@j****g | 2 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 1
- Total pull requests: 34
- Average time to close issues: less than a minute
- Average time to close pull requests: 5 days
- Total issue authors: 1
- Total pull request authors: 3
- Average comments per issue: 2.0
- Average comments per pull request: 0.85
- Merged pull requests: 33
- Bot issues: 0
- Bot pull requests: 3
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- JuliaTagBot (1)
Pull Request Authors
- igeorge3 (16)
- bdoolittle (15)
- github-actions[bot] (3)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 2
juliahub.com: CVChannel
A numerical library for evaluating the communication value of a quantum channel.
- Homepage: https://chitambarlab.github.io/CVChannel.jl/dev/
- Documentation: https://docs.juliahub.com/General/CVChannel/stable/
- License: MIT
-
Latest release: 0.1.1
published about 4 years ago