| 291 | |
| 292 | |
| 293 | qreal calcPurity(Qureg qureg) { |
| 294 | validate_quregFields(qureg, __func__); |
| 295 | |
| 296 | // assuming Hermiticity, Tr(rho^2) = sum_ij |rho_ij|^2, |
| 297 | // and Tr(|x><x|x><x|) = (sum_i |x_i|^2)^2 |
| 298 | qreal prob = localiser_statevec_calcTotalProb(qureg); |
| 299 | return (qureg.isDensityMatrix)? prob : prob * prob; |
| 300 | } |
| 301 | |
| 302 | |
| 303 | qreal calcFidelity(Qureg quregA, Qureg quregB) { |
no test coverage detected