INNER CODE UNIT · C++

single

aromanro/QCSim · QCSim/DensityMatrixTests.cpp:858

    auto single = [&](char c) -> Eigen::Matrix2cd {
        switch (toupper(static_cast<unsigned char>(c)))
        {
        case 'X':
            return X;
        case 'Y':
            return Y;
        case 'Z':
            return Z;
        default:
            return I;
        }
    };

    // qubit 0 is the least significant bit, so it must be the rightmost factor of the Kronecker product
    Eigen::MatrixXcd result = single(pauliString[0]);
    for (size_t i = 1; i < pauliString.size(); ++i)
        result = Eigen::kroneckerProduct(single(pauliString[i]), result).eval();

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…