Package: pyLIQTR
pyLIQTRKevin Obenland, Justin Elenewski, Kaitlyn Morrell, Rylee Neumann, Arthur Kurlej, Robert Rood, John Blue, Joe Belarge & Parker KuklinskiDescriptionpyLIQTR(LIncoln LaboratoryQuantum algorithmTest andResearch), is a python library for building quantum circuits derived from quantum algorithms and generating Clifford+T resource estimates.This package is built extensively atopcirq& the recent release ofcirq-ft.pyLIQTR is primarily structured as:pyLIQTR.ProblemInstancesA set of code that provides an easy interface (throughpyLIQTR.ProblemInstances.getInstance) to generate Hamiltonians that capture various physical models of interest.pyLIQTR.BlockEncodingsA set of codes that provides an easy interface (throughpyLIQTR.BlockEncodings.getEncoding) to generate BlockEncodings that encode the action of a ProblemInstance through various different encodings.pyLIQTR.clamA set of code that provides various classical utilities supporting:Integration of classical ODE’s (following application problems)Conversion of spin / fermionic Hamiltonians to classical numericsSimulation of quantum dynamicsQuadratic / Integrable Hamiltonians (fast; polynomial scaling)General Hamiltonians (exponentially scaling)Source / Notebooks: This is scattered diffusely throughout the examples (Vlasov, Nonequilibrium, Heisenberg / Hubbard).pyLIQTR.qubitizationA set of code that provides ways of building QSP/QSVT circuits in the context of the pyLIQTR package.pyLIQTR.phase_factorsA set of code that calculates the angles required for a given QSP/QSVT sequencepyLIQTR.circuitsA set of pyLIQTR cirq circuits/gates used in our implementation of block encodings and algorithms.pyLIQTR.gate_decompA set of code that performs gate synthesis (converting rotations to Clifford+T gates) for a specified precision.pyLIQTR.pest_interfaceA pythonic interface to the PEST Julia package.pyLIQTR.utilsA set of various utility functions.pyLIQTR.utils.resource_analysis.estimate_resources(adds robust estimation in addition tocirq_ft.t_complexity) can be used to determine the Clifford+T cost of any circuit generated with pyLIQTRpyLIQTR.utils.circuit_decomposition.circuit_decompose_multi(adds robust decomposition in addition tocirq's decomposition functions) can be used to decompose circuits to 1+2QB gatesIn 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.FeaturesThe features of this package are described in detail inFEATURES.md. This includes not only descriptions, but also source files and example notebooks.Installation and Environment SetupIt 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.11.5"
  on Mac use:
  conda create -n <Environment Name> python'>=3.8,<=3.11.5'

  conda activate <Environment Name>Install the packagepip install .Or, as a developer (for all platforms and shells):pip install -e ."[dev]"Optional InstallsInstall MPSolve polynomial solver, which is used in the angle generation algorithm. Instructions for installation can be found here:https://numpi.dm.unipi.it/software/mpsolveIf 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 openfermion & pyscf.Openfermion is used for the implementation of Suzuki-Trotter and as the input to our implementation of GSE. This is required to use the GSE implementation.pyscf is used in conjunction with openfermion in order to generate new problem instances as input into our GSE implementation.Overview of Examples Included as Jupyter NotebooksNotebooks showcasing features are organized as follows in the /Examples directory.Algorithm_and_InfrastructureA 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.AngleGenerationContains three notebooks describing the reworked angle generation featuresApplicationInstancesContains four directories showing different types of physical models and how one may use the pyLIQTR package to generate circuits and provide resource estimates.PESTAn introduction to the generating electronic structure hamiltonians using the PEST package.CitationTo be populated once code is posted. Cannot create DOI on zenodo without link to repo.Should generally also include citations of cirq.DisclaimerDISTRIBUTION STATEMENT A. Approved for public release: distribution unlimited.© 2023 MASSACHUSETTS INSTITUTE OF TECHNOLOGYSubject to FAR 52.227-11 – Patent Rights – Ownership by the Contractor (May 2014)
SPDX-License-Identifier: BSD-2-ClauseThis 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