You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Distance coefficient power parameter in QEC scheme (microsoft#2212)
This PR extends the formula template for QEC logical error rate formulas
from:
$$ a \left(\frac{p}{p_{\mathrm{th}}}\right)^{\frac{d+1}{2}} $$
to
$$ a d^k \left(\frac{p}{p_{\mathrm{th}}}\right)^{\frac{d+1}{2}} $$
where $k$ is the new distance coefficient power discussed in
[arXiv:2411.10406, Section III.B, page
25](https://arxiv.org/pdf/2411.10406#page=25).
For $k = 0$, the default, the formula remains unchanged compared to the
current one. However, changing $k$ to other values allows to model a
different error correction behavior, as motivated by the paper.
The parameter is called `distance_coefficient_power` or
`distanceCoefficientPower` in the JSON parameter. It is also added to
the Python RE parameter utility structure (together with
`max_code_distance` which was absent so far).
// Compute code distance d (Equation (E2) in paper)
99
+
let physical_error_rate = self.evaluator.physical_error_rate(qubit);
100
+
let numerator = 2.0*(self.crossing_prefactor / required_logical_error_rate).ln();
101
+
let denominator = (self.error_correction_threshold / physical_error_rate).ln();
102
+
103
+
let code_distance = (((numerator / denominator) - 1.0).ceil()asu64) | 0x1;
104
+
105
+
ifletSome(max_distance) = self.max_code_distance{
106
+
if max_distance < code_distance {
107
+
returnErr(format!("The computed code distance {code_distance} is too high; maximum allowed code distance is {max_distance}; try increasing the total logical error budget"));
// Compute code distance d (Equation (E2) in paper)
113
149
fncompute_code_parameter(
114
150
&self,
115
151
qubit:&Self::Qubit,
116
152
required_logical_qubit_error_rate:f64,
117
153
) -> Result<u64,String>{
118
-
let physical_error_rate = self.evaluator.physical_error_rate(qubit);
119
-
let numerator = 2.0*(self.crossing_prefactor / required_logical_qubit_error_rate).ln();
120
-
let denominator = (self.error_correction_threshold / physical_error_rate).ln();
121
-
122
-
let code_distance = (((numerator / denominator) - 1.0).ceil()asu64) | 0x1;
123
-
124
-
ifletSome(max_distance) = self.max_code_distance{
125
-
if max_distance < code_distance {
126
-
returnErr(format!("The computed code distance {code_distance} is too high; maximum allowed code distance is {max_distance}; try increasing the total logical error budget"));
0 commit comments