INNER CODE UNIT · C++

a

aromanro/QCSim · QCSim/CliffordTests.cpp:476

            const size_t a = rng() % n, b = (a + 1 + rng() % (n - 1)) % n;
            const int gate = rng() % 15;
            ApplyGate(sim, gate, int(a), int(b));
            ref.ApplyGate(*GetGate(gate), a, b);
            const auto probabilities = sim.AllProbabilities();
            for (size_t state = 0; state < probabilities.size(); ++state)
                if (!CliffordCheck(approxEqual(probabilities[state], ref.getBasisStateProbability(state)),
                                   "Affine distribution vs state vector"))
                    return false;
            const CliffordRegressionSimulator before(sim);
            sim.SetSeed(77);
            const auto shots = sim.SampleBasisStates(32);
            sim.SetSeed(77);
            if (!CliffordCheck(shots == sim.SampleBasisStates(32) && sim.SameTableau(before),
                               "Terminal sampling preserves state and seeded repeatability"))
                return false;
            for (const auto &shot : shots)
            {

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…