INNER CODE UNIT · C++

qubit2

aromanro/QCSim · QCSim/DensityMatrixTests.cpp:178

                int qubit2 = qubit1 + 1;
                if (twoQubitsGate && dist_bool(gen))
                    std::swap(qubit1, qubit2);

                dm.ApplyGate(*gates[g], qubit1, qubit2);
                reg.ApplyGate(*gates[g], qubit1, qubit2);

                if (!CompareWithStatevector(dm, reg, nrQubits))
                    return false;
            }

            // sanity: a pure state must have unit trace and purity 1
            if (!approxEqual(dm.Trace().real(), 1., 1E-9) || !approxEqual(dm.Trace().imag(), 0., 1E-9))
            {
                std::cout << "Trace is not 1 for a pure state: " << dm.Trace() << std::endl;
                return false;
            }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…