cvchannel.jl

A numerical library for evaluating the communication value of a quantum channel.

https://github.com/chitambarlab/cvchannel.jl

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

convex-optimization information-theory quantum-channel quantum-information
Last synced: 4 months ago · JSON representation ·

Repository

A numerical library for evaluating the communication value of a quantum channel.

Basic Info
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Topics
convex-optimization information-theory quantum-channel quantum-information
Created almost 5 years ago · Last pushed about 4 years ago
Metadata Files
Readme License Citation

README.md

CVChannel.jl

A numerics library for evaluating the communication value of a quantum channel.

LatestTest StatuscodecovDOI

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

  1. Install Julia: https://julialang.org/downloads/
  2. 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 DOI.

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

  1. Navigate to the ./notebook directory $ cd ./notebook
  2. 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

  1. Create the CVChannel.jl-notebook Conda environment with $ conda env create -f python_environment.yml.
  2. Activate the CVChannel.jl-notebook environment with $ conda activate CVChannel.jl-notebook.
  3. 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

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 Email 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.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 9.9%
Dependent packages count: 38.9%
Average: 41.6%
Forks count: 53.5%
Stargazers count: 64.2%
Last synced: 5 months ago