INNER CODE UNIT · C++
eps
aromanro/QCSim · QCSim/DensityMatrixTests.cpp:120
double eps = 1E-9)
{
const Eigen::MatrixXcd expected = reg.getDensityMatrix();
const Eigen::MatrixXcd &got = dm.getDensityMatrix();
if (expected.rows() != got.rows() || expected.cols() != got.cols())
{
std::cout << "Density matrix dimensions mismatch for " << nrQubits << " qubits" << std::endl;
return false;
}
for (int i = 0; i < expected.rows(); ++i)
for (int j = 0; j < expected.cols(); ++j)
if (!approxEqual(expected(i, j), got(i, j), eps))
{
std::cout << "Density matrix element (" << i << ", " << j << ") mismatch for " << nrQubits
<< " qubits: " << expected(i, j) << " (statevector) vs " << got(i, j) << " (density matrix)"
<< std::endl;