4 int syndrome_array_to_int(
const std::vector<int> &syndromes) {
6 for (
int i = 0; i < syndromes.size(); ++i) {
7 result += ((1 << i) * syndromes[i]);
12 #ifdef _QCOR_FTQC_RUNTIME
14 __qpu__
void measure_stabilizer_generators(
15 qreg q, std::vector<std::vector<qcor::Operator>> stabilizerGroup,
16 std::vector<int> logicalReg,
int scratchQubitIdx,
17 std::vector<int> &out_syndromes) {
18 for (
auto &stabilizer : stabilizerGroup) {
19 for (
auto &op : stabilizer) {
20 std::map<int, int> bitMap;
21 for (
int i = 0; i < logicalReg.size(); ++i) {
22 bitMap[i] = logicalReg[i];
24 op.mapQubitSites(bitMap);
27 measure_basis_with_scratch(q, scratchQubitIdx, stabilizer, syndromeResult);
28 out_syndromes.emplace_back(syndromeResult);