QSVT Compatibility

QSVT can implement only polynomials that satisfy structural constraints. This page summarizes the compatibility checks used by qsvt-pennylane and explains how to read failures without overclaiming.

Core Conditions

A real polynomial intended for direct QSVT synthesis should satisfy:

  • finite coefficients: all coefficients are numerical and finite,

  • boundedness: |P(x)| <= 1 on the signal interval, usually [-1, 1],

  • definite parity: the polynomial is either even or odd,

  • backend synthesis support: the selected QSVT backend can synthesize the polynomial for the requested signal model.

Boundedness keeps the transformed block compatible with unitarity. Parity is a QSP/QSVT structural condition: even and odd polynomial sequences correspond to different phase-sequence forms and signal conventions.

Notation:

  • P(x) is the real scalar polynomial being checked.

  • x is the normalized signal variable, usually sampled on [-1, 1].

  • degree is the highest nonzero polynomial degree.

  • parity records whether P(-x) = P(x), P(-x) = -P(x), or neither.

  • max_abs_value is the sampled maximum of |P(x)| on the check interval.

Compatibility Reports

qsvt.compatibility.qsvt_compatibility_report samples the polynomial on the bounded domain, checks parity, and can optionally attempt PennyLane synthesis.

from qsvt.compatibility import qsvt_compatibility_report

report = qsvt_compatibility_report([0.0, 0.0, 1.0])

print(report["compatible"])
print(report["parity"])
print(report["reasons"])

Typical report fields include:

field

meaning

polynomial_degree

highest nonzero coefficient degree

parity

even, odd, or mixed

is_bounded

sampled boundedness result

max_abs_value

sampled maximum absolute value

attempted_pennylane_synthesis

whether backend synthesis was tried

pennylane_synthesis_succeeded

synthesis result when attempted

reasons

failure reasons such as mixed_parity or out_of_bounds

compatible

combined compatibility result

Common Failure Modes

Mixed Parity

1 + x is mixed parity. It may be useful as an ordinary polynomial, but it is not directly compatible with a single standard QSVT phase sequence.

qsvt_compatibility_report([1.0, 1.0], attempt_synthesis=False)

Expected reasons include mixed_parity, and for this particular example also out_of_bounds.

Out Of Bounds

2x has odd parity but exceeds the unit bound on [-1, 1]. It fails because a QSVT-transformed block must remain compatible with an embedding into a unitary.

qsvt_compatibility_report([0.0, 2.0], attempt_synthesis=False)

Expected reasons include out_of_bounds.

Bounded But Mixed

A polynomial such as 0.25 + 0.25x is bounded on [-1, 1], but mixed parity. This is a useful example because it separates boundedness from parity:

qsvt_compatibility_report([0.25, 0.25], attempt_synthesis=False)

Expected reasons include mixed_parity, while is_bounded remains true.

Backend Synthesis Failure

Some polynomials satisfy sampled boundedness and parity checks but still fail a specific backend synthesis path. In that case the polynomial may be mathematically admissible, while the current implementation path cannot produce or verify the corresponding QSVT operator.

Reports distinguish this with synthesis fields instead of treating all failures as mathematical failures.

QSVT-Style Versus Direct QSVT

Many notebooks use dense spectral polynomial transforms to study QSVT-style matrix functions. That is useful even when a polynomial is not directly synthesizable by the package’s QSVT wrapper.

Use precise language:

  • dense spectral polynomial workflow: applies P(A) classically for a finite matrix,

  • QSVT-style polynomial core: studies a bounded polynomial target relevant to a future QSVT algorithm,

  • direct QSVT verification: constructs or extracts a QSVT block and compares it against a reference,

  • end-to-end quantum algorithm: also supplies scalable block encoding, state preparation, readout, success-probability management, and hardware assumptions.

The repository’s truth contracts use this distinction throughout reports and benchmark outputs.

Where To Learn More