Educational utilities and examples for Quantum Singular Value Transformation (QSVT) using PennyLane.
Project description
Quantum Singular Value Transformation (QSVT)
Lightweight tools for experimenting with Quantum Singular Value Transformation (QSVT) and bounded polynomial transforms using PennyLane.
This repository combines:
- a notebook-first introduction to QSVT and QSP
- a reusable Python package for polynomial design, spectral transforms, and small PennyLane QSVT checks
- reproducible examples for scalar, matrix, PDE, and small physics workflows
The focus is spectral intuition: how bounded polynomials transform singular values or eigenvalues through block encodings.
Links
- PyPI: qsvt-pennylane
- Website: project documentation
- Usage guide: USAGE.md
- Theory notes: THEORY.md
- Results index: RESULTS.md
- API reference: docs/qsvt/api_reference.md
Installation
Install from PyPI:
pip install qsvt-pennylane
Install from source:
git clone https://github.com/SidRichardsQuantum/Quantum_Singular_Value_Transformation.git
cd Quantum_Singular_Value_Transformation
pip install -e .
Requirements:
- Python >= 3.10
- PennyLane >= 0.36
- NumPy >= 1.23
- Matplotlib >= 3.7
Quick Example
Apply a scalar polynomial transform:
from qsvt.qsvt import qsvt_scalar_output
result = qsvt_scalar_output(
x=0.5,
poly=[0, 0, 1], # x^2
encoding_wires=[0],
)
Design a bounded sign polynomial and keep the diagnostics:
from qsvt.workflow import design_workflow
result = design_workflow(
kind="sign",
gamma=0.25,
degree=13,
)
coeffs = result.coeffs
report = result.as_report()
Use the command line interface:
qsvt scalar --x 0.5 --poly "0,0,1"
qsvt design-workflow --kind sign --gamma 0.2 --degree 13
qsvt design-sweep --kind sign --degrees "5,9,13,17" --gamma 0.2 \
--no-synthesis --output sign-degree-sweep.json
See USAGE.md for full Python and CLI workflows.
Package Map
The public package lives under src/qsvt.
| module | purpose |
|---|---|
qsvt.polynomials |
Chebyshev utilities, parity checks, boundedness checks |
qsvt.approximation |
polynomial fitting and approximation error helpers |
qsvt.design |
task-oriented polynomial builders |
qsvt.algorithms |
end-to-end simulator-scale algorithm workflows |
qsvt.templates |
ready-made bounded polynomial families |
qsvt.workflow |
combined coefficient, diagnostic, and compatibility workflows |
qsvt.reports |
JSON-safe reports and plot helpers |
qsvt.matrices |
small Hermitian test matrices |
qsvt.spectral |
classical spectral matrix-function references |
qsvt.qsvt |
PennyLane QSVT wrappers and comparisons |
qsvt.hamiltonians, qsvt.pde, qsvt.rescaling |
reusable physics and PDE helpers |
qsvt.matrix_functions, qsvt.diagnostics |
matrix-function designs and validation metrics |
For detailed function-level documentation, use docs/qsvt/api_reference.md.
The package includes a py.typed marker so type checkers can consume the
inline type annotations shipped with the public modules.
Documentation
- USAGE.md: practical package and CLI workflows
- THEORY.md: QSVT, QSP, polynomial constraints, and spectral interpretation
- RESULTS.md: result-producing notebooks and reproducible artefact conventions
- docs/qsvt/tutorial_results.md: generated tutorial notebook outputs
- docs/qsvt/real_example_results.md: generated real-example notebook outputs
- docs/qsvt/design.md: polynomial design helpers
- docs/qsvt/algorithms.md: workflow-level algorithm notes, diagnostics, and limitations
- docs/qsvt/templates.md: template polynomial families
- docs/qsvt/physics.md: Hamiltonian, PDE, rescaling, and matrix-function workflows
- docs/qsvt/implementation.md: implementation conventions, report serialization, and API status
- docs/qsvt/notebooks.md: tutorial and real-example notebook index
Current release: 0.1.19
Notebooks
Tutorial notebooks live in notebooks/tutorials/ and introduce QSVT as
polynomial functional calculus, from scalar transforms through sign functions,
projectors, matrix functions, reusable design workflows, end-to-end algorithm
workflows, reproducible reports, and degree/error tradeoff studies.
Real physics examples live in notebooks/real_examples/ and cover Hamiltonian
simulation, ground-state filtering, quantum chemistry, Green's functions,
spectral density estimation, Gibbs states, PDE systems, transport physics,
spin-chain diagnostics, electronic occupations, photonic band gaps, graphene
density of states, topological band projectors, and tensor-network hybrid
filtering.
See docs/qsvt/notebooks.md for the full notebook map.
Scope
This project is intentionally educational, explicit, simulator-friendly, and polynomial-focused.
It does not aim to provide production-scale circuit optimization, resource estimation, fault-tolerant constructions, amplitude amplification, or state preparation methods. The emphasis is understanding how polynomial transforms act on spectra.
Support
If this repository is useful for research, learning, or experimentation, you can support continued development through GitHub Sponsors.
Author
Sid Richards
- GitHub: SidRichardsQuantum
- LinkedIn: Sid Richards
License
MIT License. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qsvt_pennylane-0.1.19.tar.gz.
File metadata
- Download URL: qsvt_pennylane-0.1.19.tar.gz
- Upload date:
- Size: 5.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c32d80edc24999e18c8a2e317408373de7d7146da9ca3fabc35d4f79db275163
|
|
| MD5 |
5dc7ee382cfbbdf14dd8b90949caec91
|
|
| BLAKE2b-256 |
bdd9b67c615728fbaf59db20833b13ed9bcc3bde874766a97a03a4dd996f6192
|
Provenance
The following attestation bundles were made for qsvt_pennylane-0.1.19.tar.gz:
Publisher:
publish.yml on SidRichardsQuantum/Quantum_Singular_Value_Transformation
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qsvt_pennylane-0.1.19.tar.gz -
Subject digest:
c32d80edc24999e18c8a2e317408373de7d7146da9ca3fabc35d4f79db275163 - Sigstore transparency entry: 1572369265
- Sigstore integration time:
-
Permalink:
SidRichardsQuantum/Quantum_Singular_Value_Transformation@17f818e423df75bb8ec362f5ba79892b36c1e525 -
Branch / Tag:
refs/tags/v0.1.19 - Owner: https://github.com/SidRichardsQuantum
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@17f818e423df75bb8ec362f5ba79892b36c1e525 -
Trigger Event:
push
-
Statement type:
File details
Details for the file qsvt_pennylane-0.1.19-py3-none-any.whl.
File metadata
- Download URL: qsvt_pennylane-0.1.19-py3-none-any.whl
- Upload date:
- Size: 56.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8ad87afea93e96ac3c07777793a7cf67ae377610070eea4dc1cd122ade995ed
|
|
| MD5 |
f0d2ce11f64faad0dd7364e1459ab84c
|
|
| BLAKE2b-256 |
1b9d9360351697de738de2aa06259893a4ae108e89eec67252d2ad4dece47f48
|
Provenance
The following attestation bundles were made for qsvt_pennylane-0.1.19-py3-none-any.whl:
Publisher:
publish.yml on SidRichardsQuantum/Quantum_Singular_Value_Transformation
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qsvt_pennylane-0.1.19-py3-none-any.whl -
Subject digest:
f8ad87afea93e96ac3c07777793a7cf67ae377610070eea4dc1cd122ade995ed - Sigstore transparency entry: 1572369278
- Sigstore integration time:
-
Permalink:
SidRichardsQuantum/Quantum_Singular_Value_Transformation@17f818e423df75bb8ec362f5ba79892b36c1e525 -
Branch / Tag:
refs/tags/v0.1.19 - Owner: https://github.com/SidRichardsQuantum
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@17f818e423df75bb8ec362f5ba79892b36c1e525 -
Trigger Event:
push
-
Statement type: