address
analysis
AddressAnalysis
Bases: Forward[Address]
This analysis pass can be used to track the global addresses of qubits and wires.
qubit_count
property
qubit_count: int
Total number of qubits found by the analysis.
impls
qubit.address method table for a few builtin dialects.
fidelity
analysis
FidelityAnalysis
Bases: Forward
This analysis pass can be used to track the global addresses of qubits and wires.
Usage examples
from bloqade import qasm2
from bloqade.noise import native
from bloqade.analysis.fidelity import FidelityAnalysis
from bloqade.qasm2.passes.noise import NoisePass
noise_main = qasm2.extended.add(native.dialect)
@noise_main
def main():
q = qasm2.qreg(2)
qasm2.x(q[0])
return q
NoisePass(main.dialects)(main)
fid_analysis = FidelityAnalysis(main.dialects)
fid_analysis.run_analysis(main, no_raise=False)
gate_fidelity = fid_analysis.gate_fidelity
atom_survival_probs = fid_analysis.atom_survival_probability
atom_survival_probability
class-attribute
instance-attribute
atom_survival_probability: list[float] = field(init=False)
The probabilities that each of the atoms in the register survive the duration of the analysed program. The order of the list follows the order they are in the register.
gate_fidelity
class-attribute
instance-attribute
gate_fidelity: float = 1.0
The fidelity of the gate set described by the analysed program. It reduces whenever a noise channel is encountered.