11from dataclasses import field , dataclass
22
3- from ..address import Address , AddressReg , AddressAnalysis
3+ from ..address import AddressReg , AddressAnalysis
44
55
66@dataclass
@@ -37,13 +37,12 @@ def main():
3737 fid_analysis = FidelityAnalysis(main.dialects)
3838 fid_analysis.run_analysis(main, no_raise=False)
3939
40- gate_fidelity = fid_analysis.gate_fidelity
41- atom_survival_probs = fid_analysis.atom_survival_probability
40+ gate_fidelities = fid_analysis.gate_fidelities
41+ qubit_survival_probs = fid_analysis.qubit_survival_fidelities
4242 ```
4343 """
4444
4545 keys = ("circuit.fidelity" , "qubit.address" )
46- lattice = Address
4746
4847 gate_fidelities : list [FidelityRange ] = field (init = False , default_factory = list )
4948 """Gate fidelities of each qubit as (min, max) pairs to provide a range"""
@@ -64,14 +63,20 @@ def next_address(self, value: int):
6463 self .extend_fidelities ()
6564
6665 def extend_fidelities (self ):
66+ """Extend both fidelity lists so their length matches the number of qubits"""
67+
6768 self .extend_fidelity (self .gate_fidelities )
6869 self .extend_fidelity (self .qubit_survival_fidelities )
6970
7071 def extend_fidelity (self , fidelities : list [FidelityRange ]):
72+ """Extend a list of fidelities so its length matches the number of qubits"""
73+
7174 n = self .qubit_count
7275 fidelities .extend ([FidelityRange (1.0 , 1.0 ) for _ in range (n - len (fidelities ))])
7376
7477 def reset_fidelities (self ):
78+ """Reset fidelities to unity for all qubits"""
79+
7580 self .gate_fidelities = [
7681 FidelityRange (1.0 , 1.0 ) for _ in range (self .qubit_count )
7782 ]
@@ -96,6 +101,7 @@ def update_branched_fidelities(
96101 then_fidelities : list [FidelityRange ],
97102 else_fidelities : list [FidelityRange ],
98103 ):
104+ """Update fidelity (min, max) values after evaluating differing branches such as IfElse"""
99105 # NOTE: make sure they are all of the same length
100106 map (
101107 self .extend_fidelity ,
0 commit comments