Currently correction return value from decode() is documented as follows:
Returns: ### correction numpy.ndarray or list[int]
A 1D numpy array of ints giving the minimum-weight correction operator as a binary vector. The number of elements in correction is one greater than the largest fault ID. The ith element of correction is 1 if the minimum-weight perfect matching (MWPM) found by PyMatching contains an odd number of edges that have i as one of the fault_ids, and is 0 otherwise. If each edge in the matching graph is assigned a unique integer in its fault_ids attribute, then the locations of nonzero entries in correction correspond to the edges in the MWPM. However, fault_ids can instead be used, for example, to store IDs of the physical or logical frame changes that occur when an edge flips (see the documentation for Matching.add_edge for more information).
However, if a Matching decoder is constructed using from_detector_error_model() or from_check_matrix(), where a faults_matrix (e.g. L) is passed to the latter method, then the shape of correction will be (1,) (for a single logical observable, e.g. as is common in surface codes).
Recommend a clarification on this in the doc string please.
Currently
correctionreturn value fromdecode()is documented as follows:Returns: ###
correction numpy.ndarray or list[int]However, if a
Matchingdecoder is constructed usingfrom_detector_error_model()orfrom_check_matrix(), where a faults_matrix (e.g.L) is passed to the latter method, then the shape ofcorrectionwill be(1,)(for a single logical observable, e.g. as is common in surface codes).Recommend a clarification on this in the doc string please.