| 391 | |
| 392 | |
| 393 | Qureg calcReducedDensityMatrix(Qureg qureg, int* retainQubits, int numRetainQubits) { |
| 394 | validate_quregFields(qureg, __func__); |
| 395 | validate_quregIsDensityMatrix(qureg, __func__); |
| 396 | validate_targets(qureg, retainQubits, numRetainQubits, __func__); |
| 397 | validate_quregCanBeReduced(qureg, qureg.numQubits - numRetainQubits, __func__); |
| 398 | |
| 399 | auto traceQubits = util_getNonTargetedQubits(retainQubits, numRetainQubits, qureg.numQubits); |
| 400 | |
| 401 | // harmlessly re-validates |
| 402 | return calcPartialTrace(qureg, traceQubits.data(), traceQubits.size()); |
| 403 | } |
| 404 | |
| 405 | |
| 406 | } // end de-name mangler |
no test coverage detected