INNER CODE UNIT · C++
unaffectedMask
aromanro/QCSim · QCSim/DensityMatrixTests.cpp:223
const size_t unaffectedMask = (nrBasisStates - 1) ^ operatedMask;
Eigen::MatrixXcd embedded =
Eigen::MatrixXcd::Zero(static_cast<Eigen::Index>(nrBasisStates), static_cast<Eigen::Index>(nrBasisStates));
for (size_t row = 0; row < nrBasisStates; ++row)
for (size_t col = 0; col < nrBasisStates; ++col)
{
if ((row & unaffectedMask) != (col & unaffectedMask))
continue;
size_t localRow = 0;
size_t localCol = 0;
for (size_t localQubit = 0; localQubit < qubits.size(); ++localQubit)
{
localRow |= ((row >> qubits[localQubit]) & 1ULL) << localQubit;
localCol |= ((col >> qubits[localQubit]) & 1ULL) << localQubit;
}
embedded(static_cast<Eigen::Index>(row), static_cast<Eigen::Index>(col)) =