vector GetAlternateDummies(vector DoubleWrap, int NoOfVertices, int StabXPos[], int StabYPos[]); int ChargeFusion(int Charge1, int Charge2); //Decoder MWPM function, returning pairs of defects vector MatchingDecoder(bool StabilizersZ[], int L, vector Distances, vector Flips, int StabXPos[], int StabYPos[]); //Alternate MWPM function, returning alternatue pairs of defects going the other way around the MS vector DummyMatchingDecoder(bool ReducedZ[], int L, vector WrappedAltDistances, vector WrappedAltFlips, vector RBdist, vector RGdist, vector DecoderPairs, int StabXPos[], int StabYPos[]); //get numerical value from MWPM indicating parity of correction int DecoderOutcome(vector DecoderPairs, int L); int DummyOutcome(vector DecoderPairs, int L); //Function gets matching weights of each correction and returns in a vector {original, alternate} vector GetMatchingWeights(vector DecoderPairs, vector DummyPairs);