diff --git a/.buildinfo b/.buildinfo index fee07d6a..c4d07ee8 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: ac2b2b210e7591f91a11e0d3eab1318d +config: b35e2e0a8a46d66c8858ead2ca0b9e3b tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/apidocs/decoders.doctree b/.doctrees/apidocs/decoders.doctree index f438baf6..261cb19d 100644 Binary files a/.doctrees/apidocs/decoders.doctree and b/.doctrees/apidocs/decoders.doctree differ diff --git a/.doctrees/apidocs/utils.doctree b/.doctrees/apidocs/utils.doctree index a7ceb542..99fff3e6 100644 Binary files a/.doctrees/apidocs/utils.doctree and b/.doctrees/apidocs/utils.doctree differ diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index b1d67d41..a8a0b26c 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/stubs/qiskit_qec.circuits.ArcCircuit.doctree b/.doctrees/stubs/qiskit_qec.circuits.ArcCircuit.doctree index 74951843..e257b1fa 100644 Binary files a/.doctrees/stubs/qiskit_qec.circuits.ArcCircuit.doctree and b/.doctrees/stubs/qiskit_qec.circuits.ArcCircuit.doctree differ diff --git a/.doctrees/stubs/qiskit_qec.circuits.CSSCodeCircuit.doctree b/.doctrees/stubs/qiskit_qec.circuits.CSSCodeCircuit.doctree index 083cc4f8..bb90a809 100644 Binary files a/.doctrees/stubs/qiskit_qec.circuits.CSSCodeCircuit.doctree and b/.doctrees/stubs/qiskit_qec.circuits.CSSCodeCircuit.doctree differ diff --git a/.doctrees/stubs/qiskit_qec.circuits.CodeCircuit.doctree b/.doctrees/stubs/qiskit_qec.circuits.CodeCircuit.doctree index 275bfb32..d9fc74bb 100644 Binary files a/.doctrees/stubs/qiskit_qec.circuits.CodeCircuit.doctree and b/.doctrees/stubs/qiskit_qec.circuits.CodeCircuit.doctree differ diff --git a/.doctrees/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.doctree b/.doctrees/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.doctree index 11ca90df..38516433 100644 Binary files a/.doctrees/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.doctree and b/.doctrees/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.doctree differ diff --git a/.doctrees/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.doctree b/.doctrees/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.doctree index f792f501..291f9f82 100644 Binary files a/.doctrees/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.doctree and b/.doctrees/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.doctree differ diff --git a/.doctrees/stubs/qiskit_qec.decoders.CircuitModelMatchingDecoder.doctree b/.doctrees/stubs/qiskit_qec.decoders.CircuitModelMatchingDecoder.doctree deleted file mode 100644 index aaac3025..00000000 Binary files a/.doctrees/stubs/qiskit_qec.decoders.CircuitModelMatchingDecoder.doctree and /dev/null differ diff --git a/.doctrees/stubs/qiskit_qec.decoders.DecodingGraph.doctree b/.doctrees/stubs/qiskit_qec.decoders.DecodingGraph.doctree index 7218a96b..d21c6242 100644 Binary files a/.doctrees/stubs/qiskit_qec.decoders.DecodingGraph.doctree and b/.doctrees/stubs/qiskit_qec.decoders.DecodingGraph.doctree differ diff --git a/.doctrees/stubs/qiskit_qec.decoders.RepetitionDecoder.doctree b/.doctrees/stubs/qiskit_qec.decoders.RepetitionDecoder.doctree deleted file mode 100644 index f1cf7075..00000000 Binary files a/.doctrees/stubs/qiskit_qec.decoders.RepetitionDecoder.doctree and /dev/null differ diff --git a/.doctrees/stubs/qiskit_qec.decoders.ThreeBitDecoder.doctree b/.doctrees/stubs/qiskit_qec.decoders.ThreeBitDecoder.doctree deleted file mode 100644 index 09626961..00000000 Binary files a/.doctrees/stubs/qiskit_qec.decoders.ThreeBitDecoder.doctree and /dev/null differ diff --git a/.doctrees/stubs/qiskit_qec.decoders.UnionFindDecoder.doctree b/.doctrees/stubs/qiskit_qec.decoders.UnionFindDecoder.doctree index a12006d6..b2ec4da3 100644 Binary files a/.doctrees/stubs/qiskit_qec.decoders.UnionFindDecoder.doctree and b/.doctrees/stubs/qiskit_qec.decoders.UnionFindDecoder.doctree differ diff --git a/.doctrees/stubs/qiskit_qec.utils.DecodingGraphEdge.doctree b/.doctrees/stubs/qiskit_qec.utils.DecodingGraphEdge.doctree index 782cd4d0..862ffe05 100644 Binary files a/.doctrees/stubs/qiskit_qec.utils.DecodingGraphEdge.doctree and b/.doctrees/stubs/qiskit_qec.utils.DecodingGraphEdge.doctree differ diff --git a/.doctrees/stubs/qiskit_qec.utils.DecodingGraphNode.doctree b/.doctrees/stubs/qiskit_qec.utils.DecodingGraphNode.doctree index e3ec0902..c5cf1eac 100644 Binary files a/.doctrees/stubs/qiskit_qec.utils.DecodingGraphNode.doctree and b/.doctrees/stubs/qiskit_qec.utils.DecodingGraphNode.doctree differ diff --git a/_modules/index.html b/_modules/index.html index 20a78c35..880701d9 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -336,11 +333,8 @@

    All modules for which code is available

  • qiskit_qec.codes.codebase
  • qiskit_qec.codes.qec_code
  • qiskit_qec.codes.stabsubsystemcodes
  • -
  • qiskit_qec.decoders.circuit_matching_decoder
  • qiskit_qec.decoders.decoding_graph
  • qiskit_qec.decoders.hdrg_decoders
  • -
  • qiskit_qec.decoders.repetition_decoder
  • -
  • qiskit_qec.decoders.three_bit_decoder
  • qiskit_qec.geometry.bounds
  • qiskit_qec.geometry.lattice
  • qiskit_qec.geometry.manifold
  • @@ -391,7 +385,7 @@

    All modules for which code is available

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/circuits/code_circuit.html b/_modules/qiskit_qec/circuits/code_circuit.html index 9fa67ada..c20a685c 100644 --- a/_modules/qiskit_qec/circuits/code_circuit.html +++ b/_modules/qiskit_qec/circuits/code_circuit.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -388,21 +385,10 @@

    Source code for qiskit_qec.circuits.code_circuit

    pass
    -
    -[docs] - @abstractmethod - def measured_logicals(self): - """ - Returns a list of logical operators, each expressed as a list of qubits for which - the parity of the final readouts corresponds to the raw logical readout. - """ - pass
    - -
    [docs] @abstractmethod - def check_nodes(self, nodes, ignore_extra_boundary=False, minimal=False): + def check_nodes(self, nodes, ignore_extra_logical=False, minimal=False): """ Determines whether a given set of nodes are neutral. If so, also determines any additional logical readout qubits that would be @@ -410,7 +396,7 @@

    Source code for qiskit_qec.circuits.code_circuit

    would be required to make the cluster. Args: nodes (list): List of nodes, of the type produced by `string2nodes`. - ignore_extra_boundary (bool): If `True`, undeeded boundary nodes are + ignore_extra_logical (bool): If `True`, undeeded logical nodes are ignored. minimal (bool): Whether output should only reflect the minimal error case. @@ -461,7 +447,7 @@

    Source code for qiskit_qec.circuits.code_circuit

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/circuits/css_code.html b/_modules/qiskit_qec/circuits/css_code.html index f19e52ba..4d766357 100644 --- a/_modules/qiskit_qec/circuits/css_code.html +++ b/_modules/qiskit_qec/circuits/css_code.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -516,19 +513,6 @@

    Source code for qiskit_qec.circuits.css_code

    self.z_stabilizers = self.code.z_stabilizers
                 self.logical_x = self.code.logical_x
                 self.logical_z = self.code.logical_z
    -        # for the unionfind decoder
    -        self.css_x_logical = self.logical_x
    -        self.css_z_logical = self.logical_z
    -
    -
    -[docs] - def measured_logicals(self): - if self.basis == "x": - measured_logicals = self.logical_x - else: - measured_logicals = self.logical_z - return measured_logicals
    - def _prepare_initial_state(self, qc, qregs, state): if state[0] == "1": @@ -633,7 +617,7 @@

    Source code for qiskit_qec.circuits.css_code

     [docs]
    -    def check_nodes(self, nodes, ignore_extra_boundary=False, minimal=False):
    +    def check_nodes(self, nodes, ignore_extra_logical=False, minimal=False):
             raise NotImplementedError
    @@ -777,7 +761,7 @@

    Source code for qiskit_qec.circuits.css_code

    Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/circuits/repetition_code.html b/_modules/qiskit_qec/circuits/repetition_code.html index 2d8e770e..0db8ba3a 100644 --- a/_modules/qiskit_qec/circuits/repetition_code.html +++ b/_modules/qiskit_qec/circuits/repetition_code.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -362,6 +359,8 @@

    Source code for qiskit_qec.circuits.repetition_code

    from qiskit_qec.circuits.code_circuit import CodeCircuit from qiskit_qec.utils import DecodingGraphEdge, DecodingGraphNode +from qiskit_qec.utils.decoding_graph_attributes import _nodes2cpp +from qiskit_qec.circuits._c_circuits import _c_check_nodes, _c_is_cluster_neutral def _separate_string(string): @@ -440,33 +439,9 @@

    Source code for qiskit_qec.circuits.repetition_code

    self.syndrome_measurement(final=True) self.readout() - gauge_ops = [[j, j + 1] for j in range(self.d - 1)] - measured_logical = [[0]] - flip_logical = list(range(self.d)) - boundary = [[0], [self.d - 1]] - - if xbasis: - self.css_x_gauge_ops = gauge_ops - self.css_x_stabilizer_ops = gauge_ops - self.css_x_logical = measured_logical - self.css_x_boundary = boundary - self.css_z_gauge_ops = [] - self.css_z_stabilizer_ops = [] - self.css_z_logical = flip_logical - self.css_z_boundary = [] - self.basis = "x" - else: - self.css_x_gauge_ops = [] - self.css_x_stabilizer_ops = [] - self.css_x_logical = flip_logical - self.css_x_boundary = [] - self.css_z_gauge_ops = gauge_ops - self.css_z_stabilizer_ops = gauge_ops - self.css_z_logical = measured_logical - self.css_z_boundary = boundary - self.basis = "z" - self.round_schedule = self.basis - self.blocks = T + self.gauge_ops = [[j, j + 1] for j in range(self.d - 1)] + self.measured_logical = [[0], [self.d - 1]] + self.basis = "x" self.resets = resets self.delay = delay @@ -588,12 +563,6 @@

    Source code for qiskit_qec.circuits.repetition_code

    self.circuit[log].measure(self.code_qubit, self.code_bit)
    -
    -[docs] - def measured_logicals(self): - return [[0]]
    - - def _process_string(self, string): # logical readout taken from measured_log = string[0] + " " + string[self.d - 1] @@ -666,20 +635,18 @@

    Source code for qiskit_qec.circuits.repetition_code

    logical = "0" string = self._process_string(string) - # [ <boundary>, <syn>, <syn>,...] + # [ <logical>, <syn>, <syn>,...] separated_string = _separate_string(string) nodes = [] - # boundary nodes + # logical nodes boundary = separated_string[0] # [<last_elem>, <init_elem>] for bqec_index, belement in enumerate(boundary[::-1]): if all_logicals or belement != logical: - i = [0, -1][bqec_index] - if self.basis == "z": - bqubits = [self.css_x_logical[i]] - else: - bqubits = [self.css_z_logical[i]] - bnode = DecodingGraphNode(is_boundary=True, qubits=bqubits, index=bqec_index) + bqubits = self.measured_logical[bqec_index] + bnode = DecodingGraphNode( + is_logical=True, is_boundary=True, qubits=bqubits, index=bqec_index + ) nodes.append(bnode) # bulk nodes @@ -688,10 +655,7 @@

    Source code for qiskit_qec.circuits.repetition_code

    elements = separated_string[syn_type][syn_round] for qec_index, element in enumerate(elements[::-1]): if element == "1": - if self.basis == "z": - qubits = self.css_z_gauge_ops[qec_index] - else: - qubits = self.css_x_gauge_ops[qec_index] + qubits = self.gauge_ops[qec_index] node = DecodingGraphNode(time=syn_round, qubits=qubits, index=qec_index) nodes.append(node) return nodes
    @@ -707,12 +671,12 @@

    Source code for qiskit_qec.circuits.repetition_code

    Returns: list: Raw values for logical operators that correspond to nodes. """ - return string.split(" ", maxsplit=1)[0][-1]
    + return [string.split(" ", maxsplit=1)[0][-1]]
    [docs] - def check_nodes(self, nodes, ignore_extra_boundary=False, minimal=False): + def check_nodes(self, nodes, ignore_extra_logical=False, minimal=False): """ Determines whether a given set of nodes are neutral. If so, also determines any additional logical readout qubits that would be @@ -720,7 +684,7 @@

    Source code for qiskit_qec.circuits.repetition_code

    would be required to make the cluster. Args: nodes (list): List of nodes, of the type produced by `string2nodes`. - ignore_extra_boundary (bool): If `True`, undeeded boundary nodes are + ignore_extra_logical (bool): If `True`, undeeded boundary nodes are ignored. minimal (bool): Whether output should only reflect the minimal error case. @@ -736,14 +700,14 @@

    Source code for qiskit_qec.circuits.repetition_code

    # see which qubits for logical zs are given and collect bulk nodes given_logicals = [] for node in nodes: - if node.is_boundary: + if node.is_logical: given_logicals += node.qubits given_logicals = set(given_logicals) # bicolour code qubits according to the domain walls walls = [] for node in nodes: - if not node.is_boundary: + if not node.is_logical: walls.append(node.qubits[1]) walls.sort() c = 0 @@ -783,7 +747,7 @@

    Source code for qiskit_qec.circuits.repetition_code

    # if unneeded logical zs are given, cluster is not neutral # (unless this is ignored) - if (not ignore_extra_boundary) and given_logicals.difference(flipped_logicals): + if (not ignore_extra_logical) and given_logicals.difference(flipped_logicals): neutral = False # otherwise, report only needed logicals that aren't given else: @@ -793,11 +757,10 @@

    Source code for qiskit_qec.circuits.repetition_code

    flipped_logical_nodes = [] for flipped_logical in flipped_logicals: qubits = [flipped_logical] - if self.basis == "z": - elem = self.css_z_boundary.index(qubits) - else: - elem = self.css_x_boundary.index(qubits) - node = DecodingGraphNode(is_boundary=True, qubits=qubits, index=elem) + elem = self.measured_logical.index(qubits) + node = DecodingGraphNode( + is_logical=True, is_boundary=True, qubits=qubits, index=elem + ) flipped_logical_nodes.append(node) if neutral and not flipped_logical_nodes: @@ -975,6 +938,8 @@

    Source code for qiskit_qec.circuits.repetition_code

    self._syndrome_measurement(final=True) self._readout() + self._cpp_link_graph, self._cpp_link_neighbors = self._links2cpp() + def _get_link_graph(self, max_dist=1): graph = rx.PyGraph() for link in self.links: @@ -1191,20 +1156,6 @@

    Source code for qiskit_qec.circuits.repetition_code

    z_logicals = [min(self.code_index.keys())] self.z_logicals = z_logicals - # set css attributes for decoder - gauge_ops = [[link[0], link[2]] for link in self.links] - measured_logical = [[self.z_logicals[0]]] - flip_logical = list(range(self.d)) - boundary = [[logical] for logical in self.z_logicals] - self.css_x_gauge_ops = [] - self.css_x_stabilizer_ops = [] - self.css_x_logical = flip_logical - self.css_x_boundary = [] - self.css_z_gauge_ops = gauge_ops - self.css_z_stabilizer_ops = gauge_ops - self.css_z_logical = measured_logical - self.css_z_boundary = boundary - def _get_202(self, t): """ Returns the position within a 202 sequence for the current measurement round: @@ -1339,12 +1290,6 @@

    Source code for qiskit_qec.circuits.repetition_code

    qc.add_register(self.code_bit) qc.measure(self.code_qubit, self.code_bit) -
    -[docs] - def measured_logicals(self): - return [[self.z_logicals[0]]]
    - - def _process_string(self, string): # logical readout taken from assigned qubits measured_log = "" @@ -1475,8 +1420,8 @@

    Source code for qiskit_qec.circuits.repetition_code

    if (syn_type == 0 and (all_logicals or element != self.logical)) or ( syn_type != 0 and element == "1" ): - is_boundary = syn_type == 0 - if is_boundary: + is_logical = syn_type == 0 + if is_logical: elem_num = syn_round syn_round = 0 code_qubits = [self.z_logicals[elem_num]] @@ -1489,8 +1434,8 @@

    Source code for qiskit_qec.circuits.repetition_code

    if not tau: tau = 0 node = DecodingGraphNode( - is_boundary=is_boundary, - time=syn_round if not is_boundary else None, + is_logical=is_logical, + time=syn_round if not is_logical else None, qubits=code_qubits, index=elem_num, ) @@ -1529,17 +1474,35 @@

    Source code for qiskit_qec.circuits.repetition_code

    nodes_per_link[link_qubit] = 1 flat_nodes = [] for node in nodes: - if nodes_per_link[node.properties["link qubit"]] % 2: + if node.is_logical or node.is_boundary: + flat_nodes.append(node) + elif nodes_per_link[node.properties["link qubit"]] % 2: flat_node = deepcopy(node) flat_node.time = None if flat_node not in flat_nodes: flat_nodes.append(flat_node) + return flat_nodes
    + def _links2cpp(self): + """ + Convert data about the link graph to the form required by C++ functions. + """ + nodes = self.link_graph.nodes() + link_graph = [] + for edge in self.link_graph.edge_list(): + link_graph.append((nodes[edge[0]], nodes[edge[1]])) + link_neighbors = {} + for n, node in enumerate(self.link_graph.nodes()): + link_neighbors[node] = [] + for j in self.link_graph.neighbors(n): + link_neighbors[node].append(nodes[j]) + return link_graph, link_neighbors +
    [docs] - def check_nodes(self, nodes, ignore_extra_boundary=False, minimal=False): + def check_nodes(self, nodes, ignore_extra_logical=False, minimal=False): """ Determines whether a given set of nodes are neutral. If so, also determines any additional logical readout qubits that would be @@ -1547,7 +1510,7 @@

    Source code for qiskit_qec.circuits.repetition_code

    would be required to make the cluster. Args: nodes (list): List of nodes, of the type produced by `string2nodes`. - ignore_extra_boundary (bool): If `True`, undeeded boundary nodes are + ignore_extra_logical (bool): If `True`, undeeded boundary nodes are ignored. minimal (bool): Whether output should only reflect the minimal error case. @@ -1560,177 +1523,28 @@

    Source code for qiskit_qec.circuits.repetition_code

    num_errors (int): Minimum number of errors required to create nodes. """ - nodes = self.flatten_nodes(nodes) + nodes = _nodes2cpp(nodes) - # see which qubits for logical zs are given and collect bulk nodes - given_logicals = [] - bulk_nodes = [] - for node in nodes: - if node.is_boundary: - given_logicals += node.qubits - else: - bulk_nodes.append(node) - given_logicals = set(given_logicals) - - # see whether the bulk nodes are neutral - if bulk_nodes: - - # check whether there are frustrated plaquettes - parities = {} - for node in bulk_nodes: - for c in self.cycle_dict[tuple(node.qubits)]: - if c in parities: - parities[c] += 1 - else: - parities[c] = 1 - for c, parity in parities.items(): - parities[c] = parity % 2 - frust = any(parities.values()) - - # if frust==True, no colouring is possible, so no need to do it - if frust: - # neutral if not frustrated - neutral = not frust - # empty because ignored - flipped_logical_nodes = [] - # None because not counted - num_errors = None - else: - # bicolor the nodes of the link graph, such that node edges connect unlike edges - link_qubits = set(node.properties["link qubit"] for node in nodes) - link_graph = self.link_graph - # all the qubits around cycles of the node edges have to be covered - ns_to_do = set() - for edge in [tuple(node.qubits) for node in bulk_nodes]: - for c in self.cycle_dict[edge]: - ns_to_do = ns_to_do.union(self.cycles[c]) - # if this gives us qubits to start with, we start with one - if ns_to_do: - n = ns_to_do.pop() - else: - # otherwise we commit to covering them all - ns_to_do = set(range(len(link_graph.nodes()))) - n = ns_to_do.pop() - node_color = {n: 0} - recently_colored = node_color.copy() - base_neutral = True - # count the number of nodes for each colour throughout - num_nodes = [1, 0] - last_num = [None, None] - fully_converged = False - last_converged = False - while base_neutral and not fully_converged: - # go through all nodes coloured in the last pass - newly_colored = {} - for n, c in recently_colored.items(): - # look at all the code qubits that are neighbours - incident_es = link_graph.incident_edges(n) - for e in incident_es: - edge = link_graph.edges()[e] - n0, n1 = link_graph.edge_list()[e] - if n0 == n: - nn = n1 - else: - nn = n0 - # see if the edge corresponds to one of the given nodes - dc = edge["link qubit"] in link_qubits - # if the neighbour is not yet coloured, colour it - # different color if edge is given node, same otherwise - if nn not in node_color: - new_c = (c + dc) % 2 - if nn not in newly_colored: - newly_colored[nn] = new_c - num_nodes[new_c] += 1 - # if it is coloured, check the colour is correct - else: - base_neutral = base_neutral and (node_color[nn] == (c + dc) % 2) - for nn, c in newly_colored.items(): - node_color[nn] = c - if nn in ns_to_do: - ns_to_do.remove(nn) - recently_colored = newly_colored.copy() - # process is converged once one colour has stoppped growing - # once ns_to_do is empty - converged = (not ns_to_do) and ( - (num_nodes[0] == last_num[0] != 0) or (num_nodes[1] == last_num[1] != 0) - ) - fully_converged = converged and last_converged - if not fully_converged: - last_num = num_nodes.copy() - last_converged = converged - # see how many qubits are in the converged colour, and determine the min colour - for c in range(2): - if num_nodes[c] == last_num[c]: - conv_color = c - if num_nodes[conv_color] <= self.d / 2: - min_color = conv_color - else: - min_color = (conv_color + 1) % 2 - # calculate the number of nodes for the other - num_nodes[(conv_color + 1) % 2] = link_graph.num_nodes() - num_nodes[conv_color] - # get the set of min nodes - min_ns = set() - for n, c in node_color.items(): - if c == min_color: - min_ns.add(n) - - # see which qubits for logical zs are needed - flipped_logicals_all = [[], []] - if base_neutral: - for qubit in self.z_logicals: - n = link_graph.nodes().index(qubit) - dc = not n in min_ns - flipped_logicals_all[(min_color + dc) % 2].append(qubit) - for j in range(2): - flipped_logicals_all[j] = set(flipped_logicals_all[j]) - - # list the colours with the max error one first - # (unless we do min only) - cs = [] - if not minimal: - cs.append((min_color + 1) % 2) - cs.append(min_color) - - # see what happens for both colours - # if neutral for maximal, it's neutral - # otherwise, it is whatever it is for the minimal - for c in cs: - neutral = base_neutral - num_errors = num_nodes[c] - flipped_logicals = flipped_logicals_all[c] - - # if unneeded logical zs are given, cluster is not neutral - # (unless this is ignored) - if (not ignore_extra_boundary) and given_logicals.difference(flipped_logicals): - neutral = False - flipped_logicals = set() - # otherwise, report only needed logicals that aren't given - else: - flipped_logicals = flipped_logicals.difference(given_logicals) - - flipped_logical_nodes = [] - for flipped_logical in flipped_logicals: - node = DecodingGraphNode( - is_boundary=True, - qubits=[flipped_logical], - index=self.z_logicals.index(flipped_logical), - ) - flipped_logical_nodes.append(node) - - if neutral and not flipped_logical_nodes: - break - - else: - # without bulk nodes, neutral only if no boundary nodes are given - neutral = not bool(given_logicals) - # and no flipped logicals - flipped_logical_nodes = [] - num_errors = 0 + cpp_output = _c_check_nodes( + nodes, + ignore_extra_logical, + minimal, + self.cycle_dict, + self._cpp_link_graph, + self._cpp_link_neighbors, + self.z_logicals, + ) - # if unneeded logical zs are given, cluster is not neutral - # (unless this is ignored) - if (not ignore_extra_boundary) and given_logicals: - neutral = False + neutral = bool(cpp_output[0]) + num_errors = cpp_output[1] + flipped_logical_nodes = [] + for flipped_logical in cpp_output[2::]: + node = DecodingGraphNode( + is_logical=True, + qubits=[flipped_logical], + index=self.z_logicals.index(flipped_logical), + ) + flipped_logical_nodes.append(node) return neutral, flipped_logical_nodes, num_errors
    @@ -1745,11 +1559,17 @@

    Source code for qiskit_qec.circuits.repetition_code

    Args: atypical_nodes: dictionary in the form of the return value of string2nodes """ - if self._linear: - return not bool(len(atypical_nodes) % 2) - else: - neutral, logicals, _ = self.check_nodes(atypical_nodes) - return neutral and not logicals
    + nodes = _nodes2cpp(atypical_nodes) + return _c_is_cluster_neutral( + nodes, + False, + False, + self.cycle_dict, + self._cpp_link_graph, + self._cpp_link_neighbors, + self.z_logicals, + self._linear, + )
    @@ -1839,7 +1659,7 @@

    Source code for qiskit_qec.circuits.repetition_code

    ) nodes: List[DecodingGraphNode] = [] for node in self.string2nodes(string, all_logicals=True): - if not node.is_boundary: + if not node.is_logical: for t in range(self.T + 1): new_node = deepcopy(node) new_node.time = t @@ -1858,7 +1678,7 @@

    Source code for qiskit_qec.circuits.repetition_code

    dt = abs((node1.time or 0) - (node0.time or 0)) adj = set(node0.qubits).intersection(set(node1.qubits)) if adj: - if (node0.is_boundary ^ node1.is_boundary) or dt <= 1: + if (node0.is_logical ^ node1.is_logical) or dt <= 1: edges.append((n0, n1)) elif not self.resets: if node0.qubits == node1.qubits and dt == 2: @@ -1872,7 +1692,7 @@

    Source code for qiskit_qec.circuits.repetition_code

    source = nodes[n0] target = nodes[n1] qubits = [] - if not (source.is_boundary and target.is_boundary): + if not (source.is_logical and target.is_logical): qubits = list(set(source.qubits).intersection(target.qubits)) if source.time != target.time and len(qubits) > 1: qubits = [] @@ -1942,9 +1762,9 @@

    Source code for qiskit_qec.circuits.repetition_code

    else: error_probs = {} for n0, n1 in graph.edge_list(): - if nodes[n0].is_boundary: + if nodes[n0].is_logical: edge = (n1, n1) - elif nodes[n1].is_boundary: + elif nodes[n1].is_logical: edge = (n0, n0) else: edge = (n0, n1) @@ -2129,7 +1949,7 @@

    Source code for qiskit_qec.circuits.repetition_code

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/circuits/surface_code.html b/_modules/qiskit_qec/circuits/surface_code.html index bdb8ca75..b203a9d0 100644 --- a/_modules/qiskit_qec/circuits/surface_code.html +++ b/_modules/qiskit_qec/circuits/surface_code.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -397,17 +394,15 @@

    Source code for qiskit_qec.circuits.surface_code

    self._logicals["z"].append(list(range(self.d))) self._logicals["z"].append([self.d**2 - 1 - j for j in range(self.d)]) - # set info needed for css codes - self.css_x_gauge_ops = [[q for q in plaq if q is not None] for plaq in self.xplaqs] - self.css_x_stabilizer_ops = self.css_x_gauge_ops - self.css_x_logical = [self._logicals["x"][0]] - self.css_x_boundary = [self._logicals["x"][0] + self._logicals["x"][1]] - self.css_z_gauge_ops = [[q for q in plaq if q is not None] for plaq in self.zplaqs] - self.css_z_stabilizer_ops = self.css_z_gauge_ops - self.css_z_logical = [self._logicals["z"][0]] - self.css_z_boundary = [self._logicals["z"][0] + self._logicals["z"][1]] - self.round_schedule = self.basis - self.blocks = T + # set gauge and stabilizer info + self.x_gauge_ops = [[q for q in plaq if q is not None] for plaq in self.xplaqs] + self.x_stabilizer_ops = self.x_gauge_ops + self.x_logical = [self._logicals["x"][0]] + self.x_boundary = [self._logicals["x"][0] + self._logicals["x"][1]] + self.z_gauge_ops = [[q for q in plaq if q is not None] for plaq in self.zplaqs] + self.z_stabilizer_ops = self.z_gauge_ops + self.z_logical = [self._logicals["z"][0]] + self.z_boundary = [self._logicals["z"][0] + self._logicals["z"][1]] # quantum registers self._num_xy = int((d**2 - 1) / 2) @@ -664,16 +659,6 @@

    Source code for qiskit_qec.circuits.surface_code

    return syndrome_changes -
    -[docs] - def measured_logicals(self): - if self.basis == "x": - measured_logicals = self.css_x_logical - else: - measured_logicals = self.css_z_logical - return measured_logicals
    - -
    [docs] def string2raw_logicals(self, string): @@ -759,7 +744,7 @@

    Source code for qiskit_qec.circuits.surface_code

    for bqec_index, belement in enumerate(boundary[::-1]): if all_logicals or belement != logical: node = DecodingGraphNode( - is_boundary=True, + is_logical=True, qubits=self._logicals[self.basis][-bqec_index - 1], index=1 - bqec_index, ) @@ -772,9 +757,9 @@

    Source code for qiskit_qec.circuits.surface_code

    for qec_index, element in enumerate(elements[::-1]): if element == "1": if self.basis == "x": - qubits = self.css_x_stabilizer_ops[qec_index] + qubits = self.x_stabilizer_ops[qec_index] else: - qubits = self.css_z_stabilizer_ops[qec_index] + qubits = self.z_stabilizer_ops[qec_index] node = DecodingGraphNode(time=syn_round, qubits=qubits, index=qec_index) nodes.append(node) return nodes
    @@ -782,7 +767,7 @@

    Source code for qiskit_qec.circuits.surface_code

    [docs] - def check_nodes(self, nodes, ignore_extra_boundary=False, minimal=False): + def check_nodes(self, nodes, ignore_extra_logical=False, minimal=False): """ Determines whether a given set of nodes are neutral. If so, also determines any additional logical readout qubits that would be @@ -790,7 +775,7 @@

    Source code for qiskit_qec.circuits.surface_code

    would be required to make the cluster. Args: nodes (list): List of nodes, of the type produced by `string2nodes`. - ignore_extra_boundary (bool): If `True`, undeeded boundary nodes are + ignore_extra_logical (bool): If `True`, undeeded logical nodes are ignored. minimal (bool): Whether output should only reflect the minimal error case. @@ -803,9 +788,9 @@

    Source code for qiskit_qec.circuits.surface_code

    num_errors (int): Minimum number of errors required to create nodes. """ - bulk_nodes = [node for node in nodes if not node.is_boundary] - boundary_nodes = [node for node in nodes if node.is_boundary] - given_logicals = set(node.index for node in boundary_nodes) + bulk_nodes = [node for node in nodes if not node.is_logical] + logical_nodes = [node for node in nodes if node.is_logical] + given_logicals = set(node.index for node in logical_nodes) if self.basis == "z": coords = self._zplaq_coords @@ -813,7 +798,7 @@

    Source code for qiskit_qec.circuits.surface_code

    coords = self._xplaq_coords if (len(bulk_nodes) % 2) == 0: - if (len(boundary_nodes) % 2) == 0 or ignore_extra_boundary: + if (len(logical_nodes) % 2) == 0 or ignore_extra_logical: neutral = True flipped_logicals = set() # estimate num_errors from size @@ -849,7 +834,7 @@

    Source code for qiskit_qec.circuits.surface_code

    # if unneeded logical zs are given, cluster is not neutral # (unless this is ignored) - if (not ignore_extra_boundary) and given_logicals.difference(flipped_logicals): + if (not ignore_extra_logical) and given_logicals.difference(flipped_logicals): neutral = False # otherwise, report only needed logicals that aren't given else: @@ -860,7 +845,7 @@

    Source code for qiskit_qec.circuits.surface_code

    flipped_logical_nodes = [] for elem in flipped_logicals: node = DecodingGraphNode( - is_boundary=True, qubits=self._logicals[self.basis][elem], index=elem + is_logical=True, qubits=self._logicals[self.basis][elem], index=elem ) flipped_logical_nodes.append(node) @@ -897,7 +882,7 @@

    Source code for qiskit_qec.circuits.surface_code

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/codes/codebase.html b/_modules/qiskit_qec/codes/codebase.html index 4aa16124..2f38d518 100644 --- a/_modules/qiskit_qec/codes/codebase.html +++ b/_modules/qiskit_qec/codes/codebase.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -974,7 +971,7 @@

    Source code for qiskit_qec.codes.codebase

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/codes/qec_code.html b/_modules/qiskit_qec/codes/qec_code.html index b442170e..69528166 100644 --- a/_modules/qiskit_qec/codes/qec_code.html +++ b/_modules/qiskit_qec/codes/qec_code.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -373,7 +370,7 @@

    Source code for qiskit_qec.codes.qec_code

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/codes/stabsubsystemcodes.html b/_modules/qiskit_qec/codes/stabsubsystemcodes.html index aa0f399f..03b9b7f8 100644 --- a/_modules/qiskit_qec/codes/stabsubsystemcodes.html +++ b/_modules/qiskit_qec/codes/stabsubsystemcodes.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -460,7 +457,7 @@

    Source code for qiskit_qec.codes.stabsubsystemcodes

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/decoders/circuit_matching_decoder.html b/_modules/qiskit_qec/decoders/circuit_matching_decoder.html deleted file mode 100644 index 192335cb..00000000 --- a/_modules/qiskit_qec/decoders/circuit_matching_decoder.html +++ /dev/null @@ -1,1020 +0,0 @@ - - - - - - - - qiskit_qec.decoders.circuit_matching_decoder - Qiskit QEC 0.0.0 - - - - - - - - - - - - - - - - - - - - - Contents - - - - - - - - Menu - - - - - - - - - - - Expand - - - - - - - - - - - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark mode - - - - - - - - - - - - - - - - - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for qiskit_qec.decoders.circuit_matching_decoder

    -"""Abstract object for matching decoders for CSS codes and circuit noise."""
    -
    -import logging
    -from abc import ABC, abstractmethod
    -from copy import copy
    -from math import log
    -from typing import Dict, List, Tuple
    -from sympy import Poly, Symbol, symbols
    -
    -import rustworkx as rx
    -from qiskit import QuantumCircuit
    -from qiskit_qec.analysis.faultenumerator import FaultEnumerator
    -from qiskit_qec.decoders.decoding_graph import CSSDecodingGraph, DecodingGraph
    -from qiskit_qec.utils import DecodingGraphEdge
    -from qiskit_qec.decoders.pymatching_matcher import PyMatchingMatcher
    -from qiskit_qec.decoders.rustworkx_matcher import RustworkxMatcher
    -from qiskit_qec.decoders.temp_code_util import temp_gauge_products, temp_syndrome
    -from qiskit_qec.exceptions import QiskitQECError
    -from qiskit_qec.noise.paulinoisemodel import PauliNoiseModel
    -
    -
    -
    -[docs] -class CircuitModelMatchingDecoder(ABC): - """Matching decoder for circuit noise.""" - - METHOD_RETWORKX: str = "rustworkx" - METHOD_PYMATCHING: str = "pymatching" - AVAILABLE_METHODS = {METHOD_RETWORKX, METHOD_PYMATCHING} - - def __init__( - self, - n: int, - css_x_gauge_ops: List[Tuple[int]], - css_x_stabilizer_ops: List[Tuple[int]], - css_x_boundary: List[int], - css_z_gauge_ops: List[Tuple[int]], - css_z_stabilizer_ops: List[Tuple[int]], - css_z_boundary: List[int], - circuit: QuantumCircuit, - model: PauliNoiseModel, - basis: str, - round_schedule: str, - blocks: int, - method: str, - uniform: bool, - decoding_graph: DecodingGraph = None, - annotate: bool = False, - ): - """Create a matching decoder. - - Specialized to (subsystem) CSS codes encoding one logical qubit, - and quantum circuits that prepare and measure in the Z or X basis - and do repeated Pauli measurements. - - n : block size of quantum code - css_x_gauge_ops : list of supports of X gauge operators - css_x_stabilizer_ops : list of supports of X stabilizers - css_x_boundary : list of qubits along the X-type boundary - css_z_gauge_ops : list of supports of Z gauge operators - css_z_stabilizer_ops : list of supports of Z stabilizers - css_x_boundary : list of qubits along the Z-type boundary - circuit : entire quantum circuit to build the decoding graph - model : noise for operations in the circuit - basis : initializaton and measurement basis ("x" or "z") - round_schedule : gauge measurements in each block - blocks : number of measurement blocks - method : matching implementation - uniform : use same edge weight everywhere? - annotate : for rustworkx method, compute self.matcher.annotated_graph - """ - self.n = n - self.css_x_gauge_ops = css_x_gauge_ops - self.css_x_stabilizer_ops = css_x_stabilizer_ops - self.css_x_boundary = css_x_boundary - self.css_z_gauge_ops = css_z_gauge_ops - self.css_z_stabilizer_ops = css_z_stabilizer_ops - self.css_z_boundary = css_z_boundary - self.model = model - self.blocks = blocks - - if self.blocks < 1: - raise QiskitQECError("expected positive integer for blocks") - self.round_schedule = round_schedule - if set(self.round_schedule) > set("xyz"): - raise QiskitQECError("expected round schedule of 'x', 'y', 'z' chars") - self.basis = basis - if not self.basis in ("x", "z"): - raise QiskitQECError("expected basis to be 'x' or 'z'") - - self.uniform = uniform - - if method not in self.AVAILABLE_METHODS: - raise QiskitQECError("fmethod {method} is not supported.") - self.method = method - self.matcher = None - if self.method == self.METHOD_PYMATCHING: - self.matcher = PyMatchingMatcher() - else: - self.matcher = RustworkxMatcher(annotate) - - self.z_gauge_products = temp_gauge_products(self.css_z_stabilizer_ops, self.css_z_gauge_ops) - self.x_gauge_products = temp_gauge_products(self.css_x_stabilizer_ops, self.css_x_gauge_ops) - - if decoding_graph: - ( - self.idxmap, - self.node_layers, - self.graph, - self.layer_types, - ) = self._process_graph(decoding_graph.graph, blocks, round_schedule, basis) - else: - dg = CSSDecodingGraph( - css_x_gauge_ops, - css_x_stabilizer_ops, - css_x_boundary, - css_z_gauge_ops, - css_z_stabilizer_ops, - css_z_boundary, - blocks, - round_schedule, - basis, - ) - - ( - self.idxmap, - self.node_layers, - self.graph, - self.layer_types, - ) = (dg.idxmap, dg.node_layers, dg.graph, dg.layer_types) - - logging.debug("layer_types = %s", self.layer_types) - - self.ridxmap = {v: k for k, v in self.idxmap.items()} - - self.circuit = circuit - self.event_map = {} - self.parameters = model.get_operations() - self.edge_weight_polynomials = {} - self.symbols = None - if not self.uniform: - fe = FaultEnumerator(circuit, order=1, method="propagator", model=self.model) - self.event_map = self._enumerate_events( - self.css_x_gauge_ops, - self.css_x_stabilizer_ops, - self.css_x_boundary, - self.x_gauge_products, - self.css_z_gauge_ops, - self.css_z_stabilizer_ops, - self.css_z_boundary, - self.z_gauge_products, - self.blocks, - self.round_schedule, - self.basis, - self.layer_types, - fe, - ) - logging.debug("event_map = %s", self.event_map) - self.symbols, self.edge_weight_polynomials = self._edge_weight_polynomials( - self.model, self.event_map - ) - logging.debug("symbols = %s", self.symbols) - logging.debug("edge_weight_polynomials = %s", self.edge_weight_polynomials) - self.graph = self._revise_decoding_graph( - self.idxmap, self.graph, self.edge_weight_polynomials - ) - - @staticmethod - def _process_graph( - graph: DecodingGraph, blocks: int, round_schedule: str, basis: str - ) -> Tuple[Dict[Tuple[int, List[int]], int], List[List[int]], DecodingGraph, List[str]]: - """Process a decoding graph to add required attributes.""" - - # symmetrize hook errors - for j, edge in enumerate(graph.edges()): - n0, n1 = graph.edge_list()[j] - source = graph.nodes()[n0] - target = graph.nodes()[n1] - if source.time != target.time: - if source.is_boundary == target.is_boundary == False: - new_source = copy(source) - new_source.time = target.time - nn0 = graph.nodes().index(new_source) - new_target = copy(target) - new_target.time = source.time - nn1 = graph.nodes().index(new_target) - graph.add_edge(nn0, nn1, edge) - - edges_to_remove = [] - for j, edge in enumerate(graph.edges()): - n0, n1 = graph.edge_list()[j] - source = graph.nodes()[n0] - target = graph.nodes()[n1] - - # add the required attributes - # highlighted', 'measurement_error','qubit_id' and 'error_probability' - edge.properties["highlighted"] = False - edge.properties["measurement_error"] = int(source.time != target.time) - - # make it so times of boundary/boundary nodes agree - if source.is_boundary and not target.is_boundary: - if source.time != target.time: - new_source = copy(source) - new_source.time = target.time - n = graph.add_node(new_source) - edge.properties["measurement_error"] = 0 - edges_to_remove.append((n0, n1)) - graph.add_edge(n, n1, edge) - - # remove old boundary/boundary nodes - for n0, n1 in edges_to_remove: - graph.remove_edge(n0, n1) - - for n0, source in enumerate(graph.nodes()): - for n1, target in enumerate(graph.nodes()): - # add weightless nodes connecting different boundaries - if source.time == target.time: - if source.is_boundary and target.is_boundary: - if source.qubits != target.qubits: - edge = DecodingGraphEdge( - weight=0, - qubits=list(set(source.qubits).intersection((set(target.qubits)))), - ) - edge.properties["highlighted"] = False - edge.properties["measurement_error"] = 0 - if (n0, n1) not in graph.edge_list(): - graph.add_edge(n0, n1, edge) - - # connect one of the boundaries at different times - if target.time == (source.time or 0) + 1: - if source.qubits == target.qubits == [0]: - edge = DecodingGraphEdge(weight=0, qubits=[]) - edge.properties["highlighted"] = False - edge.properties["measurement_error"] = 0 - if (n0, n1) not in graph.edge_list(): - graph.add_edge(n0, n1, edge) - - # symmetrize edges - for j, edge in enumerate(graph.edges()): - n0, n1 = graph.edge_list()[j] - if (n1, n0) not in graph.edge_list(): - graph.add_edge(n1, n0, edge) - - idxmap = {} - for n, node in enumerate(graph.nodes()): - idxmap[node.time, tuple(node.qubits)] = n - - node_layers = [] - for node in graph.nodes(): - time = node.time or 0 - if len(node_layers) < time + 1: - node_layers += [[]] * (time + 1 - len(node_layers)) - node_layers[time].append(node.qubits) - - # create a list of decoding graph layer types - # the entries are 'g' for gauge and 's' for stabilizer - layer_types = [] - last_step = basis - for _ in range(blocks): - for step in round_schedule: - if basis == "z" and step == "z" and last_step == "z": - layer_types.append("g") - elif basis == "z" and step == "z" and last_step == "x": - layer_types.append("s") - elif basis == "x" and step == "x" and last_step == "x": - layer_types.append("g") - elif basis == "x" and step == "x" and last_step == "z": - layer_types.append("s") - last_step = step - if last_step == basis: - layer_types.append("g") - else: - layer_types.append("s") - - return idxmap, node_layers, graph, layer_types - - @staticmethod - def _revise_decoding_graph( - idxmap: Dict[Tuple[int, List[int]], int], - graph: rx.PyGraph, - edge_weight_polynomials: Dict[Tuple[int, Tuple[int]], Dict[Tuple[int, Tuple[int]], Poly]], - ) -> rx.PyGraph: - """Add edge weight polynomials to the decoding graph g and prune it. - - Update attribute "weight_poly" on decoding graph edges contained in - edge_weight_polynomials. Remove all other edges from the decoding graph - that have non-zero weight. - """ - for s1, sub in edge_weight_polynomials.items(): - for s2, wpoly in sub.items(): - if s1 not in idxmap: - raise QiskitQECError(f"vertex {s1} not in decoding graph") - if s2 not in idxmap: - raise QiskitQECError(f"vertex {s2} not in decoding graph") - if not graph.has_edge(idxmap[s1], idxmap[s2]): - # TODO: new edges may be needed for hooks, but raise exception for now - raise QiskitQECError("edge {s1} - {s2} not in decoding graph") - data = graph.get_edge_data(idxmap[s1], idxmap[s2]) - data.properties["weight_poly"] = wpoly - remove_list = [] - for source, target in graph.edge_list(): - edge_data = graph.get_edge_data(source, target) - if "weight_poly" not in edge_data.properties and edge_data.weight != 0: - # Remove the edge - remove_list.append((source, target)) - logging.info("remove edge (%d, %d)", source, target) - graph.remove_edges_from(remove_list) - return graph - -
    -[docs] - def update_edge_weights(self, model: PauliNoiseModel): - """Evaluate the numerical edge weights and update graph data. - - For each edge in the decoding graph that has a "weight_poly" - property, evaluate the polynomial at the given model parameters - and set the corresponding "weight" property. Once this is done, - recompute the shortest paths between pairs of vertices - in the decoding graph. - - model is a PauliNoiseModel whose error probabilities have been - previously assigned. The probabilities are then assigned to - the variables in self.symbols. - - Updates properties of matcher. - - Args: - model: moise model - """ - parameter_values = [model.get_error_probability(name) for name in self.parameters] - if not self.uniform: - if len(parameter_values) != len(self.parameters): - raise QiskitQECError("wrong number of error rate parameters") - symbol_list = [self.symbols[s] for s in self.parameters] - assignment = dict(zip(symbol_list, parameter_values)) - logging.info("update_edge_weights %s", str(assignment)) - # P(chain) = \prod_i (1-p_i)^{1-l(i)}*p_i^{l(i)} - # \propto \prod_i ((1-p_i)/p_i)^{l(i)} - # -log P(chain) \propto \sum_i -log[((1-p_i)/p_i)^{l(i)}] - # p_i is the probability that edge i carries an error - # l(i) is 1 if the link belongs to the chain and 0 otherwise - for source, target in self.graph.edge_list(): - edge_data = self.graph.get_edge_data(source, target).properties - if "weight_poly" in edge_data: - logging.info( - "update_edge_weights (%d, %d) %s", - source, - target, - str(edge_data["weight_poly"]), - ) - restriction = {x: assignment[x] for x in edge_data["weight_poly"].gens} - p = edge_data["weight_poly"].eval(restriction).evalf() - # if approximate edge flip probability is large, saturate at 1/2 - p = min(p, 0.5) - edge_data["weight"] = log((1 - p) / p) - self.matcher.preprocess(self.graph)
    - - - def _enumerate_events( - self, - css_x_gauge_ops: List[Tuple[int]], - css_x_stabilizer_ops: List[Tuple[int]], - css_x_boundary: List[int], - x_gauge_products: List[int], - css_z_gauge_ops: List[Tuple[int]], - css_z_stabilizer_ops: List[Tuple[int]], - css_z_boundary: List[int], - z_gauge_products: List[int], - blocks: int, - round_schedule: str, - basis: str, - layer_types: List[str], - fault_enumerator: FaultEnumerator, - ) -> Dict[Tuple[int, Tuple[int]], Dict[Tuple[int, Tuple[int]], Dict[List[str], int]]]: - """Enumerate fault events in the input circuit. - - Use the code definition to identify highlighted edges - in a decoding graph and return a dict containing the events - that highlight each edge. - - The basis input value 'x' or 'z' informs whether to - look at the Z error or X error syndrome, respectively. - - fault_enumerator is a FaultEnumerator object. - - Return a dict containing the total number of events of each - type: event_map[v0][v1][name][pauli] contains the number of - events where a gate "name" fails with error "pauli" and - the edge between v0 and v1 is highlighted. - - Args: - css_x_gauge_ops: x gauge ops - css_x_stabilizer_ops: x stabilizer ops - css_x_boundary: x boundary - x_gauge_products: x gauge products - css_z_gauge_ops: z gauge ops - css_z_stabilizer_ops: z stabilizer ops - css_z_boundary: z boundary - z_gauge_products: z gauge products - blocks: blocks - round_schedule: - basis: basis - layer_types: layer types - fault_enumerator: fault enumerator - - Returns: - Events map - """ - event_map = {} - for event in fault_enumerator.generate(): - # Unpack the event data - # Select the first element since order = 1 - ctr = event[0] # event counter - comb = event[1][0] # combination of faulty operations - pauli = event[2][0] # Pauli error string - outcome = event[3] # result of simulation - logging.debug("event %d %s %s %s", ctr, comb, pauli, outcome) - - ( - x_gauge_outcomes, - z_gauge_outcomes, - final_outcomes, - ) = self._partition_outcomes(blocks, round_schedule, outcome) - - # Compute the highlighted vertices - # Note that this only depends on the stabilizers at each - # time and does not require an explicit decoding graph - gauge_outcomes, highlighted = self._highlighted_vertices( - css_x_gauge_ops, - css_x_stabilizer_ops, - css_x_boundary, - x_gauge_products, - css_z_gauge_ops, - css_z_stabilizer_ops, - css_z_boundary, - z_gauge_products, - basis, - layer_types, - x_gauge_outcomes, - z_gauge_outcomes, - final_outcomes, - ) - logging.debug("gauge_outcomes %s", gauge_outcomes) - logging.debug("highlighted %s", highlighted) - # Examine the highlighted vertices to find the edge of the - # decoding graph that corresponds with this fault event - if len(highlighted) > 2: - raise QiskitQECError("too many highlighted vertices for a " + "single fault event") - if len(highlighted) == 1: # _highlighted_vertices highlights the boundary - raise QiskitQECError("only one highlighted vertex for a " + "single fault event") - if len(highlighted) == 2: - v0 = highlighted[0] - v1 = highlighted[1] - if basis == "z": - boundary = css_z_boundary - elif basis == "x": - boundary = css_x_boundary - # Is the special boundary vertex highlighted? - if v1 == (0, tuple(boundary[0])): - # Replace it with an adjacent vertex - for b in boundary: - assert len(b) == 1 # Assume each b has one element - isect = set(b).intersection(set(v0[1])) - if len(isect) > 0: - v1 = (v0[0], tuple(b)) - break - submap1 = event_map.setdefault(v0, {}) - submap2 = submap1.setdefault(v1, {}) - submap3 = submap2.setdefault(comb, {}) - eventcount = submap3.setdefault(pauli, 0) - submap3[pauli] = eventcount + 1 - return event_map - - @abstractmethod - def _partition_outcomes( - self, blocks: int, round_schedule: str, outcome: List[int] - ) -> Tuple[List[List[int]], List[List[int]], List[int]]: - """Process the raw outcome and return results. - - blocks = number of repetition of round_schedule - round_schedule = string of z and x characters - outcome = list of 0, 1 outcomes - - Return lists x_gauge_outcomes, z_gauge_outcomes, final_outcomes. - """ - raise NotImplementedError("Not implemented.") - - def _edge_weight_polynomials( - self, - model: PauliNoiseModel, - event_map: Dict[Tuple[int, Tuple[int]], Dict[Tuple[int, Tuple[int]], Dict[List[str], int]]], - ) -> Tuple[ - Dict[str, Symbol], - Dict[Tuple[int, Tuple[int]], Dict[Tuple[int, Tuple[int]], Poly]], - ]: - """Compute edge weight polynomials given the error events. - - event_map is the output of _enumerate_events - """ - symbs = {n: symbols(n) for n in model.get_operations()} - edge_weight_expressions = {} - for n1, submap1 in event_map.items(): - for n2 in submap1.keys(): - # check the names in the event map and warn if symbs - # does not contain one of the names - for name in event_map[n1][n2].keys(): - if name not in symbs: - logging.warning("%s in event_map but not in model", name) - # construct a linear approximation to the edge probability - # using the weights from the noise model - expr = 0 - for name in self.model.get_operations(): - if name in event_map[n1][n2]: - for pauli, count in event_map[n1][n2][name].items(): - expr += count * model.get_pauli_weight(name, pauli) * symbs[name] - map1 = edge_weight_expressions.setdefault(n1, {}) - map1[n2] = Poly(expr) - return symbs, edge_weight_expressions - -
    -[docs] - def process(self, outcomes: List[int]) -> List[int]: - """Process a set of outcomes and return corrected final outcomes. - - Be sure to have called update_edge_weights for the - noise parameters. - - The result is a list of code.n integers that are 0 or 1. - These are the corrected values of the final transversal - measurement in the basis given by self.basis. - """ - logging.debug("process: outcomes = %s", outcomes) - - x_gauge_outcomes, z_gauge_outcomes, final_outcomes = self._partition_outcomes( - self.blocks, self.round_schedule, outcomes - ) - - gauge_outcomes, highlighted = self._highlighted_vertices( - self.css_x_gauge_ops, - self.css_x_stabilizer_ops, - self.css_x_boundary, - self.x_gauge_products, - self.css_z_gauge_ops, - self.css_z_stabilizer_ops, - self.css_z_boundary, - self.z_gauge_products, - self.basis, - self.layer_types, - x_gauge_outcomes, - z_gauge_outcomes, - final_outcomes, - ) - logging.info("process: gauge_outcomes = %s", gauge_outcomes) - logging.info("process: final_outcomes = %s", final_outcomes) - logging.info("process: highlighted = %s", highlighted) - - qubit_errors, _ = self.matcher.find_errors(self.graph, self.idxmap, highlighted) - - corrected_outcomes = copy(final_outcomes) - for i in qubit_errors: - if i != -1: - corrected_outcomes[i] = (corrected_outcomes[i] + 1) % 2 - logging.info("process: corrected_outcomes = %s", corrected_outcomes) - if self.basis == "z": - test = temp_syndrome(corrected_outcomes, self.css_z_stabilizer_ops) - elif self.basis == "x": - test = temp_syndrome(corrected_outcomes, self.css_x_stabilizer_ops) - logging.debug("process: test syndrome = %s", test) - if sum(test) != 0: - raise QiskitQECError("decoder failure: syndrome should be trivial!") - return corrected_outcomes
    - - - @staticmethod - def _highlighted_vertices( - css_x_gauge_ops: List[Tuple[int]], - css_x_stabilizer_ops: List[Tuple[int]], - css_x_boundary: List[int], - x_gauge_products: List[int], - css_z_gauge_ops: List[Tuple[int]], - css_z_stabilizer_ops: List[Tuple[int]], - css_z_boundary: List[int], - z_gauge_products: List[int], - basis: str, - layer_types: List[str], - x_gauge_outcomes: List[List[int]], - z_gauge_outcomes: List[List[int]], - final_outcomes: List[int], - ) -> Tuple[List[List[int]], List[Tuple[int, Tuple[int]]]]: - """Identify highlighted vertices in the decoding graph for an outcome. - - Gauge operator measurement outcomes are lists of integers 0, 1. - """ - if basis == "z": - gauge_outcomes = z_gauge_outcomes - gauges = css_z_gauge_ops - stabilizers = css_z_stabilizer_ops - boundary = css_z_boundary - gauge_products = z_gauge_products - elif basis == "x": - gauge_outcomes = x_gauge_outcomes - gauges = css_x_gauge_ops - stabilizers = css_x_stabilizer_ops - boundary = css_x_boundary - gauge_products = x_gauge_products - final_gauges = [] - for supp in gauges: - parity = 0 - for i in supp: - if i != -1: # supp can contain -1 if no qubit at that site - parity += final_outcomes[i] - final_gauges.append(parity % 2) - gauge_outcomes.append(final_gauges) - - highlighted = [] - # Now iterate over the layers and look at appropriate - # syndrome differences - for i, ltype in enumerate(layer_types): - if ltype == "g": - # compare current and past gauge measurements - # if a bit differs, the vertex (i, g) is highlighted - for j, gauge_op in enumerate(gauges): - if (i == 0 and gauge_outcomes[i][j] == 1) or ( - i > 0 and gauge_outcomes[i][j] != gauge_outcomes[i - 1][j] - ): - highlighted.append((i, tuple(gauge_op))) - elif ltype == "s": - # compare current and past stabilizer measurements - # if a bit differs, the vertex (i, s) is highlighted - for j, stab_op in enumerate(stabilizers): - outcome = 0 - prior_outcome = 0 - for k in gauge_products[j]: - outcome += gauge_outcomes[i][k] - if i > 0: - prior_outcome += gauge_outcomes[i - 1][k] - outcome %= 2 - prior_outcome %= 2 - if outcome != prior_outcome: - highlighted.append((i, tuple(stab_op))) - logging.debug("|highlighted| = %d", len(highlighted)) - # If the total number of highlighted vertices is odd, - # add a single special highlighted vertex at the boundary - if len(highlighted) % 2 == 1: - highlighted.append((0, tuple(boundary[0]))) - logging.debug("highlighted = %s", highlighted) - return gauge_outcomes, highlighted
    - -
    -
    -
    -
    - -
    -
    - - Made with Sphinx and @pradyunsg's - - Furo -
    - Last updated on 2024/02/16
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - - - - \ No newline at end of file diff --git a/_modules/qiskit_qec/decoders/decoding_graph.html b/_modules/qiskit_qec/decoders/decoding_graph.html index fe7e583d..68f3f08b 100644 --- a/_modules/qiskit_qec/decoders/decoding_graph.html +++ b/_modules/qiskit_qec/decoders/decoding_graph.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -349,7 +346,6 @@

    Source code for qiskit_qec.decoders.decoding_graph

    Graph used as the basis of decoders. """ import itertools -import logging import copy from typing import List, Tuple, Union @@ -377,7 +373,7 @@

    Source code for qiskit_qec.decoders.decoding_graph

    METHOD_NAIVE: str = "naive" AVAILABLE_METHODS = {METHOD_SPITZ, METHOD_NAIVE} - def __init__(self, code, brute=False, graph=None): + def __init__(self, code, brute=False, graph=None, hyperedges=None): """ Args: code (CodeCircuit): The QEC code circuit object for which this decoding @@ -391,13 +387,14 @@

    Source code for qiskit_qec.decoders.decoding_graph

    if graph: self.graph = graph + self.hyperedges = hyperedges else: self._make_syndrome_graph() - self._logical_nodes = [] + self.logical_nodes = [] for node in self.graph.nodes(): - if node.is_boundary: - self._logical_nodes.append(node) + if node.is_logical: + self.logical_nodes.append(node) self.update_attributes() @@ -484,15 +481,15 @@

    Source code for qiskit_qec.decoders.decoding_graph

    n0 = graph.nodes().index(source) n1 = graph.nodes().index(target) qubits = [] - if not (source.is_boundary and target.is_boundary): + if not (source.is_logical and target.is_logical): qubits = list(set(source.qubits).intersection(target.qubits)) if not qubits: continue if ( source.time != target.time and len(qubits) > 1 - and not source.is_boundary - and not target.is_boundary + and not source.is_logical + and not target.is_logical ): qubits = [] edge = DecodingGraphEdge(qubits, 1) @@ -576,9 +573,9 @@

    Source code for qiskit_qec.decoders.decoding_graph

    boundary = [] error_probs = {} for n0, n1 in self.graph.edge_list(): - if self.graph[n0].is_boundary: + if self.graph[n0].is_logical: boundary.append(n1) - elif self.graph[n1].is_boundary: + elif self.graph[n1].is_logical: boundary.append(n0) else: if (1 - 2 * av_xor[n0, n1]) != 0: @@ -633,9 +630,9 @@

    Source code for qiskit_qec.decoders.decoding_graph

    else: ratio = np.nan p = ratio / (1 + ratio) - if self.graph[n0].is_boundary and not self.graph[n1].is_boundary: + if self.graph[n0].is_logical and not self.graph[n1].is_logical: edge = (n1, n1) - elif not self.graph[n0].is_boundary and self.graph[n1].is_boundary: + elif not self.graph[n0].is_logical and self.graph[n1].is_logical: edge = (n0, n0) else: edge = (n0, n1) @@ -713,7 +710,7 @@

    Source code for qiskit_qec.decoders.decoding_graph

    nodes = self.code.string2nodes(data, all_logicals=all_logicals) else: if all_logicals: - nodes = list(set(data).union(set(self._logical_nodes))) + nodes = list(set(data).union(set(self.logical_nodes))) else: nodes = data for node in nodes: @@ -793,245 +790,109 @@

    Source code for qiskit_qec.decoders.decoding_graph

    ns = set(self.node_index(node) for node in nodes) unpaired_ns = ns.difference(paired_ns) return [self.graph.nodes()[n] for n in unpaired_ns]
    -
    - -class CSSDecodingGraph: - """ - Class to construct the decoding graph required for the CircuitModelMatchingDecoder - for a generic CSS code. - """ +
    +[docs] + def get_edge_graph(self): + """ + Returns a copy of the graph that uses edges to store information + about the effects of errors on logical operators. This is done + via the `'fault_ids'` of the edges. No logical nodes are present + in such a graph. - def __init__( - self, - css_x_gauge_ops: List[Tuple[int]], - css_x_stabilizer_ops: List[Tuple[int]], - css_x_boundary: List[Tuple[int]], - css_z_gauge_ops: List[Tuple[int]], - css_z_stabilizer_ops: List[Tuple[int]], - css_z_boundary: List[Tuple[int]], - blocks: int, - round_schedule: str, - basis: str, - ): - self.css_x_gauge_ops = css_x_gauge_ops - self.css_x_stabilizer_ops = css_x_stabilizer_ops - self.css_x_boundary = css_x_boundary - self.css_z_gauge_ops = css_z_gauge_ops - self.css_z_stabilizer_ops = css_z_stabilizer_ops - self.css_z_boundary = css_z_boundary - self.blocks = blocks - self.round_schedule = round_schedule - self.basis = basis - - self.layer_types = self._layer_types(self.blocks, self.round_schedule, self.basis) - - self._decoding_graph() - - @staticmethod - def _layer_types(blocks: int, round_schedule: str, basis: str) -> List[str]: - """Return a list of decoding graph layer types. - - The entries are 'g' for gauge and 's' for stabilizer. + Returns: + edge_graph (rx.PyGraph): The edge graph. """ - layer_types = [] - last_step = basis - for _ in range(blocks): - for step in round_schedule: - if basis == "z" and step == "z" and last_step == "z": - layer_types.append("g") - elif basis == "z" and step == "z" and last_step == "x": - layer_types.append("s") - elif basis == "x" and step == "x" and last_step == "x": - layer_types.append("g") - elif basis == "x" and step == "x" and last_step == "z": - layer_types.append("s") - last_step = step - if last_step == basis: - layer_types.append("g") - else: - layer_types.append("s") - return layer_types - - def _decoding_graph(self): - """Construct the decoding graph for the given basis. - This method sets edge weights all to 1 and is based on - computing intersections of operator supports. + nodes = self.graph.nodes() + # get a list of boundary nodes + bns = [] + for n, node in enumerate(nodes): + if node.is_logical: + bns.append(n) + # find pairs of bulk edges that have overlap with a boundary + bedge = {} + # and their edges connecting to the boundary, that we'll discard + spares = set() + for edge, (n0, n1) in zip(self.graph.edges(), self.graph.edge_list()): + if not nodes[n0].is_logical and not nodes[n1].is_logical: + for n2 in bns: + adj = set(edge.qubits).intersection(set(nodes[n2].qubits)) + if adj: + if (n0, n1) not in bedge: + bedge[n0, n1] = {nodes[n2].index} + else: + bedge[n0, n1].add(nodes[n2].index) + for n in (n0, n1): + spares.add((n, n2)) + spares.add((n2, n)) + # find bulk-boundary pairs not covered by the above + for (n0, n1) in self.graph.edge_list(): + n2 = None + for n in (n0, n1): + if nodes[n].is_logical: + n2 = n + if n2 is not None: + if (n0, n1) not in spares: + adj = set(nodes[n2].qubits) + for n in (n0, n1): + adj = adj.intersection(set(nodes[n].qubits)) + if (n0, n1) not in bedge: + bedge[n0, n1] = {nodes[n2].index} + else: + bedge[n0, n1].add(nodes[n2].index) + # make a new graph with fault_ids on boundary edges, and ignoring the spare edges + edge_graph = rx.PyGraph(multigraph=False) + for node in nodes: + edge_graph.add_node(copy.copy(node)) + for edge, (n0, n1) in zip(self.graph.edges(), self.graph.edge_list()): + if (n0, n1) in bedge: + edge.fault_ids = bedge[n0, n1] + edge_graph.add_edge(n0, n1, edge) + elif (n0, n1) not in spares and (n1, n0) not in spares: + edge.fault_ids = set() + edge_graph.add_edge(n0, n1, edge) + # turn logical nodes into boundary nodes + for node in edge_graph.nodes(): + if node.is_logical: + node.is_boundary = True + node.is_logical = False + return edge_graph
    + + +
    +[docs] + def get_node_graph(self): + """ + Returns a copy of the graph that uses logical nodes to store information + about the effects of errors on logical operators. No non-trivial `'fault_ids'` + are present in such a graph. - Returns a tuple (idxmap, node_layers, G) - where idxmap is a dict - mapping tuples (t, qubit_set) to integer vertex indices in the - decoding graph G. The list node_layers contains lists of nodes - for each time step. + Returns: + node_graph (rx.PyGraph): The node graph. """ - graph = rx.PyGraph(multigraph=False) - gauges = [] - stabilizers = [] - boundary = [] - if self.basis == "z": - gauges = self.css_z_gauge_ops - stabilizers = self.css_z_stabilizer_ops - boundary = self.css_z_boundary - elif self.basis == "x": - gauges = self.css_x_gauge_ops - stabilizers = self.css_x_stabilizer_ops - boundary = self.css_x_boundary - - # Construct the decoding graph - idx = 0 # vertex index counter - idxmap = {} # map from vertex data (t, qubits) to vertex index - node_layers = [] - for time, layer in enumerate(self.layer_types): - # Add vertices at time t - node_layer = [] - if layer == "g": - all_z = gauges - elif layer == "s": - all_z = stabilizers - for index, supp in enumerate(all_z): - node = DecodingGraphNode(time=time, qubits=supp, index=index) - node.properties["highlighted"] = True - graph.add_node(node) - logging.debug("node %d t=%d %s", idx, time, supp) - idxmap[(time, tuple(supp))] = idx - node_layer.append(idx) - idx += 1 - for index, supp in enumerate(boundary): - # Add optional is_boundary property for pymatching - node = DecodingGraphNode(is_boundary=True, qubits=supp, index=index) - node.properties["highlighted"] = False - graph.add_node(node) - logging.debug("boundary %d t=%d %s", idx, time, supp) - idxmap[(time, tuple(supp))] = idx - node_layer.append(idx) - idx += 1 - node_layers.append(node_layer) - if layer == "g": - all_z = gauges + boundary - elif layer == "s": - all_z = stabilizers + boundary - # Add space-like edges at time t - # The qubit sets of any pair of vertices at time - # t can intersect on multiple qubits. - # If they intersect, we add an edge and label it by - # one of the common qubits. This makes an assumption - # that the intersection operator is equivalent to a single - # qubit operator modulo the gauge group. - # Space-like edges do not correspond to syndrome errors, so the - # syndrome property is an empty list. - for i, op_g in enumerate(all_z): - for j in range(i + 1, len(all_z)): - op_h = all_z[j] - com = list(set(op_g).intersection(set(op_h))) - if -1 in com: - com.remove(-1) - if len(com) > 0: - # Include properties for use with pymatching: - # qubit_id is an integer or set of integers - # weight is a floating point number - # error_probability is a floating point number - edge = DecodingGraphEdge(qubits=[com[0]], weight=1) - edge.properties["highlighted"] = False - edge.properties["measurement_error"] = 0 - graph.add_edge( - idxmap[(time, tuple(op_g))], idxmap[(time, tuple(op_h))], edge - ) - logging.debug("spacelike t=%d (%s, %s)", time, op_g, op_h) - logging.debug( - " qubits %s", - [com[0]], - ) + node_graph = self.graph.copy() + for edge, (n0, n1) in zip(self.graph.edges(), self.graph.edge_list()): + if edge.fault_ids: + # is the edge has fault ids, make corresponding logical nodes + # and connect them to these edges + for index in edge.fault_ids: + node2 = DecodingGraphNode(is_logical=True, index=index) + n2 = node_graph.add_node(node2) + node_graph.add_edge(n0, n2, copy.copy(edge)) + node_graph.add_edge(n1, n2, copy.copy(edge)) + for edge in self.graph.edges(): + edge.fault_ids = set() + return node_graph
    +
    - # Add boundary space-like edges - for i in range(len(boundary) - 1): - bound_g = boundary[i] - bound_h = boundary[i + 1] - # Include properties for use with pymatching: - # qubit_id is an integer or set of integers - # weight is a floating point number - # error_probability is a floating point number - edge = DecodingGraphEdge(qubits=[], weight=0) - edge.properties["highlighted"] = False - edge.properties["measurement_error"] = 0 - graph.add_edge(idxmap[(time, tuple(bound_g))], idxmap[(time, tuple(bound_h))], edge) - logging.debug("spacelike boundary t=%d (%s, %s)", time, bound_g, bound_h) - - # Add (space)time-like edges from t to t-1 - # By construction, the qubit sets of pairs of vertices at graph and T - # at times t-1 and t respectively - # either (a) contain each other (graph subset T or T subset graph) and - # |graph|,|T|>1, - # (b) intersect on one or more qubits, or (c) are disjoint. - # In case (a), we add an edge that corresponds to a syndrome bit - # error at time t-1. - # In case (b), we add an edge that corresponds to a spacetime hook - # error, i.e. a syndrome bit error at time t-1 - # together with an error on one of the common qubits. Again - # this makes an assumption that all such errors are equivalent. - # In case (c), we do not add an edge. - # Important: some space-like hooks are not accounted for. - # They can have longer paths between non-intersecting operators. - # We will account for these in _revise_decoding_graph if needed. - if time > 0: - current_sets = gauges - prior_sets = gauges - if self.layer_types[time] == "s": - current_sets = stabilizers - if self.layer_types[time - 1] == "s": - prior_sets = stabilizers - for op_g in current_sets: - for op_h in prior_sets: - com = list(set(op_g).intersection(set(op_h))) - if -1 in com: - com.remove(-1) - if len(com) > 0: # not Case (c) - # Include properties for use with pymatching: - # qubit_id is an integer or set of integers - # weight is a floating point number - # error_probability is a floating point number - # Case (a) - if set(com) == set(op_h) or set(com) == set(op_g): - edge = DecodingGraphEdge(qubits=[], weight=1) - edge.properties["highlighted"] = False - edge.properties["measurement_error"] = 1 - graph.add_edge( - idxmap[(time - 1, tuple(op_h))], - idxmap[(time, tuple(op_g))], - edge, - ) - logging.debug("timelike t=%d (%s, %s)", time, op_g, op_h) - else: # Case (b) - edge = DecodingGraphEdge(qubits=[com[0]], weight=1) - edge.properties["highlighted"] = False - edge.properties["measurement_error"] = 1 - graph.add_edge( - idxmap[(time - 1, tuple(op_h))], - idxmap[(time, tuple(op_g))], - edge, - ) - logging.debug("spacetime hook t=%d (%s, %s)", time, op_g, op_h) - logging.debug(" qubits %s", [com[0]]) - # Add a single time-like edge between boundary vertices at - # time t-1 and t - edge = DecodingGraphEdge(qubits=[], weight=0) - edge.properties["highlighted"] = False - edge.properties["measurement_error"] = 0 - graph.add_edge( - idxmap[(time - 1, tuple(boundary[0]))], idxmap[(time, tuple(boundary[0]))], edge - ) - logging.debug("boundarylink t=%d", time) - - self.idxmap = idxmap - self.node_layers = node_layers - self.graph = graph def make_syndrome_graph_from_aer(code, shots=1): """ - Generates a graph and list of hyperedges for a given code by inserting single qubit - Paulis into the base circuit for that code. Also supplied information regarding which + Generates a graph and list of hyperedges for a given code by inserting Pauli errors + around the gates of the base circuit for that code. Also supplied information regarding which edges where generated by which Pauli insertions. Args: @@ -1063,7 +924,7 @@

    Source code for qiskit_qec.decoders.decoding_graph

    for j in range(depth): gate = qc.data[j][0].name qubits = qc.data[j][1] - if gate not in ["measure", "reset", "barrier"]: + if gate not in ["measure", "reset", "barrier"] and len(qubits) != 2: for error in ["x", "y", "z"]: for qubit in qubits: temp_qc = copy.deepcopy(blank_qc) @@ -1075,6 +936,28 @@

    Source code for qiskit_qec.decoders.decoding_graph

    getattr(temp_qc, error)(qubit) temp_qc.data += qc.data[j : depth + 1] error_circuit[temp_qc_name] = temp_qc + elif len(qubits) == 2: + qregs = [] + for qubit in qubits: + for qreg in qc.qregs: + if qubit in qreg: + qregs.append(qreg) + break + for pauli_0 in ["id", "x", "y", "z"]: + for pauli_1 in ["id", "x", "y", "z"]: + if not pauli_0 == pauli_1 == "id": + temp_qc = copy.deepcopy(blank_qc) + temp_qc_name = ( + j, + (qc.qregs.index(qregs[0]), qc.qregs.index(qregs[1])), + (qregs[0].index(qubits[0]), qregs[1].index(qubits[1])), + pauli_0 + "," + pauli_1, + ) + temp_qc.data = qc.data[0:j] + getattr(temp_qc, pauli_0)(qubits[0]) + getattr(temp_qc, pauli_1)(qubits[1]) + temp_qc.data += qc.data[j : depth + 1] + error_circuit[temp_qc_name] = temp_qc elif gate == "measure": pre_error = "x" for post_error in ["id", "x"]: @@ -1116,7 +999,7 @@

    Source code for qiskit_qec.decoders.decoding_graph

    if target != source or (len(nodes) == 1): n0 = graph.nodes().index(source) n1 = graph.nodes().index(target) - if not (source.is_boundary and target.is_boundary): + if not (source.is_logical and target.is_logical): qubits = list(set(source.qubits).intersection(target.qubits)) if source.time != target.time and len(qubits) > 1: qubits = [] @@ -1155,7 +1038,7 @@

    Source code for qiskit_qec.decoders.decoding_graph

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/decoders/hdrg_decoders.html b/_modules/qiskit_qec/decoders/hdrg_decoders.html index 4c0d8f91..40b0de09 100644 --- a/_modules/qiskit_qec/decoders/hdrg_decoders.html +++ b/_modules/qiskit_qec/decoders/hdrg_decoders.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -354,9 +351,8 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    from rustworkx import PyGraph, connected_components, distance_matrix -from qiskit_qec.circuits.repetition_code import ArcCircuit from qiskit_qec.decoders.decoding_graph import DecodingGraph -from qiskit_qec.utils import DecodingGraphEdge, DecodingGraphNode +from qiskit_qec.utils import DecodingGraphEdge class ClusteringDecoder(ABC): @@ -371,8 +367,6 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    ): self.code = code_circuit - self.measured_logicals = self.code.measured_logicals() - if hasattr(self.code, "code_index"): self.code_index = self.code.code_index else: @@ -395,41 +389,36 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    Returns: corrected_logicals (list): A list of integers that are 0 or 1. These are the corrected values of the final transversal - measurement, corresponding to the logical operators of - self.measured_logicals. + measurement, in the same form as given by the code's `string2raw_logicals`. """ # get the list of bulk nodes for each cluster cluster_nodes = {c: [] for c in clusters.values()} for n, c in clusters.items(): node = self.decoding_graph.graph[n] - if not node.is_boundary: + if not node.is_logical: cluster_nodes[c].append(node) # get the list of required logicals for each cluster cluster_logicals = {} for c, nodes in cluster_nodes.items(): _, logical_nodes, _ = self.code.check_nodes(nodes, minimal=True) - z_logicals = [node.qubits[0] for node in logical_nodes] - cluster_logicals[c] = z_logicals + log_indexes = [node.index for node in logical_nodes] + cluster_logicals[c] = log_indexes # get the net effect on each logical - net_z_logicals = {z_logical[0]: 0 for z_logical in self.measured_logicals} - for c, z_logicals in cluster_logicals.items(): - for z_logical in self.measured_logicals: - if z_logical[0] in z_logicals: - net_z_logicals[z_logical[0]] += 1 - for z_logical, num in net_z_logicals.items(): - net_z_logicals[z_logical] = num % 2 + net_logicals = {node.index: 0 for node in self.decoding_graph.logical_nodes} + for c, log_indexes in cluster_logicals.items(): + for log_index in log_indexes: + net_logicals[log_index] += 1 + for log_index, num in net_logicals.items(): + net_logicals[log_index] = num % 2 - corrected_z_logicals = [] - string = string.split(" ")[0] - for z_logical in self.measured_logicals: - raw_logical = int(string[-1 - self.code_index[z_logical[0]]]) - corrected_logical = (raw_logical + net_z_logicals[z_logical[0]]) % 2 - corrected_z_logicals.append(corrected_logical) + corrected_logicals = self.code.string2raw_logicals(string) + for log_index, log_value in enumerate(corrected_logicals): + corrected_logicals[log_index] = (net_logicals[log_index] + int(log_value)) % 2 - return corrected_z_logicals + return corrected_logicals class BravyiHaahDecoder(ClusteringDecoder): @@ -474,7 +463,7 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    # check the neutrality of each connected component con_nodes = [cg[n] for n in con_comp] neutral, logicals, num_errors = self.code.check_nodes( - con_nodes, ignore_extra_boundary=True + con_nodes, ignore_extra_logical=True ) # it's fully neutral if no extra logicals are needed @@ -494,15 +483,6 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    return clusters, con_comp_dict - def _get_boundary_nodes(self): - boundary_nodes = [] - for element, z_logical in enumerate(self.measured_logicals): - node = DecodingGraphNode(is_boundary=True, qubits=z_logical, index=element) - if isinstance(self.code, ArcCircuit): - node.properties["link qubit"] = None - boundary_nodes.append(node) - return boundary_nodes - def cluster(self, nodes): """ @@ -514,10 +494,10 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    value. """ - # get indices for nodes and boundary nodes + # get indices for nodes and logical nodes dg = self.decoding_graph.graph - ns = set(self.decoding_graph.node_index(node) for node in nodes) - bns = set(self.decoding_graph.node_index(node) for node in self._get_boundary_nodes()) + ns = set(dg.nodes().index(node) for node in nodes) + lns = set(dg.nodes().index(node) for node in self.decoding_graph.logical_nodes) dist_max = 0 final_clusters = {} @@ -525,8 +505,8 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    clusterss = [] while ns and dist_max <= self.code.d: dist_max += 1 - # add boundary nodes to unpaired nodes - ns = set(ns).union(bns) + # add logical nodes to unpaired nodes + ns = set(ns).union(lns) # cluster nodes and contract decoding graph given the current distance clusters, con_comp = self._cluster(ns, dist_max) @@ -536,7 +516,7 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    if c is not None: final_clusters[n] = c else: - if not dg[n].is_boundary: + if not dg[n].is_logical: ns.append(n) con_comps.append(con_comp) clusterss.append(clusters) @@ -556,8 +536,7 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    Returns: corrected_logicals (list): A list of integers that are 0 or 1. These are the corrected values of the final transversal - measurement, corresponding to the logical operators of - self.measured_logicals. + measurement, in the same form as given by the code's `string2raw_logicals`. """ # turn string into nodes and cluster @@ -635,8 +614,8 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    """ Decoder based on growing clusters around syndrome errors to "convert" them into erasure errors, which can be corrected easily, - by the peeling decoder in case of the surface code, or by checking for - interference with the boundary in case of an abritrary ARC. + by the peeling decoder for compatible codes or by the standard HDRG + method in general. TODO: Add weights to edges of graph according to Huang et al (see. arXiv:2004.04693, section III) @@ -663,10 +642,8 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    a list of nodes. Used to do preprocessing on the nodes corresponding to the input string. Returns: - corrected_z_logicals (list): A list of integers that are 0 or 1. - These are the corrected values of the final transversal - measurement, corresponding to the logical operators of - self.z_logicals. + corrected_logicals (list): A list of integers that are 0 or 1. + These are the corrected values of the final logical measurement. """ if self.use_peeling: @@ -680,7 +657,10 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    clusters = self._clusters4peeling # determine the net logical z - net_z_logicals = {tuple(z_logical): 0 for z_logical in self.measured_logicals} + measured_logicals = {} + for node in self.decoding_graph.logical_nodes: + measured_logicals[node.index] = node.qubits + net_z_logicals = {tuple(z_logical): 0 for z_logical in measured_logicals.values()} for cluster_nodes, _ in clusters: erasure = self.graph.subgraph(cluster_nodes) flipped_qubits = self.peeling(erasure) @@ -694,7 +674,7 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    # apply this to the raw readout corrected_z_logicals = [] raw_logicals = self.code.string2raw_logicals(string) - for j, z_logical in enumerate(self.measured_logicals): + for j, z_logical in measured_logicals.items(): raw_logical = int(raw_logicals[j]) corrected_logical = (raw_logical + net_z_logicals[tuple(z_logical)]) % 2 corrected_z_logicals.append(corrected_logical) @@ -737,8 +717,10 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    for node_index in node_indices: self._create_new_cluster(node_index) - while self.odd_cluster_roots: + j = 0 + while self.odd_cluster_roots and j < 2 * self.code.d * (self.code.T + 1): self._grow_and_merge_clusters() + j += 1 # compile info into standard clusters dict clusters = {} @@ -783,7 +765,7 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    def _create_new_cluster(self, node_index): node = self.graph[node_index] - if not node.is_boundary: + if not node.is_logical: self.odd_cluster_roots.insert(0, node_index) boundary_edges = [] for edge_index, neighbour, data in self.neighbouring_edges(node_index): @@ -791,8 +773,8 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    self.clusters[node_index] = UnionFindDecoderCluster( boundary=boundary_edges, fully_grown_edges=set(), - atypical_nodes=set([node_index]) if not node.is_boundary else set([]), - boundary_nodes=set([node_index]) if node.is_boundary else set([]), + atypical_nodes=set([node_index]) if not node.is_logical else set([]), + boundary_nodes=set([node_index]) if node.is_logical else set([]), nodes=set([node_index]), size=1, ) @@ -835,7 +817,7 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    fully_grown_edges=set(), atypical_nodes=set(), boundary_nodes=set([edge.neighbour_vertex]) - if self.graph[edge.neighbour_vertex].is_boundary + if self.graph[edge.neighbour_vertex].is_logical else set([]), nodes=set([edge.neighbour_vertex]), size=1, @@ -921,8 +903,6 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    going backwards through the edges of the tree computing the error based on the syndrome. Based on arXiv:1703.01517. - TODO: Extract to a separate decoder. - Args: erasure (PyGraph): subgraph of the syndrome graph that represents the erasure. @@ -934,7 +914,7 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    # Construct spanning forest # Pick starting vertex for vertex in erasure.node_indices(): - if erasure[vertex].is_boundary and erasure[vertex].properties["syndrome"]: + if erasure[vertex].is_logical and erasure[vertex].properties["syndrome"]: tree.vertices[vertex] = [] break @@ -1018,7 +998,7 @@

    Source code for qiskit_qec.decoders.hdrg_decoders

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/decoders/repetition_decoder.html b/_modules/qiskit_qec/decoders/repetition_decoder.html deleted file mode 100644 index 2e9ac8f1..00000000 --- a/_modules/qiskit_qec/decoders/repetition_decoder.html +++ /dev/null @@ -1,429 +0,0 @@ - - - - - - - - qiskit_qec.decoders.repetition_decoder - Qiskit QEC 0.0.0 - - - - - - - - - - - - - - - - - - - - - Contents - - - - - - - - Menu - - - - - - - - - - - Expand - - - - - - - - - - - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark mode - - - - - - - - - - - - - - - - - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for qiskit_qec.decoders.repetition_decoder

    -"""Matching Decoder for Repetition Codes."""
    -from typing import Tuple, List
    -
    -from qiskit_qec.decoders.circuit_matching_decoder import CircuitModelMatchingDecoder
    -from qiskit_qec.noise.paulinoisemodel import PauliNoiseModel
    -from qiskit_qec.decoders.decoding_graph import DecodingGraph
    -
    -
    -
    -[docs] -class RepetitionDecoder(CircuitModelMatchingDecoder): - """Instance of CircuitModelMatchingDecoder for use with - circuits from RepetitionCodeCircuit. - - Args: - code_circuit: The QEC code circuit object for which this decoder - will be used. - model: Noise model used to generate syndrome graph. - uniform: Whether to use uniform weights for the syndrome graph. - logical: Logical value for the circuit to be used. - """ - - def __init__( - self, - code_circuit, - model: PauliNoiseModel, - method: str, - uniform: bool, - logical: str, - ): - """Constructor.""" - self.code_circuit = code_circuit - dg = DecodingGraph(code_circuit) - super().__init__( - code_circuit.n, - code_circuit.css_x_gauge_ops, - code_circuit.css_x_stabilizer_ops, - code_circuit.css_x_boundary, - code_circuit.css_z_gauge_ops, - code_circuit.css_z_stabilizer_ops, - code_circuit.css_z_boundary, - code_circuit.circuit[logical], - model, - code_circuit.basis, - code_circuit.round_schedule, - code_circuit.blocks, - method, - uniform, - dg, - ) - - def _partition_outcomes( - self, blocks: int, round_schedule: str, outcome: List[int] - ) -> Tuple[List[List[int]], List[List[int]], List[int]]: - """Extract measurement outcomes.""" - return self.code_circuit.partition_outcomes(round_schedule, outcome)
    - -
    -
    -
    -
    - -
    -
    - - Made with Sphinx and @pradyunsg's - - Furo -
    - Last updated on 2024/02/16
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - - - - \ No newline at end of file diff --git a/_modules/qiskit_qec/decoders/three_bit_decoder.html b/_modules/qiskit_qec/decoders/three_bit_decoder.html deleted file mode 100644 index f1162d61..00000000 --- a/_modules/qiskit_qec/decoders/three_bit_decoder.html +++ /dev/null @@ -1,433 +0,0 @@ - - - - - - - - qiskit_qec.decoders.three_bit_decoder - Qiskit QEC 0.0.0 - - - - - - - - - - - - - - - - - - - - - Contents - - - - - - - - Menu - - - - - - - - - - - Expand - - - - - - - - - - - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark mode - - - - - - - - - - - - - - - - - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for qiskit_qec.decoders.three_bit_decoder

    -"""Three bit decoder."""
    -from typing import Tuple, List
    -
    -from qiskit import QuantumCircuit
    -
    -from qiskit_qec.decoders.circuit_matching_decoder import CircuitModelMatchingDecoder
    -from qiskit_qec.noise.paulinoisemodel import PauliNoiseModel
    -
    -
    -
    -[docs] -class ThreeBitDecoder(CircuitModelMatchingDecoder): - """Simple 3-bit code matching decoder.""" - - def __init__( - self, - n: int, - css_x_gauge_ops: List[Tuple[int]], - css_x_stabilizer_ops: List[Tuple[int]], - css_x_boundary: List[Tuple[int]], - css_z_gauge_ops: List[Tuple[int]], - css_z_stabilizer_ops: List[Tuple[int]], - css_z_boundary: List[Tuple[int]], - circuit: QuantumCircuit, - model: PauliNoiseModel, - basis: str, - round_schedule: str, - blocks: int, - method: str, - uniform: bool, - ): - """Constructor.""" - self.bits_per_round = 2 - super().__init__( - n, - css_x_gauge_ops, - css_x_stabilizer_ops, - css_x_boundary, - css_z_gauge_ops, - css_z_stabilizer_ops, - css_z_boundary, - circuit, - model, - basis, - round_schedule, - blocks, - method, - uniform, - ) - - def _partition_outcomes( - self, blocks: int, round_schedule: str, outcome: List[int] - ) -> Tuple[List[List[int]], List[List[int]], List[int]]: - """Extract measurement outcomes.""" - assert blocks == 2 - assert round_schedule == "z" - x_gauge_outcomes = [] - z_gauge_outcomes = [outcome[0:2], outcome[2:4]] - final_outcomes = outcome[4:7] - return x_gauge_outcomes, z_gauge_outcomes, final_outcomes
    - -
    -
    -
    -
    - -
    -
    - - Made with Sphinx and @pradyunsg's - - Furo -
    - Last updated on 2024/02/16
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - - - - \ No newline at end of file diff --git a/_modules/qiskit_qec/geometry/bounds.html b/_modules/qiskit_qec/geometry/bounds.html index 50802e69..a806ddc8 100644 --- a/_modules/qiskit_qec/geometry/bounds.html +++ b/_modules/qiskit_qec/geometry/bounds.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -580,7 +577,7 @@

    Source code for qiskit_qec.geometry.bounds

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/lattice.html b/_modules/qiskit_qec/geometry/lattice.html index f5638262..bfa42062 100644 --- a/_modules/qiskit_qec/geometry/lattice.html +++ b/_modules/qiskit_qec/geometry/lattice.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -643,7 +640,7 @@

    Source code for qiskit_qec.geometry.lattice

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/manifold.html b/_modules/qiskit_qec/geometry/manifold.html index 32dab6e2..272715a3 100644 --- a/_modules/qiskit_qec/geometry/manifold.html +++ b/_modules/qiskit_qec/geometry/manifold.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -374,7 +371,7 @@

    Source code for qiskit_qec.geometry.manifold

    Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/model/edge.html b/_modules/qiskit_qec/geometry/model/edge.html index a517cf40..698b8b18 100644 --- a/_modules/qiskit_qec/geometry/model/edge.html +++ b/_modules/qiskit_qec/geometry/model/edge.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -405,7 +402,7 @@

    Source code for qiskit_qec.geometry.model.edge

    Furo

    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/model/face.html b/_modules/qiskit_qec/geometry/model/face.html index 80b6306b..7d8db13b 100644 --- a/_modules/qiskit_qec/geometry/model/face.html +++ b/_modules/qiskit_qec/geometry/model/face.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -384,7 +381,7 @@

    Source code for qiskit_qec.geometry.model.face

    Furo

    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/model/qubit_count.html b/_modules/qiskit_qec/geometry/model/qubit_count.html index 8beb0338..48a21b89 100644 --- a/_modules/qiskit_qec/geometry/model/qubit_count.html +++ b/_modules/qiskit_qec/geometry/model/qubit_count.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -408,7 +405,7 @@

    Source code for qiskit_qec.geometry.model.qubit_count

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/model/qubit_data.html b/_modules/qiskit_qec/geometry/model/qubit_data.html index 2a20e72e..1b024e40 100644 --- a/_modules/qiskit_qec/geometry/model/qubit_data.html +++ b/_modules/qiskit_qec/geometry/model/qubit_data.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -416,7 +413,7 @@

    Source code for qiskit_qec.geometry.model.qubit_data

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/model/shape_object.html b/_modules/qiskit_qec/geometry/model/shape_object.html index 721a9ca5..272988ee 100644 --- a/_modules/qiskit_qec/geometry/model/shape_object.html +++ b/_modules/qiskit_qec/geometry/model/shape_object.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -401,7 +398,7 @@

    Source code for qiskit_qec.geometry.model.shape_object

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/model/shell.html b/_modules/qiskit_qec/geometry/model/shell.html index bf8cdb79..c33289b9 100644 --- a/_modules/qiskit_qec/geometry/model/shell.html +++ b/_modules/qiskit_qec/geometry/model/shell.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -921,7 +918,7 @@

    Source code for qiskit_qec.geometry.model.shell

    < Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/model/vertex.html b/_modules/qiskit_qec/geometry/model/vertex.html index b68f260b..5b3aef81 100644 --- a/_modules/qiskit_qec/geometry/model/vertex.html +++ b/_modules/qiskit_qec/geometry/model/vertex.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -412,7 +409,7 @@

    Source code for qiskit_qec.geometry.model.vertex

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/model/wireframe.html b/_modules/qiskit_qec/geometry/model/wireframe.html index f1a24379..c8d44bcb 100644 --- a/_modules/qiskit_qec/geometry/model/wireframe.html +++ b/_modules/qiskit_qec/geometry/model/wireframe.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -390,7 +387,7 @@

    Source code for qiskit_qec.geometry.model.wireframe

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/plane.html b/_modules/qiskit_qec/geometry/plane.html index 806f02e5..0a133d4d 100644 --- a/_modules/qiskit_qec/geometry/plane.html +++ b/_modules/qiskit_qec/geometry/plane.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -401,7 +398,7 @@

    Source code for qiskit_qec.geometry.plane

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/shape.html b/_modules/qiskit_qec/geometry/shape.html index 42660fde..062543ac 100644 --- a/_modules/qiskit_qec/geometry/shape.html +++ b/_modules/qiskit_qec/geometry/shape.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -870,7 +867,7 @@

    Source code for qiskit_qec.geometry.shape

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/tiles/checkerboardtile.html b/_modules/qiskit_qec/geometry/tiles/checkerboardtile.html index 132836a8..4e0b8b3b 100644 --- a/_modules/qiskit_qec/geometry/tiles/checkerboardtile.html +++ b/_modules/qiskit_qec/geometry/tiles/checkerboardtile.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -560,7 +557,7 @@

    Source code for qiskit_qec.geometry.tiles.checkerboardtile

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/tiles/diagonalbartile.html b/_modules/qiskit_qec/geometry/tiles/diagonalbartile.html index dad489e3..331852e5 100644 --- a/_modules/qiskit_qec/geometry/tiles/diagonalbartile.html +++ b/_modules/qiskit_qec/geometry/tiles/diagonalbartile.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -545,7 +542,7 @@

    Source code for qiskit_qec.geometry.tiles.diagonalbartile

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/tiles/diagonalhourglasstile.html b/_modules/qiskit_qec/geometry/tiles/diagonalhourglasstile.html index cefa2237..e5fddd2b 100644 --- a/_modules/qiskit_qec/geometry/tiles/diagonalhourglasstile.html +++ b/_modules/qiskit_qec/geometry/tiles/diagonalhourglasstile.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -563,7 +560,7 @@

    Source code for qiskit_qec.geometry.tiles.diagonalhourglasstile

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/tiles/hexagontile.html b/_modules/qiskit_qec/geometry/tiles/hexagontile.html index 77dbec06..104514ef 100644 --- a/_modules/qiskit_qec/geometry/tiles/hexagontile.html +++ b/_modules/qiskit_qec/geometry/tiles/hexagontile.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -743,7 +740,7 @@

    Source code for qiskit_qec.geometry.tiles.hexagontile

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/tiles/octasquaretile.html b/_modules/qiskit_qec/geometry/tiles/octasquaretile.html index 7c00edd6..940ff4d8 100644 --- a/_modules/qiskit_qec/geometry/tiles/octasquaretile.html +++ b/_modules/qiskit_qec/geometry/tiles/octasquaretile.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -587,7 +584,7 @@

    Source code for qiskit_qec.geometry.tiles.octasquaretile

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/tiles/squarediamondtile.html b/_modules/qiskit_qec/geometry/tiles/squarediamondtile.html index d8e6937e..d27292ae 100644 --- a/_modules/qiskit_qec/geometry/tiles/squarediamondtile.html +++ b/_modules/qiskit_qec/geometry/tiles/squarediamondtile.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -541,7 +538,7 @@

    Source code for qiskit_qec.geometry.tiles.squarediamondtile

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/tiles/tile.html b/_modules/qiskit_qec/geometry/tiles/tile.html index 1635df84..9cf470c7 100644 --- a/_modules/qiskit_qec/geometry/tiles/tile.html +++ b/_modules/qiskit_qec/geometry/tiles/tile.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -384,7 +381,7 @@

    Source code for qiskit_qec.geometry.tiles.tile

    Furo

    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/tiles/tilefactory.html b/_modules/qiskit_qec/geometry/tiles/tilefactory.html index d0c1e043..f7be22b0 100644 --- a/_modules/qiskit_qec/geometry/tiles/tilefactory.html +++ b/_modules/qiskit_qec/geometry/tiles/tilefactory.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -478,7 +475,7 @@

    Source code for qiskit_qec.geometry.tiles.tilefactory

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/tiles/tiling.html b/_modules/qiskit_qec/geometry/tiles/tiling.html index 4be42196..7c78ef89 100644 --- a/_modules/qiskit_qec/geometry/tiles/tiling.html +++ b/_modules/qiskit_qec/geometry/tiles/tiling.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -438,7 +435,7 @@

    Source code for qiskit_qec.geometry.tiles.tiling

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/geometry/two_manifold.html b/_modules/qiskit_qec/geometry/two_manifold.html index db5f6890..00c0f0a0 100644 --- a/_modules/qiskit_qec/geometry/two_manifold.html +++ b/_modules/qiskit_qec/geometry/two_manifold.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -373,7 +370,7 @@

    Source code for qiskit_qec.geometry.two_manifold

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/info/properties.html b/_modules/qiskit_qec/info/properties.html index abc53ce6..7fed19d2 100644 --- a/_modules/qiskit_qec/info/properties.html +++ b/_modules/qiskit_qec/info/properties.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -460,7 +457,7 @@

    Source code for qiskit_qec.info.properties

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/linear/matrix.html b/_modules/qiskit_qec/linear/matrix.html index 44c755dc..e70a59be 100644 --- a/_modules/qiskit_qec/linear/matrix.html +++ b/_modules/qiskit_qec/linear/matrix.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -856,7 +853,7 @@

    Source code for qiskit_qec.linear.matrix

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/linear/symplectic.html b/_modules/qiskit_qec/linear/symplectic.html index 8658b3a5..1c2071b9 100644 --- a/_modules/qiskit_qec/linear/symplectic.html +++ b/_modules/qiskit_qec/linear/symplectic.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -2565,7 +2562,7 @@

    Source code for qiskit_qec.linear.symplectic

    Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/operators/base_pauli.html b/_modules/qiskit_qec/operators/base_pauli.html index e6997bf2..b3e26f6a 100644 --- a/_modules/qiskit_qec/operators/base_pauli.html +++ b/_modules/qiskit_qec/operators/base_pauli.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -1423,7 +1420,7 @@

    Source code for qiskit_qec.operators.base_pauli

    < Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/operators/pauli.html b/_modules/qiskit_qec/operators/pauli.html index 52dd09d8..5ba11e55 100644 --- a/_modules/qiskit_qec/operators/pauli.html +++ b/_modules/qiskit_qec/operators/pauli.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -1505,7 +1502,7 @@

    Source code for qiskit_qec.operators.pauli

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/operators/pauli_list.html b/_modules/qiskit_qec/operators/pauli_list.html index 45fb30ed..f5b3aae8 100644 --- a/_modules/qiskit_qec/operators/pauli_list.html +++ b/_modules/qiskit_qec/operators/pauli_list.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -1552,7 +1549,7 @@

    Source code for qiskit_qec.operators.pauli_list

    < Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/structures/gauge.html b/_modules/qiskit_qec/structures/gauge.html index aafc1544..6f2aab46 100644 --- a/_modules/qiskit_qec/structures/gauge.html +++ b/_modules/qiskit_qec/structures/gauge.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -466,7 +463,7 @@

    Source code for qiskit_qec.structures.gauge

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/structures/group.html b/_modules/qiskit_qec/structures/group.html index cbe39292..be3bc607 100644 --- a/_modules/qiskit_qec/structures/group.html +++ b/_modules/qiskit_qec/structures/group.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -369,7 +366,7 @@

    Source code for qiskit_qec.structures.group

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/utils/decoding_graph_attributes.html b/_modules/qiskit_qec/utils/decoding_graph_attributes.html index b433054f..fbf8ec26 100644 --- a/_modules/qiskit_qec/utils/decoding_graph_attributes.html +++ b/_modules/qiskit_qec/utils/decoding_graph_attributes.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -349,7 +346,7 @@

    Source code for qiskit_qec.utils.decoding_graph_attributes

    Graph used as the basis of decoders. """ from dataclasses import dataclass, field -from typing import Any, Dict, List, Optional +from typing import Union, Any, Dict, List, Set, Optional from qiskit_qec.exceptions import QiskitQECError @@ -362,6 +359,7 @@

    Source code for qiskit_qec.utils.decoding_graph_attributes

    Attributes: - is_boundary (bool): whether or not the node is a boundary node. + - is_logical (bool): whether or not the node is a logical node. - time (int): what syndrome node the node corrsponds to. Doesn't need to be set if it's a boundary node. - qubits (List[int]): List of indices which are stabilized by @@ -371,14 +369,22 @@

    Source code for qiskit_qec.utils.decoding_graph_attributes

    Are not considered when comparing nodes. """ - def __init__(self, index: int, qubits: List[int] = None, is_boundary=False, time=None) -> None: - if not is_boundary and time is None: + def __init__( + self, + index: int, + qubits: List[int] = None, + is_boundary=False, + is_logical=False, + time=None, + ) -> None: + if not is_boundary and not is_logical and time is None: raise QiskitQECError( - "DecodingGraph node must either have a time or be a boundary node." + "DecodingGraph node must either have a time or be a boundary or logical node." ) self.is_boundary: bool = is_boundary - self.time: Optional[int] = time if not is_boundary else None + self.is_logical: bool = is_logical + self.time: Optional[int] = None if (is_boundary or is_logical) else time self.qubits: List[int] = qubits if qubits else [] self.index: int = index self.properties: Dict[str, Any] = {} @@ -389,16 +395,23 @@

    Source code for qiskit_qec.utils.decoding_graph_attributes

    elif key in self.properties: return self.properties[key] else: - raise QiskitQECError( + return QiskitQECError( "'" + str(key) + "'" + " is not an an attribute or property of the node." )
    [docs] - def get(self, key, _): - """A dummy docstring.""" + def get(self, key, default=None): + """Return value for given key.""" # pylint: disable=unnecessary-dunder-call - return self.__getitem__(key)
    + output = self.__getitem__(key) + if isinstance(output, QiskitQECError): + if default: + return default + else: + raise output + else: + return output
    def __setitem__(self, key, value): @@ -415,8 +428,9 @@

    Source code for qiskit_qec.utils.decoding_graph_attributes

    self.index == rhs.index and set(self.qubits) == set(rhs.qubits) and self.is_boundary == rhs.is_boundary + and self.is_logical == rhs.is_logical ) - if not self.is_boundary: + if not (self.is_boundary or self.is_logical): result = result and self.time == rhs.time return result @@ -442,12 +456,14 @@

    Source code for qiskit_qec.utils.decoding_graph_attributes

    Attributes: - qubits (List[int]): List of indices of code qubits that correspond to this edge. - weight (float): Weight of the edge. + - fault_ids fault_ids: Union[Set[int],List[int]]: In the style of pymatching. - properties (Dict[str, Any]): Decoder/code specific attributes. Are not considered when comparing edges. """ qubits: List[int] weight: float + fault_ids: Union[Set[int], List[int]] = field(default_factory=set) properties: Dict[str, Any] = field(default_factory=dict) def __getitem__(self, key): @@ -456,16 +472,23 @@

    Source code for qiskit_qec.utils.decoding_graph_attributes

    elif key in self.properties: return self.properties[key] else: - raise QiskitQECError( + return QiskitQECError( "'" + str(key) + "'" + " is not an an attribute or property of the edge." )
    [docs] - def get(self, key, _): - """A dummy docstring.""" + def get(self, key, default=None): + """Return value for given key.""" # pylint: disable=unnecessary-dunder-call - return self.__getitem__(key)
    + value = self.__getitem__(key) + if isinstance(value, QiskitQECError): + if default is not None: + return default + else: + raise value + else: + return value
    def __setitem__(self, key, value): @@ -490,6 +513,26 @@

    Source code for qiskit_qec.utils.decoding_graph_attributes

    def __repr__(self): return str(dict(self))
    + + +def _nodes2cpp(nodes): + """ + Convert a list of nodes to the form required by C++ functions. + """ + # nodes are a tuple with (q0, q1,t, boundary) + # if there is no q1 or t, -1 is used + cnodes = [] + for node in nodes: + cnode = [] + cnode += node.qubits + cnode += [-1] * (2 - len(node.qubits)) + if node.time is None: + cnode.append(-1) + else: + cnode.append(node.time) + cnode.append(node.is_logical) + cnodes.append(tuple(cnode)) + return cnodes
    @@ -507,7 +550,7 @@

    Source code for qiskit_qec.utils.decoding_graph_attributes

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_modules/qiskit_qec/utils/stim_tools.html b/_modules/qiskit_qec/utils/stim_tools.html index 464125a2..be2d3d18 100644 --- a/_modules/qiskit_qec/utils/stim_tools.html +++ b/_modules/qiskit_qec/utils/stim_tools.html @@ -215,9 +215,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -726,8 +723,8 @@

    Source code for qiskit_qec.utils.stim_tools

             if g.has_edge(dets[0], dets[1]):
                 edge_ind = list(g.edge_list()).index((dets[0], dets[1]))
                 edge_data = g.edges()[edge_ind].properties
    +            old_frame_changes = g.edges()[edge_ind].fault_ids
                 old_p = edge_data["error_probability"]
    -            old_frame_changes = edge_data["fault_ids"]
                 # If frame changes differ, the code has distance 2; just keep whichever was first.
                 if set(old_frame_changes) == set(frame_changes):
                     p = p * (1 - old_p) + old_p * (1 - p)
    @@ -743,7 +740,8 @@ 

    Source code for qiskit_qec.utils.stim_tools

                 edge = DecodingGraphEdge(
                     qubits=qubits,
                     weight=loga((1 - p) / p),
    -                properties={"fault_ids": set(frame_changes), "error_probability": p},
    +                fault_ids=set(frame_changes),
    +                properties={"error_probability": p},
                 )
                 g.add_edge(dets[0], dets[1], edge)
                 hyperedge[dets[0], dets[1]] = edge
    @@ -869,10 +867,14 @@ 

    Source code for qiskit_qec.utils.stim_tools

     
             if all_logicals or str(logical_out) != logical:
                 node = DecodingGraphNode(
    +                is_logical=True,
                     is_boundary=True,
    -                qubits=[],
                     index=index,
                 )
    +            if "qubits" in logical_op:
    +                node.qubits = logical_op["qubits"]
    +            else:
    +                node.qubits = []
                 nodes.append(node)
     
         return nodes
    @@ -984,7 +986,7 @@ 

    Source code for qiskit_qec.utils.stim_tools

                 
                 Furo
                 
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/_sources/stubs/qiskit_qec.circuits.ArcCircuit.rst.txt b/_sources/stubs/qiskit_qec.circuits.ArcCircuit.rst.txt index 55b6999b..a7146bb1 100644 --- a/_sources/stubs/qiskit_qec.circuits.ArcCircuit.rst.txt +++ b/_sources/stubs/qiskit_qec.circuits.ArcCircuit.rst.txt @@ -17,7 +17,6 @@ .. automethod:: ArcCircuit.flatten_nodes .. automethod:: ArcCircuit.get_error_coords .. automethod:: ArcCircuit.is_cluster_neutral - .. automethod:: ArcCircuit.measured_logicals .. automethod:: ArcCircuit.string2nodes .. automethod:: ArcCircuit.string2raw_logicals .. automethod:: ArcCircuit.transpile diff --git a/_sources/stubs/qiskit_qec.circuits.CSSCodeCircuit.rst.txt b/_sources/stubs/qiskit_qec.circuits.CSSCodeCircuit.rst.txt index 8a700ee1..32320aaf 100644 --- a/_sources/stubs/qiskit_qec.circuits.CSSCodeCircuit.rst.txt +++ b/_sources/stubs/qiskit_qec.circuits.CSSCodeCircuit.rst.txt @@ -14,7 +14,6 @@ .. automethod:: CSSCodeCircuit.check_nodes .. automethod:: CSSCodeCircuit.is_cluster_neutral - .. automethod:: CSSCodeCircuit.measured_logicals .. automethod:: CSSCodeCircuit.stim_detectors .. automethod:: CSSCodeCircuit.string2nodes .. automethod:: CSSCodeCircuit.string2raw_logicals diff --git a/_sources/stubs/qiskit_qec.circuits.CodeCircuit.rst.txt b/_sources/stubs/qiskit_qec.circuits.CodeCircuit.rst.txt index 115dbc2f..a434ada3 100644 --- a/_sources/stubs/qiskit_qec.circuits.CodeCircuit.rst.txt +++ b/_sources/stubs/qiskit_qec.circuits.CodeCircuit.rst.txt @@ -14,7 +14,6 @@ .. automethod:: CodeCircuit.check_nodes .. automethod:: CodeCircuit.is_cluster_neutral - .. automethod:: CodeCircuit.measured_logicals .. automethod:: CodeCircuit.string2nodes diff --git a/_sources/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.rst.txt b/_sources/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.rst.txt index 7eb4271f..1835dce6 100644 --- a/_sources/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.rst.txt +++ b/_sources/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.rst.txt @@ -15,7 +15,6 @@ .. automethod:: RepetitionCodeCircuit.check_nodes .. automethod:: RepetitionCodeCircuit.get_circuit_list .. automethod:: RepetitionCodeCircuit.is_cluster_neutral - .. automethod:: RepetitionCodeCircuit.measured_logicals .. automethod:: RepetitionCodeCircuit.partition_outcomes .. automethod:: RepetitionCodeCircuit.readout .. automethod:: RepetitionCodeCircuit.string2nodes diff --git a/_sources/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.rst.txt b/_sources/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.rst.txt index f8414a20..4eb3a6c9 100644 --- a/_sources/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.rst.txt +++ b/_sources/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.rst.txt @@ -15,7 +15,6 @@ .. automethod:: SurfaceCodeCircuit.check_nodes .. automethod:: SurfaceCodeCircuit.get_circuit_list .. automethod:: SurfaceCodeCircuit.is_cluster_neutral - .. automethod:: SurfaceCodeCircuit.measured_logicals .. automethod:: SurfaceCodeCircuit.readout .. automethod:: SurfaceCodeCircuit.string2nodes .. automethod:: SurfaceCodeCircuit.string2raw_logicals diff --git a/_sources/stubs/qiskit_qec.decoders.CircuitModelMatchingDecoder.rst.txt b/_sources/stubs/qiskit_qec.decoders.CircuitModelMatchingDecoder.rst.txt deleted file mode 100644 index bb4a149d..00000000 --- a/_sources/stubs/qiskit_qec.decoders.CircuitModelMatchingDecoder.rst.txt +++ /dev/null @@ -1,24 +0,0 @@ -CircuitModelMatchingDecoder -=========================== - -.. currentmodule:: qiskit_qec.decoders - -.. autoclass:: CircuitModelMatchingDecoder - :no-members: - :show-inheritance: - :no-inherited-members: - :no-special-members: - - .. rubric:: Methods - - - .. automethod:: CircuitModelMatchingDecoder.process - .. automethod:: CircuitModelMatchingDecoder.update_edge_weights - - - - .. rubric:: Attributes - - .. autoattribute:: AVAILABLE_METHODS - .. autoattribute:: METHOD_PYMATCHING - .. autoattribute:: METHOD_RETWORKX diff --git a/_sources/stubs/qiskit_qec.decoders.DecodingGraph.rst.txt b/_sources/stubs/qiskit_qec.decoders.DecodingGraph.rst.txt index 922f5be0..b2f16440 100644 --- a/_sources/stubs/qiskit_qec.decoders.DecodingGraph.rst.txt +++ b/_sources/stubs/qiskit_qec.decoders.DecodingGraph.rst.txt @@ -14,7 +14,9 @@ .. automethod:: DecodingGraph.clean_measurements .. automethod:: DecodingGraph.edge_in_graph + .. automethod:: DecodingGraph.get_edge_graph .. automethod:: DecodingGraph.get_error_probs + .. automethod:: DecodingGraph.get_node_graph .. automethod:: DecodingGraph.make_error_graph .. automethod:: DecodingGraph.node_index .. automethod:: DecodingGraph.update_attributes diff --git a/_sources/stubs/qiskit_qec.decoders.RepetitionDecoder.rst.txt b/_sources/stubs/qiskit_qec.decoders.RepetitionDecoder.rst.txt deleted file mode 100644 index 0da080cd..00000000 --- a/_sources/stubs/qiskit_qec.decoders.RepetitionDecoder.rst.txt +++ /dev/null @@ -1,24 +0,0 @@ -RepetitionDecoder -================= - -.. currentmodule:: qiskit_qec.decoders - -.. autoclass:: RepetitionDecoder - :no-members: - :show-inheritance: - :no-inherited-members: - :no-special-members: - - .. rubric:: Methods - - - .. automethod:: RepetitionDecoder.process - .. automethod:: RepetitionDecoder.update_edge_weights - - - - .. rubric:: Attributes - - .. autoattribute:: AVAILABLE_METHODS - .. autoattribute:: METHOD_PYMATCHING - .. autoattribute:: METHOD_RETWORKX diff --git a/_sources/stubs/qiskit_qec.decoders.ThreeBitDecoder.rst.txt b/_sources/stubs/qiskit_qec.decoders.ThreeBitDecoder.rst.txt deleted file mode 100644 index db2d05c2..00000000 --- a/_sources/stubs/qiskit_qec.decoders.ThreeBitDecoder.rst.txt +++ /dev/null @@ -1,24 +0,0 @@ -ThreeBitDecoder -=============== - -.. currentmodule:: qiskit_qec.decoders - -.. autoclass:: ThreeBitDecoder - :no-members: - :show-inheritance: - :no-inherited-members: - :no-special-members: - - .. rubric:: Methods - - - .. automethod:: ThreeBitDecoder.process - .. automethod:: ThreeBitDecoder.update_edge_weights - - - - .. rubric:: Attributes - - .. autoattribute:: AVAILABLE_METHODS - .. autoattribute:: METHOD_PYMATCHING - .. autoattribute:: METHOD_RETWORKX diff --git a/_sources/stubs/qiskit_qec.utils.DecodingGraphEdge.rst.txt b/_sources/stubs/qiskit_qec.utils.DecodingGraphEdge.rst.txt index 409042c8..a9c51532 100644 --- a/_sources/stubs/qiskit_qec.utils.DecodingGraphEdge.rst.txt +++ b/_sources/stubs/qiskit_qec.utils.DecodingGraphEdge.rst.txt @@ -20,4 +20,5 @@ .. autoattribute:: qubits .. autoattribute:: weight + .. autoattribute:: fault_ids .. autoattribute:: properties diff --git a/apidocs/analysis.html b/apidocs/analysis.html index aff0ccf7..a4427a31 100644 --- a/apidocs/analysis.html +++ b/apidocs/analysis.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -379,7 +376,7 @@

    Analysis module classes and functionsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/apidocs/circuits.html b/apidocs/circuits.html index 2af9179f..35652946 100644 --- a/apidocs/circuits.html +++ b/apidocs/circuits.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -392,7 +389,7 @@

    Circuits module classes and functionsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/apidocs/codes.html b/apidocs/codes.html index b8bc5b31..9dfdc1ed 100644 --- a/apidocs/codes.html +++ b/apidocs/codes.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -395,7 +392,7 @@

    Codes module classes and functionsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/apidocs/decoders.html b/apidocs/decoders.html index 843b79b7..78fdb352 100644 --- a/apidocs/decoders.html +++ b/apidocs/decoders.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -337,20 +334,11 @@

    Decoders module classes and functions - + - - - - - - - - - - - + +

    DecodingGraph(code[, brute, graph])

    DecodingGraph(code[, brute, graph, hyperedges])

    Class to construct the decoding graph for the code given by a CodeCircuit object, for use in a decoder.

    CircuitModelMatchingDecoder(n, ...[, ...])

    Matching decoder for circuit noise.

    RepetitionDecoder(code_circuit, model, ...)

    Instance of CircuitModelMatchingDecoder for use with circuits from RepetitionCodeCircuit.

    ThreeBitDecoder(n, css_x_gauge_ops, ...)

    Simple 3-bit code matching decoder.

    UnionFindDecoder(code[, decoding_graph, ...])

    Decoder based on growing clusters around syndrome errors to "convert" them into erasure errors, which can be corrected easily, by the peeling decoder in case of the surface code, or by checking for interference with the boundary in case of an abritrary ARC.

    UnionFindDecoder(code[, decoding_graph, ...])

    Decoder based on growing clusters around syndrome errors to "convert" them into erasure errors, which can be corrected easily, by the peeling decoder for compatible codes or by the standard HDRG method in general.

    @@ -392,7 +380,7 @@

    Decoders module classes and functionsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/apidocs/geometry.html b/apidocs/geometry.html index f2a21178..f4414271 100644 --- a/apidocs/geometry.html +++ b/apidocs/geometry.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -446,7 +443,7 @@

    Geometry module classes and functionsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/apidocs/index.html b/apidocs/index.html index 45d1fa93..76ed3db5 100644 --- a/apidocs/index.html +++ b/apidocs/index.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -382,7 +379,7 @@ Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/apidocs/info.html b/apidocs/info.html index e7a93b49..87ab0c8d 100644 --- a/apidocs/info.html +++ b/apidocs/info.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -380,7 +377,7 @@

    Info module classes and functionsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/apidocs/linear.html b/apidocs/linear.html index 6d214056..0c767085 100644 --- a/apidocs/linear.html +++ b/apidocs/linear.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -443,7 +440,7 @@

    Linear symplectic functionsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/apidocs/operators.html b/apidocs/operators.html index 3296897f..6395f07c 100644 --- a/apidocs/operators.html +++ b/apidocs/operators.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -386,7 +383,7 @@

    Operators module classes and functionsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/apidocs/structures.html b/apidocs/structures.html index 183ce2fd..d5e9cb99 100644 --- a/apidocs/structures.html +++ b/apidocs/structures.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -383,7 +380,7 @@

    Structures module classes and functionsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/apidocs/utils.html b/apidocs/utils.html index 03c8c675..b694ef35 100644 --- a/apidocs/utils.html +++ b/apidocs/utils.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -358,7 +355,7 @@

    Utils module classes and functions

    DecodingGraphNode(index[, qubits, ...])

    Class to describe DecodingGraph nodes.

    -

    DecodingGraphEdge(qubits, weight[, properties])

    +

    DecodingGraphEdge(qubits, weight[, ...])

    Class to describe DecodingGraph edges.

    @@ -401,7 +398,7 @@

    Utils module classes and functionsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/discussions/index.html b/discussions/index.html index d8df376d..6e9e224c 100644 --- a/discussions/index.html +++ b/discussions/index.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -361,7 +358,7 @@

    QEC DiscussionsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/genindex.html b/genindex.html index 78be1abd..41fea7db 100644 --- a/genindex.html +++ b/genindex.html @@ -214,9 +214,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -397,13 +394,7 @@

    A

  • AVAILABLE_METHODS (ArcCircuit attribute)
  • @@ -447,8 +438,6 @@

    C

  • CheckerBoardTile (class in qiskit_qec.geometry) -
  • -
  • CircuitModelMatchingDecoder (class in qiskit_qec.decoders)
  • CITATION (Properties attribute)
  • @@ -728,6 +717,8 @@

    F

    - + - -
  • ThreeBitDecoder (class in qiskit_qec.decoders) -
  • Tile (class in qiskit_qec.geometry)
  • TileFactory (class in qiskit_qec.geometry) @@ -1615,8 +1568,6 @@

    T

  • to_instruction() (Pauli method)
  • - - + + + -
    diff --git a/how_tos/1-how-to-create-codes.html b/how_tos/1-how-to-create-codes.html index 546410c5..6efc8f35 100644 --- a/how_tos/1-how-to-create-codes.html +++ b/how_tos/1-how-to-create-codes.html @@ -217,9 +217,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -751,7 +748,7 @@

    Configuring and running a specific CodeBuilderFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/how_tos/2-how-to-work-with-shape-objects.html b/how_tos/2-how-to-work-with-shape-objects.html index 675c4456..82a8266c 100644 --- a/how_tos/2-how-to-work-with-shape-objects.html +++ b/how_tos/2-how-to-work-with-shape-objects.html @@ -217,9 +217,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -492,7 +489,7 @@

    How-to: work with geometry objectsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/how_tos/index.html b/how_tos/index.html index ce48e823..64077877 100644 --- a/how_tos/index.html +++ b/how_tos/index.html @@ -217,9 +217,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -381,7 +378,7 @@

    Qiskit QEC How-to guidesFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/index.html b/index.html index 50baabc4..ea0d5092 100644 --- a/index.html +++ b/index.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -376,7 +373,7 @@

    Qiskit QEC documentationFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/objects.inv b/objects.inv index 9df3c1db..c8bc2dc6 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/py-modindex.html b/py-modindex.html index 53f6c4f8..8f7383a2 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -214,9 +214,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -496,7 +493,7 @@

    Python Module Index

    Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/search.html b/search.html index 5b6003bd..fe4ab18d 100644 --- a/search.html +++ b/search.html @@ -213,9 +213,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -354,7 +351,7 @@ Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/searchindex.js b/searchindex.js index bf8c7d11..bd140074 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["apidocs/analysis", "apidocs/circuits", "apidocs/codes", "apidocs/decoders", "apidocs/geometry", "apidocs/index", "apidocs/info", "apidocs/linear", "apidocs/operators", "apidocs/structures", "apidocs/utils", "discussions/index", "how_tos/1-how-to-create-codes", "how_tos/2-how-to-work-with-shape-objects", "how_tos/index", "index", "stubs/qiskit_qec.circuits.ArcCircuit", "stubs/qiskit_qec.circuits.CSSCodeCircuit", "stubs/qiskit_qec.circuits.CodeCircuit", "stubs/qiskit_qec.circuits.RepetitionCodeCircuit", "stubs/qiskit_qec.circuits.SurfaceCodeCircuit", "stubs/qiskit_qec.codes.CodeLibrarian", "stubs/qiskit_qec.codes.CodeLibrary", "stubs/qiskit_qec.codes.QECCode", "stubs/qiskit_qec.codes.StabSubSystemCode", "stubs/qiskit_qec.codes.all_small_codes", "stubs/qiskit_qec.codes.small_code", "stubs/qiskit_qec.decoders.CircuitModelMatchingDecoder", "stubs/qiskit_qec.decoders.DecodingGraph", "stubs/qiskit_qec.decoders.RepetitionDecoder", "stubs/qiskit_qec.decoders.ThreeBitDecoder", "stubs/qiskit_qec.decoders.UnionFindDecoder", "stubs/qiskit_qec.geometry.CheckerBoardTile", "stubs/qiskit_qec.geometry.DiagonalBarTile", "stubs/qiskit_qec.geometry.DiagonalHourGlassTile", "stubs/qiskit_qec.geometry.Edge", "stubs/qiskit_qec.geometry.Face", "stubs/qiskit_qec.geometry.GeometryBounds", "stubs/qiskit_qec.geometry.HexagonTile", "stubs/qiskit_qec.geometry.Lattice", "stubs/qiskit_qec.geometry.Manifold", "stubs/qiskit_qec.geometry.OctaSquareTile", "stubs/qiskit_qec.geometry.Plane", "stubs/qiskit_qec.geometry.QubitCount", "stubs/qiskit_qec.geometry.QubitData", "stubs/qiskit_qec.geometry.Shape", "stubs/qiskit_qec.geometry.ShapeObject", "stubs/qiskit_qec.geometry.Shell", "stubs/qiskit_qec.geometry.SquareDiamondTile", "stubs/qiskit_qec.geometry.Tile", "stubs/qiskit_qec.geometry.TileFactory", "stubs/qiskit_qec.geometry.Tiling", "stubs/qiskit_qec.geometry.TwoManifold", "stubs/qiskit_qec.geometry.Vertex", "stubs/qiskit_qec.geometry.WireFrame", "stubs/qiskit_qec.info.Properties", "stubs/qiskit_qec.linear.all_commute", "stubs/qiskit_qec.linear.augment_mat", "stubs/qiskit_qec.linear.build_hyper_partner", "stubs/qiskit_qec.linear.create_lambda_matrix", "stubs/qiskit_qec.linear.is_center", "stubs/qiskit_qec.linear.is_hyper_form", "stubs/qiskit_qec.linear.is_same_span", "stubs/qiskit_qec.linear.is_stabilizer_group", "stubs/qiskit_qec.linear.is_symplectic_form", "stubs/qiskit_qec.linear.is_symplectic_matrix_form", "stubs/qiskit_qec.linear.is_symplectic_vector_form", "stubs/qiskit_qec.linear.locate_hyper_partner", "stubs/qiskit_qec.linear.make_commute_hyper", "stubs/qiskit_qec.linear.rank", "stubs/qiskit_qec.linear.rref", "stubs/qiskit_qec.linear.rref_complete", "stubs/qiskit_qec.linear.symplectic_gram_schmidt", "stubs/qiskit_qec.linear.symplectic_product", "stubs/qiskit_qec.operators.BasePauli", "stubs/qiskit_qec.operators.Pauli", "stubs/qiskit_qec.operators.PauliList", "stubs/qiskit_qec.structures.GaugeGroup", "stubs/qiskit_qec.structures.Group", "stubs/qiskit_qec.utils.DecodingGraphEdge", "stubs/qiskit_qec.utils.DecodingGraphNode", "stubs/qiskit_qec.utils.get_counts_via_stim", "stubs/qiskit_qec.utils.get_stim_circuits", "stubs/qiskit_qec.utils.indexer", "stubs/qiskit_qec.utils.noisify_circuit", "stubs/qiskit_qec.utils.pauli_rep", "stubs/qiskit_qec.utils.visualizations", "tutorials/1-tutorial-example", "tutorials/QEC_Framework_IEEE_2022", "tutorials/how-to-use-union-find", "tutorials/index"], "filenames": ["apidocs/analysis.rst", "apidocs/circuits.rst", "apidocs/codes.rst", "apidocs/decoders.rst", "apidocs/geometry.rst", "apidocs/index.rst", "apidocs/info.rst", "apidocs/linear.rst", "apidocs/operators.rst", "apidocs/structures.rst", "apidocs/utils.rst", "discussions/index.rst", "how_tos/1-how-to-create-codes.ipynb", "how_tos/2-how-to-work-with-shape-objects.ipynb", "how_tos/index.rst", "index.rst", "stubs/qiskit_qec.circuits.ArcCircuit.rst", "stubs/qiskit_qec.circuits.CSSCodeCircuit.rst", "stubs/qiskit_qec.circuits.CodeCircuit.rst", "stubs/qiskit_qec.circuits.RepetitionCodeCircuit.rst", "stubs/qiskit_qec.circuits.SurfaceCodeCircuit.rst", "stubs/qiskit_qec.codes.CodeLibrarian.rst", "stubs/qiskit_qec.codes.CodeLibrary.rst", "stubs/qiskit_qec.codes.QECCode.rst", "stubs/qiskit_qec.codes.StabSubSystemCode.rst", "stubs/qiskit_qec.codes.all_small_codes.rst", "stubs/qiskit_qec.codes.small_code.rst", "stubs/qiskit_qec.decoders.CircuitModelMatchingDecoder.rst", "stubs/qiskit_qec.decoders.DecodingGraph.rst", "stubs/qiskit_qec.decoders.RepetitionDecoder.rst", "stubs/qiskit_qec.decoders.ThreeBitDecoder.rst", "stubs/qiskit_qec.decoders.UnionFindDecoder.rst", "stubs/qiskit_qec.geometry.CheckerBoardTile.rst", "stubs/qiskit_qec.geometry.DiagonalBarTile.rst", "stubs/qiskit_qec.geometry.DiagonalHourGlassTile.rst", "stubs/qiskit_qec.geometry.Edge.rst", "stubs/qiskit_qec.geometry.Face.rst", "stubs/qiskit_qec.geometry.GeometryBounds.rst", "stubs/qiskit_qec.geometry.HexagonTile.rst", "stubs/qiskit_qec.geometry.Lattice.rst", "stubs/qiskit_qec.geometry.Manifold.rst", "stubs/qiskit_qec.geometry.OctaSquareTile.rst", "stubs/qiskit_qec.geometry.Plane.rst", "stubs/qiskit_qec.geometry.QubitCount.rst", "stubs/qiskit_qec.geometry.QubitData.rst", "stubs/qiskit_qec.geometry.Shape.rst", "stubs/qiskit_qec.geometry.ShapeObject.rst", "stubs/qiskit_qec.geometry.Shell.rst", "stubs/qiskit_qec.geometry.SquareDiamondTile.rst", "stubs/qiskit_qec.geometry.Tile.rst", "stubs/qiskit_qec.geometry.TileFactory.rst", "stubs/qiskit_qec.geometry.Tiling.rst", "stubs/qiskit_qec.geometry.TwoManifold.rst", "stubs/qiskit_qec.geometry.Vertex.rst", "stubs/qiskit_qec.geometry.WireFrame.rst", "stubs/qiskit_qec.info.Properties.rst", "stubs/qiskit_qec.linear.all_commute.rst", "stubs/qiskit_qec.linear.augment_mat.rst", "stubs/qiskit_qec.linear.build_hyper_partner.rst", "stubs/qiskit_qec.linear.create_lambda_matrix.rst", "stubs/qiskit_qec.linear.is_center.rst", "stubs/qiskit_qec.linear.is_hyper_form.rst", "stubs/qiskit_qec.linear.is_same_span.rst", "stubs/qiskit_qec.linear.is_stabilizer_group.rst", "stubs/qiskit_qec.linear.is_symplectic_form.rst", "stubs/qiskit_qec.linear.is_symplectic_matrix_form.rst", "stubs/qiskit_qec.linear.is_symplectic_vector_form.rst", "stubs/qiskit_qec.linear.locate_hyper_partner.rst", "stubs/qiskit_qec.linear.make_commute_hyper.rst", "stubs/qiskit_qec.linear.rank.rst", "stubs/qiskit_qec.linear.rref.rst", "stubs/qiskit_qec.linear.rref_complete.rst", "stubs/qiskit_qec.linear.symplectic_gram_schmidt.rst", "stubs/qiskit_qec.linear.symplectic_product.rst", "stubs/qiskit_qec.operators.BasePauli.rst", "stubs/qiskit_qec.operators.Pauli.rst", "stubs/qiskit_qec.operators.PauliList.rst", "stubs/qiskit_qec.structures.GaugeGroup.rst", "stubs/qiskit_qec.structures.Group.rst", "stubs/qiskit_qec.utils.DecodingGraphEdge.rst", "stubs/qiskit_qec.utils.DecodingGraphNode.rst", "stubs/qiskit_qec.utils.get_counts_via_stim.rst", "stubs/qiskit_qec.utils.get_stim_circuits.rst", "stubs/qiskit_qec.utils.indexer.rst", "stubs/qiskit_qec.utils.noisify_circuit.rst", "stubs/qiskit_qec.utils.pauli_rep.rst", "stubs/qiskit_qec.utils.visualizations.rst", "tutorials/1-tutorial-example.ipynb", "tutorials/QEC_Framework_IEEE_2022.ipynb", "tutorials/how-to-use-union-find.ipynb", "tutorials/index.rst"], "titles": ["Analysis (qiskit_qec.analysis)", "Circuits (qiskit_qec.circuits)", "Codes (qiskit_qec.codes)", "Decoders (qiskit_qec.decoders)", "Geometry (qiskit_qec.geometry)", "Qiskit QEC API Reference", "Info (qiskit_qec.info)", "Linear (qiskit_qec.linear)", "Operators (qiskit_qec.operators)", "Structures (qiskit_qec.structures)", "Utils (qiskit_qec.utils)", "QEC Discussions", "How-to: Create Codes", "How-to: work with geometry objects", "Qiskit QEC How-to guides", "Qiskit QEC documentation", "ArcCircuit", "CSSCodeCircuit", "CodeCircuit", "RepetitionCodeCircuit", "SurfaceCodeCircuit", "CodeLibrarian", "CodeLibrary", "QECCode", "StabSubSystemCode", "qiskit_qec.codes.all_small_codes", "qiskit_qec.codes.small_code", "CircuitModelMatchingDecoder", "DecodingGraph", "RepetitionDecoder", "ThreeBitDecoder", "UnionFindDecoder", "CheckerBoardTile", "DiagonalBarTile", "DiagonalHourGlassTile", "Edge", "Face", "GeometryBounds", "HexagonTile", "Lattice", "Manifold", "OctaSquareTile", "Plane", "QubitCount", "QubitData", "Shape", "ShapeObject", "Shell", "SquareDiamondTile", "Tile", "TileFactory", "Tiling", "TwoManifold", "Vertex", "WireFrame", "Properties", "qiskit_qec.linear.all_commute", "qiskit_qec.linear.augment_mat", "qiskit_qec.linear.build_hyper_partner", "qiskit_qec.linear.create_lambda_matrix", "qiskit_qec.linear.is_center", "qiskit_qec.linear.is_hyper_form", "qiskit_qec.linear.is_same_span", "qiskit_qec.linear.is_stabilizer_group", "qiskit_qec.linear.is_symplectic_form", "qiskit_qec.linear.is_symplectic_matrix_form", "qiskit_qec.linear.is_symplectic_vector_form", "qiskit_qec.linear.locate_hyper_partner", "qiskit_qec.linear.make_commute_hyper", "qiskit_qec.linear.rank", "qiskit_qec.linear.rref", "qiskit_qec.linear.rref_complete", "qiskit_qec.linear.symplectic_gram_schmidt", "qiskit_qec.linear.symplectic_product", "BasePauli", "Pauli", "PauliList", "GaugeGroup", "Group", "DecodingGraphEdge", "DecodingGraphNode", "qiskit_qec.utils.get_counts_via_stim", "qiskit_qec.utils.get_stim_circuits", "qiskit_qec.utils.indexer", "qiskit_qec.utils.noisify_circuit", "qiskit_qec.utils.pauli_rep", "qiskit_qec.utils.visualizations", "Tutorial: example", "Qiskit QEC Software Framework", "Using the Union Find decoder in qiskit_qec", "QEC Tutorials"], "terms": {"thi": [0, 11, 12, 13, 15, 16, 17, 18, 19, 20, 25, 26, 27, 28, 29, 30, 45, 56, 58, 60, 67, 68, 74, 75, 76, 79, 80, 88, 89], "contain": [0, 12, 17, 26, 32, 33, 34, 37, 38, 41, 44, 45, 48, 75, 76, 82, 88, 89], "an": [0, 12, 13, 15, 16, 17, 18, 23, 28, 31, 37, 39, 43, 45, 56, 58, 59, 63, 68, 72, 74, 75, 76, 88, 89], "errorpropag": 0, "circuit": [0, 5, 16, 17, 18, 19, 20, 27, 28, 29, 30, 74, 75, 81, 82, 84, 89], "error": [0, 12, 15, 16, 17, 18, 19, 20, 23, 27, 28, 29, 30, 31, 84, 89], "propag": 0, "interfac": [0, 18], "analysi": [5, 88, 89], "qiskit_qec": [5, 12, 13, 17, 45, 88], "code": [5, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 47, 51, 55, 76, 79, 80, 89], "decod": [5, 16, 18, 23, 27, 28, 29, 30, 31, 79, 80], "geometri": [5, 12, 37, 43, 45, 46, 88], "info": [5, 12, 25, 26, 55, 88], "linear": [5, 88, 89], "oper": [5, 12, 13, 16, 17, 18, 19, 20, 27, 31, 32, 33, 34, 38, 41, 47, 48, 50, 56, 58, 60, 68, 74, 75, 76, 77, 82, 84, 89], "structur": [5, 12, 13, 41], "util": [5, 12, 88], "about": [11, 26, 88], "topic": [11, 88], "concept": [11, 88], "relat": [11, 88], "packag": [11, 15, 88], "The": [12, 13, 15, 16, 17, 24, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 41, 43, 45, 48, 57, 65, 66, 74, 75, 76, 89], "qec": [12, 13, 23, 28, 29], "framework": [12, 13, 15, 74, 75, 76, 89], "doe": [12, 16, 58, 60, 62, 74, 75, 76, 88], "prescrib": 12, "ani": [12, 15, 16, 17, 18, 19, 20, 64, 74, 75, 76, 77, 79, 80, 81, 88], "particular": [12, 88], "wai": [12, 18, 76, 88], "follow": [12, 17, 18, 19, 20, 31, 32, 33, 34, 41, 45, 48, 88], "some": [12, 13, 19, 20, 74, 88], "simpl": [12, 17, 18, 30, 37, 45, 88], "design": 12, "philosophi": 12, "look": [12, 88, 89], "wide": [12, 88], "rang": [12, 47, 58, 68, 88], "tool": [12, 86, 88], "method": [12, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 54, 56, 58, 60, 67, 68, 74, 75, 76, 79, 80, 88], "instructur": 12, "make": [12, 16, 17, 18, 19, 20, 47, 68, 74, 75, 76, 88], "easier": [12, 88], "within": [12, 16, 28, 37, 45, 88], "ar": [12, 13, 16, 17, 18, 19, 20, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 45, 46, 47, 48, 53, 54, 60, 65, 66, 68, 72, 74, 75, 76, 79, 80, 82, 84, 88, 89], "veri": [12, 15, 88, 89], "few": [12, 88], "class": [12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 74, 75, 76, 77, 78, 79, 80, 83, 86, 88, 89], "i": [12, 13, 15, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 41, 42, 43, 45, 46, 47, 48, 55, 57, 58, 63, 64, 65, 66, 67, 68, 71, 72, 73, 74, 75, 76, 80, 82, 84, 88, 89], "done": [12, 18, 27, 29, 30, 39, 88], "two": [12, 16, 42, 45, 51, 57, 65, 66, 71, 73, 75, 82, 88, 89], "primari": [12, 88], "reason": [12, 88], "first": [12, 31, 39, 62, 74, 76, 88, 89], "chang": [12, 15, 16, 17, 18, 19, 20, 74, 75, 88], "due": [12, 19, 20, 88], "failur": [12, 88], "fix": [12, 76, 88], "other": [12, 18, 39, 47, 74, 75, 76, 88], "can": [12, 18, 24, 31, 32, 38, 39, 41, 48, 65, 66, 74, 75, 76, 82, 88, 89], "easi": [12, 88], "take": [12, 16, 31, 88, 89], "out": [12, 45, 58, 75, 76, 88], "given": [12, 16, 17, 18, 19, 20, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 41, 44, 45, 47, 48, 57, 58, 64, 65, 66, 68, 74, 75, 76, 82, 88, 89], "wheer": [12, 88], "longer": [12, 88], "work": [12, 31, 47, 76, 88, 89], "we": [12, 19, 20, 88, 89], "want": [12, 38, 88, 89], "avoid": [12, 45, 88], "have": [12, 13, 16, 17, 18, 19, 20, 27, 29, 30, 35, 36, 43, 46, 47, 53, 54, 56, 57, 58, 67, 68, 72, 73, 76, 88], "continu": [12, 88], "check": [12, 31, 42, 45, 60, 64, 65, 66, 76, 88, 89], "still": [12, 15, 75, 76, 88], "whether": [12, 16, 17, 18, 19, 20, 28, 29, 80, 88], "keep": [12, 47, 51, 88], "insid": [12, 39, 45, 47, 88], "second": [12, 45, 62, 88], "sinc": [12, 75, 76, 88], "heirachi": [12, 88], "could": [12, 16, 17, 18, 19, 20, 88], "us": [12, 13, 16, 17, 18, 19, 20, 27, 28, 29, 31, 32, 33, 34, 35, 36, 38, 39, 41, 43, 45, 46, 47, 48, 53, 54, 59, 68, 71, 72, 74, 75, 76, 84, 88], "number": [12, 16, 17, 18, 19, 20, 26, 27, 28, 43, 45, 65, 66, 67, 68, 73, 74, 75, 76, 77, 81, 88, 89], "would": [12, 16, 17, 18, 19, 20, 88, 89], "larg": [12, 45, 76, 88], "overlap": [12, 88], "difficult": [12, 88], "manag": [12, 18, 88], "instead": [12, 39, 74, 75, 76, 88], "aim": [12, 88], "onli": [12, 13, 16, 17, 18, 19, 20, 26, 45, 47, 53, 54, 76, 84, 88, 89], "stabsubsystemcod": [12, 17, 25, 26, 55, 88], "which": [12, 16, 17, 18, 19, 20, 23, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 45, 46, 47, 48, 51, 53, 54, 74, 75, 76, 80, 84, 88, 89], "deal": [12, 19, 20, 88], "subsystem": [12, 24, 27, 74, 75, 76], "A": [12, 13, 17, 18, 23, 24, 28, 31, 32, 37, 38, 39, 41, 45, 47, 48, 53, 54, 55, 71, 73, 74, 75, 76, 79, 80, 82, 89], "construct": [12, 16, 17, 23, 28, 31, 75, 76, 88], "rather": [12, 16, 88], "than": [12, 16, 75, 88], "group": [12, 24, 60, 63, 74, 75, 76, 77], "usual": [12, 88], "ha": [12, 13, 27, 29, 30, 41, 45, 58, 67, 74, 75, 76, 88], "mani": [12, 16, 17, 18, 19, 20, 88], "differ": [12, 16, 19, 47, 51, 56, 72, 74, 75, 76, 88, 89], "paramet": [12, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 51, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 81, 82, 84, 88], "option": [12, 16, 21, 24, 25, 32, 33, 34, 35, 37, 38, 39, 41, 45, 46, 47, 48, 51, 57, 64, 65, 66, 67, 68, 72, 74, 75, 76, 77, 81, 82], "inherit": [12, 24, 36, 47, 53, 54, 75, 76, 77, 88], "from": [12, 13, 16, 17, 18, 19, 20, 23, 28, 29, 32, 36, 37, 38, 39, 41, 44, 45, 47, 48, 51, 53, 54, 58, 68, 74, 75, 76, 77, 88, 89], "exampl": [12, 17, 24, 25, 26, 38, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76], "build": [12, 27, 58, 72], "base": [12, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 74, 75, 76, 77, 78, 79, 80, 88], "cut": [12, 47, 88], "glu": [12, 88], "region": [12, 39, 45, 47, 88], "tile": [12, 32, 33, 34, 38, 39, 41, 45, 48, 50], "place": [12, 39, 45, 51, 74, 75, 76, 88], "lattic": [12, 32, 38, 41, 48, 51, 88], "small": [12, 25, 88], "rel": [12, 51, 88], "often": [12, 88], "special": [12, 27, 88], "mai": [12, 13, 32, 33, 34, 38, 41, 45, 48, 88, 89], "For": [12, 27, 29, 30, 75, 76, 82, 88], "triangularcolorcodebuild": [12, 88], "heavyhexcodebuild": [12, 88], "qiskit": [12, 16, 74, 75, 76, 81, 82], "codelibrarian": [12, 88], "variou": [12, 18, 88], "codelibrari": [12, 88], "instanc": [12, 29, 35, 36, 44, 46, 47, 53, 54, 74, 75, 88], "store": [12, 13, 16, 32, 33, 34, 38, 41, 45, 48, 74, 88], "properti": [12, 25, 26, 27, 28, 29, 30, 76, 79, 80, 88], "eventu": [12, 88], "host": [12, 88], "separ": [12, 31, 51, 88], "web": [12, 88], "server": [12, 88], "possibl": [12, 13, 28, 56, 74, 75, 76, 88, 89], "even": [12, 17, 18, 65, 66, 74, 75, 76, 88], "under": [12, 88], "local": [12, 16, 88], "clifford": [12, 74, 75, 76], "permut": [12, 88], "equival": [12, 25, 26, 74, 75], "grow": [12, 31, 88, 89], "quickli": [12, 88], "meant": [12, 88], "analog": [12, 88], "gap": [12, 25, 26, 88], "": [12, 13, 16, 17, 58, 68, 74, 75, 76, 80, 82, 88], "sloan": [12, 88], "encyclopedia": [12, 88], "integ": [12, 27, 29, 30, 31, 47, 59, 65, 66, 74, 75, 76, 88, 89], "sequenc": [12, 16, 45, 88], "There": [12, 88], "These": [12, 27, 29, 30, 31, 88], "includ": [12, 16, 17, 18, 19, 20, 31, 37, 45, 47, 76, 89], "write": [12, 74, 76, 88], "custom": [12, 84, 88], "consid": [12, 51, 68, 74, 75, 76, 79, 80, 88, 89], "7": [12, 32, 33, 34, 38, 41, 48, 88, 89], "qubit": [12, 13, 16, 17, 18, 19, 20, 24, 26, 27, 31, 32, 33, 34, 38, 41, 43, 44, 47, 48, 51, 74, 75, 76, 77, 79, 80, 82, 85, 89], "stean": [12, 88], "color": [12, 16, 32, 33, 34, 38, 41, 47, 48, 88], "todo": [12, 31, 72, 76, 88], "add": [12, 31, 35, 36, 44, 46, 47, 53, 54, 72, 84, 88], "imag": 12, "import": [12, 13, 17, 76, 87, 88, 89], "numpi": [12, 13, 24, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 87, 88], "np": [12, 13, 32, 33, 34, 38, 39, 41, 48, 56, 58, 60, 69, 70, 71, 74, 75, 76, 77, 87, 88], "gaugegroup": [12, 24, 26, 88], "pauli_list": [12, 88], "paulilist": [12, 24, 25, 26, 32, 33, 34, 38, 41, 47, 48, 74, 75, 88], "arrai": [12, 13, 24, 32, 33, 34, 38, 39, 41, 44, 48, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 88], "1": [12, 13, 16, 19, 20, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 38, 39, 41, 45, 47, 48, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 84, 89], "0": [12, 13, 16, 17, 19, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 43, 45, 46, 47, 48, 51, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 84, 87, 88, 89], "gauge_group": [12, 24, 25, 55, 88], "also": [12, 16, 17, 18, 19, 20, 28, 45, 57, 58, 59, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 88], "set": [12, 13, 16, 17, 18, 19, 20, 27, 29, 30, 31, 37, 39, 45, 47, 53, 58, 62, 68, 74, 75, 76, 80, 89], "pauli": [12, 13, 17, 24, 27, 31, 32, 33, 34, 38, 41, 48, 56, 58, 60, 63, 68, 74, 81, 82, 84, 85], "genertor": [12, 88], "describ": [12, 31, 32, 33, 34, 38, 41, 45, 48, 79, 80, 88, 89], "2": [12, 13, 16, 25, 26, 32, 33, 34, 38, 41, 45, 47, 48, 55, 56, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 87, 89], "default": [12, 16, 17, 18, 19, 20, 21, 24, 25, 26, 28, 32, 33, 34, 37, 38, 39, 41, 45, 46, 47, 48, 51, 64, 65, 66, 68, 72, 74, 75, 76, 77, 88], "read": [12, 19, 20, 74, 75, 76, 88], "product": [12, 56, 58, 59, 67, 68, 73, 74, 75, 76, 88], "sytnax": 12, "right": [12, 19, 20, 57, 74, 75, 76, 88], "left": [12, 19, 20, 57, 74, 75, 76, 88], "so": [12, 13, 16, 17, 18, 19, 20, 45, 74, 75, 76, 88, 89], "iixx": [12, 88], "x0x1": 12, "iiixxxx": 12, "iiizzzz": 12, "ixxxixi": 12, "izzzizi": 12, "xixiixx": 12, "ziziizz": 12, "3": [12, 17, 25, 26, 30, 32, 33, 34, 38, 41, 47, 48, 74, 75, 76, 88], "need": [12, 39, 74, 76, 80, 88, 89], "syntax": [12, 74, 75, 76], "form": [12, 16, 17, 18, 19, 20, 32, 33, 34, 41, 47, 48, 61, 65, 66, 70, 71, 76, 81, 84, 88], "index": [12, 17, 19, 20, 21, 22, 25, 26, 28, 31, 32, 33, 34, 38, 41, 48, 55, 58, 67, 74, 75, 76, 80, 82, 88, 89], "x0x1x2x3": [12, 88], "z0z1z2z3": [12, 88], "x1x3x4x5": [12, 88], "z1z3z4z5": [12, 88], "x0x1x4x6": [12, 88], "z0z1z4z6": [12, 88], "6": [12, 32, 33, 34, 38, 41, 48, 88], "start": [12, 19, 88, 89], "cb": [12, 88], "output": [12, 16, 17, 18, 19, 20, 31, 74, 75, 76, 88], "format": [12, 31, 74, 75, 76, 88], "pauli_rep": [12, 74, 75, 76, 88], "base_pauli": [12, 74, 76, 88], "basepauli": [12, 75, 76, 77, 88], "set_syntax": [12, 74, 75, 76, 88], "index_syntax": [12, 74, 75, 76, 88], "set_qubit_ord": [12, 74, 75, 76, 88], "n": [12, 17, 21, 22, 24, 25, 26, 27, 28, 29, 30, 37, 55, 59, 74, 75, 76, 77, 85, 88, 89], "5": [12, 26, 32, 33, 34, 38, 41, 48, 87, 88, 89], "k": [12, 21, 22, 25, 26, 32, 33, 34, 38, 41, 48, 55, 58, 60, 67, 68, 71, 77, 88], "show": [12, 72, 88], "its": [12, 18, 37, 67, 88], "small_cod": [12, 88], "4": [12, 25, 26, 32, 33, 34, 38, 41, 47, 48, 55, 58, 69, 71, 88, 89], "fetch": [12, 88], "inform": [12, 16, 19, 20, 26, 28, 44, 58, 88], "info_onli": [12, 21, 22, 25, 26, 88], "true": [12, 13, 16, 17, 18, 19, 20, 25, 26, 28, 31, 32, 33, 34, 37, 38, 39, 41, 45, 47, 48, 56, 57, 60, 61, 62, 63, 64, 65, 66, 74, 75, 76, 77, 88], "type": [12, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 79, 80, 81, 84, 88], "isotropic_gener": [12, 25, 26, 55, 77, 88], "39": [12, 88], "z1z2": [12, 88], "z0z4": [12, 88], "y1y2x3": [12, 88], "z0z1z3": [12, 88], "y0x3y4": [12, 88], "is_subsystem": [12, 25, 26, 88], "code_typ": [12, 25, 26, 55, 88], "aut_group_s": [12, 25, 26, 55, 88], "32": [12, 88], "is_triorthogon": [12, 55, 88], "is_decompos": [12, 25, 26, 55, 88], "weight_enumer": [12, 25, 26, 55, 88], "8": [12, 25, 32, 33, 34, 38, 41, 48, 55, 88, 89], "13": [12, 38, 41, 88], "is_css": [12, 25, 26, 55, 88], "uuid": [12, 25, 26, 55, 88], "33f790cd": [12, 88], "ab06": [12, 88], "47fb": [12, 88], "a2b3": [12, 88], "057f38329942": [12, 88], "is_degener": [12, 25, 26, 55, 88], "d": [12, 17, 18, 19, 20, 25, 26, 41, 48, 55, 88, 89], "is_gf4linear": [12, 25, 26, 55, 88], "23": [12, 88], "all": [12, 16, 18, 19, 20, 23, 25, 28, 31, 43, 46, 47, 50, 60, 74, 75, 76, 88, 89], "css": [12, 17, 27, 47, 88], "all_small_cod": [12, 88], "fals": [12, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28, 33, 37, 38, 39, 45, 47, 56, 57, 60, 62, 64, 65, 66, 74, 75, 76, 80, 88], "36": [12, 88], "x1z2z3": 12, "y0y1x3": [12, 25], "z0z1x2z4": 12, "logical_op": [12, 25, 26, 55, 88], "z0z1x3": 12, "z2x4": 12, "z0z3": [12, 25], "z4": [12, 26], "712505a9": 12, "19ed": 12, "4702": 12, "ba25": 12, "d2270317afaa": 12, "more": [12, 16, 17, 18, 19, 20, 31, 45, 74, 76, 89], "triangular": [12, 88], "see": [12, 16, 20, 31, 38, 57, 58, 59, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 82, 88], "intermedi": [12, 13, 47, 88], "result": [12, 16, 17, 18, 19, 20, 27, 28, 29, 30, 72, 74, 75, 76, 88], "when": [12, 16, 45, 74, 75, 76, 79, 80, 88, 89], "distanc": [12, 16, 17, 18, 19, 20, 45, 51], "appropri": [12, 32, 38, 41, 48, 88], "hexagon": [12, 38, 88], "hexagontil": [12, 41, 48, 88], "shape": [12, 39, 76, 88], "cutter": [12, 47, 88], "codefactori": [12, 88], "minifold": 12, "plane": [12, 45, 88], "lattiv": [12, 88], "against": [12, 88], "triangular_code_factori": [12, 88], "manifold": [12, 42, 45, 52, 88], "tile_optyp": [12, 51, 88], "dxz": [12, 38, 41, 88], "choos": [12, 74, 75, 76, 88], "both": [12, 19, 20, 24, 39, 75, 88], "x": [12, 13, 16, 17, 19, 20, 27, 32, 33, 34, 41, 48, 57, 59, 61, 68, 72, 74, 75, 76, 88, 89], "z": [12, 13, 16, 17, 19, 20, 27, 32, 33, 34, 41, 48, 60, 61, 68, 72, 74, 75, 76, 87, 88, 89], "each": [12, 16, 17, 18, 19, 20, 27, 28, 29, 30, 32, 33, 34, 37, 38, 41, 43, 47, 48, 56, 58, 68, 74, 75, 76, 88], "predefin": [12, 88], "u_vec": [12, 32, 33, 34, 38, 39, 41, 48, 88], "v_vec": [12, 32, 33, 34, 38, 39, 41, 48, 88], "length": [12, 16, 39, 45, 67, 68, 75, 88], "side": [12, 45, 74], "scale": [12, 45, 47, 88], "defin": [12, 18, 24, 32, 33, 34, 38, 41, 45, 47, 48, 56, 73, 74, 75, 84, 88, 89], "point": [12, 13, 37, 39, 42, 45, 47, 51, 74, 88, 89], "triangl": [12, 88], "h": [12, 38, 74, 75, 76, 82, 88, 89], "r": [12, 37, 38, 69, 70, 88], "on_boundari": [12, 45, 88], "boundari": [12, 16, 17, 18, 19, 20, 27, 31, 45, 47, 80, 88], "boundary_strategi": [12, 47, 88], "combin": [12, 37, 47, 74, 75, 76, 88], "peic": 12, "level": [12, 47, 88], "weight": [12, 27, 28, 29, 30, 31, 38, 47, 76, 79, 88], "after": [12, 16, 19, 20, 74, 75, 89], "displai": [12, 32, 33, 34, 38, 41, 48, 49, 74, 75, 76, 88], "view": [12, 88], "allow": [12, 13, 19, 20, 88], "correct": [12, 15, 16, 27, 28, 29, 30, 31, 45, 74, 76, 89], "show_face_color": [12, 88], "As": [12, 16, 88], "face": [12, 13, 32, 33, 34, 38, 41, 47, 48], "show_insid": [12, 88], "lattice_view": [12, 88], "precut_tiling_view": [12, 88], "befor": [12, 75, 76, 88], "set_paramet": [12, 88], "updat": [12, 27, 28, 29, 30, 74, 75, 76, 88], "is_configur": [12, 88], "directli": [12, 88], "individu": [12, 88], "update_is_configur": [12, 88], "make_cod": [12, 88], "produc": [12, 16, 17, 18, 19, 20, 31, 74, 75, 76, 88], "who": 12, "qubit_index": 12, "draw": [12, 13, 24, 32, 33, 34, 38, 41, 47, 48, 49, 88], "face_color": [12, 32, 33, 34, 38, 41, 47, 48, 50, 88], "show_index": [12, 47, 88], "previou": [12, 16, 35], "approach": [12, 88], "wrap": 12, "In": [12, 18, 31, 88, 89], "case": [12, 16, 17, 18, 19, 20, 31, 88], "9": [12, 16, 32, 33, 34, 38, 41, 88], "triangular_color_code_build": [12, 88], "anoth": [12, 74, 75, 76, 88], "surfac": [12, 17, 18, 20, 31, 45], "surface_code_build": [12, 88], "surfacecodebuild": [12, 88], "dx": [12, 88], "dz": [12, 88], "xcolor": [12, 13, 47, 88], "lightcor": [12, 88], "zcolor": [12, 13, 47, 88], "skyblu": [12, 88], "rotat": [12, 20, 42, 47, 48, 88], "rotated_surface_code_buil": [12, 88], "rotatedsurfacecodebuild": [12, 88], "ul_op": [12, 88], "Or": 12, "heavi": [12, 88], "hex": 12, "heavyhex_code_build": [12, 88], "primit": [13, 88], "geometr": [13, 37, 50, 88], "At": [13, 16, 88], "present": [13, 88], "consist": [13, 23, 74, 88], "vertic": [13, 27, 29, 30, 35, 45, 47, 51, 89], "edg": [13, 16, 27, 28, 29, 30, 31, 47, 54, 79, 89], "wirefram": [13, 36, 47, 88], "shell": [13, 24, 32, 33, 34, 38, 41, 45, 48, 51, 88], "vertex": [13, 35, 45, 47, 88], "space": [13, 37, 88], "list": [13, 16, 17, 18, 19, 20, 21, 22, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 41, 44, 45, 47, 48, 50, 53, 54, 61, 71, 74, 75, 76, 77, 79, 80, 81, 82, 84, 88, 89], "hyperedg": [13, 88], "self": [13, 16, 17, 19, 20, 27, 29, 30, 31, 37, 39, 47, 74, 75, 76, 88], "loop": [13, 31, 88], "associ": [13, 24, 51, 74, 88], "them": [13, 31, 76, 88], "current": [13, 43, 45, 74, 75, 76, 88], "etc": [13, 17, 18, 32, 33, 34, 82, 88], "ad": [13, 16, 19, 20, 72, 84, 88, 89], "futur": [13, 15], "assocoi": [13, 88], "system": [13, 24, 88], "being": [13, 17, 19, 20, 51, 53, 71, 88], "step": [13, 88, 89], "until": [13, 88], "solid": [13, 88], "c": [13, 16, 17, 32, 33, 34, 37, 41, 48, 74, 75, 76, 88], "librari": [13, 22, 26], "creat": [13, 16, 17, 18, 19, 20, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 45, 46, 47, 48, 50, 51, 53, 54, 55, 59, 89], "implement": [13, 16, 19, 27, 45, 58, 88, 89], "thu": [13, 35, 36, 46, 47, 53, 54, 88], "necessarili": [13, 88], "fast": [13, 88], "fulli": [13, 88, 89], "featur": [13, 47, 88], "model": [13, 17, 23, 27, 29, 30, 81, 84, 88, 89], "qubit_count": [13, 24, 32, 33, 34, 38, 41, 47, 48, 50, 51, 88], "qubitcount": [13, 24, 47, 50, 51, 88], "qubit_data": [13, 24, 32, 33, 34, 38, 41, 47, 48, 50, 51, 88], "qubitdata": [13, 24, 47, 50, 51, 88], "squar": [13, 41, 45, 48, 88], "repres": [13, 31, 37, 42, 56, 58, 60, 63, 72, 74, 75, 76, 88], "xxxx": [13, 32, 33, 34, 41, 88], "zzzz": [13, 32, 33, 34, 41, 88], "share": [13, 88], "common": [13, 88], "x_oper": [13, 88], "z_oper": [13, 88], "y_oper": [13, 88], "y": [13, 16, 32, 33, 34, 41, 48, 74, 75, 76, 88, 89], "v1": [13, 32, 33, 34, 38, 41, 48, 88], "id": [13, 35, 36, 43, 46, 47, 53, 54, 88, 89], "new_qubit": [13, 43, 88], "increment_qubit": [13, 43, 88], "v2": [13, 32, 33, 34, 38, 41, 48, 88], "v3": [13, 32, 33, 34, 38, 41, 88], "v4": [13, 38, 41, 88], "e1": [13, 88], "e2": [13, 88], "e3": [13, 88], "e4": [13, 88], "wf1": [13, 88], "f1": [13, 88], "v5": [13, 38, 41, 88], "v6": [13, 41, 88], "v7": [13, 41, 88], "v8": [13, 34, 88], "e5": [13, 88], "e6": [13, 88], "e7": [13, 88], "e8": [13, 88], "wf2": [13, 88], "f2": [13, 88], "14": [13, 41, 89], "green": [13, 88], "yellow": [13, 88], "show_face_id": [13, 47, 88], "earli": 15, "stage": 15, "develop": [15, 88], "like": [15, 52, 65, 66, 82, 88], "break": 15, "api": 15, "releas": [15, 75, 88], "If": [15, 16, 17, 18, 19, 20, 25, 26, 28, 32, 33, 34, 38, 39, 41, 45, 48, 56, 58, 67, 68, 74, 75, 76, 88], "you": [15, 88, 89], "encount": 15, "bug": 15, "pleas": 15, "open": [15, 88], "issu": [15, 88], "github": [15, 82, 88], "sourc": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 88], "experimentalist": [15, 88], "theorist": [15, 88], "quantum": [15, 27, 28, 58], "tutori": [15, 88], "how": [15, 16, 17, 18, 19, 20, 45, 74, 75, 76, 88], "guid": 15, "refer": [15, 16, 43, 75, 76, 88], "discuss": [15, 88], "link": [16, 88], "t": [16, 17, 18, 19, 20, 60, 73, 74, 75, 76, 80, 88, 89], "basi": [16, 17, 19, 20, 27, 29, 30, 32, 38, 39, 41, 48, 61, 68, 72, 82, 88], "xy": [16, 76, 88], "logic": [16, 17, 18, 19, 20, 27, 28, 29, 31, 77, 82, 89], "reset": [16, 19, 20, 82, 88, 89], "delai": [16, 19], "none": [16, 17, 19, 21, 22, 24, 25, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54, 64, 65, 66, 67, 68, 72, 74, 75, 76, 77, 80, 81, 82, 88], "barrier": [16, 19, 20, 82, 88], "max_dist": 16, "schedul": 16, "run_202": 16, "rounds_per_202": 16, "conditional_reset": 16, "codecircuit": [16, 17, 19, 20, 28], "anisotrop": 16, "repetit": [16, 17, 18, 19, 20, 88], "correspond": [16, 17, 18, 19, 20, 27, 28, 29, 30, 31, 79, 82, 84, 88], "over": [16, 19, 74, 76, 88, 89], "syndrom": [16, 17, 18, 19, 20, 28, 29, 31, 80, 88, 89], "measur": [16, 17, 18, 19, 20, 27, 28, 29, 30, 31, 80, 81, 82, 88, 89], "round": [16, 17, 18, 19, 20, 80, 88, 89], "provid": [16, 24, 31, 32, 33, 34, 38, 39, 41, 48, 75, 76], "param": [16, 17, 18, 19, 20, 47], "tupl": [16, 17, 19, 20, 21, 22, 28, 31, 35, 44, 45, 47, 67, 71, 72, 74, 75, 76], "c0": 16, "c1": 16, "where": [16, 32, 33, 34, 38, 41, 48, 68, 74, 75, 76, 88, 89], "auxiliari": 16, "int": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 37, 39, 40, 43, 45, 46, 47, 50, 53, 54, 58, 59, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 79, 80, 81, 88], "str": [16, 17, 19, 20, 21, 22, 27, 28, 29, 30, 31, 44, 45, 47, 51, 57, 74, 75, 76, 77, 79, 80, 89], "pair": [16, 27, 28, 29, 30, 56, 61, 67, 68, 72, 88], "specifi": [16, 26, 28, 31, 74, 75, 76], "string": [16, 17, 18, 19, 20, 28, 31, 44, 74, 75, 76, 89], "valu": [16, 17, 18, 19, 20, 27, 28, 29, 30, 31, 39, 43, 45, 47, 67, 71, 74, 75, 76, 89], "bool": [16, 17, 18, 19, 20, 21, 22, 25, 26, 28, 29, 37, 39, 45, 47, 50, 56, 60, 61, 62, 63, 64, 65, 66, 74, 75, 76, 77, 80, 88], "gate": [16, 19, 20, 82, 84, 88], "mid": [16, 19, 20], "ff": 16, "effect": [16, 88], "via": [16, 74, 88], "feed": 16, "forward": 16, "time": [16, 17, 19, 74, 75, 76, 80, 82, 88, 89], "dt": [16, 19], "float": [16, 19, 37, 39, 45, 47, 51, 53, 79], "between": [16, 17, 19, 27, 29, 30, 45, 51, 74, 75, 76, 88], "section": [16, 19, 31, 88], "dict": [16, 17, 18, 19, 20, 28, 31, 45, 47, 79, 80, 82], "dictionari": [16, 17, 18, 19, 20, 28, 31, 43, 45, 81, 82], "kei": [16, 18, 28, 31, 32, 33, 34, 41, 43, 48, 79, 80, 82, 88], "predetermin": 16, "bicolor": 16, "found": [16, 67, 88], "initi": [16, 18, 20, 24, 28, 37, 76, 88], "maximum": [16, 88], "determin": [16, 17, 18, 19, 20, 28, 39, 47, 56], "order": [16, 17, 18, 74, 75, 76, 88], "entangl": [16, 88], "appli": [16, 19, 20, 39, 72, 74, 75, 76, 81], "element": [16, 19, 20, 28, 68, 72, 74, 88], "simultan": 16, "run": [16, 28, 31, 88, 89], "overwritten": [16, 17, 18], "high": [16, 88], "enough": [16, 45, 88], "least": 16, "rounds_per_202xlen": 16, "part": [16, 74, 76, 88], "202": 16, "typic": [16, 18, 31, 89], "begin": [16, 76, 88], "end": [16, 20, 45, 75, 76, 88], "requir": [16, 17, 18, 19, 20, 45, 88], "get": [16, 21, 74, 75, 76, 79, 80, 88, 89], "event": [16, 28, 88, 89], "dedic": [16, 88], "conjug": [16, 74, 75, 76, 88], "condit": [16, 76], "check_nod": [16, 17, 18, 19, 20], "node": [16, 17, 18, 19, 20, 28, 31, 80, 88, 89], "ignore_extra_boundari": [16, 17, 18, 19, 20], "minim": [16, 17, 18, 19, 20, 88], "neutral": [16, 17, 18, 19, 20, 31], "addit": [16, 17, 18, 19, 20, 28, 47, 81, 88], "readout": [16, 17, 18, 19, 20], "flip": [16, 17, 18, 19, 20, 88], "cluster": [16, 17, 18, 19, 20, 31, 89], "string2nod": [16, 17, 18, 19, 20, 31], "undeed": [16, 17, 18, 19, 20], "ignor": [16, 17, 18, 19, 20, 88], "should": [16, 17, 18, 19, 20, 28, 38, 45, 54, 74, 88], "reflect": [16, 17, 18, 19, 20], "return": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 81, 82, 84, 88], "independ": [16, 17, 18, 19, 20, 58, 68, 88], "valid": [16, 17, 18, 19, 20], "flipped_logical_nod": [16, 17, 18, 19, 20], "were": [16, 17, 18, 19, 20, 88], "origin": [16, 17, 18, 19, 20, 24, 32, 33, 34, 38, 41, 45, 48, 50, 74, 75, 76], "num_error": [16, 17, 18, 19, 20], "minimum": [16, 17, 18, 19, 20, 51], "clean_cod": 16, "obviou": 16, "identifi": [16, 57, 75], "remov": [16, 28, 75, 76, 88], "modif": 16, "static": [16, 22, 35, 36, 37, 42, 45, 46, 47, 53, 54, 75], "flatten_nod": 16, "consolid": 16, "those": [16, 45, 88], "same": [16, 27, 39, 67, 68, 73, 75, 76, 88], "posit": [16, 45, 53, 57, 59, 71, 74, 75, 76, 88], "decodinggraphnod": [16, 17, 28], "flatten": 16, "flat_nod": 16, "get_error_coord": 16, "count": [16, 24, 28, 47, 81], "decoding_graph": [16, 27, 31], "spitz": [16, 28], "remove_invalid_edg": 16, "return_sampl": [16, 28], "get_error_prob": [16, 28], "graph": [16, 18, 27, 28, 29, 30, 31, 89], "gener": [16, 17, 18, 24, 25, 26, 28, 29, 39, 45, 56, 58, 60, 63, 75, 76, 77, 81, 89], "probabl": [16, 17, 27, 28, 29, 30, 88, 89], "singl": [16, 28, 54, 75, 76, 82, 88, 89], "locat": [16, 67, 75, 88], "calcul": [16, 28, 74, 75, 76, 88], "analyz": [16, 28], "decodinggraph": [16, 17, 18, 79, 80], "object": [16, 21, 22, 23, 26, 28, 29, 32, 33, 34, 37, 38, 39, 40, 41, 43, 44, 45, 46, 48, 50, 51, 55, 74, 75, 76, 78, 79, 80, 83], "support": [16, 27, 28, 45, 88], "delet": [16, 44, 47, 75, 76], "invalid": [16, 75, 76], "thei": [16, 28, 61, 74, 75, 76, 88, 89], "sampl": [16, 28, 81], "coordin": [16, 32, 33, 34, 38, 41, 45, 48, 74, 88], "start_tim": 16, "end_tim": 16, "specif": [16, 28, 32, 33, 34, 38, 41, 48, 65, 66, 75, 79, 80, 88], "whose": [16, 17, 19, 20, 27, 28, 29, 30, 82, 88], "detect": [16, 88], "account": 16, "It": [16, 17, 18, 31, 45, 58, 68, 88, 89], "assum": [16, 17, 18, 31, 39, 45, 58, 68, 76, 84, 88], "subround": 16, "unit": [16, 88], "is_cluster_neutr": [16, 17, 18, 19, 20], "atypical_nod": [16, 17, 18, 19, 20], "mean": [16, 17, 18, 19, 20, 75, 88, 89], "one": [16, 17, 18, 19, 20, 27, 31, 45, 74, 75, 76, 88, 89], "caus": [16, 17, 18, 19, 20], "atyp": [16, 17, 18, 19, 20, 89], "pass": [16, 17, 18, 19, 20, 47, 89], "measured_log": [16, 17, 18, 19, 20, 31], "express": [16, 17, 18, 19, 20, 88], "pariti": [16, 17, 18, 19, 20, 82, 89], "final": [16, 17, 18, 19, 20, 27, 29, 30, 31, 74, 76, 88, 89], "raw": [16, 17, 18, 19, 20], "kwarg": [16, 17, 18, 19, 20, 21, 22, 24, 25, 47, 50, 75, 76], "convert": [16, 17, 18, 19, 20, 31, 47, 75, 76, 82, 88, 89], "keyword": [16, 17, 18, 19, 20], "argument": [16, 17, 18, 19, 20, 57, 65, 66, 88], "below": [16, 20, 88], "all_log": [16, 17, 19, 20, 28], "irrespect": [16, 17, 19, 20], "non": [16, 19, 20, 28, 31, 48, 76, 88, 89], "trivial": [16, 19, 20, 28, 88], "string2raw_log": [16, 17, 19, 20], "extract": [16, 19, 20, 31, 47, 88], "transpil": 16, "backend": 16, "echo": 16, "echo_num": 16, "ibmq": 16, "ibmqbackend": 16, "xzx": 16, "respect": [16, 17, 88], "repeat": [16, 27, 88], "dynam": [16, 88], "decoupl": 16, "transpiled_circuit": 16, "attribut": [16, 18, 21, 24, 27, 28, 29, 30, 32, 33, 34, 35, 36, 38, 39, 41, 46, 47, 48, 53, 54, 55, 74, 75, 76, 77, 79, 80], "available_method": [16, 27, 28, 29, 30], "naiv": [16, 28], "method_na": [16, 28], "method_spitz": [16, 28], "round_schedul": [17, 19, 27, 30], "zx": [17, 74, 75, 76, 88], "noise_model": [17, 81, 84, 89], "either": [17, 24, 28, 74, 75, 76, 82, 88], "b": [17, 37, 45, 68, 73, 74, 75, 88], "x_gaug": 17, "indic": [17, 28, 31, 45, 68, 75, 76, 79, 80, 88], "z_gaug": 17, "x_stabil": 17, "z_stabil": 17, "logical_x": [17, 88], "logical_z": [17, 88], "encod": [17, 19, 20, 26, 27, 74, 75, 76, 84, 85, 88, 89], "measurem": 17, "gaug": [17, 24, 27], "xz": [17, 74, 75, 76, 88], "nois": [17, 27, 29, 30, 81, 82, 84, 88, 89], "noisi": 17, "pnenomolog": 17, "entri": [17, 43, 45, 65, 66, 75, 76, 89], "probab": 17, "depolar": [17, 88], "quantumcircuit": [17, 19, 74, 75, 76, 81, 82, 84, 88], "memori": [17, 76, 88], "experi": [17, 88], "heavyhex": 17, "hhc": 17, "css_code": 17, "01": [17, 45, 51, 88], "version": [17, 18, 45, 75, 88], "here": [17, 18, 88], "odd": [17, 18, 88, 89], "assess": [17, 18], "complex": [17, 18, 74, 75, 76, 88], "care": [17, 18], "suppli": [17, 18, 39, 60], "stim_detector": 17, "detector": [17, 82], "stim": [17, 82], "clbit": [17, 82], "classic": [17, 75, 82, 88], "bit": [17, 30, 75, 82, 88], "regist": 17, "comparison": [17, 45, 82], "particip": 17, "stabil": [17, 24, 27, 55, 63, 80], "earlier": [17, 75, 89], "trigger": 17, "outcom": [17, 19, 27, 29, 30, 31, 81, 89], "abc": [18, 27, 49], "abstract": [18, 88], "well": [18, 19, 20, 71, 88], "fault": [18, 89], "toler": [18, 45], "inher": 18, "depend": 18, "famili": [18, 88], "must": [18, 26, 32, 33, 34, 38, 41, 45, 47, 48, 57, 58, 59, 62, 67, 68, 73, 75, 88], "label": [18, 48, 74, 75, 76, 88, 89], "xbasi": [19, 88], "henc": [19, 20, 74, 75], "ancilla": [19, 20, 80], "assist": [19, 20], "No": [19, 20, 88], "otherwis": [19, 20, 45, 60, 62, 64, 65, 66, 74, 75, 76, 88], "get_circuit_list": [19, 20], "circuit_list": [19, 20], "partition_outcom": 19, "infer": [19, 20], "ugli": [19, 20], "whenev": [19, 20, 88], "re": [19, 20], "syndrome_measur": [19, 20], "applic": [19, 20, 88, 89], "disregard": [19, 20], "boolean": [19, 20, 65, 66, 74, 75, 76, 88], "denot": [19, 20, 88], "log": [19, 20, 28], "state": [20, 88, 89], "config": [21, 88], "configur": [21, 22, 88], "_summary_": [21, 22, 24, 74, 75, 76, 77], "_description_": [21, 22, 24, 25, 37, 44, 45, 47, 74, 75, 76, 77], "_de_": 21, "union": [21, 22, 25, 26, 28, 31, 39, 44, 45, 46, 47, 53, 61, 65, 66, 73, 77, 81, 82, 84], "n_dir_format": 21, "n_": [21, 88], "n_k_codes_file_format": 21, "codes_n_": 21, "_k_": 21, "json": 21, "name": [22, 44, 55, 75, 77, 82, 84, 88], "path": [22, 27, 29, 30, 31, 45, 88], "config_filenam": 22, "codebas": [22, 88], "config_fil": 22, "file": [22, 88], "nme": 22, "data2cod": 22, "record": 22, "in_rang": 22, "_type_": [22, 45, 47, 76], "search": [22, 67, 88], "core": [23, 89], "central": [23, 88], "deriv": [23, 88], "recoveri": 23, "stuff": [23, 89], "init": [23, 35, 36, 40, 42, 43, 44, 45, 46, 47, 52, 53, 54, 74, 75, 76, 78], "function": [23, 31, 74, 75, 76, 85, 88], "data": [24, 27, 28, 29, 30, 31, 32, 33, 34, 38, 41, 44, 45, 47, 48, 51, 75, 76, 88], "defing": 24, "x1x2": 24, "z3z4": [24, 88], "x3z9": 24, "checkerboardtil": [24, 88], "subsytem": 24, "exist": [24, 28, 67, 88], "list_onli": 25, "alwai": [25, 47], "desc": 25, "match": [25, 27, 30, 74, 75, 76], "queri": 25, "0x13e304f40": 25, "0x13e30a490": 25, "0x13e30a880": 25, "0x13e30aa60": 25, "z0x1z2": [25, 88], "z1x2z3": 25, "code_info": [25, 26], "z2x3": 25, "24": [25, 88], "e6e4edd6": 25, "2ec6": 25, "467f": 25, "9187": 25, "0cc64bc51f1a": 25, "allsmallgroup": 25, "physic": [26, 88], "uniqu": [26, 35, 36, 43, 46, 47, 53, 54, 75, 76, 80], "request": 26, "suitabl": [26, 28, 71], "subclass": 26, "rais": [26, 32, 33, 34, 37, 38, 39, 41, 45, 48, 57, 58, 59, 60, 62, 63, 67, 68, 71, 72, 73, 74, 75, 76], "qiskiterror": [26, 32, 33, 34, 37, 38, 39, 41, 45, 48, 57, 58, 59, 60, 62, 63, 67, 68, 71, 72, 73, 74, 75, 76, 88], "assign": [26, 27, 29, 30, 51, 88], "x0x2": 26, "z1z4": 26, "z0z2": 26, "x3": [26, 88], "x1x4": [26, 88], "z3": [26, 88], "576": 26, "47e52342": 26, "8ffc": 26, "48e5": 26, "be51": 26, "c60aab28e9b8": 26, "smallgroup": 26, "css_x_gauge_op": [27, 30], "css_x_stabilizer_op": [27, 30], "css_x_boundari": [27, 30], "css_z_gauge_op": [27, 30], "css_z_stabilizer_op": [27, 30], "css_z_boundari": [27, 30], "block": [27, 30], "uniform": [27, 29, 30], "annot": 27, "prepar": [27, 89], "do": [27, 28, 31, 61, 63, 72, 88], "size": [27, 32, 33, 34, 37, 38, 39, 41, 45, 47, 48, 59, 74, 75, 76, 88], "along": [27, 37, 88], "entir": [27, 39, 75, 76, 88], "initializaton": 27, "everywher": 27, "rustworkx": [27, 29, 30], "comput": [27, 31, 45, 58, 69, 70, 71, 89], "matcher": [27, 29, 30], "annotated_graph": 27, "process": [27, 29, 30, 31, 72, 89], "Be": [27, 29, 30], "sure": [27, 29, 30, 88], "call": [27, 28, 29, 30, 88], "update_edge_weight": [27, 29, 30], "transvers": [27, 29, 30, 31], "evalu": [27, 29, 30], "numer": [27, 29, 30], "weight_poli": [27, 29, 30], "polynomi": [27, 29, 30, 88], "onc": [27, 29, 30, 88], "recomput": [27, 29, 30], "shortest": [27, 29, 30], "paulinoisemodel": [27, 29, 30, 81, 84, 89], "been": [27, 29, 30, 35, 36, 46, 47, 53, 54, 88], "previous": [27, 29, 30, 35, 36, 46, 47, 53, 54, 88], "variabl": [27, 29, 30, 32, 33, 34, 38, 41, 48, 88], "symbol": [27, 29, 30], "mois": [27, 29, 30], "pymatch": [27, 29, 30], "method_pymatch": [27, 29, 30], "method_retworkx": [27, 29, 30], "brute": 28, "empti": [28, 43, 75, 76, 88], "analys": 28, "helper": 28, "clean_measur": 28, "obvious": 28, "input": [28, 31, 37, 45, 56, 57, 58, 60, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 88], "edge_in_graph": 28, "in_graph": 28, "estim": 28, "et": [28, 31, 88], "al": [28, 31], "http": [28, 82, 88], "doi": [28, 88], "org": [28, 88], "10": [28, 34, 38, 41, 58, 87, 88, 89], "1002": 28, "qute": 28, "201800012": 28, "make_error_graph": 28, "ouput": 28, "subgraph": [28, 31], "node_index": [28, 31], "corrspond": [28, 80], "update_attribut": 28, "weight_syndrome_graph": 28, "replac": [28, 74, 75, 88], "p": [28, 32, 33, 34, 41, 45, 48, 73, 74, 75, 76, 88, 89], "code_circuit": 29, "circuitmodelmatchingdecod": [29, 30], "repetitioncodecircuit": [29, 88, 89], "constructor": [29, 30], "use_peel": 31, "clusteringdecod": 31, "around": [31, 42, 89], "erasur": [31, 89], "easili": [31, 88], "peel": [31, 89], "interfer": 31, "abritrari": 31, "arc": 31, "accord": [31, 84, 88], "huang": 31, "arxiv": [31, 88], "2004": 31, "04693": 31, "iii": 31, "1709": 31, "06218v3": 31, "detail": [31, 47, 74], "find": [31, 58, 67], "algorithm": [31, 45, 89], "u": [31, 88], "paper": [31, 88], "root": [31, 47, 88], "compress": 31, "get_correct": 31, "turn": [31, 67, 74, 75, 76, 88], "corrected_log": 31, "neighbouring_edg": 31, "neighbour": 31, "payload": 31, "decodinggraphedg": 31, "connect": [31, 54], "compon": [31, 47, 54], "infinit": [31, 45, 88], "tree": 31, "span": [31, 62, 68, 88], "forest": 31, "go": [31, 88, 89], "backward": 31, "through": [31, 67, 88, 89], "1703": 31, "01517": 31, "pygraph": 31, "occur": [31, 88], "predecod": 31, "callabl": 31, "preprocess": 31, "corrected_z_log": 31, "z_logic": 31, "optyp": [32, 33, 34, 38, 41, 48], "pxzxz": [32, 38, 41, 48], "checker": [32, 38], "board": [32, 38], "diagram": [32, 33, 34], "q0": [32, 33, 34, 38, 41, 48, 88], "q1": [32, 33, 34, 38, 41, 48, 88], "q2": [32, 33, 34, 38, 41, 48, 88], "v0": [32, 33, 34, 38, 41, 48, 88], "o": [32, 33, 34, 38, 41, 45, 48, 88, 89], "q3": [32, 33, 34, 38, 41, 48, 88], "q4": [32, 33, 34, 38, 41, 48, 88], "q5": [32, 33, 34, 38, 41, 48, 88], "q6": [32, 33, 34, 38, 41, 48, 88], "q7": [32, 33, 34, 38, 41, 48, 88], "q8": [32, 33, 38, 41, 88], "yellowgreen": [32, 33, 34, 38, 41, 47, 48, 88], "tomato": [32, 33, 34, 38, 41, 47, 48, 88], "preformat": [32, 33, 34, 38, 41, 48], "op_dict": [32, 33, 34, 41, 48], "pppp": [32, 33, 34, 41, 48], "pattern": [32, 33, 34, 41, 48], "copi": [32, 33, 34, 37, 41, 48, 53, 74, 75, 76], "opertor": [32, 33, 34, 38, 41, 48], "cxzzx": [32, 41], "xzzx": 32, "avail": [32, 33, 34, 35, 36, 41, 46, 47, 48, 53, 54, 88], "precomput": [32, 33, 34, 41, 48], "layout": [32, 33, 34, 41, 48], "pzxzx": [32, 48], "cxxxx": [32, 48], "czzzz": [32, 48], "czxxz": [32, 41], "built": [32, 33, 34, 38, 41, 48], "abov": [32, 33, 34, 38, 41, 48, 88], "counter": [32, 33, 34, 38, 41, 48], "mapp": [32, 33, 34, 38, 41, 48], "scall": [32, 38, 41, 48], "access": [32, 38, 41, 48, 88], "unsupport": [32, 33, 34, 38, 41, 48], "classmethod": [32, 33, 34, 37, 38, 39, 41, 45, 48, 49, 51, 74, 75, 76], "faces_wf_compon": [32, 33, 34, 38, 41, 48, 50, 88], "num_fac": [32, 33, 34, 38, 41, 48, 88], "num_qubit": [32, 33, 34, 38, 41, 48, 50, 74, 75, 76, 88], "wf_coordin": [32, 33, 34, 38, 41, 48, 50, 88], "wf_loop_ind": [32, 33, 34, 38, 41, 48, 50, 88], "wf_operator_dict": [32, 33, 34, 38, 41, 48, 88], "zxxz": 32, "wf_q_indic": [32, 33, 34, 38, 41, 48, 50, 88], "pxxzzxx": [33, 34], "diagon": [33, 34], "bar": [33, 88], "hour": [33, 34, 88], "glass": [33, 34], "diagonalhourglasstil": [33, 88], "xx": [33, 38, 76, 89], "pzzxxzz": [33, 34], "zz": [33, 76], "v9": 34, "q9": [34, 38, 41, 88], "q10": [34, 38, 41, 88], "xxx": [34, 48], "11": [34, 38, 41, 88, 89], "zzz": [34, 48], "next_edg": 35, "previous_edg": 35, "shapeobject": [35, 36, 47, 53, 54], "endpoint": 35, "next": [35, 45, 88, 89], "add_par": [35, 36, 46, 47, 53, 54], "parent": [35, 36, 46, 47, 53, 54], "create_id": [35, 36, 46, 47, 53, 54], "track": [35, 36, 46, 47, 51, 53, 54, 75], "last_id": [35, 36, 46, 47, 53, 54], "center": [37, 39, 60, 72], "dim": [37, 40, 74, 75, 76], "bound": [37, 45, 75, 76, 88], "box": [37, 45, 88], "aabb": [37, 39, 88], "nd": 37, "ndarri": 37, "dimens": [37, 40, 57, 72, 73, 74, 75, 76, 88], "descript": [37, 75, 88], "bounding_box_from_lin": [37, 45], "point1": [37, 51], "point2": [37, 51], "points1": 37, "points2": 37, "bounds1": 37, "bounds2": 37, "smallest": [37, 88], "test": [37, 61, 88], "els": [37, 88], "expand": [37, 39, 74, 75, 76], "amount": [37, 39, 88], "increas": [37, 45, 88], "axi": [37, 88], "vector": [37, 39, 42, 45, 47, 58, 60, 62, 64, 66, 67, 68, 73, 74, 75, 76, 88], "intercept": 37, "line": [37, 45], "ax": [37, 88], "set_min_max": 37, "min_point": 37, "max_point": 37, "max": [37, 75], "min": [37, 88], "cz": 38, "axx": 38, "q11": [38, 41, 88], "q12": [38, 41, 88], "steelblu": [38, 47, 48, 88], "red": [38, 88], "12": [38, 41, 88], "8660254037844386": 38, "46410162": 38, "59807621": 38, "7320508075688772": 38, "cx": [38, 41, 88, 89], "xxxxxx": [38, 41, 88], "cyzx2": [38, 88], "hxx": [38, 88], "xzyxzi": 38, "zzzzzz": [38, 41], "dzx": 38, "zeroth": 39, "width": [39, 73], "height": 39, "someth": [39, 75, 76], "went": [39, 75, 76], "wrong": [39, 75, 76], "apply_transform_from": 39, "transform": [39, 71], "find_pre_transform_length": 39, "shear": 39, "generate_point": 39, "make_transform": 39, "restrict": [39, 88], "in_plac": 39, "new": [39, 43, 53, 74, 75, 76, 88], "fit": [39, 88], "geometrybound": 39, "modifi": [39, 74, 75, 88], "bounding_box": 39, "restrict_for_til": 39, "expand_valu": 39, "alpha": [39, 88], "complet": [39, 82, 88], "fill": 39, "ensur": 39, "provi": 39, "approxim": [39, 88], "perform": [39, 88], "tile_s": 39, "optim": 39, "factori": [39, 79], "octa": 41, "q13": 41, "q14": 41, "q15": 41, "doubl": [41, 48], "c8": 41, "9238795325112867": 41, "16": [41, 55, 88], "s8": 41, "3826834323650897": 41, "15432203": 41, "61312593": 41, "6892463972414662": 41, "230442497387663": 41, "zzzzzzzz": 41, "xxxxxxxx": 41, "15": 41, "twomanifold": [42, 45], "r2": [42, 45], "ison": 42, "rot_matrix": 42, "theta": [42, 88], "matrix": [42, 47, 55, 56, 57, 58, 59, 60, 63, 64, 65, 67, 69, 70, 71, 72, 73, 74, 75, 76, 88], "maintain": [43, 88], "pointer": 43, "decrement_qubit": 43, "decrement": 43, "increment": 43, "qubits_count": 43, "add_data_arrai": 44, "data_arrai": 44, "ndarrai": [44, 45, 50, 56, 57, 58, 59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "del_data_arrai": 44, "select": [45, 74, 75, 76, 88], "sublattic": 45, "epsilon": [45, 51, 88], "wind": 45, "contains_quad_winding_numb": 45, "deterin": 45, "polygon": 45, "pip": [45, 88], "problem": [45, 88], "On": [45, 88], "l2": 45, "interior": 45, "hornmann": 45, "agatho": 45, "20": [45, 88], "2001": 45, "131": 45, "144": 45, "With": [45, 47, 88], "slower": 45, "later": [45, 88], "date": [45, 75], "slow": 45, "larger": [45, 88], "close": [45, 88], "contains_ray_trac": 45, "horizont": 45, "infin": 45, "straight": 45, "sophist": 45, "verison": 45, "real": [45, 88, 89], "equal": [45, 74, 75, 76, 88], "001": 45, "create_lin": 45, "expens": [45, 89], "better": [45, 52, 88], "slightli": [45, 88], "is_between": 45, "strict": [45, 88], "Will": [45, 47], "squeez": [45, 74, 75, 76], "inequ": 45, "rect": 45, "direct": [45, 88, 89], "scale1": 45, "scale2": 45, "delta": [45, 88], "dtype": [45, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 88], "rectangl": 45, "labl": 45, "r3": 45, "r1": 45, "r0": 45, "corner": 45, "up": [45, 47, 75, 76], "live": 45, "definit": [45, 82, 88], "yet": [45, 88], "2d": [45, 74, 76], "head": [45, 71], "toward": 45, "proceed": 45, "obj": 45, "children": 46, "intern": [47, 74, 88], "sever": [47, 88], "subcompon": 47, "ex": [47, 51, 76], "delete_subtre": 47, "show_axi": [47, 88], "show_qubit": [47, 88], "figsiz": [47, 88], "point_siz": 47, "50": [47, 88], "ycolor": 47, "moment": [47, 88], "is_insid": 47, "inside_level": [47, 88], "boundary_level": [47, 88], "exclud": [47, 88], "debug": 47, "subshel": 47, "in_vertic": 47, "def": [47, 88], "vertex_path": [47, 88], "deflault": 47, "That": [47, 74, 75, 88], "exlud": 47, "noth": [47, 88], "extra": [47, 88], "print": [47, 55, 74, 75, 76, 87, 88, 89], "integer_snap": 47, "snap": 47, "rotate2d": 47, "angl": 47, "90": 47, "about_point": 47, "inplac": [47, 74, 75, 76], "shell2symplect": 47, "from_index": 47, "from_qubit": 47, "symplect": [47, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 72, 73, 74, 75, 76], "shift": 47, "traslat": 47, "other_shel": 47, "disjoint": 47, "diamond": [48, 88], "orient": 48, "wf_orient": 48, "tile_typ": 51, "rssc": 51, "po": [53, 57, 88], "set_posit": 53, "global": [53, 74, 75, 76], "shallowcopi": 53, "shallow": [53, 74, 75, 76], "linit": 54, "compris": 54, "prop_dict": 55, "citat": 55, "necessari": [55, 88], "hyperbolic_gen": 55, "hyperbolic_gener": [55, 77], "isotropic_gen": 55, "is_css_kei": 55, "is_decomposable_kei": 55, "is_degenerate_kei": 55, "is_gf4linear_kei": 55, "is_triorthogonal_kei": 55, "row": [56, 62, 63, 70, 71, 74, 76, 88], "gf": [56, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], "zero": [56, 58, 68, 88], "abelian": [56, 63, 88], "subgroup": [56, 63, 88], "mutual": [56, 76], "commut": [56, 58, 68, 74, 75, 76, 88], "bool_": [56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 88], "augment": 57, "ident": [57, 59, 76, 84, 88], "m": [57, 88], "top": 57, "bottom": 57, "agument": 57, "One": [57, 88], "unknown": [57, 74, 75, 76, 88], "_augment_mat": 57, "hyperbol": [58, 61, 67, 68, 72], "partner": [58, 67, 88], "let": [58, 60, 67, 68, 73, 88], "m_0": [58, 60, 67], "m_": [58, 60, 67], "v": [58, 67, 74, 88], "m_index": 58, "pairwis": 58, "e": [58, 75, 76, 88, 89], "commmut": 58, "m_i": [58, 67, 88], "anticommut": [58, 75, 76, 88], "simplecticmatrix": 58, "full": [58, 60, 74, 75, 76, 88], "rank": [58, 71, 76, 88], "wrt": 58, "av": [58, 67, 88], "astyp": [58, 59, 67, 68, 70, 71, 72, 73, 74, 76, 88], "_build_hyper_partn": [58, 67, 88], "locate_hyper_partn": [58, 88], "_locate_hyper_partn": [58, 67], "note": [58, 74, 75, 76, 88, 89], "proposit": [58, 88], "nielsen": [58, 88], "chuang": [58, 88], "lambda": [59, 88], "i_n": 59, "_create_lambda_matrix": 59, "cntr": 60, "op": 60, "c_0": 60, "c_1": [60, 88], "c_": [60, 88], "center_matrix": 60, "m_1": 60, "Not": [60, 71, 88], "matric": [60, 61, 62, 68, 72, 73, 74, 76, 88], "symnplect": 61, "matrix1": 62, "matrix2": 62, "inpiut": 62, "is_symplectic_vector_form": [64, 65], "is_symplectic_matrix_form": [64, 66], "dimension": [65, 66, 67, 71, 73], "column": [65, 66, 67, 68, 71, 76], "is_symplectic_form": [65, 66], "int8": 66, "noncommut": 67, "parter": 67, "build_hyper_partn": [67, 88], "arang": [68, 88], "xrang": 68, "zrang": 68, "a_0": 68, "a_": 68, "a_i": [68, 88], "x_0": 68, "x_": [68, 88], "l": [68, 88], "z_0": 68, "z_": [68, 88], "x_i": [68, 88], "z_i": [68, 88], "hyerbol": 68, "b_0": 68, "b_": 68, "b_i": 68, "x_j": [68, 88], "z_j": [68, 88], "j": [68, 88], "op_": 68, "bf": 68, "iter": [68, 76, 88, 89], "x1x2x3": 68, "x2x3": 68, "x2": [68, 88], "z2": 68, "_make_commute_hyp": 68, "_rank": 69, "reduc": [70, 71, 88], "echelon": [70, 71], "_rref": [70, 71], "rref_complet": 70, "_rref_complet": [70, 71], "pivot": 71, "kth": 71, "rref_mat": 71, "transform_mat": 71, "tranform": 71, "rref": 71, "rank_": 71, "symplet": [72, 88], "gram": 72, "schmidt": 72, "gramschmidt": 72, "upon": 72, "split": 72, "accross": 72, "center_": [72, 88], "_symplectic_gram_schmidt": 72, "mat1": 73, "mat2": 73, "math": 73, "2m": [73, 88], "cdot": [73, 88], "lambda_n": 73, "_symplectic_product_vv": 73, "_symplectic_product_dens": 73, "phase_exp": [74, 75, 76], "baseoper": [74, 75, 76], "adjointmixin": 74, "multiplymixin": 74, "represent": [74, 75, 85], "phase": [74, 75, 76, 88], "izx": [74, 88], "modul": [74, 85, 88], "expon": [74, 75, 76], "z_4": [74, 76], "imput": 74, "coeffici": [74, 75, 76, 88], "compat": [74, 81, 82], "adjoint": [74, 75, 76], "all_commut": [74, 75, 76], "qarg": [74, 75, 76], "paulisbas": 74, "dot": [74, 75, 76, 88], "anti": [74, 75, 76], "compos": [74, 75, 76, 88], "front": [74, 75, 76], "composit": [74, 75, 76], "To": [74, 75, 76, 88], "multipl": [74, 75, 88], "likewis": [74, 88], "a_1": 74, "a_2": 74, "a_k": 74, "b_1": 74, "b_2": 74, "b_k": 74, "wise": [74, 76], "paulit": 74, "compositon": 74, "cl": [74, 75], "clase": [74, 75], "deep": [74, 75, 76], "multipli": [74, 75], "obtain": [74, 75], "binari": [74, 75, 88], "evolv": [74, 75, 76], "frame": [74, 75, 76, 88], "heisenberg": [74, 75, 76], "pictur": [74, 75], "evolut": [74, 75, 76], "prime": [74, 75, 76], "dagger": [74, 75, 76, 88], "By": [74, 75, 76, 88], "schr\u00f6dinger": [74, 75, 76], "yield": [74, 75, 76, 88], "faster": [74, 75, 76], "don": [74, 75, 76], "revers": [74, 75], "tensor": [74, 75, 76, 88], "otim": [74, 75, 88], "input_dim": [74, 75, 76], "output_dim": [74, 75, 76], "power": [74, 75, 76, 88], "itself": [74, 75, 76, 88], "reshap": [74, 75, 76], "preserv": [74, 75, 76, 88], "constant": [74, 75, 76, 88], "set_pauli_encod": [74, 75, 76], "iyzx": [74, 75, 76], "default_external_pauli_rep_format": [74, 75, 76], "set_phase_encod": [74, 75, 76], "default_external_phase_encod": [74, 75, 76], "set_print_phase_encod": [74, 75, 76], "phase_encod": [74, 75, 76], "qubit_ord": [74, 75, 76], "extern": [74, 75, 76, 88], "syntax_cod": [74, 75, 76], "syntax_str": [74, 75, 76], "latex": [74, 75, 76], "set_tensor_encod": [74, 75, 76], "yzx": [74, 75, 76, 88], "default_external_tensor_encod": [74, 75, 76], "to_label": [74, 75, 76], "output_pauli_encod": [74, 75, 76], "no_phas": [74, 75, 76], "return_phas": [74, 75, 76], "index_start": [74, 75, 76], "index_str": [74, 75, 76], "representatiojn": [74, 75, 76], "notat": [74, 75, 76, 88], "external_pauli_encod": [74, 75, 76], "appear": [74, 75, 76, 88], "matter": [74, 75, 76], "what": [74, 75, 76, 80, 88, 89], "xzy": [74, 75, 76, 88], "adjust": [74, 75, 76], "full_group": [74, 75, 76], "product_syntax": [74, 75, 76, 88], "aree": [74, 75, 76], "lowest": [74, 75, 76], "reult": [74, 75, 76], "scalar": [74, 75, 76], "insert": [74, 75, 76, 84, 89], "unsign": [74, 75, 76], "q": [74, 75, 76, 88], "transpos": [74, 75, 76, 88], "external_phase_encod": [74, 75, 76], "external_qubit_ord": [74, 75, 76], "external_syntax": [74, 75, 76], "external_tensor_encod": [74, 75, 76], "print_phase_encod": [74, 75, 76], "input_shap": [74, 75, 76], "output_shap": [74, 75, 76], "num_i": [74, 75, 76], "pauli_encod": [74, 75, 76], "tensor_encod": [74, 75, 76], "1d": [74, 76], "_x": [74, 76], "marked": [74, 76], "_z": [74, 76], "input_pauli_encod": [75, 76], "input_qubit_ord": [75, 76, 88], "tuple_ord": [75, 76], "progress": 75, "phase_expon": 75, "stype": 75, "tuple_prd": 75, "append_pauli": 75, "pauli_label": 75, "deprec": 75, "append": [75, 88], "month": [75, 88], "cannot": [75, 76, 88], "incompat": 75, "while": [75, 88, 89], "ind": [75, 76, 88], "delete_qubit": 75, "equiv": 75, "from_label": 75, "insert_pauli": 75, "target": 75, "similar": [75, 88], "g": [75, 88, 89], "zyxi": 75, "zy": [75, 76], "xi": [75, 76, 88, 89], "instrs2symplect": 75, "instr": 75, "invers": [75, 76], "kron": 75, "kroneck": 75, "p_2": 75, "p_1": 75, "terra": [75, 88], "17": [75, 88], "p2": 75, "pauli_singl": 75, "random": [75, 76, 87, 88, 89], "seed": 75, "random_pauli": 75, "quantum_info": [75, 76, 88], "set_trunc": 75, "val": [75, 88], "charact": [75, 88], "truncat": 75, "disabl": [75, 88], "sgn_prod": 75, "p1": 75, "now": [75, 89], "handl": [75, 84], "p_3": 75, "without": [75, 88], "sign": [75, 88], "1j": 75, "to_cpx_matrix": 75, "spars": [75, 76, 88], "to_instruct": [75, 84], "instruct": 75, "to_matrix": [75, 76], "to_spmatrix": 75, "csr": [75, 76], "scipi": 75, "csr_matrix": 75, "update_x": 75, "partial": 75, "setter": 75, "update_z": 75, "whole": 75, "num_clbit": 75, "pltb_int": 75, "pltb_str": 75, "linearmixin": 76, "groupmixin": 76, "iixxz": 76, "pdata": 76, "anticommutes_with_al": 76, "multi": 76, "satisfi": [76, 88], "argsort": 76, "sort": 76, "tabl": 76, "lexicograph": 76, "addition": 76, "term": [76, 88], "commutes_with_al": 76, "underli": 76, "from_symplect": 76, "old": 76, "getaslist": 76, "slc": 76, "group_qubit_wise_commut": 76, "partit": [76, 88], "label_it": 76, "lazi": 76, "labeliter": 76, "matrix_it": 76, "matrixiter": 76, "shuffl": 76, "ii": [76, 88], "ix": [76, 88, 89], "iz": [76, 88], "yi": 76, "yx": 76, "yy": 76, "yz": [76, 88], "zi": [76, 88], "pt": 76, "srt": 76, "effici": [76, 88, 89], "alloc": 76, "advanc": 76, "bmatrix": [76, 88], "dens": [76, 88], "return_index": 76, "return_count": 76, "item": 76, "unique_indic": 76, "occurr": 76, "unique_count": 76, "come": [76, 88], "_phase_exp": 76, "versu": 76, "num_pauli": 76, "with_gener": 77, "num_gen": 77, "compar": [79, 80], "_": [79, 80, 88], "dummi": [79, 80, 88], "docstr": [79, 80], "is_boundari": 80, "doesn": 80, "shot": 81, "4000": 81, "get_stim_circuit": 81, "thereof": [81, 84], "standard": [81, 88], "com": [82, 88], "quantumlib": 82, "blob": [82, 88], "main": [82, 88], "doc": [82, 88], "md": 82, "control": [82, 88], "sdg": 82, "swap": [82, 88], "channel": [82, 88], "mandatori": 82, "eigenvalu": [82, 88], "total": [82, 88], "again": [82, 88], "stim_circuit": 82, "stim_measurement_data": 82, "hashabl": 83, "idl": [84, 88], "idle_": 84, "qc": 84, "idle_1": 84, "noisy_circuit": 84, "convers": 85, "interact": [86, 88], "h_": 87, "text": [87, 88], "drift": 87, "frac": [87, 88], "omega": 87, "randint": 87, "tomorrow": 88, "great": 88, "tut19": 88, "ibm": 88, "servic": 88, "micheal": 88, "heali": 88, "usa": 88, "thoma": 88, "alexand": 88, "canada": 88, "edward": 88, "chen": 88, "introduc": 88, "attende": 88, "alongsid": 88, "openqasm3": 88, "languag": 88, "achiev": 88, "advantag": 88, "overview": 88, "hardwar": 88, "flow": 88, "taught": 88, "commun": 88, "qec_framework_ieee_2022": 88, "ipynb": 88, "rapidli": 88, "envolv": 88, "field": 88, "experiment": 88, "theoret": 88, "imporant": 88, "public": 88, "most": 88, "shame": 88, "extens": 88, "generaliz": 88, "document": 88, "significi": 88, "wast": 88, "qiksit": 88, "apach": 88, "licens": 88, "isol": 88, "user": 88, "flexibl": 88, "modular": 88, "architectur": 88, "priorit": 88, "eas": 88, "speed": 88, "conveni": 88, "three": 88, "componet": 88, "cli": 88, "command": 88, "graphic": 88, "edit": 88, "abil": 88, "load": 88, "save": 88, "explor": 88, "best": 88, "visual": 88, "appeal": 88, "stabl": 88, "modern": 88, "help": 88, "theori": 88, "research": 88, "machin": 88, "pi": 88, "gui": 88, "script": 88, "repo": 88, "jame": 88, "wooton": 88, "andrew": 88, "cross": 88, "minut": 88, "higher": 88, "virtual": 88, "qrao": 88, "remaind": 88, "activ": 88, "qiskit_qec_env": 88, "wish": 88, "python3": 88, "bin": 88, "folder": 88, "directori": 88, "git": 88, "gitignor": 88, "prefer": 88, "automat": 88, "enter": 88, "direnv": 88, "clone": 88, "cd": 88, "txt": 88, "dev": 88, "pylatexenc": 88, "altern": 88, "properli": 88, "exact": 88, "shown": 88, "tox": 88, "pylint": 88, "jupyt": 88, "notebook": [88, 89], "project": 88, "cach": 88, "upgrad": 88, "troubl": 88, "lab": 88, "past": 88, "cell": 88, "Then": 88, "good": 88, "concern": 88, "funcdment": 88, "storag": 88, "mathbb": 88, "f": 88, "_2": 88, "messag": 88, "therefor": 88, "n_2": 88, "idea": [88, 89], "dan": 88, "dun": 88, "steve": 88, "flammia": 88, "summer": 88, "school": 88, "2022": 88, "simplist": 88, "sai": 88, "000": 88, "111": 88, "010011": 88, "0000000": 88, "1111111": 88, "1000000": 88, "1100000": 88, "1110000": 88, "1111000": 88, "1111100": 88, "1111110": 88, "less": 88, "half": [88, 89], "major": [88, 89], "vote": 88, "0000000000": 88, "0000100110": 88, "abl": 88, "thing": 88, "destroi": 88, "repeatedli": 88, "unknow": 88, "simplest": 88, "fundament": 88, "world": 88, "hilbert": 88, "think": 88, "inner": 88, "langl": 88, "rangl": 88, "induc": 88, "norm": 88, "metric": 88, "convent": 88, "bra": 88, "ket": 88, "mostli": 88, "adjunct": 88, "varaiabl": 88, "phi": 88, "act": 88, "psi": 88, "rai": 88, "known": 88, "pure": 88, "mechan": 88, "axiom": 88, "denisti": 88, "mix": 88, "howev": 88, "densiti": 88, "limit": 88, "aspect": 88, "rho_": 88, "unitari": 88, "action": 88, "mapsto": 88, "align": 88, "mathcal": 88, "offer": 88, "signific": 88, "cost": 88, "discret": 88, "observ": 88, "superposit": 88, "fatal": 88, "situat": 88, "decomposit": 88, "oplu": 88, "qauntum": 88, "simeq": 88, "just": 88, "subspac": 88, "trace": 88, "cptp": 88, "map": 88, "rightarrow": 88, "arbitari": 88, "recover": 88, "esist": 88, "rho_a": 88, "rho_b": 88, "rho": 88, "_b": 88, "circ": [88, 89], "studi": 88, "interest": 88, "know": 88, "understand": 88, "introducd": 88, "plai": 88, "role": 88, "sigma_0": 88, "sigma_i": 88, "quad": 88, "sigma_1": 88, "sigma_x": 88, "sigma_2": 88, "sigma_z": 88, "sigma_3": 88, "nice": 88, "hermitian": 88, "involutori": 88, "textrm": 88, "2x2": 88, "sigma_a": 88, "_1": 88, "sometim": 88, "deifn": 88, "natur": 88, "univers": 88, "_n": 88, "x_1": 88, "x_2": 88, "x_n": 88, "z_1": 88, "z_2": 88, "z_n": 88, "effectic": 88, "defint": 88, "t_i": 88, "th": 88, "remain": 88, "e_0": 88, "e_1": 88, "orthonorm": 88, "qquad": 88, "2n": 88, "written": 88, "rho_q": 88, "tau": 88, "delta_1": 88, "delta_2": 88, "delta_n": 88, "yxiz": 88, "y_0x_1z_3": 88, "ixz": 88, "x_0y_3": 88, "xyxyxxxiiix": 88, "mutilpl": 88, "interpret": 88, "primarili": 88, "respons": [88, 89], "qikit": 88, "rewritten": 88, "becom": 88, "merg": [88, 89], "plu": 88, "mention": 88, "decid": 88, "ineffici": 88, "especi": 88, "basesparsepauli": 88, "sparsepauli": 88, "sparsepaulilist": 88, "loss": 88, "delta_j": 88, "rho_j": 88, "f_2": 88, "rho_1": 88, "rho_n": 88, "ixzi": 88, "mathemat": 88, "phantom": 88, "f_4": 88, "extend": 88, "cetera": 88, "give": 88, "vert": 88, "latex_syntax": 88, "x0y1x2y3x4x5x6x10": 88, "ixyxz": 88, "prone": 88, "iiiiiixiiiiiiiiiiiiiiiiiiiiiiiz": 88, "ix_6z_": 88, "30": 88, "compact": 88, "far": 88, "much": 88, "paulirep": 88, "x1x4y6": 88, "yixiixi": 88, "taken": 88, "largest": 88, "x1i9": 88, "iiiiiiiixi": 88, "x1x2x3x4": 88, "y9y6x3x1": 88, "iiiiixxxxi": 88, "yiiyiixixi": 88, "hold": 88, "p_1n_1p_2n_2": 88, "p_kn_k": 88, "p_i": 88, "n_1": 88, "n_k": 88, "equio": 88, "bilinear": 88, "w": 88, "foral": 88, "degener": 88, "skew": 88, "symmetr": 88, "pq": 88, "qp": 88, "finit": 88, "said": 88, "proper": 88, "subset": 88, "burnsid": 88, "theorem": 88, "1016": 88, "jalgebra": 88, "2013": 88, "005": 88, "g_1": 88, "g_2": 88, "g_k": 88, "leq": 88, "_k": 88, "_j": 88, "g_l": 88, "p_n": 88, "g_i": 88, "g_j": 88, "19": 88, "x0": 88, "x1": 88, "z0": 88, "procedur": 88, "g_m": 88, "unprocess": 88, "setup": 88, "leftarrow": 88, "backslash": 88, "everi": [88, 89], "cup": 88, "vg": 88, "2r": 88, "21": 88, "22": 88, "x_k": 88, "y_1": 88, "y_k": 88, "y_i": 88, "make_commute_hyp": 88, "symplectic_gram_schmidt": 88, "x0y1x2": 88, "x0x1x3": 88, "y0x1x2z3": 88, "x0z1z2y3": 88, "shall": 88, "commonli": 88, "stabilz": 88, "princip": 88, "s_1": 88, "s_2": 88, "s_k": 88, "s_j": 88, "sum": [88, 89], "topolog": [88, 89], "demonstr": [88, 89], "fact": 88, "cousin": 88, "simpli": 88, "becaus": 88, "stabilzi": 88, "solv": 88, "propos": [88, 89], "wild": 88, "0903": 88, "5256": 88, "gottesman": 88, "phd": 88, "dissert": 88, "sect": 88, "setminu": 88, "he": 88, "dress": 88, "sp": 88, "psp": 88, "29": 88, "x_new": 88, "z_new": 88, "n_pn": 88, "x0x3": 88, "x0z2": 88, "x0z1": 88, "david": 88, "poulin": 88, "pou05": 88, "proce": 88, "underbrac": 88, "destabil": 88, "factor": 88, "protect": 88, "choic": [88, 89], "practic": 88, "bare": 88, "make_isotropic_hyperbolic_form": 88, "x1y3": 88, "x2x3y4": 88, "z1z5": 88, "cen": 88, "z1x2x3y4z5": 88, "31": 88, "codebuild": 88, "subsystem_surface_code_build": 88, "subsystemsurfacecodebuild": 88, "equat": 88, "mathrm": 88, "supp": 88, "neq": 88, "min_": 88, "gp": 88, "hard": 88, "cite": 88, "vardy1997": 88, "rp": 88, "unless": 88, "dumer2003": 88, "exactli": 88, "cw": 88, "reduct": 88, "kapshikar2022": 88, "nevertheless": 88, "valuabl": 88, "our": [88, 89], "belong": 88, "straightforward": 88, "cal": 88, "s_i": 88, "membership": 88, "latter": 88, "enumer": [88, 89], "sum_": 88, "3n": 88, "3ne": 88, "goal": 88, "synd": 88, "w_1": 88, "w_2": 88, "approx": 88, "t_": 88, "w_i": 88, "suppos": 88, "cap": 88, "6ne": 88, "sigma": 88, "ee": 88, "intersect": 88, "proport": 88, "uniformli": 88, "2k": 88, "subroutin": 88, "exercis": 88, "review": 88, "literatur": 88, "certain": 88, "minimum_dist": 88, "3x3": 88, "bacon": 88, "shor": 88, "gauge_op_str": 88, "xiixiiiii": 88, "ixiixiiii": 88, "iixiixiii": 88, "iiixiixii": 88, "iiiixiixi": 88, "iiiiixiix": 88, "zziiiiiii": 88, "izziiiiii": 88, "iiizziiii": 88, "iiiizziii": 88, "iiiiiizzi": 88, "iiiiiiizz": 88, "x3x6": 88, "z0z1": 88, "z4z5": 88, "x4x7": 88, "z6z7": 88, "x2x5": 88, "x5x8": 88, "z7z8": 88, "bacon_shor_cod": 88, "34": 88, "codet": 88, "de": 88, "yzizzzizizizzzizi": 88, "ixzziizzzzzziizzx": 88, "zzxiiziiziziiziix": 88, "zizyzzzziiiizzzzi": 88, "iiiixizizzizzizix": 88, "zzizzyiiiizziiiii": 88, "iizziiyziziiizizi": 88, "iziiizixzzzzzzzzx": 88, "zzzzzzzzxiziiizix": 88, "ziziiizizyiizziii": 88, "iiiizziiiiyzzizzi": 88, "izizzizzizixiiiix": 88, "zzzziiiizzzzyzizi": 88, "iiziiziziiziixzzx": 88, "zziizzzzzziizzxix": 88, "zizzzizizizzzizyi": 88, "code_17_1_7": 88, "35": 88, "max_weight": 88, "c_n": 88, "infti": 88, "_nt": 88, "h_j": 88, "cnot": 88, "ij": 88, "hadamard": 88, "sqrt": 88, "eta": 88, "eighth": 88, "uniti": 88, "eqsim": 88, "s_3": 88, "2h": 88, "xyz": 88, "zyx": 88, "sh": 88, "3h": 88, "hsh": 88, "s_": 88, "s_n": 88, "pi_2": 88, "simplic": 88, "coeffient": 88, "isomorph": 88, "wr": 88, "automorph": 88, "aut": 88, "four": 88, "xixi": 88, "iizz": 88, "zizi": 88, "izii": 88, "xixx": 88, "hyperbolc": 88, "diffiult": 88, "inspect": 88, "perserv": 88, "anyth": 88, "comment": 88, "i_a": 88, "i_b": 88, "h_a": 88, "h_b": 88, "ab": 88, "exchang": 88, "hand": 88, "notin": 88, "100": 88, "carri": 88, "cacluat": 88, "cardinat": 88, "soon": 88, "framemwork": 88, "librarian": 88, "40": 88, "y0y4": 88, "codelibarian": 88, "ldpc": 88, "ini": 88, "although": 88, "realli": 88, "filenam": 88, "tell": 88, "ontain": 88, "codelibraian": 88, "themselv": 88, "infom": 88, "ite": 88, "back": 88, "info_only_": 88, "flag": 88, "41": 88, "42": 88, "43": 88, "44": 88, "27": 88, "z0z1x2": 88, "x1z2x3z4": 88, "x0x1y3y4": 88, "z0x3": 88, "z1x4": 88, "z1z3": 88, "65e7ef69": 88, "1b5b": 88, "49a7": 88, "97f7": 88, "f41ca540cc8f": 88, "45": 88, "360": 88, "26": 88, "48": 88, "64": 88, "tilecodefactori": 88, "46": 88, "47": 88, "celluat": 88, "appraoch": 88, "simplifi": 88, "choosen": 88, "bedlow": 88, "regulat": 88, "collect": 88, "lai": 88, "planar": 88, "49": 88, "58": 88, "59": 88, "57": 88, "diagonalbartil": 88, "33": 88, "octasquaretil": 88, "squarediamondtil": 88, "enabl": 88, "creation": 88, "wf": 88, "car": 88, "plant": 88, "brand": 88, "lot": 88, "67": 88, "68": 88, "02": 88, "69": 88, "show_work": 88, "occupi": 88, "x4x5x6x7x8x9": 88, "z4z5z6z7z8z9": 88, "x1x3x6x8": 88, "z1z3z6z8": 88, "x10x11x12x13x14x15": 88, "z10z11z12z13z14z15": 88, "x7x9x12x14": 88, "z7z9z12z14": 88, "x13x15x16x17": 88, "z13z15z16z17": 88, "x18x19x20x21": 88, "z18z19z20z21": 88, "x0x1x4x6x20x21": 88, "z0z1z4z6z20z21": 88, "x22x23x24x25x26x27": 88, "z22z23z24z25z26z27": 88, "x4x5x19x21x24x26": 88, "z4z5z19z21z24z26": 88, "x5x7x10x12x26x27": 88, "z5z7z10z12z26z27": 88, "x10x11x25x27x28x29": 88, "z10z11z25z27z28z29": 88, "x11x13x16x29": 88, "z11z13z16z29": 88, "x30x31x32x33": 88, "z30z31z32z33": 88, "x18x19x22x24x32x33": 88, "z18z19z22z24z32z33": 88, "x22x23x31x33x34x35": 88, "z22z23z31z33z34z35": 88, "x23x25x28x35": 88, "z23z25z28z35": 88, "x30x31x34x36": 88, "z30z31z34z36": 88, "70": 88, "8660254": 88, "73205081": 88, "bundl": 88, "71": 88, "orang": 88, "blue": 88, "basudha": 88, "srivastava": 88, "anton": 88, "frisk": 88, "kockum": 88, "mat": 88, "granath": 88, "22331": 88, "04": 88, "698": 88, "unus": 88, "_weight_len": 88, "len": 88, "m_grad": 88, "near_lin": 88, "find_ind": 88, "lines_": 88, "triangle_po": 88, "zip": 88, "on_line_indic": 88, "elif": 88, "line_ind": 88, "line_index": 88, "branch": 88, "yzx2_code_factori": 88, "51": 88, "52": 88, "yxz2_code": 88, "53": 88, "compass": 88, "illustr": 88, "journal": 88, "ap": 88, "prx": 88, "1103": 88, "physrevx": 88, "011022": 88, "chamberland": 88, "zhu": 88, "yoder": 88, "hertzberg": 88, "awc": 88, "prl": 88, "physrevlett": 88, "128": 88, "110504": 88, "kim": 88, "sundaresan": 88, "srinivasan": 88, "li": 88, "c\u00f3rcole": 88, "takita": 88, "2203": 88, "07205": 88, "harper": 88, "thorbeck": 88, "awcross1": 88, "54": 88, "nonumb": 88, "overbrac": 88, "prod_i": 88, "bulk": 88, "significantli": 88, "depth": 88, "stuctur": 88, "categori": 88, "outsid": 88, "pedagog": 88, "teach": 88, "scope": 88, "realiz": 88, "put": 88, "examin": 88, "signatur": 88, "translat": 88, "eigenst": 88, "ideal": 88, "dure": 88, "cycl": 88, "sensit": 88, "hypergraph": 88, "subsequ": 88, "mpl": 88, "quantumregist": 88, "classicalregist": 88, "examples_qasm": 88, "openqasm": 88, "ninclud": 88, "qelib1": 88, "inc": 88, "nqreg": 88, "code_qubit": 88, "link_qubit": 88, "ncreg": 88, "round_0_link_bit": 88, "round_1_link_bit": 88, "code_bit": 88, "nx": 88, "nbarrier": 88, "ncx": 88, "nmeasur": 88, "nreset": 88, "qasm": 88, "from_qasm_str": 88, "example_explan": 88, "unfortun": 88, "juli": 88, "cours": 88, "address": 88, "quantumjim": 88, "qec_lectur": 88, "jan": 88, "feb": 88, "2023": 88, "video": 88, "lectur": 88, "walk": 89, "wa": 89, "nicola": 89, "delfoss": 89, "naomi": 89, "nickerson": 89, "2020": 89, "almost": 89, "per": 89, "meet": 89, "grown": 89, "twice": 89, "unweight": 89, "relev": 89, "faultenumer": 89, "unionfinddecod": 89, "surfacecodecircuit": 89, "arccircuit": 89, "quit": 89, "last": 89, "05": 89, "add_oper": 89, "set_error_prob": 89, "handi": 89, "try": 89, "normal": 89, "circumst": 89, "pick": 89, "fault_enumer": 89, "join": 89, "corrected_outcom": 89, "logical_outcom": 89, "css_z_logic": 89, "assert": 89}, "objects": {"": [[5, 0, 0, "-", "qiskit_qec"]], "qiskit_qec": [[0, 0, 0, "-", "analysis"], [1, 0, 0, "-", "circuits"], [2, 0, 0, "-", "codes"], [3, 0, 0, "-", "decoders"], [4, 0, 0, "-", "geometry"], [6, 0, 0, "-", "info"], [7, 0, 0, "-", "linear"], [8, 0, 0, "-", "operators"], [9, 0, 0, "-", "structures"], [10, 0, 0, "-", "utils"]], "qiskit_qec.circuits": [[16, 1, 1, "", "ArcCircuit"], [17, 1, 1, "", "CSSCodeCircuit"], [18, 1, 1, "", "CodeCircuit"], [19, 1, 1, "", "RepetitionCodeCircuit"], [20, 1, 1, "", "SurfaceCodeCircuit"]], "qiskit_qec.circuits.ArcCircuit": [[16, 2, 1, "", "AVAILABLE_METHODS"], [16, 2, 1, "", "METHOD_NAIVE"], [16, 2, 1, "", "METHOD_SPITZ"], [16, 3, 1, "", "check_nodes"], [16, 3, 1, "", "clean_code"], [16, 3, 1, "", "flatten_nodes"], [16, 3, 1, "", "get_error_coords"], [16, 3, 1, "", "is_cluster_neutral"], [16, 3, 1, "", "measured_logicals"], [16, 3, 1, "", "string2nodes"], [16, 3, 1, "", "string2raw_logicals"], [16, 3, 1, "", "transpile"]], "qiskit_qec.circuits.CSSCodeCircuit": [[17, 3, 1, "", "check_nodes"], [17, 3, 1, "", "is_cluster_neutral"], [17, 3, 1, "", "measured_logicals"], [17, 3, 1, "", "stim_detectors"], [17, 3, 1, "", "string2nodes"], [17, 3, 1, "", "string2raw_logicals"]], "qiskit_qec.circuits.CodeCircuit": [[18, 3, 1, "", "check_nodes"], [18, 3, 1, "", "is_cluster_neutral"], [18, 3, 1, "", "measured_logicals"], [18, 3, 1, "", "string2nodes"]], "qiskit_qec.circuits.RepetitionCodeCircuit": [[19, 3, 1, "", "check_nodes"], [19, 3, 1, "", "get_circuit_list"], [19, 3, 1, "", "is_cluster_neutral"], [19, 3, 1, "", "measured_logicals"], [19, 3, 1, "", "partition_outcomes"], [19, 3, 1, "", "readout"], [19, 3, 1, "", "string2nodes"], [19, 3, 1, "", "string2raw_logicals"], [19, 3, 1, "", "syndrome_measurement"], [19, 3, 1, "", "x"]], "qiskit_qec.circuits.SurfaceCodeCircuit": [[20, 3, 1, "", "check_nodes"], [20, 3, 1, "", "get_circuit_list"], [20, 3, 1, "", "is_cluster_neutral"], [20, 3, 1, "", "measured_logicals"], [20, 3, 1, "", "readout"], [20, 3, 1, "", "string2nodes"], [20, 3, 1, "", "string2raw_logicals"], [20, 3, 1, "", "syndrome_measurement"], [20, 3, 1, "", "x"], [20, 3, 1, "", "z"]], "qiskit_qec.codes": [[21, 1, 1, "", "CodeLibrarian"], [22, 1, 1, "", "CodeLibrary"], [23, 1, 1, "", "QECCode"], [24, 1, 1, "", "StabSubSystemCode"], [25, 4, 1, "", "all_small_codes"], [26, 4, 1, "", "small_code"]], "qiskit_qec.codes.CodeLibrarian": [[21, 3, 1, "", "get"], [21, 2, 1, "", "n_dir_format"], [21, 2, 1, "", "n_k_codes_file_format"]], "qiskit_qec.codes.CodeLibrary": [[22, 3, 1, "", "data2code"], [22, 3, 1, "", "in_range"], [22, 3, 1, "", "search"]], "qiskit_qec.codes.StabSubSystemCode": [[24, 3, 1, "", "draw"], [24, 2, 1, "", "generators"], [24, 2, 1, "", "n"]], "qiskit_qec.decoders": [[27, 1, 1, "", "CircuitModelMatchingDecoder"], [28, 1, 1, "", "DecodingGraph"], [29, 1, 1, "", "RepetitionDecoder"], [30, 1, 1, "", "ThreeBitDecoder"], [31, 1, 1, "", "UnionFindDecoder"]], "qiskit_qec.decoders.CircuitModelMatchingDecoder": [[27, 2, 1, "", "AVAILABLE_METHODS"], [27, 2, 1, "", "METHOD_PYMATCHING"], [27, 2, 1, "", "METHOD_RETWORKX"], [27, 3, 1, "", "process"], [27, 3, 1, "", "update_edge_weights"]], "qiskit_qec.decoders.DecodingGraph": [[28, 2, 1, "", "AVAILABLE_METHODS"], [28, 2, 1, "", "METHOD_NAIVE"], [28, 2, 1, "", "METHOD_SPITZ"], [28, 3, 1, "", "clean_measurements"], [28, 3, 1, "", "edge_in_graph"], [28, 3, 1, "", "get_error_probs"], [28, 3, 1, "", "make_error_graph"], [28, 3, 1, "", "node_index"], [28, 3, 1, "", "update_attributes"], [28, 3, 1, "", "weight_syndrome_graph"]], "qiskit_qec.decoders.RepetitionDecoder": [[29, 2, 1, "", "AVAILABLE_METHODS"], [29, 2, 1, "", "METHOD_PYMATCHING"], [29, 2, 1, "", "METHOD_RETWORKX"], [29, 3, 1, "", "process"], [29, 3, 1, "", "update_edge_weights"]], "qiskit_qec.decoders.ThreeBitDecoder": [[30, 2, 1, "", "AVAILABLE_METHODS"], [30, 2, 1, "", "METHOD_PYMATCHING"], [30, 2, 1, "", "METHOD_RETWORKX"], [30, 3, 1, "", "process"], [30, 3, 1, "", "update_edge_weights"]], "qiskit_qec.decoders.UnionFindDecoder": [[31, 3, 1, "", "cluster"], [31, 3, 1, "", "find"], [31, 3, 1, "", "get_corrections"], [31, 3, 1, "", "neighbouring_edges"], [31, 3, 1, "", "peeling"], [31, 3, 1, "", "process"]], "qiskit_qec.geometry": [[32, 1, 1, "", "CheckerBoardTile"], [33, 1, 1, "", "DiagonalBarTile"], [34, 1, 1, "", "DiagonalHourGlassTile"], [35, 1, 1, "", "Edge"], [36, 1, 1, "", "Face"], [37, 1, 1, "", "GeometryBounds"], [38, 1, 1, "", "HexagonTile"], [39, 1, 1, "", "Lattice"], [40, 1, 1, "", "Manifold"], [41, 1, 1, "", "OctaSquareTile"], [42, 1, 1, "", "Plane"], [43, 1, 1, "", "QubitCount"], [44, 1, 1, "", "QubitData"], [45, 1, 1, "", "Shape"], [46, 1, 1, "", "ShapeObject"], [47, 1, 1, "", "Shell"], [48, 1, 1, "", "SquareDiamondTile"], [49, 1, 1, "", "Tile"], [50, 1, 1, "", "TileFactory"], [51, 1, 1, "", "Tiling"], [52, 1, 1, "", "TwoManifold"], [53, 1, 1, "", "Vertex"], [54, 1, 1, "", "WireFrame"]], "qiskit_qec.geometry.CheckerBoardTile": [[32, 3, 1, "", "draw"], [32, 2, 1, "", "face_colors"], [32, 2, 1, "", "faces_wf_components"], [32, 2, 1, "", "num_faces"], [32, 2, 1, "", "num_qubits"], [32, 2, 1, "", "size"], [32, 2, 1, "", "u_vec"], [32, 2, 1, "", "v_vec"], [32, 2, 1, "", "wf_coordinates"], [32, 2, 1, "", "wf_loop_indicator"], [32, 2, 1, "", "wf_operator_dict"], [32, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.DiagonalBarTile": [[33, 3, 1, "", "draw"], [33, 2, 1, "", "face_colors"], [33, 2, 1, "", "faces_wf_components"], [33, 2, 1, "", "num_faces"], [33, 2, 1, "", "num_qubits"], [33, 2, 1, "", "size"], [33, 2, 1, "", "u_vec"], [33, 2, 1, "", "v_vec"], [33, 2, 1, "", "wf_coordinates"], [33, 2, 1, "", "wf_loop_indicator"], [33, 2, 1, "", "wf_operator_dict"], [33, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.DiagonalHourGlassTile": [[34, 3, 1, "", "draw"], [34, 2, 1, "", "face_colors"], [34, 2, 1, "", "faces_wf_components"], [34, 2, 1, "", "num_faces"], [34, 2, 1, "", "num_qubits"], [34, 2, 1, "", "size"], [34, 2, 1, "", "u_vec"], [34, 2, 1, "", "v_vec"], [34, 2, 1, "", "wf_coordinates"], [34, 2, 1, "", "wf_loop_indicator"], [34, 2, 1, "", "wf_operator_dict"], [34, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.Edge": [[35, 3, 1, "", "add_parent"], [35, 3, 1, "", "create_id"], [35, 2, 1, "", "last_id"]], "qiskit_qec.geometry.Face": [[36, 3, 1, "", "add_parent"], [36, 3, 1, "", "create_id"], [36, 2, 1, "", "last_id"]], "qiskit_qec.geometry.GeometryBounds": [[37, 3, 1, "", "bounding_box_from_line"], [37, 3, 1, "", "combine"], [37, 3, 1, "", "contains"], [37, 3, 1, "", "copy"], [37, 3, 1, "", "expand"], [37, 3, 1, "", "intercepts"], [37, 3, 1, "", "set_min_max"]], "qiskit_qec.geometry.HexagonTile": [[38, 3, 1, "", "draw"], [38, 2, 1, "", "face_colors"], [38, 2, 1, "", "faces_wf_components"], [38, 2, 1, "", "h"], [38, 2, 1, "", "num_faces"], [38, 2, 1, "", "num_qubits"], [38, 2, 1, "", "r"], [38, 2, 1, "", "size"], [38, 2, 1, "", "u_vec"], [38, 2, 1, "", "v_vec"], [38, 2, 1, "", "wf_coordinates"], [38, 2, 1, "", "wf_loop_indicator"], [38, 2, 1, "", "wf_operator_dict"], [38, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.Lattice": [[39, 3, 1, "", "apply_transform_from"], [39, 3, 1, "", "find_pre_transform_length"], [39, 3, 1, "", "generate_points"], [39, 3, 1, "", "make_transform"], [39, 3, 1, "", "restrict"], [39, 3, 1, "", "restrict_for_tiling"]], "qiskit_qec.geometry.OctaSquareTile": [[41, 2, 1, "", "c8"], [41, 3, 1, "", "draw"], [41, 2, 1, "", "face_colors"], [41, 2, 1, "", "faces_wf_components"], [41, 2, 1, "", "num_faces"], [41, 2, 1, "", "num_qubits"], [41, 2, 1, "", "s8"], [41, 2, 1, "", "size"], [41, 2, 1, "", "u_vec"], [41, 2, 1, "", "v_vec"], [41, 2, 1, "", "wf_coordinates"], [41, 2, 1, "", "wf_loop_indicator"], [41, 2, 1, "", "wf_operator_dict"], [41, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.Plane": [[42, 3, 1, "", "ison"], [42, 3, 1, "", "rot_matrix"], [42, 3, 1, "", "rotate"]], "qiskit_qec.geometry.QubitCount": [[43, 3, 1, "", "decrement_qubit"], [43, 3, 1, "", "increment_qubit"], [43, 3, 1, "", "new_qubit"]], "qiskit_qec.geometry.QubitData": [[44, 3, 1, "", "add_data_array"], [44, 3, 1, "", "del_data_array"]], "qiskit_qec.geometry.Shape": [[45, 3, 1, "", "bounding_box_from_lines"], [45, 3, 1, "", "contains"], [45, 3, 1, "", "contains_quad_winding_number"], [45, 3, 1, "", "contains_ray_trace"], [45, 3, 1, "", "create_lines"], [45, 3, 1, "", "inside"], [45, 3, 1, "", "is_between"], [45, 3, 1, "", "rect"], [45, 3, 1, "", "square"]], "qiskit_qec.geometry.ShapeObject": [[46, 3, 1, "", "add_parent"], [46, 3, 1, "", "create_id"], [46, 2, 1, "", "last_id"]], "qiskit_qec.geometry.Shell": [[47, 3, 1, "", "add_parent"], [47, 3, 1, "", "create_id"], [47, 3, 1, "", "delete_subtree"], [47, 3, 1, "", "draw"], [47, 3, 1, "", "extract"], [47, 3, 1, "", "integer_snap"], [47, 2, 1, "", "last_id"], [47, 3, 1, "", "rotate2d"], [47, 3, 1, "", "scale"], [47, 3, 1, "", "shell2symplectic"], [47, 3, 1, "", "shift"], [47, 3, 1, "", "union"]], "qiskit_qec.geometry.SquareDiamondTile": [[48, 3, 1, "", "draw"], [48, 2, 1, "", "face_colors"], [48, 2, 1, "", "faces_wf_components"], [48, 2, 1, "", "num_faces"], [48, 2, 1, "", "num_qubits"], [48, 2, 1, "", "size"], [48, 2, 1, "", "u_vec"], [48, 2, 1, "", "v_vec"], [48, 2, 1, "", "wf_coordinates"], [48, 2, 1, "", "wf_loop_indicator"], [48, 2, 1, "", "wf_operator_dict"], [48, 2, 1, "", "wf_orientation"], [48, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.Tile": [[49, 3, 1, "", "draw"]], "qiskit_qec.geometry.Tiling": [[51, 3, 1, "", "distance"]], "qiskit_qec.geometry.Vertex": [[53, 3, 1, "", "add_parent"], [53, 3, 1, "", "create_id"], [53, 2, 1, "", "last_id"], [53, 2, 1, "", "position"], [53, 3, 1, "", "set_position"], [53, 3, 1, "", "shallowcopy"]], "qiskit_qec.geometry.WireFrame": [[54, 3, 1, "", "add_parent"], [54, 3, 1, "", "create_id"], [54, 2, 1, "", "last_id"]], "qiskit_qec.info": [[55, 1, 1, "", "Properties"]], "qiskit_qec.info.Properties": [[55, 2, 1, "", "AUT_GROUP_SIZE"], [55, 2, 1, "", "CITATION"], [55, 2, 1, "", "CODE_TYPES"], [55, 2, 1, "", "D"], [55, 2, 1, "", "GAUGE_GROUP"], [55, 2, 1, "", "HYPERBOLIC_GEN"], [55, 2, 1, "", "INDEX"], [55, 2, 1, "", "ISOTROPIC_GEN"], [55, 2, 1, "", "IS_CSS"], [55, 2, 1, "", "IS_CSS_KEY"], [55, 2, 1, "", "IS_DECOMPOSABLE"], [55, 2, 1, "", "IS_DECOMPOSABLE_KEY"], [55, 2, 1, "", "IS_DEGENERATE"], [55, 2, 1, "", "IS_DEGENERATE_KEY"], [55, 2, 1, "", "IS_GF4LINEAR"], [55, 2, 1, "", "IS_GF4LINEAR_KEY"], [55, 2, 1, "", "IS_TRIORTHOGONAL"], [55, 2, 1, "", "IS_TRIORTHOGONAL_KEY"], [55, 2, 1, "", "K"], [55, 2, 1, "", "LOGICAL_OPS"], [55, 2, 1, "", "N"], [55, 2, 1, "", "NAME"], [55, 2, 1, "", "STABILIZER"], [55, 2, 1, "", "TYPE"], [55, 2, 1, "", "UUID"], [55, 2, 1, "", "WEIGHT_ENUMERATOR"], [55, 2, 1, "", "info"]], "qiskit_qec.linear": [[56, 4, 1, "", "all_commute"], [57, 4, 1, "", "augment_mat"], [58, 4, 1, "", "build_hyper_partner"], [59, 4, 1, "", "create_lambda_matrix"], [60, 4, 1, "", "is_center"], [61, 4, 1, "", "is_hyper_form"], [62, 4, 1, "", "is_same_span"], [63, 4, 1, "", "is_stabilizer_group"], [64, 4, 1, "", "is_symplectic_form"], [65, 4, 1, "", "is_symplectic_matrix_form"], [66, 4, 1, "", "is_symplectic_vector_form"], [67, 4, 1, "", "locate_hyper_partner"], [68, 4, 1, "", "make_commute_hyper"], [69, 4, 1, "", "rank"], [70, 4, 1, "", "rref"], [71, 4, 1, "", "rref_complete"], [72, 4, 1, "", "symplectic_gram_schmidt"], [73, 4, 1, "", "symplectic_product"]], "qiskit_qec.operators": [[74, 1, 1, "", "BasePauli"], [75, 1, 1, "", "Pauli"], [76, 1, 1, "", "PauliList"]], "qiskit_qec.operators.BasePauli": [[74, 2, 1, "", "EXTERNAL_PAULI_ENCODING"], [74, 2, 1, "", "EXTERNAL_PHASE_ENCODING"], [74, 2, 1, "", "EXTERNAL_QUBIT_ORDER"], [74, 2, 1, "", "EXTERNAL_SYNTAX"], [74, 2, 1, "", "EXTERNAL_TENSOR_ENCODING"], [74, 2, 1, "", "PRINT_PHASE_ENCODING"], [74, 3, 1, "", "adjoint"], [74, 3, 1, "", "all_commutes"], [74, 3, 1, "", "commutes"], [74, 3, 1, "", "compose"], [74, 3, 1, "", "conjugate"], [74, 3, 1, "", "copy"], [74, 2, 1, "", "dim"], [74, 3, 1, "", "dot"], [74, 3, 1, "", "evolve"], [74, 3, 1, "", "expand"], [74, 3, 1, "", "input_dims"], [74, 2, 1, "", "num_qubits"], [74, 2, 1, "", "num_y"], [74, 3, 1, "", "output_dims"], [74, 2, 1, "", "pauli_encoding"], [74, 2, 1, "", "phase_encoding"], [74, 3, 1, "", "power"], [74, 2, 1, "", "print_phase_encoding"], [74, 2, 1, "", "qargs"], [74, 2, 1, "", "qubit_order"], [74, 3, 1, "", "reshape"], [74, 3, 1, "", "set_pauli_encoding"], [74, 3, 1, "", "set_phase_encoding"], [74, 3, 1, "", "set_print_phase_encoding"], [74, 3, 1, "", "set_qubit_order"], [74, 3, 1, "", "set_syntax"], [74, 3, 1, "", "set_tensor_encoding"], [74, 2, 1, "", "syntax"], [74, 3, 1, "", "tensor"], [74, 2, 1, "", "tensor_encoding"], [74, 3, 1, "", "to_label"], [74, 3, 1, "", "transpose"], [74, 2, 1, "", "x"], [74, 2, 1, "", "z"]], "qiskit_qec.operators.Pauli": [[75, 2, 1, "", "EXTERNAL_PAULI_ENCODING"], [75, 2, 1, "", "EXTERNAL_PHASE_ENCODING"], [75, 2, 1, "", "EXTERNAL_QUBIT_ORDER"], [75, 2, 1, "", "EXTERNAL_SYNTAX"], [75, 2, 1, "", "EXTERNAL_TENSOR_ENCODING"], [75, 2, 1, "", "PRINT_PHASE_ENCODING"], [75, 3, 1, "", "adjoint"], [75, 3, 1, "", "all_commutes"], [75, 3, 1, "", "anticommutes"], [75, 3, 1, "", "append_paulis"], [75, 3, 1, "", "commutes"], [75, 3, 1, "", "compose"], [75, 3, 1, "", "conjugate"], [75, 3, 1, "", "copy"], [75, 3, 1, "", "delete"], [75, 3, 1, "", "delete_qubits"], [75, 2, 1, "", "dim"], [75, 3, 1, "", "dot"], [75, 3, 1, "", "equiv"], [75, 3, 1, "", "evolve"], [75, 3, 1, "", "expand"], [75, 3, 1, "", "from_label"], [75, 3, 1, "", "input_dims"], [75, 3, 1, "", "insert"], [75, 3, 1, "", "insert_paulis"], [75, 3, 1, "", "instrs2symplectic"], [75, 3, 1, "", "inverse"], [75, 3, 1, "", "kron"], [75, 2, 1, "", "name"], [75, 2, 1, "", "num_clbits"], [75, 2, 1, "", "num_qubits"], [75, 2, 1, "", "num_y"], [75, 3, 1, "", "output_dims"], [75, 2, 1, "", "pauli_encoding"], [75, 3, 1, "", "pauli_single"], [75, 2, 1, "", "phase"], [75, 2, 1, "", "phase_encoding"], [75, 2, 1, "", "phase_exp"], [75, 2, 1, "", "pltb_int"], [75, 2, 1, "", "pltb_str"], [75, 3, 1, "", "power"], [75, 2, 1, "", "print_phase_encoding"], [75, 2, 1, "", "qargs"], [75, 2, 1, "", "qubit_order"], [75, 3, 1, "", "random"], [75, 3, 1, "", "reshape"], [75, 3, 1, "", "set_pauli_encoding"], [75, 3, 1, "", "set_phase_encoding"], [75, 3, 1, "", "set_print_phase_encoding"], [75, 3, 1, "", "set_qubit_order"], [75, 3, 1, "", "set_syntax"], [75, 3, 1, "", "set_tensor_encoding"], [75, 3, 1, "", "set_truncation"], [75, 2, 1, "", "settings"], [75, 3, 1, "", "sgn_prod"], [75, 2, 1, "", "syntax"], [75, 3, 1, "", "tensor"], [75, 2, 1, "", "tensor_encoding"], [75, 3, 1, "", "to_cpx_matrix"], [75, 3, 1, "", "to_instruction"], [75, 3, 1, "", "to_label"], [75, 3, 1, "", "to_matrix"], [75, 3, 1, "", "to_spmatrix"], [75, 3, 1, "", "transpose"], [75, 3, 1, "", "update_x"], [75, 3, 1, "", "update_z"], [75, 2, 1, "", "x"], [75, 2, 1, "", "z"]], "qiskit_qec.operators.PauliList": [[76, 2, 1, "", "EXTERNAL_PAULI_ENCODING"], [76, 2, 1, "", "EXTERNAL_PHASE_ENCODING"], [76, 2, 1, "", "EXTERNAL_QUBIT_ORDER"], [76, 2, 1, "", "EXTERNAL_SYNTAX"], [76, 2, 1, "", "EXTERNAL_TENSOR_ENCODING"], [76, 2, 1, "", "PRINT_PHASE_ENCODING"], [76, 3, 1, "", "adjoint"], [76, 3, 1, "", "all_commutes"], [76, 3, 1, "", "anticommutes"], [76, 3, 1, "", "anticommutes_with_all"], [76, 3, 1, "", "argsort"], [76, 3, 1, "", "commutes"], [76, 3, 1, "", "commutes_with_all"], [76, 3, 1, "", "compose"], [76, 3, 1, "", "conjugate"], [76, 3, 1, "", "copy"], [76, 3, 1, "", "delete"], [76, 2, 1, "", "dim"], [76, 3, 1, "", "dot"], [76, 3, 1, "", "evolve"], [76, 3, 1, "", "expand"], [76, 3, 1, "", "from_symplectic"], [76, 3, 1, "", "getaslist"], [76, 3, 1, "", "group_qubit_wise_commuting"], [76, 3, 1, "", "input_dims"], [76, 3, 1, "", "insert"], [76, 3, 1, "", "inverse"], [76, 3, 1, "", "label_iter"], [76, 3, 1, "", "matrix_iter"], [76, 2, 1, "", "num_paulis"], [76, 2, 1, "", "num_qubits"], [76, 2, 1, "", "num_y"], [76, 3, 1, "", "output_dims"], [76, 2, 1, "", "pauli_encoding"], [76, 2, 1, "", "phase"], [76, 2, 1, "", "phase_encoding"], [76, 2, 1, "", "phase_exp"], [76, 3, 1, "", "power"], [76, 2, 1, "", "print_phase_encoding"], [76, 2, 1, "", "qargs"], [76, 2, 1, "", "qubit_order"], [76, 3, 1, "", "reshape"], [76, 3, 1, "", "set_pauli_encoding"], [76, 3, 1, "", "set_phase_encoding"], [76, 3, 1, "", "set_print_phase_encoding"], [76, 3, 1, "", "set_qubit_order"], [76, 3, 1, "", "set_syntax"], [76, 3, 1, "", "set_tensor_encoding"], [76, 2, 1, "", "settings"], [76, 2, 1, "", "shape"], [76, 2, 1, "", "size"], [76, 3, 1, "", "sort"], [76, 2, 1, "", "syntax"], [76, 3, 1, "", "tensor"], [76, 2, 1, "", "tensor_encoding"], [76, 3, 1, "", "to_label"], [76, 3, 1, "", "to_labels"], [76, 3, 1, "", "to_matrix"], [76, 3, 1, "", "transpose"], [76, 3, 1, "", "unique"], [76, 2, 1, "", "x"], [76, 2, 1, "", "z"]], "qiskit_qec.structures": [[77, 1, 1, "", "GaugeGroup"], [78, 1, 1, "", "Group"]], "qiskit_qec.structures.GaugeGroup": [[77, 2, 1, "", "k"], [77, 2, 1, "", "n"], [77, 2, 1, "", "num_gen"]], "qiskit_qec.utils": [[79, 1, 1, "", "DecodingGraphEdge"], [80, 1, 1, "", "DecodingGraphNode"], [81, 4, 1, "", "get_counts_via_stim"], [82, 4, 1, "", "get_stim_circuits"], [83, 0, 0, "-", "indexer"], [84, 4, 1, "", "noisify_circuit"], [85, 0, 0, "-", "pauli_rep"], [86, 0, 0, "-", "visualizations"]], "qiskit_qec.utils.DecodingGraphEdge": [[79, 3, 1, "", "get"], [79, 2, 1, "", "properties"], [79, 2, 1, "", "qubits"], [79, 2, 1, "", "weight"]], "qiskit_qec.utils.DecodingGraphNode": [[80, 3, 1, "", "get"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "titleterms": {"analysi": 0, "qiskit_qec": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 25, 26, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 82, 83, 84, 85, 86, 89], "modul": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10], "class": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10], "function": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10], "circuit": [1, 88], "code": [2, 12, 25, 26, 88], "decod": [3, 88, 89], "geometri": [4, 13], "qiskit": [5, 14, 15, 88], "qec": [5, 11, 14, 15, 88, 90], "api": 5, "refer": 5, "info": 6, "linear": [7, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "matrix": [7, 12], "symplect": [7, 12, 88], "oper": [8, 88], "structur": [9, 88], "util": [10, 81, 82, 83, 84, 85, 86], "discuss": 11, "how": [12, 13, 14], "creat": [12, 88], "classs": [12, 88], "factori": [12, 88], "builder": [12, 88], "librari": [12, 88], "databas": [12, 88], "provid": [12, 88], "stabil": [12, 88], "gaug": [12, 88], "gener": [12, 88], "string": [12, 88], "load": 12, "via": 12, "codebas": 12, "configur": 12, "run": 12, "tilecodefactori": 12, "specif": 12, "codebuild": 12, "work": 13, "object": 13, "guid": [14, 88], "document": 15, "arccircuit": 16, "csscodecircuit": 17, "codecircuit": 18, "repetitioncodecircuit": 19, "surfacecodecircuit": 20, "codelibrarian": 21, "codelibrari": 22, "qeccod": 23, "stabsubsystemcod": 24, "all_small_cod": 25, "small_cod": 26, "circuitmodelmatchingdecod": 27, "decodinggraph": 28, "repetitiondecod": 29, "threebitdecod": 30, "unionfinddecod": 31, "checkerboardtil": 32, "diagonalbartil": 33, "diagonalhourglasstil": 34, "edg": [35, 88], "face": [36, 88], "geometrybound": 37, "hexagontil": 38, "lattic": 39, "manifold": 40, "octasquaretil": 41, "plane": 42, "qubitcount": 43, "qubitdata": 44, "shape": 45, "shapeobject": 46, "shell": 47, "squarediamondtil": 48, "tile": [49, 51, 88], "tilefactori": [50, 88], "twomanifold": 52, "vertex": 53, "wirefram": 54, "properti": 55, "all_commut": 56, "augment_mat": 57, "build_hyper_partn": 58, "create_lambda_matrix": 59, "is_cent": 60, "is_hyper_form": 61, "is_same_span": 62, "is_stabilizer_group": 63, "is_symplectic_form": 64, "is_symplectic_matrix_form": 65, "is_symplectic_vector_form": 66, "locate_hyper_partn": 67, "make_commute_hyp": 68, "rank": 69, "rref": 70, "rref_complet": 71, "symplectic_gram_schmidt": 72, "symplectic_product": 73, "basepauli": 74, "pauli": [75, 76, 88], "paulilist": 76, "represent": [76, 88], "gaugegroup": 77, "group": [78, 88], "decodinggraphedg": 79, "decodinggraphnod": 80, "get_counts_via_stim": 81, "get_stim_circuit": 82, "index": 83, "noisify_circuit": 84, "pauli_rep": 85, "visual": 86, "tutori": [87, 90], "exampl": [87, 88], "softwar": 88, "framework": 88, "design": 88, "layer": 88, "compon": 88, "now": 88, "futur": 88, "The": 88, "creator": 88, "interactor": 88, "commmand": 88, "line": 88, "program": 88, "interfac": 88, "instal": 88, "content": 88, "set": 88, "up": 88, "python": 88, "environ": 88, "option": 88, "1": 88, "conda": 88, "recommend": 88, "2": 88, "venv": 88, "includ": 88, "depend": 88, "quantum": 88, "error": 88, "correct": 88, "repitit": 88, "classici": 88, "challeng": 88, "condit": 88, "subsystem": 88, "syntax": 88, "isotrop": 88, "hyperbol": 88, "gram": 88, "schmidt": 88, "process": 88, "surfac": 88, "toric": 88, "dual": 88, "qubit": 88, "vertic": 88, "rorat": 88, "find": [88, 89], "logic": 88, "center": 88, "normal": 88, "minin": 88, "distanc": 88, "basic": 88, "algorithm": 88, "minimum": 88, "improv": 88, "comput": 88, "clifford": 88, "equival": 88, "build": 88, "A": 88, "detail": 88, "someth": 88, "more": 88, "simul": 88, "fault": 88, "toler": 88, "us": 89, "union": 89}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "nbsphinx": 4, "sphinx": 60}, "alltitles": {"Analysis (qiskit_qec.analysis)": [[0, "analysis-qiskit-qec-analysis"]], "Analysis module classes and functions": [[0, "analysis-module-classes-and-functions"]], "Circuits (qiskit_qec.circuits)": [[1, "circuits-qiskit-qec-circuits"]], "Circuits module classes and functions": [[1, "circuits-module-classes-and-functions"]], "Codes (qiskit_qec.codes)": [[2, "codes-qiskit-qec-codes"]], "Codes module classes and functions": [[2, "codes-module-classes-and-functions"]], "Decoders (qiskit_qec.decoders)": [[3, "decoders-qiskit-qec-decoders"]], "Decoders module classes and functions": [[3, "decoders-module-classes-and-functions"]], "Geometry (qiskit_qec.geometry)": [[4, "geometry-qiskit-qec-geometry"]], "Geometry module classes and functions": [[4, "geometry-module-classes-and-functions"]], "Qiskit QEC API Reference": [[5, "qiskit-qec-api-reference"]], "Info (qiskit_qec.info)": [[6, "info-qiskit-qec-info"]], "Info module classes and functions": [[6, "info-module-classes-and-functions"]], "Linear (qiskit_qec.linear)": [[7, "linear-qiskit-qec-linear"]], "Linear module classes and functions": [[7, "linear-module-classes-and-functions"]], "Linear matrix functions": [[7, "linear-matrix-functions"]], "Linear symplectic functions": [[7, "linear-symplectic-functions"]], "Operators (qiskit_qec.operators)": [[8, "operators-qiskit-qec-operators"]], "Operators module classes and functions": [[8, "operators-module-classes-and-functions"]], "Structures (qiskit_qec.structures)": [[9, "structures-qiskit-qec-structures"]], "Structures module classes and functions": [[9, "structures-module-classes-and-functions"]], "Utils (qiskit_qec.utils)": [[10, "utils-qiskit-qec-utils"]], "Utils module classes and functions": [[10, "utils-module-classes-and-functions"]], "QEC Discussions": [[11, "qec-discussions"]], "How-to: Create Codes": [[12, "How-to:-Create-Codes"]], "Code Classs": [[12, "Code-Classs"], [88, "Code-Classs"]], "Code Factories": [[12, "Code-Factories"], [88, "Code-Factories"]], "Code Builders": [[12, "Code-Builders"], [88, "Code-Builders"], [88, "id9"]], "Code Library/Database": [[12, "Code-Library/Database"], [88, "Code-Library/Database"], [88, "id5"]], "Creating Codes": [[12, "Creating-Codes"], [88, "Creating-Codes"]], "Creating a symplectic matrix": [[12, "Creating-a-symplectic-matrix"]], "Providing the stabilizer/gauge generators as strings": [[12, "Providing-the-stabilizer/gauge-generators-as-strings"], [88, "Providing-the-stabilizer/gauge-generators-as-strings"]], "Loading a code via the codebase libraries": [[12, "Loading-a-code-via-the-codebase-libraries"]], "Configuring and running a TileCodeFactory": [[12, "Configuring-and-running-a-TileCodeFactory"]], "Configuring and running a specific CodeBuilder": [[12, "Configuring-and-running-a-specific-CodeBuilder"]], "How-to: work with geometry objects": [[13, "How-to:-work-with-geometry-objects"]], "Qiskit QEC How-to guides": [[14, "qiskit-qec-how-to-guides"]], "Qiskit QEC documentation": [[15, "qiskit-qec-documentation"]], "ArcCircuit": [[16, "arccircuit"]], "CSSCodeCircuit": [[17, "csscodecircuit"]], "CodeCircuit": [[18, "codecircuit"]], "RepetitionCodeCircuit": [[19, "repetitioncodecircuit"]], "SurfaceCodeCircuit": [[20, "surfacecodecircuit"]], "CodeLibrarian": [[21, "codelibrarian"]], "CodeLibrary": [[22, "codelibrary"]], "QECCode": [[23, "qeccode"]], "StabSubSystemCode": [[24, "stabsubsystemcode"]], "qiskit_qec.codes.all_small_codes": [[25, "qiskit-qec-codes-all-small-codes"]], "qiskit_qec.codes.small_code": [[26, "qiskit-qec-codes-small-code"]], "CircuitModelMatchingDecoder": [[27, "circuitmodelmatchingdecoder"]], "DecodingGraph": [[28, "decodinggraph"]], "RepetitionDecoder": [[29, "repetitiondecoder"]], "ThreeBitDecoder": [[30, "threebitdecoder"]], "UnionFindDecoder": [[31, "unionfinddecoder"]], "CheckerBoardTile": [[32, "checkerboardtile"]], "DiagonalBarTile": [[33, "diagonalbartile"]], "DiagonalHourGlassTile": [[34, "diagonalhourglasstile"]], "Edge": [[35, "edge"]], "Face": [[36, "face"]], "GeometryBounds": [[37, "geometrybounds"]], "HexagonTile": [[38, "hexagontile"]], "Lattice": [[39, "lattice"]], "Manifold": [[40, "manifold"]], "OctaSquareTile": [[41, "octasquaretile"]], "Plane": [[42, "plane"]], "QubitCount": [[43, "qubitcount"]], "QubitData": [[44, "qubitdata"]], "Shape": [[45, "shape"]], "ShapeObject": [[46, "shapeobject"]], "Shell": [[47, "shell"]], "SquareDiamondTile": [[48, "squarediamondtile"]], "Tile": [[49, "tile"]], "TileFactory": [[50, "tilefactory"]], "Tiling": [[51, "tiling"]], "TwoManifold": [[52, "twomanifold"]], "Vertex": [[53, "vertex"]], "WireFrame": [[54, "wireframe"]], "Properties": [[55, "properties"]], "qiskit_qec.linear.all_commute": [[56, "qiskit-qec-linear-all-commute"]], "qiskit_qec.linear.augment_mat": [[57, "qiskit-qec-linear-augment-mat"]], "qiskit_qec.linear.build_hyper_partner": [[58, "qiskit-qec-linear-build-hyper-partner"]], "qiskit_qec.linear.create_lambda_matrix": [[59, "qiskit-qec-linear-create-lambda-matrix"]], "qiskit_qec.linear.is_center": [[60, "qiskit-qec-linear-is-center"]], "qiskit_qec.linear.is_hyper_form": [[61, "qiskit-qec-linear-is-hyper-form"]], "qiskit_qec.linear.is_same_span": [[62, "qiskit-qec-linear-is-same-span"]], "qiskit_qec.linear.is_stabilizer_group": [[63, "qiskit-qec-linear-is-stabilizer-group"]], "qiskit_qec.linear.is_symplectic_form": [[64, "qiskit-qec-linear-is-symplectic-form"]], "qiskit_qec.linear.is_symplectic_matrix_form": [[65, "qiskit-qec-linear-is-symplectic-matrix-form"]], "qiskit_qec.linear.is_symplectic_vector_form": [[66, "qiskit-qec-linear-is-symplectic-vector-form"]], "qiskit_qec.linear.locate_hyper_partner": [[67, "qiskit-qec-linear-locate-hyper-partner"]], "qiskit_qec.linear.make_commute_hyper": [[68, "qiskit-qec-linear-make-commute-hyper"]], "qiskit_qec.linear.rank": [[69, "qiskit-qec-linear-rank"]], "qiskit_qec.linear.rref": [[70, "qiskit-qec-linear-rref"]], "qiskit_qec.linear.rref_complete": [[71, "qiskit-qec-linear-rref-complete"]], "qiskit_qec.linear.symplectic_gram_schmidt": [[72, "qiskit-qec-linear-symplectic-gram-schmidt"]], "qiskit_qec.linear.symplectic_product": [[73, "qiskit-qec-linear-symplectic-product"]], "BasePauli": [[74, "basepauli"]], "Pauli": [[75, "pauli"]], "PauliList": [[76, "paulilist"]], "Pauli Representations": [[76, "id1"], [76, "id2"]], "GaugeGroup": [[77, "gaugegroup"]], "Group": [[78, "group"]], "DecodingGraphEdge": [[79, "decodinggraphedge"]], "DecodingGraphNode": [[80, "decodinggraphnode"]], "qiskit_qec.utils.get_counts_via_stim": [[81, "qiskit-qec-utils-get-counts-via-stim"]], "qiskit_qec.utils.get_stim_circuits": [[82, "qiskit-qec-utils-get-stim-circuits"]], "qiskit_qec.utils.indexer": [[83, "module-qiskit_qec.utils.indexer"]], "qiskit_qec.utils.noisify_circuit": [[84, "qiskit-qec-utils-noisify-circuit"]], "qiskit_qec.utils.pauli_rep": [[85, "module-qiskit_qec.utils.pauli_rep"]], "qiskit_qec.utils.visualizations": [[86, "module-qiskit_qec.utils.visualizations"]], "Tutorial: example": [[87, "Tutorial:-example"]], "Qiskit QEC Software Framework": [[88, "Qiskit-QEC-Software-Framework"]], "Framework Design": [[88, "Framework-Design"]], "Layer Design": [[88, "Layer-Design"]], "Framework Components (Now and Future)": [[88, "Framework-Components-(Now-and-Future)"]], "The Creator": [[88, "The-Creator"]], "The Interactor": [[88, "The-Interactor"]], "Commmand Line/Programming Interface": [[88, "Commmand-Line/Programming-Interface"]], "Structure": [[88, "Structure"]], "Installation guide": [[88, "Installation-guide"]], "Content": [[88, "Content"]], "Setting up python environment": [[88, "Setting-up-python-environment"]], "Option 1: conda (recommended)": [[88, "Option-1:-conda-(recommended)"]], "Option 2: venv (included in Python)": [[88, "Option-2:-venv-(included-in-Python)"]], "Installing": [[88, "Installing"]], "Installing optional dependencies": [[88, "Installing-optional-dependencies"]], "Quantum Error Correction": [[88, "Quantum-Error-Correction"], [88, "id1"]], "Repitition Code (Classicial)": [[88, "Repitition-Code-(Classicial)"]], "Challenges": [[88, "Challenges"]], "Quantum Error Correcting Codes": [[88, "Quantum-Error-Correcting-Codes"]], "Error Correcting Conditions": [[88, "Error-Correcting-Conditions"]], "Stabilizer Subsystem Codes": [[88, "Stabilizer-Subsystem-Codes"], [88, "id4"]], "Pauli Operators and Groups": [[88, "Pauli-Operators-and-Groups"], [88, "id2"]], "Representation of Pauli Operators": [[88, "Representation-of-Pauli-Operators"]], "String Syntax": [[88, "String-Syntax"]], "Symplectic Representations": [[88, "Symplectic-Representations"]], "Isotropic-Hyperbolic Generating Sets": [[88, "Isotropic-Hyperbolic-Generating-Sets"]], "Symplectic Gram-Schmidt Process": [[88, "Symplectic-Gram-Schmidt-Process"]], "Stabilizer SubSystem Codes": [[88, "Stabilizer-SubSystem-Codes"]], "Stabilizer Groups": [[88, "Stabilizer-Groups"]], "Stabilizer Codes": [[88, "Stabilizer-Codes"]], "Example Stabilizer Codes - Surface Codes": [[88, "Example-Stabilizer-Codes---Surface-Codes"]], "The Toric Code (Dual Representation - Qubits on edges)": [[88, "The-Toric-Code-(Dual-Representation---Qubits-on-edges)"], [88, "id6"]], "The Toric Code (Face Representation Qubits on vertices)": [[88, "The-Toric-Code-(Face-Representation-Qubits-on-vertices)"], [88, "id7"]], "Rorated Surface Code (Face Representation - Qubits on vertices)": [[88, "Rorated-Surface-Code-(Face-Representation---Qubits-on-vertices)"], [88, "id8"]], "Gauge Groups": [[88, "Gauge-Groups"]], "Finding Logical Operators": [[88, "Finding-Logical-Operators"]], "Centeralizer and Normalizer": [[88, "Centeralizer-and-Normalizer"]], "Finding Mininal Distances": [[88, "Finding-Mininal-Distances"]], "Basic algorithm for the minimum distance of (subsystem) stabilizer codes": [[88, "Basic-algorithm-for-the-minimum-distance-of-(subsystem)-stabilizer-codes"]], "Improved algorithm for computing the minimum distance": [[88, "Improved-algorithm-for-computing-the-minimum-distance"]], "Clifford Groups": [[88, "Clifford-Groups"]], "Finding Equivalent Subsystem Codes": [[88, "Finding-Equivalent-Subsystem-Codes"]], "Building Codes": [[88, "Building-Codes"]], "Surface Codes": [[88, "Surface-Codes"]], "TileFactories": [[88, "TileFactories"]], "Tiles": [[88, "Tiles"]], "A Tile in Detail": [[88, "A-Tile-in-Detail"]], "Tile Factory": [[88, "Tile-Factory"]], "Now for something more challenging": [[88, "Now-for-something-more-challenging"]], "Simulating fault-tolerant error-correction circuits": [[88, "Simulating-fault-tolerant-error-correction-circuits"]], "Decoders": [[88, "Decoders"]], "Using the Union Find decoder in qiskit_qec": [[89, "Using-the-Union-Find-decoder-in-qiskit_qec"]], "QEC Tutorials": [[90, "qec-tutorials"]]}, "indexentries": {"module": [[0, "module-qiskit_qec.analysis"], [1, "module-qiskit_qec.circuits"], [2, "module-qiskit_qec.codes"], [3, "module-qiskit_qec.decoders"], [4, "module-qiskit_qec.geometry"], [5, "module-qiskit_qec"], [6, "module-qiskit_qec.info"], [7, "module-qiskit_qec.linear"], [8, "module-qiskit_qec.operators"], [9, "module-qiskit_qec.structures"], [10, "module-qiskit_qec.utils"], [83, "module-qiskit_qec.utils.indexer"], [85, "module-qiskit_qec.utils.pauli_rep"], [86, "module-qiskit_qec.utils.visualizations"]], "qiskit_qec.analysis": [[0, "module-qiskit_qec.analysis"]], "qiskit_qec.circuits": [[1, "module-qiskit_qec.circuits"]], "qiskit_qec.codes": [[2, "module-qiskit_qec.codes"]], "qiskit_qec.decoders": [[3, "module-qiskit_qec.decoders"]], "qiskit_qec.geometry": [[4, "module-qiskit_qec.geometry"]], "qiskit_qec": [[5, "module-qiskit_qec"]], "qiskit_qec.info": [[6, "module-qiskit_qec.info"]], "qiskit_qec.linear": [[7, "module-qiskit_qec.linear"]], "qiskit_qec.operators": [[8, "module-qiskit_qec.operators"]], "qiskit_qec.structures": [[9, "module-qiskit_qec.structures"]], "qiskit_qec.utils": [[10, "module-qiskit_qec.utils"]], "available_methods (arccircuit attribute)": [[16, "qiskit_qec.circuits.ArcCircuit.AVAILABLE_METHODS"]], "arccircuit (class in qiskit_qec.circuits)": [[16, "qiskit_qec.circuits.ArcCircuit"]], "method_naive (arccircuit attribute)": [[16, "qiskit_qec.circuits.ArcCircuit.METHOD_NAIVE"]], "method_spitz (arccircuit attribute)": [[16, "qiskit_qec.circuits.ArcCircuit.METHOD_SPITZ"]], "check_nodes() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.check_nodes"]], "clean_code() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.clean_code"]], "flatten_nodes() (arccircuit static method)": [[16, "qiskit_qec.circuits.ArcCircuit.flatten_nodes"]], "get_error_coords() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.get_error_coords"]], "is_cluster_neutral() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.is_cluster_neutral"]], "measured_logicals() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.measured_logicals"]], "string2nodes() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.string2nodes"]], "string2raw_logicals() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.string2raw_logicals"]], "transpile() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.transpile"]], "csscodecircuit (class in qiskit_qec.circuits)": [[17, "qiskit_qec.circuits.CSSCodeCircuit"]], "check_nodes() (csscodecircuit method)": [[17, "qiskit_qec.circuits.CSSCodeCircuit.check_nodes"]], "is_cluster_neutral() (csscodecircuit method)": [[17, "qiskit_qec.circuits.CSSCodeCircuit.is_cluster_neutral"]], "measured_logicals() (csscodecircuit method)": [[17, "qiskit_qec.circuits.CSSCodeCircuit.measured_logicals"]], "stim_detectors() (csscodecircuit method)": [[17, "qiskit_qec.circuits.CSSCodeCircuit.stim_detectors"]], "string2nodes() (csscodecircuit method)": [[17, "qiskit_qec.circuits.CSSCodeCircuit.string2nodes"]], "string2raw_logicals() (csscodecircuit method)": [[17, "qiskit_qec.circuits.CSSCodeCircuit.string2raw_logicals"]], "codecircuit (class in qiskit_qec.circuits)": [[18, "qiskit_qec.circuits.CodeCircuit"]], "check_nodes() (codecircuit method)": [[18, "qiskit_qec.circuits.CodeCircuit.check_nodes"]], "is_cluster_neutral() (codecircuit method)": [[18, "qiskit_qec.circuits.CodeCircuit.is_cluster_neutral"]], "measured_logicals() (codecircuit method)": [[18, "qiskit_qec.circuits.CodeCircuit.measured_logicals"]], "string2nodes() (codecircuit method)": [[18, "qiskit_qec.circuits.CodeCircuit.string2nodes"]], "repetitioncodecircuit (class in qiskit_qec.circuits)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit"]], "check_nodes() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.check_nodes"]], "get_circuit_list() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.get_circuit_list"]], "is_cluster_neutral() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.is_cluster_neutral"]], "measured_logicals() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.measured_logicals"]], "partition_outcomes() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.partition_outcomes"]], "readout() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.readout"]], "string2nodes() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.string2nodes"]], "string2raw_logicals() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.string2raw_logicals"]], "syndrome_measurement() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.syndrome_measurement"]], "x() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.x"]], "surfacecodecircuit (class in qiskit_qec.circuits)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit"]], "check_nodes() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.check_nodes"]], "get_circuit_list() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.get_circuit_list"]], "is_cluster_neutral() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.is_cluster_neutral"]], "measured_logicals() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.measured_logicals"]], "readout() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.readout"]], "string2nodes() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.string2nodes"]], "string2raw_logicals() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.string2raw_logicals"]], "syndrome_measurement() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.syndrome_measurement"]], "x() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.x"]], "z() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.z"]], "codelibrarian (class in qiskit_qec.codes)": [[21, "qiskit_qec.codes.CodeLibrarian"]], "get() (codelibrarian method)": [[21, "qiskit_qec.codes.CodeLibrarian.get"]], "n_dir_format (codelibrarian attribute)": [[21, "qiskit_qec.codes.CodeLibrarian.n_dir_format"]], "n_k_codes_file_format (codelibrarian attribute)": [[21, "qiskit_qec.codes.CodeLibrarian.n_k_codes_file_format"]], "codelibrary (class in qiskit_qec.codes)": [[22, "qiskit_qec.codes.CodeLibrary"]], "data2code() (codelibrary static method)": [[22, "qiskit_qec.codes.CodeLibrary.data2code"]], "in_range() (codelibrary method)": [[22, "qiskit_qec.codes.CodeLibrary.in_range"]], "search() (codelibrary method)": [[22, "qiskit_qec.codes.CodeLibrary.search"]], "qeccode (class in qiskit_qec.codes)": [[23, "qiskit_qec.codes.QECCode"]], "stabsubsystemcode (class in qiskit_qec.codes)": [[24, "qiskit_qec.codes.StabSubSystemCode"]], "draw() (stabsubsystemcode method)": [[24, "qiskit_qec.codes.StabSubSystemCode.draw"]], "generators (stabsubsystemcode attribute)": [[24, "qiskit_qec.codes.StabSubSystemCode.generators"]], "n (stabsubsystemcode attribute)": [[24, "qiskit_qec.codes.StabSubSystemCode.n"]], "all_small_codes() (in module qiskit_qec.codes)": [[25, "qiskit_qec.codes.all_small_codes"]], "small_code() (in module qiskit_qec.codes)": [[26, "qiskit_qec.codes.small_code"]], "available_methods (circuitmodelmatchingdecoder attribute)": [[27, "qiskit_qec.decoders.CircuitModelMatchingDecoder.AVAILABLE_METHODS"]], "circuitmodelmatchingdecoder (class in qiskit_qec.decoders)": [[27, "qiskit_qec.decoders.CircuitModelMatchingDecoder"]], "method_pymatching (circuitmodelmatchingdecoder attribute)": [[27, "qiskit_qec.decoders.CircuitModelMatchingDecoder.METHOD_PYMATCHING"]], "method_retworkx (circuitmodelmatchingdecoder attribute)": [[27, "qiskit_qec.decoders.CircuitModelMatchingDecoder.METHOD_RETWORKX"]], "process() (circuitmodelmatchingdecoder method)": [[27, "qiskit_qec.decoders.CircuitModelMatchingDecoder.process"]], "update_edge_weights() (circuitmodelmatchingdecoder method)": [[27, "qiskit_qec.decoders.CircuitModelMatchingDecoder.update_edge_weights"]], "available_methods (decodinggraph attribute)": [[28, "qiskit_qec.decoders.DecodingGraph.AVAILABLE_METHODS"]], "decodinggraph (class in qiskit_qec.decoders)": [[28, "qiskit_qec.decoders.DecodingGraph"]], "method_naive (decodinggraph attribute)": [[28, "qiskit_qec.decoders.DecodingGraph.METHOD_NAIVE"]], "method_spitz (decodinggraph attribute)": [[28, "qiskit_qec.decoders.DecodingGraph.METHOD_SPITZ"]], "clean_measurements() (decodinggraph method)": [[28, "qiskit_qec.decoders.DecodingGraph.clean_measurements"]], "edge_in_graph() (decodinggraph method)": [[28, "qiskit_qec.decoders.DecodingGraph.edge_in_graph"]], "get_error_probs() (decodinggraph method)": [[28, "qiskit_qec.decoders.DecodingGraph.get_error_probs"]], "make_error_graph() (decodinggraph method)": [[28, "qiskit_qec.decoders.DecodingGraph.make_error_graph"]], "node_index() (decodinggraph method)": [[28, "qiskit_qec.decoders.DecodingGraph.node_index"]], "update_attributes() (decodinggraph method)": [[28, "qiskit_qec.decoders.DecodingGraph.update_attributes"]], "weight_syndrome_graph() (decodinggraph method)": [[28, "qiskit_qec.decoders.DecodingGraph.weight_syndrome_graph"]], "available_methods (repetitiondecoder attribute)": [[29, "qiskit_qec.decoders.RepetitionDecoder.AVAILABLE_METHODS"]], "method_pymatching (repetitiondecoder attribute)": [[29, "qiskit_qec.decoders.RepetitionDecoder.METHOD_PYMATCHING"]], "method_retworkx (repetitiondecoder attribute)": [[29, "qiskit_qec.decoders.RepetitionDecoder.METHOD_RETWORKX"]], "repetitiondecoder (class in qiskit_qec.decoders)": [[29, "qiskit_qec.decoders.RepetitionDecoder"]], "process() (repetitiondecoder method)": [[29, "qiskit_qec.decoders.RepetitionDecoder.process"]], "update_edge_weights() (repetitiondecoder method)": [[29, "qiskit_qec.decoders.RepetitionDecoder.update_edge_weights"]], "available_methods (threebitdecoder attribute)": [[30, "qiskit_qec.decoders.ThreeBitDecoder.AVAILABLE_METHODS"]], "method_pymatching (threebitdecoder attribute)": [[30, "qiskit_qec.decoders.ThreeBitDecoder.METHOD_PYMATCHING"]], "method_retworkx (threebitdecoder attribute)": [[30, "qiskit_qec.decoders.ThreeBitDecoder.METHOD_RETWORKX"]], "threebitdecoder (class in qiskit_qec.decoders)": [[30, "qiskit_qec.decoders.ThreeBitDecoder"]], "process() (threebitdecoder method)": [[30, "qiskit_qec.decoders.ThreeBitDecoder.process"]], "update_edge_weights() (threebitdecoder method)": [[30, "qiskit_qec.decoders.ThreeBitDecoder.update_edge_weights"]], "unionfinddecoder (class in qiskit_qec.decoders)": [[31, "qiskit_qec.decoders.UnionFindDecoder"]], "cluster() (unionfinddecoder method)": [[31, "qiskit_qec.decoders.UnionFindDecoder.cluster"]], "find() (unionfinddecoder method)": [[31, "qiskit_qec.decoders.UnionFindDecoder.find"]], "get_corrections() (unionfinddecoder method)": [[31, "qiskit_qec.decoders.UnionFindDecoder.get_corrections"]], "neighbouring_edges() (unionfinddecoder method)": [[31, "qiskit_qec.decoders.UnionFindDecoder.neighbouring_edges"]], "peeling() (unionfinddecoder method)": [[31, "qiskit_qec.decoders.UnionFindDecoder.peeling"]], "process() (unionfinddecoder method)": [[31, "qiskit_qec.decoders.UnionFindDecoder.process"]], "checkerboardtile (class in qiskit_qec.geometry)": [[32, "qiskit_qec.geometry.CheckerBoardTile"]], "draw() (checkerboardtile class method)": [[32, "qiskit_qec.geometry.CheckerBoardTile.draw"]], "face_colors (checkerboardtile attribute)": [[32, "qiskit_qec.geometry.CheckerBoardTile.face_colors"]], "faces_wf_components (checkerboardtile attribute)": [[32, "qiskit_qec.geometry.CheckerBoardTile.faces_wf_components"]], "num_faces (checkerboardtile attribute)": [[32, "qiskit_qec.geometry.CheckerBoardTile.num_faces"]], "num_qubits (checkerboardtile attribute)": [[32, "qiskit_qec.geometry.CheckerBoardTile.num_qubits"]], "size (checkerboardtile attribute)": [[32, "qiskit_qec.geometry.CheckerBoardTile.size"]], "u_vec (checkerboardtile attribute)": [[32, "qiskit_qec.geometry.CheckerBoardTile.u_vec"]], "v_vec (checkerboardtile attribute)": [[32, "qiskit_qec.geometry.CheckerBoardTile.v_vec"]], "wf_coordinates (checkerboardtile attribute)": [[32, "qiskit_qec.geometry.CheckerBoardTile.wf_coordinates"]], "wf_loop_indicator (checkerboardtile attribute)": [[32, "qiskit_qec.geometry.CheckerBoardTile.wf_loop_indicator"]], "wf_operator_dict (checkerboardtile attribute)": [[32, "qiskit_qec.geometry.CheckerBoardTile.wf_operator_dict"]], "wf_q_indices (checkerboardtile attribute)": [[32, "qiskit_qec.geometry.CheckerBoardTile.wf_q_indices"]], "diagonalbartile (class in qiskit_qec.geometry)": [[33, "qiskit_qec.geometry.DiagonalBarTile"]], "draw() (diagonalbartile class method)": [[33, "qiskit_qec.geometry.DiagonalBarTile.draw"]], "face_colors (diagonalbartile attribute)": [[33, "qiskit_qec.geometry.DiagonalBarTile.face_colors"]], "faces_wf_components (diagonalbartile attribute)": [[33, "qiskit_qec.geometry.DiagonalBarTile.faces_wf_components"]], "num_faces (diagonalbartile attribute)": [[33, "qiskit_qec.geometry.DiagonalBarTile.num_faces"]], "num_qubits (diagonalbartile attribute)": [[33, "qiskit_qec.geometry.DiagonalBarTile.num_qubits"]], "size (diagonalbartile attribute)": [[33, "qiskit_qec.geometry.DiagonalBarTile.size"]], "u_vec (diagonalbartile attribute)": [[33, "qiskit_qec.geometry.DiagonalBarTile.u_vec"]], "v_vec (diagonalbartile attribute)": [[33, "qiskit_qec.geometry.DiagonalBarTile.v_vec"]], "wf_coordinates (diagonalbartile attribute)": [[33, "qiskit_qec.geometry.DiagonalBarTile.wf_coordinates"]], "wf_loop_indicator (diagonalbartile attribute)": [[33, "qiskit_qec.geometry.DiagonalBarTile.wf_loop_indicator"]], "wf_operator_dict (diagonalbartile attribute)": [[33, "qiskit_qec.geometry.DiagonalBarTile.wf_operator_dict"]], "wf_q_indices (diagonalbartile attribute)": [[33, "qiskit_qec.geometry.DiagonalBarTile.wf_q_indices"]], "diagonalhourglasstile (class in qiskit_qec.geometry)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile"]], "draw() (diagonalhourglasstile class method)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.draw"]], "face_colors (diagonalhourglasstile attribute)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.face_colors"]], "faces_wf_components (diagonalhourglasstile attribute)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.faces_wf_components"]], "num_faces (diagonalhourglasstile attribute)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.num_faces"]], "num_qubits (diagonalhourglasstile attribute)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.num_qubits"]], "size (diagonalhourglasstile attribute)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.size"]], "u_vec (diagonalhourglasstile attribute)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.u_vec"]], "v_vec (diagonalhourglasstile attribute)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.v_vec"]], "wf_coordinates (diagonalhourglasstile attribute)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.wf_coordinates"]], "wf_loop_indicator (diagonalhourglasstile attribute)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.wf_loop_indicator"]], "wf_operator_dict (diagonalhourglasstile attribute)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.wf_operator_dict"]], "wf_q_indices (diagonalhourglasstile attribute)": [[34, "qiskit_qec.geometry.DiagonalHourGlassTile.wf_q_indices"]], "edge (class in qiskit_qec.geometry)": [[35, "qiskit_qec.geometry.Edge"]], "add_parent() (edge method)": [[35, "qiskit_qec.geometry.Edge.add_parent"]], "create_id() (edge static method)": [[35, "qiskit_qec.geometry.Edge.create_id"]], "last_id (edge attribute)": [[35, "qiskit_qec.geometry.Edge.last_id"]], "face (class in qiskit_qec.geometry)": [[36, "qiskit_qec.geometry.Face"]], "add_parent() (face method)": [[36, "qiskit_qec.geometry.Face.add_parent"]], "create_id() (face static method)": [[36, "qiskit_qec.geometry.Face.create_id"]], "last_id (face attribute)": [[36, "qiskit_qec.geometry.Face.last_id"]], "geometrybounds (class in qiskit_qec.geometry)": [[37, "qiskit_qec.geometry.GeometryBounds"]], "bounding_box_from_line() (geometrybounds static method)": [[37, "qiskit_qec.geometry.GeometryBounds.bounding_box_from_line"]], "combine() (geometrybounds class method)": [[37, "qiskit_qec.geometry.GeometryBounds.combine"]], "contains() (geometrybounds method)": [[37, "qiskit_qec.geometry.GeometryBounds.contains"]], "copy() (geometrybounds method)": [[37, "qiskit_qec.geometry.GeometryBounds.copy"]], "expand() (geometrybounds method)": [[37, "qiskit_qec.geometry.GeometryBounds.expand"]], "intercepts() (geometrybounds method)": [[37, "qiskit_qec.geometry.GeometryBounds.intercepts"]], "set_min_max() (geometrybounds method)": [[37, "qiskit_qec.geometry.GeometryBounds.set_min_max"]], "hexagontile (class in qiskit_qec.geometry)": [[38, "qiskit_qec.geometry.HexagonTile"]], "draw() (hexagontile class method)": [[38, "qiskit_qec.geometry.HexagonTile.draw"]], "face_colors (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.face_colors"]], "faces_wf_components (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.faces_wf_components"]], "h (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.h"]], "num_faces (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.num_faces"]], "num_qubits (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.num_qubits"]], "r (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.r"]], "size (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.size"]], "u_vec (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.u_vec"]], "v_vec (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.v_vec"]], "wf_coordinates (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.wf_coordinates"]], "wf_loop_indicator (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.wf_loop_indicator"]], "wf_operator_dict (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.wf_operator_dict"]], "wf_q_indices (hexagontile attribute)": [[38, "qiskit_qec.geometry.HexagonTile.wf_q_indices"]], "lattice (class in qiskit_qec.geometry)": [[39, "qiskit_qec.geometry.Lattice"]], "apply_transform_from() (lattice method)": [[39, "qiskit_qec.geometry.Lattice.apply_transform_from"]], "find_pre_transform_length() (lattice method)": [[39, "qiskit_qec.geometry.Lattice.find_pre_transform_length"]], "generate_points() (lattice method)": [[39, "qiskit_qec.geometry.Lattice.generate_points"]], "make_transform() (lattice class method)": [[39, "qiskit_qec.geometry.Lattice.make_transform"]], "restrict() (lattice method)": [[39, "qiskit_qec.geometry.Lattice.restrict"]], "restrict_for_tiling() (lattice method)": [[39, "qiskit_qec.geometry.Lattice.restrict_for_tiling"]], "manifold (class in qiskit_qec.geometry)": [[40, "qiskit_qec.geometry.Manifold"]], "octasquaretile (class in qiskit_qec.geometry)": [[41, "qiskit_qec.geometry.OctaSquareTile"]], "c8 (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.c8"]], "draw() (octasquaretile class method)": [[41, "qiskit_qec.geometry.OctaSquareTile.draw"]], "face_colors (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.face_colors"]], "faces_wf_components (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.faces_wf_components"]], "num_faces (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.num_faces"]], "num_qubits (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.num_qubits"]], "s8 (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.s8"]], "size (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.size"]], "u_vec (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.u_vec"]], "v_vec (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.v_vec"]], "wf_coordinates (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.wf_coordinates"]], "wf_loop_indicator (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.wf_loop_indicator"]], "wf_operator_dict (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.wf_operator_dict"]], "wf_q_indices (octasquaretile attribute)": [[41, "qiskit_qec.geometry.OctaSquareTile.wf_q_indices"]], "plane (class in qiskit_qec.geometry)": [[42, "qiskit_qec.geometry.Plane"]], "ison() (plane static method)": [[42, "qiskit_qec.geometry.Plane.ison"]], "rot_matrix() (plane static method)": [[42, "qiskit_qec.geometry.Plane.rot_matrix"]], "rotate() (plane static method)": [[42, "qiskit_qec.geometry.Plane.rotate"]], "qubitcount (class in qiskit_qec.geometry)": [[43, "qiskit_qec.geometry.QubitCount"]], "decrement_qubit() (qubitcount method)": [[43, "qiskit_qec.geometry.QubitCount.decrement_qubit"]], "increment_qubit() (qubitcount method)": [[43, "qiskit_qec.geometry.QubitCount.increment_qubit"]], "new_qubit() (qubitcount method)": [[43, "qiskit_qec.geometry.QubitCount.new_qubit"]], "qubitdata (class in qiskit_qec.geometry)": [[44, "qiskit_qec.geometry.QubitData"]], "add_data_array() (qubitdata method)": [[44, "qiskit_qec.geometry.QubitData.add_data_array"]], "del_data_array() (qubitdata method)": [[44, "qiskit_qec.geometry.QubitData.del_data_array"]], "shape (class in qiskit_qec.geometry)": [[45, "qiskit_qec.geometry.Shape"]], "bounding_box_from_lines() (shape method)": [[45, "qiskit_qec.geometry.Shape.bounding_box_from_lines"]], "contains() (shape method)": [[45, "qiskit_qec.geometry.Shape.contains"]], "contains_quad_winding_number() (shape method)": [[45, "qiskit_qec.geometry.Shape.contains_quad_winding_number"]], "contains_ray_trace() (shape method)": [[45, "qiskit_qec.geometry.Shape.contains_ray_trace"]], "create_lines() (shape static method)": [[45, "qiskit_qec.geometry.Shape.create_lines"]], "inside() (shape method)": [[45, "qiskit_qec.geometry.Shape.inside"]], "is_between() (shape static method)": [[45, "qiskit_qec.geometry.Shape.is_between"]], "rect() (shape class method)": [[45, "qiskit_qec.geometry.Shape.rect"]], "square() (shape class method)": [[45, "qiskit_qec.geometry.Shape.square"]], "shapeobject (class in qiskit_qec.geometry)": [[46, "qiskit_qec.geometry.ShapeObject"]], "add_parent() (shapeobject method)": [[46, "qiskit_qec.geometry.ShapeObject.add_parent"]], "create_id() (shapeobject static method)": [[46, "qiskit_qec.geometry.ShapeObject.create_id"]], "last_id (shapeobject attribute)": [[46, "qiskit_qec.geometry.ShapeObject.last_id"]], "shell (class in qiskit_qec.geometry)": [[47, "qiskit_qec.geometry.Shell"]], "add_parent() (shell method)": [[47, "qiskit_qec.geometry.Shell.add_parent"]], "create_id() (shell static method)": [[47, "qiskit_qec.geometry.Shell.create_id"]], "delete_subtree() (shell method)": [[47, "qiskit_qec.geometry.Shell.delete_subtree"]], "draw() (shell method)": [[47, "qiskit_qec.geometry.Shell.draw"]], "extract() (shell method)": [[47, "qiskit_qec.geometry.Shell.extract"]], "integer_snap() (shell method)": [[47, "qiskit_qec.geometry.Shell.integer_snap"]], "last_id (shell attribute)": [[47, "qiskit_qec.geometry.Shell.last_id"]], "rotate2d() (shell method)": [[47, "qiskit_qec.geometry.Shell.rotate2d"]], "scale() (shell method)": [[47, "qiskit_qec.geometry.Shell.scale"]], "shell2symplectic() (shell static method)": [[47, "qiskit_qec.geometry.Shell.shell2symplectic"]], "shift() (shell method)": [[47, "qiskit_qec.geometry.Shell.shift"]], "union() (shell method)": [[47, "qiskit_qec.geometry.Shell.union"]], "squarediamondtile (class in qiskit_qec.geometry)": [[48, "qiskit_qec.geometry.SquareDiamondTile"]], "draw() (squarediamondtile class method)": [[48, "qiskit_qec.geometry.SquareDiamondTile.draw"]], "face_colors (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.face_colors"]], "faces_wf_components (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.faces_wf_components"]], "num_faces (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.num_faces"]], "num_qubits (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.num_qubits"]], "size (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.size"]], "u_vec (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.u_vec"]], "v_vec (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.v_vec"]], "wf_coordinates (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.wf_coordinates"]], "wf_loop_indicator (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.wf_loop_indicator"]], "wf_operator_dict (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.wf_operator_dict"]], "wf_orientation (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.wf_orientation"]], "wf_q_indices (squarediamondtile attribute)": [[48, "qiskit_qec.geometry.SquareDiamondTile.wf_q_indices"]], "tile (class in qiskit_qec.geometry)": [[49, "qiskit_qec.geometry.Tile"]], "draw() (tile class method)": [[49, "qiskit_qec.geometry.Tile.draw"]], "tilefactory (class in qiskit_qec.geometry)": [[50, "qiskit_qec.geometry.TileFactory"]], "tiling (class in qiskit_qec.geometry)": [[51, "qiskit_qec.geometry.Tiling"]], "distance() (tiling class method)": [[51, "qiskit_qec.geometry.Tiling.distance"]], "twomanifold (class in qiskit_qec.geometry)": [[52, "qiskit_qec.geometry.TwoManifold"]], "vertex (class in qiskit_qec.geometry)": [[53, "qiskit_qec.geometry.Vertex"]], "add_parent() (vertex method)": [[53, "qiskit_qec.geometry.Vertex.add_parent"]], "create_id() (vertex static method)": [[53, "qiskit_qec.geometry.Vertex.create_id"]], "last_id (vertex attribute)": [[53, "qiskit_qec.geometry.Vertex.last_id"]], "position (vertex attribute)": [[53, "qiskit_qec.geometry.Vertex.position"]], "set_position() (vertex method)": [[53, "qiskit_qec.geometry.Vertex.set_position"]], "shallowcopy() (vertex method)": [[53, "qiskit_qec.geometry.Vertex.shallowcopy"]], "wireframe (class in qiskit_qec.geometry)": [[54, "qiskit_qec.geometry.WireFrame"]], "add_parent() (wireframe method)": [[54, "qiskit_qec.geometry.WireFrame.add_parent"]], "create_id() (wireframe static method)": [[54, "qiskit_qec.geometry.WireFrame.create_id"]], "last_id (wireframe attribute)": [[54, "qiskit_qec.geometry.WireFrame.last_id"]], "aut_group_size (properties attribute)": [[55, "qiskit_qec.info.Properties.AUT_GROUP_SIZE"]], "citation (properties attribute)": [[55, "qiskit_qec.info.Properties.CITATION"]], "code_types (properties attribute)": [[55, "qiskit_qec.info.Properties.CODE_TYPES"]], "d (properties attribute)": [[55, "qiskit_qec.info.Properties.D"]], "gauge_group (properties attribute)": [[55, "qiskit_qec.info.Properties.GAUGE_GROUP"]], "hyperbolic_gen (properties attribute)": [[55, "qiskit_qec.info.Properties.HYPERBOLIC_GEN"]], "index (properties attribute)": [[55, "qiskit_qec.info.Properties.INDEX"]], "isotropic_gen (properties attribute)": [[55, "qiskit_qec.info.Properties.ISOTROPIC_GEN"]], "is_css (properties attribute)": [[55, "qiskit_qec.info.Properties.IS_CSS"]], "is_css_key (properties attribute)": [[55, "qiskit_qec.info.Properties.IS_CSS_KEY"]], "is_decomposable (properties attribute)": [[55, "qiskit_qec.info.Properties.IS_DECOMPOSABLE"]], "is_decomposable_key (properties attribute)": [[55, "qiskit_qec.info.Properties.IS_DECOMPOSABLE_KEY"]], "is_degenerate (properties attribute)": [[55, "qiskit_qec.info.Properties.IS_DEGENERATE"]], "is_degenerate_key (properties attribute)": [[55, "qiskit_qec.info.Properties.IS_DEGENERATE_KEY"]], "is_gf4linear (properties attribute)": [[55, "qiskit_qec.info.Properties.IS_GF4LINEAR"]], "is_gf4linear_key (properties attribute)": [[55, "qiskit_qec.info.Properties.IS_GF4LINEAR_KEY"]], "is_triorthogonal (properties attribute)": [[55, "qiskit_qec.info.Properties.IS_TRIORTHOGONAL"]], "is_triorthogonal_key (properties attribute)": [[55, "qiskit_qec.info.Properties.IS_TRIORTHOGONAL_KEY"]], "k (properties attribute)": [[55, "qiskit_qec.info.Properties.K"]], "logical_ops (properties attribute)": [[55, "qiskit_qec.info.Properties.LOGICAL_OPS"]], "n (properties attribute)": [[55, "qiskit_qec.info.Properties.N"]], "name (properties attribute)": [[55, "qiskit_qec.info.Properties.NAME"]], "properties (class in qiskit_qec.info)": [[55, "qiskit_qec.info.Properties"]], "stabilizer (properties attribute)": [[55, "qiskit_qec.info.Properties.STABILIZER"]], "type (properties attribute)": [[55, "qiskit_qec.info.Properties.TYPE"]], "uuid (properties attribute)": [[55, "qiskit_qec.info.Properties.UUID"]], "weight_enumerator (properties attribute)": [[55, "qiskit_qec.info.Properties.WEIGHT_ENUMERATOR"]], "info (properties attribute)": [[55, "qiskit_qec.info.Properties.info"]], "all_commute() (in module qiskit_qec.linear)": [[56, "qiskit_qec.linear.all_commute"]], "augment_mat() (in module qiskit_qec.linear)": [[57, "qiskit_qec.linear.augment_mat"]], "build_hyper_partner() (in module qiskit_qec.linear)": [[58, "qiskit_qec.linear.build_hyper_partner"]], "create_lambda_matrix() (in module qiskit_qec.linear)": [[59, "qiskit_qec.linear.create_lambda_matrix"]], "is_center() (in module qiskit_qec.linear)": [[60, "qiskit_qec.linear.is_center"]], "is_hyper_form() (in module qiskit_qec.linear)": [[61, "qiskit_qec.linear.is_hyper_form"]], "is_same_span() (in module qiskit_qec.linear)": [[62, "qiskit_qec.linear.is_same_span"]], "is_stabilizer_group() (in module qiskit_qec.linear)": [[63, "qiskit_qec.linear.is_stabilizer_group"]], "is_symplectic_form() (in module qiskit_qec.linear)": [[64, "qiskit_qec.linear.is_symplectic_form"]], "is_symplectic_matrix_form() (in module qiskit_qec.linear)": [[65, "qiskit_qec.linear.is_symplectic_matrix_form"]], "is_symplectic_vector_form() (in module qiskit_qec.linear)": [[66, "qiskit_qec.linear.is_symplectic_vector_form"]], "locate_hyper_partner() (in module qiskit_qec.linear)": [[67, "qiskit_qec.linear.locate_hyper_partner"]], "make_commute_hyper() (in module qiskit_qec.linear)": [[68, "qiskit_qec.linear.make_commute_hyper"]], "rank() (in module qiskit_qec.linear)": [[69, "qiskit_qec.linear.rank"]], "rref() (in module qiskit_qec.linear)": [[70, "qiskit_qec.linear.rref"]], "rref_complete() (in module qiskit_qec.linear)": [[71, "qiskit_qec.linear.rref_complete"]], "symplectic_gram_schmidt() (in module qiskit_qec.linear)": [[72, "qiskit_qec.linear.symplectic_gram_schmidt"]], "symplectic_product() (in module qiskit_qec.linear)": [[73, "qiskit_qec.linear.symplectic_product"]], "basepauli (class in qiskit_qec.operators)": [[74, "qiskit_qec.operators.BasePauli"]], "external_pauli_encoding (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.EXTERNAL_PAULI_ENCODING"]], "external_phase_encoding (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.EXTERNAL_PHASE_ENCODING"]], "external_qubit_order (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.EXTERNAL_QUBIT_ORDER"]], "external_syntax (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.EXTERNAL_SYNTAX"]], "external_tensor_encoding (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.EXTERNAL_TENSOR_ENCODING"]], "print_phase_encoding (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.PRINT_PHASE_ENCODING"], [74, "qiskit_qec.operators.BasePauli.print_phase_encoding"]], "adjoint() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.adjoint"]], "all_commutes() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.all_commutes"]], "commutes() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.commutes"]], "compose() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.compose"]], "conjugate() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.conjugate"]], "copy() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.copy"]], "dim (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.dim"]], "dot() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.dot"]], "evolve() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.evolve"]], "expand() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.expand"]], "input_dims() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.input_dims"]], "num_qubits (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.num_qubits"]], "num_y (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.num_y"]], "output_dims() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.output_dims"]], "pauli_encoding (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.pauli_encoding"]], "phase_encoding (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.phase_encoding"]], "power() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.power"]], "qargs (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.qargs"]], "qubit_order (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.qubit_order"]], "reshape() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.reshape"]], "set_pauli_encoding() (basepauli class method)": [[74, "qiskit_qec.operators.BasePauli.set_pauli_encoding"]], "set_phase_encoding() (basepauli class method)": [[74, "qiskit_qec.operators.BasePauli.set_phase_encoding"]], "set_print_phase_encoding() (basepauli class method)": [[74, "qiskit_qec.operators.BasePauli.set_print_phase_encoding"]], "set_qubit_order() (basepauli class method)": [[74, "qiskit_qec.operators.BasePauli.set_qubit_order"]], "set_syntax() (basepauli class method)": [[74, "qiskit_qec.operators.BasePauli.set_syntax"]], "set_tensor_encoding() (basepauli class method)": [[74, "qiskit_qec.operators.BasePauli.set_tensor_encoding"]], "syntax (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.syntax"]], "tensor() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.tensor"]], "tensor_encoding (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.tensor_encoding"]], "to_label() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.to_label"]], "transpose() (basepauli method)": [[74, "qiskit_qec.operators.BasePauli.transpose"]], "x (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.x"]], "z (basepauli attribute)": [[74, "qiskit_qec.operators.BasePauli.z"]], "external_pauli_encoding (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.EXTERNAL_PAULI_ENCODING"]], "external_phase_encoding (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.EXTERNAL_PHASE_ENCODING"]], "external_qubit_order (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.EXTERNAL_QUBIT_ORDER"]], "external_syntax (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.EXTERNAL_SYNTAX"]], "external_tensor_encoding (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.EXTERNAL_TENSOR_ENCODING"]], "print_phase_encoding (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.PRINT_PHASE_ENCODING"], [75, "qiskit_qec.operators.Pauli.print_phase_encoding"]], "pauli (class in qiskit_qec.operators)": [[75, "qiskit_qec.operators.Pauli"]], "adjoint() (pauli method)": [[75, "qiskit_qec.operators.Pauli.adjoint"]], "all_commutes() (pauli method)": [[75, "qiskit_qec.operators.Pauli.all_commutes"]], "anticommutes() (pauli method)": [[75, "qiskit_qec.operators.Pauli.anticommutes"]], "append_paulis() (pauli method)": [[75, "qiskit_qec.operators.Pauli.append_paulis"]], "commutes() (pauli method)": [[75, "qiskit_qec.operators.Pauli.commutes"]], "compose() (pauli method)": [[75, "qiskit_qec.operators.Pauli.compose"]], "conjugate() (pauli method)": [[75, "qiskit_qec.operators.Pauli.conjugate"]], "copy() (pauli method)": [[75, "qiskit_qec.operators.Pauli.copy"]], "delete() (pauli method)": [[75, "qiskit_qec.operators.Pauli.delete"]], "delete_qubits() (pauli method)": [[75, "qiskit_qec.operators.Pauli.delete_qubits"]], "dim (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.dim"]], "dot() (pauli method)": [[75, "qiskit_qec.operators.Pauli.dot"]], "equiv() (pauli method)": [[75, "qiskit_qec.operators.Pauli.equiv"]], "evolve() (pauli method)": [[75, "qiskit_qec.operators.Pauli.evolve"]], "expand() (pauli method)": [[75, "qiskit_qec.operators.Pauli.expand"]], "from_label() (pauli static method)": [[75, "qiskit_qec.operators.Pauli.from_label"]], "input_dims() (pauli method)": [[75, "qiskit_qec.operators.Pauli.input_dims"]], "insert() (pauli method)": [[75, "qiskit_qec.operators.Pauli.insert"]], "insert_paulis() (pauli method)": [[75, "qiskit_qec.operators.Pauli.insert_paulis"]], "instrs2symplectic() (pauli static method)": [[75, "qiskit_qec.operators.Pauli.instrs2symplectic"]], "inverse() (pauli method)": [[75, "qiskit_qec.operators.Pauli.inverse"]], "kron() (pauli method)": [[75, "qiskit_qec.operators.Pauli.kron"]], "name (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.name"]], "num_clbits (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.num_clbits"]], "num_qubits (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.num_qubits"]], "num_y (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.num_y"]], "output_dims() (pauli method)": [[75, "qiskit_qec.operators.Pauli.output_dims"]], "pauli_encoding (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.pauli_encoding"]], "pauli_single() (pauli class method)": [[75, "qiskit_qec.operators.Pauli.pauli_single"]], "phase (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.phase"]], "phase_encoding (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.phase_encoding"]], "phase_exp (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.phase_exp"]], "pltb_int (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.pltb_int"]], "pltb_str (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.pltb_str"]], "power() (pauli method)": [[75, "qiskit_qec.operators.Pauli.power"]], "qargs (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.qargs"]], "qubit_order (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.qubit_order"]], "random() (pauli class method)": [[75, "qiskit_qec.operators.Pauli.random"]], "reshape() (pauli method)": [[75, "qiskit_qec.operators.Pauli.reshape"]], "set_pauli_encoding() (pauli class method)": [[75, "qiskit_qec.operators.Pauli.set_pauli_encoding"]], "set_phase_encoding() (pauli class method)": [[75, "qiskit_qec.operators.Pauli.set_phase_encoding"]], "set_print_phase_encoding() (pauli class method)": [[75, "qiskit_qec.operators.Pauli.set_print_phase_encoding"]], "set_qubit_order() (pauli class method)": [[75, "qiskit_qec.operators.Pauli.set_qubit_order"]], "set_syntax() (pauli class method)": [[75, "qiskit_qec.operators.Pauli.set_syntax"]], "set_tensor_encoding() (pauli class method)": [[75, "qiskit_qec.operators.Pauli.set_tensor_encoding"]], "set_truncation() (pauli class method)": [[75, "qiskit_qec.operators.Pauli.set_truncation"]], "settings (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.settings"]], "sgn_prod() (pauli static method)": [[75, "qiskit_qec.operators.Pauli.sgn_prod"]], "syntax (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.syntax"]], "tensor() (pauli method)": [[75, "qiskit_qec.operators.Pauli.tensor"]], "tensor_encoding (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.tensor_encoding"]], "to_cpx_matrix() (pauli method)": [[75, "qiskit_qec.operators.Pauli.to_cpx_matrix"]], "to_instruction() (pauli method)": [[75, "qiskit_qec.operators.Pauli.to_instruction"]], "to_label() (pauli method)": [[75, "qiskit_qec.operators.Pauli.to_label"]], "to_matrix() (pauli method)": [[75, "qiskit_qec.operators.Pauli.to_matrix"]], "to_spmatrix() (pauli method)": [[75, "qiskit_qec.operators.Pauli.to_spmatrix"]], "transpose() (pauli method)": [[75, "qiskit_qec.operators.Pauli.transpose"]], "update_x() (pauli method)": [[75, "qiskit_qec.operators.Pauli.update_x"]], "update_z() (pauli method)": [[75, "qiskit_qec.operators.Pauli.update_z"]], "x (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.x"]], "z (pauli attribute)": [[75, "qiskit_qec.operators.Pauli.z"]], "external_pauli_encoding (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.EXTERNAL_PAULI_ENCODING"]], "external_phase_encoding (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.EXTERNAL_PHASE_ENCODING"]], "external_qubit_order (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.EXTERNAL_QUBIT_ORDER"]], "external_syntax (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.EXTERNAL_SYNTAX"]], "external_tensor_encoding (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.EXTERNAL_TENSOR_ENCODING"]], "print_phase_encoding (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.PRINT_PHASE_ENCODING"], [76, "qiskit_qec.operators.PauliList.print_phase_encoding"]], "paulilist (class in qiskit_qec.operators)": [[76, "qiskit_qec.operators.PauliList"]], "adjoint() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.adjoint"]], "all_commutes() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.all_commutes"]], "anticommutes() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.anticommutes"]], "anticommutes_with_all() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.anticommutes_with_all"]], "argsort() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.argsort"]], "commutes() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.commutes"]], "commutes_with_all() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.commutes_with_all"]], "compose() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.compose"]], "conjugate() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.conjugate"]], "copy() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.copy"]], "delete() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.delete"]], "dim (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.dim"]], "dot() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.dot"]], "evolve() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.evolve"]], "expand() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.expand"]], "from_symplectic() (paulilist class method)": [[76, "qiskit_qec.operators.PauliList.from_symplectic"]], "getaslist() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.getaslist"]], "group_qubit_wise_commuting() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.group_qubit_wise_commuting"]], "input_dims() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.input_dims"]], "insert() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.insert"]], "inverse() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.inverse"]], "label_iter() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.label_iter"]], "matrix_iter() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.matrix_iter"]], "num_paulis (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.num_paulis"]], "num_qubits (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.num_qubits"]], "num_y (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.num_y"]], "output_dims() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.output_dims"]], "pauli_encoding (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.pauli_encoding"]], "phase (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.phase"]], "phase_encoding (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.phase_encoding"]], "phase_exp (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.phase_exp"]], "power() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.power"]], "qargs (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.qargs"]], "qubit_order (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.qubit_order"]], "reshape() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.reshape"]], "set_pauli_encoding() (paulilist class method)": [[76, "qiskit_qec.operators.PauliList.set_pauli_encoding"]], "set_phase_encoding() (paulilist class method)": [[76, "qiskit_qec.operators.PauliList.set_phase_encoding"]], "set_print_phase_encoding() (paulilist class method)": [[76, "qiskit_qec.operators.PauliList.set_print_phase_encoding"]], "set_qubit_order() (paulilist class method)": [[76, "qiskit_qec.operators.PauliList.set_qubit_order"]], "set_syntax() (paulilist class method)": [[76, "qiskit_qec.operators.PauliList.set_syntax"]], "set_tensor_encoding() (paulilist class method)": [[76, "qiskit_qec.operators.PauliList.set_tensor_encoding"]], "settings (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.settings"]], "shape (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.shape"]], "size (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.size"]], "sort() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.sort"]], "syntax (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.syntax"]], "tensor() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.tensor"]], "tensor_encoding (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.tensor_encoding"]], "to_label() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.to_label"]], "to_labels() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.to_labels"]], "to_matrix() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.to_matrix"]], "transpose() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.transpose"]], "unique() (paulilist method)": [[76, "qiskit_qec.operators.PauliList.unique"]], "x (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.x"]], "z (paulilist attribute)": [[76, "qiskit_qec.operators.PauliList.z"]], "gaugegroup (class in qiskit_qec.structures)": [[77, "qiskit_qec.structures.GaugeGroup"]], "k (gaugegroup attribute)": [[77, "qiskit_qec.structures.GaugeGroup.k"]], "n (gaugegroup attribute)": [[77, "qiskit_qec.structures.GaugeGroup.n"]], "num_gen (gaugegroup attribute)": [[77, "qiskit_qec.structures.GaugeGroup.num_gen"]], "group (class in qiskit_qec.structures)": [[78, "qiskit_qec.structures.Group"]], "decodinggraphedge (class in qiskit_qec.utils)": [[79, "qiskit_qec.utils.DecodingGraphEdge"]], "get() (decodinggraphedge method)": [[79, "qiskit_qec.utils.DecodingGraphEdge.get"]], "properties (decodinggraphedge attribute)": [[79, "qiskit_qec.utils.DecodingGraphEdge.properties"]], "qubits (decodinggraphedge attribute)": [[79, "qiskit_qec.utils.DecodingGraphEdge.qubits"]], "weight (decodinggraphedge attribute)": [[79, "qiskit_qec.utils.DecodingGraphEdge.weight"]], "decodinggraphnode (class in qiskit_qec.utils)": [[80, "qiskit_qec.utils.DecodingGraphNode"]], "get() (decodinggraphnode method)": [[80, "qiskit_qec.utils.DecodingGraphNode.get"]], "get_counts_via_stim() (in module qiskit_qec.utils)": [[81, "qiskit_qec.utils.get_counts_via_stim"]], "get_stim_circuits() (in module qiskit_qec.utils)": [[82, "qiskit_qec.utils.get_stim_circuits"]], "qiskit_qec.utils.indexer": [[83, "module-qiskit_qec.utils.indexer"]], "noisify_circuit() (in module qiskit_qec.utils)": [[84, "qiskit_qec.utils.noisify_circuit"]], "qiskit_qec.utils.pauli_rep": [[85, "module-qiskit_qec.utils.pauli_rep"]], "qiskit_qec.utils.visualizations": [[86, "module-qiskit_qec.utils.visualizations"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["apidocs/analysis", "apidocs/circuits", "apidocs/codes", "apidocs/decoders", "apidocs/geometry", "apidocs/index", "apidocs/info", "apidocs/linear", "apidocs/operators", "apidocs/structures", "apidocs/utils", "discussions/index", "how_tos/1-how-to-create-codes", "how_tos/2-how-to-work-with-shape-objects", "how_tos/index", "index", "stubs/qiskit_qec.circuits.ArcCircuit", "stubs/qiskit_qec.circuits.CSSCodeCircuit", "stubs/qiskit_qec.circuits.CodeCircuit", "stubs/qiskit_qec.circuits.RepetitionCodeCircuit", "stubs/qiskit_qec.circuits.SurfaceCodeCircuit", "stubs/qiskit_qec.codes.CodeLibrarian", "stubs/qiskit_qec.codes.CodeLibrary", "stubs/qiskit_qec.codes.QECCode", "stubs/qiskit_qec.codes.StabSubSystemCode", "stubs/qiskit_qec.codes.all_small_codes", "stubs/qiskit_qec.codes.small_code", "stubs/qiskit_qec.decoders.DecodingGraph", "stubs/qiskit_qec.decoders.UnionFindDecoder", "stubs/qiskit_qec.geometry.CheckerBoardTile", "stubs/qiskit_qec.geometry.DiagonalBarTile", "stubs/qiskit_qec.geometry.DiagonalHourGlassTile", "stubs/qiskit_qec.geometry.Edge", "stubs/qiskit_qec.geometry.Face", "stubs/qiskit_qec.geometry.GeometryBounds", "stubs/qiskit_qec.geometry.HexagonTile", "stubs/qiskit_qec.geometry.Lattice", "stubs/qiskit_qec.geometry.Manifold", "stubs/qiskit_qec.geometry.OctaSquareTile", "stubs/qiskit_qec.geometry.Plane", "stubs/qiskit_qec.geometry.QubitCount", "stubs/qiskit_qec.geometry.QubitData", "stubs/qiskit_qec.geometry.Shape", "stubs/qiskit_qec.geometry.ShapeObject", "stubs/qiskit_qec.geometry.Shell", "stubs/qiskit_qec.geometry.SquareDiamondTile", "stubs/qiskit_qec.geometry.Tile", "stubs/qiskit_qec.geometry.TileFactory", "stubs/qiskit_qec.geometry.Tiling", "stubs/qiskit_qec.geometry.TwoManifold", "stubs/qiskit_qec.geometry.Vertex", "stubs/qiskit_qec.geometry.WireFrame", "stubs/qiskit_qec.info.Properties", "stubs/qiskit_qec.linear.all_commute", "stubs/qiskit_qec.linear.augment_mat", "stubs/qiskit_qec.linear.build_hyper_partner", "stubs/qiskit_qec.linear.create_lambda_matrix", "stubs/qiskit_qec.linear.is_center", "stubs/qiskit_qec.linear.is_hyper_form", "stubs/qiskit_qec.linear.is_same_span", "stubs/qiskit_qec.linear.is_stabilizer_group", "stubs/qiskit_qec.linear.is_symplectic_form", "stubs/qiskit_qec.linear.is_symplectic_matrix_form", "stubs/qiskit_qec.linear.is_symplectic_vector_form", "stubs/qiskit_qec.linear.locate_hyper_partner", "stubs/qiskit_qec.linear.make_commute_hyper", "stubs/qiskit_qec.linear.rank", "stubs/qiskit_qec.linear.rref", "stubs/qiskit_qec.linear.rref_complete", "stubs/qiskit_qec.linear.symplectic_gram_schmidt", "stubs/qiskit_qec.linear.symplectic_product", "stubs/qiskit_qec.operators.BasePauli", "stubs/qiskit_qec.operators.Pauli", "stubs/qiskit_qec.operators.PauliList", "stubs/qiskit_qec.structures.GaugeGroup", "stubs/qiskit_qec.structures.Group", "stubs/qiskit_qec.utils.DecodingGraphEdge", "stubs/qiskit_qec.utils.DecodingGraphNode", "stubs/qiskit_qec.utils.get_counts_via_stim", "stubs/qiskit_qec.utils.get_stim_circuits", "stubs/qiskit_qec.utils.indexer", "stubs/qiskit_qec.utils.noisify_circuit", "stubs/qiskit_qec.utils.pauli_rep", "stubs/qiskit_qec.utils.visualizations", "tutorials/1-tutorial-example", "tutorials/QEC_Framework_IEEE_2022", "tutorials/how-to-use-union-find", "tutorials/index"], "filenames": ["apidocs/analysis.rst", "apidocs/circuits.rst", "apidocs/codes.rst", "apidocs/decoders.rst", "apidocs/geometry.rst", "apidocs/index.rst", "apidocs/info.rst", "apidocs/linear.rst", "apidocs/operators.rst", "apidocs/structures.rst", "apidocs/utils.rst", "discussions/index.rst", "how_tos/1-how-to-create-codes.ipynb", "how_tos/2-how-to-work-with-shape-objects.ipynb", "how_tos/index.rst", "index.rst", "stubs/qiskit_qec.circuits.ArcCircuit.rst", "stubs/qiskit_qec.circuits.CSSCodeCircuit.rst", "stubs/qiskit_qec.circuits.CodeCircuit.rst", "stubs/qiskit_qec.circuits.RepetitionCodeCircuit.rst", "stubs/qiskit_qec.circuits.SurfaceCodeCircuit.rst", "stubs/qiskit_qec.codes.CodeLibrarian.rst", "stubs/qiskit_qec.codes.CodeLibrary.rst", "stubs/qiskit_qec.codes.QECCode.rst", "stubs/qiskit_qec.codes.StabSubSystemCode.rst", "stubs/qiskit_qec.codes.all_small_codes.rst", "stubs/qiskit_qec.codes.small_code.rst", "stubs/qiskit_qec.decoders.DecodingGraph.rst", "stubs/qiskit_qec.decoders.UnionFindDecoder.rst", "stubs/qiskit_qec.geometry.CheckerBoardTile.rst", "stubs/qiskit_qec.geometry.DiagonalBarTile.rst", "stubs/qiskit_qec.geometry.DiagonalHourGlassTile.rst", "stubs/qiskit_qec.geometry.Edge.rst", "stubs/qiskit_qec.geometry.Face.rst", "stubs/qiskit_qec.geometry.GeometryBounds.rst", "stubs/qiskit_qec.geometry.HexagonTile.rst", "stubs/qiskit_qec.geometry.Lattice.rst", "stubs/qiskit_qec.geometry.Manifold.rst", "stubs/qiskit_qec.geometry.OctaSquareTile.rst", "stubs/qiskit_qec.geometry.Plane.rst", "stubs/qiskit_qec.geometry.QubitCount.rst", "stubs/qiskit_qec.geometry.QubitData.rst", "stubs/qiskit_qec.geometry.Shape.rst", "stubs/qiskit_qec.geometry.ShapeObject.rst", "stubs/qiskit_qec.geometry.Shell.rst", "stubs/qiskit_qec.geometry.SquareDiamondTile.rst", "stubs/qiskit_qec.geometry.Tile.rst", "stubs/qiskit_qec.geometry.TileFactory.rst", "stubs/qiskit_qec.geometry.Tiling.rst", "stubs/qiskit_qec.geometry.TwoManifold.rst", "stubs/qiskit_qec.geometry.Vertex.rst", "stubs/qiskit_qec.geometry.WireFrame.rst", "stubs/qiskit_qec.info.Properties.rst", "stubs/qiskit_qec.linear.all_commute.rst", "stubs/qiskit_qec.linear.augment_mat.rst", "stubs/qiskit_qec.linear.build_hyper_partner.rst", "stubs/qiskit_qec.linear.create_lambda_matrix.rst", "stubs/qiskit_qec.linear.is_center.rst", "stubs/qiskit_qec.linear.is_hyper_form.rst", "stubs/qiskit_qec.linear.is_same_span.rst", "stubs/qiskit_qec.linear.is_stabilizer_group.rst", "stubs/qiskit_qec.linear.is_symplectic_form.rst", "stubs/qiskit_qec.linear.is_symplectic_matrix_form.rst", "stubs/qiskit_qec.linear.is_symplectic_vector_form.rst", "stubs/qiskit_qec.linear.locate_hyper_partner.rst", "stubs/qiskit_qec.linear.make_commute_hyper.rst", "stubs/qiskit_qec.linear.rank.rst", "stubs/qiskit_qec.linear.rref.rst", "stubs/qiskit_qec.linear.rref_complete.rst", "stubs/qiskit_qec.linear.symplectic_gram_schmidt.rst", "stubs/qiskit_qec.linear.symplectic_product.rst", "stubs/qiskit_qec.operators.BasePauli.rst", "stubs/qiskit_qec.operators.Pauli.rst", "stubs/qiskit_qec.operators.PauliList.rst", "stubs/qiskit_qec.structures.GaugeGroup.rst", "stubs/qiskit_qec.structures.Group.rst", "stubs/qiskit_qec.utils.DecodingGraphEdge.rst", "stubs/qiskit_qec.utils.DecodingGraphNode.rst", "stubs/qiskit_qec.utils.get_counts_via_stim.rst", "stubs/qiskit_qec.utils.get_stim_circuits.rst", "stubs/qiskit_qec.utils.indexer.rst", "stubs/qiskit_qec.utils.noisify_circuit.rst", "stubs/qiskit_qec.utils.pauli_rep.rst", "stubs/qiskit_qec.utils.visualizations.rst", "tutorials/1-tutorial-example.ipynb", "tutorials/QEC_Framework_IEEE_2022.ipynb", "tutorials/how-to-use-union-find.ipynb", "tutorials/index.rst"], "titles": ["Analysis (qiskit_qec.analysis)", "Circuits (qiskit_qec.circuits)", "Codes (qiskit_qec.codes)", "Decoders (qiskit_qec.decoders)", "Geometry (qiskit_qec.geometry)", "Qiskit QEC API Reference", "Info (qiskit_qec.info)", "Linear (qiskit_qec.linear)", "Operators (qiskit_qec.operators)", "Structures (qiskit_qec.structures)", "Utils (qiskit_qec.utils)", "QEC Discussions", "How-to: Create Codes", "How-to: work with geometry objects", "Qiskit QEC How-to guides", "Qiskit QEC documentation", "ArcCircuit", "CSSCodeCircuit", "CodeCircuit", "RepetitionCodeCircuit", "SurfaceCodeCircuit", "CodeLibrarian", "CodeLibrary", "QECCode", "StabSubSystemCode", "qiskit_qec.codes.all_small_codes", "qiskit_qec.codes.small_code", "DecodingGraph", "UnionFindDecoder", "CheckerBoardTile", "DiagonalBarTile", "DiagonalHourGlassTile", "Edge", "Face", "GeometryBounds", "HexagonTile", "Lattice", "Manifold", "OctaSquareTile", "Plane", "QubitCount", "QubitData", "Shape", "ShapeObject", "Shell", "SquareDiamondTile", "Tile", "TileFactory", "Tiling", "TwoManifold", "Vertex", "WireFrame", "Properties", "qiskit_qec.linear.all_commute", "qiskit_qec.linear.augment_mat", "qiskit_qec.linear.build_hyper_partner", "qiskit_qec.linear.create_lambda_matrix", "qiskit_qec.linear.is_center", "qiskit_qec.linear.is_hyper_form", "qiskit_qec.linear.is_same_span", "qiskit_qec.linear.is_stabilizer_group", "qiskit_qec.linear.is_symplectic_form", "qiskit_qec.linear.is_symplectic_matrix_form", "qiskit_qec.linear.is_symplectic_vector_form", "qiskit_qec.linear.locate_hyper_partner", "qiskit_qec.linear.make_commute_hyper", "qiskit_qec.linear.rank", "qiskit_qec.linear.rref", "qiskit_qec.linear.rref_complete", "qiskit_qec.linear.symplectic_gram_schmidt", "qiskit_qec.linear.symplectic_product", "BasePauli", "Pauli", "PauliList", "GaugeGroup", "Group", "DecodingGraphEdge", "DecodingGraphNode", "qiskit_qec.utils.get_counts_via_stim", "qiskit_qec.utils.get_stim_circuits", "qiskit_qec.utils.indexer", "qiskit_qec.utils.noisify_circuit", "qiskit_qec.utils.pauli_rep", "qiskit_qec.utils.visualizations", "Tutorial: example", "Qiskit QEC Software Framework", "Using the Union Find decoder in qiskit_qec", "QEC Tutorials"], "terms": {"thi": [0, 11, 12, 13, 15, 16, 17, 18, 19, 20, 25, 26, 27, 42, 53, 55, 57, 64, 65, 71, 72, 73, 76, 77, 85, 86], "contain": [0, 12, 17, 26, 29, 30, 31, 34, 35, 38, 41, 42, 45, 72, 73, 79, 85, 86], "an": [0, 12, 13, 15, 16, 17, 18, 23, 27, 28, 34, 36, 40, 42, 53, 55, 56, 60, 65, 69, 71, 72, 73, 85, 86], "errorpropag": 0, "circuit": [0, 5, 16, 17, 18, 19, 20, 27, 71, 72, 78, 79, 81, 86], "error": [0, 12, 15, 16, 17, 18, 19, 20, 23, 27, 28, 81, 86], "propag": 0, "interfac": [0, 18], "analysi": [5, 85, 86], "qiskit_qec": [5, 12, 13, 17, 42, 85], "code": [5, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 44, 48, 52, 73, 76, 77, 86], "decod": [5, 16, 18, 23, 27, 28, 76, 77], "geometri": [5, 12, 34, 40, 42, 43, 85], "info": [5, 12, 25, 26, 52, 85], "linear": [5, 85, 86], "oper": [5, 12, 13, 16, 17, 18, 19, 20, 27, 29, 30, 31, 35, 38, 44, 45, 47, 53, 55, 57, 65, 71, 72, 73, 74, 79, 81, 86], "structur": [5, 12, 13, 38], "util": [5, 12, 85], "about": [11, 26, 27, 85], "topic": [11, 85], "concept": [11, 85], "relat": [11, 85], "packag": [11, 15, 85], "The": [12, 13, 15, 16, 17, 24, 27, 28, 29, 30, 31, 34, 35, 38, 40, 42, 45, 54, 62, 63, 71, 72, 73, 86], "qec": [12, 13, 23, 27], "framework": [12, 13, 15, 71, 72, 73, 86], "doe": [12, 16, 55, 57, 59, 71, 72, 73, 85], "prescrib": 12, "ani": [12, 15, 16, 17, 18, 19, 20, 61, 71, 72, 73, 74, 76, 77, 78, 85], "particular": [12, 85], "wai": [12, 18, 73, 85], "follow": [12, 17, 18, 19, 20, 28, 29, 30, 31, 38, 42, 45, 85], "some": [12, 13, 19, 20, 71, 85], "simpl": [12, 17, 18, 34, 42, 85], "design": 12, "philosophi": 12, "look": [12, 85, 86], "wide": [12, 85], "rang": [12, 44, 55, 65, 85], "tool": [12, 83, 85], "method": [12, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 51, 53, 55, 57, 64, 65, 71, 72, 73, 76, 77, 85], "instructur": 12, "make": [12, 16, 17, 18, 19, 20, 44, 65, 71, 72, 73, 85], "easier": [12, 85], "within": [12, 16, 27, 34, 42, 85], "ar": [12, 13, 16, 17, 18, 19, 20, 23, 27, 28, 29, 30, 31, 32, 33, 35, 36, 38, 42, 43, 44, 45, 50, 51, 57, 62, 63, 65, 69, 71, 72, 73, 76, 77, 79, 81, 85, 86], "veri": [12, 15, 85, 86], "few": [12, 85], "class": [12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 71, 72, 73, 74, 75, 76, 77, 80, 83, 85, 86], "i": [12, 13, 15, 16, 17, 18, 19, 20, 23, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 38, 39, 40, 42, 43, 44, 45, 52, 54, 55, 60, 61, 62, 63, 64, 65, 68, 69, 70, 71, 72, 73, 77, 79, 81, 85, 86], "done": [12, 18, 27, 36, 85], "two": [12, 16, 39, 42, 48, 54, 62, 63, 68, 70, 72, 79, 85, 86], "primari": [12, 85], "reason": [12, 85], "first": [12, 28, 36, 59, 71, 73, 85, 86], "chang": [12, 15, 16, 17, 18, 19, 20, 71, 72, 85], "due": [12, 19, 20, 85], "failur": [12, 85], "fix": [12, 73, 85], "other": [12, 18, 36, 44, 71, 72, 73, 85], "can": [12, 18, 24, 28, 29, 35, 36, 38, 45, 62, 63, 71, 72, 73, 79, 85, 86], "easi": [12, 85], "take": [12, 16, 28, 85, 86], "out": [12, 42, 55, 72, 73, 85], "given": [12, 16, 17, 18, 19, 20, 27, 28, 29, 30, 31, 34, 35, 36, 38, 41, 42, 44, 45, 54, 55, 61, 62, 63, 65, 71, 72, 73, 76, 77, 79, 85, 86], "wheer": [12, 85], "longer": [12, 85], "work": [12, 28, 44, 73, 85, 86], "we": [12, 19, 20, 85, 86], "want": [12, 35, 85, 86], "avoid": [12, 42, 85], "have": [12, 13, 16, 17, 18, 19, 20, 32, 33, 40, 43, 44, 50, 51, 53, 54, 55, 64, 65, 69, 70, 73, 85], "continu": [12, 85], "check": [12, 39, 42, 57, 61, 62, 63, 73, 85, 86], "still": [12, 15, 72, 73, 85], "whether": [12, 16, 17, 18, 19, 20, 27, 77, 85], "keep": [12, 44, 48, 85], "insid": [12, 36, 42, 44, 85], "second": [12, 42, 59, 85], "sinc": [12, 72, 73, 85], "heirachi": [12, 85], "could": [12, 16, 17, 18, 19, 20, 85], "us": [12, 13, 16, 17, 18, 19, 20, 27, 28, 29, 30, 31, 32, 33, 35, 36, 38, 40, 42, 43, 44, 45, 50, 51, 56, 65, 68, 69, 71, 72, 73, 81, 85], "number": [12, 16, 17, 18, 19, 20, 26, 27, 40, 42, 62, 63, 64, 65, 70, 71, 72, 73, 74, 78, 85, 86], "would": [12, 16, 17, 18, 19, 20, 85, 86], "larg": [12, 42, 73, 85], "overlap": [12, 85], "difficult": [12, 85], "manag": [12, 18, 85], "instead": [12, 36, 71, 72, 73, 85], "aim": [12, 85], "onli": [12, 13, 16, 17, 18, 19, 20, 26, 42, 44, 50, 51, 73, 81, 85, 86], "stabsubsystemcod": [12, 17, 25, 26, 52, 85], "which": [12, 16, 17, 18, 19, 20, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 42, 43, 44, 45, 48, 50, 51, 71, 72, 73, 77, 81, 85, 86], "deal": [12, 19, 20, 85], "subsystem": [12, 24, 71, 72, 73], "A": [12, 13, 17, 18, 23, 24, 27, 28, 29, 34, 35, 36, 38, 42, 44, 45, 50, 51, 52, 68, 70, 71, 72, 73, 79, 86], "construct": [12, 16, 17, 23, 27, 28, 72, 73, 85], "rather": [12, 16, 85], "than": [12, 16, 72, 85], "group": [12, 24, 57, 60, 71, 72, 73, 74], "usual": [12, 85], "ha": [12, 13, 38, 42, 55, 64, 71, 72, 73, 85], "mani": [12, 16, 17, 18, 19, 20, 85], "differ": [12, 16, 19, 44, 48, 53, 69, 71, 72, 73, 85, 86], "paramet": [12, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 48, 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 78, 79, 81, 85], "option": [12, 16, 21, 24, 25, 29, 30, 31, 32, 34, 35, 36, 38, 42, 43, 44, 45, 48, 54, 61, 62, 63, 64, 65, 69, 71, 72, 73, 74, 78, 79], "inherit": [12, 24, 33, 44, 50, 51, 72, 73, 74, 85], "from": [12, 13, 16, 17, 18, 19, 20, 23, 27, 29, 33, 34, 35, 36, 38, 41, 42, 44, 45, 48, 50, 51, 55, 65, 71, 72, 73, 74, 85, 86], "exampl": [12, 17, 24, 25, 26, 35, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73], "build": [12, 55, 69], "base": [12, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 71, 72, 73, 74, 75, 76, 77, 85], "cut": [12, 44, 85], "glu": [12, 85], "region": [12, 36, 42, 44, 85], "tile": [12, 29, 30, 31, 35, 36, 38, 42, 45, 47], "place": [12, 36, 42, 48, 71, 72, 73, 85], "lattic": [12, 29, 35, 38, 45, 48, 85], "small": [12, 25, 85], "rel": [12, 48, 85], "often": [12, 85], "special": [12, 85], "mai": [12, 13, 29, 30, 31, 35, 38, 42, 45, 85, 86], "For": [12, 72, 73, 79, 85], "triangularcolorcodebuild": [12, 85], "heavyhexcodebuild": [12, 85], "qiskit": [12, 16, 71, 72, 73, 78, 79], "codelibrarian": [12, 85], "variou": [12, 18, 85], "codelibrari": [12, 85], "instanc": [12, 32, 33, 41, 43, 44, 50, 51, 71, 72, 85], "store": [12, 13, 16, 27, 29, 30, 31, 35, 38, 42, 45, 71, 85], "properti": [12, 25, 26, 27, 73, 76, 77, 85], "eventu": [12, 85], "host": [12, 85], "separ": [12, 48, 85], "web": [12, 85], "server": [12, 85], "possibl": [12, 13, 27, 53, 71, 72, 73, 85, 86], "even": [12, 17, 18, 62, 63, 71, 72, 73, 85], "under": [12, 85], "local": [12, 16, 85], "clifford": [12, 71, 72, 73], "permut": [12, 85], "equival": [12, 25, 26, 71, 72], "grow": [12, 28, 85, 86], "quickli": [12, 85], "meant": [12, 85], "analog": [12, 85], "gap": [12, 25, 26, 85], "": [12, 13, 16, 17, 28, 55, 65, 71, 72, 73, 77, 79, 85], "sloan": [12, 85], "encyclopedia": [12, 85], "integ": [12, 28, 44, 56, 62, 63, 71, 72, 73, 85, 86], "sequenc": [12, 16, 42, 85], "There": [12, 85], "These": [12, 28, 85], "includ": [12, 16, 17, 18, 19, 20, 28, 34, 42, 44, 73, 86], "write": [12, 71, 73, 85], "custom": [12, 81, 85], "consid": [12, 48, 65, 71, 72, 73, 76, 77, 85, 86], "7": [12, 29, 30, 31, 35, 38, 45, 85, 86], "qubit": [12, 13, 16, 17, 18, 19, 20, 24, 26, 28, 29, 30, 31, 35, 38, 40, 41, 44, 45, 48, 71, 72, 73, 74, 76, 77, 79, 82, 86], "stean": [12, 85], "color": [12, 16, 29, 30, 31, 35, 38, 44, 45, 85], "todo": [12, 28, 69, 73, 85], "add": [12, 28, 32, 33, 41, 43, 44, 50, 51, 69, 81, 85], "imag": 12, "import": [12, 13, 17, 73, 84, 85, 86], "numpi": [12, 13, 24, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 84, 85], "np": [12, 13, 29, 30, 31, 35, 36, 38, 45, 53, 55, 57, 66, 67, 68, 71, 72, 73, 74, 84, 85], "gaugegroup": [12, 24, 26, 85], "pauli_list": [12, 85], "paulilist": [12, 24, 25, 26, 29, 30, 31, 35, 38, 44, 45, 71, 72, 85], "arrai": [12, 13, 24, 29, 30, 31, 35, 36, 38, 41, 45, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 85], "1": [12, 13, 16, 19, 20, 25, 26, 27, 28, 29, 30, 31, 35, 36, 38, 42, 44, 45, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 86], "0": [12, 13, 16, 17, 19, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 38, 40, 42, 43, 44, 45, 48, 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 84, 85, 86], "gauge_group": [12, 24, 25, 52, 85], "also": [12, 16, 17, 18, 19, 20, 27, 42, 54, 55, 56, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 85], "set": [12, 13, 16, 17, 18, 19, 20, 28, 34, 36, 42, 44, 50, 55, 59, 65, 71, 72, 73, 76, 77, 86], "pauli": [12, 13, 17, 24, 28, 29, 30, 31, 35, 38, 45, 53, 55, 57, 60, 65, 71, 78, 79, 81, 82], "genertor": [12, 85], "describ": [12, 28, 29, 30, 31, 35, 38, 42, 45, 76, 77, 85, 86], "2": [12, 13, 16, 25, 26, 29, 30, 31, 35, 38, 42, 44, 45, 52, 53, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 84, 86], "default": [12, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 29, 30, 31, 34, 35, 36, 38, 42, 43, 44, 45, 48, 61, 62, 63, 65, 69, 71, 72, 73, 74, 76, 77, 85], "read": [12, 19, 20, 71, 72, 73, 85], "product": [12, 53, 55, 56, 64, 65, 70, 71, 72, 73, 85], "sytnax": 12, "right": [12, 19, 20, 54, 71, 72, 73, 85], "left": [12, 19, 20, 54, 71, 72, 73, 85], "so": [12, 13, 16, 17, 18, 19, 20, 42, 71, 72, 73, 85, 86], "iixx": [12, 85], "x0x1": 12, "iiixxxx": 12, "iiizzzz": 12, "ixxxixi": 12, "izzzizi": 12, "xixiixx": 12, "ziziizz": 12, "3": [12, 17, 25, 26, 29, 30, 31, 35, 38, 44, 45, 71, 72, 73, 85], "need": [12, 36, 71, 73, 77, 85, 86], "syntax": [12, 71, 72, 73], "form": [12, 16, 17, 18, 19, 20, 28, 29, 30, 31, 38, 44, 45, 58, 62, 63, 67, 68, 73, 78, 81, 85], "index": [12, 17, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 35, 38, 45, 52, 55, 64, 71, 72, 73, 77, 79, 85, 86], "x0x1x2x3": [12, 85], "z0z1z2z3": [12, 85], "x1x3x4x5": [12, 85], "z1z3z4z5": [12, 85], "x0x1x4x6": [12, 85], "z0z1z4z6": [12, 85], "6": [12, 29, 30, 31, 35, 38, 45, 85], "start": [12, 19, 85, 86], "cb": [12, 85], "output": [12, 16, 17, 18, 19, 20, 28, 71, 72, 73, 85], "format": [12, 28, 71, 72, 73, 85], "pauli_rep": [12, 71, 72, 73, 85], "base_pauli": [12, 71, 73, 85], "basepauli": [12, 72, 73, 74, 85], "set_syntax": [12, 71, 72, 73, 85], "index_syntax": [12, 71, 72, 73, 85], "set_qubit_ord": [12, 71, 72, 73, 85], "n": [12, 17, 21, 22, 24, 25, 26, 27, 34, 52, 56, 71, 72, 73, 74, 82, 85, 86], "5": [12, 26, 29, 30, 31, 35, 38, 45, 84, 85, 86], "k": [12, 21, 22, 25, 26, 29, 30, 31, 35, 38, 45, 52, 55, 57, 64, 65, 68, 74, 85], "show": [12, 69, 85], "its": [12, 18, 34, 64, 85], "small_cod": [12, 85], "4": [12, 25, 26, 29, 30, 31, 35, 38, 44, 45, 52, 55, 66, 68, 85, 86], "fetch": [12, 85], "inform": [12, 16, 19, 20, 26, 27, 41, 55, 85], "info_onli": [12, 21, 22, 25, 26, 85], "true": [12, 13, 16, 17, 18, 19, 20, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 38, 42, 44, 45, 53, 54, 57, 58, 59, 60, 61, 62, 63, 71, 72, 73, 74, 85], "type": [12, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 40, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 76, 77, 78, 81, 85], "isotropic_gener": [12, 25, 26, 52, 74, 85], "39": [12, 85], "z1z2": [12, 85], "z0z4": [12, 85], "y1y2x3": [12, 85], "z0z1z3": [12, 85], "y0x3y4": [12, 85], "is_subsystem": [12, 25, 26, 85], "code_typ": [12, 25, 26, 52, 85], "aut_group_s": [12, 25, 26, 52, 85], "32": [12, 85], "is_triorthogon": [12, 52, 85], "is_decompos": [12, 25, 26, 52, 85], "weight_enumer": [12, 25, 26, 52, 85], "8": [12, 25, 29, 30, 31, 35, 38, 45, 52, 85, 86], "13": [12, 35, 38, 85], "is_css": [12, 25, 26, 52, 85], "uuid": [12, 25, 26, 52, 85], "33f790cd": [12, 85], "ab06": [12, 85], "47fb": [12, 85], "a2b3": [12, 85], "057f38329942": [12, 85], "is_degener": [12, 25, 26, 52, 85], "d": [12, 17, 18, 19, 20, 25, 26, 38, 45, 52, 85, 86], "is_gf4linear": [12, 25, 26, 52, 85], "23": [12, 85], "all": [12, 16, 18, 19, 20, 23, 25, 27, 28, 40, 43, 44, 47, 57, 71, 72, 73, 85, 86], "css": [12, 17, 44, 85], "all_small_cod": [12, 85], "fals": [12, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 30, 34, 35, 36, 42, 44, 53, 54, 57, 59, 61, 62, 63, 71, 72, 73, 77, 85], "36": [12, 85], "x1z2z3": 12, "y0y1x3": [12, 25], "z0z1x2z4": 12, "logical_op": [12, 25, 26, 52, 85], "z0z1x3": 12, "z2x4": 12, "z0z3": [12, 25], "z4": [12, 26], "712505a9": 12, "19ed": 12, "4702": 12, "ba25": 12, "d2270317afaa": 12, "more": [12, 16, 17, 18, 19, 20, 28, 42, 71, 73, 86], "triangular": [12, 85], "see": [12, 16, 20, 28, 35, 54, 55, 56, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 79, 85], "intermedi": [12, 13, 44, 85], "result": [12, 16, 17, 18, 19, 20, 27, 69, 71, 72, 73, 85], "when": [12, 16, 42, 71, 72, 73, 76, 77, 85, 86], "distanc": [12, 16, 17, 18, 19, 20, 42, 48], "appropri": [12, 29, 35, 38, 45, 85], "hexagon": [12, 35, 85], "hexagontil": [12, 38, 45, 85], "shape": [12, 36, 73, 85], "cutter": [12, 44, 85], "codefactori": [12, 85], "minifold": 12, "plane": [12, 42, 85], "lattiv": [12, 85], "against": [12, 85], "triangular_code_factori": [12, 85], "manifold": [12, 39, 42, 49, 85], "tile_optyp": [12, 48, 85], "dxz": [12, 35, 38, 85], "choos": [12, 71, 72, 73, 85], "both": [12, 19, 20, 24, 36, 72, 85], "x": [12, 13, 16, 17, 19, 20, 29, 30, 31, 38, 45, 54, 56, 58, 65, 69, 71, 72, 73, 85, 86], "z": [12, 13, 16, 17, 19, 20, 29, 30, 31, 38, 45, 57, 58, 65, 69, 71, 72, 73, 84, 85, 86], "each": [12, 16, 27, 29, 30, 31, 34, 35, 38, 40, 44, 45, 53, 55, 65, 71, 72, 73, 85], "predefin": [12, 85], "u_vec": [12, 29, 30, 31, 35, 36, 38, 45, 85], "v_vec": [12, 29, 30, 31, 35, 36, 38, 45, 85], "length": [12, 16, 36, 42, 64, 65, 72, 85], "side": [12, 42, 71], "scale": [12, 42, 44, 85], "defin": [12, 18, 24, 29, 30, 31, 35, 38, 42, 44, 45, 53, 70, 71, 72, 81, 85, 86], "point": [12, 13, 34, 36, 39, 42, 44, 48, 71, 85, 86], "triangl": [12, 85], "h": [12, 35, 71, 72, 73, 79, 85, 86], "r": [12, 34, 35, 66, 67, 85], "on_boundari": [12, 42, 85], "boundari": [12, 16, 19, 42, 44, 77, 85], "boundary_strategi": [12, 44, 85], "combin": [12, 34, 44, 71, 72, 73, 85], "peic": 12, "level": [12, 44, 85], "weight": [12, 27, 28, 35, 44, 73, 76, 85], "after": [12, 16, 19, 20, 71, 72, 86], "displai": [12, 29, 30, 31, 35, 38, 45, 46, 71, 72, 73, 85], "view": [12, 85], "allow": [12, 13, 19, 20, 85], "correct": [12, 15, 16, 27, 28, 42, 71, 73, 86], "show_face_color": [12, 85], "As": [12, 16, 85], "face": [12, 13, 29, 30, 31, 35, 38, 44, 45], "show_insid": [12, 85], "lattice_view": [12, 85], "precut_tiling_view": [12, 85], "befor": [12, 72, 73, 85], "set_paramet": [12, 85], "updat": [12, 27, 71, 72, 73, 85], "is_configur": [12, 85], "directli": [12, 85], "individu": [12, 85], "update_is_configur": [12, 85], "make_cod": [12, 85], "produc": [12, 16, 17, 18, 19, 20, 28, 71, 72, 73, 85], "who": 12, "qubit_index": 12, "draw": [12, 13, 24, 29, 30, 31, 35, 38, 44, 45, 46, 85], "face_color": [12, 29, 30, 31, 35, 38, 44, 45, 47, 85], "show_index": [12, 44, 85], "previou": [12, 16, 32], "approach": [12, 85], "wrap": 12, "In": [12, 18, 28, 76, 85, 86], "case": [12, 16, 17, 18, 19, 20, 85], "9": [12, 16, 29, 30, 31, 35, 38, 85], "triangular_color_code_build": [12, 85], "anoth": [12, 71, 72, 73, 85], "surfac": [12, 17, 18, 20, 42], "surface_code_build": [12, 85], "surfacecodebuild": [12, 85], "dx": [12, 85], "dz": [12, 85], "xcolor": [12, 13, 44, 85], "lightcor": [12, 85], "zcolor": [12, 13, 44, 85], "skyblu": [12, 85], "rotat": [12, 20, 39, 44, 45, 85], "rotated_surface_code_buil": [12, 85], "rotatedsurfacecodebuild": [12, 85], "ul_op": [12, 85], "Or": 12, "heavi": [12, 85], "hex": 12, "heavyhex_code_build": [12, 85], "primit": [13, 85], "geometr": [13, 34, 47, 85], "At": [13, 16, 85], "present": [13, 27, 85], "consist": [13, 23, 71, 85], "vertic": [13, 32, 42, 44, 48, 86], "edg": [13, 16, 27, 28, 44, 51, 76, 86], "wirefram": [13, 33, 44, 85], "shell": [13, 24, 29, 30, 31, 35, 38, 42, 45, 48, 85], "vertex": [13, 32, 42, 44, 85], "space": [13, 34, 85], "list": [13, 16, 17, 18, 19, 20, 21, 22, 25, 27, 28, 29, 30, 31, 34, 35, 36, 38, 41, 42, 44, 45, 47, 50, 51, 58, 68, 71, 72, 73, 74, 76, 77, 78, 79, 81, 85, 86], "hyperedg": [13, 27, 85], "self": [13, 16, 17, 19, 20, 34, 36, 44, 71, 72, 73, 85], "loop": [13, 28, 85], "associ": [13, 24, 48, 71, 85], "them": [13, 28, 73, 85], "current": [13, 40, 42, 71, 72, 73, 85], "etc": [13, 17, 18, 29, 30, 31, 79, 85], "ad": [13, 16, 19, 20, 69, 81, 85, 86], "futur": [13, 15], "assocoi": [13, 85], "system": [13, 24, 85], "being": [13, 17, 19, 20, 48, 50, 68, 85], "step": [13, 85, 86], "until": [13, 85], "solid": [13, 85], "c": [13, 16, 17, 29, 30, 31, 34, 38, 45, 71, 72, 73, 85], "librari": [13, 22, 26], "creat": [13, 16, 17, 18, 19, 20, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 42, 43, 44, 45, 47, 48, 50, 51, 52, 56, 86], "implement": [13, 16, 19, 42, 55, 85, 86], "thu": [13, 32, 33, 43, 44, 50, 51, 85], "necessarili": [13, 85], "fast": [13, 85], "fulli": [13, 85, 86], "featur": [13, 44, 85], "model": [13, 17, 23, 78, 81, 85, 86], "qubit_count": [13, 24, 29, 30, 31, 35, 38, 44, 45, 47, 48, 85], "qubitcount": [13, 24, 44, 47, 48, 85], "qubit_data": [13, 24, 29, 30, 31, 35, 38, 44, 45, 47, 48, 85], "qubitdata": [13, 24, 44, 47, 48, 85], "squar": [13, 38, 42, 45, 85], "repres": [13, 28, 34, 39, 53, 55, 57, 60, 69, 71, 72, 73, 85], "xxxx": [13, 29, 30, 31, 38, 85], "zzzz": [13, 29, 30, 31, 38, 85], "share": [13, 85], "common": [13, 85], "x_oper": [13, 85], "z_oper": [13, 85], "y_oper": [13, 85], "y": [13, 16, 29, 30, 31, 38, 45, 71, 72, 73, 85, 86], "v1": [13, 29, 30, 31, 35, 38, 45, 85], "id": [13, 32, 33, 40, 43, 44, 50, 51, 85, 86], "new_qubit": [13, 40, 85], "increment_qubit": [13, 40, 85], "v2": [13, 29, 30, 31, 35, 38, 45, 85], "v3": [13, 29, 30, 31, 35, 38, 85], "v4": [13, 35, 38, 85], "e1": [13, 85], "e2": [13, 85], "e3": [13, 85], "e4": [13, 85], "wf1": [13, 85], "f1": [13, 85], "v5": [13, 35, 38, 85], "v6": [13, 38, 85], "v7": [13, 38, 85], "v8": [13, 31, 85], "e5": [13, 85], "e6": [13, 85], "e7": [13, 85], "e8": [13, 85], "wf2": [13, 85], "f2": [13, 85], "14": [13, 38, 86], "green": [13, 85], "yellow": [13, 85], "show_face_id": [13, 44, 85], "earli": 15, "stage": 15, "develop": [15, 85], "like": [15, 49, 62, 63, 79, 85], "break": 15, "api": 15, "releas": [15, 72, 85], "If": [15, 16, 17, 18, 19, 20, 25, 26, 27, 29, 30, 31, 35, 36, 38, 42, 45, 53, 55, 64, 65, 71, 72, 73, 85], "you": [15, 85, 86], "encount": 15, "bug": 15, "pleas": 15, "open": [15, 85], "issu": [15, 85], "github": [15, 79, 85], "sourc": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 85], "experimentalist": [15, 85], "theorist": [15, 85], "quantum": [15, 27, 55], "tutori": [15, 85], "how": [15, 16, 17, 18, 19, 20, 42, 71, 72, 73, 85], "guid": 15, "refer": [15, 16, 40, 72, 73, 85], "discuss": [15, 85], "link": [16, 85], "t": [16, 17, 18, 19, 20, 57, 70, 71, 72, 73, 77, 85, 86], "basi": [16, 17, 19, 20, 29, 35, 36, 38, 45, 58, 65, 69, 79, 85], "xy": [16, 73, 85], "logic": [16, 17, 18, 19, 20, 27, 28, 74, 77, 79, 86], "reset": [16, 19, 20, 79, 85, 86], "delai": [16, 19], "none": [16, 17, 19, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 61, 62, 63, 64, 65, 69, 71, 72, 73, 74, 76, 77, 78, 79, 85], "barrier": [16, 19, 20, 79, 85], "max_dist": 16, "schedul": 16, "run_202": 16, "rounds_per_202": 16, "conditional_reset": 16, "codecircuit": [16, 17, 19, 20, 27], "anisotrop": 16, "repetit": [16, 17, 18, 19, 20, 85], "correspond": [16, 17, 18, 19, 20, 27, 28, 76, 79, 81, 85], "over": [16, 19, 71, 73, 85, 86], "syndrom": [16, 17, 18, 19, 20, 27, 28, 77, 85, 86], "measur": [16, 17, 18, 19, 20, 27, 28, 77, 78, 79, 85, 86], "round": [16, 17, 18, 19, 20, 77, 85, 86], "provid": [16, 24, 28, 29, 30, 31, 35, 36, 38, 45, 72, 73], "param": [16, 17, 18, 19, 20, 44], "tupl": [16, 17, 19, 20, 21, 22, 27, 28, 32, 41, 42, 44, 64, 68, 69, 71, 72, 73], "c0": 16, "c1": 16, "where": [16, 29, 30, 31, 35, 38, 45, 65, 71, 72, 73, 85, 86], "auxiliari": 16, "int": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 32, 33, 34, 36, 37, 40, 42, 43, 44, 47, 50, 51, 55, 56, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 76, 77, 78, 85], "str": [16, 17, 19, 20, 21, 22, 27, 28, 41, 42, 44, 48, 54, 71, 72, 73, 74, 76, 77, 86], "pair": [16, 27, 53, 58, 64, 65, 69, 85], "specifi": [16, 26, 27, 28, 71, 72, 73], "string": [16, 17, 18, 19, 20, 27, 28, 41, 71, 72, 73, 86], "valu": [16, 17, 18, 19, 20, 27, 28, 36, 40, 42, 44, 64, 68, 71, 72, 73, 76, 77, 86], "bool": [16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 34, 36, 42, 44, 47, 53, 57, 58, 59, 60, 61, 62, 63, 71, 72, 73, 74, 77, 85], "gate": [16, 19, 20, 79, 81, 85], "mid": [16, 19, 20], "ff": 16, "effect": [16, 27, 85], "via": [16, 27, 71, 85], "feed": 16, "forward": 16, "time": [16, 17, 19, 71, 72, 73, 77, 79, 85, 86], "dt": [16, 19], "float": [16, 19, 34, 36, 42, 44, 48, 50, 76], "between": [16, 17, 19, 42, 48, 71, 72, 73, 85], "section": [16, 19, 28, 85], "dict": [16, 17, 18, 19, 20, 27, 28, 42, 44, 76, 77, 79], "dictionari": [16, 17, 18, 19, 20, 27, 28, 40, 42, 78, 79], "kei": [16, 18, 27, 28, 29, 30, 31, 38, 40, 45, 76, 77, 79, 85], "predetermin": 16, "bicolor": 16, "found": [16, 64, 85], "initi": [16, 18, 20, 24, 27, 34, 73, 85], "maximum": [16, 85], "determin": [16, 17, 18, 19, 20, 27, 36, 44, 53], "order": [16, 17, 18, 71, 72, 73, 85], "entangl": [16, 85], "appli": [16, 19, 20, 36, 69, 71, 72, 73, 78], "element": [16, 19, 20, 27, 65, 69, 71, 85], "simultan": 16, "run": [16, 27, 28, 85, 86], "overwritten": [16, 17, 18], "high": [16, 85], "enough": [16, 42, 85], "least": 16, "rounds_per_202xlen": 16, "part": [16, 71, 73, 85], "202": 16, "typic": [16, 18, 28, 86], "begin": [16, 73, 85], "end": [16, 20, 42, 72, 73, 85], "requir": [16, 17, 18, 19, 20, 42, 85], "get": [16, 21, 71, 72, 73, 76, 77, 85, 86], "event": [16, 27, 85, 86], "dedic": [16, 85], "conjug": [16, 71, 72, 73, 85], "condit": [16, 73], "check_nod": [16, 17, 18, 19, 20], "node": [16, 17, 18, 19, 20, 27, 28, 77, 85, 86], "ignore_extra_log": [16, 17, 18, 19, 20], "minim": [16, 17, 18, 19, 20, 85], "neutral": [16, 17, 18, 19, 20, 28], "addit": [16, 17, 18, 19, 20, 27, 44, 78, 85], "readout": [16, 17, 18, 19, 20], "flip": [16, 17, 18, 19, 20, 85], "cluster": [16, 17, 18, 19, 20, 28, 86], "string2nod": [16, 17, 18, 19, 20, 28], "undeed": [16, 17, 18, 19, 20], "ignor": [16, 17, 18, 19, 20, 85], "should": [16, 17, 18, 19, 20, 27, 35, 42, 51, 71, 85], "reflect": [16, 17, 18, 19, 20], "return": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 40, 41, 42, 43, 44, 45, 46, 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 81, 85], "independ": [16, 17, 18, 19, 20, 55, 65, 85], "valid": [16, 17, 18, 19, 20], "flipped_logical_nod": [16, 17, 18, 19, 20], "were": [16, 17, 18, 19, 20, 85], "origin": [16, 17, 18, 19, 20, 24, 29, 30, 31, 35, 38, 42, 45, 47, 71, 72, 73], "num_error": [16, 17, 18, 19, 20], "minimum": [16, 17, 18, 19, 20, 48], "clean_cod": 16, "obviou": 16, "identifi": [16, 54, 72], "remov": [16, 27, 72, 73, 85], "modif": 16, "static": [16, 22, 32, 33, 34, 39, 42, 43, 44, 50, 51, 72], "flatten_nod": 16, "consolid": 16, "those": [16, 42, 85], "same": [16, 28, 36, 64, 65, 70, 72, 73, 85], "posit": [16, 42, 50, 54, 56, 68, 71, 72, 73, 85], "decodinggraphnod": [16, 17, 27], "flatten": 16, "flat_nod": 16, "get_error_coord": 16, "count": [16, 24, 27, 44, 78], "decoding_graph": [16, 28], "spitz": [16, 27], "remove_invalid_edg": 16, "return_sampl": [16, 27], "get_error_prob": [16, 27], "graph": [16, 18, 27, 28, 86], "gener": [16, 17, 18, 24, 25, 26, 27, 28, 36, 42, 53, 55, 57, 60, 72, 73, 74, 78, 86], "probabl": [16, 17, 27, 85, 86], "singl": [16, 27, 51, 72, 73, 79, 85, 86], "locat": [16, 64, 72, 85], "calcul": [16, 27, 71, 72, 73, 85], "analyz": [16, 27], "decodinggraph": [16, 17, 18, 76, 77], "object": [16, 21, 22, 23, 26, 27, 29, 30, 31, 34, 35, 36, 37, 38, 40, 41, 42, 43, 45, 47, 48, 52, 71, 72, 73, 75, 76, 77, 80], "support": [16, 27, 42, 85], "delet": [16, 41, 44, 72, 73], "invalid": [16, 72, 73], "thei": [16, 27, 58, 71, 72, 73, 85, 86], "sampl": [16, 27, 78], "coordin": [16, 29, 30, 31, 35, 38, 42, 45, 71, 85], "start_tim": 16, "end_tim": 16, "specif": [16, 27, 29, 30, 31, 35, 38, 45, 62, 63, 72, 76, 77, 85], "whose": [16, 17, 19, 20, 27, 79, 85], "detect": [16, 85], "account": 16, "It": [16, 17, 18, 28, 42, 55, 65, 85, 86], "assum": [16, 17, 18, 28, 36, 42, 55, 65, 73, 81, 85], "subround": 16, "unit": [16, 85], "is_cluster_neutr": [16, 17, 18, 19, 20], "atypical_nod": [16, 17, 18, 19, 20], "mean": [16, 17, 18, 19, 20, 72, 85, 86], "one": [16, 17, 18, 19, 20, 28, 42, 71, 72, 73, 85, 86], "caus": [16, 17, 18, 19, 20], "atyp": [16, 17, 18, 19, 20, 86], "pass": [16, 17, 18, 19, 20, 44, 86], "kwarg": [16, 17, 18, 19, 20, 21, 22, 24, 25, 44, 47, 72, 73], "convert": [16, 17, 18, 19, 20, 28, 44, 72, 73, 79, 85, 86], "keyword": [16, 17, 18, 19, 20], "argument": [16, 17, 18, 19, 20, 54, 62, 63, 85], "below": [16, 20, 85], "all_log": [16, 17, 19, 20, 27], "irrespect": [16, 17, 19, 20], "non": [16, 19, 20, 27, 28, 45, 73, 85, 86], "trivial": [16, 19, 20, 27, 85], "string2raw_log": [16, 17, 19, 20, 28], "extract": [16, 19, 20, 44, 85], "raw": [16, 19, 20], "transpil": 16, "backend": 16, "echo": 16, "echo_num": 16, "ibmq": 16, "ibmqbackend": 16, "express": [16, 19, 20, 85], "xzx": 16, "respect": [16, 17, 85], "repeat": [16, 85], "dynam": [16, 85], "decoupl": 16, "transpiled_circuit": 16, "attribut": [16, 18, 21, 24, 27, 29, 30, 31, 32, 33, 35, 36, 38, 43, 44, 45, 50, 51, 52, 71, 72, 73, 74, 76, 77], "available_method": [16, 27], "naiv": [16, 27], "method_na": [16, 27], "method_spitz": [16, 27], "round_schedul": [17, 19], "zx": [17, 71, 72, 73, 85], "noise_model": [17, 78, 81, 86], "either": [17, 24, 27, 71, 72, 73, 79, 85], "b": [17, 34, 42, 65, 70, 71, 72, 85], "x_gaug": 17, "indic": [17, 27, 28, 42, 65, 72, 73, 76, 77, 85], "z_gaug": 17, "x_stabil": 17, "z_stabil": 17, "logical_x": [17, 85], "logical_z": [17, 85], "encod": [17, 19, 20, 26, 71, 72, 73, 81, 82, 85, 86], "measurem": 17, "gaug": [17, 24], "xz": [17, 71, 72, 73, 85], "nois": [17, 78, 79, 81, 85, 86], "noisi": 17, "pnenomolog": 17, "entri": [17, 40, 42, 62, 63, 72, 73, 86], "probab": 17, "depolar": [17, 85], "quantumcircuit": [17, 19, 71, 72, 73, 78, 79, 81, 85], "memori": [17, 73, 85], "experi": [17, 85], "heavyhex": 17, "hhc": 17, "css_code": 17, "01": [17, 42, 48, 85], "version": [17, 18, 42, 72, 85], "here": [17, 18, 85], "odd": [17, 18, 85, 86], "assess": [17, 18], "complex": [17, 18, 71, 72, 73, 85], "care": [17, 18], "suppli": [17, 18, 36, 57], "stim_detector": 17, "detector": [17, 79], "stim": [17, 79], "clbit": [17, 79], "classic": [17, 72, 79, 85], "bit": [17, 72, 79, 85], "regist": 17, "comparison": [17, 42, 79], "particip": 17, "stabil": [17, 24, 52, 60, 77], "earlier": [17, 72, 86], "trigger": 17, "outcom": [17, 19, 28, 78, 86], "abc": [18, 46], "abstract": [18, 85], "well": [18, 19, 20, 68, 85], "fault": [18, 86], "toler": [18, 42], "inher": 18, "depend": 18, "famili": [18, 85], "must": [18, 26, 29, 30, 31, 35, 38, 42, 44, 45, 54, 55, 56, 59, 64, 65, 70, 72, 85], "label": [18, 45, 71, 72, 73, 85, 86], "xbasi": [19, 85], "henc": [19, 20, 71, 72], "ancilla": [19, 20, 77], "assist": [19, 20], "No": [19, 20, 27, 85], "otherwis": [19, 20, 42, 57, 59, 61, 62, 63, 71, 72, 73, 85], "final": [19, 20, 28, 71, 73, 85, 86], "get_circuit_list": [19, 20], "circuit_list": [19, 20], "partition_outcom": 19, "infer": [19, 20], "ugli": [19, 20], "whenev": [19, 20, 85], "re": [19, 20], "syndrome_measur": [19, 20], "applic": [19, 20, 85, 86], "disregard": [19, 20], "boolean": [19, 20, 62, 63, 71, 72, 73, 85], "denot": [19, 20, 85], "log": [19, 20, 27], "state": [20, 85, 86], "config": [21, 85], "configur": [21, 22, 85], "_summary_": [21, 22, 24, 71, 72, 73, 74], "_description_": [21, 22, 24, 25, 34, 41, 42, 44, 71, 72, 73, 74], "_de_": 21, "union": [21, 22, 25, 26, 27, 28, 36, 41, 42, 43, 44, 50, 58, 62, 63, 70, 74, 76, 78, 79, 81], "n_dir_format": 21, "n_": [21, 85], "n_k_codes_file_format": 21, "codes_n_": 21, "_k_": 21, "json": 21, "name": [22, 41, 52, 72, 74, 79, 81, 85], "path": [22, 28, 42, 85], "config_filenam": 22, "codebas": [22, 85], "config_fil": 22, "file": [22, 85], "nme": 22, "data2cod": 22, "record": 22, "in_rang": 22, "_type_": [22, 42, 44, 73], "search": [22, 64, 85], "core": [23, 86], "central": [23, 85], "deriv": [23, 85], "recoveri": 23, "stuff": [23, 86], "init": [23, 32, 33, 37, 39, 40, 41, 42, 43, 44, 49, 50, 51, 71, 72, 73, 75], "function": [23, 28, 71, 72, 73, 82, 85], "data": [24, 27, 28, 29, 30, 31, 35, 38, 41, 42, 44, 45, 48, 72, 73, 85], "defing": 24, "x1x2": 24, "z3z4": [24, 85], "x3z9": 24, "checkerboardtil": [24, 85], "subsytem": 24, "exist": [24, 27, 64, 85], "list_onli": 25, "alwai": [25, 44], "desc": 25, "match": [25, 71, 72, 73], "queri": 25, "0x13e304f40": 25, "0x13e30a490": 25, "0x13e30a880": 25, "0x13e30aa60": 25, "z0x1z2": [25, 85], "z1x2z3": 25, "code_info": [25, 26], "z2x3": 25, "24": [25, 85], "e6e4edd6": 25, "2ec6": 25, "467f": 25, "9187": 25, "0cc64bc51f1a": 25, "allsmallgroup": 25, "physic": [26, 85], "uniqu": [26, 32, 33, 40, 43, 44, 50, 51, 72, 73, 77], "request": 26, "suitabl": [26, 27, 68], "subclass": 26, "rais": [26, 29, 30, 31, 34, 35, 36, 38, 42, 45, 54, 55, 56, 57, 59, 60, 64, 65, 68, 69, 70, 71, 72, 73], "qiskiterror": [26, 29, 30, 31, 34, 35, 36, 38, 42, 45, 54, 55, 56, 57, 59, 60, 64, 65, 68, 69, 70, 71, 72, 73, 85], "assign": [26, 48, 85], "x0x2": 26, "z1z4": 26, "z0z2": 26, "x3": [26, 85], "x1x4": [26, 85], "z3": [26, 85], "576": 26, "47e52342": 26, "8ffc": 26, "48e5": 26, "be51": 26, "c60aab28e9b8": 26, "smallgroup": 26, "brute": 27, "empti": [27, 40, 72, 73, 85], "analys": 27, "helper": 27, "clean_measur": 27, "obvious": 27, "input": [27, 28, 34, 42, 53, 54, 55, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 85], "edge_in_graph": 27, "in_graph": 27, "get_edge_graph": 27, "copi": [27, 29, 30, 31, 34, 38, 45, 50, 71, 72, 73], "fault_id": [27, 76], "edge_graph": 27, "rx": 27, "pygraph": [27, 28], "estim": 27, "et": [27, 28, 85], "al": [27, 28], "http": [27, 79, 85], "doi": [27, 85], "org": [27, 85], "10": [27, 31, 35, 38, 55, 84, 85, 86], "1002": 27, "qute": 27, "201800012": 27, "get_node_graph": 27, "node_graph": 27, "make_error_graph": 27, "ouput": 27, "do": [27, 28, 58, 60, 69, 85], "subgraph": [27, 28], "node_index": [27, 28], "corrspond": [27, 77], "update_attribut": 27, "call": [27, 85], "weight_syndrome_graph": 27, "replac": [27, 71, 72, 85], "p": [27, 29, 30, 31, 38, 42, 45, 70, 71, 72, 73, 85, 86], "use_peel": 28, "clusteringdecod": 28, "around": [28, 39, 86], "erasur": [28, 86], "easili": [28, 85], "peel": [28, 86], "compat": [28, 71, 78, 79], "standard": [28, 78, 85], "hdrg": 28, "accord": [28, 81, 85], "huang": 28, "arxiv": [28, 85], "2004": 28, "04693": 28, "iii": 28, "1709": 28, "06218v3": 28, "detail": [28, 44, 71], "find": [28, 55, 64], "algorithm": [28, 42, 86], "u": [28, 85], "paper": [28, 85], "root": [28, 44, 85], "compress": 28, "get_correct": 28, "turn": [28, 64, 71, 72, 73, 85], "corrected_log": 28, "transvers": 28, "neighbouring_edg": 28, "neighbour": 28, "payload": 28, "decodinggraphedg": 28, "connect": [28, 51], "compon": [28, 44, 51], "infinit": [28, 42, 85], "tree": 28, "span": [28, 59, 65, 85], "forest": 28, "go": [28, 85, 86], "backward": 28, "through": [28, 64, 85, 86], "comput": [28, 42, 55, 66, 67, 68, 86], "1703": 28, "01517": 28, "occur": [28, 85], "process": [28, 69, 86], "predecod": 28, "callabl": 28, "preprocess": 28, "optyp": [29, 30, 31, 35, 38, 45], "pxzxz": [29, 35, 38, 45], "checker": [29, 35], "board": [29, 35], "diagram": [29, 30, 31], "q0": [29, 30, 31, 35, 38, 45, 85], "q1": [29, 30, 31, 35, 38, 45, 85], "q2": [29, 30, 31, 35, 38, 45, 85], "v0": [29, 30, 31, 35, 38, 45, 85], "o": [29, 30, 31, 35, 38, 42, 45, 85, 86], "q3": [29, 30, 31, 35, 38, 45, 85], "q4": [29, 30, 31, 35, 38, 45, 85], "q5": [29, 30, 31, 35, 38, 45, 85], "q6": [29, 30, 31, 35, 38, 45, 85], "q7": [29, 30, 31, 35, 38, 45, 85], "q8": [29, 30, 35, 38, 85], "yellowgreen": [29, 30, 31, 35, 38, 44, 45, 85], "tomato": [29, 30, 31, 35, 38, 44, 45, 85], "preformat": [29, 30, 31, 35, 38, 45], "op_dict": [29, 30, 31, 38, 45], "pppp": [29, 30, 31, 38, 45], "pattern": [29, 30, 31, 38, 45], "opertor": [29, 30, 31, 35, 38, 45], "cxzzx": [29, 38], "xzzx": 29, "avail": [29, 30, 31, 32, 33, 38, 43, 44, 45, 50, 51, 85], "precomput": [29, 30, 31, 38, 45], "layout": [29, 30, 31, 38, 45], "pzxzx": [29, 45], "cxxxx": [29, 45], "czzzz": [29, 45], "czxxz": [29, 38], "variabl": [29, 30, 31, 35, 38, 45, 85], "built": [29, 30, 31, 35, 38, 45], "abov": [29, 30, 31, 35, 38, 45, 85], "counter": [29, 30, 31, 35, 38, 45], "mapp": [29, 30, 31, 35, 38, 45], "scall": [29, 35, 38, 45], "access": [29, 35, 38, 45, 85], "unsupport": [29, 30, 31, 35, 38, 45], "classmethod": [29, 30, 31, 34, 35, 36, 38, 42, 45, 46, 48, 71, 72, 73], "faces_wf_compon": [29, 30, 31, 35, 38, 45, 47, 85], "num_fac": [29, 30, 31, 35, 38, 45, 85], "num_qubit": [29, 30, 31, 35, 38, 45, 47, 71, 72, 73, 85], "size": [29, 30, 31, 34, 35, 36, 38, 42, 44, 45, 56, 71, 72, 73, 85], "wf_coordin": [29, 30, 31, 35, 38, 45, 47, 85], "wf_loop_ind": [29, 30, 31, 35, 38, 45, 47, 85], "wf_operator_dict": [29, 30, 31, 35, 38, 45, 85], "zxxz": 29, "wf_q_indic": [29, 30, 31, 35, 38, 45, 47, 85], "pxxzzxx": [30, 31], "diagon": [30, 31], "bar": [30, 85], "hour": [30, 31, 85], "glass": [30, 31], "diagonalhourglasstil": [30, 85], "xx": [30, 35, 73, 86], "pzzxxzz": [30, 31], "zz": [30, 73], "v9": 31, "q9": [31, 35, 38, 85], "q10": [31, 35, 38, 85], "xxx": [31, 45], "11": [31, 35, 38, 85, 86], "zzz": [31, 45], "next_edg": 32, "previous_edg": 32, "shapeobject": [32, 33, 44, 50, 51], "endpoint": 32, "next": [32, 42, 85, 86], "add_par": [32, 33, 43, 44, 50, 51], "parent": [32, 33, 43, 44, 50, 51], "create_id": [32, 33, 43, 44, 50, 51], "track": [32, 33, 43, 44, 48, 50, 51, 72], "previous": [32, 33, 43, 44, 50, 51, 85], "been": [32, 33, 43, 44, 50, 51, 85], "last_id": [32, 33, 43, 44, 50, 51], "center": [34, 36, 57, 69], "dim": [34, 37, 71, 72, 73], "bound": [34, 42, 72, 73, 85], "box": [34, 42, 85], "aabb": [34, 36, 85], "nd": 34, "ndarri": 34, "dimens": [34, 37, 54, 69, 70, 71, 72, 73, 85], "descript": [34, 72, 85], "bounding_box_from_lin": [34, 42], "point1": [34, 48], "point2": [34, 48], "points1": 34, "points2": 34, "bounds1": 34, "bounds2": 34, "smallest": [34, 85], "test": [34, 58, 85], "els": [34, 85], "expand": [34, 36, 71, 72, 73], "amount": [34, 36, 85], "increas": [34, 42, 85], "along": [34, 85], "axi": [34, 85], "vector": [34, 36, 39, 42, 44, 55, 57, 59, 61, 63, 64, 65, 70, 71, 72, 73, 85], "intercept": 34, "line": [34, 42], "ax": [34, 85], "set_min_max": 34, "min_point": 34, "max_point": 34, "max": [34, 72], "min": [34, 85], "cz": 35, "axx": 35, "q11": [35, 38, 85], "q12": [35, 38, 85], "steelblu": [35, 44, 45, 85], "red": [35, 85], "12": [35, 38, 85], "8660254037844386": 35, "46410162": 35, "59807621": 35, "7320508075688772": 35, "cx": [35, 38, 85, 86], "xxxxxx": [35, 38, 85], "cyzx2": [35, 85], "hxx": [35, 85], "xzyxzi": 35, "zzzzzz": [35, 38], "dzx": 35, "zeroth": 36, "width": [36, 70], "height": 36, "someth": [36, 72, 73], "went": [36, 72, 73], "wrong": [36, 72, 73], "apply_transform_from": 36, "transform": [36, 68], "find_pre_transform_length": 36, "shear": 36, "generate_point": 36, "make_transform": 36, "restrict": [36, 85], "in_plac": 36, "new": [36, 40, 50, 71, 72, 73, 85], "fit": [36, 85], "geometrybound": 36, "modifi": [36, 71, 72, 85], "bounding_box": 36, "restrict_for_til": 36, "expand_valu": 36, "alpha": [36, 85], "complet": [36, 79, 85], "fill": 36, "ensur": 36, "entir": [36, 72, 73, 85], "provi": 36, "approxim": [36, 85], "perform": [36, 85], "tile_s": 36, "optim": 36, "factori": [36, 76], "octa": 38, "q13": 38, "q14": 38, "q15": 38, "doubl": [38, 45], "c8": 38, "9238795325112867": 38, "16": [38, 52, 85], "s8": 38, "3826834323650897": 38, "15432203": 38, "61312593": 38, "6892463972414662": 38, "230442497387663": 38, "zzzzzzzz": 38, "xxxxxxxx": 38, "15": 38, "twomanifold": [39, 42], "r2": [39, 42], "ison": 39, "rot_matrix": 39, "theta": [39, 85], "matrix": [39, 44, 52, 53, 54, 55, 56, 57, 60, 61, 62, 64, 66, 67, 68, 69, 70, 71, 72, 73, 85], "maintain": [40, 85], "pointer": 40, "decrement_qubit": 40, "decrement": 40, "increment": 40, "qubits_count": 40, "add_data_arrai": 41, "data_arrai": 41, "ndarrai": [41, 42, 47, 53, 54, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], "del_data_arrai": 41, "select": [42, 71, 72, 73, 85], "sublattic": 42, "epsilon": [42, 48, 85], "wind": 42, "contains_quad_winding_numb": 42, "deterin": 42, "polygon": 42, "pip": [42, 85], "problem": [42, 85], "On": [42, 85], "l2": 42, "interior": 42, "hornmann": 42, "agatho": 42, "20": [42, 85], "2001": 42, "131": 42, "144": 42, "With": [42, 44, 85], "slower": 42, "later": [42, 85], "date": [42, 72], "slow": 42, "larger": [42, 85], "close": [42, 85], "contains_ray_trac": 42, "horizont": 42, "infin": 42, "straight": 42, "sophist": 42, "verison": 42, "real": [42, 85, 86], "equal": [42, 71, 72, 73, 85], "001": 42, "create_lin": 42, "expens": [42, 86], "better": [42, 49, 85], "slightli": [42, 85], "is_between": 42, "strict": [42, 85], "Will": [42, 44], "squeez": [42, 71, 72, 73], "inequ": 42, "rect": 42, "direct": [42, 85, 86], "scale1": 42, "scale2": 42, "delta": [42, 85], "dtype": [42, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 85], "rectangl": 42, "labl": 42, "r3": 42, "r1": 42, "r0": 42, "corner": 42, "up": [42, 44, 72, 73], "live": 42, "definit": [42, 79, 85], "yet": [42, 85], "2d": [42, 71, 73], "head": [42, 68], "toward": 42, "proceed": 42, "obj": 42, "children": 43, "intern": [44, 71, 85], "sever": [44, 85], "subcompon": 44, "ex": [44, 48, 73], "delete_subtre": 44, "show_axi": [44, 85], "show_qubit": [44, 85], "figsiz": [44, 85], "point_siz": 44, "50": [44, 85], "ycolor": 44, "moment": [44, 85], "is_insid": 44, "inside_level": [44, 85], "boundary_level": [44, 85], "exclud": [44, 85], "debug": 44, "subshel": 44, "in_vertic": 44, "def": [44, 85], "vertex_path": [44, 85], "deflault": 44, "That": [44, 71, 72, 85], "exlud": 44, "noth": [44, 85], "extra": [44, 85], "print": [44, 52, 71, 72, 73, 84, 85, 86], "integer_snap": 44, "snap": 44, "rotate2d": 44, "angl": 44, "90": 44, "about_point": 44, "inplac": [44, 71, 72, 73], "shell2symplect": 44, "from_index": 44, "from_qubit": 44, "symplect": [44, 52, 53, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 69, 70, 71, 72, 73], "shift": 44, "traslat": 44, "other_shel": 44, "disjoint": 44, "diamond": [45, 85], "orient": 45, "wf_orient": 45, "tile_typ": 48, "rssc": 48, "po": [50, 54, 85], "set_posit": 50, "global": [50, 71, 72, 73], "shallowcopi": 50, "shallow": [50, 71, 72, 73], "linit": 51, "compris": 51, "prop_dict": 52, "citat": 52, "necessari": [52, 85], "hyperbolic_gen": 52, "hyperbolic_gener": [52, 74], "isotropic_gen": 52, "is_css_kei": 52, "is_decomposable_kei": 52, "is_degenerate_kei": 52, "is_gf4linear_kei": 52, "is_triorthogonal_kei": 52, "row": [53, 59, 60, 67, 68, 71, 73, 85], "gf": [53, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71], "zero": [53, 55, 65, 85], "abelian": [53, 60, 85], "subgroup": [53, 60, 85], "mutual": [53, 73], "commut": [53, 55, 65, 71, 72, 73, 85], "bool_": [53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 85], "augment": 54, "ident": [54, 56, 73, 81, 85], "m": [54, 85], "top": 54, "bottom": 54, "agument": 54, "One": [54, 85], "unknown": [54, 71, 72, 73, 85], "_augment_mat": 54, "hyperbol": [55, 58, 64, 65, 69], "partner": [55, 64, 85], "let": [55, 57, 64, 65, 70, 85], "m_0": [55, 57, 64], "m_": [55, 57, 64], "v": [55, 64, 71, 85], "m_index": 55, "pairwis": 55, "e": [55, 72, 73, 85, 86], "commmut": 55, "m_i": [55, 64, 85], "anticommut": [55, 72, 73, 85], "simplecticmatrix": 55, "full": [55, 57, 71, 72, 73, 85], "rank": [55, 68, 73, 85], "wrt": 55, "av": [55, 64, 85], "astyp": [55, 56, 64, 65, 67, 68, 69, 70, 71, 73, 85], "_build_hyper_partn": [55, 64, 85], "locate_hyper_partn": [55, 85], "_locate_hyper_partn": [55, 64], "note": [55, 71, 72, 73, 85, 86], "proposit": [55, 85], "nielsen": [55, 85], "chuang": [55, 85], "lambda": [56, 85], "i_n": 56, "_create_lambda_matrix": 56, "cntr": 57, "op": 57, "c_0": 57, "c_1": [57, 85], "c_": [57, 85], "center_matrix": 57, "m_1": 57, "Not": [57, 68, 85], "matric": [57, 58, 59, 65, 69, 70, 71, 73, 85], "symnplect": 58, "matrix1": 59, "matrix2": 59, "inpiut": 59, "is_symplectic_vector_form": [61, 62], "is_symplectic_matrix_form": [61, 63], "dimension": [62, 63, 64, 68, 70], "column": [62, 63, 64, 65, 68, 73], "is_symplectic_form": [62, 63], "int8": 63, "noncommut": 64, "parter": 64, "build_hyper_partn": [64, 85], "arang": [65, 85], "xrang": 65, "zrang": 65, "a_0": 65, "a_": 65, "a_i": [65, 85], "x_0": 65, "x_": [65, 85], "l": [65, 85], "z_0": 65, "z_": [65, 85], "x_i": [65, 85], "z_i": [65, 85], "hyerbol": 65, "b_0": 65, "b_": 65, "b_i": 65, "x_j": [65, 85], "z_j": [65, 85], "j": [65, 85], "op_": 65, "bf": 65, "iter": [65, 73, 85, 86], "x1x2x3": 65, "x2x3": 65, "x2": [65, 85], "z2": 65, "_make_commute_hyp": 65, "_rank": 66, "reduc": [67, 68, 85], "echelon": [67, 68], "_rref": [67, 68], "rref_complet": 67, "_rref_complet": [67, 68], "pivot": 68, "kth": 68, "rref_mat": 68, "transform_mat": 68, "tranform": 68, "rref": 68, "rank_": 68, "symplet": [69, 85], "gram": 69, "schmidt": 69, "gramschmidt": 69, "upon": 69, "split": 69, "accross": 69, "center_": [69, 85], "_symplectic_gram_schmidt": 69, "mat1": 70, "mat2": 70, "math": 70, "2m": [70, 85], "cdot": [70, 85], "lambda_n": 70, "_symplectic_product_vv": 70, "_symplectic_product_dens": 70, "phase_exp": [71, 72, 73], "baseoper": [71, 72, 73], "adjointmixin": 71, "multiplymixin": 71, "represent": [71, 72, 82], "phase": [71, 72, 73, 85], "izx": [71, 85], "modul": [71, 82, 85], "expon": [71, 72, 73], "z_4": [71, 73], "imput": 71, "coeffici": [71, 72, 73, 85], "adjoint": [71, 72, 73], "all_commut": [71, 72, 73], "qarg": [71, 72, 73], "paulisbas": 71, "dot": [71, 72, 73, 85], "anti": [71, 72, 73], "compos": [71, 72, 73, 85], "front": [71, 72, 73], "composit": [71, 72, 73], "To": [71, 72, 73, 85], "multipl": [71, 72, 85], "likewis": [71, 85], "a_1": 71, "a_2": 71, "a_k": 71, "b_1": 71, "b_2": 71, "b_k": 71, "wise": [71, 73], "paulit": 71, "compositon": 71, "cl": [71, 72], "clase": [71, 72], "deep": [71, 72, 73], "multipli": [71, 72], "obtain": [71, 72], "binari": [71, 72, 85], "evolv": [71, 72, 73], "frame": [71, 72, 73, 85], "heisenberg": [71, 72, 73], "pictur": [71, 72], "evolut": [71, 72, 73], "prime": [71, 72, 73], "dagger": [71, 72, 73, 85], "By": [71, 72, 73, 85], "schr\u00f6dinger": [71, 72, 73], "yield": [71, 72, 73, 85], "faster": [71, 72, 73], "don": [71, 72, 73], "revers": [71, 72], "tensor": [71, 72, 73, 85], "otim": [71, 72, 85], "input_dim": [71, 72, 73], "output_dim": [71, 72, 73], "power": [71, 72, 73, 85], "itself": [71, 72, 73, 85], "reshap": [71, 72, 73], "preserv": [71, 72, 73, 85], "constant": [71, 72, 73, 85], "set_pauli_encod": [71, 72, 73], "iyzx": [71, 72, 73], "default_external_pauli_rep_format": [71, 72, 73], "set_phase_encod": [71, 72, 73], "default_external_phase_encod": [71, 72, 73], "set_print_phase_encod": [71, 72, 73], "phase_encod": [71, 72, 73], "qubit_ord": [71, 72, 73], "extern": [71, 72, 73, 85], "syntax_cod": [71, 72, 73], "syntax_str": [71, 72, 73], "latex": [71, 72, 73], "set_tensor_encod": [71, 72, 73], "yzx": [71, 72, 73, 85], "default_external_tensor_encod": [71, 72, 73], "to_label": [71, 72, 73], "output_pauli_encod": [71, 72, 73], "no_phas": [71, 72, 73], "return_phas": [71, 72, 73], "index_start": [71, 72, 73], "index_str": [71, 72, 73], "representatiojn": [71, 72, 73], "notat": [71, 72, 73, 85], "external_pauli_encod": [71, 72, 73], "appear": [71, 72, 73, 85], "matter": [71, 72, 73], "what": [71, 72, 73, 77, 85, 86], "xzy": [71, 72, 73, 85], "adjust": [71, 72, 73], "full_group": [71, 72, 73], "product_syntax": [71, 72, 73, 85], "aree": [71, 72, 73], "lowest": [71, 72, 73], "reult": [71, 72, 73], "scalar": [71, 72, 73], "insert": [71, 72, 73, 81, 86], "unsign": [71, 72, 73], "q": [71, 72, 73, 85], "transpos": [71, 72, 73, 85], "external_phase_encod": [71, 72, 73], "external_qubit_ord": [71, 72, 73], "external_syntax": [71, 72, 73], "external_tensor_encod": [71, 72, 73], "print_phase_encod": [71, 72, 73], "input_shap": [71, 72, 73], "output_shap": [71, 72, 73], "num_i": [71, 72, 73], "pauli_encod": [71, 72, 73], "tensor_encod": [71, 72, 73], "1d": [71, 73], "_x": [71, 73], "marked": [71, 73], "_z": [71, 73], "input_pauli_encod": [72, 73], "input_qubit_ord": [72, 73, 85], "tuple_ord": [72, 73], "progress": 72, "phase_expon": 72, "stype": 72, "tuple_prd": 72, "append_pauli": 72, "pauli_label": 72, "deprec": 72, "append": [72, 85], "month": [72, 85], "cannot": [72, 73, 85], "incompat": 72, "while": [72, 85, 86], "ind": [72, 73, 85], "delete_qubit": 72, "equiv": 72, "from_label": 72, "insert_pauli": 72, "target": 72, "similar": [72, 85], "g": [72, 85, 86], "zyxi": 72, "zy": [72, 73], "xi": [72, 73, 85, 86], "instrs2symplect": 72, "instr": 72, "invers": [72, 73], "kron": 72, "kroneck": 72, "p_2": 72, "p_1": 72, "terra": [72, 85], "17": [72, 85], "p2": 72, "pauli_singl": 72, "random": [72, 73, 84, 85, 86], "seed": 72, "random_pauli": 72, "quantum_info": [72, 73, 85], "set_trunc": 72, "val": [72, 85], "charact": [72, 85], "truncat": 72, "disabl": [72, 85], "sgn_prod": 72, "p1": 72, "now": [72, 86], "handl": [72, 81], "p_3": 72, "without": [72, 85], "sign": [72, 85], "1j": 72, "to_cpx_matrix": 72, "spars": [72, 73, 85], "to_instruct": [72, 81], "instruct": 72, "to_matrix": [72, 73], "to_spmatrix": 72, "csr": [72, 73], "scipi": 72, "csr_matrix": 72, "update_x": 72, "partial": 72, "setter": 72, "update_z": 72, "whole": 72, "num_clbit": 72, "pltb_int": 72, "pltb_str": 72, "linearmixin": 73, "groupmixin": 73, "iixxz": 73, "pdata": 73, "anticommutes_with_al": 73, "multi": 73, "satisfi": [73, 85], "argsort": 73, "sort": 73, "tabl": 73, "lexicograph": 73, "addition": 73, "term": [73, 85], "commutes_with_al": 73, "underli": 73, "from_symplect": 73, "old": 73, "getaslist": 73, "slc": 73, "group_qubit_wise_commut": 73, "partit": [73, 85], "label_it": 73, "lazi": 73, "labeliter": 73, "matrix_it": 73, "matrixiter": 73, "shuffl": 73, "ii": [73, 85], "ix": [73, 85, 86], "iz": [73, 85], "yi": 73, "yx": 73, "yy": 73, "yz": [73, 85], "zi": [73, 85], "pt": 73, "srt": 73, "effici": [73, 85, 86], "alloc": 73, "advanc": 73, "bmatrix": [73, 85], "dens": [73, 85], "return_index": 73, "return_count": 73, "item": 73, "unique_indic": 73, "occurr": 73, "unique_count": 73, "come": [73, 85], "_phase_exp": 73, "versu": 73, "num_pauli": 73, "with_gener": 74, "num_gen": 74, "style": 76, "pymatch": 76, "compar": [76, 77], "is_boundari": 77, "is_log": 77, "doesn": 77, "shot": 78, "4000": 78, "get_stim_circuit": 78, "thereof": [78, 81], "paulinoisemodel": [78, 81, 86], "com": [79, 85], "quantumlib": 79, "blob": [79, 85], "main": [79, 85], "doc": [79, 85], "md": 79, "control": [79, 85], "sdg": 79, "swap": [79, 85], "channel": [79, 85], "mandatori": 79, "eigenvalu": [79, 85], "total": [79, 85], "pariti": [79, 86], "again": [79, 85], "stim_circuit": 79, "stim_measurement_data": 79, "hashabl": 80, "idl": [81, 85], "idle_": 81, "qc": 81, "idle_1": 81, "noisy_circuit": 81, "convers": 82, "interact": [83, 85], "h_": 84, "text": [84, 85], "drift": 84, "frac": [84, 85], "omega": 84, "randint": 84, "tomorrow": 85, "great": 85, "tut19": 85, "ibm": 85, "servic": 85, "micheal": 85, "heali": 85, "usa": 85, "thoma": 85, "alexand": 85, "canada": 85, "edward": 85, "chen": 85, "introduc": 85, "attende": 85, "alongsid": 85, "openqasm3": 85, "languag": 85, "achiev": 85, "advantag": 85, "overview": 85, "hardwar": 85, "flow": 85, "taught": 85, "commun": 85, "qec_framework_ieee_2022": 85, "ipynb": 85, "rapidli": 85, "envolv": 85, "field": 85, "experiment": 85, "theoret": 85, "imporant": 85, "public": 85, "most": 85, "shame": 85, "extens": 85, "generaliz": 85, "document": 85, "significi": 85, "wast": 85, "qiksit": 85, "apach": 85, "licens": 85, "isol": 85, "user": 85, "flexibl": 85, "modular": 85, "architectur": 85, "priorit": 85, "eas": 85, "speed": 85, "conveni": 85, "three": 85, "componet": 85, "cli": 85, "command": 85, "graphic": 85, "edit": 85, "abil": 85, "load": 85, "save": 85, "explor": 85, "best": 85, "visual": 85, "appeal": 85, "stabl": 85, "modern": 85, "help": 85, "theori": 85, "research": 85, "machin": 85, "pi": 85, "gui": 85, "script": 85, "repo": 85, "jame": 85, "wooton": 85, "andrew": 85, "cross": 85, "minut": 85, "higher": 85, "virtual": 85, "qrao": 85, "remaind": 85, "activ": 85, "qiskit_qec_env": 85, "wish": 85, "python3": 85, "bin": 85, "folder": 85, "directori": 85, "git": 85, "gitignor": 85, "prefer": 85, "automat": 85, "enter": 85, "direnv": 85, "clone": 85, "cd": 85, "txt": 85, "dev": 85, "pylatexenc": 85, "altern": 85, "properli": 85, "sure": 85, "exact": 85, "shown": 85, "tox": 85, "pylint": 85, "jupyt": 85, "notebook": [85, 86], "project": 85, "cach": 85, "upgrad": 85, "troubl": 85, "lab": 85, "past": 85, "cell": 85, "Then": 85, "good": 85, "concern": 85, "funcdment": 85, "storag": 85, "mathbb": 85, "f": 85, "_2": 85, "messag": 85, "therefor": 85, "n_2": 85, "idea": [85, 86], "dan": 85, "dun": 85, "steve": 85, "flammia": 85, "summer": 85, "school": 85, "2022": 85, "simplist": 85, "sai": 85, "000": 85, "111": 85, "010011": 85, "0000000": 85, "1111111": 85, "1000000": 85, "1100000": 85, "1110000": 85, "1111000": 85, "1111100": 85, "1111110": 85, "less": 85, "half": [85, 86], "major": [85, 86], "vote": 85, "0000000000": 85, "0000100110": 85, "abl": 85, "thing": 85, "destroi": 85, "repeatedli": 85, "unknow": 85, "simplest": 85, "fundament": 85, "world": 85, "hilbert": 85, "think": 85, "inner": 85, "langl": 85, "rangl": 85, "induc": 85, "norm": 85, "metric": 85, "convent": 85, "bra": 85, "ket": 85, "mostli": 85, "adjunct": 85, "varaiabl": 85, "phi": 85, "act": 85, "psi": 85, "rai": 85, "known": 85, "pure": 85, "mechan": 85, "axiom": 85, "denisti": 85, "mix": 85, "howev": 85, "densiti": 85, "limit": 85, "aspect": 85, "rho_": 85, "unitari": 85, "action": 85, "mapsto": 85, "align": 85, "mathcal": 85, "offer": 85, "signific": 85, "cost": 85, "discret": 85, "observ": 85, "superposit": 85, "fatal": 85, "situat": 85, "decomposit": 85, "oplu": 85, "qauntum": 85, "simeq": 85, "just": 85, "subspac": 85, "trace": 85, "cptp": 85, "map": 85, "rightarrow": 85, "arbitari": 85, "recover": 85, "esist": 85, "rho_a": 85, "rho_b": 85, "rho": 85, "_b": 85, "circ": [85, 86], "studi": 85, "interest": 85, "know": 85, "understand": 85, "introducd": 85, "plai": 85, "role": 85, "sigma_0": 85, "sigma_i": 85, "quad": 85, "sigma_1": 85, "sigma_x": 85, "sigma_2": 85, "sigma_z": 85, "sigma_3": 85, "nice": 85, "hermitian": 85, "involutori": 85, "textrm": 85, "_": 85, "2x2": 85, "sigma_a": 85, "_1": 85, "sometim": 85, "deifn": 85, "natur": 85, "univers": 85, "_n": 85, "x_1": 85, "x_2": 85, "x_n": 85, "z_1": 85, "z_2": 85, "z_n": 85, "effectic": 85, "defint": 85, "t_i": 85, "th": 85, "remain": 85, "e_0": 85, "e_1": 85, "orthonorm": 85, "qquad": 85, "2n": 85, "written": 85, "rho_q": 85, "tau": 85, "delta_1": 85, "delta_2": 85, "delta_n": 85, "yxiz": 85, "y_0x_1z_3": 85, "ixz": 85, "x_0y_3": 85, "xyxyxxxiiix": 85, "mutilpl": 85, "interpret": 85, "primarili": 85, "respons": [85, 86], "qikit": 85, "rewritten": 85, "onc": 85, "becom": 85, "merg": [85, 86], "plu": 85, "mention": 85, "decid": 85, "ineffici": 85, "especi": 85, "basesparsepauli": 85, "sparsepauli": 85, "sparsepaulilist": 85, "loss": 85, "delta_j": 85, "rho_j": 85, "f_2": 85, "rho_1": 85, "rho_n": 85, "ixzi": 85, "mathemat": 85, "phantom": 85, "f_4": 85, "extend": 85, "cetera": 85, "give": 85, "vert": 85, "latex_syntax": 85, "x0y1x2y3x4x5x6x10": 85, "ixyxz": 85, "prone": 85, "iiiiiixiiiiiiiiiiiiiiiiiiiiiiiz": 85, "ix_6z_": 85, "30": 85, "compact": 85, "far": 85, "much": 85, "paulirep": 85, "x1x4y6": 85, "yixiixi": 85, "taken": 85, "largest": 85, "x1i9": 85, "iiiiiiiixi": 85, "x1x2x3x4": 85, "y9y6x3x1": 85, "iiiiixxxxi": 85, "yiiyiixixi": 85, "hold": 85, "p_1n_1p_2n_2": 85, "p_kn_k": 85, "p_i": 85, "n_1": 85, "n_k": 85, "equio": 85, "bilinear": 85, "w": 85, "foral": 85, "degener": 85, "skew": 85, "symmetr": 85, "pq": 85, "qp": 85, "finit": 85, "said": 85, "proper": 85, "subset": 85, "burnsid": 85, "theorem": 85, "1016": 85, "jalgebra": 85, "2013": 85, "005": 85, "g_1": 85, "g_2": 85, "g_k": 85, "leq": 85, "_k": 85, "_j": 85, "g_l": 85, "p_n": 85, "g_i": 85, "g_j": 85, "19": 85, "x0": 85, "x1": 85, "z0": 85, "procedur": 85, "g_m": 85, "unprocess": 85, "setup": 85, "leftarrow": 85, "backslash": 85, "everi": [85, 86], "cup": 85, "vg": 85, "2r": 85, "21": 85, "22": 85, "x_k": 85, "y_1": 85, "y_k": 85, "y_i": 85, "make_commute_hyp": 85, "symplectic_gram_schmidt": 85, "x0y1x2": 85, "x0x1x3": 85, "y0x1x2z3": 85, "x0z1z2y3": 85, "shall": 85, "commonli": 85, "stabilz": 85, "princip": 85, "s_1": 85, "s_2": 85, "s_k": 85, "s_j": 85, "sum": [85, 86], "topolog": [85, 86], "demonstr": [85, 86], "fact": 85, "cousin": 85, "simpli": 85, "becaus": 85, "stabilzi": 85, "solv": 85, "propos": [85, 86], "wild": 85, "0903": 85, "5256": 85, "gottesman": 85, "phd": 85, "dissert": 85, "sect": 85, "setminu": 85, "he": 85, "dress": 85, "sp": 85, "psp": 85, "29": 85, "x_new": 85, "z_new": 85, "n_pn": 85, "x0x3": 85, "x0z2": 85, "x0z1": 85, "david": 85, "poulin": 85, "pou05": 85, "proce": 85, "underbrac": 85, "destabil": 85, "factor": 85, "protect": 85, "choic": [85, 86], "practic": 85, "bare": 85, "make_isotropic_hyperbolic_form": 85, "x1y3": 85, "x2x3y4": 85, "z1z5": 85, "cen": 85, "z1x2x3y4z5": 85, "31": 85, "codebuild": 85, "subsystem_surface_code_build": 85, "subsystemsurfacecodebuild": 85, "equat": 85, "mathrm": 85, "supp": 85, "neq": 85, "min_": 85, "gp": 85, "hard": 85, "cite": 85, "vardy1997": 85, "polynomi": 85, "rp": 85, "unless": 85, "dumer2003": 85, "exactli": 85, "cw": 85, "reduct": 85, "kapshikar2022": 85, "nevertheless": 85, "valuabl": 85, "our": [85, 86], "belong": 85, "straightforward": 85, "cal": 85, "s_i": 85, "membership": 85, "latter": 85, "enumer": [85, 86], "sum_": 85, "3n": 85, "3ne": 85, "goal": 85, "synd": 85, "w_1": 85, "w_2": 85, "approx": 85, "t_": 85, "w_i": 85, "suppos": 85, "cap": 85, "6ne": 85, "sigma": 85, "ee": 85, "intersect": 85, "proport": 85, "uniformli": 85, "2k": 85, "subroutin": 85, "exercis": 85, "review": 85, "literatur": 85, "certain": 85, "minimum_dist": 85, "3x3": 85, "bacon": 85, "shor": 85, "gauge_op_str": 85, "xiixiiiii": 85, "ixiixiiii": 85, "iixiixiii": 85, "iiixiixii": 85, "iiiixiixi": 85, "iiiiixiix": 85, "zziiiiiii": 85, "izziiiiii": 85, "iiizziiii": 85, "iiiizziii": 85, "iiiiiizzi": 85, "iiiiiiizz": 85, "x3x6": 85, "z0z1": 85, "z4z5": 85, "x4x7": 85, "z6z7": 85, "x2x5": 85, "x5x8": 85, "z7z8": 85, "bacon_shor_cod": 85, "34": 85, "codet": 85, "de": 85, "yzizzzizizizzzizi": 85, "ixzziizzzzzziizzx": 85, "zzxiiziiziziiziix": 85, "zizyzzzziiiizzzzi": 85, "iiiixizizzizzizix": 85, "zzizzyiiiizziiiii": 85, "iizziiyziziiizizi": 85, "iziiizixzzzzzzzzx": 85, "zzzzzzzzxiziiizix": 85, "ziziiizizyiizziii": 85, "iiiizziiiiyzzizzi": 85, "izizzizzizixiiiix": 85, "zzzziiiizzzzyzizi": 85, "iiziiziziiziixzzx": 85, "zziizzzzzziizzxix": 85, "zizzzizizizzzizyi": 85, "code_17_1_7": 85, "35": 85, "max_weight": 85, "c_n": 85, "infti": 85, "_nt": 85, "h_j": 85, "cnot": 85, "ij": 85, "hadamard": 85, "sqrt": 85, "eta": 85, "eighth": 85, "uniti": 85, "eqsim": 85, "s_3": 85, "2h": 85, "xyz": 85, "zyx": 85, "sh": 85, "3h": 85, "hsh": 85, "s_": 85, "s_n": 85, "pi_2": 85, "simplic": 85, "coeffient": 85, "isomorph": 85, "wr": 85, "automorph": 85, "aut": 85, "four": 85, "xixi": 85, "iizz": 85, "zizi": 85, "izii": 85, "xixx": 85, "hyperbolc": 85, "diffiult": 85, "inspect": 85, "perserv": 85, "anyth": 85, "comment": 85, "i_a": 85, "i_b": 85, "h_a": 85, "h_b": 85, "ab": 85, "exchang": 85, "hand": 85, "notin": 85, "100": 85, "carri": 85, "cacluat": 85, "cardinat": 85, "soon": 85, "framemwork": 85, "librarian": 85, "40": 85, "y0y4": 85, "codelibarian": 85, "ldpc": 85, "ini": 85, "dummi": 85, "although": 85, "realli": 85, "filenam": 85, "tell": 85, "ontain": 85, "codelibraian": 85, "themselv": 85, "infom": 85, "ite": 85, "back": 85, "info_only_": 85, "flag": 85, "41": 85, "42": 85, "43": 85, "44": 85, "27": 85, "z0z1x2": 85, "x1z2x3z4": 85, "x0x1y3y4": 85, "z0x3": 85, "z1x4": 85, "z1z3": 85, "65e7ef69": 85, "1b5b": 85, "49a7": 85, "97f7": 85, "f41ca540cc8f": 85, "45": 85, "360": 85, "26": 85, "48": 85, "64": 85, "tilecodefactori": 85, "46": 85, "47": 85, "celluat": 85, "appraoch": 85, "simplifi": 85, "choosen": 85, "bedlow": 85, "regulat": 85, "collect": 85, "lai": 85, "planar": 85, "49": 85, "58": 85, "59": 85, "57": 85, "diagonalbartil": 85, "33": 85, "octasquaretil": 85, "squarediamondtil": 85, "enabl": 85, "creation": 85, "wf": 85, "car": 85, "plant": 85, "brand": 85, "lot": 85, "67": 85, "68": 85, "02": 85, "69": 85, "show_work": 85, "occupi": 85, "x4x5x6x7x8x9": 85, "z4z5z6z7z8z9": 85, "x1x3x6x8": 85, "z1z3z6z8": 85, "x10x11x12x13x14x15": 85, "z10z11z12z13z14z15": 85, "x7x9x12x14": 85, "z7z9z12z14": 85, "x13x15x16x17": 85, "z13z15z16z17": 85, "x18x19x20x21": 85, "z18z19z20z21": 85, "x0x1x4x6x20x21": 85, "z0z1z4z6z20z21": 85, "x22x23x24x25x26x27": 85, "z22z23z24z25z26z27": 85, "x4x5x19x21x24x26": 85, "z4z5z19z21z24z26": 85, "x5x7x10x12x26x27": 85, "z5z7z10z12z26z27": 85, "x10x11x25x27x28x29": 85, "z10z11z25z27z28z29": 85, "x11x13x16x29": 85, "z11z13z16z29": 85, "x30x31x32x33": 85, "z30z31z32z33": 85, "x18x19x22x24x32x33": 85, "z18z19z22z24z32z33": 85, "x22x23x31x33x34x35": 85, "z22z23z31z33z34z35": 85, "x23x25x28x35": 85, "z23z25z28z35": 85, "x30x31x34x36": 85, "z30z31z34z36": 85, "70": 85, "8660254": 85, "73205081": 85, "bundl": 85, "71": 85, "orang": 85, "blue": 85, "basudha": 85, "srivastava": 85, "anton": 85, "frisk": 85, "kockum": 85, "mat": 85, "granath": 85, "22331": 85, "04": 85, "698": 85, "unus": 85, "_weight_len": 85, "len": 85, "m_grad": 85, "near_lin": 85, "find_ind": 85, "lines_": 85, "triangle_po": 85, "zip": 85, "on_line_indic": 85, "elif": 85, "line_ind": 85, "line_index": 85, "branch": 85, "yzx2_code_factori": 85, "51": 85, "52": 85, "yxz2_code": 85, "53": 85, "compass": 85, "illustr": 85, "journal": 85, "ap": 85, "prx": 85, "1103": 85, "physrevx": 85, "011022": 85, "chamberland": 85, "zhu": 85, "yoder": 85, "hertzberg": 85, "awc": 85, "prl": 85, "physrevlett": 85, "128": 85, "110504": 85, "kim": 85, "sundaresan": 85, "srinivasan": 85, "li": 85, "c\u00f3rcole": 85, "takita": 85, "2203": 85, "07205": 85, "harper": 85, "thorbeck": 85, "awcross1": 85, "54": 85, "nonumb": 85, "overbrac": 85, "prod_i": 85, "bulk": 85, "significantli": 85, "depth": 85, "stuctur": 85, "categori": 85, "outsid": 85, "pedagog": 85, "teach": 85, "scope": 85, "realiz": 85, "put": 85, "examin": 85, "signatur": 85, "translat": 85, "eigenst": 85, "ideal": 85, "dure": 85, "cycl": 85, "sensit": 85, "hypergraph": 85, "subsequ": 85, "repetitioncodecircuit": [85, 86], "mpl": 85, "quantumregist": 85, "classicalregist": 85, "examples_qasm": 85, "openqasm": 85, "ninclud": 85, "qelib1": 85, "inc": 85, "nqreg": 85, "code_qubit": 85, "link_qubit": 85, "ncreg": 85, "round_0_link_bit": 85, "round_1_link_bit": 85, "code_bit": 85, "nx": 85, "nbarrier": 85, "ncx": 85, "nmeasur": 85, "nreset": 85, "qasm": 85, "from_qasm_str": 85, "example_explan": 85, "unfortun": 85, "juli": 85, "cours": 85, "address": 85, "quantumjim": 85, "qec_lectur": 85, "jan": 85, "feb": 85, "2023": 85, "video": 85, "lectur": 85, "walk": 86, "wa": 86, "nicola": 86, "delfoss": 86, "naomi": 86, "nickerson": 86, "2020": 86, "almost": 86, "per": 86, "meet": 86, "grown": 86, "twice": 86, "unweight": 86, "relev": 86, "faultenumer": 86, "unionfinddecod": 86, "surfacecodecircuit": 86, "arccircuit": 86, "quit": 86, "last": 86, "05": 86, "add_oper": 86, "set_error_prob": 86, "handi": 86, "try": 86, "prepar": 86, "normal": 86, "circumst": 86, "pick": 86, "fault_enumer": 86, "join": 86, "corrected_outcom": 86, "logical_outcom": 86, "css_z_logic": 86, "assert": 86}, "objects": {"": [[5, 0, 0, "-", "qiskit_qec"]], "qiskit_qec": [[0, 0, 0, "-", "analysis"], [1, 0, 0, "-", "circuits"], [2, 0, 0, "-", "codes"], [3, 0, 0, "-", "decoders"], [4, 0, 0, "-", "geometry"], [6, 0, 0, "-", "info"], [7, 0, 0, "-", "linear"], [8, 0, 0, "-", "operators"], [9, 0, 0, "-", "structures"], [10, 0, 0, "-", "utils"]], "qiskit_qec.circuits": [[16, 1, 1, "", "ArcCircuit"], [17, 1, 1, "", "CSSCodeCircuit"], [18, 1, 1, "", "CodeCircuit"], [19, 1, 1, "", "RepetitionCodeCircuit"], [20, 1, 1, "", "SurfaceCodeCircuit"]], "qiskit_qec.circuits.ArcCircuit": [[16, 2, 1, "", "AVAILABLE_METHODS"], [16, 2, 1, "", "METHOD_NAIVE"], [16, 2, 1, "", "METHOD_SPITZ"], [16, 3, 1, "", "check_nodes"], [16, 3, 1, "", "clean_code"], [16, 3, 1, "", "flatten_nodes"], [16, 3, 1, "", "get_error_coords"], [16, 3, 1, "", "is_cluster_neutral"], [16, 3, 1, "", "string2nodes"], [16, 3, 1, "", "string2raw_logicals"], [16, 3, 1, "", "transpile"]], "qiskit_qec.circuits.CSSCodeCircuit": [[17, 3, 1, "", "check_nodes"], [17, 3, 1, "", "is_cluster_neutral"], [17, 3, 1, "", "stim_detectors"], [17, 3, 1, "", "string2nodes"], [17, 3, 1, "", "string2raw_logicals"]], "qiskit_qec.circuits.CodeCircuit": [[18, 3, 1, "", "check_nodes"], [18, 3, 1, "", "is_cluster_neutral"], [18, 3, 1, "", "string2nodes"]], "qiskit_qec.circuits.RepetitionCodeCircuit": [[19, 3, 1, "", "check_nodes"], [19, 3, 1, "", "get_circuit_list"], [19, 3, 1, "", "is_cluster_neutral"], [19, 3, 1, "", "partition_outcomes"], [19, 3, 1, "", "readout"], [19, 3, 1, "", "string2nodes"], [19, 3, 1, "", "string2raw_logicals"], [19, 3, 1, "", "syndrome_measurement"], [19, 3, 1, "", "x"]], "qiskit_qec.circuits.SurfaceCodeCircuit": [[20, 3, 1, "", "check_nodes"], [20, 3, 1, "", "get_circuit_list"], [20, 3, 1, "", "is_cluster_neutral"], [20, 3, 1, "", "readout"], [20, 3, 1, "", "string2nodes"], [20, 3, 1, "", "string2raw_logicals"], [20, 3, 1, "", "syndrome_measurement"], [20, 3, 1, "", "x"], [20, 3, 1, "", "z"]], "qiskit_qec.codes": [[21, 1, 1, "", "CodeLibrarian"], [22, 1, 1, "", "CodeLibrary"], [23, 1, 1, "", "QECCode"], [24, 1, 1, "", "StabSubSystemCode"], [25, 4, 1, "", "all_small_codes"], [26, 4, 1, "", "small_code"]], "qiskit_qec.codes.CodeLibrarian": [[21, 3, 1, "", "get"], [21, 2, 1, "", "n_dir_format"], [21, 2, 1, "", "n_k_codes_file_format"]], "qiskit_qec.codes.CodeLibrary": [[22, 3, 1, "", "data2code"], [22, 3, 1, "", "in_range"], [22, 3, 1, "", "search"]], "qiskit_qec.codes.StabSubSystemCode": [[24, 3, 1, "", "draw"], [24, 2, 1, "", "generators"], [24, 2, 1, "", "n"]], "qiskit_qec.decoders": [[27, 1, 1, "", "DecodingGraph"], [28, 1, 1, "", "UnionFindDecoder"]], "qiskit_qec.decoders.DecodingGraph": [[27, 2, 1, "", "AVAILABLE_METHODS"], [27, 2, 1, "", "METHOD_NAIVE"], [27, 2, 1, "", "METHOD_SPITZ"], [27, 3, 1, "", "clean_measurements"], [27, 3, 1, "", "edge_in_graph"], [27, 3, 1, "", "get_edge_graph"], [27, 3, 1, "", "get_error_probs"], [27, 3, 1, "", "get_node_graph"], [27, 3, 1, "", "make_error_graph"], [27, 3, 1, "", "node_index"], [27, 3, 1, "", "update_attributes"], [27, 3, 1, "", "weight_syndrome_graph"]], "qiskit_qec.decoders.UnionFindDecoder": [[28, 3, 1, "", "cluster"], [28, 3, 1, "", "find"], [28, 3, 1, "", "get_corrections"], [28, 3, 1, "", "neighbouring_edges"], [28, 3, 1, "", "peeling"], [28, 3, 1, "", "process"]], "qiskit_qec.geometry": [[29, 1, 1, "", "CheckerBoardTile"], [30, 1, 1, "", "DiagonalBarTile"], [31, 1, 1, "", "DiagonalHourGlassTile"], [32, 1, 1, "", "Edge"], [33, 1, 1, "", "Face"], [34, 1, 1, "", "GeometryBounds"], [35, 1, 1, "", "HexagonTile"], [36, 1, 1, "", "Lattice"], [37, 1, 1, "", "Manifold"], [38, 1, 1, "", "OctaSquareTile"], [39, 1, 1, "", "Plane"], [40, 1, 1, "", "QubitCount"], [41, 1, 1, "", "QubitData"], [42, 1, 1, "", "Shape"], [43, 1, 1, "", "ShapeObject"], [44, 1, 1, "", "Shell"], [45, 1, 1, "", "SquareDiamondTile"], [46, 1, 1, "", "Tile"], [47, 1, 1, "", "TileFactory"], [48, 1, 1, "", "Tiling"], [49, 1, 1, "", "TwoManifold"], [50, 1, 1, "", "Vertex"], [51, 1, 1, "", "WireFrame"]], "qiskit_qec.geometry.CheckerBoardTile": [[29, 3, 1, "", "draw"], [29, 2, 1, "", "face_colors"], [29, 2, 1, "", "faces_wf_components"], [29, 2, 1, "", "num_faces"], [29, 2, 1, "", "num_qubits"], [29, 2, 1, "", "size"], [29, 2, 1, "", "u_vec"], [29, 2, 1, "", "v_vec"], [29, 2, 1, "", "wf_coordinates"], [29, 2, 1, "", "wf_loop_indicator"], [29, 2, 1, "", "wf_operator_dict"], [29, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.DiagonalBarTile": [[30, 3, 1, "", "draw"], [30, 2, 1, "", "face_colors"], [30, 2, 1, "", "faces_wf_components"], [30, 2, 1, "", "num_faces"], [30, 2, 1, "", "num_qubits"], [30, 2, 1, "", "size"], [30, 2, 1, "", "u_vec"], [30, 2, 1, "", "v_vec"], [30, 2, 1, "", "wf_coordinates"], [30, 2, 1, "", "wf_loop_indicator"], [30, 2, 1, "", "wf_operator_dict"], [30, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.DiagonalHourGlassTile": [[31, 3, 1, "", "draw"], [31, 2, 1, "", "face_colors"], [31, 2, 1, "", "faces_wf_components"], [31, 2, 1, "", "num_faces"], [31, 2, 1, "", "num_qubits"], [31, 2, 1, "", "size"], [31, 2, 1, "", "u_vec"], [31, 2, 1, "", "v_vec"], [31, 2, 1, "", "wf_coordinates"], [31, 2, 1, "", "wf_loop_indicator"], [31, 2, 1, "", "wf_operator_dict"], [31, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.Edge": [[32, 3, 1, "", "add_parent"], [32, 3, 1, "", "create_id"], [32, 2, 1, "", "last_id"]], "qiskit_qec.geometry.Face": [[33, 3, 1, "", "add_parent"], [33, 3, 1, "", "create_id"], [33, 2, 1, "", "last_id"]], "qiskit_qec.geometry.GeometryBounds": [[34, 3, 1, "", "bounding_box_from_line"], [34, 3, 1, "", "combine"], [34, 3, 1, "", "contains"], [34, 3, 1, "", "copy"], [34, 3, 1, "", "expand"], [34, 3, 1, "", "intercepts"], [34, 3, 1, "", "set_min_max"]], "qiskit_qec.geometry.HexagonTile": [[35, 3, 1, "", "draw"], [35, 2, 1, "", "face_colors"], [35, 2, 1, "", "faces_wf_components"], [35, 2, 1, "", "h"], [35, 2, 1, "", "num_faces"], [35, 2, 1, "", "num_qubits"], [35, 2, 1, "", "r"], [35, 2, 1, "", "size"], [35, 2, 1, "", "u_vec"], [35, 2, 1, "", "v_vec"], [35, 2, 1, "", "wf_coordinates"], [35, 2, 1, "", "wf_loop_indicator"], [35, 2, 1, "", "wf_operator_dict"], [35, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.Lattice": [[36, 3, 1, "", "apply_transform_from"], [36, 3, 1, "", "find_pre_transform_length"], [36, 3, 1, "", "generate_points"], [36, 3, 1, "", "make_transform"], [36, 3, 1, "", "restrict"], [36, 3, 1, "", "restrict_for_tiling"]], "qiskit_qec.geometry.OctaSquareTile": [[38, 2, 1, "", "c8"], [38, 3, 1, "", "draw"], [38, 2, 1, "", "face_colors"], [38, 2, 1, "", "faces_wf_components"], [38, 2, 1, "", "num_faces"], [38, 2, 1, "", "num_qubits"], [38, 2, 1, "", "s8"], [38, 2, 1, "", "size"], [38, 2, 1, "", "u_vec"], [38, 2, 1, "", "v_vec"], [38, 2, 1, "", "wf_coordinates"], [38, 2, 1, "", "wf_loop_indicator"], [38, 2, 1, "", "wf_operator_dict"], [38, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.Plane": [[39, 3, 1, "", "ison"], [39, 3, 1, "", "rot_matrix"], [39, 3, 1, "", "rotate"]], "qiskit_qec.geometry.QubitCount": [[40, 3, 1, "", "decrement_qubit"], [40, 3, 1, "", "increment_qubit"], [40, 3, 1, "", "new_qubit"]], "qiskit_qec.geometry.QubitData": [[41, 3, 1, "", "add_data_array"], [41, 3, 1, "", "del_data_array"]], "qiskit_qec.geometry.Shape": [[42, 3, 1, "", "bounding_box_from_lines"], [42, 3, 1, "", "contains"], [42, 3, 1, "", "contains_quad_winding_number"], [42, 3, 1, "", "contains_ray_trace"], [42, 3, 1, "", "create_lines"], [42, 3, 1, "", "inside"], [42, 3, 1, "", "is_between"], [42, 3, 1, "", "rect"], [42, 3, 1, "", "square"]], "qiskit_qec.geometry.ShapeObject": [[43, 3, 1, "", "add_parent"], [43, 3, 1, "", "create_id"], [43, 2, 1, "", "last_id"]], "qiskit_qec.geometry.Shell": [[44, 3, 1, "", "add_parent"], [44, 3, 1, "", "create_id"], [44, 3, 1, "", "delete_subtree"], [44, 3, 1, "", "draw"], [44, 3, 1, "", "extract"], [44, 3, 1, "", "integer_snap"], [44, 2, 1, "", "last_id"], [44, 3, 1, "", "rotate2d"], [44, 3, 1, "", "scale"], [44, 3, 1, "", "shell2symplectic"], [44, 3, 1, "", "shift"], [44, 3, 1, "", "union"]], "qiskit_qec.geometry.SquareDiamondTile": [[45, 3, 1, "", "draw"], [45, 2, 1, "", "face_colors"], [45, 2, 1, "", "faces_wf_components"], [45, 2, 1, "", "num_faces"], [45, 2, 1, "", "num_qubits"], [45, 2, 1, "", "size"], [45, 2, 1, "", "u_vec"], [45, 2, 1, "", "v_vec"], [45, 2, 1, "", "wf_coordinates"], [45, 2, 1, "", "wf_loop_indicator"], [45, 2, 1, "", "wf_operator_dict"], [45, 2, 1, "", "wf_orientation"], [45, 2, 1, "", "wf_q_indices"]], "qiskit_qec.geometry.Tile": [[46, 3, 1, "", "draw"]], "qiskit_qec.geometry.Tiling": [[48, 3, 1, "", "distance"]], "qiskit_qec.geometry.Vertex": [[50, 3, 1, "", "add_parent"], [50, 3, 1, "", "create_id"], [50, 2, 1, "", "last_id"], [50, 2, 1, "", "position"], [50, 3, 1, "", "set_position"], [50, 3, 1, "", "shallowcopy"]], "qiskit_qec.geometry.WireFrame": [[51, 3, 1, "", "add_parent"], [51, 3, 1, "", "create_id"], [51, 2, 1, "", "last_id"]], "qiskit_qec.info": [[52, 1, 1, "", "Properties"]], "qiskit_qec.info.Properties": [[52, 2, 1, "", "AUT_GROUP_SIZE"], [52, 2, 1, "", "CITATION"], [52, 2, 1, "", "CODE_TYPES"], [52, 2, 1, "", "D"], [52, 2, 1, "", "GAUGE_GROUP"], [52, 2, 1, "", "HYPERBOLIC_GEN"], [52, 2, 1, "", "INDEX"], [52, 2, 1, "", "ISOTROPIC_GEN"], [52, 2, 1, "", "IS_CSS"], [52, 2, 1, "", "IS_CSS_KEY"], [52, 2, 1, "", "IS_DECOMPOSABLE"], [52, 2, 1, "", "IS_DECOMPOSABLE_KEY"], [52, 2, 1, "", "IS_DEGENERATE"], [52, 2, 1, "", "IS_DEGENERATE_KEY"], [52, 2, 1, "", "IS_GF4LINEAR"], [52, 2, 1, "", "IS_GF4LINEAR_KEY"], [52, 2, 1, "", "IS_TRIORTHOGONAL"], [52, 2, 1, "", "IS_TRIORTHOGONAL_KEY"], [52, 2, 1, "", "K"], [52, 2, 1, "", "LOGICAL_OPS"], [52, 2, 1, "", "N"], [52, 2, 1, "", "NAME"], [52, 2, 1, "", "STABILIZER"], [52, 2, 1, "", "TYPE"], [52, 2, 1, "", "UUID"], [52, 2, 1, "", "WEIGHT_ENUMERATOR"], [52, 2, 1, "", "info"]], "qiskit_qec.linear": [[53, 4, 1, "", "all_commute"], [54, 4, 1, "", "augment_mat"], [55, 4, 1, "", "build_hyper_partner"], [56, 4, 1, "", "create_lambda_matrix"], [57, 4, 1, "", "is_center"], [58, 4, 1, "", "is_hyper_form"], [59, 4, 1, "", "is_same_span"], [60, 4, 1, "", "is_stabilizer_group"], [61, 4, 1, "", "is_symplectic_form"], [62, 4, 1, "", "is_symplectic_matrix_form"], [63, 4, 1, "", "is_symplectic_vector_form"], [64, 4, 1, "", "locate_hyper_partner"], [65, 4, 1, "", "make_commute_hyper"], [66, 4, 1, "", "rank"], [67, 4, 1, "", "rref"], [68, 4, 1, "", "rref_complete"], [69, 4, 1, "", "symplectic_gram_schmidt"], [70, 4, 1, "", "symplectic_product"]], "qiskit_qec.operators": [[71, 1, 1, "", "BasePauli"], [72, 1, 1, "", "Pauli"], [73, 1, 1, "", "PauliList"]], "qiskit_qec.operators.BasePauli": [[71, 2, 1, "", "EXTERNAL_PAULI_ENCODING"], [71, 2, 1, "", "EXTERNAL_PHASE_ENCODING"], [71, 2, 1, "", "EXTERNAL_QUBIT_ORDER"], [71, 2, 1, "", "EXTERNAL_SYNTAX"], [71, 2, 1, "", "EXTERNAL_TENSOR_ENCODING"], [71, 2, 1, "", "PRINT_PHASE_ENCODING"], [71, 3, 1, "", "adjoint"], [71, 3, 1, "", "all_commutes"], [71, 3, 1, "", "commutes"], [71, 3, 1, "", "compose"], [71, 3, 1, "", "conjugate"], [71, 3, 1, "", "copy"], [71, 2, 1, "", "dim"], [71, 3, 1, "", "dot"], [71, 3, 1, "", "evolve"], [71, 3, 1, "", "expand"], [71, 3, 1, "", "input_dims"], [71, 2, 1, "", "num_qubits"], [71, 2, 1, "", "num_y"], [71, 3, 1, "", "output_dims"], [71, 2, 1, "", "pauli_encoding"], [71, 2, 1, "", "phase_encoding"], [71, 3, 1, "", "power"], [71, 2, 1, "", "print_phase_encoding"], [71, 2, 1, "", "qargs"], [71, 2, 1, "", "qubit_order"], [71, 3, 1, "", "reshape"], [71, 3, 1, "", "set_pauli_encoding"], [71, 3, 1, "", "set_phase_encoding"], [71, 3, 1, "", "set_print_phase_encoding"], [71, 3, 1, "", "set_qubit_order"], [71, 3, 1, "", "set_syntax"], [71, 3, 1, "", "set_tensor_encoding"], [71, 2, 1, "", "syntax"], [71, 3, 1, "", "tensor"], [71, 2, 1, "", "tensor_encoding"], [71, 3, 1, "", "to_label"], [71, 3, 1, "", "transpose"], [71, 2, 1, "", "x"], [71, 2, 1, "", "z"]], "qiskit_qec.operators.Pauli": [[72, 2, 1, "", "EXTERNAL_PAULI_ENCODING"], [72, 2, 1, "", "EXTERNAL_PHASE_ENCODING"], [72, 2, 1, "", "EXTERNAL_QUBIT_ORDER"], [72, 2, 1, "", "EXTERNAL_SYNTAX"], [72, 2, 1, "", "EXTERNAL_TENSOR_ENCODING"], [72, 2, 1, "", "PRINT_PHASE_ENCODING"], [72, 3, 1, "", "adjoint"], [72, 3, 1, "", "all_commutes"], [72, 3, 1, "", "anticommutes"], [72, 3, 1, "", "append_paulis"], [72, 3, 1, "", "commutes"], [72, 3, 1, "", "compose"], [72, 3, 1, "", "conjugate"], [72, 3, 1, "", "copy"], [72, 3, 1, "", "delete"], [72, 3, 1, "", "delete_qubits"], [72, 2, 1, "", "dim"], [72, 3, 1, "", "dot"], [72, 3, 1, "", "equiv"], [72, 3, 1, "", "evolve"], [72, 3, 1, "", "expand"], [72, 3, 1, "", "from_label"], [72, 3, 1, "", "input_dims"], [72, 3, 1, "", "insert"], [72, 3, 1, "", "insert_paulis"], [72, 3, 1, "", "instrs2symplectic"], [72, 3, 1, "", "inverse"], [72, 3, 1, "", "kron"], [72, 2, 1, "", "name"], [72, 2, 1, "", "num_clbits"], [72, 2, 1, "", "num_qubits"], [72, 2, 1, "", "num_y"], [72, 3, 1, "", "output_dims"], [72, 2, 1, "", "pauli_encoding"], [72, 3, 1, "", "pauli_single"], [72, 2, 1, "", "phase"], [72, 2, 1, "", "phase_encoding"], [72, 2, 1, "", "phase_exp"], [72, 2, 1, "", "pltb_int"], [72, 2, 1, "", "pltb_str"], [72, 3, 1, "", "power"], [72, 2, 1, "", "print_phase_encoding"], [72, 2, 1, "", "qargs"], [72, 2, 1, "", "qubit_order"], [72, 3, 1, "", "random"], [72, 3, 1, "", "reshape"], [72, 3, 1, "", "set_pauli_encoding"], [72, 3, 1, "", "set_phase_encoding"], [72, 3, 1, "", "set_print_phase_encoding"], [72, 3, 1, "", "set_qubit_order"], [72, 3, 1, "", "set_syntax"], [72, 3, 1, "", "set_tensor_encoding"], [72, 3, 1, "", "set_truncation"], [72, 2, 1, "", "settings"], [72, 3, 1, "", "sgn_prod"], [72, 2, 1, "", "syntax"], [72, 3, 1, "", "tensor"], [72, 2, 1, "", "tensor_encoding"], [72, 3, 1, "", "to_cpx_matrix"], [72, 3, 1, "", "to_instruction"], [72, 3, 1, "", "to_label"], [72, 3, 1, "", "to_matrix"], [72, 3, 1, "", "to_spmatrix"], [72, 3, 1, "", "transpose"], [72, 3, 1, "", "update_x"], [72, 3, 1, "", "update_z"], [72, 2, 1, "", "x"], [72, 2, 1, "", "z"]], "qiskit_qec.operators.PauliList": [[73, 2, 1, "", "EXTERNAL_PAULI_ENCODING"], [73, 2, 1, "", "EXTERNAL_PHASE_ENCODING"], [73, 2, 1, "", "EXTERNAL_QUBIT_ORDER"], [73, 2, 1, "", "EXTERNAL_SYNTAX"], [73, 2, 1, "", "EXTERNAL_TENSOR_ENCODING"], [73, 2, 1, "", "PRINT_PHASE_ENCODING"], [73, 3, 1, "", "adjoint"], [73, 3, 1, "", "all_commutes"], [73, 3, 1, "", "anticommutes"], [73, 3, 1, "", "anticommutes_with_all"], [73, 3, 1, "", "argsort"], [73, 3, 1, "", "commutes"], [73, 3, 1, "", "commutes_with_all"], [73, 3, 1, "", "compose"], [73, 3, 1, "", "conjugate"], [73, 3, 1, "", "copy"], [73, 3, 1, "", "delete"], [73, 2, 1, "", "dim"], [73, 3, 1, "", "dot"], [73, 3, 1, "", "evolve"], [73, 3, 1, "", "expand"], [73, 3, 1, "", "from_symplectic"], [73, 3, 1, "", "getaslist"], [73, 3, 1, "", "group_qubit_wise_commuting"], [73, 3, 1, "", "input_dims"], [73, 3, 1, "", "insert"], [73, 3, 1, "", "inverse"], [73, 3, 1, "", "label_iter"], [73, 3, 1, "", "matrix_iter"], [73, 2, 1, "", "num_paulis"], [73, 2, 1, "", "num_qubits"], [73, 2, 1, "", "num_y"], [73, 3, 1, "", "output_dims"], [73, 2, 1, "", "pauli_encoding"], [73, 2, 1, "", "phase"], [73, 2, 1, "", "phase_encoding"], [73, 2, 1, "", "phase_exp"], [73, 3, 1, "", "power"], [73, 2, 1, "", "print_phase_encoding"], [73, 2, 1, "", "qargs"], [73, 2, 1, "", "qubit_order"], [73, 3, 1, "", "reshape"], [73, 3, 1, "", "set_pauli_encoding"], [73, 3, 1, "", "set_phase_encoding"], [73, 3, 1, "", "set_print_phase_encoding"], [73, 3, 1, "", "set_qubit_order"], [73, 3, 1, "", "set_syntax"], [73, 3, 1, "", "set_tensor_encoding"], [73, 2, 1, "", "settings"], [73, 2, 1, "", "shape"], [73, 2, 1, "", "size"], [73, 3, 1, "", "sort"], [73, 2, 1, "", "syntax"], [73, 3, 1, "", "tensor"], [73, 2, 1, "", "tensor_encoding"], [73, 3, 1, "", "to_label"], [73, 3, 1, "", "to_labels"], [73, 3, 1, "", "to_matrix"], [73, 3, 1, "", "transpose"], [73, 3, 1, "", "unique"], [73, 2, 1, "", "x"], [73, 2, 1, "", "z"]], "qiskit_qec.structures": [[74, 1, 1, "", "GaugeGroup"], [75, 1, 1, "", "Group"]], "qiskit_qec.structures.GaugeGroup": [[74, 2, 1, "", "k"], [74, 2, 1, "", "n"], [74, 2, 1, "", "num_gen"]], "qiskit_qec.utils": [[76, 1, 1, "", "DecodingGraphEdge"], [77, 1, 1, "", "DecodingGraphNode"], [78, 4, 1, "", "get_counts_via_stim"], [79, 4, 1, "", "get_stim_circuits"], [80, 0, 0, "-", "indexer"], [81, 4, 1, "", "noisify_circuit"], [82, 0, 0, "-", "pauli_rep"], [83, 0, 0, "-", "visualizations"]], "qiskit_qec.utils.DecodingGraphEdge": [[76, 2, 1, "", "fault_ids"], [76, 3, 1, "", "get"], [76, 2, 1, "", "properties"], [76, 2, 1, "", "qubits"], [76, 2, 1, "", "weight"]], "qiskit_qec.utils.DecodingGraphNode": [[77, 3, 1, "", "get"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "titleterms": {"analysi": 0, "qiskit_qec": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 25, 26, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 78, 79, 80, 81, 82, 83, 86], "modul": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10], "class": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10], "function": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10], "circuit": [1, 85], "code": [2, 12, 25, 26, 85], "decod": [3, 85, 86], "geometri": [4, 13], "qiskit": [5, 14, 15, 85], "qec": [5, 11, 14, 15, 85, 87], "api": 5, "refer": 5, "info": 6, "linear": [7, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "matrix": [7, 12], "symplect": [7, 12, 85], "oper": [8, 85], "structur": [9, 85], "util": [10, 78, 79, 80, 81, 82, 83], "discuss": 11, "how": [12, 13, 14], "creat": [12, 85], "classs": [12, 85], "factori": [12, 85], "builder": [12, 85], "librari": [12, 85], "databas": [12, 85], "provid": [12, 85], "stabil": [12, 85], "gaug": [12, 85], "gener": [12, 85], "string": [12, 85], "load": 12, "via": 12, "codebas": 12, "configur": 12, "run": 12, "tilecodefactori": 12, "specif": 12, "codebuild": 12, "work": 13, "object": 13, "guid": [14, 85], "document": 15, "arccircuit": 16, "csscodecircuit": 17, "codecircuit": 18, "repetitioncodecircuit": 19, "surfacecodecircuit": 20, "codelibrarian": 21, "codelibrari": 22, "qeccod": 23, "stabsubsystemcod": 24, "all_small_cod": 25, "small_cod": 26, "decodinggraph": 27, "unionfinddecod": 28, "checkerboardtil": 29, "diagonalbartil": 30, "diagonalhourglasstil": 31, "edg": [32, 85], "face": [33, 85], "geometrybound": 34, "hexagontil": 35, "lattic": 36, "manifold": 37, "octasquaretil": 38, "plane": 39, "qubitcount": 40, "qubitdata": 41, "shape": 42, "shapeobject": 43, "shell": 44, "squarediamondtil": 45, "tile": [46, 48, 85], "tilefactori": [47, 85], "twomanifold": 49, "vertex": 50, "wirefram": 51, "properti": 52, "all_commut": 53, "augment_mat": 54, "build_hyper_partn": 55, "create_lambda_matrix": 56, "is_cent": 57, "is_hyper_form": 58, "is_same_span": 59, "is_stabilizer_group": 60, "is_symplectic_form": 61, "is_symplectic_matrix_form": 62, "is_symplectic_vector_form": 63, "locate_hyper_partn": 64, "make_commute_hyp": 65, "rank": 66, "rref": 67, "rref_complet": 68, "symplectic_gram_schmidt": 69, "symplectic_product": 70, "basepauli": 71, "pauli": [72, 73, 85], "paulilist": 73, "represent": [73, 85], "gaugegroup": 74, "group": [75, 85], "decodinggraphedg": 76, "decodinggraphnod": 77, "get_counts_via_stim": 78, "get_stim_circuit": 79, "index": 80, "noisify_circuit": 81, "pauli_rep": 82, "visual": 83, "tutori": [84, 87], "exampl": [84, 85], "softwar": 85, "framework": 85, "design": 85, "layer": 85, "compon": 85, "now": 85, "futur": 85, "The": 85, "creator": 85, "interactor": 85, "commmand": 85, "line": 85, "program": 85, "interfac": 85, "instal": 85, "content": 85, "set": 85, "up": 85, "python": 85, "environ": 85, "option": 85, "1": 85, "conda": 85, "recommend": 85, "2": 85, "venv": 85, "includ": 85, "depend": 85, "quantum": 85, "error": 85, "correct": 85, "repitit": 85, "classici": 85, "challeng": 85, "condit": 85, "subsystem": 85, "syntax": 85, "isotrop": 85, "hyperbol": 85, "gram": 85, "schmidt": 85, "process": 85, "surfac": 85, "toric": 85, "dual": 85, "qubit": 85, "vertic": 85, "rorat": 85, "find": [85, 86], "logic": 85, "center": 85, "normal": 85, "minin": 85, "distanc": 85, "basic": 85, "algorithm": 85, "minimum": 85, "improv": 85, "comput": 85, "clifford": 85, "equival": 85, "build": 85, "A": 85, "detail": 85, "someth": 85, "more": 85, "simul": 85, "fault": 85, "toler": 85, "us": 86, "union": 86}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "nbsphinx": 4, "sphinx": 60}, "alltitles": {"Analysis (qiskit_qec.analysis)": [[0, "analysis-qiskit-qec-analysis"]], "Analysis module classes and functions": [[0, "analysis-module-classes-and-functions"]], "Circuits (qiskit_qec.circuits)": [[1, "circuits-qiskit-qec-circuits"]], "Circuits module classes and functions": [[1, "circuits-module-classes-and-functions"]], "Codes (qiskit_qec.codes)": [[2, "codes-qiskit-qec-codes"]], "Codes module classes and functions": [[2, "codes-module-classes-and-functions"]], "Decoders (qiskit_qec.decoders)": [[3, "decoders-qiskit-qec-decoders"]], "Decoders module classes and functions": [[3, "decoders-module-classes-and-functions"]], "Geometry (qiskit_qec.geometry)": [[4, "geometry-qiskit-qec-geometry"]], "Geometry module classes and functions": [[4, "geometry-module-classes-and-functions"]], "Qiskit QEC API Reference": [[5, "qiskit-qec-api-reference"]], "Info (qiskit_qec.info)": [[6, "info-qiskit-qec-info"]], "Info module classes and functions": [[6, "info-module-classes-and-functions"]], "Linear (qiskit_qec.linear)": [[7, "linear-qiskit-qec-linear"]], "Linear module classes and functions": [[7, "linear-module-classes-and-functions"]], "Linear matrix functions": [[7, "linear-matrix-functions"]], "Linear symplectic functions": [[7, "linear-symplectic-functions"]], "Operators (qiskit_qec.operators)": [[8, "operators-qiskit-qec-operators"]], "Operators module classes and functions": [[8, "operators-module-classes-and-functions"]], "Structures (qiskit_qec.structures)": [[9, "structures-qiskit-qec-structures"]], "Structures module classes and functions": [[9, "structures-module-classes-and-functions"]], "Utils (qiskit_qec.utils)": [[10, "utils-qiskit-qec-utils"]], "Utils module classes and functions": [[10, "utils-module-classes-and-functions"]], "QEC Discussions": [[11, "qec-discussions"]], "How-to: Create Codes": [[12, "How-to:-Create-Codes"]], "Code Classs": [[12, "Code-Classs"], [85, "Code-Classs"]], "Code Factories": [[12, "Code-Factories"], [85, "Code-Factories"]], "Code Builders": [[12, "Code-Builders"], [85, "Code-Builders"], [85, "id9"]], "Code Library/Database": [[12, "Code-Library/Database"], [85, "Code-Library/Database"], [85, "id5"]], "Creating Codes": [[12, "Creating-Codes"], [85, "Creating-Codes"]], "Creating a symplectic matrix": [[12, "Creating-a-symplectic-matrix"]], "Providing the stabilizer/gauge generators as strings": [[12, "Providing-the-stabilizer/gauge-generators-as-strings"], [85, "Providing-the-stabilizer/gauge-generators-as-strings"]], "Loading a code via the codebase libraries": [[12, "Loading-a-code-via-the-codebase-libraries"]], "Configuring and running a TileCodeFactory": [[12, "Configuring-and-running-a-TileCodeFactory"]], "Configuring and running a specific CodeBuilder": [[12, "Configuring-and-running-a-specific-CodeBuilder"]], "How-to: work with geometry objects": [[13, "How-to:-work-with-geometry-objects"]], "Qiskit QEC How-to guides": [[14, "qiskit-qec-how-to-guides"]], "Qiskit QEC documentation": [[15, "qiskit-qec-documentation"]], "ArcCircuit": [[16, "arccircuit"]], "CSSCodeCircuit": [[17, "csscodecircuit"]], "CodeCircuit": [[18, "codecircuit"]], "RepetitionCodeCircuit": [[19, "repetitioncodecircuit"]], "SurfaceCodeCircuit": [[20, "surfacecodecircuit"]], "CodeLibrarian": [[21, "codelibrarian"]], "CodeLibrary": [[22, "codelibrary"]], "QECCode": [[23, "qeccode"]], "StabSubSystemCode": [[24, "stabsubsystemcode"]], "qiskit_qec.codes.all_small_codes": [[25, "qiskit-qec-codes-all-small-codes"]], "qiskit_qec.codes.small_code": [[26, "qiskit-qec-codes-small-code"]], "DecodingGraph": [[27, "decodinggraph"]], "UnionFindDecoder": [[28, "unionfinddecoder"]], "CheckerBoardTile": [[29, "checkerboardtile"]], "DiagonalBarTile": [[30, "diagonalbartile"]], "DiagonalHourGlassTile": [[31, "diagonalhourglasstile"]], "Edge": [[32, "edge"]], "Face": [[33, "face"]], "GeometryBounds": [[34, "geometrybounds"]], "HexagonTile": [[35, "hexagontile"]], "Lattice": [[36, "lattice"]], "Manifold": [[37, "manifold"]], "OctaSquareTile": [[38, "octasquaretile"]], "Plane": [[39, "plane"]], "QubitCount": [[40, "qubitcount"]], "QubitData": [[41, "qubitdata"]], "Shape": [[42, "shape"]], "ShapeObject": [[43, "shapeobject"]], "Shell": [[44, "shell"]], "SquareDiamondTile": [[45, "squarediamondtile"]], "Tile": [[46, "tile"]], "TileFactory": [[47, "tilefactory"]], "Tiling": [[48, "tiling"]], "TwoManifold": [[49, "twomanifold"]], "Vertex": [[50, "vertex"]], "WireFrame": [[51, "wireframe"]], "Properties": [[52, "properties"]], "qiskit_qec.linear.all_commute": [[53, "qiskit-qec-linear-all-commute"]], "qiskit_qec.linear.augment_mat": [[54, "qiskit-qec-linear-augment-mat"]], "qiskit_qec.linear.build_hyper_partner": [[55, "qiskit-qec-linear-build-hyper-partner"]], "qiskit_qec.linear.create_lambda_matrix": [[56, "qiskit-qec-linear-create-lambda-matrix"]], "qiskit_qec.linear.is_center": [[57, "qiskit-qec-linear-is-center"]], "qiskit_qec.linear.is_hyper_form": [[58, "qiskit-qec-linear-is-hyper-form"]], "qiskit_qec.linear.is_same_span": [[59, "qiskit-qec-linear-is-same-span"]], "qiskit_qec.linear.is_stabilizer_group": [[60, "qiskit-qec-linear-is-stabilizer-group"]], "qiskit_qec.linear.is_symplectic_form": [[61, "qiskit-qec-linear-is-symplectic-form"]], "qiskit_qec.linear.is_symplectic_matrix_form": [[62, "qiskit-qec-linear-is-symplectic-matrix-form"]], "qiskit_qec.linear.is_symplectic_vector_form": [[63, "qiskit-qec-linear-is-symplectic-vector-form"]], "qiskit_qec.linear.locate_hyper_partner": [[64, "qiskit-qec-linear-locate-hyper-partner"]], "qiskit_qec.linear.make_commute_hyper": [[65, "qiskit-qec-linear-make-commute-hyper"]], "qiskit_qec.linear.rank": [[66, "qiskit-qec-linear-rank"]], "qiskit_qec.linear.rref": [[67, "qiskit-qec-linear-rref"]], "qiskit_qec.linear.rref_complete": [[68, "qiskit-qec-linear-rref-complete"]], "qiskit_qec.linear.symplectic_gram_schmidt": [[69, "qiskit-qec-linear-symplectic-gram-schmidt"]], "qiskit_qec.linear.symplectic_product": [[70, "qiskit-qec-linear-symplectic-product"]], "BasePauli": [[71, "basepauli"]], "Pauli": [[72, "pauli"]], "PauliList": [[73, "paulilist"]], "Pauli Representations": [[73, "id1"], [73, "id2"]], "GaugeGroup": [[74, "gaugegroup"]], "Group": [[75, "group"]], "DecodingGraphEdge": [[76, "decodinggraphedge"]], "DecodingGraphNode": [[77, "decodinggraphnode"]], "qiskit_qec.utils.get_counts_via_stim": [[78, "qiskit-qec-utils-get-counts-via-stim"]], "qiskit_qec.utils.get_stim_circuits": [[79, "qiskit-qec-utils-get-stim-circuits"]], "qiskit_qec.utils.indexer": [[80, "module-qiskit_qec.utils.indexer"]], "qiskit_qec.utils.noisify_circuit": [[81, "qiskit-qec-utils-noisify-circuit"]], "qiskit_qec.utils.pauli_rep": [[82, "module-qiskit_qec.utils.pauli_rep"]], "qiskit_qec.utils.visualizations": [[83, "module-qiskit_qec.utils.visualizations"]], "Tutorial: example": [[84, "Tutorial:-example"]], "Qiskit QEC Software Framework": [[85, "Qiskit-QEC-Software-Framework"]], "Framework Design": [[85, "Framework-Design"]], "Layer Design": [[85, "Layer-Design"]], "Framework Components (Now and Future)": [[85, "Framework-Components-(Now-and-Future)"]], "The Creator": [[85, "The-Creator"]], "The Interactor": [[85, "The-Interactor"]], "Commmand Line/Programming Interface": [[85, "Commmand-Line/Programming-Interface"]], "Structure": [[85, "Structure"]], "Installation guide": [[85, "Installation-guide"]], "Content": [[85, "Content"]], "Setting up python environment": [[85, "Setting-up-python-environment"]], "Option 1: conda (recommended)": [[85, "Option-1:-conda-(recommended)"]], "Option 2: venv (included in Python)": [[85, "Option-2:-venv-(included-in-Python)"]], "Installing": [[85, "Installing"]], "Installing optional dependencies": [[85, "Installing-optional-dependencies"]], "Quantum Error Correction": [[85, "Quantum-Error-Correction"], [85, "id1"]], "Repitition Code (Classicial)": [[85, "Repitition-Code-(Classicial)"]], "Challenges": [[85, "Challenges"]], "Quantum Error Correcting Codes": [[85, "Quantum-Error-Correcting-Codes"]], "Error Correcting Conditions": [[85, "Error-Correcting-Conditions"]], "Stabilizer Subsystem Codes": [[85, "Stabilizer-Subsystem-Codes"], [85, "id4"]], "Pauli Operators and Groups": [[85, "Pauli-Operators-and-Groups"], [85, "id2"]], "Representation of Pauli Operators": [[85, "Representation-of-Pauli-Operators"]], "String Syntax": [[85, "String-Syntax"]], "Symplectic Representations": [[85, "Symplectic-Representations"]], "Isotropic-Hyperbolic Generating Sets": [[85, "Isotropic-Hyperbolic-Generating-Sets"]], "Symplectic Gram-Schmidt Process": [[85, "Symplectic-Gram-Schmidt-Process"]], "Stabilizer SubSystem Codes": [[85, "Stabilizer-SubSystem-Codes"]], "Stabilizer Groups": [[85, "Stabilizer-Groups"]], "Stabilizer Codes": [[85, "Stabilizer-Codes"]], "Example Stabilizer Codes - Surface Codes": [[85, "Example-Stabilizer-Codes---Surface-Codes"]], "The Toric Code (Dual Representation - Qubits on edges)": [[85, "The-Toric-Code-(Dual-Representation---Qubits-on-edges)"], [85, "id6"]], "The Toric Code (Face Representation Qubits on vertices)": [[85, "The-Toric-Code-(Face-Representation-Qubits-on-vertices)"], [85, "id7"]], "Rorated Surface Code (Face Representation - Qubits on vertices)": [[85, "Rorated-Surface-Code-(Face-Representation---Qubits-on-vertices)"], [85, "id8"]], "Gauge Groups": [[85, "Gauge-Groups"]], "Finding Logical Operators": [[85, "Finding-Logical-Operators"]], "Centeralizer and Normalizer": [[85, "Centeralizer-and-Normalizer"]], "Finding Mininal Distances": [[85, "Finding-Mininal-Distances"]], "Basic algorithm for the minimum distance of (subsystem) stabilizer codes": [[85, "Basic-algorithm-for-the-minimum-distance-of-(subsystem)-stabilizer-codes"]], "Improved algorithm for computing the minimum distance": [[85, "Improved-algorithm-for-computing-the-minimum-distance"]], "Clifford Groups": [[85, "Clifford-Groups"]], "Finding Equivalent Subsystem Codes": [[85, "Finding-Equivalent-Subsystem-Codes"]], "Building Codes": [[85, "Building-Codes"]], "Surface Codes": [[85, "Surface-Codes"]], "TileFactories": [[85, "TileFactories"]], "Tiles": [[85, "Tiles"]], "A Tile in Detail": [[85, "A-Tile-in-Detail"]], "Tile Factory": [[85, "Tile-Factory"]], "Now for something more challenging": [[85, "Now-for-something-more-challenging"]], "Simulating fault-tolerant error-correction circuits": [[85, "Simulating-fault-tolerant-error-correction-circuits"]], "Decoders": [[85, "Decoders"]], "Using the Union Find decoder in qiskit_qec": [[86, "Using-the-Union-Find-decoder-in-qiskit_qec"]], "QEC Tutorials": [[87, "qec-tutorials"]]}, "indexentries": {"module": [[0, "module-qiskit_qec.analysis"], [1, "module-qiskit_qec.circuits"], [2, "module-qiskit_qec.codes"], [3, "module-qiskit_qec.decoders"], [4, "module-qiskit_qec.geometry"], [5, "module-qiskit_qec"], [6, "module-qiskit_qec.info"], [7, "module-qiskit_qec.linear"], [8, "module-qiskit_qec.operators"], [9, "module-qiskit_qec.structures"], [10, "module-qiskit_qec.utils"], [80, "module-qiskit_qec.utils.indexer"], [82, "module-qiskit_qec.utils.pauli_rep"], [83, "module-qiskit_qec.utils.visualizations"]], "qiskit_qec.analysis": [[0, "module-qiskit_qec.analysis"]], "qiskit_qec.circuits": [[1, "module-qiskit_qec.circuits"]], "qiskit_qec.codes": [[2, "module-qiskit_qec.codes"]], "qiskit_qec.decoders": [[3, "module-qiskit_qec.decoders"]], "qiskit_qec.geometry": [[4, "module-qiskit_qec.geometry"]], "qiskit_qec": [[5, "module-qiskit_qec"]], "qiskit_qec.info": [[6, "module-qiskit_qec.info"]], "qiskit_qec.linear": [[7, "module-qiskit_qec.linear"]], "qiskit_qec.operators": [[8, "module-qiskit_qec.operators"]], "qiskit_qec.structures": [[9, "module-qiskit_qec.structures"]], "qiskit_qec.utils": [[10, "module-qiskit_qec.utils"]], "available_methods (arccircuit attribute)": [[16, "qiskit_qec.circuits.ArcCircuit.AVAILABLE_METHODS"]], "arccircuit (class in qiskit_qec.circuits)": [[16, "qiskit_qec.circuits.ArcCircuit"]], "method_naive (arccircuit attribute)": [[16, "qiskit_qec.circuits.ArcCircuit.METHOD_NAIVE"]], "method_spitz (arccircuit attribute)": [[16, "qiskit_qec.circuits.ArcCircuit.METHOD_SPITZ"]], "check_nodes() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.check_nodes"]], "clean_code() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.clean_code"]], "flatten_nodes() (arccircuit static method)": [[16, "qiskit_qec.circuits.ArcCircuit.flatten_nodes"]], "get_error_coords() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.get_error_coords"]], "is_cluster_neutral() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.is_cluster_neutral"]], "string2nodes() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.string2nodes"]], "string2raw_logicals() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.string2raw_logicals"]], "transpile() (arccircuit method)": [[16, "qiskit_qec.circuits.ArcCircuit.transpile"]], "csscodecircuit (class in qiskit_qec.circuits)": [[17, "qiskit_qec.circuits.CSSCodeCircuit"]], "check_nodes() (csscodecircuit method)": [[17, "qiskit_qec.circuits.CSSCodeCircuit.check_nodes"]], "is_cluster_neutral() (csscodecircuit method)": [[17, "qiskit_qec.circuits.CSSCodeCircuit.is_cluster_neutral"]], "stim_detectors() (csscodecircuit method)": [[17, "qiskit_qec.circuits.CSSCodeCircuit.stim_detectors"]], "string2nodes() (csscodecircuit method)": [[17, "qiskit_qec.circuits.CSSCodeCircuit.string2nodes"]], "string2raw_logicals() (csscodecircuit method)": [[17, "qiskit_qec.circuits.CSSCodeCircuit.string2raw_logicals"]], "codecircuit (class in qiskit_qec.circuits)": [[18, "qiskit_qec.circuits.CodeCircuit"]], "check_nodes() (codecircuit method)": [[18, "qiskit_qec.circuits.CodeCircuit.check_nodes"]], "is_cluster_neutral() (codecircuit method)": [[18, "qiskit_qec.circuits.CodeCircuit.is_cluster_neutral"]], "string2nodes() (codecircuit method)": [[18, "qiskit_qec.circuits.CodeCircuit.string2nodes"]], "repetitioncodecircuit (class in qiskit_qec.circuits)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit"]], "check_nodes() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.check_nodes"]], "get_circuit_list() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.get_circuit_list"]], "is_cluster_neutral() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.is_cluster_neutral"]], "partition_outcomes() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.partition_outcomes"]], "readout() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.readout"]], "string2nodes() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.string2nodes"]], "string2raw_logicals() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.string2raw_logicals"]], "syndrome_measurement() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.syndrome_measurement"]], "x() (repetitioncodecircuit method)": [[19, "qiskit_qec.circuits.RepetitionCodeCircuit.x"]], "surfacecodecircuit (class in qiskit_qec.circuits)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit"]], "check_nodes() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.check_nodes"]], "get_circuit_list() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.get_circuit_list"]], "is_cluster_neutral() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.is_cluster_neutral"]], "readout() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.readout"]], "string2nodes() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.string2nodes"]], "string2raw_logicals() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.string2raw_logicals"]], "syndrome_measurement() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.syndrome_measurement"]], "x() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.x"]], "z() (surfacecodecircuit method)": [[20, "qiskit_qec.circuits.SurfaceCodeCircuit.z"]], "codelibrarian (class in qiskit_qec.codes)": [[21, "qiskit_qec.codes.CodeLibrarian"]], "get() (codelibrarian method)": [[21, "qiskit_qec.codes.CodeLibrarian.get"]], "n_dir_format (codelibrarian attribute)": [[21, "qiskit_qec.codes.CodeLibrarian.n_dir_format"]], "n_k_codes_file_format (codelibrarian attribute)": [[21, "qiskit_qec.codes.CodeLibrarian.n_k_codes_file_format"]], "codelibrary (class in qiskit_qec.codes)": [[22, "qiskit_qec.codes.CodeLibrary"]], "data2code() (codelibrary static method)": [[22, "qiskit_qec.codes.CodeLibrary.data2code"]], "in_range() (codelibrary method)": [[22, "qiskit_qec.codes.CodeLibrary.in_range"]], "search() (codelibrary method)": [[22, "qiskit_qec.codes.CodeLibrary.search"]], "qeccode (class in qiskit_qec.codes)": [[23, "qiskit_qec.codes.QECCode"]], "stabsubsystemcode (class in qiskit_qec.codes)": [[24, "qiskit_qec.codes.StabSubSystemCode"]], "draw() (stabsubsystemcode method)": [[24, "qiskit_qec.codes.StabSubSystemCode.draw"]], "generators (stabsubsystemcode attribute)": [[24, "qiskit_qec.codes.StabSubSystemCode.generators"]], "n (stabsubsystemcode attribute)": [[24, "qiskit_qec.codes.StabSubSystemCode.n"]], "all_small_codes() (in module qiskit_qec.codes)": [[25, "qiskit_qec.codes.all_small_codes"]], "small_code() (in module qiskit_qec.codes)": [[26, "qiskit_qec.codes.small_code"]], "available_methods (decodinggraph attribute)": [[27, "qiskit_qec.decoders.DecodingGraph.AVAILABLE_METHODS"]], "decodinggraph (class in qiskit_qec.decoders)": [[27, "qiskit_qec.decoders.DecodingGraph"]], "method_naive (decodinggraph attribute)": [[27, "qiskit_qec.decoders.DecodingGraph.METHOD_NAIVE"]], "method_spitz (decodinggraph attribute)": [[27, "qiskit_qec.decoders.DecodingGraph.METHOD_SPITZ"]], "clean_measurements() (decodinggraph method)": [[27, "qiskit_qec.decoders.DecodingGraph.clean_measurements"]], "edge_in_graph() (decodinggraph method)": [[27, "qiskit_qec.decoders.DecodingGraph.edge_in_graph"]], "get_edge_graph() (decodinggraph method)": [[27, "qiskit_qec.decoders.DecodingGraph.get_edge_graph"]], "get_error_probs() (decodinggraph method)": [[27, "qiskit_qec.decoders.DecodingGraph.get_error_probs"]], "get_node_graph() (decodinggraph method)": [[27, "qiskit_qec.decoders.DecodingGraph.get_node_graph"]], "make_error_graph() (decodinggraph method)": [[27, "qiskit_qec.decoders.DecodingGraph.make_error_graph"]], "node_index() (decodinggraph method)": [[27, "qiskit_qec.decoders.DecodingGraph.node_index"]], "update_attributes() (decodinggraph method)": [[27, "qiskit_qec.decoders.DecodingGraph.update_attributes"]], "weight_syndrome_graph() (decodinggraph method)": [[27, "qiskit_qec.decoders.DecodingGraph.weight_syndrome_graph"]], "unionfinddecoder (class in qiskit_qec.decoders)": [[28, "qiskit_qec.decoders.UnionFindDecoder"]], "cluster() (unionfinddecoder method)": [[28, "qiskit_qec.decoders.UnionFindDecoder.cluster"]], "find() (unionfinddecoder method)": [[28, "qiskit_qec.decoders.UnionFindDecoder.find"]], "get_corrections() (unionfinddecoder method)": [[28, "qiskit_qec.decoders.UnionFindDecoder.get_corrections"]], "neighbouring_edges() (unionfinddecoder method)": [[28, "qiskit_qec.decoders.UnionFindDecoder.neighbouring_edges"]], "peeling() (unionfinddecoder method)": [[28, "qiskit_qec.decoders.UnionFindDecoder.peeling"]], "process() (unionfinddecoder method)": [[28, "qiskit_qec.decoders.UnionFindDecoder.process"]], "checkerboardtile (class in qiskit_qec.geometry)": [[29, "qiskit_qec.geometry.CheckerBoardTile"]], "draw() (checkerboardtile class method)": [[29, "qiskit_qec.geometry.CheckerBoardTile.draw"]], "face_colors (checkerboardtile attribute)": [[29, "qiskit_qec.geometry.CheckerBoardTile.face_colors"]], "faces_wf_components (checkerboardtile attribute)": [[29, "qiskit_qec.geometry.CheckerBoardTile.faces_wf_components"]], "num_faces (checkerboardtile attribute)": [[29, "qiskit_qec.geometry.CheckerBoardTile.num_faces"]], "num_qubits (checkerboardtile attribute)": [[29, "qiskit_qec.geometry.CheckerBoardTile.num_qubits"]], "size (checkerboardtile attribute)": [[29, "qiskit_qec.geometry.CheckerBoardTile.size"]], "u_vec (checkerboardtile attribute)": [[29, "qiskit_qec.geometry.CheckerBoardTile.u_vec"]], "v_vec (checkerboardtile attribute)": [[29, "qiskit_qec.geometry.CheckerBoardTile.v_vec"]], "wf_coordinates (checkerboardtile attribute)": [[29, "qiskit_qec.geometry.CheckerBoardTile.wf_coordinates"]], "wf_loop_indicator (checkerboardtile attribute)": [[29, "qiskit_qec.geometry.CheckerBoardTile.wf_loop_indicator"]], "wf_operator_dict (checkerboardtile attribute)": [[29, "qiskit_qec.geometry.CheckerBoardTile.wf_operator_dict"]], "wf_q_indices (checkerboardtile attribute)": [[29, "qiskit_qec.geometry.CheckerBoardTile.wf_q_indices"]], "diagonalbartile (class in qiskit_qec.geometry)": [[30, "qiskit_qec.geometry.DiagonalBarTile"]], "draw() (diagonalbartile class method)": [[30, "qiskit_qec.geometry.DiagonalBarTile.draw"]], "face_colors (diagonalbartile attribute)": [[30, "qiskit_qec.geometry.DiagonalBarTile.face_colors"]], "faces_wf_components (diagonalbartile attribute)": [[30, "qiskit_qec.geometry.DiagonalBarTile.faces_wf_components"]], "num_faces (diagonalbartile attribute)": [[30, "qiskit_qec.geometry.DiagonalBarTile.num_faces"]], "num_qubits (diagonalbartile attribute)": [[30, "qiskit_qec.geometry.DiagonalBarTile.num_qubits"]], "size (diagonalbartile attribute)": [[30, "qiskit_qec.geometry.DiagonalBarTile.size"]], "u_vec (diagonalbartile attribute)": [[30, "qiskit_qec.geometry.DiagonalBarTile.u_vec"]], "v_vec (diagonalbartile attribute)": [[30, "qiskit_qec.geometry.DiagonalBarTile.v_vec"]], "wf_coordinates (diagonalbartile attribute)": [[30, "qiskit_qec.geometry.DiagonalBarTile.wf_coordinates"]], "wf_loop_indicator (diagonalbartile attribute)": [[30, "qiskit_qec.geometry.DiagonalBarTile.wf_loop_indicator"]], "wf_operator_dict (diagonalbartile attribute)": [[30, "qiskit_qec.geometry.DiagonalBarTile.wf_operator_dict"]], "wf_q_indices (diagonalbartile attribute)": [[30, "qiskit_qec.geometry.DiagonalBarTile.wf_q_indices"]], "diagonalhourglasstile (class in qiskit_qec.geometry)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile"]], "draw() (diagonalhourglasstile class method)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.draw"]], "face_colors (diagonalhourglasstile attribute)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.face_colors"]], "faces_wf_components (diagonalhourglasstile attribute)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.faces_wf_components"]], "num_faces (diagonalhourglasstile attribute)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.num_faces"]], "num_qubits (diagonalhourglasstile attribute)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.num_qubits"]], "size (diagonalhourglasstile attribute)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.size"]], "u_vec (diagonalhourglasstile attribute)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.u_vec"]], "v_vec (diagonalhourglasstile attribute)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.v_vec"]], "wf_coordinates (diagonalhourglasstile attribute)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.wf_coordinates"]], "wf_loop_indicator (diagonalhourglasstile attribute)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.wf_loop_indicator"]], "wf_operator_dict (diagonalhourglasstile attribute)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.wf_operator_dict"]], "wf_q_indices (diagonalhourglasstile attribute)": [[31, "qiskit_qec.geometry.DiagonalHourGlassTile.wf_q_indices"]], "edge (class in qiskit_qec.geometry)": [[32, "qiskit_qec.geometry.Edge"]], "add_parent() (edge method)": [[32, "qiskit_qec.geometry.Edge.add_parent"]], "create_id() (edge static method)": [[32, "qiskit_qec.geometry.Edge.create_id"]], "last_id (edge attribute)": [[32, "qiskit_qec.geometry.Edge.last_id"]], "face (class in qiskit_qec.geometry)": [[33, "qiskit_qec.geometry.Face"]], "add_parent() (face method)": [[33, "qiskit_qec.geometry.Face.add_parent"]], "create_id() (face static method)": [[33, "qiskit_qec.geometry.Face.create_id"]], "last_id (face attribute)": [[33, "qiskit_qec.geometry.Face.last_id"]], "geometrybounds (class in qiskit_qec.geometry)": [[34, "qiskit_qec.geometry.GeometryBounds"]], "bounding_box_from_line() (geometrybounds static method)": [[34, "qiskit_qec.geometry.GeometryBounds.bounding_box_from_line"]], "combine() (geometrybounds class method)": [[34, "qiskit_qec.geometry.GeometryBounds.combine"]], "contains() (geometrybounds method)": [[34, "qiskit_qec.geometry.GeometryBounds.contains"]], "copy() (geometrybounds method)": [[34, "qiskit_qec.geometry.GeometryBounds.copy"]], "expand() (geometrybounds method)": [[34, "qiskit_qec.geometry.GeometryBounds.expand"]], "intercepts() (geometrybounds method)": [[34, "qiskit_qec.geometry.GeometryBounds.intercepts"]], "set_min_max() (geometrybounds method)": [[34, "qiskit_qec.geometry.GeometryBounds.set_min_max"]], "hexagontile (class in qiskit_qec.geometry)": [[35, "qiskit_qec.geometry.HexagonTile"]], "draw() (hexagontile class method)": [[35, "qiskit_qec.geometry.HexagonTile.draw"]], "face_colors (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.face_colors"]], "faces_wf_components (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.faces_wf_components"]], "h (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.h"]], "num_faces (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.num_faces"]], "num_qubits (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.num_qubits"]], "r (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.r"]], "size (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.size"]], "u_vec (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.u_vec"]], "v_vec (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.v_vec"]], "wf_coordinates (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.wf_coordinates"]], "wf_loop_indicator (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.wf_loop_indicator"]], "wf_operator_dict (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.wf_operator_dict"]], "wf_q_indices (hexagontile attribute)": [[35, "qiskit_qec.geometry.HexagonTile.wf_q_indices"]], "lattice (class in qiskit_qec.geometry)": [[36, "qiskit_qec.geometry.Lattice"]], "apply_transform_from() (lattice method)": [[36, "qiskit_qec.geometry.Lattice.apply_transform_from"]], "find_pre_transform_length() (lattice method)": [[36, "qiskit_qec.geometry.Lattice.find_pre_transform_length"]], "generate_points() (lattice method)": [[36, "qiskit_qec.geometry.Lattice.generate_points"]], "make_transform() (lattice class method)": [[36, "qiskit_qec.geometry.Lattice.make_transform"]], "restrict() (lattice method)": [[36, "qiskit_qec.geometry.Lattice.restrict"]], "restrict_for_tiling() (lattice method)": [[36, "qiskit_qec.geometry.Lattice.restrict_for_tiling"]], "manifold (class in qiskit_qec.geometry)": [[37, "qiskit_qec.geometry.Manifold"]], "octasquaretile (class in qiskit_qec.geometry)": [[38, "qiskit_qec.geometry.OctaSquareTile"]], "c8 (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.c8"]], "draw() (octasquaretile class method)": [[38, "qiskit_qec.geometry.OctaSquareTile.draw"]], "face_colors (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.face_colors"]], "faces_wf_components (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.faces_wf_components"]], "num_faces (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.num_faces"]], "num_qubits (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.num_qubits"]], "s8 (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.s8"]], "size (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.size"]], "u_vec (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.u_vec"]], "v_vec (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.v_vec"]], "wf_coordinates (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.wf_coordinates"]], "wf_loop_indicator (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.wf_loop_indicator"]], "wf_operator_dict (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.wf_operator_dict"]], "wf_q_indices (octasquaretile attribute)": [[38, "qiskit_qec.geometry.OctaSquareTile.wf_q_indices"]], "plane (class in qiskit_qec.geometry)": [[39, "qiskit_qec.geometry.Plane"]], "ison() (plane static method)": [[39, "qiskit_qec.geometry.Plane.ison"]], "rot_matrix() (plane static method)": [[39, "qiskit_qec.geometry.Plane.rot_matrix"]], "rotate() (plane static method)": [[39, "qiskit_qec.geometry.Plane.rotate"]], "qubitcount (class in qiskit_qec.geometry)": [[40, "qiskit_qec.geometry.QubitCount"]], "decrement_qubit() (qubitcount method)": [[40, "qiskit_qec.geometry.QubitCount.decrement_qubit"]], "increment_qubit() (qubitcount method)": [[40, "qiskit_qec.geometry.QubitCount.increment_qubit"]], "new_qubit() (qubitcount method)": [[40, "qiskit_qec.geometry.QubitCount.new_qubit"]], "qubitdata (class in qiskit_qec.geometry)": [[41, "qiskit_qec.geometry.QubitData"]], "add_data_array() (qubitdata method)": [[41, "qiskit_qec.geometry.QubitData.add_data_array"]], "del_data_array() (qubitdata method)": [[41, "qiskit_qec.geometry.QubitData.del_data_array"]], "shape (class in qiskit_qec.geometry)": [[42, "qiskit_qec.geometry.Shape"]], "bounding_box_from_lines() (shape method)": [[42, "qiskit_qec.geometry.Shape.bounding_box_from_lines"]], "contains() (shape method)": [[42, "qiskit_qec.geometry.Shape.contains"]], "contains_quad_winding_number() (shape method)": [[42, "qiskit_qec.geometry.Shape.contains_quad_winding_number"]], "contains_ray_trace() (shape method)": [[42, "qiskit_qec.geometry.Shape.contains_ray_trace"]], "create_lines() (shape static method)": [[42, "qiskit_qec.geometry.Shape.create_lines"]], "inside() (shape method)": [[42, "qiskit_qec.geometry.Shape.inside"]], "is_between() (shape static method)": [[42, "qiskit_qec.geometry.Shape.is_between"]], "rect() (shape class method)": [[42, "qiskit_qec.geometry.Shape.rect"]], "square() (shape class method)": [[42, "qiskit_qec.geometry.Shape.square"]], "shapeobject (class in qiskit_qec.geometry)": [[43, "qiskit_qec.geometry.ShapeObject"]], "add_parent() (shapeobject method)": [[43, "qiskit_qec.geometry.ShapeObject.add_parent"]], "create_id() (shapeobject static method)": [[43, "qiskit_qec.geometry.ShapeObject.create_id"]], "last_id (shapeobject attribute)": [[43, "qiskit_qec.geometry.ShapeObject.last_id"]], "shell (class in qiskit_qec.geometry)": [[44, "qiskit_qec.geometry.Shell"]], "add_parent() (shell method)": [[44, "qiskit_qec.geometry.Shell.add_parent"]], "create_id() (shell static method)": [[44, "qiskit_qec.geometry.Shell.create_id"]], "delete_subtree() (shell method)": [[44, "qiskit_qec.geometry.Shell.delete_subtree"]], "draw() (shell method)": [[44, "qiskit_qec.geometry.Shell.draw"]], "extract() (shell method)": [[44, "qiskit_qec.geometry.Shell.extract"]], "integer_snap() (shell method)": [[44, "qiskit_qec.geometry.Shell.integer_snap"]], "last_id (shell attribute)": [[44, "qiskit_qec.geometry.Shell.last_id"]], "rotate2d() (shell method)": [[44, "qiskit_qec.geometry.Shell.rotate2d"]], "scale() (shell method)": [[44, "qiskit_qec.geometry.Shell.scale"]], "shell2symplectic() (shell static method)": [[44, "qiskit_qec.geometry.Shell.shell2symplectic"]], "shift() (shell method)": [[44, "qiskit_qec.geometry.Shell.shift"]], "union() (shell method)": [[44, "qiskit_qec.geometry.Shell.union"]], "squarediamondtile (class in qiskit_qec.geometry)": [[45, "qiskit_qec.geometry.SquareDiamondTile"]], "draw() (squarediamondtile class method)": [[45, "qiskit_qec.geometry.SquareDiamondTile.draw"]], "face_colors (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.face_colors"]], "faces_wf_components (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.faces_wf_components"]], "num_faces (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.num_faces"]], "num_qubits (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.num_qubits"]], "size (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.size"]], "u_vec (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.u_vec"]], "v_vec (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.v_vec"]], "wf_coordinates (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.wf_coordinates"]], "wf_loop_indicator (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.wf_loop_indicator"]], "wf_operator_dict (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.wf_operator_dict"]], "wf_orientation (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.wf_orientation"]], "wf_q_indices (squarediamondtile attribute)": [[45, "qiskit_qec.geometry.SquareDiamondTile.wf_q_indices"]], "tile (class in qiskit_qec.geometry)": [[46, "qiskit_qec.geometry.Tile"]], "draw() (tile class method)": [[46, "qiskit_qec.geometry.Tile.draw"]], "tilefactory (class in qiskit_qec.geometry)": [[47, "qiskit_qec.geometry.TileFactory"]], "tiling (class in qiskit_qec.geometry)": [[48, "qiskit_qec.geometry.Tiling"]], "distance() (tiling class method)": [[48, "qiskit_qec.geometry.Tiling.distance"]], "twomanifold (class in qiskit_qec.geometry)": [[49, "qiskit_qec.geometry.TwoManifold"]], "vertex (class in qiskit_qec.geometry)": [[50, "qiskit_qec.geometry.Vertex"]], "add_parent() (vertex method)": [[50, "qiskit_qec.geometry.Vertex.add_parent"]], "create_id() (vertex static method)": [[50, "qiskit_qec.geometry.Vertex.create_id"]], "last_id (vertex attribute)": [[50, "qiskit_qec.geometry.Vertex.last_id"]], "position (vertex attribute)": [[50, "qiskit_qec.geometry.Vertex.position"]], "set_position() (vertex method)": [[50, "qiskit_qec.geometry.Vertex.set_position"]], "shallowcopy() (vertex method)": [[50, "qiskit_qec.geometry.Vertex.shallowcopy"]], "wireframe (class in qiskit_qec.geometry)": [[51, "qiskit_qec.geometry.WireFrame"]], "add_parent() (wireframe method)": [[51, "qiskit_qec.geometry.WireFrame.add_parent"]], "create_id() (wireframe static method)": [[51, "qiskit_qec.geometry.WireFrame.create_id"]], "last_id (wireframe attribute)": [[51, "qiskit_qec.geometry.WireFrame.last_id"]], "aut_group_size (properties attribute)": [[52, "qiskit_qec.info.Properties.AUT_GROUP_SIZE"]], "citation (properties attribute)": [[52, "qiskit_qec.info.Properties.CITATION"]], "code_types (properties attribute)": [[52, "qiskit_qec.info.Properties.CODE_TYPES"]], "d (properties attribute)": [[52, "qiskit_qec.info.Properties.D"]], "gauge_group (properties attribute)": [[52, "qiskit_qec.info.Properties.GAUGE_GROUP"]], "hyperbolic_gen (properties attribute)": [[52, "qiskit_qec.info.Properties.HYPERBOLIC_GEN"]], "index (properties attribute)": [[52, "qiskit_qec.info.Properties.INDEX"]], "isotropic_gen (properties attribute)": [[52, "qiskit_qec.info.Properties.ISOTROPIC_GEN"]], "is_css (properties attribute)": [[52, "qiskit_qec.info.Properties.IS_CSS"]], "is_css_key (properties attribute)": [[52, "qiskit_qec.info.Properties.IS_CSS_KEY"]], "is_decomposable (properties attribute)": [[52, "qiskit_qec.info.Properties.IS_DECOMPOSABLE"]], "is_decomposable_key (properties attribute)": [[52, "qiskit_qec.info.Properties.IS_DECOMPOSABLE_KEY"]], "is_degenerate (properties attribute)": [[52, "qiskit_qec.info.Properties.IS_DEGENERATE"]], "is_degenerate_key (properties attribute)": [[52, "qiskit_qec.info.Properties.IS_DEGENERATE_KEY"]], "is_gf4linear (properties attribute)": [[52, "qiskit_qec.info.Properties.IS_GF4LINEAR"]], "is_gf4linear_key (properties attribute)": [[52, "qiskit_qec.info.Properties.IS_GF4LINEAR_KEY"]], "is_triorthogonal (properties attribute)": [[52, "qiskit_qec.info.Properties.IS_TRIORTHOGONAL"]], "is_triorthogonal_key (properties attribute)": [[52, "qiskit_qec.info.Properties.IS_TRIORTHOGONAL_KEY"]], "k (properties attribute)": [[52, "qiskit_qec.info.Properties.K"]], "logical_ops (properties attribute)": [[52, "qiskit_qec.info.Properties.LOGICAL_OPS"]], "n (properties attribute)": [[52, "qiskit_qec.info.Properties.N"]], "name (properties attribute)": [[52, "qiskit_qec.info.Properties.NAME"]], "properties (class in qiskit_qec.info)": [[52, "qiskit_qec.info.Properties"]], "stabilizer (properties attribute)": [[52, "qiskit_qec.info.Properties.STABILIZER"]], "type (properties attribute)": [[52, "qiskit_qec.info.Properties.TYPE"]], "uuid (properties attribute)": [[52, "qiskit_qec.info.Properties.UUID"]], "weight_enumerator (properties attribute)": [[52, "qiskit_qec.info.Properties.WEIGHT_ENUMERATOR"]], "info (properties attribute)": [[52, "qiskit_qec.info.Properties.info"]], "all_commute() (in module qiskit_qec.linear)": [[53, "qiskit_qec.linear.all_commute"]], "augment_mat() (in module qiskit_qec.linear)": [[54, "qiskit_qec.linear.augment_mat"]], "build_hyper_partner() (in module qiskit_qec.linear)": [[55, "qiskit_qec.linear.build_hyper_partner"]], "create_lambda_matrix() (in module qiskit_qec.linear)": [[56, "qiskit_qec.linear.create_lambda_matrix"]], "is_center() (in module qiskit_qec.linear)": [[57, "qiskit_qec.linear.is_center"]], "is_hyper_form() (in module qiskit_qec.linear)": [[58, "qiskit_qec.linear.is_hyper_form"]], "is_same_span() (in module qiskit_qec.linear)": [[59, "qiskit_qec.linear.is_same_span"]], "is_stabilizer_group() (in module qiskit_qec.linear)": [[60, "qiskit_qec.linear.is_stabilizer_group"]], "is_symplectic_form() (in module qiskit_qec.linear)": [[61, "qiskit_qec.linear.is_symplectic_form"]], "is_symplectic_matrix_form() (in module qiskit_qec.linear)": [[62, "qiskit_qec.linear.is_symplectic_matrix_form"]], "is_symplectic_vector_form() (in module qiskit_qec.linear)": [[63, "qiskit_qec.linear.is_symplectic_vector_form"]], "locate_hyper_partner() (in module qiskit_qec.linear)": [[64, "qiskit_qec.linear.locate_hyper_partner"]], "make_commute_hyper() (in module qiskit_qec.linear)": [[65, "qiskit_qec.linear.make_commute_hyper"]], "rank() (in module qiskit_qec.linear)": [[66, "qiskit_qec.linear.rank"]], "rref() (in module qiskit_qec.linear)": [[67, "qiskit_qec.linear.rref"]], "rref_complete() (in module qiskit_qec.linear)": [[68, "qiskit_qec.linear.rref_complete"]], "symplectic_gram_schmidt() (in module qiskit_qec.linear)": [[69, "qiskit_qec.linear.symplectic_gram_schmidt"]], "symplectic_product() (in module qiskit_qec.linear)": [[70, "qiskit_qec.linear.symplectic_product"]], "basepauli (class in qiskit_qec.operators)": [[71, "qiskit_qec.operators.BasePauli"]], "external_pauli_encoding (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.EXTERNAL_PAULI_ENCODING"]], "external_phase_encoding (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.EXTERNAL_PHASE_ENCODING"]], "external_qubit_order (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.EXTERNAL_QUBIT_ORDER"]], "external_syntax (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.EXTERNAL_SYNTAX"]], "external_tensor_encoding (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.EXTERNAL_TENSOR_ENCODING"]], "print_phase_encoding (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.PRINT_PHASE_ENCODING"], [71, "qiskit_qec.operators.BasePauli.print_phase_encoding"]], "adjoint() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.adjoint"]], "all_commutes() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.all_commutes"]], "commutes() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.commutes"]], "compose() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.compose"]], "conjugate() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.conjugate"]], "copy() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.copy"]], "dim (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.dim"]], "dot() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.dot"]], "evolve() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.evolve"]], "expand() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.expand"]], "input_dims() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.input_dims"]], "num_qubits (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.num_qubits"]], "num_y (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.num_y"]], "output_dims() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.output_dims"]], "pauli_encoding (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.pauli_encoding"]], "phase_encoding (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.phase_encoding"]], "power() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.power"]], "qargs (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.qargs"]], "qubit_order (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.qubit_order"]], "reshape() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.reshape"]], "set_pauli_encoding() (basepauli class method)": [[71, "qiskit_qec.operators.BasePauli.set_pauli_encoding"]], "set_phase_encoding() (basepauli class method)": [[71, "qiskit_qec.operators.BasePauli.set_phase_encoding"]], "set_print_phase_encoding() (basepauli class method)": [[71, "qiskit_qec.operators.BasePauli.set_print_phase_encoding"]], "set_qubit_order() (basepauli class method)": [[71, "qiskit_qec.operators.BasePauli.set_qubit_order"]], "set_syntax() (basepauli class method)": [[71, "qiskit_qec.operators.BasePauli.set_syntax"]], "set_tensor_encoding() (basepauli class method)": [[71, "qiskit_qec.operators.BasePauli.set_tensor_encoding"]], "syntax (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.syntax"]], "tensor() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.tensor"]], "tensor_encoding (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.tensor_encoding"]], "to_label() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.to_label"]], "transpose() (basepauli method)": [[71, "qiskit_qec.operators.BasePauli.transpose"]], "x (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.x"]], "z (basepauli attribute)": [[71, "qiskit_qec.operators.BasePauli.z"]], "external_pauli_encoding (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.EXTERNAL_PAULI_ENCODING"]], "external_phase_encoding (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.EXTERNAL_PHASE_ENCODING"]], "external_qubit_order (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.EXTERNAL_QUBIT_ORDER"]], "external_syntax (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.EXTERNAL_SYNTAX"]], "external_tensor_encoding (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.EXTERNAL_TENSOR_ENCODING"]], "print_phase_encoding (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.PRINT_PHASE_ENCODING"], [72, "qiskit_qec.operators.Pauli.print_phase_encoding"]], "pauli (class in qiskit_qec.operators)": [[72, "qiskit_qec.operators.Pauli"]], "adjoint() (pauli method)": [[72, "qiskit_qec.operators.Pauli.adjoint"]], "all_commutes() (pauli method)": [[72, "qiskit_qec.operators.Pauli.all_commutes"]], "anticommutes() (pauli method)": [[72, "qiskit_qec.operators.Pauli.anticommutes"]], "append_paulis() (pauli method)": [[72, "qiskit_qec.operators.Pauli.append_paulis"]], "commutes() (pauli method)": [[72, "qiskit_qec.operators.Pauli.commutes"]], "compose() (pauli method)": [[72, "qiskit_qec.operators.Pauli.compose"]], "conjugate() (pauli method)": [[72, "qiskit_qec.operators.Pauli.conjugate"]], "copy() (pauli method)": [[72, "qiskit_qec.operators.Pauli.copy"]], "delete() (pauli method)": [[72, "qiskit_qec.operators.Pauli.delete"]], "delete_qubits() (pauli method)": [[72, "qiskit_qec.operators.Pauli.delete_qubits"]], "dim (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.dim"]], "dot() (pauli method)": [[72, "qiskit_qec.operators.Pauli.dot"]], "equiv() (pauli method)": [[72, "qiskit_qec.operators.Pauli.equiv"]], "evolve() (pauli method)": [[72, "qiskit_qec.operators.Pauli.evolve"]], "expand() (pauli method)": [[72, "qiskit_qec.operators.Pauli.expand"]], "from_label() (pauli static method)": [[72, "qiskit_qec.operators.Pauli.from_label"]], "input_dims() (pauli method)": [[72, "qiskit_qec.operators.Pauli.input_dims"]], "insert() (pauli method)": [[72, "qiskit_qec.operators.Pauli.insert"]], "insert_paulis() (pauli method)": [[72, "qiskit_qec.operators.Pauli.insert_paulis"]], "instrs2symplectic() (pauli static method)": [[72, "qiskit_qec.operators.Pauli.instrs2symplectic"]], "inverse() (pauli method)": [[72, "qiskit_qec.operators.Pauli.inverse"]], "kron() (pauli method)": [[72, "qiskit_qec.operators.Pauli.kron"]], "name (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.name"]], "num_clbits (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.num_clbits"]], "num_qubits (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.num_qubits"]], "num_y (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.num_y"]], "output_dims() (pauli method)": [[72, "qiskit_qec.operators.Pauli.output_dims"]], "pauli_encoding (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.pauli_encoding"]], "pauli_single() (pauli class method)": [[72, "qiskit_qec.operators.Pauli.pauli_single"]], "phase (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.phase"]], "phase_encoding (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.phase_encoding"]], "phase_exp (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.phase_exp"]], "pltb_int (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.pltb_int"]], "pltb_str (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.pltb_str"]], "power() (pauli method)": [[72, "qiskit_qec.operators.Pauli.power"]], "qargs (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.qargs"]], "qubit_order (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.qubit_order"]], "random() (pauli class method)": [[72, "qiskit_qec.operators.Pauli.random"]], "reshape() (pauli method)": [[72, "qiskit_qec.operators.Pauli.reshape"]], "set_pauli_encoding() (pauli class method)": [[72, "qiskit_qec.operators.Pauli.set_pauli_encoding"]], "set_phase_encoding() (pauli class method)": [[72, "qiskit_qec.operators.Pauli.set_phase_encoding"]], "set_print_phase_encoding() (pauli class method)": [[72, "qiskit_qec.operators.Pauli.set_print_phase_encoding"]], "set_qubit_order() (pauli class method)": [[72, "qiskit_qec.operators.Pauli.set_qubit_order"]], "set_syntax() (pauli class method)": [[72, "qiskit_qec.operators.Pauli.set_syntax"]], "set_tensor_encoding() (pauli class method)": [[72, "qiskit_qec.operators.Pauli.set_tensor_encoding"]], "set_truncation() (pauli class method)": [[72, "qiskit_qec.operators.Pauli.set_truncation"]], "settings (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.settings"]], "sgn_prod() (pauli static method)": [[72, "qiskit_qec.operators.Pauli.sgn_prod"]], "syntax (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.syntax"]], "tensor() (pauli method)": [[72, "qiskit_qec.operators.Pauli.tensor"]], "tensor_encoding (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.tensor_encoding"]], "to_cpx_matrix() (pauli method)": [[72, "qiskit_qec.operators.Pauli.to_cpx_matrix"]], "to_instruction() (pauli method)": [[72, "qiskit_qec.operators.Pauli.to_instruction"]], "to_label() (pauli method)": [[72, "qiskit_qec.operators.Pauli.to_label"]], "to_matrix() (pauli method)": [[72, "qiskit_qec.operators.Pauli.to_matrix"]], "to_spmatrix() (pauli method)": [[72, "qiskit_qec.operators.Pauli.to_spmatrix"]], "transpose() (pauli method)": [[72, "qiskit_qec.operators.Pauli.transpose"]], "update_x() (pauli method)": [[72, "qiskit_qec.operators.Pauli.update_x"]], "update_z() (pauli method)": [[72, "qiskit_qec.operators.Pauli.update_z"]], "x (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.x"]], "z (pauli attribute)": [[72, "qiskit_qec.operators.Pauli.z"]], "external_pauli_encoding (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.EXTERNAL_PAULI_ENCODING"]], "external_phase_encoding (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.EXTERNAL_PHASE_ENCODING"]], "external_qubit_order (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.EXTERNAL_QUBIT_ORDER"]], "external_syntax (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.EXTERNAL_SYNTAX"]], "external_tensor_encoding (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.EXTERNAL_TENSOR_ENCODING"]], "print_phase_encoding (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.PRINT_PHASE_ENCODING"], [73, "qiskit_qec.operators.PauliList.print_phase_encoding"]], "paulilist (class in qiskit_qec.operators)": [[73, "qiskit_qec.operators.PauliList"]], "adjoint() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.adjoint"]], "all_commutes() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.all_commutes"]], "anticommutes() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.anticommutes"]], "anticommutes_with_all() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.anticommutes_with_all"]], "argsort() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.argsort"]], "commutes() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.commutes"]], "commutes_with_all() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.commutes_with_all"]], "compose() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.compose"]], "conjugate() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.conjugate"]], "copy() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.copy"]], "delete() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.delete"]], "dim (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.dim"]], "dot() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.dot"]], "evolve() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.evolve"]], "expand() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.expand"]], "from_symplectic() (paulilist class method)": [[73, "qiskit_qec.operators.PauliList.from_symplectic"]], "getaslist() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.getaslist"]], "group_qubit_wise_commuting() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.group_qubit_wise_commuting"]], "input_dims() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.input_dims"]], "insert() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.insert"]], "inverse() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.inverse"]], "label_iter() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.label_iter"]], "matrix_iter() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.matrix_iter"]], "num_paulis (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.num_paulis"]], "num_qubits (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.num_qubits"]], "num_y (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.num_y"]], "output_dims() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.output_dims"]], "pauli_encoding (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.pauli_encoding"]], "phase (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.phase"]], "phase_encoding (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.phase_encoding"]], "phase_exp (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.phase_exp"]], "power() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.power"]], "qargs (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.qargs"]], "qubit_order (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.qubit_order"]], "reshape() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.reshape"]], "set_pauli_encoding() (paulilist class method)": [[73, "qiskit_qec.operators.PauliList.set_pauli_encoding"]], "set_phase_encoding() (paulilist class method)": [[73, "qiskit_qec.operators.PauliList.set_phase_encoding"]], "set_print_phase_encoding() (paulilist class method)": [[73, "qiskit_qec.operators.PauliList.set_print_phase_encoding"]], "set_qubit_order() (paulilist class method)": [[73, "qiskit_qec.operators.PauliList.set_qubit_order"]], "set_syntax() (paulilist class method)": [[73, "qiskit_qec.operators.PauliList.set_syntax"]], "set_tensor_encoding() (paulilist class method)": [[73, "qiskit_qec.operators.PauliList.set_tensor_encoding"]], "settings (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.settings"]], "shape (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.shape"]], "size (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.size"]], "sort() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.sort"]], "syntax (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.syntax"]], "tensor() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.tensor"]], "tensor_encoding (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.tensor_encoding"]], "to_label() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.to_label"]], "to_labels() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.to_labels"]], "to_matrix() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.to_matrix"]], "transpose() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.transpose"]], "unique() (paulilist method)": [[73, "qiskit_qec.operators.PauliList.unique"]], "x (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.x"]], "z (paulilist attribute)": [[73, "qiskit_qec.operators.PauliList.z"]], "gaugegroup (class in qiskit_qec.structures)": [[74, "qiskit_qec.structures.GaugeGroup"]], "k (gaugegroup attribute)": [[74, "qiskit_qec.structures.GaugeGroup.k"]], "n (gaugegroup attribute)": [[74, "qiskit_qec.structures.GaugeGroup.n"]], "num_gen (gaugegroup attribute)": [[74, "qiskit_qec.structures.GaugeGroup.num_gen"]], "group (class in qiskit_qec.structures)": [[75, "qiskit_qec.structures.Group"]], "decodinggraphedge (class in qiskit_qec.utils)": [[76, "qiskit_qec.utils.DecodingGraphEdge"]], "fault_ids (decodinggraphedge attribute)": [[76, "qiskit_qec.utils.DecodingGraphEdge.fault_ids"]], "get() (decodinggraphedge method)": [[76, "qiskit_qec.utils.DecodingGraphEdge.get"]], "properties (decodinggraphedge attribute)": [[76, "qiskit_qec.utils.DecodingGraphEdge.properties"]], "qubits (decodinggraphedge attribute)": [[76, "qiskit_qec.utils.DecodingGraphEdge.qubits"]], "weight (decodinggraphedge attribute)": [[76, "qiskit_qec.utils.DecodingGraphEdge.weight"]], "decodinggraphnode (class in qiskit_qec.utils)": [[77, "qiskit_qec.utils.DecodingGraphNode"]], "get() (decodinggraphnode method)": [[77, "qiskit_qec.utils.DecodingGraphNode.get"]], "get_counts_via_stim() (in module qiskit_qec.utils)": [[78, "qiskit_qec.utils.get_counts_via_stim"]], "get_stim_circuits() (in module qiskit_qec.utils)": [[79, "qiskit_qec.utils.get_stim_circuits"]], "qiskit_qec.utils.indexer": [[80, "module-qiskit_qec.utils.indexer"]], "noisify_circuit() (in module qiskit_qec.utils)": [[81, "qiskit_qec.utils.noisify_circuit"]], "qiskit_qec.utils.pauli_rep": [[82, "module-qiskit_qec.utils.pauli_rep"]], "qiskit_qec.utils.visualizations": [[83, "module-qiskit_qec.utils.visualizations"]]}}) \ No newline at end of file diff --git a/stubs/qiskit_qec.circuits.ArcCircuit.html b/stubs/qiskit_qec.circuits.ArcCircuit.html index 10599159..7fb15665 100644 --- a/stubs/qiskit_qec.circuits.ArcCircuit.html +++ b/stubs/qiskit_qec.circuits.ArcCircuit.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -396,7 +393,7 @@

    ArcCircuitMethods

    -check_nodes(nodes, ignore_extra_boundary=False, minimal=False)[source]#
    +check_nodes(nodes, ignore_extra_logical=False, minimal=False)[source]#

    Determines whether a given set of nodes are neutral. If so, also determines any additional logical readout qubits that would be flipped by the errors creating such a cluster and how many errors @@ -404,9 +401,9 @@

    ArcCircuit -
    -measured_logicals()[source]#
    -

    Returns a list of logical operators, each expressed as a list of qubits for which -the parity of the final readouts corresponds to the raw logical readout.

    -

    -
    string2nodes(string, **kwargs)[source]#
    @@ -646,7 +636,7 @@

    ArcCircuitFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    @@ -674,7 +664,6 @@

    ArcCircuitArcCircuit.flatten_nodes()
  • ArcCircuit.get_error_coords()
  • ArcCircuit.is_cluster_neutral()
  • -
  • ArcCircuit.measured_logicals()
  • ArcCircuit.string2nodes()
  • ArcCircuit.string2raw_logicals()
  • ArcCircuit.transpile()
  • diff --git a/stubs/qiskit_qec.circuits.CSSCodeCircuit.html b/stubs/qiskit_qec.circuits.CSSCodeCircuit.html index 222e1577..b48d6d1e 100644 --- a/stubs/qiskit_qec.circuits.CSSCodeCircuit.html +++ b/stubs/qiskit_qec.circuits.CSSCodeCircuit.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -370,7 +367,7 @@

    CSSCodeCircuitMethods

    -check_nodes(nodes, ignore_extra_boundary=False, minimal=False)[source]#
    +check_nodes(nodes, ignore_extra_logical=False, minimal=False)[source]#

    Determines whether a given set of nodes are neutral. If so, also determines any additional logical readout qubits that would be flipped by the errors creating such a cluster and how many errors @@ -378,9 +375,9 @@

    CSSCodeCircuit -
    -measured_logicals()[source]#
    -

    Returns a list of logical operators, each expressed as a list of qubits for which -the parity of the final readouts corresponds to the raw logical readout.

    -

    -
    stim_detectors()[source]#
    @@ -513,7 +503,7 @@

    CSSCodeCircuitFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    @@ -538,7 +528,6 @@

    CSSCodeCircuitCSSCodeCircuit

    @@ -488,7 +478,6 @@

    CodeCircuitCodeCircuit diff --git a/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.html b/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.html index fecb8d3b..d07782fe 100644 --- a/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.html +++ b/stubs/qiskit_qec.circuits.RepetitionCodeCircuit.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -363,7 +360,7 @@

    RepetitionCodeCircuitMethods

    -check_nodes(nodes, ignore_extra_boundary=False, minimal=False)[source]#
    +check_nodes(nodes, ignore_extra_logical=False, minimal=False)[source]#

    Determines whether a given set of nodes are neutral. If so, also determines any additional logical readout qubits that would be flipped by the errors creating such a cluster and how many errors @@ -371,9 +368,9 @@

    RepetitionCodeCircuitstring2nodes. :type nodes: list -:type ignore_extra_boundary: -:param ignore_extra_boundary: If True, undeeded boundary nodes are -:type ignore_extra_boundary: bool +:type ignore_extra_logical: +:param ignore_extra_logical: If True, undeeded boundary nodes are +:type ignore_extra_logical: bool :param ignored.: :type minimal: :param minimal: Whether output should only reflect the minimal error @@ -419,13 +416,6 @@

    RepetitionCodeCircuit

    -
    -
    -measured_logicals()[source]#
    -

    Returns a list of logical operators, each expressed as a list of qubits for which -the parity of the final readouts corresponds to the raw logical readout.

    -
    -
    partition_outcomes(round_schedule, outcome)[source]#
    @@ -559,7 +549,7 @@

    RepetitionCodeCircuitFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    @@ -585,7 +575,6 @@

    RepetitionCodeCircuitRepetitionCodeCircuit.check_nodes()
  • RepetitionCodeCircuit.get_circuit_list()
  • RepetitionCodeCircuit.is_cluster_neutral()
  • -
  • RepetitionCodeCircuit.measured_logicals()
  • RepetitionCodeCircuit.partition_outcomes()
  • RepetitionCodeCircuit.readout()
  • RepetitionCodeCircuit.string2nodes()
  • diff --git a/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.html b/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.html index 9a58db4a..21109078 100644 --- a/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.html +++ b/stubs/qiskit_qec.circuits.SurfaceCodeCircuit.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -360,7 +357,7 @@

    SurfaceCodeCircuitMethods

    -check_nodes(nodes, ignore_extra_boundary=False, minimal=False)[source]#
    +check_nodes(nodes, ignore_extra_logical=False, minimal=False)[source]#

    Determines whether a given set of nodes are neutral. If so, also determines any additional logical readout qubits that would be flipped by the errors creating such a cluster and how many errors @@ -368,9 +365,9 @@

    SurfaceCodeCircuit -
    -measured_logicals()[source]#
    -

    Returns a list of logical operators, each expressed as a list of qubits for which -the parity of the final readouts corresponds to the raw logical readout.

    -

    -
    readout()[source]#
    @@ -571,7 +561,7 @@

    SurfaceCodeCircuitFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    @@ -597,7 +587,6 @@

    SurfaceCodeCircuitSurfaceCodeCircuit.check_nodes()
  • SurfaceCodeCircuit.get_circuit_list()
  • SurfaceCodeCircuit.is_cluster_neutral()
  • -
  • SurfaceCodeCircuit.measured_logicals()
  • SurfaceCodeCircuit.readout()
  • SurfaceCodeCircuit.string2nodes()
  • SurfaceCodeCircuit.string2raw_logicals()
  • diff --git a/stubs/qiskit_qec.codes.CodeLibrarian.html b/stubs/qiskit_qec.codes.CodeLibrarian.html index 2bb8b7cf..cdef1101 100644 --- a/stubs/qiskit_qec.codes.CodeLibrarian.html +++ b/stubs/qiskit_qec.codes.CodeLibrarian.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -416,7 +413,7 @@

    CodeLibrarianFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.codes.CodeLibrary.html b/stubs/qiskit_qec.codes.CodeLibrary.html index 21238ada..7f122391 100644 --- a/stubs/qiskit_qec.codes.CodeLibrary.html +++ b/stubs/qiskit_qec.codes.CodeLibrary.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -432,7 +429,7 @@

    CodeLibraryFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.codes.QECCode.html b/stubs/qiskit_qec.codes.QECCode.html index 241d795d..8f68bfa0 100644 --- a/stubs/qiskit_qec.codes.QECCode.html +++ b/stubs/qiskit_qec.codes.QECCode.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -378,7 +375,7 @@

    QECCode#< Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.codes.StabSubSystemCode.html b/stubs/qiskit_qec.codes.StabSubSystemCode.html index cd6fc641..c16e1c35 100644 --- a/stubs/qiskit_qec.codes.StabSubSystemCode.html +++ b/stubs/qiskit_qec.codes.StabSubSystemCode.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -436,7 +433,7 @@

    StabSubSystemCodeFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.codes.all_small_codes.html b/stubs/qiskit_qec.codes.all_small_codes.html index d3e4c722..5bb56bdc 100644 --- a/stubs/qiskit_qec.codes.all_small_codes.html +++ b/stubs/qiskit_qec.codes.all_small_codes.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -430,7 +427,7 @@

    qiskit_qec.codes.all_small_codesFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.codes.small_code.html b/stubs/qiskit_qec.codes.small_code.html index ac2beeea..64aa7a3e 100644 --- a/stubs/qiskit_qec.codes.small_code.html +++ b/stubs/qiskit_qec.codes.small_code.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -431,7 +428,7 @@

    qiskit_qec.codes.small_codeFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.decoders.CircuitModelMatchingDecoder.html b/stubs/qiskit_qec.decoders.CircuitModelMatchingDecoder.html deleted file mode 100644 index 24955f78..00000000 --- a/stubs/qiskit_qec.decoders.CircuitModelMatchingDecoder.html +++ /dev/null @@ -1,499 +0,0 @@ - - - - - - - - - CircuitModelMatchingDecoder - Qiskit QEC 0.0.0 - - - - - - - - - - - - - - - - - - - - - Contents - - - - - - - - Menu - - - - - - - - - - - Expand - - - - - - - - - - - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark mode - - - - - - - - - - - - - - - - - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    - -
    - -
    - -
    -
    -
    -

    CircuitModelMatchingDecoder#

    -
    -
    -class CircuitModelMatchingDecoder(n, css_x_gauge_ops, css_x_stabilizer_ops, css_x_boundary, css_z_gauge_ops, css_z_stabilizer_ops, css_z_boundary, circuit, model, basis, round_schedule, blocks, method, uniform, decoding_graph=None, annotate=False)[source]#
    -

    Bases: ABC

    -

    Matching decoder for circuit noise.

    -

    Create a matching decoder.

    -

    Specialized to (subsystem) CSS codes encoding one logical qubit, -and quantum circuits that prepare and measure in the Z or X basis -and do repeated Pauli measurements.

    -

    n : block size of quantum code -css_x_gauge_ops : list of supports of X gauge operators -css_x_stabilizer_ops : list of supports of X stabilizers -css_x_boundary : list of qubits along the X-type boundary -css_z_gauge_ops : list of supports of Z gauge operators -css_z_stabilizer_ops : list of supports of Z stabilizers -css_x_boundary : list of qubits along the Z-type boundary -circuit : entire quantum circuit to build the decoding graph -model : noise for operations in the circuit -basis : initializaton and measurement basis (“x” or “z”) -round_schedule : gauge measurements in each block -blocks : number of measurement blocks -method : matching implementation -uniform : use same edge weight everywhere? -annotate : for rustworkx method, compute self.matcher.annotated_graph

    -

    Methods

    -
    -
    -process(outcomes)[source]#
    -

    Process a set of outcomes and return corrected final outcomes.

    -

    Be sure to have called update_edge_weights for the -noise parameters.

    -

    The result is a list of code.n integers that are 0 or 1. -These are the corrected values of the final transversal -measurement in the basis given by self.basis.

    -
    -
    Return type:
    -

    List[int]

    -
    -
    -
    - -
    -
    -update_edge_weights(model)[source]#
    -

    Evaluate the numerical edge weights and update graph data.

    -

    For each edge in the decoding graph that has a “weight_poly” -property, evaluate the polynomial at the given model parameters -and set the corresponding “weight” property. Once this is done, -recompute the shortest paths between pairs of vertices -in the decoding graph.

    -

    model is a PauliNoiseModel whose error probabilities have been -previously assigned. The probabilities are then assigned to -the variables in self.symbols.

    -

    Updates properties of matcher.

    -
    -
    Parameters:
    -

    model (PauliNoiseModel) – moise model

    -
    -
    -
    - -

    Attributes

    -
    -
    -AVAILABLE_METHODS = {'pymatching', 'rustworkx'}#
    -
    - -
    -
    -METHOD_PYMATCHING: str = 'pymatching'#
    -
    - -
    -
    -METHOD_RETWORKX: str = 'rustworkx'#
    -
    - -
    - -
    - -
    -
    - -
    - -
    -
    - - - - - - - - \ No newline at end of file diff --git a/stubs/qiskit_qec.decoders.DecodingGraph.html b/stubs/qiskit_qec.decoders.DecodingGraph.html index 39532016..a487dd35 100644 --- a/stubs/qiskit_qec.decoders.DecodingGraph.html +++ b/stubs/qiskit_qec.decoders.DecodingGraph.html @@ -3,7 +3,7 @@ - + DecodingGraph - Qiskit QEC 0.0.0 @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -334,7 +331,7 @@

    DecodingGraph#

    -class DecodingGraph(code, brute=False, graph=None)[source]#
    +class DecodingGraph(code, brute=False, graph=None, hyperedges=None)[source]#

    Bases: object

    Class to construct the decoding graph for the code given by a CodeCircuit object, for use in a decoder. @@ -388,6 +385,23 @@

    DecodingGraph +
    +get_edge_graph()[source]#
    +

    Returns a copy of the graph that uses edges to store information +about the effects of errors on logical operators. This is done +via the ‘fault_ids’ of the edges. No logical nodes are present +in such a graph.

    +
    +
    Returns:
    +

    The edge graph.

    +
    +
    Return type:
    +

    edge_graph (rx.PyGraph)

    +
    +
    +

    +
    get_error_probs(counts, logical='0', method='spitz', return_samples=False)[source]#
    @@ -420,6 +434,22 @@

    DecodingGraph +
    +get_node_graph()[source]#
    +

    Returns a copy of the graph that uses logical nodes to store information +about the effects of errors on logical operators. No non-trivial ‘fault_ids’ +are present in such a graph.

    +
    +
    Returns:
    +

    The node graph.

    +
    +
    Return type:
    +

    node_graph (rx.PyGraph)

    +
    +
    +

    +
    make_error_graph(data, all_logicals=True)[source]#
    @@ -509,12 +539,12 @@

    DecodingGraph - +
    Next
    -
    CircuitModelMatchingDecoder
    +
    UnionFindDecoder
    @@ -539,7 +569,7 @@

    DecodingGraphFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    @@ -564,7 +594,9 @@

    DecodingGraphDecodingGraph

    diff --git a/stubs/qiskit_qec.geometry.CheckerBoardTile.html b/stubs/qiskit_qec.geometry.CheckerBoardTile.html index a6b0c82f..6c833f4a 100644 --- a/stubs/qiskit_qec.geometry.CheckerBoardTile.html +++ b/stubs/qiskit_qec.geometry.CheckerBoardTile.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -531,7 +528,7 @@

    CheckerBoardTileFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.DiagonalBarTile.html b/stubs/qiskit_qec.geometry.DiagonalBarTile.html index dcfc0106..b9da981e 100644 --- a/stubs/qiskit_qec.geometry.DiagonalBarTile.html +++ b/stubs/qiskit_qec.geometry.DiagonalBarTile.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -535,7 +532,7 @@

    DiagonalBarTileFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.DiagonalHourGlassTile.html b/stubs/qiskit_qec.geometry.DiagonalHourGlassTile.html index 48672350..7101bbf2 100644 --- a/stubs/qiskit_qec.geometry.DiagonalHourGlassTile.html +++ b/stubs/qiskit_qec.geometry.DiagonalHourGlassTile.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -553,7 +550,7 @@

    DiagonalHourGlassTileFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.Edge.html b/stubs/qiskit_qec.geometry.Edge.html index c27bdb69..29d195e4 100644 --- a/stubs/qiskit_qec.geometry.Edge.html +++ b/stubs/qiskit_qec.geometry.Edge.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -420,7 +417,7 @@

    Edge#Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.Face.html b/stubs/qiskit_qec.geometry.Face.html index 89152083..8db827fe 100644 --- a/stubs/qiskit_qec.geometry.Face.html +++ b/stubs/qiskit_qec.geometry.Face.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -417,7 +414,7 @@

    Face#Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.GeometryBounds.html b/stubs/qiskit_qec.geometry.GeometryBounds.html index 49377228..0215ebbf 100644 --- a/stubs/qiskit_qec.geometry.GeometryBounds.html +++ b/stubs/qiskit_qec.geometry.GeometryBounds.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -482,7 +479,7 @@

    GeometryBoundsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.HexagonTile.html b/stubs/qiskit_qec.geometry.HexagonTile.html index 07c7e017..f135b2eb 100644 --- a/stubs/qiskit_qec.geometry.HexagonTile.html +++ b/stubs/qiskit_qec.geometry.HexagonTile.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -620,7 +617,7 @@

    HexagonTileFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.Lattice.html b/stubs/qiskit_qec.geometry.Lattice.html index 148ed09b..fc91cdc2 100644 --- a/stubs/qiskit_qec.geometry.Lattice.html +++ b/stubs/qiskit_qec.geometry.Lattice.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -489,7 +486,7 @@

    Lattice#< Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.Manifold.html b/stubs/qiskit_qec.geometry.Manifold.html index fb5f8503..fff91dfe 100644 --- a/stubs/qiskit_qec.geometry.Manifold.html +++ b/stubs/qiskit_qec.geometry.Manifold.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -380,7 +377,7 @@

    Manifold Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.OctaSquareTile.html b/stubs/qiskit_qec.geometry.OctaSquareTile.html index 50053625..6f35658d 100644 --- a/stubs/qiskit_qec.geometry.OctaSquareTile.html +++ b/stubs/qiskit_qec.geometry.OctaSquareTile.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -571,7 +568,7 @@

    OctaSquareTileFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.Plane.html b/stubs/qiskit_qec.geometry.Plane.html index c25b90be..d04fb7e9 100644 --- a/stubs/qiskit_qec.geometry.Plane.html +++ b/stubs/qiskit_qec.geometry.Plane.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -395,7 +392,7 @@

    Plane#< Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.QubitCount.html b/stubs/qiskit_qec.geometry.QubitCount.html index 723aa1d7..4e94e9d5 100644 --- a/stubs/qiskit_qec.geometry.QubitCount.html +++ b/stubs/qiskit_qec.geometry.QubitCount.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -420,7 +417,7 @@

    QubitCountFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.QubitData.html b/stubs/qiskit_qec.geometry.QubitData.html index 5119bd36..a9ea7561 100644 --- a/stubs/qiskit_qec.geometry.QubitData.html +++ b/stubs/qiskit_qec.geometry.QubitData.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -405,7 +402,7 @@

    QubitDataFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.Shape.html b/stubs/qiskit_qec.geometry.Shape.html index 76bb11ef..880738b4 100644 --- a/stubs/qiskit_qec.geometry.Shape.html +++ b/stubs/qiskit_qec.geometry.Shape.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -598,7 +595,7 @@

    Shape#< Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.ShapeObject.html b/stubs/qiskit_qec.geometry.ShapeObject.html index 8e1fbbc2..9f47546c 100644 --- a/stubs/qiskit_qec.geometry.ShapeObject.html +++ b/stubs/qiskit_qec.geometry.ShapeObject.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -417,7 +414,7 @@

    ShapeObjectFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.Shell.html b/stubs/qiskit_qec.geometry.Shell.html index 389395d3..a6555394 100644 --- a/stubs/qiskit_qec.geometry.Shell.html +++ b/stubs/qiskit_qec.geometry.Shell.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -584,7 +581,7 @@

    Shell#< Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.SquareDiamondTile.html b/stubs/qiskit_qec.geometry.SquareDiamondTile.html index 1756dff5..bc48ae98 100644 --- a/stubs/qiskit_qec.geometry.SquareDiamondTile.html +++ b/stubs/qiskit_qec.geometry.SquareDiamondTile.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -546,7 +543,7 @@

    SquareDiamondTileFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.Tile.html b/stubs/qiskit_qec.geometry.Tile.html index 6bb10156..ac53ccc5 100644 --- a/stubs/qiskit_qec.geometry.Tile.html +++ b/stubs/qiskit_qec.geometry.Tile.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -387,7 +384,7 @@

    Tile#Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.TileFactory.html b/stubs/qiskit_qec.geometry.TileFactory.html index 93012373..5e1ec4ef 100644 --- a/stubs/qiskit_qec.geometry.TileFactory.html +++ b/stubs/qiskit_qec.geometry.TileFactory.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -376,7 +373,7 @@

    TileFactoryFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.Tiling.html b/stubs/qiskit_qec.geometry.Tiling.html index 88ae717c..13a9e902 100644 --- a/stubs/qiskit_qec.geometry.Tiling.html +++ b/stubs/qiskit_qec.geometry.Tiling.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -394,7 +391,7 @@

    Tiling#Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.TwoManifold.html b/stubs/qiskit_qec.geometry.TwoManifold.html index 366b6d5b..53ce19a8 100644 --- a/stubs/qiskit_qec.geometry.TwoManifold.html +++ b/stubs/qiskit_qec.geometry.TwoManifold.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -376,7 +373,7 @@

    TwoManifoldFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.Vertex.html b/stubs/qiskit_qec.geometry.Vertex.html index 7b54b23d..300363b8 100644 --- a/stubs/qiskit_qec.geometry.Vertex.html +++ b/stubs/qiskit_qec.geometry.Vertex.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -449,7 +446,7 @@

    Vertex#Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.geometry.WireFrame.html b/stubs/qiskit_qec.geometry.WireFrame.html index bd776c99..24cc3b6e 100644 --- a/stubs/qiskit_qec.geometry.WireFrame.html +++ b/stubs/qiskit_qec.geometry.WireFrame.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -419,7 +416,7 @@

    WireFrameFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.info.Properties.html b/stubs/qiskit_qec.info.Properties.html index dbb66219..633f4282 100644 --- a/stubs/qiskit_qec.info.Properties.html +++ b/stubs/qiskit_qec.info.Properties.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -512,7 +509,7 @@

    PropertiesFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.all_commute.html b/stubs/qiskit_qec.linear.all_commute.html index 07fb5b2d..04f98c8b 100644 --- a/stubs/qiskit_qec.linear.all_commute.html +++ b/stubs/qiskit_qec.linear.all_commute.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -405,7 +402,7 @@

    qiskit_qec.linear.all_commuteFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.augment_mat.html b/stubs/qiskit_qec.linear.augment_mat.html index 0fe92781..a23aed64 100644 --- a/stubs/qiskit_qec.linear.augment_mat.html +++ b/stubs/qiskit_qec.linear.augment_mat.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -424,7 +421,7 @@

    qiskit_qec.linear.augment_matFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.build_hyper_partner.html b/stubs/qiskit_qec.linear.build_hyper_partner.html index a288e102..29504522 100644 --- a/stubs/qiskit_qec.linear.build_hyper_partner.html +++ b/stubs/qiskit_qec.linear.build_hyper_partner.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -426,7 +423,7 @@

    qiskit_qec.linear.build_hyper_partnerFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.create_lambda_matrix.html b/stubs/qiskit_qec.linear.create_lambda_matrix.html index e58c2d85..88a455f4 100644 --- a/stubs/qiskit_qec.linear.create_lambda_matrix.html +++ b/stubs/qiskit_qec.linear.create_lambda_matrix.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -403,7 +400,7 @@

    qiskit_qec.linear.create_lambda_matrixFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.is_center.html b/stubs/qiskit_qec.linear.is_center.html index 64169d94..4db9e391 100644 --- a/stubs/qiskit_qec.linear.is_center.html +++ b/stubs/qiskit_qec.linear.is_center.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -407,7 +404,7 @@

    qiskit_qec.linear.is_centerFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.is_hyper_form.html b/stubs/qiskit_qec.linear.is_hyper_form.html index 7a8d494e..ef28f2dd 100644 --- a/stubs/qiskit_qec.linear.is_hyper_form.html +++ b/stubs/qiskit_qec.linear.is_hyper_form.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -395,7 +392,7 @@

    qiskit_qec.linear.is_hyper_formFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.is_same_span.html b/stubs/qiskit_qec.linear.is_same_span.html index a6a4cc37..53cdbae8 100644 --- a/stubs/qiskit_qec.linear.is_same_span.html +++ b/stubs/qiskit_qec.linear.is_same_span.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -404,7 +401,7 @@

    qiskit_qec.linear.is_same_spanFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.is_stabilizer_group.html b/stubs/qiskit_qec.linear.is_stabilizer_group.html index d8d6a633..81444966 100644 --- a/stubs/qiskit_qec.linear.is_stabilizer_group.html +++ b/stubs/qiskit_qec.linear.is_stabilizer_group.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -397,7 +394,7 @@

    qiskit_qec.linear.is_stabilizer_groupFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.is_symplectic_form.html b/stubs/qiskit_qec.linear.is_symplectic_form.html index 22968b39..30bde88e 100644 --- a/stubs/qiskit_qec.linear.is_symplectic_form.html +++ b/stubs/qiskit_qec.linear.is_symplectic_form.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -401,7 +398,7 @@

    qiskit_qec.linear.is_symplectic_formFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.is_symplectic_matrix_form.html b/stubs/qiskit_qec.linear.is_symplectic_matrix_form.html index e696b420..401d97c7 100644 --- a/stubs/qiskit_qec.linear.is_symplectic_matrix_form.html +++ b/stubs/qiskit_qec.linear.is_symplectic_matrix_form.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -409,7 +406,7 @@

    qiskit_qec.linear.is_symplectic_matrix_formFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.is_symplectic_vector_form.html b/stubs/qiskit_qec.linear.is_symplectic_vector_form.html index a5beef17..7a975d6a 100644 --- a/stubs/qiskit_qec.linear.is_symplectic_vector_form.html +++ b/stubs/qiskit_qec.linear.is_symplectic_vector_form.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -414,7 +411,7 @@

    qiskit_qec.linear.is_symplectic_vector_formFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.locate_hyper_partner.html b/stubs/qiskit_qec.linear.locate_hyper_partner.html index a5a00aff..fb8a35be 100644 --- a/stubs/qiskit_qec.linear.locate_hyper_partner.html +++ b/stubs/qiskit_qec.linear.locate_hyper_partner.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -419,7 +416,7 @@

    qiskit_qec.linear.locate_hyper_partnerFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.make_commute_hyper.html b/stubs/qiskit_qec.linear.make_commute_hyper.html index 5ca533cf..087777eb 100644 --- a/stubs/qiskit_qec.linear.make_commute_hyper.html +++ b/stubs/qiskit_qec.linear.make_commute_hyper.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -457,7 +454,7 @@

    qiskit_qec.linear.make_commute_hyperFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.rank.html b/stubs/qiskit_qec.linear.rank.html index be5fe13d..5262870c 100644 --- a/stubs/qiskit_qec.linear.rank.html +++ b/stubs/qiskit_qec.linear.rank.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -397,7 +394,7 @@

    qiskit_qec.linear.rankFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.rref.html b/stubs/qiskit_qec.linear.rref.html index 43cbfad8..8dc9910d 100644 --- a/stubs/qiskit_qec.linear.rref.html +++ b/stubs/qiskit_qec.linear.rref.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -400,7 +397,7 @@

    qiskit_qec.linear.rrefFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.rref_complete.html b/stubs/qiskit_qec.linear.rref_complete.html index 74c9de35..4db584a2 100644 --- a/stubs/qiskit_qec.linear.rref_complete.html +++ b/stubs/qiskit_qec.linear.rref_complete.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -426,7 +423,7 @@

    qiskit_qec.linear.rref_completeFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.symplectic_gram_schmidt.html b/stubs/qiskit_qec.linear.symplectic_gram_schmidt.html index 82a7815f..22c84c0d 100644 --- a/stubs/qiskit_qec.linear.symplectic_gram_schmidt.html +++ b/stubs/qiskit_qec.linear.symplectic_gram_schmidt.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -422,7 +419,7 @@

    qiskit_qec.linear.symplectic_gram_schmidtFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.linear.symplectic_product.html b/stubs/qiskit_qec.linear.symplectic_product.html index 603f8f94..c0048f6b 100644 --- a/stubs/qiskit_qec.linear.symplectic_product.html +++ b/stubs/qiskit_qec.linear.symplectic_product.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -411,7 +408,7 @@

    qiskit_qec.linear.symplectic_productFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.operators.BasePauli.html b/stubs/qiskit_qec.operators.BasePauli.html index 94743fd3..90224f4b 100644 --- a/stubs/qiskit_qec.operators.BasePauli.html +++ b/stubs/qiskit_qec.operators.BasePauli.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -967,7 +964,7 @@

    BasePauliFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.operators.Pauli.html b/stubs/qiskit_qec.operators.Pauli.html index 3ba16c38..83d141ac 100644 --- a/stubs/qiskit_qec.operators.Pauli.html +++ b/stubs/qiskit_qec.operators.Pauli.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -1393,7 +1390,7 @@

    Pauli#< Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.operators.PauliList.html b/stubs/qiskit_qec.operators.PauliList.html index cf0c5a13..e381d842 100644 --- a/stubs/qiskit_qec.operators.PauliList.html +++ b/stubs/qiskit_qec.operators.PauliList.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -1376,7 +1373,7 @@

    PauliListFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.structures.GaugeGroup.html b/stubs/qiskit_qec.structures.GaugeGroup.html index f6d63045..2e25c438 100644 --- a/stubs/qiskit_qec.structures.GaugeGroup.html +++ b/stubs/qiskit_qec.structures.GaugeGroup.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -408,7 +405,7 @@

    GaugeGroupFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.structures.Group.html b/stubs/qiskit_qec.structures.Group.html index 1311a403..2b090406 100644 --- a/stubs/qiskit_qec.structures.Group.html +++ b/stubs/qiskit_qec.structures.Group.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -375,7 +372,7 @@

    Group#< Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.utils.DecodingGraphEdge.html b/stubs/qiskit_qec.utils.DecodingGraphEdge.html index d0896624..aa416dd8 100644 --- a/stubs/qiskit_qec.utils.DecodingGraphEdge.html +++ b/stubs/qiskit_qec.utils.DecodingGraphEdge.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -334,7 +331,7 @@

    DecodingGraphEdge#

    -class DecodingGraphEdge(qubits, weight, properties=<factory>)[source]#
    +class DecodingGraphEdge(qubits, weight, fault_ids=<factory>, properties=<factory>)[source]#

    Bases: object

    Class to describe DecodingGraph edges.

    @@ -359,6 +356,12 @@

    DecodingGraphEdge +
    +- fault_ids fault_ids
    +

    Union[Set[int],List[int]]: In the style of pymatching.

    +

    +
    - properties
    @@ -374,8 +377,8 @@

    DecodingGraphEdgeMethods

    -get(key, _)[source]#
    -

    A dummy docstring.

    +get(key, default=None)[source]# +

    Return value for given key.

    Attributes

    @@ -389,6 +392,11 @@

    DecodingGraphEdgeweight: float#

    +
    +
    +fault_ids: Union[Set[int], List[int]]#
    +
    +
    properties: Dict[str, Any]#
    @@ -432,7 +440,7 @@

    DecodingGraphEdgeFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    @@ -458,6 +466,7 @@

    DecodingGraphEdgeDecodingGraphEdge.get()
  • DecodingGraphEdge.qubits
  • DecodingGraphEdge.weight
  • +
  • DecodingGraphEdge.fault_ids
  • DecodingGraphEdge.properties
  • diff --git a/stubs/qiskit_qec.utils.DecodingGraphNode.html b/stubs/qiskit_qec.utils.DecodingGraphNode.html index 8d5d0976..50b53ccb 100644 --- a/stubs/qiskit_qec.utils.DecodingGraphNode.html +++ b/stubs/qiskit_qec.utils.DecodingGraphNode.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -334,7 +331,7 @@

    DecodingGraphNode#

    -class DecodingGraphNode(index, qubits=None, is_boundary=False, time=None)[source]#
    +class DecodingGraphNode(index, qubits=None, is_boundary=False, is_logical=False, time=None)[source]#

    Bases: object

    Class to describe DecodingGraph nodes.

    @@ -348,6 +345,17 @@

    DecodingGraphNode +
    +- is_logical
    +

    whether or not the node is a logical node.

    +
    +
    Type:
    +

    bool

    +
    +
    +

    +
    - time
    @@ -398,8 +406,8 @@

    DecodingGraphNodeMethods

    -get(key, _)[source]#
    -

    A dummy docstring.

    +get(key, default=None)[source]# +

    Return value for given key.

    @@ -440,7 +448,7 @@

    DecodingGraphNodeFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.utils.get_counts_via_stim.html b/stubs/qiskit_qec.utils.get_counts_via_stim.html index f20d59e3..446abb75 100644 --- a/stubs/qiskit_qec.utils.get_counts_via_stim.html +++ b/stubs/qiskit_qec.utils.get_counts_via_stim.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -389,7 +386,7 @@

    qiskit_qec.utils.get_counts_via_stimFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.utils.get_stim_circuits.html b/stubs/qiskit_qec.utils.get_stim_circuits.html index da43a6b2..ef7dff5c 100644 --- a/stubs/qiskit_qec.utils.get_stim_circuits.html +++ b/stubs/qiskit_qec.utils.get_stim_circuits.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -404,7 +401,7 @@

    qiskit_qec.utils.get_stim_circuitsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.utils.indexer.html b/stubs/qiskit_qec.utils.indexer.html index fc6fb134..945ba48b 100644 --- a/stubs/qiskit_qec.utils.indexer.html +++ b/stubs/qiskit_qec.utils.indexer.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -379,7 +376,7 @@ Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/stubs/qiskit_qec.utils.noisify_circuit.html b/stubs/qiskit_qec.utils.noisify_circuit.html index 9896134a..4e328928 100644 --- a/stubs/qiskit_qec.utils.noisify_circuit.html +++ b/stubs/qiskit_qec.utils.noisify_circuit.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -393,7 +390,7 @@

    qiskit_qec.utils.noisify_circuitFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/stubs/qiskit_qec.utils.pauli_rep.html b/stubs/qiskit_qec.utils.pauli_rep.html index 530628a9..a28f6bdd 100644 --- a/stubs/qiskit_qec.utils.pauli_rep.html +++ b/stubs/qiskit_qec.utils.pauli_rep.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -490,7 +487,7 @@ Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/stubs/qiskit_qec.utils.visualizations.html b/stubs/qiskit_qec.utils.visualizations.html index abc090a6..19721229 100644 --- a/stubs/qiskit_qec.utils.visualizations.html +++ b/stubs/qiskit_qec.utils.visualizations.html @@ -216,9 +216,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -385,7 +382,7 @@ Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19
    diff --git a/tutorials/1-tutorial-example.html b/tutorials/1-tutorial-example.html index 727edce4..4417b81d 100644 --- a/tutorials/1-tutorial-example.html +++ b/tutorials/1-tutorial-example.html @@ -217,9 +217,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -396,7 +393,7 @@

    Tutorial: exampleFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/tutorials/QEC_Framework_IEEE_2022.html b/tutorials/QEC_Framework_IEEE_2022.html index c2436f41..b846e7bf 100644 --- a/tutorials/QEC_Framework_IEEE_2022.html +++ b/tutorials/QEC_Framework_IEEE_2022.html @@ -217,9 +217,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -3028,7 +3025,7 @@

    Decoders Furo
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/tutorials/how-to-use-union-find.html b/tutorials/how-to-use-union-find.html index ca126e5d..7a72895d 100644 --- a/tutorials/how-to-use-union-find.html +++ b/tutorials/how-to-use-union-find.html @@ -217,9 +217,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -464,7 +461,7 @@

    Using the Union Find decoder in qiskit_qecFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19

    diff --git a/tutorials/index.html b/tutorials/index.html index 4bc81ea8..694c36ee 100644 --- a/tutorials/index.html +++ b/tutorials/index.html @@ -217,9 +217,6 @@
  • Decoders (qiskit_qec.decoders)
  • @@ -385,7 +382,7 @@

    QEC TutorialsFuro
    - Last updated on 2024/02/16
    + Last updated on 2024/02/19