CostAnalysis Module
Unified cost metrics for encoded Hamiltonians, including qubitization resource estimation.
Provides cost functions that characterise a Hamiltonian in the Pauli basis independently of any particular simulation strategy. Metrics include the LCU 1-norm (λ), Pauli weight statistics, and term counts — all of which feed into resource estimates for Trotterization, qubitization, and measurement programs.
The qubitization resource estimate follows Low & Chuang (2019): the query complexity of quantum signal processing scales as O(λ / ε), where λ = Σ|cₖ| is the LCU 1-norm and ε is the target precision.
Types
| Type | Description |
|
Comprehensive cost metrics for a Hamiltonian in Pauli basis. |
|
|
Qubitization resource estimate for a Hamiltonian expressed as an LCU. |
|
|
Simulation cost comparison at a given precision target. |
Functions and values
| Function or value |
Description
|
Full Usage:
compareCosts encodings
Parameters:
(string * PauliRegisterSequence)[]
-
Array of (name, Hamiltonian) pairs.
Returns: (string * HamiltonianCosts)[]
Array of (name, costs) pairs sorted by λ-norm ascending.
|
Compare cost metrics across multiple encoded Hamiltonians.
|
Full Usage:
compareQubitizationCosts encodings
Parameters:
(string * PauliRegisterSequence)[]
-
Array of (name, Hamiltonian) pairs.
Returns: (string * QubitizationCosts)[]
Array of (name, costs) pairs sorted by λ ascending.
|
Compare qubitization costs across multiple encoded Hamiltonians.
|
Full Usage:
hamiltonianCosts hamiltonian
Parameters:
PauliRegisterSequence
-
The Hamiltonian as a sum of Pauli strings.
Returns: HamiltonianCosts
A HamiltonianCosts record with all metrics.
|
Compute comprehensive cost metrics for a Hamiltonian.
|
|
Compute the Pauli weight (number of non-identity positions) of a register.
|
Full Usage:
qubitizationCosts hamiltonian
Parameters:
PauliRegisterSequence
-
The Hamiltonian as a sum of Pauli strings.
Returns: QubitizationCosts
A QubitizationCosts record.
|
Compute qubitization resource estimates for a Hamiltonian.
|
Full Usage:
qubitizationQueries costs time epsilon
Parameters:
QubitizationCosts
-
Pre-computed qubitization costs.
time : float
-
Evolution time t.
epsilon : float
-
Target precision ε.
Returns: int
Estimated query count (rounded up).
|
Estimate the number of queries to the block-encoding oracle needed for time evolution exp(−iHt) to precision ε. Based on the quantum signal processing bound: the number of queries scales as O(λt/ε + log(1/ε)), where λ is the LCU 1-norm. The leading term dominates for chemically relevant precisions.
|
Full Usage:
simulationCosts hamiltonian time epsilons
Parameters:
PauliRegisterSequence
-
The encoded Hamiltonian.
time : float
-
Evolution time t (default 1.0).
epsilons : float[]
-
Array of precision targets to evaluate.
Returns: SimulationCostComparison[]
Array of cost comparisons, one per epsilon.
|
Compare Trotter and qubitization costs for a given Hamiltonian at multiple precision targets.
Trotter step count uses the standard first-order bound: r ≥ ⌈λ²t²/(2ε)⌉, where λ = Σ|cₖ| and ε is the target precision. Each step contributes the CNOT count from the CNOT staircase decomposition. Qubitization query count follows the QSP bound: ⌈λt/ε⌉. The crossover precision ε* is the point where Trotter total CNOTs equals qubitization queries — below ε*, qubitization dominates. Since Trotter CNOTs per step are encoding-dependent but λ is encoding-independent, the crossover point shifts with encoding choice.
|
Full Usage:
trotterQubitizationRatio hamiltonian time
Parameters:
PauliRegisterSequence
-
The encoded Hamiltonian.
time : float
-
Evolution time t.
Returns: float
The cost ratio (Trotter CNOTs / qubitization queries).
Values >1 mean qubitization is more efficient.
|
Estimate the crossover precision ε* where Trotter total CNOTs equals qubitization queries.
From the cost models: Trotter CNOTs = ⌈λ²t²/(2ε)⌉ × C (C = CNOTs per step) Qubitization = ⌈λt/ε⌉ Setting equal: λ²t²C/(2ε) = λt/ε → ε* = λtC/2. Wait — that doesn't depend on ε! The ratio is: Trotter/Qubitization = λtC/2. This means for first-order Trotter, the ratio is ε-independent: qubitization wins whenever λtC/2 > 1, i.e., when C > 2/(λt). For molecular Hamiltonians with large λ and C, qubitization almost always wins — but reducing C (via better encoding) narrows the gap, and for higher-order Trotter the crossover becomes ε-dependent.
|