qLDPC library
Together with JPMorgan Chase, a group of Infleqtion researchers today announced the introduction of a new open-source research software library that will significantly speed up efforts to increase the efficiency of possible quantum applications. More information on the announcement will be covered at the Economist Commercialising Quantum conference, which will be held in London from May 13–14.
The qLDPC library is an open-source research software library developed by a team of researchers at Infleqtion, in collaboration with JPMorgan Chase. It is available on GitHub.
The primary motivation for this package was to provide tools for constructing and analyzing quantum low density parity check (qLDPC) codes. However, the tools within the library are also effective for more general error-correcting stabilizer and subsystem codes.
One of the most significant impacts of the techniques implemented in the qLDPC library is their ability to significantly reduce the number of physical qubits needed for quantum error correction. This library enables 10-100x reductions in hardware requirements for achieving fault-tolerant quantum computing. Historically, a single logical, error-corrected qubit may need 1,500 physical qubits to perform reliably. By contrast, this new library can potentially reduce that requirement to between 15 and 150 physical qubits per logical qubit, depending on the implementation. This step-change improvement addresses a key bottleneck in scaling quantum systems.
The tools within the qLDPC library are particularly suitable to Infleqtion’s neutral atom-based quantum computing hardware. This is because Infleqtion’s hardware allows for highly customizable qubit layouts, which facilitates the implementation of more efficient error-correcting codes supported by the library.
As an open-source library, qLDPC is intended to be a collaborative platform. It allows developers, researchers, and hardware partners to directly engage with the codebase, exploring new methods for improving error correction and optimizing quantum workloads across various platforms.
Notable features and components of the qLDPC library include:
- ClassicalCode: A class for representing classical linear error-correcting codes over finite fields, including various pre-defined families and communication with the GAP/GUAVA package for more codes.
- QuditCode: A class for constructing Galois-qudit codes (both stabilizer and subsystem codes). This includes methods like get_logical_ops (to construct a basis of nontrivial logical Pauli operators), concatenate (to concatenate codes in various ways), and get_distance (to compute the code distance).
- CSSCode: A subclass of QuditCode specifically for constructing quantum CSS codes from two compatible ClassicalCodes. It includes a method get_distance_bound to estimate an upper bound on code distance using methods from research papers.
Classes for special quantum code constructions and families:
- TBCode: two-block quantum codes.
- BBCode: bivariate bicycle codes, including methods to identify toric layouts (like a toric code with long-distance checks) and qubit layouts that minimize communication distance for neutral atoms. These constructions are referenced in several arXiv papers.
- HGPCode: hypergraph product codes.
- SHPCode: subsystem hypergraph product codes.
- SHYPSCode: subsystem hypergraph product codes simplex.
- LPCode: lifted product codes.
- QTCode: quantum Tanner codes.
- decoders.py: A module for error decoding using BP-OSD, BP-LSD, belief-field, minimum-weight perfect matching, and others.It also includes an interface for using custom decoders.
- abstract.py: A module for basic abstract algebra (groups, algebras, representations). It includes pre-defined groups (borrowed from SymPy) and communication with GAP and GroupNames.org.
- objects.py: A module for constructing helper objects instrumental for quantum code construction, such as Cayley complexes and chain complexes.
- qldpc.circuits.get_transversal_ops: A method for constructing all SWAP-transversal logical Clifford gates in one code block of a qubit code, though it notes this subroutine has exponential complexity and is practical mainly for small-to-moderate sized codes.
The package requires Python >= 3.10 and can be installed from PyPI or source. Depending on the operating system, additional installations like a C compiler for Windows or cvxpy for macOS might be needed.
While the project aspires to have comprehensive documentation, the current documentation is described as out of date. It is recommended to look at the source code, comments within it, the examples directory, and test files for guidance on using the library’s classes and methods.