pyliqtr

Lincoln Laboratory Quantum Algorithm Test and Research

https://github.com/isi-usc-edu/pyliqtr

Science Score: 75.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
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
    Organization isi-usc-edu has institutional domain (www.isi.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.8%) to scientific vocabulary

Scientific Fields

Sociology Social Sciences - 87% confidence
Mathematics Computer Science - 84% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Lincoln Laboratory Quantum Algorithm Test and Research

Basic Info
Statistics
  • Stars: 34
  • Watchers: 9
  • Forks: 15
  • Open Issues: 14
  • Releases: 26
Created about 3 years ago · Last pushed 5 months ago
Metadata Files
Readme License Citation

README.md

pyLIQTR

Kevin Obenland, Justin Elenewski, Kaitlyn Morrell, Rylee Stuart Neumann, Arthur Kurlej, Robert Rood, John Blue, Joe Belarge, Benjamin Rempfer & Parker Kuklinski


Description

pyLIQTR (LIncoln Laboratory Quantum algorithm Test and Research), is a python library for building quantum circuits derived from quantum algorithms and generating Clifford+T resource estimates.

This package is built extensively atop cirq & the recent release of qualtran.

pyLIQTR is primarily structured as:

  • pyLIQTR.ProblemInstances
    • A set of code that provides an easy interface (through pyLIQTR.ProblemInstances.getInstance) to generate Hamiltonians that capture various physical models of interest.
  • pyLIQTR.BlockEncodings
    • A set of codes that provides an easy interface (through pyLIQTR.BlockEncodings.getEncoding) to generate BlockEncodings that encode the action of a ProblemInstance through various different encodings.
  • pyLIQTR.clam
    • A set of code that provides various classical utilities supporting:
    • Integration of classical ODE’s (following application problems)
    • Conversion of spin / fermionic Hamiltonians to classical numerics
    • Simulation of quantum dynamics
    • Quadratic / Integrable Hamiltonians (fast; polynomial scaling)
    • General Hamiltonians (exponentially scaling)
    • Source / Notebooks: This is scattered diffusely throughout the examples (Vlasov, Nonequilibrium, Heisenberg / Hubbard).
  • pyLIQTR.qubitization
    • A set of code that provides ways of building QSP/QSVT circuits in the context of the pyLIQTR package.
  • pyLIQTR.phase_factors
    • A set of code that calculates the angles required for a given QSP/QSVT sequence
  • pyLIQTR.circuits
    • A set of pyLIQTR cirq circuits/gates used in our implementation of block encodings and algorithms.
  • pyLIQTR.gate_decomp
    • A set of code that performs gate synthesis (converting rotations to Clifford+T gates) for a specified precision.
  • pyLIQTR.pest_interface
    • A pythonic interface to the PEST Julia package.
  • pyLIQTR.utils
    • A set of various utility functions.
    • pyLIQTR.utils.resource_analysis.estimate_resources (adds robust estimation in addition to qualtran.t_complexity) can be used to determine the Clifford+T cost of any circuit generated with pyLIQTR
    • pyLIQTR.utils.circuit_decomposition.circuit_decompose_multi (adds robust decomposition in addition to cirq's decomposition functions) can be used to decompose circuits to 1+2QB gates

In addition, a seperate Julia package for generating electronic structure hamiltonians (root/PEST) is included with pyLIQTR.

pyLIQTR is a work-in-progress, as time goes on, we hope to provide better and more extensive documentation and examples in addition to new features. Please reach out to us if anything is unclear, so we can prioritize the documentation of the aspects that are most frequently used or most unclear.


Features

The features of this package are described in detail in FEATURES.md. This includes not only descriptions, but also source files and example notebooks.


Installation and Environment Setup

  • You can install the latest public tagged release from PYPI using pip:

    pip install pyLIQTR
    
  • You can install the latest state of the main branch:

    pip install git+https://github.com/isi-usc-edu/pyLIQTR.git
    

If you are going to be activelty developing the pyLIQTR source code, it is recommended that conda be used to manage the environment. A setup.py file is included to facilitate this. Change directory to the location of setup.py, then perform the following commands.

  • Create and activate the environment:

    on Windows use:
    conda create -n <Environment Name> "python>=3.8,<=3.12.2"
    on Mac use:
    conda create -n <Environment Name> python'>=3.8,<=3.12.2'
    
    conda activate <Environment Name>
    
  • Install the package

    pip install .
    
  • If you are working as a developer (for all platforms and shells): on Windows use: pip install -e .[dev] on Mac use: pip install -e ."[dev]"

Optional Installs

  • Install openfermionpyscf, which is used for the DoubleFactorized block encoding. pip install openfermionpyscf
  • If not installed, then scipy will be used to calculate valid angles. Angle generation using scipy will generally take longer than angle generation using mpsolve. Effort is underway to deprecate the existing angle generation in favor of a more portable and efficient method.
  • Install pyscf.
    • pyscf is used in conjunction with openfermion in order to generate new problem instances as input into our GSE and Double Factorization implementation. pip install pyscf

Overview of Examples Included as Jupyter Notebooks

Notebooks showcasing features are organized as follows in the /Examples directory.

  • AlgorithmandInfrastructure
    • A set of notebooks that go over the ProblemInstance and BlockEncoding infrastructure, in addition to a QSVT/QSP overview. Note that these are still being drafted.
  • AngleGeneration
    • Contains three notebooks describing the reworked angle generation features
  • ApplicationInstances
    • Contains four directories showing different types of physical models and how one may use the pyLIQTR package to generate circuits and provide resource estimates.
  • PEST
    • An introduction to the generating electronic structure hamiltonians using the PEST package.

Citation

Please use this DOI number reference, published on Zenodo, when citing the software:

DOI


Disclaimer

DISTRIBUTION STATEMENT A. Approved for public release: distribution unlimited.

© 2024 MASSACHUSETTS INSTITUTE OF TECHNOLOGY

Subject to FAR 52.227-11 – Patent Rights – Ownership by the Contractor (May 2014)
SPDX-License-Identifier: BSD-2-Clause

This material is based upon work supported by the Under Secretary of Defense for Research and Engineering under Air Force Contract No. FA8702-15-D-0001. Any opinions, findings, conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the Under Secretary of Defense for Research and Engineering.

A portion of this research was sponsored by the United States Air Force Research Laboratory and the United States Air Force Artificial Intelligence Accelerator and was accomplished under Cooperative Agreement Number FA8750-19-2-1000. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the United States Air Force or the U.S. Government. The U.S. Government is authorized to reproduce and distribute reprints for Government purposes notwithstanding any copyright notation herein.

The software/firmware is provided to you on an As-Is basis

Owner

  • Name: USC Information Sciences Institute
  • Login: isi-usc-edu
  • Kind: organization
  • Location: Marina del Rey, CA

Citation (CITATION.cff)

cff-version: 1.2.0
message: "Citation

Please use this DOI number reference, published on https://zenodo.org. when citing the software: https://doi.org/10.5281/zenodo.7221272

DISTRIBUTION STATEMENT A. Approved for public release: distribution unlimited.

© 2024 MASSACHUSETTS INSTITUTE OF TECHNOLOGY

    Subject to FAR 52.227-11 – Patent Rights – Ownership by the Contractor (May 2014)
    SPDX-License-Identifier: BSD-2-Clause

This material is based upon work supported by the Under Secretary of Defense for Research and Engineering under Air Force Contract No. FA8702-15-D-0001. Any opinions, findings, conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the Under Secretary of Defense for Research and Engineering.

A portion of this research was sponsored by the United States Air Force Research Laboratory and the United States Air Force Artificial Intelligence Accelerator and was accomplished under Cooperative Agreement Number FA8750-19-2-1000. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the United States Air Force or the U.S. Government. The U.S. Government is authorized to reproduce and distribute reprints for Government purposes notwithstanding any copyright notation herein.

The software/firmware is provided to you on an As-Is basis"
authors:
  - given-names: "Kevin"
    family-names: "Obenland"
  - given-names: "Justin"
    family-names: "Elenewski"
  - given-names: "Kaitlyn"
    family-names: "Morrell"
  - given-names: "Benjamin"
    family-names: "Rempfer"
  - given-names: "Parker"
    family-names: "Kuklinski"
  - given-names: "Rylee Stuart"
    family-names: "Neumann"
  - given-names: "Arthur"
    family-names: "Kurlej"
  - given-names: "Robert"
    family-names: "Rood"
  - given-names: "John"
    family-names: "Blue"
  - given-names: "Joe"
    family-names: "Belarge"
    
title: "pyLIQTR"
abstract: "(LIncoln Laboratory Quantum algorithm Test and Research), is a python library for building quantum circuits derived from quantum algorithms and generating Clifford+T resource estimates."
license: MIT
doi: 10.5281/zenodo.7221272
repository-code: "https://github.com/isi-usc-edu/pyLIQTR"

GitHub Events

Total
  • Create event: 25
  • Release event: 15
  • Issues event: 28
  • Watch event: 7
  • Delete event: 15
  • Member event: 1
  • Issue comment event: 22
  • Push event: 33
  • Pull request review event: 7
  • Pull request review comment event: 1
  • Pull request event: 29
  • Fork event: 6
Last Year
  • Create event: 25
  • Release event: 15
  • Issues event: 28
  • Watch event: 7
  • Delete event: 15
  • Member event: 1
  • Issue comment event: 22
  • Push event: 33
  • Pull request review event: 7
  • Pull request review comment event: 1
  • Pull request event: 29
  • Fork event: 6

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 14
  • Total pull requests: 8
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 7 days
  • Total issue authors: 6
  • Total pull request authors: 6
  • Average comments per issue: 0.43
  • Average comments per pull request: 0.13
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 14
  • Pull requests: 8
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 7 days
  • Issue authors: 6
  • Pull request authors: 6
  • Average comments per issue: 0.43
  • Average comments per pull request: 0.13
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tyleratrigetti (8)
  • max-radin (8)
  • JonhasSC (4)
  • sammorley-short (3)
  • zain2864 (2)
  • BrendanKKrueger (2)
  • jsmarsha11 (1)
  • akataba (1)
  • gsgrattan (1)
  • zmorrell (1)
  • jkalloor3 (1)
  • jasonchadwick (1)
  • olgOk (1)
Pull Request Authors
  • rroodll (7)
  • akurlej (3)
  • kjm538 (2)
  • BrendanKKrueger (1)
  • zmorrell (1)
  • spakin (1)
  • tyleratrigetti (1)
  • mpharrigan (1)
Top Labels
Issue Labels
bug (7) high priority (1) duplicate (1) wontfix (1)
Pull Request Labels

Dependencies

setup.py pypi
  • cirq *
  • numpy *
.github/workflows/pypi_publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • pypa/gh-action-pypi-publish release/v1 composite
requirements-dev.txt pypi
  • Sphinx * development
  • black * development
  • ipykernel * development
  • ipython * development
  • jupyter * development
  • jupyterlab * development
  • mypy * development
  • nbsphinx * development
  • pylint * development
  • pypandoc * development
  • pytest * development
  • pytest-cov * development
  • pytest-pep8 * development
  • recommonmark * development
  • sphinx_rtd_theme * development
requirements.txt pypi
  • cirq-core ==1.3.0.dev20231102230836
  • cirq-ft ==1.3.0.dev20231102230836
  • cirq-google ==1.3.0.dev20231102230836
  • gmpy2 *
  • matplotlib *
  • networkx *
  • numpy *
  • openfermion *
  • pandas *
  • ply *
  • portalocker *
  • scipy *
  • tqdm *
SPDX.spdx swiftpm