Changelog¶
[0.2.2] – 6th June 2026¶
Added¶
added tutorial 19, a finite simulator-scale HHL linear-system solver notebook with exact and inexact phase-estimation sweeps, success probabilities, residual diagnostics, and comparison against the existing QSVT-style inverse workflow
committed the rendered tutorial 19 plot artefacts and refreshed the generated tutorial results ledger to include 19 tutorial notebooks
Fixed¶
updated circuit probability execution and resource-summary extraction to use
qml.set_shotsfor finite-shot PennyLane QNodes while constructing devices without deprecated shot arguments
Changed¶
refreshed benchmark timing artefacts and summary tables for the current release environment
updated README and results documentation release markers for
0.2.2
[0.2.1] – 6th June 2026¶
Fixed¶
made QSVT circuit resource-summary extraction compatible with PennyLane versions that return dict-like
qml.specsresults instead of attribute-only circuit specsnarrowed the QSVT circuit execution regression guard so it catches explicit QSVT/block-encoding matrix extraction without blocking PennyLane’s internal single-gate matrix use during angle synthesis
stripped trailing whitespace from generated notebook text-output tables so regenerated documentation passes
git diff --checkcommitted regenerated tutorial, real-example, and benchmark result pages, plot manifests, and missing notebook plot artefacts needed by the notebook extraction check
Changed¶
refreshed benchmark artefact version metadata and release markers for
0.2.1
[0.2.0] – 6th June 2026¶
Added¶
added
qsvt.executionwithexecute_qsvt_circuit, a PennyLane QNode execution path that prepares a logical state, queuesqml.qsvt, measures statevectors or finite-shot probabilities, and reports circuit resource metadata without callingqml.matrixinternallyadded
QSVTCircuitExecutionResultandqsvt_circuit_truth_contractso circuit execution reports distinguish finite QNode execution from dense references and from end-to-end quantum algorithm claimsadded
linear_system_comparison_workflow,LinearSystemComparisonResult, summary-table helpers, and CSV export for comparing dense solves, conjugate gradient, and QSVT-style polynomial inverse workflows on small positive-definite systemsadded a
qsvt linear-system-compareCLI command with JSON report output and optional compact comparison-row CSV outputadded committed linear-system comparison JSON and CSV artefacts under
results/algorithms/andresults/tables/added regression tests that guard the new circuit execution path against falling back to explicit QSVT matrix extraction
added tests for the linear-system comparison workflow, CLI command, CSV writer, top-level exports, and committed algorithm artefacts
Changed¶
documented the implementation layers as dense references, small PennyLane matrix verification, and QNode circuit execution
expanded linear-system workflow reports with scaled eigenvalue bounds, 2-norm condition numbers, gamma-condition proxies, implementation-kind metadata, and a QSVT-style resource proxy that names omitted quantum layers
added explicit
implementation_kindfields across high-level algorithm workflow reports to make report scope easier to inspect programmaticallyupdated README, usage, theory, API, algorithm, implementation, resource-model, block-encoding, compatibility, design, physics, notebook, and result documentation for the new execution and comparison surfaces
refreshed selected tutorial and real-example notebooks, generated result tables, and benchmark snapshots for the
0.2.0releaseupdated package metadata and release markers for
0.2.0
[0.1.27] – 2nd June 2026¶
Changed¶
made the local pre-commit formatting path compatible with running
black .,ruff check . --fix, andpytest -qbefore release commitsconfigured Black to skip notebooks and generated artefact directories so release formatting does not rewrite executed notebook outputs, generated documentation builds, distributions, or result snapshots
replaced a nested conditional expression in the linear-system workflow report path with explicit control flow so Black and Ruff agree on the formatted source
updated package metadata and release markers for
0.1.27
[0.1.26] – 2nd June 2026¶
Added¶
added
qsvt.block_encodingwith explicit finite dense block-encoding construction, top-left block extraction, reconstruction checks, unitarity verification, and JSON-style report helpersadded
block_encoded_qsvt_workflowfor verified finite block-encoded QSVT polynomial transforms on positive Hermitian signal operators, including dense spectral references and optional state-vector diagnosticsadded a block-encoded Laplacian smoothing real-example notebook using the new package workflow as a near-pure client
added tutorial notebooks for finite block-encoded QSVT workflows, sparse operator/oracle assumptions, and QSVT compatibility failure cases
added focused documentation pages for block encodings and QSVT compatibility, plus broader theory notes on normalization, Hermitian eigenvalue transforms, QSP phase synthesis, access models, success probability, and readout
Changed¶
improved benchmark notebooks with explicit scope/variable-definition blocks and clearer plots separating classical timings, validation quantities, and QSVT proxy metadata
improved selected real-example plots for Anderson localization, harmonic oscillator filtering, and Fermi-Dirac occupations with richer diagnostic panels
expanded documentation and notebook indices for the new block-encoding, sparse-assumption, compatibility, and real-example materials
updated package metadata and release markers for
0.1.26
[0.1.25] – 2nd June 2026¶
Added¶
added machine-readable
truth_contractmetadata to high-level algorithm, direct QSVT verification, resource proxy, and classical benchmark reports so serialized results carry their implementation scope and omitted quantum assumptionsadded benchmark environment metadata for classical timing snapshots, including Python, NumPy, platform, timer, and timing-stability context
documented the report truth contract across the README, usage guide, algorithm, implementation, resource-model, benchmark, and QSVT report pages
added a real-problem workflow example showing how to preserve numerical diagnostics and claim-boundary metadata in a saved report
Changed¶
refreshed benchmark, tutorial, and notebook result artefacts after the report schema updates and benchmark timing regeneration
tightened tests around report truth contracts, benchmark artefact schema, and QSVT verification report metadata
updated package metadata and release markers for
0.1.25
[0.1.24] – 26th May 2026¶
Added¶
added
scripts/update_notebook_results.shas the local pre-commit helper for executing notebooks, extracting embedded outputs, and regenerating committed notebook result pagesdocumented the committed notebook artefact workflow in the README and results ledger so GitHub Pages publishes committed outputs rather than executing notebooks during deployment
Changed¶
renamed the notebook CI workflow to
Notebook result checkand removed the scheduled notebook execution triggerchanged the GitHub Pages workflow to verify committed notebook result pages and plot manifests without re-executing notebooks before building docs
refreshed real-example result page and plot-manifest cell indices so the new committed-artifact verification gate is clean for the release
updated package metadata and release markers for
0.1.24
[0.1.23] – 21st May 2026¶
Added¶
added
qsvt examplesCLI discovery output for workflow families, benchmark commands, and compact copy-pasteable examplesadded
scripts/release_check.pyfor local release preflight validationadded mypy type-checking configuration, optional type dependencies, and CI type-check coverage for
src/qsvtadded focused regression coverage for spectral, matrix-construction, and approximation utility modules
Changed¶
enriched QSVT resource proxy reports with explicit proxy metadata, omitted costs, block-encoding/state-preparation flags, and non-fault-tolerant estimate markers
tightened NumPy and optional-value annotations across core modules so the package passes
mypy src/qsvtraised fast-suite coverage for core utility modules and the package overall
updated package metadata and release markers for
0.1.23
[0.1.22] – 20th May 2026¶
Added¶
added a spectral thresholding workflow for smooth interval-projector studies with exact hard-projector reference diagnostics
added
qsvt threshold-workflowCLI support with JSON/report output coverageadded classical baseline and QSVT resource-model documentation pages
added benchmark and tutorial notebooks covering baseline assumptions and block-encoding/resource-proxy limits
Changed¶
refreshed benchmark timing artefacts for the
0.1.22release snapshotimproved classical-baseline notebook outputs with readable tables and benchmark-plot styling consistent with the other benchmark notebooks
standardized notebook print and plot labels so normalized examples use conservative units such as model energy units, dimensionless values, states, probabilities, and operator-call counts instead of implying calibrated SI units
standardized random notebook examples on an explicit
SEED = 0convention and added a guard against inline notebook RNG seedsrefreshed saved outputs for all tutorial, real-example, and benchmark notebooks after the unit-label cleanup
expanded API documentation, notebook result pages, and release validation guardrails for the new workflow and artefacts
trimmed fast test-suite runtime by reusing lightweight report fixtures, avoiding repeated benchmark construction in formatting tests, and skipping unnecessary notebook JSON parsing during RNG guard checks
updated package metadata and release markers for
0.1.22
[0.1.21] – 20th May 2026¶
Added¶
added classical benchmark baselines for dense eigendecomposition, dense linear solves, conjugate gradient solves, polynomial matrix evaluation, and dense spectral matrix functions
added
qsvt benchmarkCLI subcommands for producing classical benchmark JSON reports from small matrix inputsadded public benchmark plotting helpers for classical timings and QSVT resource proxies, with compact stable legend labels
added benchmark notebooks under
notebooks/benchmarks/covering linear-system baselines, matrix-function baselines, and scaling sweepsadded committed benchmark JSON, CSV, plot, and plot-manifest artefacts under
results/benchmarks/,results/tables/, andresults/plots/benchmarks/added a generated benchmark notebook output page at
docs/qsvt/benchmark_results.mdadded benchmark artifact integrity tests and notebook execution coverage for benchmark notebooks
Changed¶
extended notebook result extraction and the GitHub Pages workflow preset so tutorial, real-example, and benchmark notebook outputs are refreshed together
improved benchmark notebook output readability with indented JSON summaries, clearer plots, stable abbreviations, and markdown notes explaining when QSVT could offer quantum-advantage-relevant scaling
updated benchmark, notebook, result, API, README, and usage documentation for the new classical benchmarking workflow
updated package metadata and release markers for
0.1.21
[0.1.20] – 19th May 2026¶
Added¶
added reproducible Matplotlib setup schematics to real-example notebooks, including spin chains, tight-binding chains, PDE domains, transport devices, molecular H2, SSH, bound-state wells, photonic crystals, graphene ribbons, and Chern-insulator lattices
added richer real-example plot manifests with notebook titles, plot indices, source cell indices, and PNG dimensions
added near-top orientation blocks to every real-example notebook covering the system/problem, QSVT implementation strategy, and quantum relevance
added regression coverage for notebook plot-manifest metadata and adaptive result-page image sizing
Changed¶
refreshed real-example notebook outputs and committed PNG artefacts so the rendered result pages now show 53 real-example plots, including setup schematics and quantitative diagnostics
improved generated notebook result pages by widening multi-panel figures and cleaning noisy NumPy scalar/array representations in text outputs
improved diagnostics report plots with clearer line styling, gridlines, degree metadata, and symmetric residual scaling
updated package metadata and release markers for
0.1.20
[0.1.19] – 19th May 2026¶
Added¶
added generated notebook result pages that display embedded plots and plain-text outputs from every tutorial and real-example notebook
added CI checks that verify generated notebook result pages and manifests stay reproducible from committed notebook outputs
added GitHub Pages generation that executes notebooks, refreshes notebook result artefacts, and builds docs from the refreshed outputs
Changed¶
renamed the tutorial output page from
docs/qsvt/result_gallery.mdtodocs/qsvt/tutorial_results.mdto reflect that it now contains generated notebook outputs rather than a hand-curated galleryimproved documentation navigation with a cleaner sidebar grouping, right-hand page tables of contents, result navigation tables, and cross-links between notebook, report, and result pages
replaced the docs usage-guide include with a docs-native page so internal links resolve correctly in rendered documentation
forced notebook execution through the active
python3kernel during result extraction so CI does not depend on notebook-local kernelspec namesupdated GitHub Actions workflow dependencies to Node 24-compatible action versions
updated package metadata and release markers for
0.1.19
[0.1.18] – 19th May 2026¶
Added¶
added
qsvt design-sweepfor compact degree/error/boundedness manifests across polynomial design degreesadded committed sign and filter degree-sweep report artefacts plus a machine-readable sweep summary table
added deterministic algorithm-workflow regression tests for linear systems, ground-state filtering, Hamiltonian simulation, resolvents, spectral density, and thermal Gibbs workflows
added top-level public API status and policy metadata
Changed¶
redesigned rendered results pages around portfolio-style summaries, representative figures, benchmark tables, artefact ledgers, and regeneration commands
added rendered algorithm and implementation notes covering workflow targets, diagnostics, rescaling conventions, report serialization, and API scope
documented
design-sweepin README, usage, diagnostics report, and results documentationupdated package metadata and release markers for
0.1.18
[0.1.17] – 19th May 2026¶
Added¶
added three tutorial notebooks covering end-to-end algorithm workflows, reproducible report/CLI artifacts, and degree/error/boundedness tradeoffs
added a topological band-projector real-example notebook using a small Qi-Wu-Zhang lattice model and local Chern-marker diagnostics
Changed¶
updated notebook indexes and README notebook coverage for the expanded tutorial and real-example catalog
[0.1.16] – 19th May 2026¶
Added¶
added
ground_state_filtering_workflowfor Gaussian low-energy filtering, filtered-state diagnostics, ground-state overlap, and exact spectral reference comparisonsadded
hamiltonian_simulation_workflowfor real-time polynomial evolution with exact unitary/state references and norm-drift diagnosticsadded
resolvent_workflowfor Green’s-function / resolvent approximations, optional source-vector responses, and reference error metricsadded
spectral_density_workflowfor Gaussian-window trace density and optional state-resolved spectral weightsadded
thermal_gibbs_workflowfor imaginary-time / Boltzmann weighting, normalized Gibbs density matrices, partition functions, and optional weighted-state comparisons
Changed¶
updated package metadata and README release marker for
0.1.16
[0.1.15] – 19th May 2026¶
Added¶
added
qsvt.algorithms.linear_system_workflow, an end-to-end positive-definite linear-system workflow with inverse-polynomial design, spectral rescaling, classical/QSVT solution estimates, residual diagnostics, and compatibility metadataadded
design_interval_projector_polynomialanddesign_interval_projector_diagnosticsfor band-pass spectral filtering and smooth interval projectors on[-1, 1]exposed interval-projector design through
design_workflowand the CLI design commands
Changed¶
updated package metadata and README release marker for
0.1.15
[0.1.14] – 19th May 2026¶
Added¶
added committed real-example plot artefacts under
results/plots/real_examples/, with a machine-readable manifest atresults/tables/real_examples_plot_manifest.csvadded a dedicated notebook execution workflow,
.github/workflows/notebooks.yml, for scheduled/manual notebook validation and notebook-sensitive pull requestsadded
.github/workflows/release-check.ymlto build documentation with warnings as errors, build distributions, and runtwine checkbefore releaseadded the
qsvtpackagepy.typedmarker and package-data configuration so type checkers can consume the inline annotations
Changed¶
refreshed tutorial notebook plot artefacts using current notebook filenames and updated the rendered tutorial result gallery accordingly
split regular CI test execution from notebook execution by marking notebook tests with
pytest.mark.notebookrefreshed the committed release summary table and documented that the artefacts were refreshed for package version
0.1.14included committed
results/artefacts in source distributions so docs links resolve from packaged archives
Documentation¶
updated
RESULTS.mdanddocs/qsvt/real_example_results.mdwith the real-example plot ledger, representative gallery, and regeneration commandsdocumented the
py.typedmarker in the README package map
[0.1.13] – 16th May 2026¶
Added¶
added five real-world physics example notebooks under
notebooks/real_examples/:24_ising_phase_transition_filtering.ipynb25_diffusion_heat_treatment_slab.ipynb26_graphene_nanoribbon_density_of_states.ipynb27_fermi_dirac_electronic_occupations.ipynb28_photonic_crystal_band_gap_filtering.ipynb
added executable validation cells for the new notebooks covering spin-chain phase diagnostics, thermal diffusion, graphene nanoribbon density of states, Fermi-Dirac occupations, and photonic band-gap filtering
Documentation¶
updated the README, physics workflow guide, notebook index, real-example notebook index, and results index to include the expanded physics examples
updated the documented current release to
0.1.13
[0.1.12] – 15th May 2026¶
Added¶
added committed CLI-generated release artefacts under
results/, including design, diagonal QSVT, and Hermitian matrix transform reportsadded an extracted introductory notebook plot gallery to
RESULTS.mdadded
scripts/extract_notebook_plots.pyto regenerate notebook plot artefacts from embedded notebook PNG outputs
Changed¶
configured pytest with
pythonpath = ["src"]so fresh checkouts can run tests without requiring an editable install firstexpanded notebook execution coverage to include both introductory notebooks and real physics example notebooks
updated the 2x2 linear-solver notebook plot to use real-valued amplitudes explicitly, removing complex-value matplotlib warnings from the test suite
[0.1.11] – 15th May 2026¶
Documentation¶
refreshed the GitHub Pages landing page and Sphinx/Furo styling to better match the main Sid Richards portfolio site
reorganised the documentation sidebar into Start Here, Guides, and Reference sections
added first-class Sphinx pages for theory, usage, notebooks, results, and the changelog
added
RESULTS.mdas a notebook result index and convention for future reports, plots, and tablesreplaced fragile author links in rendered documentation with the main portfolio link
Changed¶
normalised real physics example notebooks with explicit cell IDs for future
nbformatcompatibilityverified all introductory and real physics notebooks execute with
nbconvert
[0.1.10] – 15th May 2026¶
Added¶
added real physics example notebooks under
notebooks/real_examples/covering Hamiltonian simulation, ground-state filtering, quantum chemistry, Green’s functions, spectral density estimation, Gibbs states, PDE linear systems, transport physics, and tensor-network hybrid filteringadded
qsvt.hamiltonianswith reusable small Hamiltonian constructors for tight-binding chains, transverse-field Ising models, Heisenberg chains, and Pauli stringsadded
qsvt.pdewith finite-difference Laplacian builders for 1D and 2D PDE examplesadded
qsvt.rescalingfor Hermitian spectral normalization and cutoff-based rescaling workflowsadded
qsvt.matrix_functionswith polynomial builders for real-time evolution, imaginary-time evolution, resolvents, Gaussian spectral windows, low-energy projectors, and positive inverse workflowsadded
qsvt.diagnosticswith reusable state, operator, density-matrix, expectation-value, ground-state-overlap, and spectral-weight metricsadded public Chebyshev/monomial basis conversion helpers in
qsvt.polynomialsadded
design_positive_inverse_polynomialanddesign_positive_inverse_diagnosticsfor positive definite inverse-style workflowsadded notebook smoke-test coverage for all real physics example notebooks
Changed¶
updated real physics notebooks to use general package APIs instead of local copies of reusable constructors and polynomial builders
improved positive inverse design with
extension="auto", which compares bounded full-interval extensions and selects the lower sampled error on the positive design intervalupdated the README, usage guide, API reference, package overview, and docs landing page to document the new physics workflow surface area
Documentation¶
added a dedicated physics workflow guide at
docs/qsvt/physics.mdadded a
notebooks/real_examples/README.mdmapping major physics areas to executable notebooks
[0.1.9] – 14th May 2026¶
Changed¶
split the QSVT implementation into focused operator, diagonal, matrix, and compatibility modules while keeping
qsvt.qsvtas a compatibility re-exportmoved CLI command implementation into
qsvt.cli, leavingqsvt.__main__as a small entry pointextracted shared Chebyshev fitting, parity projection, and boundedness utilities for design and template builders
expanded Ruff checks to include import sorting and bug-prone rule families
Added¶
added
qsvt.workflow.design_workflowfor returning coefficients, diagnostics, and compatibility metadata from one structured APIadded a
design-workflowCLI command for writing complete design workflow reports from the command lineadded regression tests for split-module imports, non-power-of-two matrix defaults, complex report serialization, non-finite compatibility inputs, and design workflow results
Documentation¶
documented the new workflow API and split implementation modules in the README and API reference
[0.1.8] – 6th May 2026¶
Changed¶
fixed Hermitian matrix handling across
qsvt.spectral,qsvt.matrices, andqsvt.qsvtso complex Hermitian inputs are preserved instead of being silently cast to real arraysupdated non-diagonal QSVT matrix comparison reports to distinguish between real-symmetric comparisons (
comparison_basis = "real_part") and full complex Hermitian comparisons (comparison_basis = "full_complex")extended report serialization so complex scalars and arrays are written as JSON-safe
{real, imag}payloadsupdated report-oriented CLI commands so
--outputand--plotwrite compact stdout summaries by default, with--print-reportavailable to force full JSON outputfixed the package metadata
DocumentationURL to point at the live GitHub Pages sitepruned
docs/_buildfrom source distributions and repository export archives for cleaner release artefacts
Documentation¶
updated the README, usage guide, API reference, and report guides to reflect the new CLI output behaviour and complex Hermitian matrix support
refreshed the docs landing page styling so the generated site matches the linked portfolio site more closely
[0.1.7] – 23rd April 2026¶
Changed¶
added non-diagonal Hermitian QSVT matrix transform helpers and reports
added a
matrix-reportCLI command for comparing extracted QSVT blocks with classical spectral polynomial referencesfixed default matrix QSVT wire selection for embedding block encodings
[0.1.6] – 23rd April 2026¶
Changed¶
added
qsvt.reportshelpers for JSON-safe diagnostics payloads, report save/load, and target-vs-polynomial plottingadded
--outputand--plotoptions todesign-reportandtemplate-reportadded
qsvt_transform_reportfor comparing QSVT diagonal transforms with direct classical polynomial evaluationadded
qsvt_compatibility_reportfor parity, boundedness, coefficient finiteness, and PennyLane synthesis checksadded
compare-reportandapply-designCLI commands for QSVT transform reportsadded
compatibility-reportanddesign-compatibilityCLI commandsdocumented diagnostics report workflows in the README, API reference, and dedicated reports guide
cleaned generated local build, test, and lint artifacts after the
v0.1.5releaseadded repository archive attributes for consistent line endings and cleaner generated source archives
added source-distribution manifest rules so docs, notebooks, tests, and release notes are included predictably
added a package-build CI workflow that runs
python -m buildandtwine checkon pushes and pull requests
[0.1.5] – 23rd April 2026¶
Changed¶
added diagnostics helpers for
qsvt.designandqsvt.templatesadded
design-reportandtemplate-reportCLI commands for JSON approximation-quality reportsexpanded the markdown docs to cover the new diagnostics surface area
Documentation¶
updated the README to show the report commands and current release
documented the report field structure in the API reference
added short diagnostics examples to the design and template guides
[0.1.4] – 23rd April 2026¶
Changed¶
refreshed the release metadata and rebuilt the package for
v0.1.4published the
0.1.4release to PyPIupdated the documentation set to cover the newer
qsvt.designandqsvt.templatesmodules more clearly
Documentation¶
expanded the package index to include the full module set
cleaned up the API reference module overview and cross-links
removed stale citation placeholders from the templates docs
[0.1.3] – 23rd April 2026¶
Changed¶
intermediate release tag used to validate the automated build and publishing workflow
[0.1.2] – 10th April 2026¶
Added¶
New module: qsvt.design
Provides higher-level bounded polynomial construction helpers for common QSVT/QSP design tasks, with outputs returned in standard ascending-degree monomial coefficient form.
Included design helpers:
design_inverse_polynomial(gamma, degree)bounded odd inverse-like polynomial
approximates the normalized inverse profile
gamma / xaway from zerointended for linear-solver-style or regularized inverse experiments
design_sign_polynomial(gamma, degree)bounded odd sign surrogate
useful for spectral sign and threshold-style workflows
design_projector_polynomial(gamma, degree)bounded projector-style polynomial based on
(1 + sign(x)) / 2useful for positive/negative spectral subspace experiments
design_sqrt_polynomial(a, degree)bounded square-root surrogate on a positive interval
useful for matrix-function and amplitude-scaling experiments
design_power_polynomial(alpha, degree, a=0.0)bounded positive-power surrogate on a positive interval
useful for simple spectral shaping workflows
design_filter_polynomial(cutoff, degree)bounded even soft-threshold filter
useful for singular-value filtering and smooth pass/reject experiments
Implementation notes¶
reuses the existing lightweight Chebyshev fitting helper in
qsvt.approximationconverts fitted Chebyshev polynomials back to ascending monomial coefficients
numerically enforces boundedness on
[-1, 1]by rescaling when necessaryenforces odd/even parity where structurally appropriate
keeps implementations NumPy-only and notebook-friendly
Tests¶
Added minimal smoke tests covering:
construction of all design helpers
boundedness on
[-1, 1]expected parity for inverse/sign/filter builders
basic qualitative behaviour checks for inverse/sign/projector/sqrt/power
Public API¶
Updated qsvt.__init__ to export the new design helpers.
[0.1.1] – 10th April 2026¶
Added¶
New module: qsvt.templates
Provides ready-to-use bounded polynomial templates for QSVT/QSP-style experiments, returned in standard ascending-degree coefficient form.
Included template families:
inverse_like_polynomialsmooth bounded odd inverse-like surrogate on
[-1, 1]useful for regularised small-scale linear-solver style experiments
sign_approximation_polynomialsmooth odd sign surrogate based on a steep bounded transition
useful for spectral sign and projector-style workflows
soft_threshold_filter_polynomialeven soft pass/reject filter based on
|x|useful for singular-value filtering intuition and threshold experiments
sqrt_approximation_polynomialbounded square-root-like template on the canonical interval
useful for matrix-function and amplitude-scaling experiments
exponential_approximation_polynomialbounded exponential-like weighting polynomial
useful for smooth spectral damping and low-degree filter examples
Implementation notes¶
templates are constructed via lightweight Chebyshev fitting on
[-1, 1]outputs are converted back to standard monomial coefficients
boundedness on
[-1, 1]is enforced numerically by rescaling if neededodd/even parity is enforced where appropriate for sign/inverse/filter families
Tests¶
Added minimal smoke tests covering:
template construction
boundedness on
[-1, 1]expected parity for odd/even templates
basic qualitative behaviour checks
Public API¶
Updated qsvt.__init__ to export the new template builders and bumped the
package version to 0.1.1.
[0.1.0] – 10th April 2026¶
Added¶
Core package structure under src/qsvt/:
polynomials.pyChebyshev polynomial utilities
polynomial evaluation helpers
parity detection and coefficient utilities
approximation.pyChebyshev-based bounded polynomial approximation
domain scaling helpers for mapping intervals to [-1,1]
approximation error utilities (max error, RMS error)
callable approximant construction
matrices.pysmall Hermitian matrix constructors
rotation matrices and rotated diagonal matrices
involutory diagonal matrices (±1 spectra)
helper utilities for vector normalisation and embedding
spectral.pyclassical spectral matrix-function utilities
eigendecomposition helpers
matrix powers and fractional powers
matrix sign function
spectral projectors onto positive/negative eigenspaces
polynomial transforms applied via eigenspectrum
qsvt.pythin PennyLane QSVT wrapper layer
scalar QSVT helpers (QSP-equivalent behaviour)
explicit unitary extraction via
qml.matrixlogical top-left block extraction utilities
diagonal singular value transform helpers
classical vs QSVT comparison utilities
embedded-vector QSVT workflows
__init__.pycurated public API surface
version exposure via
__version__
__main__.pylightweight CLI entry point
scalar QSVT evaluation
diagonal singular-value transformation
Chebyshev polynomial evaluation
JSON-formatted output
numpy-safe serialization
CLI¶
Added console script:
qsvt
Example usage:
qsvt scalar --x 0.5 --poly "0,0,1"
qsvt diag
--values "1.0,0.7,0.3,0.1"
--poly "0,0,1"
--wires 3
qsvt cheb --degree 3 --x 0.5
Packaging¶
Added
pyproject.tomlconfigured setuptools backend
package layout uses
src/structureeditable installs supported (
pip install -e .)console script entry point configured
Python ≥3.10 supported
Tests¶
added smoke tests for core functionality:
Chebyshev polynomial evaluation
polynomial parity detection
scalar QSVT correctness
diagonal QSVT correctness
Documentation¶
updated README.md to include:
PyPI installation instructions
CLI usage examples
package module overview
relationship between notebooks and reusable code
Scope¶
Initial release focuses on:
educational clarity
explicit small-scale QSVT demonstrations
classical reference implementations
minimal abstraction over PennyLane primitives
No circuit optimisation, amplitude amplification, or hardware resource estimation included.