Analysis
FidelityAnalysis
dataclass
FidelityAnalysis()
Bases: AddressAnalysis
This analysis pass can be used to track the global addresses of qubits and wires.
Usage examples
from bloqade import squin
from bloqade.analysis.fidelity import FidelityAnalysis
@squin.kernel
def main():
q = squin.qalloc(1)
squin.x(q[0])
squin.depolarize(0.1, q[0])
return q
fid_analysis = FidelityAnalysis(main.dialects)
fid_analysis.run(main)
gate_fidelities = fid_analysis.gate_fidelities
qubit_survival_probs = fid_analysis.qubit_survival_fidelities
gate_fidelities
class-attribute
instance-attribute
gate_fidelities: list[FidelityRange] = field(
init=False, default_factory=list
)
Gate fidelities of each qubit as (min, max) pairs to provide a range
qubit_survival_fidelities
class-attribute
instance-attribute
qubit_survival_fidelities: list[FidelityRange] = field(
init=False, default_factory=list
)
Qubit survival fidelity given as (min, max) pairs
extend_fidelities
extend_fidelities()
Extend both fidelity lists so their length matches the number of qubits
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/fidelity/analysis.py
60 61 62 63 64 | |
extend_fidelity
extend_fidelity(fidelities: list[FidelityRange])
Extend a list of fidelities so its length matches the number of qubits
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/fidelity/analysis.py
66 67 68 69 70 | |
reset_fidelities
reset_fidelities()
Reset fidelities to unity for all qubits
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/fidelity/analysis.py
72 73 74 75 76 77 78 79 80 | |
update_branched_fidelities
update_branched_fidelities(
fidelities: list[FidelityRange],
current_fidelities: list[FidelityRange],
then_fidelities: list[FidelityRange],
else_fidelities: list[FidelityRange],
)
Update fidelity (min, max) values after evaluating differing branches such as IfElse
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/fidelity/analysis.py
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | |
update_fidelities
staticmethod
update_fidelities(
fidelities: list[FidelityRange],
fidelity: float,
addresses: AddressReg,
)
short-hand to update both (min, max) values
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/fidelity/analysis.py
82 83 84 85 86 87 88 89 90 | |
FidelityRange
dataclass
FidelityRange(min: float, max: float)
Range of fidelity for a qubit as pair of (min, max) values